h2f release (source is from h2f code, add only features needed without changing existing code not related)

Push only :
- calendar features (create agenda and create devis automatically)
- gestion feature (listener to create devis automatically when creating calendar, export thanato statistic, export client statistic)
This commit is contained in:
Tiavina 2025-01-05 12:49:33 +03:00
parent 6bc48f2e7f
commit 50ca1bb3e8
74 changed files with 8188 additions and 1969 deletions

View File

@ -1,93 +1,24 @@
# nextcloud
# Gestion de facturation Nextcloud APP
If you want to support: https://www.buymeacoffee.com/benjaminaimard
* **Official store** 👉 https://apps.nextcloud.com/apps/gestion
* **Roadmap** 👉 https://github.com/baimard/gestion/discussions/127
* **Documentation** 👉 https://baimard.github.io/gestion/
* **Developper read before work** 👉 https://github.com/baimard/gestion/discussions/129
## Getting started
All the translations are made by transifex team, **thank you to the whole team, for the big work**!
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
## Invoicing management application for Micro-Entreprise
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
This application allows the management of invoicing in a very simple way for freelancer.
## Add your files
Functionality:
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
* Add customer
* Generate a quote in PDF, send directly PDF by MAIL
* Generate an invoice in PDF, send directly PDF by MAIL
* Generate products
* Follow your business
```
cd existing_repo
git remote add origin https://gitlab.com/ezwaytechnology/nextcloud.git
git branch -M main
git push -uf origin main
```
## Integrate with your tools
- [ ] [Set up project integrations](https://gitlab.com/ezwaytechnology/nextcloud/-/settings/integrations)
## Collaborate with your team
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
## Test and Deploy
Use the built-in continuous integration in GitLab.
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
***
# Editing this README
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
## Suggestions for a good README
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
## Name
Choose a self-explaining name for your project.
## Description
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
## Badges
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
## Visuals
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
## Installation
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
## Usage
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
## Support
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
## Roadmap
If you have ideas for releases in the future, it is a good idea to list them in the README.
## Contributing
State if you are open to contributions and what your requirements are for accepting them.
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
## Authors and acknowledgment
Show your appreciation to those who have contributed to the project.
## License
For open source projects, say how it is licensed.
## Project status
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
You can generate PDFs directly from the app and save them to your Nextcloud !

View File

@ -23,18 +23,18 @@ return [
['name' => 'page#getClients', 'url' => '/getClients', 'verb' => 'PROPFIND'],
['name' => 'page#getClient', 'url' => '/client', 'verb' => 'POST'],
['name' => 'page#getClientsByDateDevis', 'url' => '/getClientsByDateDevis/date/{date}', 'verb' => 'PROPFIND'],
['name' => 'page#getClientbyiddevis', 'url' => '/clientbyiddevis', 'verb' => 'POST'],
['name' => 'page#getConfiguration', 'url' => '/getConfiguration', 'verb' => 'PROPFIND'],
['name' => 'page#insertClient', 'url' => '/client/insert', 'verb' => 'POST'],
['name' => 'page#exportClientStatistic', 'url' => '/client/exportClientStatistic', 'verb' => 'POST'],
['name' => 'page#getThanatopracteurs', 'url' => '/getThanatopracteurs', 'verb' => 'PROPFIND'],
['name' => 'page#insertThanatopracteur', 'url' => '/thanatopracteur/insert', 'verb' => 'POST'],
['name' => 'page#exportThanatoStatistic', 'url' => '/thanatopracteur/exportThanatoStatistic', 'verb' => 'POST'],
['name' => 'page#getDevis', 'url' => '/getDevis', 'verb' => 'PROPFIND'],
['name' => 'page#getDevisDelphine', 'url' => '/getDevisDelphine/{idtrajetdetails}', 'verb' => 'PROPFIND'],
['name' => 'page#getDevisWithProduits', 'url' => '/getDevisWithProduits', 'verb' => 'PROPFIND'],
['name' => 'page#getDevisByThanato', 'url' => '/getDevisByThanato/{idThanato}', 'verb' => 'PROPFIND'],
['name' => 'page#getDevisByDateByLieu', 'url' => '/devis/{id_trajetDetails}/client/{id_client}/date/{date}/lieu/{id_lieu}', 'verb' => 'PROPFIND'],
['name' => 'page#devisshow', 'url' => '/devis/{numdevis}/show', 'verb' => 'GET'],
['name' => 'page#insertDevis', 'url' => '/devis/insert', 'verb' => 'POST'],
['name' => 'page#insertProduitDevis', 'url' => '/insertProduitDevis', 'verb' => 'POST'],
@ -49,24 +49,14 @@ return [
['name' => 'page#insertTrajetdetails', 'url' => '/trajetdetails/insert/{numtrajet}', 'verb' => 'POST'],
['name' => 'page#saveTrajetdetails', 'url' => '/trajetdetails/save/{numtrajet}', 'verb' => 'POST'],
['name' => 'page#ajaxGetLieux', 'url' => '/ajaxGetLieux', 'verb' => 'GET'],
['name' => 'page#ajaxGetArticles', 'url' => '/ajaxGetArticles', 'verb' => 'GET'],
['name' => 'page#ajaxGetProduits', 'url' => '/ajaxGetProduits', 'verb' => 'GET'],
['name' => 'page#ajaxGetClientsName', 'url' => '/ajaxGetClientsName', 'verb' => 'GET'],
['name' => 'page#ajaxGetThanatopracteurs', 'url' => '/ajaxGetThanatopracteurs', 'verb' => 'GET'],
['name' => 'page#getLieux', 'url' => '/getLieux', 'verb' => 'PROPFIND'],
['name' => 'page#insertLieu', 'url' => '/lieu/insert', 'verb' => 'POST'],
['name' => 'page#getFactures', 'url' => '/getFactures', 'verb' => 'PROPFIND'],
['name' => 'page#getFacturesWithProduits', 'url' => '/getFacturesWithProduits', 'verb' => 'PROPFIND'],
['name' => 'page#factureshow', 'url' => '/facture/{numfacture}/show', 'verb' => 'GET'],
['name' => 'page#apercustoutesfactures', 'url' => '/factures/apercus', 'verb' => 'GET'],
['name' => 'page#apercustousdevis', 'url' => '/devis/apercus', 'verb' => 'GET'],
['name' => 'page#insertFacture', 'url' => '/facture/insert', 'verb' => 'POST'],
['name' => 'page#exportDevisToFacture', 'url' => '/exportDevisToFacture', 'verb' => 'POST'],
['name' => 'page#exportFactureToPdf', 'url' => '/facture/exportFactureToPdf', 'verb' => 'POST'],
['name' => 'page#getProduits', 'url' => '/getProduits', 'verb' => 'PROPFIND'],
['name' => 'page#getProduitsById', 'url' => '/getProduitsById', 'verb' => 'POST'],
@ -119,10 +109,22 @@ return [
['name' => 'admin#backup', 'url' => '/backup', 'verb' => 'GET'],
// generer defunt
['name' => 'page#genererDefunt', 'url' => '/genererDefunt', 'verb' => 'POST'],
//SQL
['name' => 'page#addDevisNumberColumn', 'url' => '/addDevisNumberColumn', 'verb' => 'POST'],
['name' => 'page#addFactureNumberColumn', 'url' => '/addFactureNumberColumn', 'verb' => 'POST'],
//ajax
['name' => 'page#ajaxGetLieux', 'url' => '/ajaxGetLieux', 'verb' => 'GET'],
['name' => 'page#ajaxGetArticles', 'url' => '/ajaxGetArticles', 'verb' => 'GET'],
['name' => 'page#ajaxGetProduits', 'url' => '/ajaxGetProduits', 'verb' => 'GET'],
['name' => 'page#ajaxGetClientsName', 'url' => '/ajaxGetClientsName', 'verb' => 'GET'],
['name' => 'page#ajaxGetThanatopracteurs', 'url' => '/ajaxGetThanatopracteurs', 'verb' => 'GET'],
//export stat
['name' => 'page#exportClientStatistic', 'url' => '/client/exportClientStatistic', 'verb' => 'POST'],
['name' => 'page#exportThanatoStatistic', 'url' => '/thanatopracteur/exportThanatoStatistic', 'verb' => 'POST'],
//SQL
['name' => 'page#addDevisNumberColumn', 'url' => '/addDevisNumberColumn', 'verb' => 'POST'],
['name' => 'page#addFactureNumberColumn', 'url' => '/addFactureNumberColumn', 'verb' => 'POST'],
]
];
];

View File

@ -83,6 +83,10 @@
width:100px;
}
#Statistical tr:nth-child(even), #Articles tr:nth-child(even) {
background-color: #f2f2f2 !important;
}
#Statistical, #Articles, #Soins, #SoinsWeekend{
tr:nth-child(even) {
background-color: #f2f2f2 !important;
@ -139,11 +143,6 @@
max-width: 300px;
}
.devisOrFactureInputDate{
min-width: 120px !important;
max-width: 120px !important;
}
.configuration-global{
margin-top:15px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

BIN
gestion/img/logo-h2f.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
gestion/img/logo.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,5 @@
<?php
namespace OCA\Gestion\Controller;
use OCA\Gestion\Service\InvoicePdfHandler;
defined("TAB1") or define("TAB1", "\t");
use OCP\IGroupManager;
@ -19,11 +17,8 @@ use \Datetime;
use \DatetimeImmutable;
use \IntlDateFormatter;
use \FPDF;
use OCA\Gestion\Helpers\FileExportHelpers;
use OCA\Gestion\Service\ExportClientStatisticService;
use OCA\Gestion\Service\ExportThanatoStatisticService;
use OCA\Gestion\Service\InvoicePdfService;
use Ramsey\Uuid\Uuid;
date_default_timezone_set('Europe/Paris');
@ -32,13 +27,6 @@ class PageController extends Controller {
private $myDb;
// private $src_path = "/var/www/html/apps/gestion/img/";
private $src_path = "/var/www/html/custom_apps/gestion/img/";
private $sharedImagePath = "/var/www/html/data/";
private $defaultImagePath;
private const HYTHA_35_DEFAULT_ADMIN = "Johann";
private const H2F_DEFAULT_ADMIN = "Emmanuelle";
private const DEFAULT_NEXTCLOUD_ADMIN = "admin";
private $urlGenerator;
private $mailer;
private $config;
@ -52,14 +40,9 @@ class PageController extends Controller {
/** @var ExportThanatoStatisticService */
private $exportThanatoStatisticService;
/** @var \OCA\Gestion\Service\ExportClientStatisticService */
/** @var ExportClientStatisticService */
private $exportClientStatisticService;
/** @var InvoicePdfService */
private $invoicePdfService;
private $adminStorage;
/**
* Constructor
*/
@ -74,8 +57,7 @@ class PageController extends Controller {
IUserSession $userSession,
IGroupManager $groupManager,
ExportThanatoStatisticService $exportThanatoStatisticService,
ExportClientStatisticService $exportClientStatisticService,
InvoicePdfService $invoicePdfService) {
ExportClientStatisticService $exportClientStatisticService,){
parent::__construct($AppName, $request);
@ -86,8 +68,6 @@ class PageController extends Controller {
$this->config = $config;
$this->exportThanatoStatisticService = $exportThanatoStatisticService;
$this->exportClientStatisticService = $exportClientStatisticService;
$this->invoicePdfService = $invoicePdfService;
$this->defaultImagePath = $this->sharedImagePath.self::DEFAULT_NEXTCLOUD_ADMIN.'/files/.gestion/';
//$this->fpdf = $fpdf;
if ($userSession->isLoggedIn()) {
@ -107,14 +87,6 @@ class PageController extends Controller {
}catch(\OC\User\NoUserException $e){
}
try{
$this->adminStorage = $rootFolder->getUserFolder(self::DEFAULT_NEXTCLOUD_ADMIN);
}catch(\OC\User\NoUserException $e){
}
}
/**
@ -368,8 +340,7 @@ class PageController extends Controller {
* @NoCSRFRequired
*/
public function isConfig() {
$idNextcloud = "admin";
return $this->myDb->isConfig($idNextcloud);
return $this->myDb->isConfig($this->idNextcloud);
}
/**
@ -422,14 +393,6 @@ class PageController extends Controller {
return $this->myDb->getThanatopracteurs($this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function ajaxGetThanatopracteurs() {
return $this->myDb->getThanatopracteurs($this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
@ -556,7 +519,7 @@ class PageController extends Controller {
$pdf->SetXY( $_x, $_y ); $pdf->Cell( 100, 8, utf8_decode('Groupe COGF'), 0, 0, ''); $_y += 8;
// date facture
$pdf->SetFont('Arial','',11); $pdf->SetXY( 122, 60 );
$pdf->Cell( 60, 8, "Saint Senoux le, ".utf8_decode($date_formated), 0, 0, '');
$pdf->Cell( 60, 8, "Luant le, ".utf8_decode($date_formated), 0, 0, '');
// observations
$pdf->SetFont( "Arial", "BU", 10 ); $pdf->SetXY( 10, 85 ) ; $pdf->Cell($pdf->GetStringWidth("Objet:"), 0, "Objet:", 0, "L");
@ -614,7 +577,7 @@ class PageController extends Controller {
// date facture
$pdf->SetFont('Arial','',11); $pdf->SetXY( 122, 15 );
$pdf->Cell( 60, 8, "Saint Senoux le, ".utf8_decode($date_formated), 0, 0, '');
$pdf->Cell( 60, 8, "Luant le, ".utf8_decode($date_formated), 0, 0, '');
// n° facture, date echeance et reglement et obs
$pdf->SetLineWidth(0.1); $pdf->SetFillColor(255); $pdf->Rect(100, 30, 85, 8, "DF");
@ -730,19 +693,12 @@ class PageController extends Controller {
}
private function generer_document_comptable_client($date, $idclient) {
$current_config = json_decode($this->myDb->getConfiguration(self::DEFAULT_NEXTCLOUD_ADMIN));
$current_config = json_decode($this->myDb->getConfiguration($this->idNextcloud));
try {
try {
$logo = $this->getLogo();
$isLogoExist = $logo != "nothing";
$tvaIntraCommuValue = "";
$firstClient = $this->myDb->getFirstClient();
if($firstClient != null){
$tvaIntraCommuValue = $firstClient["legal_one"];
}
$data_factures = array();
$factures = json_decode($this->myDb->getCurrentMonthFactures_byClient($this->idNextcloud, $date, $idclient));
$factures = array_filter($factures, callback: function($facture) {return $facture->id_client != NULL; });
$factures = array_filter($factures, function($facture) {return $facture->id_client != NULL; });
foreach ($factures as $key => $facture) {
$facture_temp = array(
'num' => $facture->num,
@ -764,16 +720,11 @@ class PageController extends Controller {
'montant_ttc' => 0,
);
$produits = json_decode($this->getProduitsById($facture->id_devis));
$produitsReferenceArray = [];
foreach ($produits as $key => $produit) {
$facture_temp['montant_htc'] += $produit->prix_unitaire * $produit->quantite;
$produitsReferenceArray[] = $produit->reference;
};
$produitsReferenceArray = array_unique($produitsReferenceArray);
$produitsReferenceAsString = implode("-", $produitsReferenceArray);
$facture_temp['montant_tva'] = ($facture_temp['montant_htc'] * $facture_temp['tva'])/100;
$facture_temp['montant_ttc'] = $facture_temp['montant_tva'] + $facture_temp['montant_htc'];
$facture_temp['produit_references'] = $produitsReferenceAsString;
array_push($data_factures, $facture_temp);
};
@ -792,17 +743,14 @@ class PageController extends Controller {
$pdf = new FPDF();
$current_client = '';
$clientAddress = '';
$clientCity = '';
$adresse = '';
$date_facture;
$j=1;
foreach ($client as $key => $facture) {
if($j==1) {
$current_client = $facture['prenoms_client'].' '.$facture['nom_client'];
$adresse = $facture['adresse_client'];
$date_facture = $facture['date_facture'];
$clientAddresses = FileExportHelpers::GetAddressAndCityFromAddress($facture['adresse_client']);
$clientAddress = $clientAddresses['address'];
$clientCity = $clientAddresses['city'];
}
$j++;
}
@ -817,23 +765,17 @@ class PageController extends Controller {
$pdf->AddPage();
// on sup les 2 cm en bas
$pdf->SetAutoPagebreak(False);
$pdf->SetMargins(0,0,10);
$pdf->SetMargins(0,0,0);
// logo : 80 de largeur et 55 de hauteur
if($isLogoExist){
$pdf->Image($this->defaultImagePath."logo.png", 10, 10, 75, 25);
}
$pdf->Image($this->src_path."logo.png", 10, 10, 55, 30);
// adresse du facture
$pdf->SetFont('Arial','B',size: 11);
$pdf->SetY(40);
$pdf->Cell( 0, 8, utf8_decode($current_client), 0, 1, 'R');
$pdf->Cell( 0, 8, trim(utf8_decode(html_entity_decode($clientAddress))), 0,1,'R');
if($clientCity != ''){
$pdf->Cell( 0, 8, trim(utf8_decode(html_entity_decode($clientCity))), 0, 1, 'R');
}
$pdf->SetFont('Arial','B',11); $_x = 122 ; $_y = 40;
$pdf->SetXY( $_x, $_y ); $pdf->Cell( 100, 8, utf8_decode($current_client), 0, 0, ''); $_y += 8;
$pdf->SetXY( $_x, $_y ); $pdf->MultiCell( 80, 4, utf8_decode(html_entity_decode($adresse)), 0, 0, '');
// date facture
$pdf->SetFont('Arial','',11);
$pdf->Cell( 0, 8, "Saint Senoux, le ".utf8_decode($date_formated), 0, 1, 'R');
$pdf->SetFont('Arial','',11); $pdf->SetXY( 122, 60 );
$pdf->Cell( 60, 8, "Luant le, ".utf8_decode($date_formated), 0, 0, '');
// observations
$pdf->SetFont( "Arial", "BU", 10 ); $pdf->SetXY( 10, 85 ) ; $pdf->Cell($pdf->GetStringWidth("Objet:"), 0, "Objet:", 0, "L");
@ -851,21 +793,17 @@ class PageController extends Controller {
$pdf->SetFont( "Arial", "", 10 ); $pdf->SetXY( $pdf->GetStringWidth("Objet")+15, 120 ) ; $pdf->Cell($pdf->GetStringWidth($text3), 0, $text3, 0, "L");
// signature
$pdf->SetFont('Arial','',11); $pdf->SetXY( 145, 145 );
$pdf->SetFont('Arial','',11); $pdf->SetXY( 122, 145 );
$pdf->Cell( $pdf->GetStringWidth($current_config[0]->nom.' '.$current_config[0]->prenom), 0, utf8_decode(html_entity_decode($current_config[0]->nom.' '.$current_config[0]->prenom)), 0, 0, 'L');
$signatureExists = $this->signatureImageExists('sign.png');
if($signatureExists){
$pdf->Image($this->defaultImagePath."sign.png", 135, 150, 55, 30);
}
$pdf->Image($this->src_path."sign.png", 122, 150, 55, 30);
$y0 = 260;
$pageWidth = $pdf->GetPageWidth();
//Positionnement en bas et tout centrer
$pdf->SetFont('Arial','',7);
$pdf->SetXY( 1, $y0 + 4 ); $pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->mentions_default)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 8 ); $pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->legal_one)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 12 ); $pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->legal_two)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 16 ); $pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->telephone)), 0, 0, 'C');
$pdf->SetFont('Arial','',6);
$pdf->SetXY( 1, $y0 + 4 ); $pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->legal_one)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 8 ); $pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->legal_two)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 12 ); $pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->telephone)), 0, 0, 'C');
/*$pdf->SetXY( 1, $y0 + 16 );
$pdf->Cell( $pageWidth, 5, utf8_decode("SIREN 751621293"), 0, 0, 'C');*/
@ -883,10 +821,9 @@ class PageController extends Controller {
$pdf->AddPage();
// on sup les 2 cm en bas
$pdf->SetAutoPagebreak(False);
$pdf->SetMargins(0,0,10);
if($isLogoExist){
$pdf->Image($this->defaultImagePath."logo.png", 10, 10, 75, 25);
}
$pdf->SetMargins(0,0,0);
$pdf->Image($this->src_path."logo.png", 10, 10, 55, 30);
// n° page en haute à droite
if($nb_page>1){
@ -894,24 +831,19 @@ class PageController extends Controller {
}
// date facture
$pdf->SetFont('Arial','',11);
$pdf->SetY(10);
$pdf->Cell( 0, 8,"Saint Senoux, le ".utf8_decode($date_formated), 0, 0, 'R');
$pdf->SetFont('Arial','',11); $pdf->SetXY( 122, 15 );
$pdf->Cell( 60, 8, "Luant le, ".utf8_decode($date_formated), 0, 0, '');
// n° facture, date echeance et reglement et obs
$pdf->SetLineWidth(0.1); $pdf->SetFillColor(255); $pdf->Rect(114, 20, 85, 8, "DF");
$pdf->SetXY( 114, 20 ); $pdf->SetFont( "Arial", "B", 12 ); $pdf->Cell( 85, 8, 'FACTURE N'.utf8_decode('°').' FAC/'.$key_annee.'/'.strtoupper($this->convert_special_char(explode(' ', $date_formated)[1])), 0, 0, 'C');
$pdf->SetLineWidth(0.1); $pdf->SetFillColor(255); $pdf->Rect(100, 30, 85, 8, "DF");
$pdf->SetXY( 100, 30 ); $pdf->SetFont( "Arial", "B", 12 ); $pdf->Cell( 85, 8, 'FACTURE N'.utf8_decode('°').' ETS/'.$key_annee.'/'.strtoupper($this->convert_special_char(explode(' ', $date_formated)[1])), 0, 0, 'C');
// adresse du facture
$pdf->SetFont('Arial','B',11);
$pdf->SetY(y: 32);
$pdf->Cell( 0, 6, utf8_decode($current_client), 0, 1, 'R');
$pdf->Cell( 0, 6, trim(utf8_decode(html_entity_decode($clientAddress))), 0, 1, 'R');
if($clientCity != ''){
$pdf->Cell( 0, 6, trim(utf8_decode(html_entity_decode($clientCity))), 0, 1, 'R');
}
$pdf->Cell( 0, 6, FileExportHelpers::FormatTextForExport('Numéro') . ' Siret: ' . FileExportHelpers::FormatTextForExport($tvaIntraCommuValue), 0, 1, 'R');
$pdf->Cell( 0, 6, 'Email: ' . utf8_decode(html_entity_decode($facture['mail_client'])), 0, 1, 'R');
$pdf->SetFont('Arial','B',11); $x = 122 ; $y = 45;
$pdf->SetXY( $x, $y ); $pdf->Cell( 100, 8, utf8_decode($current_client), 0, 0, ''); $y += 8;
$pdf->SetXY( $x, $y ); $pdf->MultiCell( 80, 4, utf8_decode(html_entity_decode($adresse)), 0, 0, ''); $y += 9;
$pdf->SetXY( $x, $y ); $pdf->Cell( 100, 8, 'Email:', 0, 0, ''); $x+=13;
$pdf->SetXY( $x, $y ); $pdf->Cell( 100, 8, utf8_decode(html_entity_decode($facture['mail_client'])), 0, 0, '');
// ***********************
// le cadre des articles
@ -945,12 +877,13 @@ class PageController extends Controller {
$date_soin_temp = new DateTime($client[$index_facture_position]['date_soin']);
$pdf->SetXY( 6, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 28, 8, $client[$index_facture_position]['num'], 0, 0, '');
$pdf->SetXY( 32, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 18, 8, utf8_decode($formatter_ds->format($date_soin_temp)), 0, 0, '');
$pdf->SetXY( 50, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 38, 8, utf8_decode(html_entity_decode($client[$index_facture_position]['defunt'])), 0, 0, '');
$pdf->SetXY( 90, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 28, 8, utf8_decode(html_entity_decode($client[$index_facture_position]['produit_references'])), 0, 0, '');
$pdf->SetXY( 147, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 13, 8, number_format($client[$index_facture_position]['montant_htc'],2,'.','').chr(128), 0, 0, 'C');
$pdf->SetXY( 168, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 10, 8, number_format($client[$index_facture_position]['montant_tva'],2,'.','').chr(128), 0, 0, 'C');
$pdf->SetXY( 183, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 22, 8, number_format($client[$index_facture_position]['montant_ttc'],2,'.','').chr(128), 0, 0, 'C');
$pdf->SetXY( 32, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 28, 8, $client[$index_facture_position]['numero_commande'], 0, 0, '');
$pdf->SetXY( 53, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 18, 8, utf8_decode($formatter_ds->format($date_soin_temp)), 0, 0, '');
$pdf->SetXY( 65, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 38, 8, utf8_decode(html_entity_decode($client[$index_facture_position]['adresse_devis'])), 0, 0, '');
$pdf->SetXY( 100, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 28, 8, utf8_decode(html_entity_decode($client[$index_facture_position]['defunt'])), 0, 0, '');
$pdf->SetXY( 147, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 13, 8, $client[$index_facture_position]['montant_htc'].chr(128), 0, 0, 'C');
$pdf->SetXY( 168, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 10, 8, $client[$index_facture_position]['montant_tva'].chr(128), 0, 0, 'C');
$pdf->SetXY( 183, $y_facture ); $pdf->SetFont('Arial','',8); $pdf->Cell( 22, 8, $client[$index_facture_position]['montant_ttc'].chr(128), 0, 0, 'C');
$montant_ht_total = $montant_ht_total+$client[$index_facture_position]['montant_htc'];
$montant_tva_total = $montant_tva_total+$client[$index_facture_position]['montant_tva'];
@ -968,13 +901,13 @@ class PageController extends Controller {
{
$pdf->Line(5, 225, 205, 225);
$pdf->SetFont('Arial','B',8); $pdf->SetXY( 5, 225 ); $pdf->Cell( 140, 8, 'TOTAL', 0, 0, 'C');
$pdf->SetFont('Arial','',8); $pdf->SetXY( 147, 225 ); $pdf->Cell( 13, 8, number_format($montant_ht_total,2,'.','').chr(128), 0, 0, 'C');
$pdf->SetFont('Arial','',8); $pdf->SetXY( 168, 225 ); $pdf->Cell( 10, 8, number_format($montant_tva_total,2,'.','').chr(128), 0, 0, 'C');
$pdf->SetFont('Arial','',8); $pdf->SetXY( 183, 225 ); $pdf->Cell( 22, 8, number_format($montant_ttc_total,2,'.','').chr(128), 0, 0, 'C');
$pdf->SetFont('Arial','',8); $pdf->SetXY( 147, 225 ); $pdf->Cell( 13, 8, $montant_ht_total.chr(128), 0, 0, 'C');
$pdf->SetFont('Arial','',8); $pdf->SetXY( 168, 225 ); $pdf->Cell( 10, 8, $montant_tva_total.chr(128), 0, 0, 'C');
$pdf->SetFont('Arial','',8); $pdf->SetXY( 183, 225 ); $pdf->Cell( 22, 8, $montant_ttc_total.chr(128), 0, 0, 'C');
$pdf->Rect(145, 233, 60, 7, "D");
$pdf->SetFont('Arial','B',8); $pdf->SetXY( 147, 233 ); $pdf->Cell( 30, 6.5, 'TOTAL TTC', 0, 0, 'C');
$pdf->SetFont('Arial','B',8); $pdf->SetXY( 183, 233 ); $pdf->Cell( 22, 6.5, number_format($montant_ttc_total,2,'.','').chr(128), 0, 0, 'C', true);
$pdf->SetFont('Arial','B',8); $pdf->SetXY( 183, 233 ); $pdf->SetFillColor(255, 255, 0); $pdf->SetTextColor(255, 0, 0); $pdf->Cell( 22, 6.5, $montant_ttc_total.chr(128), 0, 0, 'C', true);
}
$y1 = 245;
@ -992,11 +925,10 @@ class PageController extends Controller {
// pied de page
// **************************
$pdf->SetFont('Arial','',7);
$pdf->SetXY( 1, $y0 + 4 ); $pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->mentions_default)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 8 );$pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->legal_one)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 12 );$pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->legal_two)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 16 );$pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->telephone)), 0, 0, 'C');
$pdf->SetFont('Arial','',6);
$pdf->SetXY( 1, $y0 + 4 );$pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->legal_one)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 8 );$pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->legal_two)), 0, 0, 'C');
$pdf->SetXY( 1, $y0 + 12 );$pdf->Cell( $pageWidth, 5, utf8_decode(html_entity_decode($current_config[0]->telephone)), 0, 0, 'C');
/*$pdf->SetXY( 1, $y0 + 16 );
$pdf->Cell( $pageWidth, 5, utf8_decode("SIREN 751621293"), 0, 0, 'C');*/
@ -1100,7 +1032,7 @@ class PageController extends Controller {
$pdf->SetXY( $_x, $_y ); $pdf->MultiCell( 80, 4, utf8_decode(html_entity_decode($adresse)), 0, 0, '');
// date facture
$pdf->SetFont('Arial','',11); $pdf->SetXY( 122, 60 );
$pdf->Cell( 60, 8, "Saint Senoux le, ".utf8_decode($date_formated), 0, 0, '');
$pdf->Cell( 60, 8, "Luant le, ".utf8_decode($date_formated), 0, 0, '');
// observations
$pdf->SetFont( "Arial", "BU", 10 ); $pdf->SetXY( 10, 85 ) ; $pdf->Cell($pdf->GetStringWidth("Objet:"), 0, "Objet:", 0, "L");
@ -1157,7 +1089,7 @@ class PageController extends Controller {
// date facture
$pdf->SetFont('Arial','',11); $pdf->SetXY( 122, 15 );
$pdf->Cell( 60, 8, "Saint Senoux le, ".utf8_decode($date_formated), 0, 0, '');
$pdf->Cell( 60, 8, "Luant le, ".utf8_decode($date_formated), 0, 0, '');
// n° facture, date echeance et reglement et obs
$pdf->SetLineWidth(0.1); $pdf->SetFillColor(255); $pdf->Rect(100, 30, 85, 8, "DF");
@ -1177,8 +1109,7 @@ class PageController extends Controller {
// cadre titre des colonnes
$pdf->Line(5, 90, 205, 90);
// les traits verticaux colonnes
$pdf->Line(145, 80, 145, 233);
$pdf->Line(163, 80, 163, 233);
$pdf->Line(145, 80, 145, 233); $pdf->Line(163, 80, 163, 233);
if($num_page == $nb_page) $pdf->Line(183, 80, 183, 240);
else $pdf->Line(183, 80, 183, 233);
// titre colonne
@ -1287,8 +1218,7 @@ class PageController extends Controller {
* @NoCSRFRequired
*/
public function getConfiguration() {
$idNextcloud = self::DEFAULT_NEXTCLOUD_ADMIN;
return $this->myDb->getConfiguration($idNextcloud);
return $this->myDb->getConfiguration($this->idNextcloud);
}
/**
@ -1299,14 +1229,6 @@ class PageController extends Controller {
return $this->myDb->getDevis($this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function getDevisWithProduits(){
return $this->myDb->getDevisWithProduits($this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
@ -1349,14 +1271,6 @@ class PageController extends Controller {
return $this->myDb->getLieux($this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function ajaxGetClientsName() {
return $this->myDb->getClientsName();
}
/**
* @NoAdminRequired
* @NoCSRFRequired
@ -1368,18 +1282,6 @@ class PageController extends Controller {
return $result;
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function getFacturesWithProduits() {
$result = $this->myDb->getFacturesWithProduits($this->idNextcloud);
$this->refreshFEC();
return $result;
}
private function synchronize_facture() {
$factures = json_decode($this->myDb->getFactures($this->idNextcloud));
foreach ($factures as $key => $facture) {
@ -1408,6 +1310,14 @@ class PageController extends Controller {
return $this->myDb->getProduits($this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function ajaxGetClientsName() {
return $this->myDb->getClientsName();
}
/**
* @NoAdminRequired
* @NoCSRFRequired
@ -1532,13 +1442,9 @@ class PageController extends Controller {
$distance_temp = 0;
$last_point = NULL;
} else {
$currentDistance = 0;
if($trajetdetails[$i]->lid != NULL) $last_point = $trajetdetails[$i];
if($last_point->lid != NULL && $trajetdetails[$i+1]->lid != NULL){
$currentDistance = $this->myDb->calcul_distance(floatval($last_point->latitude), floatval($last_point->longitude), floatval($trajetdetails[$i+1]->latitude), floatval($trajetdetails[$i+1]->longitude));
$distance_temp += $currentDistance;
}
$ik_temp = $ik_temp.utf8_decode(html_entity_decode($trajetdetails[$i]->cprenoms.' '.$trajetdetails[$i]->cnom)).';'.utf8_decode($formatter_ds->format($date_temp)).';'.utf8_decode(html_entity_decode($trajetdetails[$i]->lieu)).';'.$currentDistance."\n";
if($last_point->lid != NULL && $trajetdetails[$i+1]->lid != NULL) $distance_temp += $this->myDb->calcul_distance(floatval($last_point->latitude), floatval($last_point->longitude), floatval($trajetdetails[$i+1]->latitude), floatval($trajetdetails[$i+1]->longitude));
$ik_temp = $ik_temp.utf8_decode(html_entity_decode($trajetdetails[$i]->cprenoms.' '.$trajetdetails[$i]->cnom)).';'.utf8_decode($formatter_ds->format($date_temp)).';'.utf8_decode(html_entity_decode($trajetdetails[$i]->lieu))."\n";
}
}
@ -1717,22 +1623,6 @@ class PageController extends Controller {
$this->generer_document_comptable($datecourant);
$this->generer_document_comptable($nouveaudate);
} else {
if(strcmp($column, 'date')==0) {
if(strcmp($table, 'facture')){
$datetime = new Datetime($data);
$factureNumber = $this->myDb->getFactureNumberByDate($datetime);
$this->myDb->gestion_update($table, "facture_number", $factureNumber, $id, $this->idNextcloud);
$factureFullNumber = $this->myDb->getFactureFullNumberByDate($datetime);
$this->myDb->gestion_update($table, "num", $factureFullNumber, $id, $this->idNextcloud);
}
if(strcmp($table, 'devis')){
$datetime = new Datetime($data);
$devisNumber = $this->myDb->getDevisNumberByDate($datetime);
$this->myDb->gestion_update($table, "devis_number", $devisNumber, $id, $this->idNextcloud);
$devisFullNumber = $this->myDb->getDevisFullNumberByDate($datetime);
$this->myDb->gestion_update($table, "num", $devisFullNumber, $id, $this->idNextcloud);
}
}
$result = $this->myDb->gestion_update($table, $column, $data, $id, $this->idNextcloud);
// $this->generer_document_comptable($facturecourant->date_paiement);
}
@ -1743,18 +1633,6 @@ class PageController extends Controller {
return $this->myDb->gestion_update($table, $column, $data, $id, $this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
* @param array $devisToFacture
*/
public function exportDevisToFacture($devisToFacture) {
$factureIdsGenerated = $this->myDb->insertFactureForeEachDevisId($this->idNextcloud,$devisToFacture);
$this->invoicePdfService->generateFacturePdfByFactureIds($factureIdsGenerated,$this->idNextcloud);
$this->refreshFEC();
return true;
}
/**
* @NoAdminRequired
* @NoCSRFRequired
@ -2027,31 +1905,15 @@ class PageController extends Controller {
} catch(\OCP\Files\NotPermittedException $e) { }
}
private function signatureImageExists(string $signatureImageName){
$signatureExist = true;
try{
if(isset($this->adminStorage)){
$file = $this->adminStorage->get("/.gestion/".$signatureImageName);
}else{
$signatureExist = false;
}
}
catch(\OCP\Files\NotFoundException $e) {
$signatureExist = false;
}
return $signatureExist;
}
private function getLogo(){
try{
if(isset($this->adminStorage)){
$file = $this->adminStorage->get('/.gestion/logo.png');
try {
if(isset($this->storage)){
$file = $this->storage->get('/.gestion/logo.png');
}else{
return "nothing";
}
}
catch(\OCP\Files\NotFoundException $e) {
} catch(\OCP\Files\NotFoundException $e) {
return "nothing";
}
@ -2063,13 +1925,9 @@ class PageController extends Controller {
* @NoCSRFRequired
*/
public function getStats(){
$isThanato = in_array('Thanatos',$this->groups);
$isAdmin = in_array('admin',$this->groups);
$isUserThanatoOnly = $isThanato && !$isAdmin;
$res = array();
$res['client'] = json_decode($this->myDb->numberClient($this->idNextcloud))[0]->c;
$res['defunt'] = $this->myDb->numberDefunt($this->idNextcloud,$isUserThanatoOnly);
$res['defunt'] = json_decode($this->myDb->numberDefunt($this->idNextcloud))[0]->c;
$res['thanato'] = json_decode($this->myDb->numberThanato($this->idNextcloud))[0]->c;
$res['devis'] = json_decode($this->myDb->numberDevis($this->idNextcloud))[0]->c;
$res['lieu'] = json_decode($this->myDb->numberLieu($this->idNextcloud))[0]->c;
@ -2123,12 +1981,9 @@ class PageController extends Controller {
* @NoAdminRequired
* @NoCSRFRequired
*/
public function getDefunts() {
$isThanato = in_array('Thanatos',$this->groups);
$isAdmin = in_array('admin',$this->groups);
$isUserThanatoOnly = $isThanato && !$isAdmin;
return $this->myDb->getDefunts($this->idNextcloud,$isUserThanatoOnly);
}
public function getDefunts() {
return $this->myDb->getDefunts($this->idNextcloud);
}
/**
* @NoAdminRequired
@ -2185,6 +2040,14 @@ class PageController extends Controller {
return $this->myDb->getArticles($this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function ajaxGetThanatopracteurs() {
return $this->myDb->getThanatopracteurs($this->idNextcloud);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
@ -2244,10 +2107,7 @@ class PageController extends Controller {
$pdf->SetMargins(0,0,0);
// logo : 80 de largeur et 55 de hauteur
$logo = $this->getLogo();
if($logo != 'nothing'){
$pdf->Image($this->defaultImagePath."logo.png", 10, 10, 55, 30);
}
$pdf->Image($this->src_path."logo.jpeg", 10, 10, 55, 30);
$pdf->SetY(55); $pdf->SetFont('Arial', 'B', 15); $pdf->Cell(0, 10, "ATTESTATION", 0, 0, 'C');
$pdf->SetMargins(15,0,15);
@ -2271,7 +2131,7 @@ class PageController extends Controller {
$pdf->setY($pdf->GetY()+10);
$pdf->MultiCell(0, 5, utf8_decode(html_entity_decode("Cette attestation est remise pour faire valoir ce que de droit.
Fait à Saint Senoux le ".$today->format('d/m/Y'))), '','J',0);
Fait à Luant le ".$today->format('d/m/Y'))), '','J',0);
$pdf->setY($pdf->GetY()+10);
// signature
@ -2279,11 +2139,7 @@ class PageController extends Controller {
$pdf->setY($pdf->GetY()+10);
$pdf->Cell( $pdf->GetPageWidth()-30, 0, utf8_decode(html_entity_decode($current_config[0]->nom).' '.html_entity_decode($current_config[0]->prenom)), 0, 0, 'L');
$pdf->setY($pdf->GetY()+5);
$signatureExist = $this->signatureImageExists('sign.png');
if($signatureExist){
$pdf->Image($this->defaultImagePath."sign.png", 15, $pdf->GetY(), 55, 30);
}
$pdf->Image($this->src_path."sign.png", 15, $pdf->GetY(), 55, 30);
$pdf->setY($pdf->GetY()-5);
$pdf->SetFont('Arial','',11); $pdf->Cell( $pdf->GetPageWidth()-80, 0, "Pour :", 0, 0, 'R');
@ -2361,16 +2217,13 @@ class PageController extends Controller {
$pdf->SetMargins(15,15,15);
// logo : 80 de largeur et 55 de hauteur
$logo = $this->getLogo();
if($logo != 'nothing'){
$pdf->Image($this->defaultImagePath."logo.png", 15, 15, 55, 30);
}
$pdf->Image($this->src_path."logo.jpeg", 15, 15, 55, 30);
$pdf->setXY(15, 15); $pdf->SetFont('Arial', '', 10); $pdf->MultiCell(0, 5, utf8_decode(html_entity_decode("N : ".$numFacture)), '', 'R');
$pdf->setXY(15, 55); $pdf->SetFont('Arial', 'B', 15); $pdf->Cell(80, 10, 'RAPPORT DE SOIN', 1, 1, 'C');
$pdf->SetY(60);
$pdf->SetFont('Arial', '', 10); $pdf->MultiCell(0, 5, utf8_decode(html_entity_decode("Saint Senoux le, ".$today)), '', 'R');
$pdf->SetFont('Arial', '', 10); $pdf->MultiCell(0, 5, utf8_decode(html_entity_decode("Luant le, ".$today)), '', 'R');
$pdf->SetY($pdf->GetY()+15);
$pdf->SetFont('Arial', '', 10); $pdf->MultiCell(0, 5, utf8_decode(html_entity_decode($nomDefunt."\n".$age."ans\n".(strcmp($defunt->sexe, 'm')==0 ? 'Masculin' : 'Féminin'))), '', 'L');
@ -2521,11 +2374,7 @@ class PageController extends Controller {
$pdf->setY($pdf->GetY()+10);
$pdf->Cell( $pdf->GetPageWidth()-30, 0, utf8_decode(html_entity_decode($current_config[0]->nom).' '.html_entity_decode($current_config[0]->prenom)), 0, 0, 'L');
$pdf->setY($pdf->GetY()+5);
$signatureExist = $this->signatureImageExists('sign.png');
if($signatureExist){
$pdf->Image($this->defaultImagePath."sign.png", 15, $pdf->GetY(), 55, 30);
}
$pdf->Image($this->src_path."sign.png", 15, $pdf->GetY(), 55, 30);
$pdf->setY($pdf->GetY()-5);
$pdf->SetFont('Arial','',11); $pdf->Cell( $pdf->GetPageWidth()-80, 0, "Pour :", 0, 0, 'R');
@ -2617,10 +2466,7 @@ class PageController extends Controller {
$pdf->SetAutoPagebreak(True);
// logo : 80 de largeur et 55 de hauteur
$logo = $this->getLogo();
if($logo != 'nothing'){
$pdf->Image($this->defaultImagePath."logo.png", 10, 10, 55, 30);
}
$pdf->Image($this->src_path."logo.jpeg", 10, 10, 55, 30);
$pdf->SetY(55); $pdf->SetFont('Arial', 'B', 15); $pdf->Cell(0, 10, utf8_decode(html_entity_decode("ATTESTATION BIJOU(X)")), 0, 0, 'C');
$pdf->SetMargins(15,15,15);
@ -2651,7 +2497,7 @@ class PageController extends Controller {
$pdf->setY($pdf->GetY()+5);
$pdf->SetFont('Arial', '', 10); $pdf->MultiCell(0, 5, utf8_decode(html_entity_decode("Cette attestation est remise pour faire valoir ce que de droit.
Fait à Saint Senoux le ".$today)), '','J',0);
Fait à Luant le ".$today)), '','J',0);
$pdf->setY($pdf->GetY()+10);
@ -2660,11 +2506,7 @@ class PageController extends Controller {
$pdf->setY($pdf->GetY()+10);
$pdf->Cell( $pdf->GetPageWidth()-30, 0, utf8_decode(html_entity_decode($current_config[0]->nom).' '.html_entity_decode($current_config[0]->prenom)), 0, 0, 'L');
$pdf->setY($pdf->GetY()+5);
$signatureExist = $this->signatureImageExists('sign.png');
if ($signatureExist) {
$pdf->Image($this->defaultImagePath."sign.png", 15, $pdf->GetY(), 55, 30);
}
$pdf->Image($this->src_path."sign.png", 15, $pdf->GetY(), 55, 30);
$pdf->setY($pdf->GetY()-5);
$pdf->SetFont('Arial','',11); $pdf->Cell( $pdf->GetPageWidth()-80, 0, "Pour :", 0, 0, 'R');
@ -2688,7 +2530,6 @@ class PageController extends Controller {
}
}
/**
* @NoAdminRequired
* @NoCSRFRequired
@ -2696,7 +2537,7 @@ class PageController extends Controller {
*
*/
public function exportThanatoStatistic($thanatoIdsToExport){
public function exportThanatoStatistic($thanatoIdsToExport){
if(empty($thanatoIdsToExport)){
return "";
}
@ -2759,25 +2600,7 @@ class PageController extends Controller {
}
/**
* @NoAdminRequired
* @NoCSRFRequired
* @param int $factureId
*
*/
public function exportFactureToPdf($factureId){
try{
//for HYTHA 35 , the default admin idnextcloud is Johann, for H2F it is Emmanuelle
// $this->idNextcloud = self::HYTHA_35_DEFAULT_ADMIN;
$factureFilenames = $this->invoicePdfService->generateFacturePdfByFactureId($factureId,$this->idNextcloud);
return json_encode($factureFilenames);
}
catch(\OCP\Files\NotFoundException $e) { }
}
/**
/**
* @NoAdminRequired
* @NoCSRFRequired
*

File diff suppressed because it is too large Load Diff

View File

@ -75,6 +75,7 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
/** Thanatopracteurs **/
if (!$schema->hasTable($tableprefix.'thanato')) {
$table = $schema->createTable($tableprefix.'thanato');
@ -268,11 +269,22 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('date', 'date', []);
}
if ($table->hasColumn('id_client')) {
$table->dropColumn('id_client');
}
if ($table->hasColumn('id_lieu_depart')) {
// $table->addColumn('id_lieu_depart', 'integer', ['length' => 11]);
$table->dropColumn('id_lieu_depart');
}
if ($table->hasColumn('id_lieu_arrivee')) {
// $table->addColumn('id_lieu_arrivee', 'integer', ['length' => 11]);
$table->dropColumn('id_lieu_arrivee');
}
if (!$table->hasColumn('distance')) {
$table->addColumn('distance', 'float', ['default' => 0]);
}else{
$column = $table->getColumn('distance');
$column->setOptions(['default' => 0]);
}
if (!$table->hasColumn('id_thanato')) {
@ -281,16 +293,10 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
if (!$table->hasColumn('mois')) {
$table->addColumn('mois', 'integer', ['default' => 0]);
}else{
$column = $table->getColumn('mois');
$column->setOptions(['default' => 0]);
}
if (!$table->hasColumn('annee')) {
$table->addColumn('annee', 'integer', ['default' => 0]);
}else{
$column = $table->getColumn('annee');
$column->setOptions(['default' => 0]);
}
if (!$table->hasColumn('id_nextcloud')) {
@ -360,6 +366,11 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('adresse', 'text', []);
}
if ($table->hasColumn('id_client')) {
// $table->addColumn('id_client', 'integer', ['length' => 11]);
$table->dropColumn('id_client');
}
if (!$table->hasColumn('nom')) {
$table->addColumn('nom', 'text', []);
}
@ -376,6 +387,10 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
if ($table->hasColumn('distance')) {
$table->dropColumn('distance');
}
/**FACTURE**/
if (!$schema->hasTable($tableprefix.'facture')) {
$table = $schema->createTable($tableprefix.'facture');
@ -462,7 +477,6 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
/** PRODUIT_DEVIS **/
if (!$schema->hasTable($tableprefix.'produit_devis')) {
$table = $schema->createTable($tableprefix.'produit_devis');
@ -497,6 +511,36 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
/** ARTICLE */
if(!$schema->hasTable($tableprefix.'article')) {
$table = $schema->createTable($tableprefix.'article');
}
$table = $schema->getTable($tableprefix.'article');
if (!$table->hasColumn('id')) {
$table->addColumn('id', 'integer', ['autoincrement' => true,'notnull' => true,]);
$table->setPrimaryKey(['id']);
}
if (!$table->hasColumn('reference')) {
$table->addColumn('reference', 'text', []);
}
if (!$table->hasColumn('description')) {
$table->addColumn('description', 'text', []);
}
if (!$table->hasColumn('prix_unitaire')) {
$table->addColumn('prix_unitaire', 'float', ['default' => 0]);
}else{
$column = $table->getColumn('prix_unitaire');
$column->setOptions(['default' => 0]);
}
if (!$table->hasColumn('id_nextcloud')) {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
/** ARTICLE */
if(!$schema->hasTable($tableprefix.'article')) {
$table = $schema->createTable($tableprefix.'article');
@ -688,8 +732,8 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('cavite_qte', 'float', ['default' => 0]);
}
if (!$table->hasColumn('hypodermiques')) {
$table->addColumn('hypodermiques', 'float', ['default' => 0]);
if ($table->hasColumn('hypodermiques')) {
$table->dropColumn('hypodermiques');
}
if ($table->hasColumn('hypodermiques_sur')) {
@ -740,10 +784,6 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
$table->dropColumn('age');
$table->dropColumn('corpulance');
$table->dropColumn('presentation_cosemetique');
/** BIBLIOTHEQUE **/
if (!$schema->hasTable($tableprefix.'bibliotheque')) {
$table = $schema->createTable($tableprefix.'bibliotheque');
@ -790,6 +830,33 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
/** BIJOU_DEFUNT **/
if (!$schema->hasTable($tableprefix.'bijou_defunt')) {
$table = $schema->createTable($tableprefix.'bijou_defunt');
}
$table = $schema->getTable($tableprefix.'bijou_defunt');
if (!$table->hasColumn('id')) {
$table->addColumn('id', 'integer', ['autoincrement' => true, 'notnull' => true,]);
$table->setPrimaryKey(['id']);
}
if (!$table->hasColumn('defunt_id')) {
$table->addColumn('defunt_id', 'integer', ['length' => 11, 'notnull' => true]);
}
if (!$table->hasColumn('designation')) {
$table->addColumn('designation', 'string', ['length' => 155]);
}
if (!$table->hasColumn('commentaire')) {
$table->addColumn('commentaire', 'text', []);
}
if (!$table->hasColumn('id_nextcloud')) {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
/** HYPODERMIQUE_DEFUNT **/
if (!$schema->hasTable($tableprefix.'hypo_defunt')) {
$table = $schema->createTable($tableprefix.'hypo_defunt');
@ -821,33 +888,6 @@ class Version7Date20220125174818 extends SimpleMigrationStep {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
/** BIJOU_DEFUNT **/
if (!$schema->hasTable($tableprefix.'bijou_defunt')) {
$table = $schema->createTable($tableprefix.'bijou_defunt');
}
$table = $schema->getTable($tableprefix.'bijou_defunt');
if (!$table->hasColumn('id')) {
$table->addColumn('id', 'integer', ['autoincrement' => true, 'notnull' => true,]);
$table->setPrimaryKey(['id']);
}
if (!$table->hasColumn('defunt_id')) {
$table->addColumn('defunt_id', 'integer', ['length' => 11, 'notnull' => true]);
}
if (!$table->hasColumn('designation')) {
$table->addColumn('designation', 'string', ['length' => 155]);
}
if (!$table->hasColumn('commentaire')) {
$table->addColumn('commentaire', 'text', []);
}
if (!$table->hasColumn('id_nextcloud')) {
$table->addColumn('id_nextcloud', 'string', ['length' => 64]);
}
return $schema;
}

View File

@ -127,7 +127,7 @@ class GestionService {
}
$defuntId = $this->gestionBdd->insertDefuntByNameAndReturnId($calendarSummary);
$calendarStartDate = $this->GetCalendarDateFromVCalendarString($vCalendarString);
$devisId = $this->gestionBdd->insertDevisFromVCalendarAndReturnId($thanatoId,$clientId,$locationId,$defuntId,$calendarUuid,$calendarStartDate);
$devisId = $this->gestionBdd->insertDevisFromVCalendarAndReturnId($thanatoId,$clientId,$locationId,$defuntId,$calendarUuid,$calendarStartDate,$userName);
$articlesValue = $this->GetArticlesNameFromVCalendarString($vCalendarString);
if(!empty($articlesValue)){
$articleIds = $this->gestionBdd->getArticleIdsByArticleReferences($articlesValue);

View File

@ -1,302 +0,0 @@
<?php
declare(strict_types=1);
/**
* Calendar App
*
* @copyright 2021 Anna Larch <anna.larch@gmx.net>
*
* @author Anna Larch <anna.larch@gmx.net>
* @author Richard Steinmetz <richard@steinmetz.cloud>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Gestion\Service;
use DateTime;
use \FPDF;
use OCA\Gestion\Helpers\FileExportHelpers;
use OCA\Gestion\Helpers\PriceHelpers;
class InvoicePdfHandler extends FPDF {
private $factureData = [];
private $logo = null;
private $logoPath = "/var/www/html/data/admin/files/.gestion/";
function Header()
{
if($this->logo != "nothing"){
$this->Image($this->logoPath."logo.png", 10, 10, 75, 25);
}
else{
$this->Cell(55,30,'');
}
$this->Ln(30);
}
function Footer()
{
$this->SetY(-40);
$this->SetFont('Arial', '', 7);
$this->MultiCell(0,5,utf8_decode(html_entity_decode('Tout retard de paiement entraînera de plein droit une pénalité de retard de 3 fois le taux légal ( Loi 2008-776 du 4 août 2008) et une indemnité forfaitaire de 40 EUR pour frais de recouvrement sera appliquée.')));
$this->Ln(1);
$this->MultiCell(0,5,utf8_decode(html_entity_decode('Si les frais de recouvrement sont supérieurs à ce montant forfaitaire, une indemnisation complémentaire sera due sur présentation de justificatifs ( articles L.441-3 et L.441-6 du code de commerce ).
')));
$this->SetY(-15);
$this->SetFont('Arial', 'B', 8);
$this->Cell(0, 10, utf8_decode(html_entity_decode($this->factureData['configuration']->legal_one)), 0, 0, 'C');
}
public function InvoicePdfFactory(array $factureData,$logo = null){
$this->factureData = $factureData;
$this->logo = $logo;
}
public function GetFilename(){
$factureNum = $this->factureData['num'];
$factureNum = str_replace('/','-',$factureNum);
$defuntNom = str_replace('&nbsp;',' ',$this->factureData['defunt_nom']);
return $this->factureData['configuration']->facture_prefixe.'_'.$factureNum.'_'.strtoupper($defuntNom);
}
private function DrawInvoiceCompanyAndClientInfo(){
$this->SetFont('Arial', '', 12);
$this->Cell(0, 7, FileExportHelpers::FormatTextForExport($this->factureData['configuration']->entreprise), 0, 0);
$this->Cell(0, 7, FileExportHelpers::FormatTextForExport($this->factureData['client_nom']), 0, 1,'R');
$this->Cell(0, 7, FileExportHelpers::FormatTextForExport($this->factureData['configuration_adresse']), 0, 0);
$this->Cell(0, 7, trim(FileExportHelpers::FormatTextForExport($this->factureData['client_real_adress'])), 0, 1,'R');
$this->Cell(0, 7, FileExportHelpers::FormatTextForExport($this->factureData['configuration_adresse_city']), 0, 0);border:
$this->Cell(0, 7, trim(FileExportHelpers::FormatTextForExport($this->factureData['client_adress_city'])), 0, 1,'R');
$this->Cell(0, 7, FileExportHelpers::FormatTextForExport('Tél : ') . FileExportHelpers::FormatTextForExport($this->factureData['configuration']->telephone),0,0);
$this->Cell(0, 7, FileExportHelpers::FormatTextForExport('Numéro') . ' Siret: ' . $this->factureData['siret'], 0, 1,'R');
$this->Cell(0, 7, 'Mail : ' . $this->factureData['configuration']->mail, 0, 1);
$this->Ln(3);
}
private function DrawInvoiceInfoTable(){
$factureDatePaiement = $this->factureData['date_paiement'];
$factureDatePaiement = DateTime::createFromFormat('Y-m-d',$factureDatePaiement);
$factureDateEcheance = $factureDatePaiement;
$factureDatePaiement = $factureDatePaiement->format('d-m-Y');
$factureDateEcheance->modify('+1 month');
$factureDateEcheance = $factureDateEcheance->format('t-m-Y');
$this->SetFont('Arial', 'B', 11);
$this->Cell(30, 7, 'DATE', 1, 0, 'C');
$this->Cell(80, 7, 'CLIENT', 1, 0, 'C');
$this->Cell(40, 7, 'FACTURE', 1, 0, 'C');
$this->Cell(40, 7, 'ECHEANCE', 1, 1, 'C');
$this->SetFont('Arial', '', 10);
$this->Cell(30, 7, $factureDatePaiement, 1, 0, 'C');
$this->Cell(80, 7, utf8_decode(html_entity_decode($this->factureData['client_nom'])), 1, 0, 'C');
$this->Cell(40, 7, $this->factureData['num'], 1, 0, 'C');
$this->Cell(40, 7, $factureDateEcheance, 1, 1, 'C');
$this->Ln(8);
}
private function DrawArticlesTable(){
$this->SetLineWidth(0.1);
$this->Rect(10, 105, 190, 100, "D");
// cadre titre des colonnes
$this->Line(10, 115, 200,115);
// les traits verticaux colonnes
$this->Line(35, 105, 35, 205);
$this->Line(135, 105, 135, 205);
$this->Line(155, 105, 155, 205);
$this->Line(175, 105, 175, 205);
}
private function DrawArticlesTableHeader(){
$tvaValue = $this->factureData["configuration"]->tva_default;
$this->SetFont('Arial','',10);
$this->SetXY( 10,106 );
$this->Cell( 20, 8, "Date", 0, 0, 'C');
$this->SetXY( 35,106 );
$this->Cell( 100, 8, "Description", 0, 0, 'C');
$this->SetXY( 135,106 );
$this->Cell( 20, 8, "Prix Uni. HT", 0, 0, 'C');
$this->SetXY( 155,106 );
$this->Cell( 20, 8, 'TVA ' . $tvaValue . '%', 0, 0, 'C');
$this->SetXY( 175,106 );
$this->Cell( 25, 8, "Prix Uni. TTC", 0, 0, 'C');
}
public function DrawArticlesTableValueAndReturnTotalPrice(){
$this->SetFont('Arial','',10);
$devisDate = $this->factureData['devis_date'];
$devisDate = DateTime::createFromFormat('Y-m-d',$devisDate);
$devisDate = $devisDate->format('d-m-Y');
$tvaValue = $this->factureData["configuration"]->tva_default;
$totalHt = 0;
$totalTtc = 0;
$totalTva = 0;
$products = $this->factureData["products"];
$yValue = 116;
foreach($products as $product){
$valueHt = $product['produit_price'];
$valueTtc = PriceHelpers::calculPriceWithVatValue($valueHt,$tvaValue);
$totalHt+=$valueHt;
$totalTtc+=$valueTtc;
$productDescription = $product["produit_description"];
$dateValue = "";
if($product === end($products)){
$dateValue = $devisDate;
$productDescription .= " de " . FileExportHelpers::GetSexeLabel($this->factureData['defunt_sexe']) . ' '. $this->factureData["defunt_nom"];
}
$tvaAmount = $valueTtc - $valueHt;
$this->SetXY( 10,$yValue );
$this->Cell(20, 6, $dateValue, 0,0);
$this->SetXY( 35,$yValue );
$this->MultiAlignCell(100, 6, utf8_decode(html_entity_decode($productDescription)),0,'0',);
$this->SetXY( 135,$yValue );
$this->Cell(20, 6, number_format($valueHt,2,'.','').chr(128), 0, 0, 'C');
$this->SetXY( 155,$yValue );
$this->Cell(20, 6, number_format($tvaAmount,2,'.','').chr(128), 0, 0, 'C');
$this->SetXY( 175,$yValue );
$this->Cell(25, 6, number_format($valueTtc,2,'.','').chr(128), 0, 1, 'C');
$yValue += 12;
$totalTva += $tvaAmount;
}
return [
"TOTAL HT" => $totalHt,
"TVA ".$tvaValue. "%" => $totalTva,
"TOTAL TTC" => $totalTtc
];
}
private function DrawBankAndTotalPriceInfo($totalPriceArray){
$this->SetY(210);
$this->SetFont('Arial', '', 9);
$this->MultiCell(0,5,utf8_decode(html_entity_decode("Paiement à votre convenance par chèque à l'ordre de ". $this->factureData['configuration']->entreprise)));
$this->MultiCell(0,5,utf8_decode(html_entity_decode("en indiquant le numéro de facture, ou par virement :")));
$this->Ln(1);
//Table IBAN
$this->SetFont('Arial', '', 11);
$ibanWidth = 90;
$ibanCursorY = $this->GetY();
$this->Cell($ibanWidth, 7, 'IBAN : FR76 1360 6000 1436 5418 1800 038', 1, 1, 'C');
$ibanCursorX = $this->GetX();
$this->Cell($ibanWidth, 7, 'Code SWIFT : AGRI FR PP 836', 1, 1, 'C');
//TABLE HT
$ibanLastPositionX = $ibanCursorX+$ibanWidth + 20;
$startOfArrayX = $ibanLastPositionX;
$startOfArrayY = $ibanCursorY;
foreach($totalPriceArray as $label => $price){
$this->SetXY($startOfArrayX,$startOfArrayY);
$this->Cell(40, 7, $label, 1, 1, 'C');
$this->SetXY($startOfArrayX + 40,$startOfArrayY);
$this->Cell(40, 7, number_format($price,2,'.','').chr(128), 1, 1, 'C');
$startOfArrayY += 7;
}
}
public function GetFactureContent(){
$this->AddPage();
$this->SetMargins(10,0,10);
$this->DrawInvoiceCompanyAndClientInfo();
$this->DrawInvoiceInfoTable();
$this->DrawArticlesTable();
$this->DrawArticlesTableHeader();
$totalPriceValue = $this->DrawArticlesTableValueAndReturnTotalPrice();
$this->DrawBankAndTotalPriceInfo($totalPriceValue);
$pdfContent = $this->Output('','S');
return $pdfContent;
}
function MultiAlignCell($w,$h,$text,$border=0,$ln=0,$align='L',$fill=false)
{
// Store reset values for (x,y) positions
$x = $this->GetX() + $w;
$y = $this->GetY();
// Make a call to FPDF's MultiCell
$this->MultiCell($w,$h,$text,$border,$align,$fill);
// Reset the line position to the right, like in Cell
if( $ln==0 )
{
$this->SetXY($x,$y);
}
}
function NbLines($w, $txt)
{
// Compute the number of lines a MultiCell of width w will take
if(!isset($this->CurrentFont))
$this->Error('No font has been set');
$cw = $this->CurrentFont['cw'];
if($w==0)
$w = $this->w-$this->rMargin-$this->x;
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
$s = str_replace("\r",'',(string)$txt);
$nb = strlen($s);
if($nb>0 && $s[$nb-1]=="\n")
$nb--;
$sep = -1;
$i = 0;
$j = 0;
$l = 0;
$nl = 1;
while($i<$nb)
{
$c = $s[$i];
if($c=="\n")
{
$i++;
$sep = -1;
$j = $i;
$l = 0;
$nl++;
continue;
}
if($c==' ')
$sep = $i;
$l += $cw[$c];
if($l>$wmax)
{
if($sep==-1)
{
if($i==$j)
$i++;
}
else
$i = $sep+1;
$sep = -1;
$j = $i;
$l = 0;
$nl++;
}
else
$i++;
}
return $nl;
}
}

View File

@ -1,119 +0,0 @@
<?php
declare(strict_types=1);
/**
* Calendar App
*
* @copyright 2021 Anna Larch <anna.larch@gmx.net>
*
* @author Anna Larch <anna.larch@gmx.net>
* @author Richard Steinmetz <richard@steinmetz.cloud>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Gestion\Service;
use DateTime;
use OCA\Gestion\Db\Bdd;
use OCA\Gestion\Helpers\DateHelpers;
use OCP\Files\IRootFolder;
class InvoicePdfService {
/** @var Bdd */
private $gestionBdd;
/** @var IRootFolder */
private $rootFolder;
private const DEFAULT_NEXTCLOUD_ADMIN = "admin";
public function __construct(
Bdd $gestionBdd,
IRootFolder $rootFolder) {
$this->gestionBdd = $gestionBdd;
$this->rootFolder = $rootFolder;
}
private function getLogo(){
$storage = $this->rootFolder->getUserFolder(self::DEFAULT_NEXTCLOUD_ADMIN);
try{
try {
if(isset($storage)){
$file = $storage->get('/.gestion/logo.png');
}else{
return "nothing";
}
} catch(\OCP\Files\NotFoundException $e) {
$file = $storage->get('/.gestion/logo.jpeg');
}
}
catch(\OCP\Files\NotFoundException $e) {
return "nothing";
}
return base64_encode($file->getContent());
}
public function generateFacturePdfByFactureId($factureId,$idNextCloud){
$storage = $this->rootFolder->getUserFolder($idNextCloud);
$configs = json_decode($this->gestionBdd->getConfiguration(self::DEFAULT_NEXTCLOUD_ADMIN));
$currentConfig = $configs[0];
$logo = $this->getLogo();
$invoicePdfData = $this->gestionBdd->getInvoicePdfData($factureId,$currentConfig);
if($invoicePdfData == null){
return "";
}
$clean_folder = html_entity_decode($currentConfig->path).'/';
$factureFolders = $this->getFacturesFolder($invoicePdfData,$clean_folder);
$pdf = new InvoicePdfHandler();
$pdf->InvoicePdfFactory($invoicePdfData,$logo);
$pdfContent = $pdf->GetFactureContent();
$pdfFilename = $pdf->GetFilename();
$filenames = [];
foreach($factureFolders as $folder){
try {
$storage->newFolder($folder);
}
catch(\OCP\Files\NotPermittedException $e) {
}
$ff_pdf = $folder.$pdfFilename.'.pdf';
$storage->newFile($ff_pdf);
$file_pdf = $storage->get($ff_pdf);
$file_pdf->putContent($pdfContent);
$filenames[] = $ff_pdf;
}
return $filenames;
}
private function getFacturesFolder(array $factureData,$racinePath){
$clientRacineFolder = $racinePath.'CLIENTS/'.strtoupper($factureData["client_entreprise"]).'/';
$defuntsFolder = $clientRacineFolder.'DEFUNTS/'.strtoupper($factureData['defunt_nom']).'/'.'FACTURES'.'/';
$devisDate = $factureData['devis_date'];
$devisDatetime = new DateTime($devisDate);
$devisDateYear = $devisDatetime->format('Y');
$devisMonth = DateHelpers::GetDateWithFormatDayAndMonthPlainString($factureData['devis_date']);
$factureByYearFolder = $clientRacineFolder."$devisDateYear".'/'.$devisMonth.'/'.'FACTURES'.'/';
return [
$defuntsFolder,
$factureByYearFolder
];
}
public function generateFacturePdfByFactureIds(array $factureIds,$idNextCloud){
foreach( $factureIds as $factureId ){
$this->generateFacturePdfByFactureId($factureId,$idNextCloud);
}
}
}

View File

@ -33,7 +33,7 @@
"style": ">=0.0.3",
"style-loader": ">=2.0.0",
"webpack": ">=5.61.1",
"webpack-cli": "^5.1.4"
"webpack-cli": ">=4.5.0"
},
"engines": {
"node": ">=10.0.0"
@ -654,17 +654,6 @@
"node": ">= 8"
}
},
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"dev": true,
"peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@skjnldsv/sanitize-svg": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@skjnldsv/sanitize-svg/-/sanitize-svg-1.0.2.tgz",
@ -899,9 +888,9 @@
}
},
"node_modules/@webpack-cli/configtest": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
"integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.1.tgz",
"integrity": "sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==",
"dev": true,
"engines": {
"node": ">=14.15.0"
@ -912,9 +901,9 @@
}
},
"node_modules/@webpack-cli/info": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
"integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz",
"integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==",
"dev": true,
"engines": {
"node": ">=14.15.0"
@ -925,9 +914,9 @@
}
},
"node_modules/@webpack-cli/serve": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
"integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.1.tgz",
"integrity": "sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==",
"dev": true,
"engines": {
"node": ">=14.15.0"
@ -2531,13 +2520,6 @@
"node": ">=8.0.0"
}
},
"node_modules/ical.js": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/ical.js/-/ical.js-1.5.0.tgz",
"integrity": "sha512-7ZxMkogUkkaCx810yp0ZGKvq1ZpRgJeornPttpoxe6nYZ3NLesZe1wWMXDdwTkj/b5NtXT+Y16Aakph/ao98ZQ==",
"dev": true,
"peer": true
},
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
@ -3029,13 +3011,6 @@
"linkifyjs": "^4.0.0"
}
},
"node_modules/linkifyjs": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.2.0.tgz",
"integrity": "sha512-pCj3PrQyATaoTYKHrgWRF3SJwsm61udVh+vuls/Rl6SptiDhgE7ziUIudAedRY9QEfynmM7/RmLEfPUyw1HPCw==",
"dev": true,
"peer": true
},
"node_modules/loader-runner": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
@ -4565,16 +4540,6 @@
"base64-arraybuffer": "^1.0.2"
}
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
"peer": true,
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/v-click-outside": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/v-click-outside/-/v-click-outside-3.2.0.tgz",
@ -4729,17 +4694,17 @@
}
},
"node_modules/webpack-cli": {
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
"integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.1.tgz",
"integrity": "sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==",
"dev": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
"@webpack-cli/configtest": "^2.1.1",
"@webpack-cli/info": "^2.0.2",
"@webpack-cli/serve": "^2.0.5",
"@webpack-cli/configtest": "^2.0.1",
"@webpack-cli/info": "^2.0.1",
"@webpack-cli/serve": "^2.0.1",
"colorette": "^2.0.14",
"commander": "^10.0.1",
"commander": "^9.4.1",
"cross-spawn": "^7.0.3",
"envinfo": "^7.7.3",
"fastest-levenshtein": "^1.0.12",
@ -4774,12 +4739,12 @@
}
},
"node_modules/webpack-cli/node_modules/commander": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
"integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"version": "9.5.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
"dev": true,
"engines": {
"node": ">=14"
"node": "^12.20.0 || >=14"
}
},
"node_modules/webpack-merge": {

View File

@ -51,7 +51,7 @@
"style": ">=0.0.3",
"style-loader": ">=2.0.0",
"webpack": ">=5.61.1",
"webpack-cli": "^5.1.4"
"webpack-cli": ">=4.5.0"
},
"browserslist": [
"extends @nextcloud/browserslist-config"

View File

@ -6,6 +6,7 @@ import DataTable from "datatables.net";
import { globalConfiguration, optionDatatable } from "./modules/mainFunction.mjs";
import { Devis } from "./objects/devis.mjs";
import "./listener/main_listener";
// import { Client } from './objects/client.mjs';
window.addEventListener("DOMContentLoaded", function () {
globalConfiguration();

View File

@ -3,10 +3,11 @@ import "datatables.net-dt/css/jquery.dataTables.css";
import "../css/mycss.css";
import { getArticlesById, getMailServerFrom, getProduitsById, savePdfToNextcloud} from "./modules/ajaxRequest.mjs";
import { getGlobal, globalConfiguration } from "./modules/mainFunction.mjs";
import { globalConfiguration } from "./modules/mainFunction.mjs";
import "./listener/main_listener";
import { Client } from "./objects/client.mjs";
import { capture, sendMail, captureDevisFacture } from "./pdf";
import { showError } from "@nextcloud/dialogs";
window.addEventListener("DOMContentLoaded", function () {
globalConfiguration();

View File

@ -1,5 +1,5 @@
import { FilePicker, showError, showSuccess } from "@nextcloud/dialogs";
import { updateDB, configuration, updateEditable, deleteDB, getProduitsById, listProduit, getStatArticleAnnuel, getStatSoinsThanatoAnnuel, getStatSoinsThanatoWeekend, getArticlesById, listArticle, getObservationsById, getBijouxById, getHypodermiquesyId } from "../modules/ajaxRequest.mjs";
import { updateDB, configuration, updateEditable, deleteDB, getProduitsById, listProduit, getStatArticleAnnuel, getStatSoinsThanatoAnnuel, getStatSoinsThanatoWeekend, getArticlesById, listArticle, getObservationsById, getBijouxById, getHypodermiquesyId, genererDefunts } from "../modules/ajaxRequest.mjs";
import { path, baseUrl, updateNumerical } from "../modules/mainFunction.mjs";
import DataTable from 'datatables.net';
import { Client } from '../objects/client.mjs';
@ -27,6 +27,13 @@ $('body').on('click', '#theFolder', function () {
);
});
/**
* select year listener for stat mensuelles produits
*/
$('body').on('change', '#yearselector_statmensuellesproduits', function () {
getStatArticleAnnuel(this.value);
})
$('body').on('change', '.editableSelect', function () {
updateDB($(this).data('table'), $(this).data('column'), $(this).val(), $(this).data('id'));
});
@ -46,6 +53,8 @@ document.body.addEventListener('click', e => {
}else if (e.target.className.includes("editableNumeric")){
e.target.setAttribute('contenteditable', 'true');
e.target.focus();
}else if(e.target.className.includes("loadSelect_listclientIk")){
Client.loadClientListIK_cid(e);
}else if(e.target.className.includes("loadSelect_listclient")){
Client.loadClientList_cid(e);
}else if(e.target.className.includes("loadSelect_listthanato")){
@ -57,7 +66,10 @@ document.body.addEventListener('click', e => {
}else if(e.target.className.includes("loadSelect_listalldevis")){
Devis.loadAllDevisList_dnum(e);
}else if(e.target.className.includes("loadSelect_listDelphineDevis")){
Devis.loadDelphineDevisList_dnum(e);
// Devis.loadDevisThanatoList_dnum(e);
Devis.loadDevisByDateByLieu(e);
// Devis.loadAllDevisList_dnum(e);
// Devis.loadDelphineDevisList_dnum(e);
}else if(e.target.className.includes("loadSelect_listdefunt")){
Defunt.loadDefuntList_tid(e);
}else if(e.target.className.includes("editableSelect")){
@ -93,6 +105,8 @@ document.body.addEventListener('click', e => {
Defunt.newDefunt(new DataTable('.tabledt'));
} else if("newBibliotheque" == e.target.id) {
Bibliotheque.newBibliotheque(new DataTable('.tabledt'));
} else if("genererDefunt" == e.target.id) {
genererDefunts();
}
});
@ -384,41 +398,6 @@ $('body').on('click', '#about', function () {
modal.style.display = "block";
});
$('body').on('click', '#exportDevisToFacture', function () {
var oTable = $('.tabledt').dataTable();
var rowcollection = oTable.$(".devisToFacture:checked", {"page": "all"});
let devisToFacture = [];
rowcollection.each(function(index,elem){
var checkbox_value = $(elem).val();
devisToFacture.push(checkbox_value);
console.log("VALUE",checkbox_value);
});
if(devisToFacture.length == 0){
showError(t('gestion', "Veuillez choisir une ligne de devis à facturer"));
return;
}
let devisToFacturePayload = {
devisToFacture: devisToFacture
}
$.ajax({
url: baseUrl + '/exportDevisToFacture',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(devisToFacturePayload)
}).done(function (response) {
let datatable = new DataTable('.tabledt');
Devis.loadDevisDT(datatable);
showSuccess(t('gestion', "Devis facturés avec succès"));
}).fail(function (response, code) {
showError(t('gestion', "Erreur dans la facturation du devis"));
});
});
$('body').on('click', '#exportThanatoData', function () {
var oTable = $('.tabledt').dataTable();
var rowcollection = oTable.$(".thanatoToExport:checked", {"page": "all"});
@ -486,27 +465,4 @@ $('body').on('click', '#exportClientStat', function () {
});
});
$('body').on('click', '#exportFactureToPdf', function () {
var factureIdentifier = $('#factureIdentifier').data('id');
var exportFacturePayload = {
factureId: factureIdentifier
};
$.ajax({
url: baseUrl + '/facture/exportFactureToPdf',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(exportFacturePayload)
}).done(function (response) {
var fileNames = JSON.parse(response);
fileNames.forEach(fileName => {
showSuccess('Sauvegardé dans' + fileName);
});
}).fail(function (response, code) {
showError(t('gestion', "Please create a new hypodermique"));
});
});

View File

@ -721,3 +721,19 @@ export function getproduits(callback) {
showError(response);
});
}
/**
* Generate defunts
*/
export function genererDefunts() {
$.ajax({
url: baseUrl + '/genererDefunt',
type: 'POST',
contentType: 'application/json'
}).done(function (response) {
showSuccess('Les défunts ont bien été générés');
}).fail(function (response, code) {
showMessage(t('gestion', 'There is an error'));
error(response);
});
};

View File

@ -121,7 +121,6 @@ export function insertRow(ID, positionRow = -1, positionColumn = -1, data){
t = document.getElementById(ID);
var r = t.insertRow(positionRow);
t.delete
insertCell(r, -1, data, "statHead");
//Ajout de toutes les colonnes

View File

@ -1,3 +1,4 @@
import { showError } from "@nextcloud/dialogs";
import { updateDB } from "../modules/ajaxRequest.mjs";
import { baseUrl, checkSelectPurJs, LoadDT, removeOptions, showDone } from "../modules/mainFunction.mjs";
@ -91,6 +92,24 @@ export class Client {
oReq.send();
}
/**
*
* @param {*} callback
*/
static getClientsByDateDevis(e, callback) {
var oReq = new XMLHttpRequest();
oReq.open('PROPFIND', baseUrl + '/getClientsByDateDevis/date/'+e.target.dataset.date, true);
oReq.setRequestHeader("Content-Type", "application/json");
oReq.onload = function(e){
if (this.status == 200) {
callback(JSON.parse(this.response));
}else{
showError(this.response);
}
};
oReq.send();
}
/**
*
* @param {*} id
@ -203,4 +222,54 @@ export class Client {
e.target.appendChild(selectElement);
});
}
/**
*
* @param {*} cid
*/
static loadClientListIK_cid(e){
Client.getClientsByDateDevis(e, response => {
var selectElement = document.createElement("select");
selectElement.dataset.current = e.target.dataset.current;
selectElement.dataset.id = e.target.dataset.id;
selectElement.dataset.old = e.target.innerHTML;
selectElement.addEventListener("change", el=>{
if(el.target.value != 0){
updateDB(el.target.parentElement.dataset.table,
el.target.parentElement.dataset.column,
el.target.value,
el.target.parentElement.dataset.id
);
var parentElement = el.target.parentElement
parentElement.innerHTML = el.target.value + " " + el.target.options[el.target.selectedIndex].text;
parentElement.dataset.current = el.target.value;
}else{
var parentElement = el.target.parentElement
parentElement.innerHTML = el.target.dataset.old
}
});
var option = document.createElement("option");
option.value = 0;
option.text = t('gestion', 'Cancel');
selectElement.appendChild(option);
JSON.parse(response).forEach(myresp => {
var txt = document.createElement("textarea");
txt.innerHTML = myresp.prenom + ' ' + myresp.nom;
var option = document.createElement("option");
option.value = myresp.id;
option.text = txt.value;
selectElement.appendChild(option);
});
checkSelectPurJs(selectElement);
e.target.innerHTML = ''
e.target.appendChild(selectElement);
});
}
}

View File

@ -30,6 +30,7 @@ export class Defunt {
let myrow = [
'<div>' + this.id + '</div>', // identifiant
'<div class="editable" data-table="defunt" data-column="nom" data-id="' + this.id + '">' + this.nom + '</div>', // nom
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date_naissance + ' data-table="defunt" data-column="date_naissance" data-id="' + this.id + '"/>',
'<div id="ageDefunt-'+this.id+'">'+this.age+'</div>', // age
'<div>'+
'<select class="gestion-select" data-table="defunt" data-column="sexe" data-id="' + this.id + '">'+

View File

@ -23,66 +23,26 @@ export class Devis {
this.tid = ((myresp.tid == null || myresp.tid.length === 0) ? '-' : myresp.tid);
this.nom = ((myresp.nom == null || myresp.nom.length === 0) ? '-' : myresp.nom);
this.prenom = ((myresp.prenom == null || myresp.prenom.length === 0) ? '-' : myresp.prenom);
this.nomThanato = Devis.getDevisThanatoFullname(myresp);
this.nomThanato = ((myresp.nom_thanato == null || myresp.prenom_thanato.length === 0) ? '-' : `${myresp.nom_thanato +' '+ myresp.prenom_thanato}`);
this.version = ((myresp.version == null || myresp.version.length === 0) ? '-' : myresp.version);
this.lieu = ((myresp.lieu == null || myresp.lieu.length === 0) ? '-' : myresp.lieu);
this.mentions = ((myresp.mentions == null || myresp.mentions.length === 0) ? '-' : myresp.mentions);
this.baseUrl = generateUrl(`/apps/gestion/devis/${this.id}/show`);
this.devisFullNumber = ((myresp.devis_full_number != null && myresp.mentions.devis_full_number != 0) ? myresp.devis_full_number : '-');
this.devisProduits = Devis.getDevisProduitsString(myresp);
}
static getDevisThanatoFullname(myresp){
let thanatoPrenom = '';
let thanatoNom = '';
let thanatoFullName = '';
if(myresp.nom_thanato != null && myresp.nom_thanato.length != 0){
thanatoNom = myresp.nom_thanato;
thanatoFullName += thanatoNom;
}
if(myresp.prenom_thanato != null && myresp.prenom_thanato.length != 0){
thanatoPrenom = myresp.prenom_thanato;
if(thanatoNom.length > 0 && thanatoPrenom.length > 0){
thanatoFullName += ' '
}
thanatoFullName += thanatoPrenom;
}
return (thanatoFullName.length === 0) ? '-' : thanatoFullName;
}
static getDevisProduitsString(myresp){
let devisProduitsAsString = '';
if(myresp.produits != null && myresp.produits.length > 0){
let devisProduits = myresp.produits;
let devisProduitsLength = devisProduits.length;
for (let i = 0; i < devisProduitsLength; i++) {
devisProduitsAsString += devisProduits[i].produit_reference;
if(i != devisProduitsLength - 1){
devisProduitsAsString += '-';
}
}
}
return devisProduitsAsString.length === 0 ? '-' : devisProduitsAsString;
}
/**undefined
* Get datatable row for a devis
*/
getDTRow() {
// let signe_prop = (this.id_nextcloud.toLowerCase() == 'emmanuelle')?'propdevis-emmanuelle':(this.id_nextcloud.toLowerCase() == 'delphine')?'propdevis-delphine':'';
let signe_prop = (this.id_nextcloud.toLowerCase() == 'emmanuelle')?'propdevis-emmanuelle':(this.id_nextcloud.toLowerCase() == 'delphine')?'propdevis-delphine':'';
let myrow = [
// '<div><div class="'+signe_prop+'">' + this.user_id + '</div></div>',
'<input class="devisToFacture" data-id= '+ this.user_id + ' type="checkbox" name="devisToFacture" value="' + this.id + '"/>',
'<div>' + this.user_id + '</div>',
'<div>' + this.devisFullNumber + '</div>',
'<input style="margin:0;padding:0;" class="inputDate devisOrFactureInputDate" type="date" value=' + this.date + ' data-table="devis" data-column="date" data-id="' + this.id + '"/>',
'<div><div class="'+signe_prop+'">' + this.user_id + '</div></div>',
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date + ' data-table="devis" data-column="date" data-id="' + this.id + '"/>',
// '<div class="editable" data-table="devis" data-column="num" data-id="' + this.id + '" style="display:inline">' + this.num + '</div>',
'<div class="loadSelect_listdefunt" data-table="devis" data-column="id_defunt" data-id="' + this.id + '" data-current="' + this.id_defunt + '">'+ this.id_defunt + ' (' + this.nom_defunt + ')</div>',
'<div class="loadSelect_listclient" data-table="devis" data-column="id_client" data-id="' + this.id + '" data-current="' + this.cid + '">'+ this.cid + ' (' + this.prenom + ' ' + this.nom + ')</div>',
'<div class="loadSelect_listthanato" data-table="devis" data-column="id_thanato" data-id="' + this.id + '" data-current="' + this.tid + '">'+ this.tid + ' (' + this.nomThanato+ ')</div>',
'<div class="loadSelect_listlieu" data-table="devis" data-column="id_lieu" data-id="' + this.id + '" data-current="' + this.lid + '">' + this.lieu + '</div>',
'<div>' + this.devisProduits + '</div>',
(this.mentions == "factur&eacute;")?('<div data-table="devis" data-column="mentions" data-id="' + this.id +'" style="display:inline; border-radius: 5px; padding: 8px;background-color:green !important; color: white">'+ this.mentions + '</div>'):('<div data-table="devis" data-column="mentions" data-id="' + this.id +'" style="display:inline; border-radius: 5px; padding: 8px;background-color:yellow !important">'+ this.mentions + '</div>'),
'<div style="display:inline-block;margin-right:0px;width:80%;"><a href="' + this.baseUrl + '"><button>' + t('gestion', 'Open') + '</button></a></div><div data-modifier="devis" data-id=' + this.id + ' data-table="devis" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></div>'
];
@ -113,11 +73,10 @@ export class Devis {
*/
static loadDevisDT(devisDT) {
var oReq = new XMLHttpRequest();
oReq.open('PROPFIND', baseUrl + '/getDevisWithProduits', true);
oReq.open('PROPFIND', baseUrl + '/getDevis', true);
oReq.setRequestHeader("Content-Type", "application/json");
oReq.onload = function(e){
if (this.status == 200) {
console.log(this.response);
// let devis_temp = (JSON.parse(JSON.parse(this.response))).filter((d)=>(d.mentions != "factur&eacute;"));
// devis_temp = JSON.stringify(JSON.stringify(devis_temp));
LoadDT(devisDT, JSON.parse(this.response), Devis);
@ -160,6 +119,40 @@ export class Devis {
oReq.send();
}
static getDevisByThanato(idThanato, callback) {
var oReq = new XMLHttpRequest();
oReq.open('PROPFIND', baseUrl + '/getDevisByThanato/'+idThanato, true);
oReq.setRequestHeader("Content-Type", "application/json");
oReq.onload = function(e){
if (this.status == 200) {
let devis_temp = (JSON.parse(JSON.parse(this.response)));
devis_temp = JSON.stringify(JSON.stringify(devis_temp));
callback(JSON.parse(devis_temp));
}else{
showError(this.response);
}
};
oReq.send();
}
static getDevisByDateByLieu(e, callback) {
var oReq = new XMLHttpRequest();
const id_client = (e.target.dataset.idclient == '-') ? 0 : e.target.dataset.idclient;
const id_lieu = (e.target.dataset.idlieu == '-') ? 0 : e.target.dataset.idlieu;
oReq.open('PROPFIND', baseUrl + '/devis/'+e.target.dataset.id+'/client/'+id_client+'/date/'+e.target.dataset.date+'/lieu/'+id_lieu, true);
oReq.setRequestHeader("Content-Type", "application/json");
oReq.onload = function(e){
if (this.status == 200) {
let devis_temp = (JSON.parse(JSON.parse(this.response)));
devis_temp = JSON.stringify(JSON.stringify(devis_temp));
callback(JSON.parse(devis_temp));
}else{
showError(this.response);
}
};
oReq.send();
}
static getAllDevisDelphine(e, callback){
var oReq = new XMLHttpRequest();
oReq.open('PROPFIND', baseUrl + '/getDevisDelphine/'+e.target.dataset.id, true);
@ -176,6 +169,55 @@ export class Devis {
oReq.send();
}
static loadDevisByDateByLieu(e) {
Devis.getDevisByDateByLieu(e, response => {
var selectElement = document.createElement("select");
selectElement.dataset.current = e.target.dataset.current;
selectElement.dataset.id = e.target.dataset.id;
selectElement.dataset.old = e.target.innerHTML;
selectElement.addEventListener("change", el=>{
if(el.target.value != 0){
updateDB(el.target.parentElement.dataset.table,
el.target.parentElement.dataset.column,
el.target.value,
el.target.parentElement.dataset.id
);
location.reload();
var parentElement = el.target.parentElement;
parentElement.innerHTML = el.target.options[el.target.selectedIndex].text;
parentElement.dataset.current = el.target.value;
}else{
var parentElement = el.target.parentElement
parentElement.innerHTML = el.target.dataset.old
}
});
var option = document.createElement("option");
option.value = 0;
option.text = t('gestion', 'Cancel');
selectElement.appendChild(option);
JSON.parse(response).forEach(myresp => {
var nomClient = (myresp.prenom&&myresp.nom) ? ((myresp.prenom?myresp.prenom:'') + ' ' + (myresp.nom?myresp.nom:'')) : '-';
var nomDefunt = myresp.nom_defunt ? myresp.nom_defunt : '-';
var txt = document.createElement("textarea");
txt.innerHTML = nomDefunt + ' (' + nomClient +')';
var option = document.createElement("option");
option.value = myresp.id;
option.text = txt.value;
selectElement.appendChild(option);
});
checkSelectPurJs(selectElement);
e.target.innerHTML = ''
e.target.appendChild(selectElement);
});
}
static loadDevisList_dnum(e){
Devis.getDevis( response => {
var selectElement = document.createElement("select");
@ -274,8 +316,8 @@ export class Devis {
});
}
static loadDelphineDevisList_dnum(e){
Devis.getAllDevisDelphine( e, response => {
static loadDevisThanatoList_dnum(idThanato) {
Devis.getDevisByThanato(idThanato, response => {
var selectElement = document.createElement("select");
selectElement.dataset.current = e.target.dataset.current;
selectElement.dataset.id = e.target.dataset.id;
@ -322,4 +364,53 @@ export class Devis {
e.target.appendChild(selectElement);
});
}
static loadDelphineDevisList_dnum(e){
Devis.getAllDevisDelphine( e, response => {
var selectElement = document.createElement("select");
selectElement.dataset.current = e.target.dataset.current;
selectElement.dataset.id = e.target.dataset.id;
selectElement.dataset.old = e.target.innerHTML;
selectElement.addEventListener("change", el=>{
if(el.target.value != 0){
updateDB(el.target.parentElement.dataset.table,
el.target.parentElement.dataset.column,
el.target.value,
el.target.parentElement.dataset.id
);
location.reload();
var parentElement = el.target.parentElement;
parentElement.innerHTML = el.target.options[el.target.selectedIndex].text;
parentElement.dataset.current = el.target.value;
} else {
var parentElement = el.target.parentElement
parentElement.innerHTML = el.target.dataset.old
}
});
var option = document.createElement("option");
option.value = 0;
option.text = t('gestion', 'Cancel');
selectElement.appendChild(option);
JSON.parse(response).forEach(myresp => {
var nomClient = (myresp.prenom&&myresp.nom) ? ((myresp.prenom?myresp.prenom:'') + ' ' + (myresp.nom?myresp.nom:'')) : '-';
var nomDefunt = myresp.nom_defunt ? myresp.nom_defunt : '-';
var txt = document.createElement("textarea");
txt.innerHTML = nomDefunt + ' (' + nomClient +')';
var option = document.createElement("option");
option.value = myresp.id;
option.text = txt.value;
selectElement.appendChild(option);
});
checkSelectPurJs(selectElement);
e.target.innerHTML = ''
e.target.appendChild(selectElement);
});
}
}

View File

@ -1,7 +1,6 @@
import { showError } from "@nextcloud/dialogs";
import { generateUrl } from "@nextcloud/router";
import { baseUrl, LoadDT, showDone } from "../modules/mainFunction.mjs";
import { Devis } from "./devis.mjs";
export class Facture {
@ -25,7 +24,6 @@ export class Facture {
this.status_paiement = ((myresp.status_paiement == null || myresp.status_paiement.length === 0) ? '-' : myresp.status_paiement);
this.id_devis = ((myresp.id_devis == null || myresp.id_devis.length === 0) ? '-' : myresp.id_devis);
this.baseUrl = generateUrl(`/apps/gestion/facture/${this.id}/show`);
this.factureProduits = Devis.getDevisProduitsString(myresp);
}
/**
@ -35,12 +33,11 @@ export class Facture {
let myrow = [
'<div>' + this.user_id + '</div>',
'<div class="factureNum" data-table="facture" data-column="num" data-id="' + this.id + '">' + this.num + '</div>',
'<input style="margin:0;padding:0;" class="inputDate devisOrFactureInputDate" type="date" value=' + this.date + ' data-table="facture" data-column="date" data-id="' + this.id + '"/>',
'<input style="margin:0;padding:0;" class="inputDate devisOrFactureInputDate" type="date" value=' + this.date_paiement + ' data-table="facture" data-column="date_paiement" data-id="' + this.id + '"/>',
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date + ' data-table="facture" data-column="date" data-id="' + this.id + '"/>',
'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date_paiement + ' data-table="facture" data-column="date_paiement" data-id="' + this.id + '"/>',
'<div class="editable" data-table="facture" data-column="type_paiement" data-id="' + this.id + '">' + this.type_paiement + '</div>',
'<div class="loadSelect_listdevis" data-table="facture" data-column="id_devis" data-id="' + this.id + '" data-current="' + this.id_devis + '">' + this.nom_defunt + ' | <span style="font-size: 0.7rem">' + this.prenom + ' ' + this.nom + '</span></div>',
'<div class="" data-table="facture" data-column="" data-id="' + this.id + '" style="display:inline">' + this.lieu + '</div>',
'<div>' + this.factureProduits + '</div>',
'<div class="editable" data-table="facture" data-column="status_paiement" data-id="' + this.id + '" style="display:inline">' + this.status_paiement + '</div>',
'<div style="display:inline-block;margin-right:0px;width:80%;"><a href="' + this.baseUrl +'"><button>' + t('gestion', 'Open') + '</button></a></div><div data-modifier="facture" data-id=' + this.id + ' data-table="facture" style="display:inline-block;margin-right:0px;" class="deleteItem icon-delete"></div>',
];
@ -49,7 +46,7 @@ export class Facture {
static loadFactureDT(factureDT) {
var oReq = new XMLHttpRequest();
oReq.open('PROPFIND', baseUrl + '/getFacturesWithProduits', true);
oReq.open('PROPFIND', baseUrl + '/getFactures', true);
oReq.setRequestHeader("Content-Type", "application/json");
oReq.onload = function(e){
if (this.status == 200) {

View File

@ -21,7 +21,7 @@ export class Lieu {
*/
getDTRow() {
let myrow = [
'<div>' + this.id + '</div>',
'<div>' + this.user_id + '</div>',
'<div class="editable" data-table="lieu" data-column="nom" data-id="' + this.id + '" style="display:inline">' + this.nom + '</div>',
'<div class="editable" data-table="lieu" data-column="adresse" data-id="' + this.id + '" style="display:inline">' + this.adresse + '</div>',
'<div class="editable" data-table="lieu" data-column="latitude" data-id="' + this.id + '" style="display:inline">' + this.latitude + '</div>',

View File

@ -126,4 +126,4 @@ export class Thanatopracteur {
e.target.appendChild(selectElement);
});
}
}
}

View File

@ -9,12 +9,11 @@ export class TrajetDetails {
* @param myresp instantiate trajet object
*/
constructor(myresp) {
console.log(myresp);
this.id = myresp.id;
this.user_id = myresp.user_id;
this.id_nextcloud = myresp.id_nextcloud;
this.date = ((myresp.date == null || myresp.date.length === 0) ? '-' : myresp.date);
this.lid = ((myresp.id_lieu == null || myresp.id_lieu.length === 0) ? '-' : myresp.id_lieu);
this.lid = ((myresp.lid == null || myresp.lid.length === 0) ? '-' : myresp.lid);
this.lieu = ((myresp.lieu == null || myresp.lieu.length === 0) ? '-' : myresp.lieu);
this.cid = ((myresp.cid == null || myresp.cid.length === 0) ? '-' : myresp.cid);
this.cnom = ((myresp.cnom == null || myresp.cnom.length === 0) ? '-' : myresp.cnom);
@ -29,7 +28,7 @@ export class TrajetDetails {
this.source = ((myresp.source == null || myresp.source.length === 0) ? '-' : myresp.source);
}
/**undefined
/**
* Get datatable row for a trajet
*/
getDTRow() {
@ -37,8 +36,8 @@ export class TrajetDetails {
'<div>' + this.user_id + '</div>',
(this.source.toLowerCase() == 'devis' || this.source.toLowerCase() == 'h2f')?('<div>'+this.rang+'</div>'):'<div class="editableNumber" data-table="ligne_trajet" data-column="rang" data-id="' + this.id + '" style="display:inline">' + this.rang + '</div>',
(this.source.toLowerCase() == 'devis' || this.source.toLowerCase() == 'h2f')?('<div>'+TrajetDetails.convert_date(this.date)+'</div>'):'<input style="margin:0;padding:0;" class="inputDate" type="date" value=' + this.date + ' data-table="ligne_trajet" data-column="date" data-id="' + this.id + '"/>',
(this.source.toLowerCase() == 'devis' || this.source.toLowerCase() == 'h2f')?('<div>'+this.cprenoms+' '+this.cnom+'</div>'):'<div class="loadSelect_listclient"' +' data-table="ligne_trajet" data-column="id_client" data-id="' + this.id + '" data-current="' + this.cid + '">'+ this.cid + ' (' + this.cprenoms + ' ' + this.cnom + ')</div>',
(this.source.toLowerCase() == 'devis' || this.source.toLowerCase() == 'h2f')?('<div>' + this.nom_defunt + ' | <span style="font-size: 0.7rem">' + this.dprenoms + ' ' + this.dnom + '</span></div>'):('<div><span>-</span></div>'),
(this.source.toLowerCase() == 'devis' || this.source.toLowerCase() == 'h2f')?('<div>'+this.cprenoms+' '+this.cnom+'</div>'):'<div class="loadSelect_listclientIk"' +' data-table="ligne_trajet" data-column="id_client" data-id="' + this.id + '" data-current="' + this.cid + '" data-date="'+this.date+'">'+ this.cid + ' (' + this.cprenoms + ' ' + this.cnom + ')</div>',
(this.source.toLowerCase() == 'devis' || this.source.toLowerCase() == 'h2f')?('<div>' + this.nom_defunt + ' | <span style="font-size: 0.7rem">' + this.dprenoms + ' ' + this.dnom + '</span></div>'):'<div class="loadSelect_listDelphineDevis"' +' data-table="ligne_trajet" data-column="id_devis" data-id="' + this.id + '" data-current="' + this.did + '" data-date="'+this.date+'" data-idlieu="'+this.lid+'" data-idclient="'+this.cid+'">' + this.nom_defunt + ' | <span style="font-size: 0.7rem">' + this.dprenoms + ' ' + this.dnom + '</span></div>',
(this.source.toLowerCase() == 'devis' || this.source.toLowerCase() == 'h2f')?('<div>'+this.lieu+'</div>'):'<div class="loadSelect_listlieu"' +' data-table="ligne_trajet" data-column="id_lieu" data-id="' + this.id + '" data-current="' + this.lid + '">' + this.lieu + '</div>',
'<div class="editable" data-table="ligne_trajet" data-column="commentaire" data-id="' + this.id + '" style="display:inline">' + this.commentaire + '</div>',
'<div data-table="ligne_trajet" data-column="user_id" data-id="' + this.id + '" style="display:inline">' + this.didnextcloud + '</div>',

View File

@ -18,7 +18,6 @@ export function sendMail(myData) {
}
export async function captureDevisFacture(afterCapturefunction, date_context, defunt, lieusoin, etp) {
$(".bootstrap-iso").css("height", "2280px");
$(".bootstrap-iso").css("margin-bottom", "100px");
$(".bootstrap-iso").css("padding", "64px");
@ -101,9 +100,6 @@ function genPDF(imgData, canvas) {
var subject = $("#subject").val();
var body = $("#body").val();
let defunt = document.getElementById("nomdefunt").innerText;
let lieusoin = document.getElementById("lieusoin").innerText;
if ($("#factureid").length) {
n = t("gestion", "INVOICE") + "-" + defunt.toUpperCase() + '_' + lieusoin.toUpperCase();
} else {

View File

@ -131,7 +131,7 @@
<div class="row">
<div class="col col-md">
<div class="col col-xl text-center">
<span>Date de soin : <b><?php echo (new DateTime($d->date))->format('d-m-Y');?></b>,</span>&nbsp;<span id="devisid" data-id=<?php echo $d->id;?>>Defunt associé : <b><?php echo $d->num;?></b></span><br/>
<span>Date de soin : <b><?php echo (new DateTime($d->date))->format('d-m-Y');?></b>,</span>&nbsp;<span id="devisid" data-id=<?php echo $d->id;?>>Defunt associé : <b><?php echo $d->nom_defunt;?></b></span><br/>
<span>Lieu : <b><?php echo $d->lieu;?> (<?php echo $d->adresse_soin;?>)</b>
</div>
</div>

View File

@ -3,6 +3,7 @@
<div class="d-flex justify-content-between">
<form method="get" class="d-flex flex-row align-items-center">
<select name="cli" id="clientselector">
<option value='0' <?php if( $_GET['cli'] == 0) echo 'selected' ?>>COGF</option>
<?php
foreach ($_['clients'] as $key => $client) {
?>
@ -12,12 +13,14 @@
?>
</select>&nbsp;&nbsp;
<select name="annee" id="yearselector">
<option value="-1" <?php if((int) $_GET['annee'] == -1) echo 'selected' ?>>Toutes les années</option>
<option value="-1" <?php if ((int)$_GET['annee'] == -1) echo 'selected' ?>>Toutes les années</option>
<?php
$currentYear = date('Y');
for ($year = $currentYear; $year >= $currentYear - 10; $year--) {
echo '<option value="' . $year . '" ' . ((int)$_GET['annee'] == $year ? 'selected' : '') . '>' . $year . '</option>';
}
echo '<option value="' . $year . '"';
if ((int)$_GET['annee'] == $year) echo ' selected';
echo '>' . $year . '</option>';
}
?>
</select>&nbsp;&nbsp;
<select name="mois" id="monthselector">
@ -122,7 +125,7 @@
<hr/>
<div class="col col-xl text-center">
<span>Date de facture : <b><?php echo (new DateTime($facture->date_paiement))->format('d-m-Y');?></b>, </span><span><?php p($l->t('Date of service'));?> : <b><?php echo (new DateTime($facture->date))->format('d-m-Y');?></b></span><br/>
<span id="devisid" data-id=<?php echo $facture->id_devis;?>>Défunt associé : <b><?php echo $facture->dnum;?></b>, </span><span><?php p($l->t('Means of payment'));?> : <b><?php echo $facture->type_paiement;?></b></span><br/>
<span id="devisid" data-id=<?php echo $facture->id_devis;?>>Défunt associé : <b><?php echo $facture->nom_defunt;?></b>, </span><span><?php p($l->t('Means of payment'));?> : <b><?php echo $facture->type_paiement;?></b></span><br/>
<span>Lieu : <b><?php echo $facture->lieu;?> (<?php echo $facture->adresse_soin;?>)</b>
</div>
</div>

View File

@ -16,6 +16,7 @@
<tr>
<th><?php p($l->t('ID'));?></th>
<th>Nom</th>
<th>Date de naissance</th>
<th>Âge</th>
<th>Sexe</th>
<th>Référence pacemaker</th>
@ -28,4 +29,4 @@
<tbody>
</tbody>
</table>
</div>
</div>

View File

@ -321,7 +321,7 @@
<table id="hypodermiques" class="table table-striped">
<thead>
<tr>
<th>Quantité</th>
<th>Quantité (l)</th>
<th>Désignation</th>
<th>Endroit</th>
<th>Actions</th>
@ -437,4 +437,4 @@
<button id="rapportSoinBtn" class="btn btn-secondary" type="button">Générer le rapport de soins</button>
<button id="rapportBijouxBtn" class="btn btn-secondary" type="button">Générer le rapport des bijoux</button>
</div>
</div>
</div>

View File

@ -13,13 +13,7 @@
</button>
</div>
</div>
<div class="d-flex jsutify-content-end">
<button class="btn btn-secondary" id="apercusDevis">Voir les aperçus</button>
</div>
<div class="d-flex jsutify-content-end">
<button class="btn btn-secondary" id="exportDevisToFacture">Facturer</button>
</div>
<!-- <div class="d-flex justify-content-between">
<div class="d-flex justify-content-between">
<div class="d-flex flex-column">
<div class="d-flex flex-row align-items-center"><div class="emmanuelle"></div>&nbsp; <div>Emmanuelle</div></div>
<div class="d-flex flex-row align-items-center"><div class="delphine"></div>&nbsp; <div>Delphine</div></div>
@ -27,21 +21,18 @@
<div>
<button class="btn btn-secondary" id="apercusDevis">Voir les aperçus</button>
</div>
</div> -->
</div>
<hr>
<table id="devis" class="display tabledt devisDataTable">
<table id="devis" class="display tabledt">
<thead>
<tr>
<th></th>
<th><?php p($l->t('ID'));?></th>
<th><?php p($l->t('Numéro de devis'));?></th>
<th><?php p($l->t('Quote date'));?></th>
<!-- <th>Nom du défunt</th> -->
<th>Défunt</th>
<th><?php p($l->t('Customer quote'));?></th>
<th>Thanatopracteur</th>
<th>Lieu</th>
<th><?php p($l->t('Articles'));?></th>
<!-- <th>Chambre funéraire</th> -->
<th><?php p($l->t('Status'));?></th>
<th><?php p($l->t('Actions'));?></th>
</tr>

View File

@ -1,6 +1,6 @@
<div class="bootstrap-iso">
<h2 class="mt-3 mb-3 text-center"> <?php p($l->t('Quote'));?>
<div id="devisid" style="display:inline" class="editable" data-table="devis" data-column="num" data-id="<?php echo $_['devis'][0]->devisid; ?>">sur le defunt <?php echo $_['devis'][0]->nom_defunt; ?></div>
<div id="devisid" style="display:inline" data-table="devis" data-column="num" data-id="<?php echo $_['devis'][0]->devisid; ?>">sur le defunt <?php echo $_['devis'][0]->nom_defunt; ?></div>
<span data-html2canvas-ignore>(</span> <div data-html2canvas-ignore id="devisversion" style="display:inline" data-table="devis" data-column="version" data-id="<?php echo $_['devis'][0]->id; ?>"><?php echo $_['devis'][0]->lieu; ?>)</div>
</h2>
<hr />
@ -133,4 +133,4 @@
<div class="col m-0 pb-0 alert alert-info text-center">
<p><?php echo $res->entreprise; ?><br /><?php echo $res->adresse; ?><br /><?php echo $res->legal_one; ?><br/><?php echo $res->legal_two; ?></p>
</div>
</div>
</div>

View File

@ -32,7 +32,6 @@
<th><?php p($l->t('Means of payment'));?></th>
<th>Devis associé</th>
<th>Lieu</th>
<th><?php p($l->t('Articles'));?></th>
<th><?php p($l->t('Status'));?></th>
<th><?php p($l->t('Actions'));?></th>
</tr>

View File

@ -2,7 +2,6 @@
<div class="d-flex flex-column w-100">
<h2 class="mt-3 mb-3 text-center"><?php p($l->t('Invoice #'));?>
<div id="factureid" style="display:inline"><?php echo $_['facture'][0]->num;?></div>
<div id="factureIdentifier" data-id="<?php echo $_['facture'][0]->id;?>" class="d-none"></div>
</h2>
<hr/>
<div class="row">
@ -38,7 +37,7 @@
<span id="nomcli" class="d-none"></span>
<span id="idcli" class="d-none"></span>
<span id="etp" class="d-none"></span>
<span id="lieusoin" class="d-none"><?php echo $_['devis'][0]->lieu; ?></span>
<span id="lieusoin" class="d-none"><?php echo $_['facture'][0]->lieu; ?></span>
<span id="nomdefunt" class="d-none"><?php echo $_['facture'][0]->nom_defunt;?></span>
</p>
</div>
@ -61,10 +60,7 @@
<hr />
</div>
</div>
<div class="d-flex justify-content-between align-items-center">
<div><h2>Articles</h2></div>
<button id="devisAdd" type="button" class="mb-2 btn btn-outline-success" data-html2canvas-ignore>Ajouter article</button>
</div>
<div><h2>Articles</h2></div>
<hr>
<div class="table-responsive">
<table id="produits" class="table table-striped">
@ -82,10 +78,7 @@
</tbody>
</table>
</div>
<div class="d-flex justify-content-between align-items-center">
<div><h2>Produits</h2></div>
<button id="devisAddProduit" type="button" class="mb-2 btn btn-outline-success" data-html2canvas-ignore>Ajouter produit</button>
</div>
<div><h2>Produits</h2></div>
<hr>
<div class="table-responsive">
<table id="articles" class="table table-striped">
@ -105,7 +98,7 @@
</div>
<hr>
<div>
<button id="exportFactureToPdf" type="button" class="mb-2 btn btn-outline-success" data-html2canvas-ignore data-name=""><?php p($l->t('Save in Nextcloud'));?></button>
<button id="pdf" type="button" class="mb-2 btn btn-outline-success" data-html2canvas-ignore data-name=""><?php p($l->t('Save in Nextcloud'));?></button>
<button id="mailGestion" type="button" class="mb-2 btn btn-outline-success sendmail" data-html2canvas-ignore data-name=""><?php p($l->t('Send by email'));?></button>
</div>
<div class="mt-0 table-responsive">

View File

@ -144,4 +144,4 @@
<tbody>
</tbody>
</table>
</div>
</div>

View File

@ -34,12 +34,12 @@
<th>Client</th>
<th>Soin</th>
<th>Lieu</th>
<th>Commentaire</th>
<th>Auteur devis</th>
<th>Commentaire</th>
<th><?php /*Auteur devis*/?></th>
<th><?php p($l->t('Actions'));?></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>

View File

@ -0,0 +1,45 @@
<div id="contentTable">
<div class="breadcrumb" data-html2canvas-ignore>
<div class="crumb svg crumbhome">
<a href="<?php echo($_['url']['index']); ?>" class="icon-home"></a>
<span style="display: none;"></span>
</div>
<div class="crumb svg crumbhome">
<span>Trajet</span>
</div>
<div class="crumb svg crumbhome">
<span>Details</span>
</div>
<div class="crumb svg crumbhome">
<button style="margin-left:3px;" type="button" id="newTrajetdetails">
Ajouter une ligne
</button>
</div>
</div>
<div class="d-flex justify-content-between align-items-center">
<div>
<div>Thanatopracteur : <?php if($_['trajet'][0]->prenom_thanato!=NULL) echo $_['trajet'][0]->prenom_thanato ?> <?php if($_['trajet'][0]->nom_thanato!=NULL) echo $_['trajet'][0]->nom_thanato ?></div>
</div>
<div>
<button class="btn btn-secondary" id="saveIk">Sauvegarder dans nextcloud</button>
</div>
</div>
<hr>
<table id="trajetsdetails" class="display tabledt">
<thead>
<tr>
<th><?php p($l->t('ID'));?></th>
<th>Rang</th>
<th>Date</th>
<th>Client</th>
<th>Soin</th>
<th>Lieu</th>
<th>Commentaire</th>
<th>Auteur devis</th>
<th><?php p($l->t('Actions'));?></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>

View File

@ -0,0 +1,87 @@
<ul class="app-navigation">
<li class="app-navigation-entry"><span class="navmarg"></span><b><?php p($l->t('Manage'));?></b></li>
<li class="app-navigation-entry">
<ul class="app-navigation">
<li class="app-navigation-entry"><span class="navmarg icon-contacts-dark"></span><a class="a-entry" href="<?php echo($_['url']['index']); ?>"><?php p($l->t('Customers'));?></a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsclient"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-contacts-dark"></span><a href="<?php echo($_['url']['thanatopracteur']); ?>">Thanatopracteurs</a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsthanato"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-contacts-dark"></span><a href="<?php echo($_['url']['defunt']); ?>">Défunts</a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsdefunts"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-template-add"></span><a href="<?php echo($_['url']['devis']); ?>"><?php p($l->t('Quotes'));?></a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsdevis"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-toggle-pictures"></span><a href="<?php echo($_['url']['trajet']); ?>">Trajets</a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statstrajet"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-toggle-pictures"></span><a href="<?php echo($_['url']['lieu']); ?>">Lieux</a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statslieu"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<?php if(strcmp($_['path'], 'Delphine')>0) {?>
<li class="app-navigation-entry"><span class="navmarg icon-toggle-pictures"></span><a href="<?php echo($_['url']['facture']); ?>"><?php p($l->t('Invoices'));?></a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsfacture"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<?php } ?>
<li class="app-navigation-entry"><span class="navmarg icon-category-integration"></span><a href="<?php echo($_['url']['produit']); ?>">Articles</a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsproduit"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-category-integration"></span><a href="<?php echo($_['url']['article']); ?>">Produits</a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsarticles"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-category-integration"></span><a href="<?php echo($_['url']['bibliotheque']); ?>">Bibliothèques</a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsbibliotheque"><div class="loader"></div></span></li>
</ul>
</div>
</li>
</ul>
</li>
<li class="app-navigation-entry"><span class="navmarg"></span><b><?php p($l->t('Information'));?></b></li>
<li class="app-navigation-entry">
<ul class="app-navigation">
<li class="app-navigation-entry"><span class="navmarg icon-toggle-pictures"></span><a href="<?php echo($_['url']['statistique']); ?>"><?php p($l->t('Statistics'));?></a></li>
<!-- <li class="app-navigation-entry"><span class="navmarg icon-toggle-pictures"></span><a href="<?php echo($_['url']['legalnotice']); ?>"><?php p($l->t('Legal notice'));?></a></li> -->
</ul>
</li>
<!-- <li><center><a href="#"><button id="about" style="margin-left:10px;width:280px;"><?php p($l->t('About'));?></button></a></center></li> -->
</ul>

View File

@ -17,6 +17,13 @@
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-template-add"></span><a href="<?php echo($_['url']['devis']); ?>"><?php p($l->t('Quotes'));?></a>
<div class="app-navigation-entry-utils">
<ul>
<li class="app-navigation-entry-utils-counter"><span id="statsdevis"><div class="loader"></div></span></li>
</ul>
</div>
</li>
<li class="app-navigation-entry"><span class="navmarg icon-toggle-pictures"></span><a href="<?php echo($_['url']['lieu']); ?>">Lieux</a>
<div class="app-navigation-entry-utils">
<ul>

View File

@ -0,0 +1,14 @@
<div id="app-settings">
<div id="app-settings-header">
<button class="settings-button" data-apps-slide-toggle="#app-settings-content">
<?php p($l->t('Configuration'));?>
</button>
</div>
<div id="app-settings-content">
<ul>
<li><center><a href="<?php echo($_['url']['config']); ?>"><button style="width:270px;"><?php p($l->t('My company'));?></button></a></center></li>
<li><hr/></li>
<li><label><b><?php p($l->t('Save folder'));?></b></label><input id="theFolder" data-table="configuration" data-column="path" data-id="" type="text" placeholder="<?php p($l->t('Please choose a folder'));?>"></li>
</ul>
</div>
</div>

942
gestion/tests/dataset.sql Normal file
View File

@ -0,0 +1,942 @@
INSERT INTO `oc_gestion_client` (`nom`,`prenom`,`legal_one`,`entreprise`,`telephone`,`mail`,`adresse`,`id_nextcloud`)
VALUES
("Giacomo","Preston","322843667874IGR","Ipsum Donec Sollicitudin LLP","1-897-636-5129","eget@yahoo.org","P.O. Box 667, 4464 Ut, Road","nextcloud"),
("Deirdre","Puckett","058034458584QFN","Urna Justo Associates","1-373-358-5748","consectetuer.rhoncus.nullam@google.edu","457-2543 Quis Rd.","nextcloud"),
("Amanda","Espinoza","531157120828FYM","Auctor Odio A Industries","1-944-437-1312","turpis.nulla@google.couk","917-3650 Lorem, St.","nextcloud"),
("Odette","Dawson","466143582715TCR","Donec Foundation","1-365-885-2143","dictum.cursus@yahoo.edu","Ap #698-3925 Sociis St.","nextcloud"),
("Justine","Butler","526822069123MHR","Dolor Vitae Dolor Industries","(424) 534-2571","faucibus.morbi.vehicula@yahoo.ca","Ap #820-507 Lorem Street","nextcloud");
INSERT INTO `oc_gestion_client` (`nom`,`prenom`,`legal_one`,`entreprise`,`telephone`,`mail`,`adresse`,`id_nextcloud`)
VALUES
("Owen","Stout","912464592077ZKP","Ante Industries","1-530-735-0277","mollis.duis.sit@yahoo.edu","514-6230 Sem Avenue","nextcloud"),
("Zachery","Mcfarland","827163659628HRB","Massa Incorporated","1-863-996-4857","quam.vel@aol.org","Ap #872-6344 Litora Road","nextcloud"),
("Linda","Flynn","518483623376JAS","Enim Curabitur Institute","(645) 110-1423","sit.amet.metus@hotmail.edu","Ap #742-9122 Lobortis Street","nextcloud"),
("Warren","Terrell","673851558811NPK","Dis Parturient Associates","(364) 168-2366","id.blandit.at@outlook.org","Ap #998-8076 Etiam St.","nextcloud"),
("Kim","Garza","267174262241SWP","Mus Institute","(494) 484-7126","leo.morbi@outlook.couk","2681 Ultrices St.","nextcloud"),
("Orli","Jarvis","788252588553TDO","Enim Consequat Inc.","(658) 335-8743","mattis.integer@hotmail.net","8215 Massa Ave","nextcloud"),
("Henry","Simpson","353883158548DIP","Arcu Et Foundation","(224) 449-8748","pede.suspendisse@aol.couk","2195 Vitae St.","nextcloud"),
("Moana","Terry","439716935068YPS","Eleifend Nunc Risus LLP","1-958-299-5225","vitae@google.edu","P.O. Box 126, 3952 Ipsum. Av.","nextcloud"),
("Benedict","Waters","135856242832JBJ","Aliquam Iaculis Consulting","1-339-270-0330","non.lorem@protonmail.net","Ap #200-2780 Diam Av.","nextcloud"),
("Camilla","Carroll","175171361712MNT","Arcu Vestibulum Ut PC","(687) 554-3946","ullamcorper.velit@icloud.com","P.O. Box 313, 5902 Felis. Road","nextcloud");
INSERT INTO `oc_gestion_client` (`nom`,`prenom`,`legal_one`,`entreprise`,`telephone`,`mail`,`adresse`,`id_nextcloud`)
VALUES
("Henry","Mccoy","788465240241EJR","Lobortis Augue Ltd","(893) 253-7757","ligula.elit@hotmail.ca","676-6920 Iaculis St.","nextcloud"),
("Alexa","Pennington","548870623359YBM","A Odio Semper Corp.","1-217-589-5248","luctus@hotmail.org","804-8229 Sapien Av.","nextcloud"),
("Naida","Floyd","024429578775OYQ","Sagittis Limited","1-959-367-1733","magna.malesuada.vel@aol.edu","884-481 Ultrices St.","nextcloud"),
("Jescie","Weeks","338670582848OVD","Bibendum Fermentum Metus Limited","(334) 715-0517","rutrum.non@yahoo.net","P.O. Box 677, 3225 Tempor St.","nextcloud"),
("Judith","Mccarthy","929753454775NIY","Ut Quam Ltd","(263) 173-0411","sit.amet@aol.com","Ap #352-5918 Lacus. St.","nextcloud"),
("Barbara","Alston","287875701943MEL","Maecenas Mi Industries","1-252-302-7586","sociis.natoque.penatibus@hotmail.ca","Ap #328-1540 Dignissim St.","nextcloud"),
("Whoopi","Fowler","683884472857DOF","Amet Foundation","(761) 296-1344","imperdiet.erat.nonummy@hotmail.org","4219 Cursus Street","nextcloud"),
("Simon","Lancaster","628132960861DEJ","Per Conubia Institute","1-645-426-3261","dapibus.quam@aol.net","169-896 Vel St.","nextcloud"),
("Alec","Donaldson","138565369159CCY","Pede Nonummy Company","(858) 472-6554","nullam.nisl@hotmail.ca","P.O. Box 162, 9059 Nonummy St.","nextcloud"),
("Giselle","Simmons","973851578138KSR","Molestie In Industries","1-545-252-4772","fringilla.donec@hotmail.couk","Ap #775-6084 Nunc Rd.","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("XGW22BSY1EB","sit amet ultricies sem magna","13.71","nextcloud"),
("UWF46NXU3BN","nec quam. Curabitur vel lectus.","84.63","nextcloud"),
("NDT49RKS7LN","dolor. Donec fringilla. Donec feugiat","16.47","nextcloud"),
("QOY48XMS6CO","sem magna nec quam. Curabitur","08.53","nextcloud"),
("ATH98SIK3YD","Phasellus dolor elit, pellentesque a,","58.81","nextcloud"),
("DJY63OUW5YW","magna nec quam. Curabitur vel","81.92","nextcloud"),
("MBM41QFE5FP","purus. Duis elementum, dui quis","57.37","nextcloud"),
("FEM69UDR4WY","auctor, velit eget laoreet posuere,","38.98","nextcloud"),
("QVL95KIT5YG","sagittis placerat. Cras dictum ultricies","52.09","nextcloud"),
("SRI53CVN7IR","eleifend non, dapibus rutrum, justo.","97.41","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("WSS45IFH1LF","Etiam gravida molestie arcu. Sed","52.01","nextcloud"),
("DYD31XXY4DZ","eu, ultrices sit amet, risus.","39.22","nextcloud"),
("MTC22RXA5BQ","nec, cursus a, enim. Suspendisse","71.24","nextcloud"),
("WSM34NSL7VW","tellus. Aenean egestas hendrerit neque.","66.28","nextcloud"),
("IOP40FUQ4HV","gravida non, sollicitudin a, malesuada","61.65","nextcloud"),
("BDP75JXB1PH","magna. Duis dignissim tempor arcu.","61.72","nextcloud"),
("REX39OZF7EB","dictum eu, eleifend nec, malesuada","56.84","nextcloud"),
("VPU37RSU2TP","ipsum cursus vestibulum. Mauris magna.","18.74","nextcloud"),
("GXJ39YPK1WX","pede nec ante blandit viverra.","57.75","nextcloud"),
("NOC47VCF4FG","metus. Aliquam erat volutpat. Nulla","79.66","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("EHV36EKX5NL","facilisis lorem tristique aliquet. Phasellus","64.16","nextcloud"),
("NGX85DLG6HM","nulla vulputate dui, nec tempus","92.83","nextcloud"),
("EFX25TQL5CE","molestie sodales. Mauris blandit enim","24.96","nextcloud"),
("ELW37CHC4DI","libero lacus, varius et, euismod","75.60","nextcloud"),
("SEY85KXD5SX","turpis egestas. Fusce aliquet magna","37.35","nextcloud"),
("JMB09VJT4ND","a feugiat tellus lorem eu","91.23","nextcloud"),
("UVH55XHD9DO","tincidunt aliquam arcu. Aliquam ultrices","65.24","nextcloud"),
("FUG88RCA8VU","elit, pretium et, rutrum non,","58.16","nextcloud"),
("RNT33WQU9TI","Proin nisl sem, consequat nec,","90.81","nextcloud"),
("MLE42HQX5BR","Quisque fringilla euismod enim. Etiam","48.35","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("SFP61IRL1EO","lobortis quam a felis ullamcorper","44.35","nextcloud"),
("CYG70BBG5XR","faucibus. Morbi vehicula. Pellentesque tincidunt","88.25","nextcloud"),
("GNX09RNJ8NH","ac mi eleifend egestas. Sed","65.15","nextcloud"),
("CGE85KYR1FB","consectetuer adipiscing elit. Curabitur sed","97.96","nextcloud"),
("UWQ47WPN8PS","sapien imperdiet ornare. In faucibus.","51.30","nextcloud"),
("TWC92UNT5EQ","lectus justo eu arcu. Morbi","31.12","nextcloud"),
("BJU94ZVQ8TV","felis, adipiscing fringilla, porttitor vulputate,","30.95","nextcloud"),
("FMO19TKP1PM","diam at pretium aliquet, metus","96.59","nextcloud"),
("MMW92SET7HF","massa lobortis ultrices. Vivamus rhoncus.","26.40","nextcloud"),
("HRI35FSQ3CO","molestie pharetra nibh. Aliquam ornare,","21.04","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("KRX11FFY4QK","semper auctor. Mauris vel turpis.","30.61","nextcloud"),
("UBI75MVC3HB","non quam. Pellentesque habitant morbi","08.52","nextcloud"),
("EJU66BKX1NS","amet, dapibus id, blandit at,","31.28","nextcloud"),
("DTZ76ETN7LE","ultrices sit amet, risus. Donec","35.24","nextcloud"),
("DKL33KGW5BJ","pharetra ut, pharetra sed, hendrerit","61.87","nextcloud"),
("RLN65SQG0EZ","Aliquam rutrum lorem ac risus.","71.86","nextcloud"),
("XSC11SJX6JV","Sed pharetra, felis eget varius","27.01","nextcloud"),
("KQT66XHR2DJ","est. Mauris eu turpis. Nulla","13.51","nextcloud"),
("HVC65JZR4KF","risus. Nulla eget metus eu","15.27","nextcloud"),
("OXF22HXJ8XR","purus mauris a nunc. In","99.08","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("WUO82CDH9ZO","orci lobortis augue scelerisque mollis.","12.51","nextcloud"),
("DLG66BWS8MO","Cras eget nisi dictum augue","45.22","nextcloud"),
("FLB51OUU4RF","dis parturient montes, nascetur ridiculus","34.23","nextcloud"),
("VFM68YTT7OD","Quisque ac libero nec ligula","10.52","nextcloud"),
("ZLH94EZJ9XP","urna et arcu imperdiet ullamcorper.","41.19","nextcloud"),
("BWM89JYQ0FY","vel est tempor bibendum. Donec","82.54","nextcloud"),
("ETZ72QJO9MU","gravida sagittis. Duis gravida. Praesent","72.22","nextcloud"),
("JQQ43UBR7FC","ultricies dignissim lacus. Aliquam rutrum","00.74","nextcloud"),
("XJI86QQG2ON","tellus non magna. Nam ligula","12.35","nextcloud"),
("DOH91FXU8SS","massa lobortis ultrices. Vivamus rhoncus.","11.08","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("JDB47RGY5QM","Integer aliquam adipiscing lacus. Ut","29.73","nextcloud"),
("MLL18IMB4TE","fringilla. Donec feugiat metus sit","93.89","nextcloud"),
("SPL25RUT4ET","enim nec tempus scelerisque, lorem","57.62","nextcloud"),
("AGH83WQQ2RS","dolor. Quisque tincidunt pede ac","37.82","nextcloud"),
("BDH33CNT2ZT","fringilla purus mauris a nunc.","66.37","nextcloud"),
("SID83GDS7PY","dui, nec tempus mauris erat","10.49","nextcloud"),
("SSJ28TPG7VN","arcu imperdiet ullamcorper. Duis at","01.29","nextcloud"),
("HDP43CGX1MI","convallis est, vitae sodales nisi","83.54","nextcloud"),
("OTK82LGD8NL","Nunc commodo auctor velit. Aliquam","92.82","nextcloud"),
("LIK40SHH6KS","lorem, eget mollis lectus pede","49.67","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("LEK02HEW5PX","fermentum convallis ligula. Donec luctus","64.19","nextcloud"),
("XBR04NCA5CM","non, dapibus rutrum, justo. Praesent","11.87","nextcloud"),
("RWG37VOB0RY","montes, nascetur ridiculus mus. Aenean","81.37","nextcloud"),
("UBW64WEN8VN","vitae mauris sit amet lorem","65.18","nextcloud"),
("LCU73UVK5ZK","adipiscing lacus. Ut nec urna","47.09","nextcloud"),
("ZJM37VZV6LR","Phasellus ornare. Fusce mollis. Duis","54.08","nextcloud"),
("YPT38GUN1QU","ante dictum mi, ac mattis","17.13","nextcloud"),
("LYY77NSM8BN","sodales. Mauris blandit enim consequat","43.26","nextcloud"),
("RHP57YSY3JB","id sapien. Cras dolor dolor,","12.48","nextcloud"),
("VQP58LMH2NQ","Sed neque. Sed eget lacus.","89.86","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("DCE69HSM6UF","ornare placerat, orci lacus vestibulum","68.29","nextcloud"),
("VUT91LSI0IW","non quam. Pellentesque habitant morbi","48.73","nextcloud"),
("YYI86RRK3MN","Nulla eu neque pellentesque massa","48.31","nextcloud"),
("VLY72MSO2LN","Morbi vehicula. Pellentesque tincidunt tempus","81.30","nextcloud"),
("IHW72RVM4HJ","risus. Nunc ac sem ut","72.08","nextcloud"),
("ADY61JVU3QD","pede et risus. Quisque libero","16.78","nextcloud"),
("OVP21ECX6HX","Aliquam ultrices iaculis odio. Nam","59.98","nextcloud"),
("WXI62QDT3HI","Aenean massa. Integer vitae nibh.","55.40","nextcloud"),
("PFF57MHR6HK","Donec consectetuer mauris id sapien.","58.68","nextcloud"),
("UTP35CRF7NW","morbi tristique senectus et netus","68.54","nextcloud");
INSERT INTO `oc_gestion_produit` (`reference`,`description`,`prix_unitaire`,`id_nextcloud`)
VALUES
("ZJP75KLO4BL","auctor odio a purus. Duis","62.42","nextcloud"),
("CMU06ZGV4GI","enim diam vel arcu. Curabitur","88.73","nextcloud"),
("YLF82TSB7GR","euismod est arcu ac orci.","28.25","nextcloud"),
("MMU35LNQ9BW","venenatis vel, faucibus id, libero.","74.72","nextcloud"),
("WWM41INX5QT","adipiscing. Mauris molestie pharetra nibh.","87.64","nextcloud"),
("UUA87PPC8TQ","convallis erat, eget tincidunt dui","13.34","nextcloud"),
("TWL44JPE3JP","Sed eu nibh vulputate mauris","58.49","nextcloud"),
("NJV12GLF4OG","cubilia Curae Phasellus ornare. Fusce","16.92","nextcloud"),
("AWT62CNG8YL","sed leo. Cras vehicula aliquet","55.71","nextcloud"),
("LIJ93VMT8VS","blandit mattis. Cras eget nisi","32.44","nextcloud");
INSERT INTO `oc_gestion_devis` (`date`,`num`,`comment`,`id_nextcloud`,`version`,`mentions`,`id_client`,`user_id`)
VALUES
("2021-03-05","QUOTE-1","Nullam lobortis quam a felis ullamcorper viverra.","nextcloud","0.9","auctor,",13,0),
("2022-01-25","QUOTE-2","Donec fringilla. Donec feugiat metus sit amet ante.","nextcloud","8.5","enim",25,0),
("2021-09-02","QUOTE-3","facilisis eget, ipsum. Donec","nextcloud","7.1","urna.",11,0),
("2021-08-01","QUOTE-4","In ornare sagittis felis. Donec","nextcloud","5.0","vitae",22,0),
("2022-02-16","QUOTE-5","mattis","nextcloud","8.8","Proin",12,0),
("2022-05-09","QUOTE-6","In","nextcloud","3.8","a",33,0),
("2022-06-25","QUOTE-7","aliquet magna a neque. Nullam ut nisi a","nextcloud","2.4","consectetuer",29,0),
("2021-11-20","QUOTE-8","quis urna.","nextcloud","4.3","rutrum",13,0),
("2022-12-24","QUOTE-9","tincidunt vehicula risus. Nulla eget metus eu","nextcloud","5.0","blandit",16,0),
("2021-07-10","QUOTE-10","neque sed dictum eleifend, nunc risus varius","nextcloud","1.1","Cum",15,0);
INSERT INTO `oc_gestion_devis` (`date`,`num`,`comment`,`id_nextcloud`,`version`,`mentions`,`id_client`,`user_id`)
VALUES
("2022-12-01","QUOTE-11","nunc, ullamcorper eu, euismod ac, fermentum vel,","nextcloud","9.5","a,",11,0),
("2022-09-19","QUOTE-12","mauris eu elit.","nextcloud","1.1","faucibus.",12,0),
("2021-10-30","QUOTE-13","nisl. Quisque fringilla euismod enim. Etiam gravida molestie","nextcloud","8.3","tellus",11,0),
("2021-02-08","QUOTE-14","fringilla, porttitor vulputate, posuere vulputate, lacus. Cras interdum. Nunc","nextcloud","1.4","Vivamus",12,0),
("2021-05-25","QUOTE-15","sem. Nulla interdum. Curabitur dictum.","nextcloud","6.8","massa",11,0),
("2023-01-15","QUOTE-16","tincidunt, neque vitae semper egestas, urna","nextcloud","1.9","sed",12,0),
("2022-12-13","QUOTE-17","ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam auctor,","nextcloud","6.0","sit",12,0),
("2022-08-11","QUOTE-18","augue, eu tempor erat neque non quam.","nextcloud","6.5","morbi",26,0),
("2022-10-02","QUOTE-19","dictum mi,","nextcloud","5.1","gravida",31,0),
("2021-09-29","QUOTE-20","sed pede. Cum sociis","nextcloud","7.6","pede",19,0);
INSERT INTO `oc_gestion_devis` (`date`,`num`,`comment`,`id_nextcloud`,`version`,`mentions`,`id_client`,`user_id`)
VALUES
("2022-05-11","QUOTE-21","sem ut cursus luctus, ipsum leo elementum sem, vitae aliquam","nextcloud","9.7","iaculis",19,0),
("2022-08-02","QUOTE-22","est. Nunc ullamcorper, velit in aliquet lobortis, nisi nibh lacinia","nextcloud","2.3","sit",27,0),
("2021-05-19","QUOTE-23","est.","nextcloud","7.9","arcu.",25,0),
("2021-08-30","QUOTE-24","blandit mattis. Cras eget nisi dictum augue malesuada malesuada.","nextcloud","4.9","molestie",14,0),
("2022-08-25","QUOTE-25","Nullam ut nisi","nextcloud","3.6","Curae",31,0),
("2022-06-01","QUOTE-26","nec, mollis vitae, posuere at, velit. Cras","nextcloud","8.5","nisi.",25,0),
("2022-04-23","QUOTE-27","rutrum magna.","nextcloud","7.9","in",31,0),
("2022-12-17","QUOTE-28","eu, eleifend nec,","nextcloud","4.2","mauris",27,0),
("2021-05-15","QUOTE-29","mauris sit amet lorem semper auctor. Mauris","nextcloud","2.4","arcu.",24,0),
("2022-06-02","QUOTE-30","aliquet. Phasellus fermentum convallis ligula. Donec","nextcloud","3.7","commodo",27,0);
INSERT INTO `oc_gestion_devis` (`date`,`num`,`comment`,`id_nextcloud`,`version`,`mentions`,`id_client`,`user_id`)
VALUES
("2022-05-31","QUOTE-31","lacus. Ut nec urna et","nextcloud","3.5","ac",29,0),
("2022-07-04","QUOTE-32","id, blandit","nextcloud","5.0","erat",19,0),
("2021-04-29","QUOTE-33","penatibus et","nextcloud","6.2","Aliquam",11,0),
("2022-11-15","QUOTE-34","faucibus ut, nulla. Cras eu tellus eu augue porttitor","nextcloud","3.6","amet",34,0),
("2022-09-03","QUOTE-35","Donec luctus aliquet odio. Etiam ligula tortor,","nextcloud","8.4","et",22,0),
("2022-12-30","QUOTE-36","aliquam eros turpis non","nextcloud","5.6","lorem",23,0),
("2022-01-11","QUOTE-37","nisi dictum augue malesuada malesuada. Integer id","nextcloud","5.2","tincidunt",20,0),
("2022-03-08","QUOTE-38","eget, volutpat","nextcloud","3.2","gravida.",27,0),
("2021-11-18","QUOTE-39","Morbi vehicula. Pellentesque tincidunt tempus risus. Donec egestas. Duis ac","nextcloud","5.9","penatibus",11,0),
("2021-08-17","QUOTE-40","porttitor scelerisque neque. Nullam nisl. Maecenas malesuada fringilla","nextcloud","1.5","molestie",20,0);
INSERT INTO `oc_gestion_devis` (`date`,`num`,`comment`,`id_nextcloud`,`version`,`mentions`,`id_client`,`user_id`)
VALUES
("2022-02-28","QUOTE-41","vel, convallis in, cursus et, eros.","nextcloud","7.7","vulputate",11,0),
("2022-12-18","QUOTE-42","facilisis lorem tristique aliquet.","nextcloud","7.6","tincidunt",19,0),
("2021-12-16","QUOTE-43","Suspendisse non leo. Vivamus nibh dolor, nonummy","nextcloud","8.3","Nunc",22,0),
("2022-12-22","QUOTE-44","ipsum porta elit, a feugiat tellus lorem eu metus.","nextcloud","2.0","et",21,0),
("2021-02-16","QUOTE-45","et magnis","nextcloud","5.7","neque",27,0),
("2021-10-23","QUOTE-46","Integer id magna","nextcloud","9.3","non",25,0),
("2022-04-08","QUOTE-47","neque. Nullam ut nisi a odio semper","nextcloud","4.6","vitae",33,0),
("2021-06-27","QUOTE-48","bibendum fermentum metus. Aenean sed pede nec","nextcloud","1.5","dictum",24,0),
("2022-05-13","QUOTE-49","Ut sagittis lobortis mauris. Suspendisse aliquet molestie tellus.","nextcloud","4.1","eros",12,0),
("2021-09-13","QUOTE-50","adipiscing lacus. Ut","nextcloud","4.2","ultricies",12,0);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",53,80,3),
("nextcloud",40,53,2),
("nextcloud",45,20,9),
("nextcloud",36,90,10),
("nextcloud",27,23,10),
("nextcloud",26,41,5),
("nextcloud",57,22,9),
("nextcloud",22,42,3),
("nextcloud",41,43,7),
("nextcloud",28,105,10);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",44,79,7),
("nextcloud",18,25,6),
("nextcloud",28,16,3),
("nextcloud",22,68,8),
("nextcloud",43,49,7),
("nextcloud",29,55,7),
("nextcloud",53,62,5),
("nextcloud",38,48,4),
("nextcloud",56,71,8),
("nextcloud",15,9,1);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",16,57,8),
("nextcloud",22,69,3),
("nextcloud",43,82,8),
("nextcloud",37,62,9),
("nextcloud",42,88,4),
("nextcloud",9,69,7),
("nextcloud",23,47,3),
("nextcloud",52,100,10),
("nextcloud",35,40,9),
("nextcloud",57,79,3);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",47,60,1),
("nextcloud",14,54,3),
("nextcloud",24,64,4),
("nextcloud",27,95,8),
("nextcloud",34,56,3),
("nextcloud",22,84,8),
("nextcloud",58,48,3),
("nextcloud",24,65,3),
("nextcloud",39,19,3),
("nextcloud",10,56,4);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",34,23,9),
("nextcloud",39,44,2),
("nextcloud",9,79,7),
("nextcloud",26,10,1),
("nextcloud",9,93,7),
("nextcloud",27,104,9),
("nextcloud",32,64,4),
("nextcloud",32,29,4),
("nextcloud",47,93,8),
("nextcloud",22,25,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",53,11,6),
("nextcloud",45,99,4),
("nextcloud",25,95,9),
("nextcloud",57,40,5),
("nextcloud",42,46,9),
("nextcloud",24,96,5),
("nextcloud",10,12,8),
("nextcloud",51,43,3),
("nextcloud",44,56,8),
("nextcloud",16,34,3);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",22,85,7),
("nextcloud",27,32,5),
("nextcloud",20,44,3),
("nextcloud",19,48,5),
("nextcloud",45,94,5),
("nextcloud",43,79,4),
("nextcloud",39,12,2),
("nextcloud",12,8,4),
("nextcloud",26,14,7),
("nextcloud",25,70,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",31,45,7),
("nextcloud",29,24,2),
("nextcloud",17,17,5),
("nextcloud",43,67,6),
("nextcloud",15,102,5),
("nextcloud",39,51,8),
("nextcloud",26,20,2),
("nextcloud",25,39,5),
("nextcloud",19,59,1),
("nextcloud",23,45,5);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",14,37,6),
("nextcloud",11,87,7),
("nextcloud",9,69,4),
("nextcloud",32,24,6),
("nextcloud",45,26,7),
("nextcloud",32,32,1),
("nextcloud",57,56,4),
("nextcloud",54,62,9),
("nextcloud",18,55,1),
("nextcloud",49,92,4);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",14,85,4),
("nextcloud",17,61,4),
("nextcloud",19,51,7),
("nextcloud",29,24,7),
("nextcloud",47,13,3),
("nextcloud",31,93,2),
("nextcloud",16,22,1),
("nextcloud",38,73,4),
("nextcloud",11,60,4),
("nextcloud",12,55,8);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",50,71,2),
("nextcloud",37,37,7),
("nextcloud",44,63,9),
("nextcloud",43,85,1),
("nextcloud",38,28,6),
("nextcloud",15,67,2),
("nextcloud",11,39,7),
("nextcloud",28,8,10),
("nextcloud",31,41,10),
("nextcloud",53,53,3);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",40,37,4),
("nextcloud",57,93,2),
("nextcloud",10,100,5),
("nextcloud",17,26,10),
("nextcloud",45,36,9),
("nextcloud",14,98,3),
("nextcloud",25,71,9),
("nextcloud",34,14,2),
("nextcloud",26,81,4),
("nextcloud",56,45,8);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",10,40,5),
("nextcloud",56,67,10),
("nextcloud",30,42,2),
("nextcloud",35,23,4),
("nextcloud",57,52,10),
("nextcloud",35,27,7),
("nextcloud",57,106,2),
("nextcloud",47,37,4),
("nextcloud",57,86,8),
("nextcloud",46,50,9);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",56,63,4),
("nextcloud",34,40,4),
("nextcloud",13,34,6),
("nextcloud",42,50,7),
("nextcloud",50,102,8),
("nextcloud",18,45,8),
("nextcloud",17,103,5),
("nextcloud",21,31,6),
("nextcloud",11,19,4),
("nextcloud",38,100,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",22,97,3),
("nextcloud",30,87,7),
("nextcloud",24,92,3),
("nextcloud",32,73,3),
("nextcloud",38,106,8),
("nextcloud",44,77,8),
("nextcloud",55,79,6),
("nextcloud",49,78,7),
("nextcloud",22,34,4),
("nextcloud",38,72,4);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",24,105,4),
("nextcloud",17,37,4),
("nextcloud",10,92,3),
("nextcloud",46,52,7),
("nextcloud",52,30,1),
("nextcloud",39,53,6),
("nextcloud",22,25,5),
("nextcloud",30,23,4),
("nextcloud",30,36,10),
("nextcloud",34,90,4);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",17,104,4),
("nextcloud",10,91,3),
("nextcloud",42,97,6),
("nextcloud",9,84,3),
("nextcloud",17,79,7),
("nextcloud",32,52,5),
("nextcloud",17,44,9),
("nextcloud",43,23,7),
("nextcloud",26,46,6),
("nextcloud",30,15,4);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",28,85,7),
("nextcloud",11,95,9),
("nextcloud",40,99,3),
("nextcloud",45,74,2),
("nextcloud",24,37,7),
("nextcloud",28,103,6),
("nextcloud",26,98,2),
("nextcloud",47,37,6),
("nextcloud",26,88,2),
("nextcloud",28,75,2);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",30,17,2),
("nextcloud",10,84,9),
("nextcloud",46,105,9),
("nextcloud",56,94,9),
("nextcloud",16,43,8),
("nextcloud",48,99,2),
("nextcloud",54,33,2),
("nextcloud",49,88,10),
("nextcloud",11,58,4),
("nextcloud",37,42,1);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",38,21,8),
("nextcloud",49,23,4),
("nextcloud",49,81,6),
("nextcloud",39,89,6),
("nextcloud",18,58,3),
("nextcloud",10,96,6),
("nextcloud",38,74,9),
("nextcloud",53,14,2),
("nextcloud",53,87,1),
("nextcloud",41,105,7);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",45,34,9),
("nextcloud",39,86,10),
("nextcloud",49,70,5),
("nextcloud",35,75,4),
("nextcloud",20,104,5),
("nextcloud",40,19,8),
("nextcloud",41,78,8),
("nextcloud",27,41,1),
("nextcloud",40,65,1),
("nextcloud",55,24,7);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",21,10,10),
("nextcloud",13,106,4),
("nextcloud",56,51,3),
("nextcloud",18,91,9),
("nextcloud",51,23,2),
("nextcloud",23,64,6),
("nextcloud",39,86,5),
("nextcloud",54,45,6),
("nextcloud",17,80,4),
("nextcloud",26,27,2);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",13,16,8),
("nextcloud",42,91,9),
("nextcloud",52,92,9),
("nextcloud",39,12,4),
("nextcloud",20,43,5),
("nextcloud",11,56,7),
("nextcloud",12,95,6),
("nextcloud",49,26,7),
("nextcloud",48,18,7),
("nextcloud",37,88,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",44,51,9),
("nextcloud",41,86,4),
("nextcloud",28,33,2),
("nextcloud",43,17,5),
("nextcloud",28,51,3),
("nextcloud",54,89,7),
("nextcloud",36,98,1),
("nextcloud",30,29,10),
("nextcloud",17,90,8),
("nextcloud",13,47,3);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",48,90,4),
("nextcloud",42,89,1),
("nextcloud",25,10,5),
("nextcloud",13,104,1),
("nextcloud",49,34,4),
("nextcloud",42,70,6),
("nextcloud",10,97,2),
("nextcloud",36,22,10),
("nextcloud",54,107,3),
("nextcloud",14,9,9);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",52,96,1),
("nextcloud",54,76,4),
("nextcloud",16,94,9),
("nextcloud",38,43,8),
("nextcloud",25,81,7),
("nextcloud",35,35,3),
("nextcloud",11,66,2),
("nextcloud",35,91,3),
("nextcloud",49,71,1),
("nextcloud",44,62,2);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",41,38,1),
("nextcloud",27,66,4),
("nextcloud",51,54,2),
("nextcloud",51,30,1),
("nextcloud",27,96,9),
("nextcloud",24,96,9),
("nextcloud",33,40,7),
("nextcloud",53,21,4),
("nextcloud",26,46,7),
("nextcloud",41,58,2);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",42,98,3),
("nextcloud",9,27,9),
("nextcloud",38,85,8),
("nextcloud",50,26,9),
("nextcloud",21,16,5),
("nextcloud",54,100,2),
("nextcloud",23,28,4),
("nextcloud",43,31,4),
("nextcloud",9,19,4),
("nextcloud",48,19,1);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",48,98,3),
("nextcloud",14,69,8),
("nextcloud",55,34,8),
("nextcloud",38,13,7),
("nextcloud",26,86,2),
("nextcloud",43,30,5),
("nextcloud",44,16,1),
("nextcloud",26,81,5),
("nextcloud",49,87,9),
("nextcloud",28,92,4);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",33,55,5),
("nextcloud",22,65,5),
("nextcloud",16,83,4),
("nextcloud",13,25,4),
("nextcloud",29,41,3),
("nextcloud",29,41,3),
("nextcloud",20,63,1),
("nextcloud",19,57,9),
("nextcloud",17,12,2),
("nextcloud",47,40,2);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",26,38,5),
("nextcloud",16,26,7),
("nextcloud",11,55,7),
("nextcloud",53,105,8),
("nextcloud",52,11,8),
("nextcloud",47,34,5),
("nextcloud",30,28,1),
("nextcloud",42,16,9),
("nextcloud",55,85,6),
("nextcloud",35,10,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",41,30,9),
("nextcloud",18,47,4),
("nextcloud",23,89,3),
("nextcloud",16,56,6),
("nextcloud",27,51,4),
("nextcloud",50,53,9),
("nextcloud",48,84,8),
("nextcloud",33,95,8),
("nextcloud",13,30,2),
("nextcloud",53,16,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",36,52,2),
("nextcloud",28,47,4),
("nextcloud",13,81,7),
("nextcloud",45,102,7),
("nextcloud",39,73,9),
("nextcloud",35,65,5),
("nextcloud",40,82,8),
("nextcloud",22,91,6),
("nextcloud",50,43,3),
("nextcloud",25,102,4);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",40,95,9),
("nextcloud",48,28,9),
("nextcloud",15,60,3),
("nextcloud",16,54,5),
("nextcloud",48,107,5),
("nextcloud",38,96,8),
("nextcloud",28,18,4),
("nextcloud",45,15,7),
("nextcloud",39,81,2),
("nextcloud",28,95,2);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",48,48,1),
("nextcloud",39,50,4),
("nextcloud",11,21,7),
("nextcloud",29,11,6),
("nextcloud",31,103,9),
("nextcloud",12,79,7),
("nextcloud",57,45,8),
("nextcloud",32,85,2),
("nextcloud",50,68,9),
("nextcloud",19,101,2);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",40,77,2),
("nextcloud",49,12,10),
("nextcloud",15,98,5),
("nextcloud",49,76,9),
("nextcloud",38,91,2),
("nextcloud",28,29,3),
("nextcloud",50,24,4),
("nextcloud",35,106,4),
("nextcloud",12,78,5),
("nextcloud",49,60,8);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",52,62,2),
("nextcloud",26,50,6),
("nextcloud",54,62,9),
("nextcloud",23,37,6),
("nextcloud",41,40,7),
("nextcloud",56,22,4),
("nextcloud",56,46,10),
("nextcloud",36,85,4),
("nextcloud",19,13,6),
("nextcloud",42,82,3);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",47,54,10),
("nextcloud",26,12,6),
("nextcloud",34,29,2),
("nextcloud",10,49,7),
("nextcloud",57,102,6),
("nextcloud",29,16,1),
("nextcloud",28,24,5),
("nextcloud",25,40,9),
("nextcloud",15,92,7),
("nextcloud",56,13,8);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",40,57,4),
("nextcloud",28,63,4),
("nextcloud",26,75,8),
("nextcloud",45,101,2),
("nextcloud",29,79,1),
("nextcloud",50,17,5),
("nextcloud",48,89,6),
("nextcloud",44,62,3),
("nextcloud",36,26,9),
("nextcloud",54,84,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",21,78,9),
("nextcloud",40,100,3),
("nextcloud",25,38,6),
("nextcloud",27,50,7),
("nextcloud",49,49,6),
("nextcloud",16,52,6),
("nextcloud",45,84,7),
("nextcloud",26,44,10),
("nextcloud",26,22,7),
("nextcloud",31,51,3);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",44,77,2),
("nextcloud",55,64,2),
("nextcloud",45,98,5),
("nextcloud",14,74,3),
("nextcloud",13,32,9),
("nextcloud",40,61,7),
("nextcloud",48,96,4),
("nextcloud",35,35,3),
("nextcloud",13,21,7),
("nextcloud",10,78,8);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",55,69,7),
("nextcloud",16,77,9),
("nextcloud",45,50,8),
("nextcloud",41,93,5),
("nextcloud",43,103,2),
("nextcloud",34,102,3),
("nextcloud",56,85,3),
("nextcloud",44,53,9),
("nextcloud",49,105,4),
("nextcloud",27,29,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",38,97,7),
("nextcloud",12,66,9),
("nextcloud",10,103,6),
("nextcloud",43,97,2),
("nextcloud",27,88,2),
("nextcloud",41,77,6),
("nextcloud",36,26,5),
("nextcloud",17,12,9),
("nextcloud",53,97,7),
("nextcloud",12,63,8);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",33,30,4),
("nextcloud",49,65,9),
("nextcloud",21,12,9),
("nextcloud",22,94,9),
("nextcloud",55,34,10),
("nextcloud",17,46,4),
("nextcloud",42,39,2),
("nextcloud",13,56,3),
("nextcloud",22,19,9),
("nextcloud",40,10,4);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",50,84,7),
("nextcloud",33,101,3),
("nextcloud",49,18,2),
("nextcloud",56,57,9),
("nextcloud",56,105,7),
("nextcloud",46,49,5),
("nextcloud",25,44,4),
("nextcloud",19,91,5),
("nextcloud",11,22,8),
("nextcloud",49,101,1);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",15,27,3),
("nextcloud",40,41,2),
("nextcloud",48,64,4),
("nextcloud",41,18,9),
("nextcloud",18,70,9),
("nextcloud",16,43,2),
("nextcloud",51,70,1),
("nextcloud",34,72,8),
("nextcloud",38,86,6),
("nextcloud",51,56,9);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",51,41,7),
("nextcloud",47,87,9),
("nextcloud",47,85,7),
("nextcloud",34,104,3),
("nextcloud",58,95,7),
("nextcloud",23,27,7),
("nextcloud",45,30,6),
("nextcloud",43,76,6),
("nextcloud",42,11,2),
("nextcloud",35,44,6);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",50,98,8),
("nextcloud",17,49,9),
("nextcloud",50,90,7),
("nextcloud",34,97,7),
("nextcloud",32,93,8),
("nextcloud",48,19,7),
("nextcloud",48,78,2),
("nextcloud",17,31,8),
("nextcloud",17,23,5),
("nextcloud",17,60,7);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",37,71,2),
("nextcloud",17,96,5),
("nextcloud",14,93,3),
("nextcloud",29,67,6),
("nextcloud",47,38,5),
("nextcloud",19,11,7),
("nextcloud",56,55,8),
("nextcloud",44,107,6),
("nextcloud",48,37,2),
("nextcloud",31,22,10);
INSERT INTO `oc_gestion_produit_devis` (`id_nextcloud`,`devis_id`,`produit_id`,`quantite`)
VALUES
("nextcloud",30,31,6),
("nextcloud",27,14,8),
("nextcloud",47,74,9),
("nextcloud",55,76,3),
("nextcloud",23,91,10),
("nextcloud",42,90,1),
("nextcloud",46,92,4),
("nextcloud",10,21,5),
("nextcloud",43,80,7),
("nextcloud",22,16,1);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-1","October 10th, 2022","2022-01-19","Credit CARD","PAID","5.7",42,0),
("nextcloud","INVOICE-2","October 9th, 2021","2022-04-05","BITCOIN","CANCELLED","7.4",43,0),
("nextcloud","INVOICE-3","May 15th, 2022","2022-03-12","BITCOIN","CANCELLED","3.1",13,0),
("nextcloud","INVOICE-4","February 2nd, 2021","2021-07-07","Credit CARD","OK","7.5",33,0),
("nextcloud","INVOICE-5","May 24th, 2021","2022-05-16","Credit CARD","WAIT","1.0",36,0),
("nextcloud","INVOICE-6","July 30th, 2022","2021-03-01","Transfert","CANCELLED","7.5",32,0),
("nextcloud","INVOICE-7","October 10th, 2021","2021-11-17","Credit CARD","WAIT","1.5",57,0),
("nextcloud","INVOICE-8","February 23rd, 2022","2021-05-25","BITCOIN","OK","0.9",31,0),
("nextcloud","INVOICE-9","March 3rd, 2022","2022-03-04","Credit CARD","RECEIVED","4.2",43,0),
("nextcloud","INVOICE-10","March 15th, 2021","2023-01-09","Transfert","REFUSED","8.3",24,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-11","June 13th, 2022","2022-01-19","BITCOIN","WAIT","2.1",30,0),
("nextcloud","INVOICE-12","September 24th, 2021","2022-05-20","BITCOIN","CANCELLED","2.0",57,0),
("nextcloud","INVOICE-13","November 7th, 2021","2022-09-08","Transfert","WAIT","6.5",26,0),
("nextcloud","INVOICE-14","April 14th, 2022","2021-05-29","Transfert","REFUNDED","1.3",22,0),
("nextcloud","INVOICE-15","November 23rd, 2022","2021-10-16","Transfert","CANCELLED","8.8",33,0),
("nextcloud","INVOICE-16","November 27th, 2021","2022-02-16","Credit CARD","RECEIVED","3.1",30,0),
("nextcloud","INVOICE-17","July 16th, 2021","2022-05-04","Credit CARD","REFUNDED","8.1",21,0),
("nextcloud","INVOICE-18","November 22nd, 2022","2021-10-05","BITCOIN","RECEIVED","8.8",30,0),
("nextcloud","INVOICE-19","October 28th, 2021","2022-03-28","Transfert","REFUNDED","3.2",43,0),
("nextcloud","INVOICE-20","November 21st, 2022","2022-08-29","Transfert","REFUSED","6.6",27,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-21","December 23rd, 2022","2022-03-29","Credit CARD","RECEIVED","8.2",11,0),
("nextcloud","INVOICE-22","November 26th, 2022","2021-07-02","BITCOIN","CANCELLED","8.5",29,0),
("nextcloud","INVOICE-23","June 4th, 2022","2021-05-10","Credit CARD","WAIT","6.5",27,0),
("nextcloud","INVOICE-24","December 17th, 2022","2022-05-17","BITCOIN","REFUNDED","9.0",58,0),
("nextcloud","INVOICE-25","December 25th, 2022","2021-09-16","BITCOIN","RECEIVED","6.1",42,0),
("nextcloud","INVOICE-26","March 21st, 2021","2021-12-03","BITCOIN","WAIT","5.8",30,0),
("nextcloud","INVOICE-27","January 2nd, 2022","2021-05-22","Transfert","RECEIVED","7.8",38,0),
("nextcloud","INVOICE-28","November 25th, 2022","2022-07-19","Credit CARD","REFUNDED","1.1",57,0),
("nextcloud","INVOICE-29","December 29th, 2022","2022-10-22","BITCOIN","PAID","5.2",24,0),
("nextcloud","INVOICE-30","May 1st, 2021","2022-08-28","Transfert","WAIT","6.5",44,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-31","February 24th, 2021","2021-10-01","BITCOIN","PAID","5.7",38,0),
("nextcloud","INVOICE-32","May 29th, 2022","2022-07-19","Credit CARD","RECEIVED","8.2",23,0),
("nextcloud","INVOICE-33","August 23rd, 2021","2021-12-10","Credit CARD","REFUNDED","2.4",17,0),
("nextcloud","INVOICE-34","May 27th, 2021","2022-03-11","BITCOIN","CANCELLED","3.1",47,0),
("nextcloud","INVOICE-35","July 28th, 2021","2023-01-20","BITCOIN","REFUSED","3.4",19,0),
("nextcloud","INVOICE-36","February 7th, 2022","2021-11-24","Transfert","REFUSED","1.8",17,0),
("nextcloud","INVOICE-37","January 14th, 2023","2021-08-30","Transfert","WAIT","2.6",15,0),
("nextcloud","INVOICE-38","January 22nd, 2023","2021-10-07","Credit CARD","REFUSED","7.5",35,0),
("nextcloud","INVOICE-39","September 29th, 2021","2022-08-09","Credit CARD","OK","4.5",28,0),
("nextcloud","INVOICE-40","September 4th, 2021","2022-07-23","Transfert","REFUNDED","6.7",21,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-41","July 25th, 2021","2022-01-23","Transfert","PAID","2.5",32,0),
("nextcloud","INVOICE-42","May 25th, 2021","2022-02-18","Credit CARD","WAIT","6.2",56,0),
("nextcloud","INVOICE-43","January 5th, 2022","2022-10-03","Transfert","REFUSED","5.4",31,0),
("nextcloud","INVOICE-44","April 1st, 2021","2022-12-14","BITCOIN","RECEIVED","3.1",56,0),
("nextcloud","INVOICE-45","October 9th, 2022","2023-01-25","BITCOIN","CANCELLED","3.0",37,0),
("nextcloud","INVOICE-46","September 20th, 2022","2021-02-05","Credit CARD","WAIT","1.5",48,0),
("nextcloud","INVOICE-47","June 7th, 2021","2022-06-15","Transfert","REFUNDED","4.7",52,0),
("nextcloud","INVOICE-48","November 15th, 2022","2021-08-15","BITCOIN","PAID","4.1",45,0),
("nextcloud","INVOICE-49","July 9th, 2022","2022-02-08","Transfert","RECEIVED","0.5",49,0),
("nextcloud","INVOICE-50","June 19th, 2022","2021-06-17","Credit CARD","OK","3.3",43,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-51","June 19th, 2021","2022-08-19","Credit CARD","WAIT","7.2",22,0),
("nextcloud","INVOICE-52","October 20th, 2022","2022-10-31","Transfert","PAID","1.9",30,0),
("nextcloud","INVOICE-53","September 13th, 2021","2022-09-25","Credit CARD","PAID","6.4",12,0),
("nextcloud","INVOICE-54","February 18th, 2021","2021-08-28","Transfert","REFUSED","7.2",52,0),
("nextcloud","INVOICE-55","January 17th, 2023","2022-10-18","Credit CARD","PAID","7.6",38,0),
("nextcloud","INVOICE-56","December 9th, 2021","2022-02-28","Credit CARD","REFUNDED","5.2",22,0),
("nextcloud","INVOICE-57","September 24th, 2021","2022-04-01","Credit CARD","CANCELLED","6.6",17,0),
("nextcloud","INVOICE-58","April 9th, 2022","2021-03-13","Transfert","PAID","3.3",29,0),
("nextcloud","INVOICE-59","January 21st, 2022","2022-03-15","Credit CARD","PAID","6.2",32,0),
("nextcloud","INVOICE-60","June 23rd, 2021","2022-08-19","Transfert","WAIT","8.1",31,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-61","October 18th, 2021","2021-09-18","Transfert","WAIT","2.9",31,0),
("nextcloud","INVOICE-62","January 11th, 2022","2021-04-09","Transfert","CANCELLED","7.3",11,0),
("nextcloud","INVOICE-63","December 21st, 2021","2021-12-14","Transfert","RECEIVED","6.5",20,0),
("nextcloud","INVOICE-64","March 16th, 2021","2021-10-25","Credit CARD","RECEIVED","5.8",11,0),
("nextcloud","INVOICE-65","September 16th, 2021","2021-12-11","BITCOIN","REFUSED","1.5",15,0),
("nextcloud","INVOICE-66","February 11th, 2021","2022-02-02","Credit CARD","RECEIVED","3.5",23,0),
("nextcloud","INVOICE-67","September 13th, 2022","2023-01-09","Transfert","WAIT","0.4",29,0),
("nextcloud","INVOICE-68","November 24th, 2022","2021-06-29","Credit CARD","REFUNDED","9.0",32,0),
("nextcloud","INVOICE-69","July 20th, 2022","2022-06-22","BITCOIN","WAIT","7.0",17,0),
("nextcloud","INVOICE-70","August 29th, 2022","2022-10-28","Credit CARD","RECEIVED","6.3",12,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-71","July 20th, 2021","2021-08-09","Credit CARD","CANCELLED","2.5",14,0),
("nextcloud","INVOICE-72","October 30th, 2022","2021-05-22","BITCOIN","REFUSED","6.2",53,0),
("nextcloud","INVOICE-73","December 20th, 2021","2022-11-30","Credit CARD","RECEIVED","8.8",26,0),
("nextcloud","INVOICE-74","December 7th, 2022","2022-11-09","Credit CARD","REFUNDED","4.4",41,0),
("nextcloud","INVOICE-75","February 19th, 2021","2021-06-29","Transfert","OK","1.7",19,0),
("nextcloud","INVOICE-76","October 27th, 2021","2021-08-01","BITCOIN","OK","0.0",43,0),
("nextcloud","INVOICE-77","November 28th, 2021","2021-05-18","Credit CARD","WAIT","6.5",16,0),
("nextcloud","INVOICE-78","April 19th, 2022","2022-11-05","Transfert","PAID","6.7",57,0),
("nextcloud","INVOICE-79","October 21st, 2022","2022-04-06","Transfert","REFUSED","4.8",54,0),
("nextcloud","INVOICE-80","May 24th, 2022","2022-05-02","Credit CARD","REFUSED","3.7",34,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-81","July 30th, 2021","2022-12-29","BITCOIN","REFUNDED","0.7",27,0),
("nextcloud","INVOICE-82","December 24th, 2022","2022-07-29","Credit CARD","CANCELLED","1.1",55,0),
("nextcloud","INVOICE-83","April 2nd, 2022","2022-04-07","Credit CARD","REFUNDED","6.4",17,0),
("nextcloud","INVOICE-84","June 27th, 2022","2021-05-03","Transfert","RECEIVED","6.6",35,0),
("nextcloud","INVOICE-85","September 12th, 2022","2021-11-27","Transfert","WAIT","5.3",12,0),
("nextcloud","INVOICE-86","February 13th, 2021","2022-04-07","Credit CARD","WAIT","6.3",54,0),
("nextcloud","INVOICE-87","October 18th, 2021","2021-03-20","Transfert","PAID","1.2",17,0),
("nextcloud","INVOICE-88","March 3rd, 2021","2021-06-15","Transfert","PAID","8.1",43,0),
("nextcloud","INVOICE-89","August 23rd, 2021","2022-12-23","Credit CARD","RECEIVED","0.4",34,0),
("nextcloud","INVOICE-90","March 27th, 2022","2021-02-18","Credit CARD","OK","3.2",38,0);
INSERT INTO `oc_gestion_facture` (`id_nextcloud`,`num`,`date`,`date_paiement`,`type_paiement`,`status_paiement`,`version`,`id_devis`,`user_id`)
VALUES
("nextcloud","INVOICE-91","June 5th, 2021","2021-04-26","Transfert","REFUNDED","4.7",10,0),
("nextcloud","INVOICE-92","June 30th, 2022","2021-10-12","Transfert","OK","3.3",27,0),
("nextcloud","INVOICE-93","August 3rd, 2022","2022-07-14","Transfert","RECEIVED","0.2",22,0),
("nextcloud","INVOICE-94","August 11th, 2022","2022-12-06","BITCOIN","REFUNDED","1.4",16,0),
("nextcloud","INVOICE-95","September 18th, 2021","2021-12-13","BITCOIN","CANCELLED","4.6",43,0),
("nextcloud","INVOICE-96","December 10th, 2021","2021-11-29","Transfert","RECEIVED","9.3",55,0),
("nextcloud","INVOICE-97","June 11th, 2021","2021-03-17","BITCOIN","REFUSED","6.4",53,0),
("nextcloud","INVOICE-98","July 22nd, 2021","2022-04-27","Transfert","REFUSED","5.7",55,0),
("nextcloud","INVOICE-99","May 3rd, 2022","2021-09-13","Transfert","CANCELLED","9.6",55,0),
("nextcloud","INVOICE-100","December 12th, 2022","2021-02-02","Transfert","REFUNDED","2.4",41,0);

View File

@ -0,0 +1,939 @@
INSERT INTO "oc_gestion_client" ("nom","prenom","legal_one","entreprise","telephone","mail","adresse","id_nextcloud")
VALUES
('Giacomo','Preston','322843667874IGR','Ipsum Donec Sollicitudin LLP','1-897-636-5129','eget@yahoo.org','P.O. Box 667, 4464 Ut, Road','nextcloud'),
('Deirdre','Puckett','058034458584QFN','Urna Justo Associates','1-373-358-5748','consectetuer.rhoncus.nullam@google.edu','457-2543 Quis Rd.','nextcloud'),
('Amanda','Espinoza','531157120828FYM','Auctor Odio A Industries','1-944-437-1312','turpis.nulla@google.couk','917-3650 Lorem, St.','nextcloud'),
('Odette','Dawson','466143582715TCR','Donec Foundation','1-365-885-2143','dictum.cursus@yahoo.edu','Ap #698-3925 Sociis St.','nextcloud'),
('Justine','Butler','526822069123MHR','Dolor Vitae Dolor Industries','(424) 534-2571','faucibus.morbi.vehicula@yahoo.ca','Ap #820-507 Lorem Street','nextcloud');
INSERT INTO "oc_gestion_client" ("nom","prenom","legal_one","entreprise","telephone","mail","adresse","id_nextcloud")
VALUES
('Owen','Stout','912464592077ZKP','Ante Industries','1-530-735-0277','mollis.duis.sit@yahoo.edu','514-6230 Sem Avenue','nextcloud'),
('Zachery','Mcfarland','827163659628HRB','Massa Incorporated','1-863-996-4857','quam.vel@aol.org','Ap #872-6344 Litora Road','nextcloud'),
('Linda','Flynn','518483623376JAS','Enim Curabitur Institute','(645) 110-1423','sit.amet.metus@hotmail.edu','Ap #742-9122 Lobortis Street','nextcloud'),
('Warren','Terrell','673851558811NPK','Dis Parturient Associates','(364) 168-2366','id.blandit.at@outlook.org','Ap #998-8076 Etiam St.','nextcloud'),
('Kim','Garza','267174262241SWP','Mus Institute','(494) 484-7126','leo.morbi@outlook.couk','2681 Ultrices St.','nextcloud'),
('Orli','Jarvis','788252588553TDO','Enim Consequat Inc.','(658) 335-8743','mattis.integer@hotmail.net','8215 Massa Ave','nextcloud'),
('Henry','Simpson','353883158548DIP','Arcu Et Foundation','(224) 449-8748','pede.suspendisse@aol.couk','2195 Vitae St.','nextcloud'),
('Moana','Terry','439716935068YPS','Eleifend Nunc Risus LLP','1-958-299-5225','vitae@google.edu','P.O. Box 126, 3952 Ipsum. Av.','nextcloud'),
('Benedict','Waters','135856242832JBJ','Aliquam Iaculis Consulting','1-339-270-0330','non.lorem@protonmail.net','Ap #200-2780 Diam Av.','nextcloud'),
('Camilla','Carroll','175171361712MNT','Arcu Vestibulum Ut PC','(687) 554-3946','ullamcorper.velit@icloud.com','P.O. Box 313, 5902 Felis. Road','nextcloud');
INSERT INTO "oc_gestion_client" ("nom","prenom","legal_one","entreprise","telephone","mail","adresse","id_nextcloud")
VALUES
('Henry','Mccoy','788465240241EJR','Lobortis Augue Ltd','(893) 253-7757','ligula.elit@hotmail.ca','676-6920 Iaculis St.','nextcloud'),
('Alexa','Pennington','548870623359YBM','A Odio Semper Corp.','1-217-589-5248','luctus@hotmail.org','804-8229 Sapien Av.','nextcloud'),
('Naida','Floyd','024429578775OYQ','Sagittis Limited','1-959-367-1733','magna.malesuada.vel@aol.edu','884-481 Ultrices St.','nextcloud'),
('Jescie','Weeks','338670582848OVD','Bibendum Fermentum Metus Limited','(334) 715-0517','rutrum.non@yahoo.net','P.O. Box 677, 3225 Tempor St.','nextcloud'),
('Judith','Mccarthy','929753454775NIY','Ut Quam Ltd','(263) 173-0411','sit.amet@aol.com','Ap #352-5918 Lacus. St.','nextcloud'),
('Barbara','Alston','287875701943MEL','Maecenas Mi Industries','1-252-302-7586','sociis.natoque.penatibus@hotmail.ca','Ap #328-1540 Dignissim St.','nextcloud'),
('Whoopi','Fowler','683884472857DOF','Amet Foundation','(761) 296-1344','imperdiet.erat.nonummy@hotmail.org','4219 Cursus Street','nextcloud'),
('Simon','Lancaster','628132960861DEJ','Per Conubia Institute','1-645-426-3261','dapibus.quam@aol.net','169-896 Vel St.','nextcloud'),
('Alec','Donaldson','138565369159CCY','Pede Nonummy Company','(858) 472-6554','nullam.nisl@hotmail.ca','P.O. Box 162, 9059 Nonummy St.','nextcloud'),
('Giselle','Simmons','973851578138KSR','Molestie In Industries','1-545-252-4772','fringilla.donec@hotmail.couk','Ap #775-6084 Nunc Rd.','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('XGW22BSY1EB','sit amet ultricies sem magna','13.71','nextcloud'),
('UWF46NXU3BN','nec quam. Curabitur vel lectus.','84.63','nextcloud'),
('NDT49RKS7LN','dolor. Donec fringilla. Donec feugiat','16.47','nextcloud'),
('QOY48XMS6CO','sem magna nec quam. Curabitur','08.53','nextcloud'),
('ATH98SIK3YD','Phasellus dolor elit, pellentesque a,','58.81','nextcloud'),
('DJY63OUW5YW','magna nec quam. Curabitur vel','81.92','nextcloud'),
('MBM41QFE5FP','purus. Duis elementum, dui quis','57.37','nextcloud'),
('FEM69UDR4WY','auctor, velit eget laoreet posuere,','38.98','nextcloud'),
('QVL95KIT5YG','sagittis placerat. Cras dictum ultricies','52.09','nextcloud'),
('SRI53CVN7IR','eleifend non, dapibus rutrum, justo.','97.41','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('WSS45IFH1LF','Etiam gravida molestie arcu. Sed','52.01','nextcloud'),
('DYD31XXY4DZ','eu, ultrices sit amet, risus.','39.22','nextcloud'),
('MTC22RXA5BQ','nec, cursus a, enim. Suspendisse','71.24','nextcloud'),
('WSM34NSL7VW','tellus. Aenean egestas hendrerit neque.','66.28','nextcloud'),
('IOP40FUQ4HV','gravida non, sollicitudin a, malesuada','61.65','nextcloud'),
('BDP75JXB1PH','magna. Duis dignissim tempor arcu.','61.72','nextcloud'),
('REX39OZF7EB','dictum eu, eleifend nec, malesuada','56.84','nextcloud'),
('VPU37RSU2TP','ipsum cursus vestibulum. Mauris magna.','18.74','nextcloud'),
('GXJ39YPK1WX','pede nec ante blandit viverra.','57.75','nextcloud'),
('NOC47VCF4FG','metus. Aliquam erat volutpat. Nulla','79.66','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('EHV36EKX5NL','facilisis lorem tristique aliquet. Phasellus','64.16','nextcloud'),
('NGX85DLG6HM','nulla vulputate dui, nec tempus','92.83','nextcloud'),
('EFX25TQL5CE','molestie sodales. Mauris blandit enim','24.96','nextcloud'),
('ELW37CHC4DI','libero lacus, varius et, euismod','75.60','nextcloud'),
('SEY85KXD5SX','turpis egestas. Fusce aliquet magna','37.35','nextcloud'),
('JMB09VJT4ND','a feugiat tellus lorem eu','91.23','nextcloud'),
('UVH55XHD9DO','tincidunt aliquam arcu. Aliquam ultrices','65.24','nextcloud'),
('FUG88RCA8VU','elit, pretium et, rutrum non,','58.16','nextcloud'),
('RNT33WQU9TI','Proin nisl sem, consequat nec,','90.81','nextcloud'),
('MLE42HQX5BR','Quisque fringilla euismod enim. Etiam','48.35','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('SFP61IRL1EO','lobortis quam a felis ullamcorper','44.35','nextcloud'),
('CYG70BBG5XR','faucibus. Morbi vehicula. Pellentesque tincidunt','88.25','nextcloud'),
('GNX09RNJ8NH','ac mi eleifend egestas. Sed','65.15','nextcloud'),
('CGE85KYR1FB','consectetuer adipiscing elit. Curabitur sed','97.96','nextcloud'),
('UWQ47WPN8PS','sapien imperdiet ornare. In faucibus.','51.30','nextcloud'),
('TWC92UNT5EQ','lectus justo eu arcu. Morbi','31.12','nextcloud'),
('BJU94ZVQ8TV','felis, adipiscing fringilla, porttitor vulputate,','30.95','nextcloud'),
('FMO19TKP1PM','diam at pretium aliquet, metus','96.59','nextcloud'),
('MMW92SET7HF','massa lobortis ultrices. Vivamus rhoncus.','26.40','nextcloud'),
('HRI35FSQ3CO','molestie pharetra nibh. Aliquam ornare,','21.04','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('KRX11FFY4QK','semper auctor. Mauris vel turpis.','30.61','nextcloud'),
('UBI75MVC3HB','non quam. Pellentesque habitant morbi','08.52','nextcloud'),
('EJU66BKX1NS','amet, dapibus id, blandit at,','31.28','nextcloud'),
('DTZ76ETN7LE','ultrices sit amet, risus. Donec','35.24','nextcloud'),
('DKL33KGW5BJ','pharetra ut, pharetra sed, hendrerit','61.87','nextcloud'),
('RLN65SQG0EZ','Aliquam rutrum lorem ac risus.','71.86','nextcloud'),
('XSC11SJX6JV','Sed pharetra, felis eget varius','27.01','nextcloud'),
('KQT66XHR2DJ','est. Mauris eu turpis. Nulla','13.51','nextcloud'),
('HVC65JZR4KF','risus. Nulla eget metus eu','15.27','nextcloud'),
('OXF22HXJ8XR','purus mauris a nunc. In','99.08','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('WUO82CDH9ZO','orci lobortis augue scelerisque mollis.','12.51','nextcloud'),
('DLG66BWS8MO','Cras eget nisi dictum augue','45.22','nextcloud'),
('FLB51OUU4RF','dis parturient montes, nascetur ridiculus','34.23','nextcloud'),
('VFM68YTT7OD','Quisque ac libero nec ligula','10.52','nextcloud'),
('ZLH94EZJ9XP','urna et arcu imperdiet ullamcorper.','41.19','nextcloud'),
('BWM89JYQ0FY','vel est tempor bibendum. Donec','82.54','nextcloud'),
('ETZ72QJO9MU','gravida sagittis. Duis gravida. Praesent','72.22','nextcloud'),
('JQQ43UBR7FC','ultricies dignissim lacus. Aliquam rutrum','00.74','nextcloud'),
('XJI86QQG2ON','tellus non magna. Nam ligula','12.35','nextcloud'),
('DOH91FXU8SS','massa lobortis ultrices. Vivamus rhoncus.','11.08','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('JDB47RGY5QM','Integer aliquam adipiscing lacus. Ut','29.73','nextcloud'),
('MLL18IMB4TE','fringilla. Donec feugiat metus sit','93.89','nextcloud'),
('SPL25RUT4ET','enim nec tempus scelerisque, lorem','57.62','nextcloud'),
('AGH83WQQ2RS','dolor. Quisque tincidunt pede ac','37.82','nextcloud'),
('BDH33CNT2ZT','fringilla purus mauris a nunc.','66.37','nextcloud'),
('SID83GDS7PY','dui, nec tempus mauris erat','10.49','nextcloud'),
('SSJ28TPG7VN','arcu imperdiet ullamcorper. Duis at','01.29','nextcloud'),
('HDP43CGX1MI','convallis est, vitae sodales nisi','83.54','nextcloud'),
('OTK82LGD8NL','Nunc commodo auctor velit. Aliquam','92.82','nextcloud'),
('LIK40SHH6KS','lorem, eget mollis lectus pede','49.67','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('LEK02HEW5PX','fermentum convallis ligula. Donec luctus','64.19','nextcloud'),
('XBR04NCA5CM','non, dapibus rutrum, justo. Praesent','11.87','nextcloud'),
('RWG37VOB0RY','montes, nascetur ridiculus mus. Aenean','81.37','nextcloud'),
('UBW64WEN8VN','vitae mauris sit amet lorem','65.18','nextcloud'),
('LCU73UVK5ZK','adipiscing lacus. Ut nec urna','47.09','nextcloud'),
('ZJM37VZV6LR','Phasellus ornare. Fusce mollis. Duis','54.08','nextcloud'),
('YPT38GUN1QU','ante dictum mi, ac mattis','17.13','nextcloud'),
('LYY77NSM8BN','sodales. Mauris blandit enim consequat','43.26','nextcloud'),
('RHP57YSY3JB','id sapien. Cras dolor dolor,','12.48','nextcloud'),
('VQP58LMH2NQ','Sed neque. Sed eget lacus.','89.86','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('DCE69HSM6UF','ornare placerat, orci lacus vestibulum','68.29','nextcloud'),
('VUT91LSI0IW','non quam. Pellentesque habitant morbi','48.73','nextcloud'),
('YYI86RRK3MN','Nulla eu neque pellentesque massa','48.31','nextcloud'),
('VLY72MSO2LN','Morbi vehicula. Pellentesque tincidunt tempus','81.30','nextcloud'),
('IHW72RVM4HJ','risus. Nunc ac sem ut','72.08','nextcloud'),
('ADY61JVU3QD','pede et risus. Quisque libero','16.78','nextcloud'),
('OVP21ECX6HX','Aliquam ultrices iaculis odio. Nam','59.98','nextcloud'),
('WXI62QDT3HI','Aenean massa. Integer vitae nibh.','55.40','nextcloud'),
('PFF57MHR6HK','Donec consectetuer mauris id sapien.','58.68','nextcloud'),
('UTP35CRF7NW','morbi tristique senectus et netus','68.54','nextcloud');
INSERT INTO "oc_gestion_produit" ("reference","description","prix_unitaire","id_nextcloud")
VALUES
('ZJP75KLO4BL','auctor odio a purus. Duis','62.42','nextcloud'),
('CMU06ZGV4GI','enim diam vel arcu. Curabitur','88.73','nextcloud'),
('YLF82TSB7GR','euismod est arcu ac orci.','28.25','nextcloud'),
('MMU35LNQ9BW','venenatis vel, faucibus id, libero.','74.72','nextcloud'),
('WWM41INX5QT','adipiscing. Mauris molestie pharetra nibh.','87.64','nextcloud'),
('UUA87PPC8TQ','convallis erat, eget tincidunt dui','13.34','nextcloud'),
('TWL44JPE3JP','Sed eu nibh vulputate mauris','58.49','nextcloud'),
('NJV12GLF4OG','cubilia Curae Phasellus ornare. Fusce','16.92','nextcloud'),
('AWT62CNG8YL','sed leo. Cras vehicula aliquet','55.71','nextcloud'),
('LIJ93VMT8VS','blandit mattis. Cras eget nisi','32.44','nextcloud');
INSERT INTO "oc_gestion_devis" ("date","num","comment","id_nextcloud","version","mentions","id_client")
VALUES
('2021-03-05','QUOTE-1','Nullam lobortis quam a felis ullamcorper viverra.','nextcloud','0.9','auctor,',13),
('2022-01-25','QUOTE-2','Donec fringilla. Donec feugiat metus sit amet ante.','nextcloud','8.5','enim',25),
('2021-09-02','QUOTE-3','facilisis eget, ipsum. Donec','nextcloud','7.1','urna.',11),
('2021-08-01','QUOTE-4','In ornare sagittis felis. Donec','nextcloud','5.0','vitae',22),
('2022-02-16','QUOTE-5','mattis','nextcloud','8.8','Proin',12),
('2022-05-09','QUOTE-6','In','nextcloud','3.8','a',33),
('2022-06-25','QUOTE-7','aliquet magna a neque. Nullam ut nisi a','nextcloud','2.4','consectetuer',29),
('2021-11-20','QUOTE-8','quis urna.','nextcloud','4.3','rutrum',13),
('2022-12-24','QUOTE-9','tincidunt vehicula risus. Nulla eget metus eu','nextcloud','5.0','blandit',16),
('2021-07-10','QUOTE-10','neque sed dictum eleifend, nunc risus varius','nextcloud','1.1','Cum',15);
INSERT INTO "oc_gestion_devis" ("date","num","comment","id_nextcloud","version","mentions","id_client")
VALUES
('2022-12-01','QUOTE-11','nunc, ullamcorper eu, euismod ac, fermentum vel,','nextcloud','9.5','a,',11),
('2022-09-19','QUOTE-12','mauris eu elit.','nextcloud','1.1','faucibus.',12),
('2021-10-30','QUOTE-13','nisl. Quisque fringilla euismod enim. Etiam gravida molestie','nextcloud','8.3','tellus',11),
('2021-02-08','QUOTE-14','fringilla, porttitor vulputate, posuere vulputate, lacus. Cras interdum. Nunc','nextcloud','1.4','Vivamus',12),
('2021-05-25','QUOTE-15','sem. Nulla interdum. Curabitur dictum.','nextcloud','6.8','massa',11),
('2023-01-15','QUOTE-16','tincidunt, neque vitae semper egestas, urna','nextcloud','1.9','sed',12),
('2022-12-13','QUOTE-17','ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam auctor,','nextcloud','6.0','sit',12),
('2022-08-11','QUOTE-18','augue, eu tempor erat neque non quam.','nextcloud','6.5','morbi',26),
('2022-10-02','QUOTE-19','dictum mi,','nextcloud','5.1','gravida',31),
('2021-09-29','QUOTE-20','sed pede. Cum sociis','nextcloud','7.6','pede',19);
INSERT INTO "oc_gestion_devis" ("date","num","comment","id_nextcloud","version","mentions","id_client")
VALUES
('2022-05-11','QUOTE-21','sem ut cursus luctus, ipsum leo elementum sem, vitae aliquam','nextcloud','9.7','iaculis',19),
('2022-08-02','QUOTE-22','est. Nunc ullamcorper, velit in aliquet lobortis, nisi nibh lacinia','nextcloud','2.3','sit',27),
('2021-05-19','QUOTE-23','est.','nextcloud','7.9','arcu.',25),
('2021-08-30','QUOTE-24','blandit mattis. Cras eget nisi dictum augue malesuada malesuada.','nextcloud','4.9','molestie',14),
('2022-08-25','QUOTE-25','Nullam ut nisi','nextcloud','3.6','Curae',31),
('2022-06-01','QUOTE-26','nec, mollis vitae, posuere at, velit. Cras','nextcloud','8.5','nisi.',25),
('2022-04-23','QUOTE-27','rutrum magna.','nextcloud','7.9','in',31),
('2022-12-17','QUOTE-28','eu, eleifend nec,','nextcloud','4.2','mauris',27),
('2021-05-15','QUOTE-29','mauris sit amet lorem semper auctor. Mauris','nextcloud','2.4','arcu.',24),
('2022-06-02','QUOTE-30','aliquet. Phasellus fermentum convallis ligula. Donec','nextcloud','3.7','commodo',27);
INSERT INTO "oc_gestion_devis" ("date","num","comment","id_nextcloud","version","mentions","id_client")
VALUES
('2022-05-31','QUOTE-31','lacus. Ut nec urna et','nextcloud','3.5','ac',29),
('2022-07-04','QUOTE-32','id, blandit','nextcloud','5.0','erat',19),
('2021-04-29','QUOTE-33','penatibus et','nextcloud','6.2','Aliquam',11),
('2022-11-15','QUOTE-34','faucibus ut, nulla. Cras eu tellus eu augue porttitor','nextcloud','3.6','amet',34),
('2022-09-03','QUOTE-35','Donec luctus aliquet odio. Etiam ligula tortor,','nextcloud','8.4','et',22),
('2022-12-30','QUOTE-36','aliquam eros turpis non','nextcloud','5.6','lorem',23),
('2022-01-11','QUOTE-37','nisi dictum augue malesuada malesuada. Integer id','nextcloud','5.2','tincidunt',20),
('2022-03-08','QUOTE-38','eget, volutpat','nextcloud','3.2','gravida.',27),
('2021-11-18','QUOTE-39','Morbi vehicula. Pellentesque tincidunt tempus risus. Donec egestas. Duis ac','nextcloud','5.9','penatibus',11),
('2021-08-17','QUOTE-40','porttitor scelerisque neque. Nullam nisl. Maecenas malesuada fringilla','nextcloud','1.5','molestie',20);
INSERT INTO "oc_gestion_devis" ("date","num","comment","id_nextcloud","version","mentions","id_client")
VALUES
('2022-02-28','QUOTE-41','vel, convallis in, cursus et, eros.','nextcloud','7.7','vulputate',11),
('2022-12-18','QUOTE-42','facilisis lorem tristique aliquet.','nextcloud','7.6','tincidunt',19),
('2021-12-16','QUOTE-43','Suspendisse non leo. Vivamus nibh dolor, nonummy','nextcloud','8.3','Nunc',22),
('2022-12-22','QUOTE-44','ipsum porta elit, a feugiat tellus lorem eu metus.','nextcloud','2.0','et',21),
('2021-02-16','QUOTE-45','et magnis','nextcloud','5.7','neque',27),
('2021-10-23','QUOTE-46','Integer id magna','nextcloud','9.3','non',25),
('2022-04-08','QUOTE-47','neque. Nullam ut nisi a odio semper','nextcloud','4.6','vitae',33),
('2021-06-27','QUOTE-48','bibendum fermentum metus. Aenean sed pede nec','nextcloud','1.5','dictum',24),
('2022-05-13','QUOTE-49','Ut sagittis lobortis mauris. Suspendisse aliquet molestie tellus.','nextcloud','4.1','eros',12),
('2021-09-13','QUOTE-50','adipiscing lacus. Ut','nextcloud','4.2','ultricies',12);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',53,80,3),
('nextcloud',40,53,2),
('nextcloud',45,20,9),
('nextcloud',36,90,10),
('nextcloud',27,23,10),
('nextcloud',26,41,5),
('nextcloud',57,22,9),
('nextcloud',22,42,3),
('nextcloud',41,43,7),
('nextcloud',28,105,10);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',44,79,7),
('nextcloud',18,25,6),
('nextcloud',28,16,3),
('nextcloud',22,68,8),
('nextcloud',43,49,7),
('nextcloud',29,55,7),
('nextcloud',53,62,5),
('nextcloud',38,48,4),
('nextcloud',56,71,8),
('nextcloud',15,9,1);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',16,57,8),
('nextcloud',22,69,3),
('nextcloud',43,82,8),
('nextcloud',37,62,9),
('nextcloud',42,88,4),
('nextcloud',9,69,7),
('nextcloud',23,47,3),
('nextcloud',52,100,10),
('nextcloud',35,40,9),
('nextcloud',57,79,3);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',47,60,1),
('nextcloud',14,54,3),
('nextcloud',24,64,4),
('nextcloud',27,95,8),
('nextcloud',34,56,3),
('nextcloud',22,84,8),
('nextcloud',58,48,3),
('nextcloud',24,65,3),
('nextcloud',39,19,3),
('nextcloud',10,56,4);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',34,23,9),
('nextcloud',39,44,2),
('nextcloud',9,79,7),
('nextcloud',26,10,1),
('nextcloud',9,93,7),
('nextcloud',27,104,9),
('nextcloud',32,64,4),
('nextcloud',32,29,4),
('nextcloud',47,93,8),
('nextcloud',22,25,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',53,11,6),
('nextcloud',45,99,4),
('nextcloud',25,95,9),
('nextcloud',57,40,5),
('nextcloud',42,46,9),
('nextcloud',24,96,5),
('nextcloud',10,12,8),
('nextcloud',51,43,3),
('nextcloud',44,56,8),
('nextcloud',16,34,3);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',22,85,7),
('nextcloud',27,32,5),
('nextcloud',20,44,3),
('nextcloud',19,48,5),
('nextcloud',45,94,5),
('nextcloud',43,79,4),
('nextcloud',39,12,2),
('nextcloud',12,8,4),
('nextcloud',26,14,7),
('nextcloud',25,70,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',31,45,7),
('nextcloud',29,24,2),
('nextcloud',17,17,5),
('nextcloud',43,67,6),
('nextcloud',15,102,5),
('nextcloud',39,51,8),
('nextcloud',26,20,2),
('nextcloud',25,39,5),
('nextcloud',19,59,1),
('nextcloud',23,45,5);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',14,37,6),
('nextcloud',11,87,7),
('nextcloud',9,69,4),
('nextcloud',32,24,6),
('nextcloud',45,26,7),
('nextcloud',32,32,1),
('nextcloud',57,56,4),
('nextcloud',54,62,9),
('nextcloud',18,55,1),
('nextcloud',49,92,4);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',14,85,4),
('nextcloud',17,61,4),
('nextcloud',19,51,7),
('nextcloud',29,24,7),
('nextcloud',47,13,3),
('nextcloud',31,93,2),
('nextcloud',16,22,1),
('nextcloud',38,73,4),
('nextcloud',11,60,4),
('nextcloud',12,55,8);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',50,71,2),
('nextcloud',37,37,7),
('nextcloud',44,63,9),
('nextcloud',43,85,1),
('nextcloud',38,28,6),
('nextcloud',15,67,2),
('nextcloud',11,39,7),
('nextcloud',28,8,10),
('nextcloud',31,41,10),
('nextcloud',53,53,3);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',40,37,4),
('nextcloud',57,93,2),
('nextcloud',10,100,5),
('nextcloud',17,26,10),
('nextcloud',45,36,9),
('nextcloud',14,98,3),
('nextcloud',25,71,9),
('nextcloud',34,14,2),
('nextcloud',26,81,4),
('nextcloud',56,45,8);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',10,40,5),
('nextcloud',56,67,10),
('nextcloud',30,42,2),
('nextcloud',35,23,4),
('nextcloud',57,52,10),
('nextcloud',35,27,7),
('nextcloud',57,106,2),
('nextcloud',47,37,4),
('nextcloud',57,86,8),
('nextcloud',46,50,9);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',56,63,4),
('nextcloud',34,40,4),
('nextcloud',13,34,6),
('nextcloud',42,50,7),
('nextcloud',50,102,8),
('nextcloud',18,45,8),
('nextcloud',17,103,5),
('nextcloud',21,31,6),
('nextcloud',11,19,4),
('nextcloud',38,100,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',22,97,3),
('nextcloud',30,87,7),
('nextcloud',24,92,3),
('nextcloud',32,73,3),
('nextcloud',38,106,8),
('nextcloud',44,77,8),
('nextcloud',55,79,6),
('nextcloud',49,78,7),
('nextcloud',22,34,4),
('nextcloud',38,72,4);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',24,105,4),
('nextcloud',17,37,4),
('nextcloud',10,92,3),
('nextcloud',46,52,7),
('nextcloud',52,30,1),
('nextcloud',39,53,6),
('nextcloud',22,25,5),
('nextcloud',30,23,4),
('nextcloud',30,36,10),
('nextcloud',34,90,4);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',17,104,4),
('nextcloud',10,91,3),
('nextcloud',42,97,6),
('nextcloud',9,84,3),
('nextcloud',17,79,7),
('nextcloud',32,52,5),
('nextcloud',17,44,9),
('nextcloud',43,23,7),
('nextcloud',26,46,6),
('nextcloud',30,15,4);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',28,85,7),
('nextcloud',11,95,9),
('nextcloud',40,99,3),
('nextcloud',45,74,2),
('nextcloud',24,37,7),
('nextcloud',28,103,6),
('nextcloud',26,98,2),
('nextcloud',47,37,6),
('nextcloud',26,88,2),
('nextcloud',28,75,2);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',30,17,2),
('nextcloud',10,84,9),
('nextcloud',46,105,9),
('nextcloud',56,94,9),
('nextcloud',16,43,8),
('nextcloud',48,99,2),
('nextcloud',54,33,2),
('nextcloud',49,88,10),
('nextcloud',11,58,4),
('nextcloud',37,42,1);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',38,21,8),
('nextcloud',49,23,4),
('nextcloud',49,81,6),
('nextcloud',39,89,6),
('nextcloud',18,58,3),
('nextcloud',10,96,6),
('nextcloud',38,74,9),
('nextcloud',53,14,2),
('nextcloud',53,87,1),
('nextcloud',41,105,7);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',45,34,9),
('nextcloud',39,86,10),
('nextcloud',49,70,5),
('nextcloud',35,75,4),
('nextcloud',20,104,5),
('nextcloud',40,19,8),
('nextcloud',41,78,8),
('nextcloud',27,41,1),
('nextcloud',40,65,1),
('nextcloud',55,24,7);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',21,10,10),
('nextcloud',13,106,4),
('nextcloud',56,51,3),
('nextcloud',18,91,9),
('nextcloud',51,23,2),
('nextcloud',23,64,6),
('nextcloud',39,86,5),
('nextcloud',54,45,6),
('nextcloud',17,80,4),
('nextcloud',26,27,2);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',13,16,8),
('nextcloud',42,91,9),
('nextcloud',52,92,9),
('nextcloud',39,12,4),
('nextcloud',20,43,5),
('nextcloud',11,56,7),
('nextcloud',12,95,6),
('nextcloud',49,26,7),
('nextcloud',48,18,7),
('nextcloud',37,88,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',44,51,9),
('nextcloud',41,86,4),
('nextcloud',28,33,2),
('nextcloud',43,17,5),
('nextcloud',28,51,3),
('nextcloud',54,89,7),
('nextcloud',36,98,1),
('nextcloud',30,29,10),
('nextcloud',17,90,8),
('nextcloud',13,47,3);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',48,90,4),
('nextcloud',42,89,1),
('nextcloud',25,10,5),
('nextcloud',13,104,1),
('nextcloud',49,34,4),
('nextcloud',42,70,6),
('nextcloud',10,97,2),
('nextcloud',36,22,10),
('nextcloud',54,107,3),
('nextcloud',14,9,9);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',52,96,1),
('nextcloud',54,76,4),
('nextcloud',16,94,9),
('nextcloud',38,43,8),
('nextcloud',25,81,7),
('nextcloud',35,35,3),
('nextcloud',11,66,2),
('nextcloud',35,91,3),
('nextcloud',49,71,1),
('nextcloud',44,62,2);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',41,38,1),
('nextcloud',27,66,4),
('nextcloud',51,54,2),
('nextcloud',51,30,1),
('nextcloud',27,96,9),
('nextcloud',24,96,9),
('nextcloud',33,40,7),
('nextcloud',53,21,4),
('nextcloud',26,46,7),
('nextcloud',41,58,2);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',42,98,3),
('nextcloud',9,27,9),
('nextcloud',38,85,8),
('nextcloud',50,26,9),
('nextcloud',21,16,5),
('nextcloud',54,100,2),
('nextcloud',23,28,4),
('nextcloud',43,31,4),
('nextcloud',9,19,4),
('nextcloud',48,19,1);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',48,98,3),
('nextcloud',14,69,8),
('nextcloud',55,34,8),
('nextcloud',38,13,7),
('nextcloud',26,86,2),
('nextcloud',43,30,5),
('nextcloud',44,16,1),
('nextcloud',26,81,5),
('nextcloud',49,87,9),
('nextcloud',28,92,4);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',33,55,5),
('nextcloud',22,65,5),
('nextcloud',16,83,4),
('nextcloud',13,25,4),
('nextcloud',29,41,3),
('nextcloud',29,41,3),
('nextcloud',20,63,1),
('nextcloud',19,57,9),
('nextcloud',17,12,2),
('nextcloud',47,40,2);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',26,38,5),
('nextcloud',16,26,7),
('nextcloud',11,55,7),
('nextcloud',53,105,8),
('nextcloud',52,11,8),
('nextcloud',47,34,5),
('nextcloud',30,28,1),
('nextcloud',42,16,9),
('nextcloud',55,85,6),
('nextcloud',35,10,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',41,30,9),
('nextcloud',18,47,4),
('nextcloud',23,89,3),
('nextcloud',16,56,6),
('nextcloud',27,51,4),
('nextcloud',50,53,9),
('nextcloud',48,84,8),
('nextcloud',33,95,8),
('nextcloud',13,30,2),
('nextcloud',53,16,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',36,52,2),
('nextcloud',28,47,4),
('nextcloud',13,81,7),
('nextcloud',45,102,7),
('nextcloud',39,73,9),
('nextcloud',35,65,5),
('nextcloud',40,82,8),
('nextcloud',22,91,6),
('nextcloud',50,43,3),
('nextcloud',25,102,4);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',40,95,9),
('nextcloud',48,28,9),
('nextcloud',15,60,3),
('nextcloud',16,54,5),
('nextcloud',48,107,5),
('nextcloud',38,96,8),
('nextcloud',28,18,4),
('nextcloud',45,15,7),
('nextcloud',39,81,2),
('nextcloud',28,95,2);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',48,48,1),
('nextcloud',39,50,4),
('nextcloud',11,21,7),
('nextcloud',29,11,6),
('nextcloud',31,103,9),
('nextcloud',12,79,7),
('nextcloud',57,45,8),
('nextcloud',32,85,2),
('nextcloud',50,68,9),
('nextcloud',19,101,2);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',40,77,2),
('nextcloud',49,12,10),
('nextcloud',15,98,5),
('nextcloud',49,76,9),
('nextcloud',38,91,2),
('nextcloud',28,29,3),
('nextcloud',50,24,4),
('nextcloud',35,106,4),
('nextcloud',12,78,5),
('nextcloud',49,60,8);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',52,62,2),
('nextcloud',26,50,6),
('nextcloud',54,62,9),
('nextcloud',23,37,6),
('nextcloud',41,40,7),
('nextcloud',56,22,4),
('nextcloud',56,46,10),
('nextcloud',36,85,4),
('nextcloud',19,13,6),
('nextcloud',42,82,3);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',47,54,10),
('nextcloud',26,12,6),
('nextcloud',34,29,2),
('nextcloud',10,49,7),
('nextcloud',57,102,6),
('nextcloud',29,16,1),
('nextcloud',28,24,5),
('nextcloud',25,40,9),
('nextcloud',15,92,7),
('nextcloud',56,13,8);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',40,57,4),
('nextcloud',28,63,4),
('nextcloud',26,75,8),
('nextcloud',45,101,2),
('nextcloud',29,79,1),
('nextcloud',50,17,5),
('nextcloud',48,89,6),
('nextcloud',44,62,3),
('nextcloud',36,26,9),
('nextcloud',54,84,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',21,78,9),
('nextcloud',40,100,3),
('nextcloud',25,38,6),
('nextcloud',27,50,7),
('nextcloud',49,49,6),
('nextcloud',16,52,6),
('nextcloud',45,84,7),
('nextcloud',26,44,10),
('nextcloud',26,22,7),
('nextcloud',31,51,3);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',44,77,2),
('nextcloud',55,64,2),
('nextcloud',45,98,5),
('nextcloud',14,74,3),
('nextcloud',13,32,9),
('nextcloud',40,61,7),
('nextcloud',48,96,4),
('nextcloud',35,35,3),
('nextcloud',13,21,7),
('nextcloud',10,78,8);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',55,69,7),
('nextcloud',16,77,9),
('nextcloud',45,50,8),
('nextcloud',41,93,5),
('nextcloud',43,103,2),
('nextcloud',34,102,3),
('nextcloud',56,85,3),
('nextcloud',44,53,9),
('nextcloud',49,105,4),
('nextcloud',27,29,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',38,97,7),
('nextcloud',12,66,9),
('nextcloud',10,103,6),
('nextcloud',43,97,2),
('nextcloud',27,88,2),
('nextcloud',41,77,6),
('nextcloud',36,26,5),
('nextcloud',17,12,9),
('nextcloud',53,97,7),
('nextcloud',12,63,8);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',33,30,4),
('nextcloud',49,65,9),
('nextcloud',21,12,9),
('nextcloud',22,94,9),
('nextcloud',55,34,10),
('nextcloud',17,46,4),
('nextcloud',42,39,2),
('nextcloud',13,56,3),
('nextcloud',22,19,9),
('nextcloud',40,10,4);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',50,84,7),
('nextcloud',33,101,3),
('nextcloud',49,18,2),
('nextcloud',56,57,9),
('nextcloud',56,105,7),
('nextcloud',46,49,5),
('nextcloud',25,44,4),
('nextcloud',19,91,5),
('nextcloud',11,22,8),
('nextcloud',49,101,1);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',15,27,3),
('nextcloud',40,41,2),
('nextcloud',48,64,4),
('nextcloud',41,18,9),
('nextcloud',18,70,9),
('nextcloud',16,43,2),
('nextcloud',51,70,1),
('nextcloud',34,72,8),
('nextcloud',38,86,6),
('nextcloud',51,56,9);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',51,41,7),
('nextcloud',47,87,9),
('nextcloud',47,85,7),
('nextcloud',34,104,3),
('nextcloud',58,95,7),
('nextcloud',23,27,7),
('nextcloud',45,30,6),
('nextcloud',43,76,6),
('nextcloud',42,11,2),
('nextcloud',35,44,6);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',50,98,8),
('nextcloud',17,49,9),
('nextcloud',50,90,7),
('nextcloud',34,97,7),
('nextcloud',32,93,8),
('nextcloud',48,19,7),
('nextcloud',48,78,2),
('nextcloud',17,31,8),
('nextcloud',17,23,5),
('nextcloud',17,60,7);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',37,71,2),
('nextcloud',17,96,5),
('nextcloud',14,93,3),
('nextcloud',29,67,6),
('nextcloud',47,38,5),
('nextcloud',19,11,7),
('nextcloud',56,55,8),
('nextcloud',44,107,6),
('nextcloud',48,37,2),
('nextcloud',31,22,10);
INSERT INTO "oc_gestion_produit_devis" ("id_nextcloud","devis_id","produit_id","quantite")
VALUES
('nextcloud',30,31,6),
('nextcloud',27,14,8),
('nextcloud',47,74,9),
('nextcloud',55,76,3),
('nextcloud',23,91,10),
('nextcloud',42,90,1),
('nextcloud',46,92,4),
('nextcloud',10,21,5),
('nextcloud',43,80,7),
('nextcloud',22,16,1);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-1','October 10th, 2022','2022-01-19','Credit CARD','PAID','5.7',42),
('nextcloud','INVOICE-2','October 9th, 2021','2022-04-05','BITCOIN','CANCELLED','7.4',43),
('nextcloud','INVOICE-3','May 15th, 2022','2022-03-12','BITCOIN','CANCELLED','3.1',13),
('nextcloud','INVOICE-4','February 2nd, 2021','2021-07-07','Credit CARD','OK','7.5',33),
('nextcloud','INVOICE-5','May 24th, 2021','2022-05-16','Credit CARD','WAIT','1.0',36),
('nextcloud','INVOICE-6','July 30th, 2022','2021-03-01','Transfert','CANCELLED','7.5',32),
('nextcloud','INVOICE-7','October 10th, 2021','2021-11-17','Credit CARD','WAIT','1.5',57),
('nextcloud','INVOICE-8','February 23rd, 2022','2021-05-25','BITCOIN','OK','0.9',31),
('nextcloud','INVOICE-9','March 3rd, 2022','2022-03-04','Credit CARD','RECEIVED','4.2',43),
('nextcloud','INVOICE-10','March 15th, 2021','2023-01-09','Transfert','REFUSED','8.3',24);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-11','June 13th, 2022','2022-01-19','BITCOIN','WAIT','2.1',30),
('nextcloud','INVOICE-12','September 24th, 2021','2022-05-20','BITCOIN','CANCELLED','2.0',57),
('nextcloud','INVOICE-13','November 7th, 2021','2022-09-08','Transfert','WAIT','6.5',26),
('nextcloud','INVOICE-14','April 14th, 2022','2021-05-29','Transfert','REFUNDED','1.3',22),
('nextcloud','INVOICE-15','November 23rd, 2022','2021-10-16','Transfert','CANCELLED','8.8',33),
('nextcloud','INVOICE-16','November 27th, 2021','2022-02-16','Credit CARD','RECEIVED','3.1',30),
('nextcloud','INVOICE-17','July 16th, 2021','2022-05-04','Credit CARD','REFUNDED','8.1',21),
('nextcloud','INVOICE-18','November 22nd, 2022','2021-10-05','BITCOIN','RECEIVED','8.8',30),
('nextcloud','INVOICE-19','October 28th, 2021','2022-03-28','Transfert','REFUNDED','3.2',43),
('nextcloud','INVOICE-20','November 21st, 2022','2022-08-29','Transfert','REFUSED','6.6',27);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-21','December 23rd, 2022','2022-03-29','Credit CARD','RECEIVED','8.2',11),
('nextcloud','INVOICE-22','November 26th, 2022','2021-07-02','BITCOIN','CANCELLED','8.5',29),
('nextcloud','INVOICE-23','June 4th, 2022','2021-05-10','Credit CARD','WAIT','6.5',27),
('nextcloud','INVOICE-24','December 17th, 2022','2022-05-17','BITCOIN','REFUNDED','9.0',58),
('nextcloud','INVOICE-25','December 25th, 2022','2021-09-16','BITCOIN','RECEIVED','6.1',42),
('nextcloud','INVOICE-26','March 21st, 2021','2021-12-03','BITCOIN','WAIT','5.8',30),
('nextcloud','INVOICE-27','January 2nd, 2022','2021-05-22','Transfert','RECEIVED','7.8',38),
('nextcloud','INVOICE-28','November 25th, 2022','2022-07-19','Credit CARD','REFUNDED','1.1',57),
('nextcloud','INVOICE-29','December 29th, 2022','2022-10-22','BITCOIN','PAID','5.2',24),
('nextcloud','INVOICE-30','May 1st, 2021','2022-08-28','Transfert','WAIT','6.5',44);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-31','February 24th, 2021','2021-10-01','BITCOIN','PAID','5.7',38),
('nextcloud','INVOICE-32','May 29th, 2022','2022-07-19','Credit CARD','RECEIVED','8.2',23),
('nextcloud','INVOICE-33','August 23rd, 2021','2021-12-10','Credit CARD','REFUNDED','2.4',17),
('nextcloud','INVOICE-34','May 27th, 2021','2022-03-11','BITCOIN','CANCELLED','3.1',47),
('nextcloud','INVOICE-35','July 28th, 2021','2023-01-20','BITCOIN','REFUSED','3.4',19),
('nextcloud','INVOICE-36','February 7th, 2022','2021-11-24','Transfert','REFUSED','1.8',17),
('nextcloud','INVOICE-37','January 14th, 2023','2021-08-30','Transfert','WAIT','2.6',15),
('nextcloud','INVOICE-38','January 22nd, 2023','2021-10-07','Credit CARD','REFUSED','7.5',35),
('nextcloud','INVOICE-39','September 29th, 2021','2022-08-09','Credit CARD','OK','4.5',28),
('nextcloud','INVOICE-40','September 4th, 2021','2022-07-23','Transfert','REFUNDED','6.7',21);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-41','July 25th, 2021','2022-01-23','Transfert','PAID','2.5',32),
('nextcloud','INVOICE-42','May 25th, 2021','2022-02-18','Credit CARD','WAIT','6.2',56),
('nextcloud','INVOICE-43','January 5th, 2022','2022-10-03','Transfert','REFUSED','5.4',31),
('nextcloud','INVOICE-44','April 1st, 2021','2022-12-14','BITCOIN','RECEIVED','3.1',56),
('nextcloud','INVOICE-45','October 9th, 2022','2023-01-25','BITCOIN','CANCELLED','3.0',37),
('nextcloud','INVOICE-46','September 20th, 2022','2021-02-05','Credit CARD','WAIT','1.5',48),
('nextcloud','INVOICE-47','June 7th, 2021','2022-06-15','Transfert','REFUNDED','4.7',52),
('nextcloud','INVOICE-48','November 15th, 2022','2021-08-15','BITCOIN','PAID','4.1',45),
('nextcloud','INVOICE-49','July 9th, 2022','2022-02-08','Transfert','RECEIVED','0.5',49),
('nextcloud','INVOICE-50','June 19th, 2022','2021-06-17','Credit CARD','OK','3.3',43);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-51','June 19th, 2021','2022-08-19','Credit CARD','WAIT','7.2',22),
('nextcloud','INVOICE-52','October 20th, 2022','2022-10-31','Transfert','PAID','1.9',30),
('nextcloud','INVOICE-53','September 13th, 2021','2022-09-25','Credit CARD','PAID','6.4',12),
('nextcloud','INVOICE-54','February 18th, 2021','2021-08-28','Transfert','REFUSED','7.2',52),
('nextcloud','INVOICE-55','January 17th, 2023','2022-10-18','Credit CARD','PAID','7.6',38),
('nextcloud','INVOICE-56','December 9th, 2021','2022-02-28','Credit CARD','REFUNDED','5.2',22),
('nextcloud','INVOICE-57','September 24th, 2021','2022-04-01','Credit CARD','CANCELLED','6.6',17),
('nextcloud','INVOICE-58','April 9th, 2022','2021-03-13','Transfert','PAID','3.3',29),
('nextcloud','INVOICE-59','January 21st, 2022','2022-03-15','Credit CARD','PAID','6.2',32),
('nextcloud','INVOICE-60','June 23rd, 2021','2022-08-19','Transfert','WAIT','8.1',31);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-61','October 18th, 2021','2021-09-18','Transfert','WAIT','2.9',31),
('nextcloud','INVOICE-62','January 11th, 2022','2021-04-09','Transfert','CANCELLED','7.3',11),
('nextcloud','INVOICE-63','December 21st, 2021','2021-12-14','Transfert','RECEIVED','6.5',20),
('nextcloud','INVOICE-64','March 16th, 2021','2021-10-25','Credit CARD','RECEIVED','5.8',11),
('nextcloud','INVOICE-65','September 16th, 2021','2021-12-11','BITCOIN','REFUSED','1.5',15),
('nextcloud','INVOICE-66','February 11th, 2021','2022-02-02','Credit CARD','RECEIVED','3.5',23),
('nextcloud','INVOICE-67','September 13th, 2022','2023-01-09','Transfert','WAIT','0.4',29),
('nextcloud','INVOICE-68','November 24th, 2022','2021-06-29','Credit CARD','REFUNDED','9.0',32),
('nextcloud','INVOICE-69','July 20th, 2022','2022-06-22','BITCOIN','WAIT','7.0',17),
('nextcloud','INVOICE-70','August 29th, 2022','2022-10-28','Credit CARD','RECEIVED','6.3',12);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-71','July 20th, 2021','2021-08-09','Credit CARD','CANCELLED','2.5',14),
('nextcloud','INVOICE-72','October 30th, 2022','2021-05-22','BITCOIN','REFUSED','6.2',53),
('nextcloud','INVOICE-73','December 20th, 2021','2022-11-30','Credit CARD','RECEIVED','8.8',26),
('nextcloud','INVOICE-74','December 7th, 2022','2022-11-09','Credit CARD','REFUNDED','4.4',41),
('nextcloud','INVOICE-75','February 19th, 2021','2021-06-29','Transfert','OK','1.7',19),
('nextcloud','INVOICE-76','October 27th, 2021','2021-08-01','BITCOIN','OK','0.0',43),
('nextcloud','INVOICE-77','November 28th, 2021','2021-05-18','Credit CARD','WAIT','6.5',16),
('nextcloud','INVOICE-78','April 19th, 2022','2022-11-05','Transfert','PAID','6.7',57),
('nextcloud','INVOICE-79','October 21st, 2022','2022-04-06','Transfert','REFUSED','4.8',54),
('nextcloud','INVOICE-80','May 24th, 2022','2022-05-02','Credit CARD','REFUSED','3.7',34);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-81','July 30th, 2021','2022-12-29','BITCOIN','REFUNDED','0.7',27),
('nextcloud','INVOICE-82','December 24th, 2022','2022-07-29','Credit CARD','CANCELLED','1.1',55),
('nextcloud','INVOICE-83','April 2nd, 2022','2022-04-07','Credit CARD','REFUNDED','6.4',17),
('nextcloud','INVOICE-84','June 27th, 2022','2021-05-03','Transfert','RECEIVED','6.6',35),
('nextcloud','INVOICE-85','September 12th, 2022','2021-11-27','Transfert','WAIT','5.3',12),
('nextcloud','INVOICE-86','February 13th, 2021','2022-04-07','Credit CARD','WAIT','6.3',54),
('nextcloud','INVOICE-87','October 18th, 2021','2021-03-20','Transfert','PAID','1.2',17),
('nextcloud','INVOICE-88','March 3rd, 2021','2021-06-15','Transfert','PAID','8.1',43),
('nextcloud','INVOICE-89','August 23rd, 2021','2022-12-23','Credit CARD','RECEIVED','0.4',34),
('nextcloud','INVOICE-90','March 27th, 2022','2021-02-18','Credit CARD','OK','3.2',38);
INSERT INTO "oc_gestion_facture" ("id_nextcloud","num","date","date_paiement","type_paiement","status_paiement","version","id_devis")
VALUES
('nextcloud','INVOICE-91','June 5th, 2021','2021-04-26','Transfert','REFUNDED','4.7',10),
('nextcloud','INVOICE-92','June 30th, 2022','2021-10-12','Transfert','OK','3.3',27),
('nextcloud','INVOICE-93','August 3rd, 2022','2022-07-14','Transfert','RECEIVED','0.2',22),
('nextcloud','INVOICE-94','August 11th, 2022','2022-12-06','BITCOIN','REFUNDED','1.4',16),
('nextcloud','INVOICE-95','September 18th, 2021','2021-12-13','BITCOIN','CANCELLED','4.6',43),
('nextcloud','INVOICE-96','December 10th, 2021','2021-11-29','Transfert','RECEIVED','9.3',55),
('nextcloud','INVOICE-97','June 11th, 2021','2021-03-17','BITCOIN','REFUSED','6.4',53),
('nextcloud','INVOICE-98','July 22nd, 2021','2022-04-27','Transfert','REFUSED','5.7',55),
('nextcloud','INVOICE-99','May 3rd, 2022','2021-09-13','Transfert','CANCELLED','9.6',55),
('nextcloud','INVOICE-100','December 12th, 2022','2021-02-02','Transfert','REFUNDED','2.4',41);