diff --git a/gestion/lib/Controller/PageController.php b/gestion/lib/Controller/PageController.php index 0d38ac3..2615c7a 100644 --- a/gestion/lib/Controller/PageController.php +++ b/gestion/lib/Controller/PageController.php @@ -749,303 +749,8 @@ class PageController extends Controller { } private function generer_document_comptable_client($date, $filter,$filterType) { - $current_config = json_decode($this->myDb->getConfiguration(self::DEFAULT_NEXTCLOUD_ADMIN)); 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)); - if($filterType == MultipleFactureTypeConstant::CLIENT_FILTER_TYPE){ - $factures = json_decode($this->myDb->getClientFacturesByClientIdAndDate( - clientId: $filter, - date: $date - )); - } - else{ - $factures = json_decode($this->myDb->getClientFacturesByClientGroupFacturationIdAndDate( - clientGroupFacturationId: $filter, - date: $date - )); - } - $factures = array_filter($factures, callback: function($facture) {return $facture->id_client != NULL; }); - foreach ($factures as $key => $facture) { - $facture_temp = array( - 'num' => $facture->num, - 'id_client' => $facture->id_client, - 'client' => $facture->entreprise, - 'adresse_client' => $facture->adresse_client, - 'mail_client' => $facture->mail_client, - 'adresse_devis' => $facture->lieu, - 'nom_client' => html_entity_decode($facture->nom), - 'prenoms_client' => html_entity_decode($facture->prenom), - 'numero_commande' => $facture->numero_commande, - 'date_soin' => $facture->date_soin, - 'date' => $facture->date, - 'date_facture' => $facture->date_paiement, - 'defunt' => $facture->nom_defunt, - 'montant_htc' => 0, - 'tva' => $current_config[0]->tva_default, - 'montant_tva' => 0, - '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); - }; - $data_temp = array(); - foreach ($data_factures as $key => $facture) { - $datesplit = explode('-', $facture['date_facture']); - if($data_temp[strval($datesplit[0])][strval($datesplit[1])][$facture['id_client']]==NULL) { - $data_temp[strval($datesplit[0])][strval($datesplit[1])][$facture['id_client']] = array(0=>$facture); - } else { - array_push($data_temp[strval($datesplit[0])][strval($datesplit[1])][$facture['id_client']], $facture); - } - } - foreach ($data_temp as $key_annee => $annee) { - foreach ($annee as $key_mois => $mois) { - foreach ($mois as $key_client => $client) { - $pdf = new FPDF(); - $pdf->AddFont('ComicSans','','Comic Sans MS.php'); - $pdf->AddFont('ComicSans','B','comic-sans-bold.php'); - $current_client = ''; - $clientAddress = ''; - $clientCity = ''; - $date_facture; - $j=1; - foreach ($client as $key => $facture) { - if($j==1) { - $current_client = $facture['prenoms_client'].' '.$facture['nom_client']; - $date_facture = $facture['date_facture']; - $clientAddresses = FileExportHelpers::GetAddressAndCityFromAddress($facture['adresse_client']); - $clientAddress = $clientAddresses['address']; - $clientCity = $clientAddresses['city']; - } - $j++; - } - $date_temp = date("t-m-Y", strtotime($date_facture)); - $formatter = new IntlDateFormatter('fr_FR', IntlDateFormatter::LONG, IntlDateFormatter::NONE); - $date_formated = $formatter->format(DateTime::createFromFormat('d-m-Y', $date_temp)); - - try { - $this->storage->newFolder(html_entity_decode($current_config[0]->path).'/DOCUMENTS RECAPITULATIFS/'.$key_annee.'/'.$key_mois.' '.strtoupper($this->convert_special_char(explode(' ', $date_formated)[1])).'/'); - } catch(\OCP\Files\NotPermittedException $e) { } - - $pdf->AddPage(); - // on sup les 2 cm en bas - $pdf->SetAutoPagebreak(False); - $pdf->SetMargins(0,0,10); - - // logo : 80 de largeur et 55 de hauteur - if($isLogoExist){ - $pdf->Image($this->defaultImagePath."logo.png", 10, 10, 75, 25); - } - // adresse du facture - $pdf->SetFont('ComicSans','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'); - } - // date facture - $pdf->SetFont('ComicSans','',11); - $pdf->Cell( 0, 8, "Saint Senoux, le ".utf8_decode($date_formated), 0, 1, 'R'); - - // observations - $pdf->SetFont( "ComicSans", "BU", 10 ); $pdf->SetXY( 10, 85 ) ; $pdf->Cell($pdf->GetStringWidth("Objet:"), 0, "Objet:", 0, "L"); - $objet = utf8_decode("Récapitulatif Facturation du mois de ").strtoupper($this->convert_special_char(explode(' ', $date_formated)[1])); - $pdf->SetFont( "ComicSans", "", 10 ); $pdf->SetXY( $pdf->GetStringWidth("Objet")+15, 85 ) ; $pdf->Cell($pdf->GetStringWidth($objet), 0, $objet, 0, "L"); - - $pdf->SetFont( "ComicSans", "", 10 ); $pdf->SetXY( $pdf->GetStringWidth("Objet")+15, 95 ); $pdf->Cell($pdf->GetStringWidth("Madame, Monsieur"), 0, "Madame, Monsieur", 0, "L"); - - $text1 = utf8_decode("Veuillez trouver ci-dessous le récapitulatif de la facturation du mois de ").strtoupper($this->convert_special_char(explode(' ', $date_formated)[1]))."."; - $text2 = utf8_decode("Vous en souhaitant bonne réception."); - $text3 = utf8_decode("Veuillez agréer, Madame, Monsieur, mes salutations les meilleures."); - - $pdf->SetFont( "ComicSans", "", 10 ); $pdf->SetXY( $pdf->GetStringWidth("Objet")+15, 105 ) ; $pdf->Cell($pdf->GetStringWidth($text1), 0, $text1, 0, "L"); - $pdf->SetFont( "ComicSans", "", 10 ); $pdf->SetXY( $pdf->GetStringWidth("Objet")+15, 110 ) ; $pdf->Cell($pdf->GetStringWidth($text2), 0, $text2, 0, "L"); - $pdf->SetFont( "ComicSans", "", 10 ); $pdf->SetXY( $pdf->GetStringWidth("Objet")+15, 120 ) ; $pdf->Cell($pdf->GetStringWidth($text3), 0, $text3, 0, "L"); - - // signature - $pdf->SetFont('ComicSans','',11); $pdf->SetXY( 145, 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); - } - - $y0 = 260; - $pageWidth = $pdf->GetPageWidth(); - //Positionnement en bas et tout centrer - $pdf->SetFont('ComicSans','',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->SetXY( 1, $y0 + 16 ); - $pdf->Cell( $pageWidth, 5, utf8_decode("SIREN 751621293"), 0, 0, 'C');*/ - - $num_page = 1; - $nb_page = ceil(sizeof($client) / 26); - $index_facture_position = 0; - $max_nb_toget = (sizeof($client)<=26)?sizeof($client):26; - - $montant_ht_total = 0; - $montant_tva_total = 0; - $montant_ttc_total = 0; - - while ($num_page <= $nb_page) { - $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); - } - - // n° page en haute à droite - if($nb_page>1){ - $pdf->SetXY( 120, 5 ); $pdf->SetFont( "ComicSans", "B", 9 ); $pdf->Cell( 160, 8, $num_page . '/' . $nb_page, 0, 0, 'C'); - } - - // date facture - $pdf->SetFont('ComicSans','',11); - $pdf->SetY(10); - $pdf->Cell( 0, 8,"Saint Senoux, le ".utf8_decode($date_formated), 0, 0, 'R'); - - // 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( "ComicSans", "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'); - - // adresse du facture - $pdf->SetFont('ComicSans','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'); - - // *********************** - // le cadre des articles - // *********************** - // cadre avec 18 lignes max ! et 118 de hauteur --> 80 + 118 = 198 pour les traits verticaux - $pdf->SetLineWidth(0.1); $pdf->Rect(5, 80, 200, 153, "D"); - // 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); - if($num_page == $nb_page) $pdf->Line(183, 80, 183, 240); - else $pdf->Line(183, 80, 183, 233); - // titre colonne - $pdf->SetXY( 1, 81 ); $pdf->SetFont('ComicSans','B',8); $pdf->Cell( 140, 8, "OBJET", 0, 0, 'C'); - $pdf->SetXY( 147, 81 ); $pdf->SetFont('ComicSans','B',8); $pdf->Cell( 13, 8, "H.T.", 0, 0, 'C'); - $pdf->SetXY( 168, 81 ); $pdf->SetFont('ComicSans','B',8); $pdf->Cell( 10, 8, "TVA 20%", 0, 0, 'C'); - $pdf->SetXY( 183, 81 ); $pdf->SetFont('ComicSans','B',8); $pdf->Cell( 22, 8, "T.T.C", 0, 0, 'C'); - - // (new DateTime($facture['date_soin']))->format('d-M') - $formatter_ds = new IntlDateFormatter('fr_FR', IntlDateFormatter::SHORT, IntlDateFormatter::NONE); - - // Set the pattern for the formatter to "d-MMMM" to display the day and month name in French - $formatter_ds->setPattern('dd-MMM'); - - //recuperation des factures - $y_facture = 90; - - $init_index = $index_facture_position; - - for ($index_facture_position; $index_facture_position < ($init_index + $max_nb_toget) ; $index_facture_position++) { - $date_soin_temp = new DateTime($client[$index_facture_position]['date_soin']); - - $pdf->SetXY( 6, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 28, 8, $client[$index_facture_position]['num'], 0, 0, ''); - $pdf->SetXY( 32, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 18, 8, utf8_decode($formatter_ds->format($date_soin_temp)), 0, 0, ''); - $pdf->SetXY( 50, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 38, 8, utf8_decode(html_entity_decode($client[$index_facture_position]['defunt'])), 0, 0, ''); - $pdf->SetXY( 90, $y_facture ); $pdf->SetFont('ComicSans','',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('ComicSans','',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('ComicSans','',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('ComicSans','',8); $pdf->Cell( 22, 8, number_format($client[$index_facture_position]['montant_ttc'],2,'.','').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']; - $montant_ttc_total = $montant_ttc_total+$client[$index_facture_position]['montant_ttc']; - - $y_facture=$y_facture+5; - } - - $nb_facture_chargee = $index_facture_position+1; - $reste_a_chargee = sizeof($client) - $nb_facture_chargee; - $max_nb_toget = ($reste_a_chargee <= 26) ? $reste_a_chargee+1 : 26; - - // si derniere page alors afficher cadre des TVA - if ($num_page == $nb_page) - { - $pdf->Line(5, 225, 205, 225); - $pdf->SetFont('ComicSans','B',8); $pdf->SetXY( 5, 225 ); $pdf->Cell( 140, 8, 'TOTAL', 0, 0, 'C'); - $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 147, 225 ); $pdf->Cell( 13, 8, number_format($montant_ht_total,2,'.','').chr(128), 0, 0, 'C'); - $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 168, 225 ); $pdf->Cell( 10, 8, number_format($montant_tva_total,2,'.','').chr(128), 0, 0, 'C'); - $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 183, 225 ); $pdf->Cell( 22, 8, number_format($montant_ttc_total,2,'.','').chr(128), 0, 0, 'C'); - - $pdf->Rect(145, 233, 60, 7, "D"); - $pdf->SetFont('ComicSans','B',8); $pdf->SetXY( 147, 233 ); $pdf->Cell( 30, 6.5, 'TOTAL TTC', 0, 0, 'C'); - $pdf->SetFont('ComicSans','B',8); $pdf->SetXY( 183, 233 ); $pdf->Cell( 22, 6.5, number_format($montant_ttc_total,2,'.','').chr(128), 0, 0, 'C', true); - } - - $y1 = 245; - - $pdf->SetFillColor(255); - $pdf->SetTextColor(0, 0, 0); - - $pdf->SetFont('ComicSans','',9); - - $pdf->SetXY( 10, $y1 );$pdf->Cell( $pdf->GetPageWidth(), 4, utf8_decode("Loi N° 92-442 du 31 décembre 1992: La présente facture est payable en comptant a réception."), 0, 0, 'L'); - $pdf->SetXY( 10, $y1 + 4 );$pdf->Cell( $pdf->GetPageWidth(), 4, utf8_decode("Indemnité forfaitaire pour frais de recouvrement due en cas de retard de paiement: 40").chr(128), 0, 0, 'L'); - $pdf->SetXY( 10, $y1 + 8 );$pdf->Multicell( $pdf->GetPageWidth()-20, 4, utf8_decode("Toute somme non payée dans les trente jours est susceptible de porter intérets à un taux égal à une fois et demi le taux de l'intéret légal."), 0, 0, 'L'); - - // ************************** - // pied de page - // ************************** - - $pdf->SetFont('ComicSans','',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->SetXY( 1, $y0 + 16 ); - $pdf->Cell( $pageWidth, 5, utf8_decode("SIREN 751621293"), 0, 0, 'C');*/ - - $num_page++; - } - - $ff_pdf = html_entity_decode($current_config[0]->path).'/DOCUMENTS RECAPITULATIFS/'.$key_annee.'/'.$key_mois.' '.strtoupper($this->convert_special_char(explode(' ', $date_formated)[1])).'/'.strtoupper($this->convert_special_char($current_client)).'_RECAP_FACTURE_'.strtoupper($this->convert_special_char(explode(' ', $date_formated)[1])).'_'.$key_annee.'.pdf'; - $this->storage->newFile($ff_pdf); - $pdfContent = $pdf->Output('','S'); - - $file_pdf = $this->storage->get($ff_pdf); - $file_pdf->putContent($pdfContent); - } - } - } - } catch(\OCP\Files\NotFoundException $e) { } + $this->invoicePdfService->generateInvoiceRecap($filter,$filterType,$date,$this->idNextcloud); } catch(\OCP\Files\NotPermittedException $e) { } } diff --git a/gestion/lib/Service/InvoicePdfService.php b/gestion/lib/Service/InvoicePdfService.php index 4f5b768..3beef89 100644 --- a/gestion/lib/Service/InvoicePdfService.php +++ b/gestion/lib/Service/InvoicePdfService.php @@ -156,8 +156,7 @@ class InvoicePdfService { return $filenamePath; } - public function GenerateInvoiceRecap($filter,$filterType,$date,$idNextCloud){ - $filenames = $this->invoiceRecapService->generateInvoiceRecap($filter,$filterType,$date,$idNextCloud); - return $filenames; + public function generateInvoiceRecap($filter,$filterType,$date,$idNextCloud){ + $this->invoiceRecapService->generateInvoiceRecap($filter,$filterType,$date,$idNextCloud); } } diff --git a/gestion/lib/Service/InvoiceRecap/InvoiceRecapService.php b/gestion/lib/Service/InvoiceRecap/InvoiceRecapService.php index f5f1321..a0d001c 100644 --- a/gestion/lib/Service/InvoiceRecap/InvoiceRecapService.php +++ b/gestion/lib/Service/InvoiceRecap/InvoiceRecapService.php @@ -84,6 +84,7 @@ class InvoiceRecapService { } private function generateInvoiceRecapPerClientGroupFacturation($clientGroupId,$date,$idNextcloud){ + $data_factures = []; $storage = $this->rootFolder->getUserFolder($idNextcloud); $doesLogoExist = $this->doesLogoExist(); $doesSignatureExist = $this->doesSignatureImageExists(); @@ -115,6 +116,7 @@ class InvoiceRecapService { 'tva' => $defaultConfig[0]->tva_default, 'montant_tva' => 0, 'montant_ttc' => 0, + 'group_facturation_name' => $facture->group_facturation_name ); $produits = json_decode($this->gestionBdd->getListProduit($facture->id_devis,$idNextcloud)); $produitsReferenceArray = []; @@ -187,10 +189,10 @@ class InvoiceRecapService { $pdf->SetFont( "ComicSans", "", 10 ); $pdf->SetXY( $pdf->GetStringWidth("Objet")+15, 120 ) ; $pdf->Cell($pdf->GetStringWidth($text3), 0, $text3, 0, "L"); // signature - $pdf->SetFont('ComicSans','',11); $pdf->SetXY( 122, 145 ); + $pdf->SetFont('ComicSans','',11); $pdf->SetXY( 145, 145 ); $pdf->Cell( $pdf->GetStringWidth($defaultConfig[0]->nom.' '.$defaultConfig[0]->prenom), 0, utf8_decode(html_entity_decode($defaultConfig[0]->nom.' '.$defaultConfig[0]->prenom)), 0, 0, 'L'); if($doesSignatureExist){ - $pdf->Image($this->defaultImagePath."sign.png", 122, 150, 55, 30); + $pdf->Image($this->defaultImagePath."sign.png", 135, 150, 60,40); } $y0 = 260; @@ -218,10 +220,10 @@ class InvoiceRecapService { $pdf->AddPage(); // on sup les 2 cm en bas $pdf->SetAutoPagebreak(False); - $pdf->SetMargins(0,0,0); + $pdf->SetMargins(0,0,10); if($doesLogoExist){ - $pdf->Image($this->defaultImagePath."logo.png", 10, 10, 55, 30); + $pdf->Image($this->defaultImagePath."logo.png", 10, 10, 75, 25); } // n° page en haute à droite @@ -231,16 +233,19 @@ class InvoiceRecapService { // date facture $pdf->SetFont('ComicSans','',11); $pdf->SetXY( 122, 15 ); - $pdf->Cell( 60, 8, "Saint Senoux, le ".utf8_decode($date_formated), 0, 0, ''); + $pdf->SetY(10); + $pdf->Cell( 0, 8, "Saint Senoux, le ".utf8_decode($date_formated), 0, 0, 'R'); // n° facture, date echeance et reglement et obs - $pdf->SetLineWidth(0.1); $pdf->SetFillColor(255); $pdf->Rect(100, 30, 85, 8, "DF"); - $pdf->SetXY( 100, 30 ); $pdf->SetFont( "ComicSans", "B", 12 ); $pdf->Cell( 85, 8, 'FACTURE N'.utf8_decode('°').' ETS/'.$key_annee.'/'.strtoupper(FileExportHelpers::ConvertSpecialChar(explode(' ', $date_formated)[1])), 0, 0, 'C'); + $pdf->SetLineWidth(0.1); $pdf->SetFillColor(255); $pdf->Rect(114, 20, 85, 8, "DF"); + $pdf->SetXY( 114, 20 ); $pdf->SetFont( "ComicSans", "B", 12 ); $pdf->Cell( 85, 8, 'FACTURE N'.utf8_decode('°').' FAC/'.$key_annee.'/'.strtoupper(FileExportHelpers::ConvertSpecialChar(explode(' ', $date_formated)[1])), 0, 0, 'C'); // adresse du facture - $pdf->SetFont('ComicSans','B',11); $x = 122 ; $y = 50; + $pdf->SetFont('ComicSans','B',11); + $pdf->SetY(32); // $pdf->SetXY( $x, $y ); $pdf->Cell( 100, 8, 'doit', 0, 0, ''); $y += 8; - $pdf->SetXY( $x, $y ); $pdf->MultiCell( 80, 4, 'Groupe '.$groupName, 0, 0, ''); + $pdf->Cell( 0, 6, 'Groupe '.$groupName, 0, 1, 'R'); + $pdf->Cell( 0, 6, FileExportHelpers::FormatTextForExport('Numéro') . ' Siret: ' . FileExportHelpers::FormatTextForExport($tvaIntraCommuValue), 0, 1, 'R'); // *********************** // le cadre des articles @@ -274,13 +279,12 @@ class InvoiceRecapService { $date_soin_temp = new DateTime($mois[$index_facture_position]['date_soin']); $pdf->SetXY( 6, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 28, 8, $mois[$index_facture_position]['num'], 0, 0, ''); - $pdf->SetXY( 32, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 28, 8, $mois[$index_facture_position]['numero_commande'], 0, 0, ''); - $pdf->SetXY( 53, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 18, 8, utf8_decode($formatter_ds->format($date_soin_temp)), 0, 0, ''); - $pdf->SetXY( 65, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 38, 8, $mois[$index_facture_position]['prenoms_client'].' '.$mois[$index_facture_position]['nom_client'], 0, 0, ''); - $pdf->SetXY( 100, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 28, 8, utf8_decode(html_entity_decode($mois[$index_facture_position]['defunt'])), 0, 0, ''); - $pdf->SetXY( 147, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 13, 8, $mois[$index_facture_position]['montant_htc'].chr(128), 0, 0, 'C'); - $pdf->SetXY( 168, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 10, 8, $mois[$index_facture_position]['montant_tva'].chr(128), 0, 0, 'C'); - $pdf->SetXY( 183, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 22, 8, $mois[$index_facture_position]['montant_ttc'].chr(128), 0, 0, 'C'); + $pdf->SetXY( 26, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 28, 8, utf8_decode($formatter_ds->format($date_soin_temp)), 0, 0, ''); + $pdf->SetXY( 40, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 18, 8, utf8_decode(html_entity_decode($mois[$index_facture_position]['defunt'])), 0, 0, ''); + $pdf->SetXY( 86, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 38, 8, $mois[$index_facture_position]['prenoms_client'].' '.$mois[$index_facture_position]['nom_client'], 0, 0, ''); + $pdf->SetXY( 147, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 13, 8, number_format($mois[$index_facture_position]['montant_htc'],2,'.','').chr(128), 0, 0, 'C'); + $pdf->SetXY( 168, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 10, 8, number_format($mois[$index_facture_position]['montant_tva'],2,'.','').chr(128), 0, 0, 'C'); + $pdf->SetXY( 183, $y_facture ); $pdf->SetFont('ComicSans','',8); $pdf->Cell( 22, 8, number_format($mois[$index_facture_position]['montant_ttc'],2,'.','').chr(128), 0, 0, 'C'); $montant_ht_total = $montant_ht_total+$mois[$index_facture_position]['montant_htc']; $montant_tva_total = $montant_tva_total+$mois[$index_facture_position]['montant_tva']; @@ -298,13 +302,13 @@ class InvoiceRecapService { { $pdf->Line(5, 225, 205, 225); $pdf->SetFont('ComicSans','B',8); $pdf->SetXY( 5, 225 ); $pdf->Cell( 140, 8, 'TOTAL', 0, 0, 'C'); - $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 147, 225 ); $pdf->Cell( 13, 8, $montant_ht_total.chr(128), 0, 0, 'C'); - $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 168, 225 ); $pdf->Cell( 10, 8, $montant_tva_total.chr(128), 0, 0, 'C'); - $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 183, 225 ); $pdf->Cell( 22, 8, $montant_ttc_total.chr(128), 0, 0, 'C'); + $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 147, 225 ); $pdf->Cell( 13, 8, number_format($montant_ht_total,2,'.','').chr(128), 0, 0, 'C'); + $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 168, 225 ); $pdf->Cell( 10, 8, number_format($montant_tva_total,2,'.','').chr(128), 0, 0, 'C'); + $pdf->SetFont('ComicSans','',8); $pdf->SetXY( 183, 225 ); $pdf->Cell( 22, 8, number_format($montant_ttc_total,2,'.','').chr(128), 0, 0, 'C'); $pdf->Rect(145, 233, 60, 7, "D"); $pdf->SetFont('ComicSans','B',8); $pdf->SetXY( 147, 233 ); $pdf->Cell( 30, 6.5, 'TOTAL TTC', 0, 0, 'C'); - $pdf->SetFont('ComicSans','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); + $pdf->SetFont('ComicSans','B',8); $pdf->SetXY( 183, 233 ); $pdf->Cell( 22, 6.5, number_format($montant_ttc_total,2,'.','').chr(128), 0, 0, 'C', true); } $y1 = 245; @@ -332,14 +336,14 @@ class InvoiceRecapService { $num_page++; } - + // var_dump("tonga aty ve");die; $ff_pdf = html_entity_decode( $defaultConfig[0]->path). '/DOCUMENTS RECAPITULATIFS/'.$key_annee.'/'.$key_mois.' '. strtoupper( FileExportHelpers::ConvertSpecialChar(explode(' ', $date_formated)[1]) ). - '/GROUPE_/'.$groupName.'_RECAP_FACTURE_'.strtoupper( + '/GROUPE_'.$groupName.'_RECAP_FACTURE_'.strtoupper( FileExportHelpers::ConvertSpecialChar(explode(' ', $date_formated)[1]) ).'_'.$key_annee.'.pdf'; $storage->newFile($ff_pdf); @@ -347,12 +351,12 @@ class InvoiceRecapService { $file_pdf = $storage->get($ff_pdf); $file_pdf->putContent($pdfContent); - return $ff_pdf; } } } private function generateInvoiceRecapPerClient($clientId,$date,$idNextcloud){ + $data_factures = []; $storage = $this->rootFolder->getUserFolder($idNextcloud); $doesLogoExist = $this->doesLogoExist(); $tvaIntraCommuValue = ""; @@ -479,7 +483,7 @@ class InvoiceRecapService { $pdf->Cell( $pdf->GetStringWidth($defaultConfig[0]->nom.' '.$defaultConfig[0]->prenom), 0, utf8_decode(html_entity_decode($defaultConfig[0]->nom.' '.$defaultConfig[0]->prenom)), 0, 0, 'L'); $signatureExists = $this->doesSignatureImageExists('sign.png'); if($signatureExists){ - $pdf->Image($this->defaultImagePath."sign.png", 135, 150, 55, 30); + $pdf->Image($this->defaultImagePath."sign.png", 135, 150, 60,40); } $y0 = 260; @@ -634,23 +638,19 @@ class InvoiceRecapService { $file_pdf = $storage->get($fullPdfPath); $file_pdf->putContent($pdfContent); - - return $fullPdfPath; } } } } public function generateInvoiceRecap($filter,$filterType,$date,$idNextcloud){ - $defaultConfig = json_decode($this->gestionBdd->getConfiguration(self::DEFAULT_NEXTCLOUD_ADMIN)); try { if($filterType == MultipleFactureTypeConstant::GROUP_FILTER_TYPE){ - $filenames = $this->generateInvoiceRecapPerClientGroupFacturation($filter,$date,$idNextcloud); + $this->generateInvoiceRecapPerClientGroupFacturation($filter,$date,$idNextcloud); } else{ - $filenames = $this->generateInvoiceRecapPerClient($filter,$date,$idNextcloud); + $this->generateInvoiceRecapPerClient($filter,$date,$idNextcloud); } - return $filenames; } catch(\OCP\Files\NotFoundException $e) { } } }