public void miseEnForm(string typeDoc) { string cheminDocFinaux = ConfigurationManager.AppSettings["CheminDocFinaux"].ToString(); string cheminRessources = ConfigurationManager.AppSettings["CheminRessources"].ToString(); string chemin = cheminDocFinaux + "\\DocFinaux\\DEVIS\\DEVIS_" + nomDoc + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"; Document nouveauDocument = new Document(PageSize.A4, 20, 20, 12, 20); PdfWriter.GetInstance(nouveauDocument, new FileStream(chemin, FileMode.Create)); //Stockage du document nouveauDocument.Open(); Image image4 = Image.GetInstance(ConfigurationManager.AppSettings["CheminPatternTot"]); image4.Alignment = Image.UNDERLYING; image4.SetAbsolutePosition(385, 70); //----------------------------------------------------------------------------------------------------Filligrane----------------------------------------------- Image image5 = Image.GetInstance(ConfigurationManager.AppSettings["CheminFilligraneDevis"]); image5.Alignment = Image.UNDERLYING; image5.SetAbsolutePosition(200, 250); nouveauDocument.Add(image5); //---------------------------------------- //Constitution document PDF //---------------------------------------- PdfPTable tableau = new PdfPTable(2); tableau.TotalWidth = 550; tableau.LockedWidth = true; Image image6 = Image.GetInstance(ConfigurationManager.AppSettings["CheminLogoABCRDevis"]); image6.ScaleAbsolute(PageSize.A4); image6.ScaleToFit(175, 180); image6.SetAbsolutePosition(13, 715); nouveauDocument.Add(image6); Paragraph pLogo = new Paragraph(); //Image image = Image.GetInstance(ConfigurationManager.AppSettings["CheminLogoABCRDevis"]); // pLogo.Add(image); //Encadré photo pLogo.Add(new Phrase("")); PdfPCell celulleHauteGauche = new PdfPCell(pLogo); celulleHauteGauche.Border = PdfPCell.NO_BORDER; tableau.AddCell(celulleHauteGauche); //Encadré info devis Paragraph pDoc = new Paragraph(); Image image2 = Image.GetInstance(ConfigurationManager.AppSettings["CheminPatternHautDroiteDevis"]); image2.Alignment = Image.UNDERLYING; image2.SetAbsolutePosition(335, 740); nouveauDocument.Add(image2); pDoc.Alignment = Element.ALIGN_RIGHT; pDoc.Add(new Phrase("Devis n° " + donneeBody["Bon_numero1"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pDoc.Add(new Phrase("Date : " + donneeBody["Bon_datrcl1"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8))); pDoc.Add(new Phrase("Référence client : " + donneeBody["Bon_rcl1"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, BaseColor.RED))); pDoc.Add(new Phrase("Code client: " + donneEntete["Client_code"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8))); pDoc.Add(new Phrase(donneEntete["Tiers_tel"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8))); pDoc.Add(new Phrase(donneEntete["Tiers_fax"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8))); pDoc.Add(new Phrase(donneEntete["Tiers_adf5"], FontFactory.GetFont(FontFactory.HELVETICA, 8))); PdfPCell celulleHauteDroite = new PdfPCell(pDoc); celulleHauteDroite.Border = PdfPCell.NO_BORDER; celulleHauteDroite.HorizontalAlignment = Element.ALIGN_CENTER; tableau.AddCell(celulleHauteDroite); //Encadré "ABCR" Paragraph p = new Paragraph(); p.Add(new Phrase(donneEntete["Adresse_interne_2"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_3"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_4"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 7, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_5"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 7, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_6"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 7, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_7"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_8"] + "\n" + "\n" + "\n" + "\n" + "\n ", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); PdfPCell celluleBasGauche = new PdfPCell(p); celluleBasGauche.Border = PdfPCell.NO_BORDER; tableau.AddCell(celluleBasGauche); //Encadré client Paragraph pClient = new Paragraph(); if (donneEntete["Tiers_adl1"] == "") { pClient.Add(new Phrase("\n" + "\n" + donneEntete["Tiers_adf1"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pClient.Add(new Phrase(donneEntete["Tiers_adf2"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pClient.Add(new Phrase(donneEntete["Tiers_adf3"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pClient.Add(new Phrase(donneEntete["Tiers_adf4"] + "\n" + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pClient.Add(new Phrase(donneEntete["Tiers_adfcp"] + " " + donneEntete["Tiers_adf6"], FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); } else { pClient.Add(new Phrase("\n" /*+"\n"*/ + donneEntete["Tiers_adl1"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pClient.Add(new Phrase(donneEntete["Tiers_adl2"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pClient.Add(new Phrase(donneEntete["Tiers_adl3"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pClient.Add(new Phrase(donneEntete["Tiers_adl4"] + "\n" + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); pClient.Add(new Phrase(donneEntete["Tiers_adlcp"] + " " + donneEntete["Tiers_adl6"], FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); } PdfPCell celluleBasDroite = new PdfPCell(pClient); celluleBasDroite.Border = PdfPCell.NO_BORDER; tableau.AddCell(celluleBasDroite); nouveauDocument.Add(tableau); //Dessus tableau Paragraph pRécap = new Paragraph(); Chunk contact = null; contact = new Chunk("Votre contact : " + donneEntete["Bon_vendeur_lib"] + "\n " + donneEntete["Duplicata"], FontFactory.GetFont(FontFactory.HELVETICA, 7, Font.ITALIC));//FontFactory pour changer la police Chunk delai = new Chunk("Livraison : " + donneEntete["Tiers_adf1"] + " - " + donneEntete["Tiers_adf2"] + " - " + donneEntete["Tiers_adfcp"] + " " + donneEntete["Tiers_adf6"] + "\n" + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 7, Font.ITALIC)).SetUnderline(2, 2); Chunk ligneEspace = new Chunk("\n", FontFactory.GetFont(FontFactory.HELVETICA, 1, Font.ITALIC)); pRécap.Add(contact); pRécap.Add(delai); pRécap.Add(ligneEspace); nouveauDocument.Add(pRécap); CurseurTemplate ct = new CurseurTemplate(); valeurTemplate = ct.chercher("Devis"); float[] largeurs = { int.Parse(valeurTemplate["Dimension1"]), int.Parse(valeurTemplate["Dimension2"]), int.Parse(valeurTemplate["Dimension3"]), int.Parse(valeurTemplate["Dimension4"]), int.Parse(valeurTemplate["Dimension5"]), int.Parse(valeurTemplate["Dimension6"]), int.Parse(valeurTemplate["Dimension7"]), int.Parse(valeurTemplate["Dimension8"]), int.Parse(valeurTemplate["Dimension9"]) }; // Dimension tableau body PdfPTable table = new PdfPTable(largeurs); table.TotalWidth = 555; //Chaque colonne crée ci dessus doit être rempli table.LockedWidth = true; PdfPCell cellET1 = new PdfPCell(new Phrase("Article", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET1.Border = PdfPCell.NO_BORDER; //cellET1.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET1); PdfPCell cellET2 = new PdfPCell(new Phrase("Désignation", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET2.Border = PdfPCell.NO_BORDER; //cellET2.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET2); PdfPCell cellET3 = new PdfPCell(new Phrase("UV", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET3.Border = PdfPCell.NO_BORDER; //cellET3.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET3); PdfPCell cellET4 = new PdfPCell(new Phrase("Quantité", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET4.Border = PdfPCell.NO_BORDER; //cellET4.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET4); PdfPCell cellET5 = new PdfPCell(new Phrase("Prix remisé", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET5.Border = PdfPCell.NO_BORDER; //cellET5.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET5); PdfPCell cellET6 = new PdfPCell(new Phrase("Remise", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET6.Border = PdfPCell.NO_BORDER; //cellET6.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET6); PdfPCell cellET7 = new PdfPCell(new Phrase("Prix net", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET7.Border = PdfPCell.NO_BORDER; //cellET7.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET7); PdfPCell cellET8 = new PdfPCell(new Phrase("Montant HT", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET8.Border = PdfPCell.NO_BORDER; //cellET8.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET8); PdfPCell cellET9 = new PdfPCell(new Phrase("TVA", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellET9.Border = PdfPCell.NO_BORDER; //cellET9.Border += PdfPCell.BOTTOM_BORDER; table.AddCell(cellET9); Image image3 = Image.GetInstance(ConfigurationManager.AppSettings["CheminPatternTableau"]); image3.Alignment = Image.UNDERLYING; image3.SetAbsolutePosition(20, 567); nouveauDocument.Add(image3); int i; int nbLigne = 0; float resultat = 0; float dimTab = 0; int décrement = 0; int numPage = 0; //Constitution du tableau d'article bool okDési = false; bool okStart = false; for (i = 1; i <= iBody; i++) { //Condition ARTICLE---------------------------------------------------------------------------------------------------------------------- if (donneeBody["Ligne_type" + i] == "ART") { nbLigne++; string sPattern = "libelle" + i + "bis"; PdfPCell cell1 = new PdfPCell(new Phrase(donneeBody["Art_code" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell1.Border = PdfPCell.NO_BORDER; cell1.Border += PdfPCell.RIGHT_BORDER; cell1.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell1); Paragraph pCell2 = new Paragraph(); PdfPCell cell2 = new PdfPCell(pCell2); cell2.Border = PdfPCell.NO_BORDER; cell2.Border += PdfPCell.RIGHT_BORDER; cell2.Border += PdfPCell.LEFT_BORDER; foreach (KeyValuePair <string, string> entry in donneeBody) { if (System.Text.RegularExpressions.Regex.IsMatch(entry.Key, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)) { if (okStart == false) { pCell2.Add(new Phrase(donneeBody["Libelle" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); string clé = entry.Key; pCell2.Add(new Phrase(donneeBody[clé] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); okStart = true; } else { string clé = entry.Key; pCell2.Add(new Phrase(donneeBody[clé] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); } okDési = true; } } if (okDési == false) { PdfPCell cell3 = new PdfPCell(new Phrase(donneeBody["Libelle" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell3.Border = PdfPCell.NO_BORDER; cell3.Border += PdfPCell.RIGHT_BORDER; cell3.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell3); } else { table.AddCell(cell2); } PdfPCell cell4 = new PdfPCell(new Phrase(donneeBody["Art_unite" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell4.Border = PdfPCell.NO_BORDER; cell4.Border += PdfPCell.RIGHT_BORDER; cell4.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell4); PdfPCell cell5 = new PdfPCell(new Phrase(donneeBody["Art_qte" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell5.Border = PdfPCell.NO_BORDER; cell5.Border += PdfPCell.RIGHT_BORDER; cell5.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell5); PdfPCell cell6 = new PdfPCell(new Phrase(donneeBody["Art_remise2" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell6.Border = PdfPCell.NO_BORDER; cell6.Border += PdfPCell.RIGHT_BORDER; cell6.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell6); PdfPCell cell7 = new PdfPCell(new Phrase(donneeBody["Art_remise1" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell7.Border = PdfPCell.NO_BORDER; cell7.Border += PdfPCell.RIGHT_BORDER; cell7.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell7); if (donneeBody["Art_prinet" + i] != "") { PdfPCell cell8 = new PdfPCell(new Phrase(double.Parse(donneeBody["Art_prinet" + i]).ToString("N2") + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell8.Border = PdfPCell.NO_BORDER; cell8.Border += PdfPCell.RIGHT_BORDER; cell8.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell8); } else { PdfPCell cell8 = new PdfPCell(new Phrase(donneeBody["Art_prinet" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell8.Border = PdfPCell.NO_BORDER; cell8.Border += PdfPCell.RIGHT_BORDER; cell8.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell8); } PdfPCell cell9 = new PdfPCell(new Phrase(donneeBody["Art_monht" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell9.Border = PdfPCell.NO_BORDER; cell9.Border += PdfPCell.RIGHT_BORDER; cell9.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell9); PdfPCell cell10 = new PdfPCell(new Phrase("0" + donneeBody["Art_tva_code" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell10.Border = PdfPCell.NO_BORDER; cell10.Border += PdfPCell.RIGHT_BORDER; cell10.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell10); okDési = false; okStart = false; } //Condition ARTICLE GRATUIT----------------------------------------------------------------------------------------------------------------------------- if (donneeBody["Ligne_type" + i] == "GRA") { nbLigne++; string sPattern = "libelle" + i + "bis"; PdfPCell cell1 = new PdfPCell(new Phrase(donneeBody["Art_code" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell1.Border = PdfPCell.NO_BORDER; cell1.Border += PdfPCell.RIGHT_BORDER; cell1.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell1); foreach (KeyValuePair <string, string> entry in donneeBody) { if (System.Text.RegularExpressions.Regex.IsMatch(entry.Key, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)) { PdfPCell cell2 = new PdfPCell(new Phrase(donneeBody["Libelle" + i] + "\n" + donneeBody["Libelle" + i + "bis"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell2.Border = PdfPCell.NO_BORDER; cell2.Border += PdfPCell.RIGHT_BORDER; cell2.Border += PdfPCell.LEFT_BORDER; okDési = true; table.AddCell(cell2); } } if (okDési == false) { PdfPCell cell3 = new PdfPCell(new Phrase(donneeBody["Libelle" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell3.Border = PdfPCell.NO_BORDER; cell3.Border += PdfPCell.RIGHT_BORDER; cell3.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell3); } PdfPCell cell4 = new PdfPCell(new Phrase(donneeBody["Art_unite" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell4.Border = PdfPCell.NO_BORDER; cell4.Border += PdfPCell.RIGHT_BORDER; cell4.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell4); PdfPCell cell5 = new PdfPCell(new Phrase(donneeBody["Art_qte" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell5.Border = PdfPCell.NO_BORDER; cell5.Border += PdfPCell.RIGHT_BORDER; cell5.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell5); PdfPCell cell6 = new PdfPCell(new Phrase("" + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell6.Border = PdfPCell.NO_BORDER; cell6.Border += PdfPCell.RIGHT_BORDER; cell6.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell6); table.AddCell(cell6); table.AddCell(cell6); PdfPCell cell7 = new PdfPCell((new Phrase(donneeBody["Lib_rempl_mt" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD)))); cell7.Border = PdfPCell.NO_BORDER; cell7.Border += PdfPCell.RIGHT_BORDER; cell7.Border += PdfPCell.LEFT_BORDER; table.AddCell(cell7); PdfPCell cell8 = new PdfPCell(new Phrase("" + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cell8.Border = PdfPCell.NO_BORDER; cell8.Border += PdfPCell.LEFT_BORDER; cell8.Border += PdfPCell.RIGHT_BORDER; table.AddCell(cell8); } //Condition COMMENTAIRE-------------------------------------------------------------------------------------------------------------------------------- if (donneeBody["Ligne_type" + i] == "COM") { nbLigne++; PdfPCell cellVide = new PdfPCell(new Phrase("" + "\n")); PdfPCell cell = new PdfPCell(new Phrase(donneeBody["Libelle" + i] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); PdfPCell cellFin = new PdfPCell(); cellVide.Border = PdfPCell.NO_BORDER; cellVide.Border += PdfPCell.RIGHT_BORDER; cellVide.Border += PdfPCell.LEFT_BORDER; cell.Border = PdfPCell.NO_BORDER; cell.Border += PdfPCell.RIGHT_BORDER; cell.Border += PdfPCell.LEFT_BORDER; cellFin.Border = PdfPCell.NO_BORDER; cellFin.Border += PdfPCell.LEFT_BORDER; cellFin.Border += PdfPCell.RIGHT_BORDER; table.AddCell(cellVide); table.AddCell(cell); table.AddCell(cellVide); table.AddCell(cellVide); table.AddCell(cellVide); table.AddCell(cellVide); table.AddCell(cellVide); table.AddCell(cellVide); table.AddCell(cellFin); } PdfPCell cellEcartDroite = new PdfPCell(new Phrase(" " + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 2, Font.BOLD))); PdfPCell cellEcart = new PdfPCell(new Phrase(" " + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 2, Font.BOLD))); cellEcart.Border = PdfPCell.NO_BORDER; cellEcart.Border += PdfPCell.LEFT_BORDER; cellEcart.Border += PdfPCell.RIGHT_BORDER; cellEcartDroite.Border = PdfPCell.NO_BORDER; cellEcartDroite.Border += PdfPCell.RIGHT_BORDER; cellEcartDroite.Border += PdfPCell.LEFT_BORDER; table.AddCell(cellEcartDroite); table.AddCell(cellEcart); table.AddCell(cellEcart); table.AddCell(cellEcart); table.AddCell(cellEcart); table.AddCell(cellEcart); table.AddCell(cellEcart); table.AddCell(cellEcart); table.AddCell(cellEcart); //--------------------------------------------GESTION DU SAUT DE PAGE------------------------------------------------------------------------------------------- //float temp = table.GetRowHeight(i-1-décrement); float temp = table.TotalHeight; dimTab = temp; if (dimTab >= 410 && i < iBody) { //Saut de page numPage++; PdfPCell cellFin = new PdfPCell(new Phrase(" ")); PdfPCell cellBlanche = new PdfPCell(new Phrase(" ")); PdfPCell cellBlancheD = new PdfPCell(new Phrase(" ")); cellFin.Colspan = 9; cellBlanche.FixedHeight = (450 - dimTab); cellBlanche.Border = PdfPCell.NO_BORDER; cellBlanche.Border += PdfPCell.RIGHT_BORDER; cellBlanche.Border += PdfPCell.LEFT_BORDER; cellBlancheD.FixedHeight = (450 - dimTab); cellBlancheD.Border = PdfPCell.NO_BORDER; cellBlancheD.Border += PdfPCell.LEFT_BORDER; cellBlancheD.Border += PdfPCell.RIGHT_BORDER; cellFin.Border = PdfPCell.NO_BORDER; cellFin.Border += PdfPCell.TOP_BORDER; table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlancheD); table.AddCell(cellFin); nouveauDocument.Add(table);//----------------------------------------------------------------------------Repère ligne en dessous-------------------------------------------------- Phrase pReport = new Phrase(" A REPORTER\n\n\n\n\n Page n° " + numPage, FontFactory.GetFont(FontFactory.HELVETICA, 11, Font.BOLD)); nouveauDocument.Add(pReport); table.DeleteBodyRows(); nouveauDocument.Add(Chunk.NEXTPAGE); nouveauDocument.Add(tableau); nouveauDocument.Add(pRécap); nouveauDocument.Add(image2); nouveauDocument.Add(image3); nouveauDocument.Add(image5); table.AddCell(cellET1); table.AddCell(cellET2); table.AddCell(cellET3); table.AddCell(cellET4); table.AddCell(cellET5); table.AddCell(cellET6); table.AddCell(cellET7); table.AddCell(cellET8); table.AddCell(cellET9); dimTab = 0; décrement = (i - 1); } //---------------------------------------------------------------------------------------------------------------------------------------------------------------------- } int b; //---------------------------------------------------------------- for (b = 0; b <= i; b++) // { // Compteur dimension du tableau float temp = table.TotalHeight; // resultat = temp; // } //------------------------------------------------------------------- if (i > iBody) { PdfPCell cellFin = new PdfPCell(new Phrase(" ")); PdfPCell cellBlanche = new PdfPCell(new Phrase(" ")); PdfPCell cellBlancheD = new PdfPCell(new Phrase(" ")); cellFin.Colspan = 9; resultat = 450 - resultat; //<<----------450 correspond au nombre de point de la longueur du tableau, c'est la valeur à modifier pour modifier la taille du tableau cellBlanche.FixedHeight = resultat; cellBlanche.Border = PdfPCell.NO_BORDER; cellBlanche.Border += PdfPCell.RIGHT_BORDER; cellBlanche.Border += PdfPCell.LEFT_BORDER; cellBlancheD.FixedHeight = resultat; cellBlancheD.Border = PdfPCell.NO_BORDER; cellBlancheD.Border += PdfPCell.LEFT_BORDER; cellBlancheD.Border += PdfPCell.RIGHT_BORDER; cellFin.Border = PdfPCell.NO_BORDER; cellFin.Border += PdfPCell.TOP_BORDER; table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlancheD); table.AddCell(cellFin); } nouveauDocument.Add(table); // Constitution tableau pied de page PdfPTable tableauPied = new PdfPTable(3); tableauPied.TotalWidth = 555; tableauPied.LockedWidth = true; Paragraph pTVA = new Paragraph(); pTVA.Add(new Phrase("Offre de prix valable jusqu'au : " + donneEntete["Date_val"], FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD, BaseColor.RED))); int iF = 0; foreach (KeyValuePair <string, string> entry in donneeFoot) { if (System.Text.RegularExpressions.Regex.IsMatch(entry.Value, "TVA", System.Text.RegularExpressions.RegexOptions.IgnoreCase)) { pTVA.Add(new Phrase("\nTVA " + donneeFoot.ElementAt(iF - 1).Value + " = " + entry.Value, FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); } iF++; } PdfPCell cellulePied = new PdfPCell(pTVA); cellulePied.Colspan = 2; cellulePied.Border = PdfPCell.NO_BORDER; tableauPied.AddCell(cellulePied); nouveauDocument.Add(image4); PdfPTable tableauTot = new PdfPTable(1); PdfPCell cellTTot = new PdfPCell(new Phrase("Total HT : " + donneeFoot["Base_tva_mht"] + " €", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellTTot.Border = PdfPCell.NO_BORDER; cellTTot.Border = PdfPCell.BOTTOM_BORDER; tableauTot.AddCell(cellTTot); PdfPCell cellTVA = new PdfPCell(new Phrase("Total TVA : " + donneeFoot["Base_tva_mtva"] + " €", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellTVA.Border = PdfPCell.NO_BORDER; cellTVA.Border = PdfPCell.BOTTOM_BORDER; tableauTot.AddCell(cellTVA); PdfPCell cellTTC = new PdfPCell(new Phrase("Total TTC : " + donneeFoot["Base_tva_mttc"] + " €", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD))); cellTTC.Border = PdfPCell.NO_BORDER; tableauTot.AddCell(cellTTC); PdfPCell cellTot = new PdfPCell(tableauTot); cellTot.Border = PdfPCell.NO_BORDER; tableauPied.AddCell(cellTot); nouveauDocument.Add(tableauPied); Phrase maPhrase = new Phrase(); maPhrase.Add(new Chunk("\nBon pour accord ", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); maPhrase.Add(new Chunk("\n Fait à: le: Signature", FontFactory.GetFont(FontFactory.HELVETICA, 8))); nouveauDocument.Add(maPhrase); if (numPage > 0) { Phrase PageFinal = new Phrase(" Page n° " + (1 + numPage), FontFactory.GetFont(FontFactory.HELVETICA, 11, Font.BOLD)); nouveauDocument.Add(PageFinal); } nouveauDocument.Close(); //Copie Doc dans GED try { String connectionString = ConfigurationManager.AppSettings["ChaineDeConnexionBase"]; OdbcConnection conn = new OdbcConnection(connectionString); conn.Open(); string requete = "select T1.NOCLI c1 , T1.NOMCL c2 from B00C0ACR.AMAGESTCOM.ACLIENL1 T1 where T1.NOCLI = '" + donneEntete["Client_code"] + "'"; OdbcCommand act = new OdbcCommand(requete, conn); OdbcDataReader act0 = act.ExecuteReader(); string nomADH = ""; while (act0.Read()) { nomADH = (act0.GetString(1)); } conn.Close(); if (!System.IO.Directory.Exists(ConfigurationManager.AppSettings["cheminGED"] + "\\" + donneEntete["Client_code"] + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM") + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Devis\\")) { System.IO.Directory.CreateDirectory(ConfigurationManager.AppSettings["cheminGED"] + "\\" + donneEntete["Client_code"] + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Devis\\"); System.IO.File.Copy(chemin, ConfigurationManager.AppSettings["cheminGED"] + "\\" + donneEntete["Client_code"] + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Devis\\" + "\\DEVIS_" + nomDoc + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"); } else { System.IO.File.Copy(chemin, ConfigurationManager.AppSettings["cheminGED"] + "\\" + donneEntete["Client_code"] + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Devis\\" + "\\DEVIS_" + nomDoc + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"); } } catch { } //--------------------------------------------------------FIN COPIE---------------------------------------------------------------------------------------------------------- int nbImp = 0; int nbImpOK = 0; string[] printer = new string[20]; // tableau qui contient les imprimantes du profil d'impression ProfilImprimante profil = new ProfilImprimante(); profil.chargementXML("Dev"); // chargement selon le type de doc string vendeur = unProfil.Substring(2, 3); vendeur = vendeur.TrimEnd(); var listeProfil = profil.getDonneeProfil(); try { foreach (string v in listeProfil[vendeur]) //lecture des imprimantes liée à un profil { printer[nbImp] = v.ToString(); nbImp++; //on incrémente le nombre d'impression à executer } } catch { printer[nbImp] = ConfigurationManager.AppSettings["ImpDef"]; //Imprimante par defaut (essai) nbImp++; } nbImp = nbImp - 1; while (nbImpOK <= nbImp) // boucle tant que le nombre d'impression fait n'à pas atteint le nombre d'impression demander { string printerName = printer[nbImpOK]; string inputFile = String.Format(@"{0}", chemin); try { using (GhostscriptProcessor processor = new GhostscriptProcessor()) { List <string> switches = new List <string>(); switches.Add("-empty"); switches.Add("-dPrinted"); switches.Add("-dBATCH"); switches.Add("-dNOPAUSE"); switches.Add("-dNOSAFER"); switches.Add("-dNumCopies=" + ConfigurationManager.AppSettings["NbCopieGC"]); switches.Add("-sDEVICE=" + ConfigurationManager.AppSettings["PiloteImpressionGC"]); switches.Add("-sOutputFile=%printer%" + printerName); switches.Add("-f"); switches.Add(inputFile); processor.StartProcessing(switches.ToArray(), null); } nbImpOK++; } catch (Exception e) { LogHelper.WriteToFile(e.Message, "ParseurBP" + donneEntete["Document_numero"].Trim()); } } /*Mail m = new Mail(); * m.remplirDictionnaire(); * m.comparerDocument(donneEntete["Client_code"]);*/ }
public void miseEnForm(string typeDoc) { int incCopie = 0; int nbCopie = 1; string cheminDocFinaux = ConfigurationManager.AppSettings["CheminDocFinaux"].ToString(); string cheminRessources = ConfigurationManager.AppSettings["CheminRessources"].ToString(); while (incCopie < nbCopie) { /*ND 23 10 2015*/ string chemin = ""; /* if (!System.IO.Directory.Exists(cheminDocFinaux + "\\DocFinaux\\Releve\\" + donneEntete["Tiers_nocpt"].Substring(3,6))) { System.IO.Directory.CreateDirectory(cheminDocFinaux + "\\DocFinaux\\Releve\\" + donneEntete["Tiers_nocpt"].Substring(3, 6)); chemin = cheminDocFinaux + "\\DocFinaux\\Releve\\" + donneEntete["Tiers_nocpt"].Substring(3, 6) + "\\" + nomDoc + "_" + donneEntete["Tiers_nocpt"].Substring(3, 6) + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"; }*/ if (!System.IO.Directory.Exists(cheminDocFinaux + "\\DocFinaux\\Facturation\\" + donneEntete["Tiers_nocpt"].Substring(3, 6))) { System.IO.Directory.CreateDirectory(cheminDocFinaux + "\\DocFinaux\\Facturation\\" + donneEntete["Tiers_nocpt"].Substring(3, 6)); chemin = cheminDocFinaux + "\\DocFinaux\\Facturation\\" + donneEntete["Tiers_nocpt"].Substring(3, 6) + "\\RELEVE" + nomDoc + "_" + donneEntete["Tiers_nocpt"].Substring(3, 6) + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"; } else { /*ND 23 10 2015*/ //chemin = cheminDocFinaux + "\\DocFinaux\\Releve\\" + donneEntete["Tiers_nocpt"].Substring(3, 6) + "\\" + nomDoc + "_" + donneEntete["Tiers_nocpt"].Substring(3, 6) + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"; chemin = cheminDocFinaux + "\\DocFinaux\\Facturation\\" + donneEntete["Tiers_nocpt"].Substring(3, 6) + "\\RELEVE" + nomDoc + "_" + donneEntete["Tiers_nocpt"].Substring(3, 6) + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"; } Document nouveauDocument = new Document(PageSize.A4, 20, 20, 12, 2); PdfWriter writer = PdfWriter.GetInstance(nouveauDocument, new FileStream(chemin, FileMode.Create)); //Stockage du document //--------------------------------------------------------------------------------------------------------------------------- //Constitution document PDF //--------------------------------------------------------------------------------------------------------------------------- nouveauDocument.Open(); PdfPTable tableau = new PdfPTable(2); tableau.TotalWidth = 550; tableau.LockedWidth = true; //------------------------------------------------------------------------------------------------- //Encadré ABCR Paragraph p = new Paragraph(); p.Add(new Phrase(donneEntete["Adresse_interne_1"] + "\n\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_2"] + "\n\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_3"] + "\n\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); p.Add(new Phrase(donneEntete["Adresse_interne_4"] + "\n\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); PdfPCell celulleHauteGauche = new PdfPCell(p); celulleHauteGauche.Border = PdfPCell.NO_BORDER; tableau.AddCell(celulleHauteGauche); //Celulle de droite contenant l'adresse de livraison Paragraph pAdl = new Paragraph(); pAdl.Add(new Phrase("\n\n \n")); pAdl.Add(new Phrase("\n ", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); pAdl.Add(new Phrase("\n ", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); pAdl.Add(new Phrase("\n ", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); pAdl.Add(new Phrase("\n ", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); pAdl.Add(new Phrase(" ", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); PdfPCell celulleFinDroite = new PdfPCell(pAdl); celulleFinDroite.Bottom = PdfPCell.ALIGN_BOTTOM; celulleFinDroite.Border = PdfPCell.NO_BORDER; celulleFinDroite.PaddingLeft = 35; tableau.AddCell(celulleFinDroite); //Tableau dans celulle bas gauche du tableau d'entete PdfPCell celulleBasGauche = new PdfPCell(); Paragraph ptest = new Paragraph(); ptest.Add(new Phrase("\n Relevé de facture(s)\n\n",FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.BOLD))); celulleBasGauche.AddElement(ptest); PdfPTable tabCell = new PdfPTable(3); tabCell.TotalWidth = 230; tabCell.LockedWidth = true; tabCell.AddCell(new Phrase("COMPTE", FontFactory.GetFont(FontFactory.HELVETICA, 11, Font.BOLD))); tabCell.AddCell(new Phrase("DATE", FontFactory.GetFont(FontFactory.HELVETICA, 11, Font.BOLD))); tabCell.AddCell(new Phrase("NO RELEVE", FontFactory.GetFont(FontFactory.HELVETICA, 11, Font.BOLD))); tabCell.AddCell(new Phrase(donneEntete["Tiers_nocpt"], FontFactory.GetFont(FontFactory.HELVETICA, 10))); tabCell.AddCell(new Phrase(donneEntete["Rel_datrel"], FontFactory.GetFont(FontFactory.HELVETICA, 10))); tabCell.AddCell(new Phrase(donneEntete["Document_numero"], FontFactory.GetFont(FontFactory.HELVETICA, 10))); tabCell.HorizontalAlignment = PdfPCell.ALIGN_LEFT; celulleBasGauche.AddElement(tabCell); celulleBasGauche.Border = PdfPCell.NO_BORDER; celulleBasGauche.Bottom = PdfPCell.ALIGN_BOTTOM; tableau.AddCell(celulleBasGauche); //Adresse facturation Paragraph pAdf = new Paragraph(); // REGLER INDENTATION DU PARAGRAPHE pAdf.Add(new Phrase("\n\n\n\n" + donneEntete["Tiers_adf1"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); pAdf.Add(new Phrase(donneEntete["Tiers_adf2"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); pAdf.Add(new Phrase(donneEntete["Tiers_adf3"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); pAdf.Add(new Phrase(donneEntete["Tiers_adf4"] + "\n", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); pAdf.Add(new Phrase(donneEntete["Tiers_adfcp"] + " " + donneEntete["Tiers_adf6"] + "\n\n\n\n ", FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); PdfPCell celulleHauteDroite = new PdfPCell(pAdf); celulleHauteGauche.HorizontalAlignment = Element.ALIGN_RIGHT; celulleHauteDroite.Border = PdfPCell.NO_BORDER; celulleHauteDroite.PaddingLeft = 80; tableau.AddCell(celulleHauteDroite); nouveauDocument.Add(tableau); //-------------------------------------------------------------------------------------------------------- // TABLEAU //------------------------------------------------------------------------------------------------------- CurseurTemplate ct = new CurseurTemplate(); valeurTemplate = ct.chercher("RELEVE"); float[] largeurs = { int.Parse(valeurTemplate["Dimension1"]), int.Parse(valeurTemplate["Dimension2"]), int.Parse(valeurTemplate["Dimension3"]), int.Parse(valeurTemplate["Dimension4"]), int.Parse(valeurTemplate["Dimension5"]), int.Parse(valeurTemplate["Dimension6"]), }; PdfPTable table = new PdfPTable(largeurs); table.TotalWidth = 565; //Chaque colonne crée ci dessus doit être rempli table.LockedWidth = true; PdfPCell cellET1 = new PdfPCell(new Phrase("Date", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); cellET1.SetLeading(2f, 1.2f); cellET1.PaddingBottom = 7f; table.AddCell(cellET1); PdfPCell cellET2 = new PdfPCell(new Phrase("Type Pièce", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); cellET2.SetLeading(2f, 1.2f); cellET2.PaddingBottom = 7f; table.AddCell(cellET2); PdfPCell cellET3 = new PdfPCell(new Phrase("Référence", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); cellET3.SetLeading(2f, 1.2f); cellET3.PaddingBottom = 7f; table.AddCell(cellET3); PdfPCell cellET4 = new PdfPCell(new Phrase("T.V.A", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); cellET4.HorizontalAlignment = Element.ALIGN_RIGHT; cellET4.PaddingBottom = 7f; cellET4.SetLeading(2f, 1.2f); table.AddCell(cellET4); PdfPCell cellET5 = new PdfPCell(new Phrase("Avoir", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); cellET5.HorizontalAlignment = Element.ALIGN_RIGHT; cellET5.PaddingBottom = 7f; cellET5.SetLeading(2f, 1.2f); table.AddCell(cellET5); PdfPCell cellET6 = new PdfPCell(new Phrase("Facture", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))); cellET6.HorizontalAlignment = Element.ALIGN_RIGHT; cellET6.PaddingBottom = 7f; cellET6.SetLeading(2f, 1.2f); table.AddCell(cellET6); int i; int nbLigne = 0; float resultat = 0; float dimTab = 0; int décrement = 0; int numPage = 0; //Constitution du tableau /*ND DEBUT 19 10 2015*/ // bool okDési = false; /*ND FIN 19 10 2015*/ /* ND debut 19 10 2015*/ //bool okStart = false; /*ND FIN 19 10 2015*/ double tempoTOT = 0; for (i = 0; i < iBody; i++) { nbLigne++; PdfPCell cell1 = new PdfPCell(new Phrase(donneeBody["Rel_datfac" + i], FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cell1.Border = PdfPCell.NO_BORDER; cell1.Border += PdfPCell.RIGHT_BORDER; cell1.Border += PdfPCell.LEFT_BORDER; cell1.SetLeading(5f, 1.2f); table.AddCell(cell1); PdfPCell cell2 = new PdfPCell(new Phrase(donneeBody["Rel_libavofac" + i], FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cell2.Border = PdfPCell.NO_BORDER; cell2.Border += PdfPCell.RIGHT_BORDER; cell2.Border += PdfPCell.LEFT_BORDER; cell2.SetLeading(5f, 1.2f); table.AddCell(cell2); PdfPCell cell3 = new PdfPCell(new Phrase(donneeBody["Rel_nofac" + i], FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cell3.Border = PdfPCell.NO_BORDER; cell3.Border += PdfPCell.RIGHT_BORDER; cell3.Border += PdfPCell.LEFT_BORDER; cell3.SetLeading(5f, 1.2f); table.AddCell(cell3); PdfPCell cell4 = new PdfPCell(new Phrase(donneeBody["Rel_mtva" + i], FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cell4.Border = PdfPCell.NO_BORDER; cell4.Border += PdfPCell.RIGHT_BORDER; cell4.Border += PdfPCell.LEFT_BORDER; cell4.HorizontalAlignment = Element.ALIGN_RIGHT; cell4.SetLeading(5f, 1.2f); table.AddCell(cell4); PdfPCell cell5 = new PdfPCell(new Phrase(donneeBody["Rel_mttavo"+i], FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cell5.Border = PdfPCell.NO_BORDER; cell5.Border += PdfPCell.RIGHT_BORDER; cell5.Border += PdfPCell.LEFT_BORDER; cell5.HorizontalAlignment = Element.ALIGN_RIGHT; cell5.SetLeading(5f, 1.2f); table.AddCell(cell5); PdfPCell cell6 = new PdfPCell(new Phrase(donneeBody["Rel_mtfac" + i], FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cell6.Border = PdfPCell.NO_BORDER; cell6.Border += PdfPCell.RIGHT_BORDER; cell6.Border += PdfPCell.LEFT_BORDER; cell6.HorizontalAlignment = Element.ALIGN_RIGHT; cell6.SetLeading(5f, 1.2f); table.AddCell(cell6); //--------------------------------------------GESTION DU SAUT DE PAGE------------------------------------------------------------------------------------------- float temp = table.TotalHeight; dimTab = temp; if (dimTab >= 380 && i < iBody) //if (dimTab >= 380 && i <= iBody) { //Saut de page numPage++; PdfPCell cellFin = new PdfPCell(new Phrase(" ")); PdfPCell cellBlanche = new PdfPCell(new Phrase(" ")); PdfPCell cellBlancheDA = new PdfPCell(new Phrase("\n\nA Reporter", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.ITALIC))); PdfPCell cellBlancheD = new PdfPCell(new Phrase("\n\n" + tempoTOT.ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.ITALIC))); cellFin.Colspan = 8; cellBlancheDA.Bottom = PdfPCell.ALIGN_BOTTOM; cellBlancheD.Bottom = PdfPCell.ALIGN_BOTTOM; cellBlanche.FixedHeight = (440 - dimTab); cellBlanche.Border = PdfPCell.NO_BORDER; cellBlanche.Border += PdfPCell.RIGHT_BORDER; cellBlanche.Border += PdfPCell.LEFT_BORDER; cellBlancheDA.FixedHeight = (440 - dimTab); cellBlancheDA.Border = PdfPCell.NO_BORDER; cellBlancheDA.Border += PdfPCell.LEFT_BORDER; cellBlancheDA.Border += PdfPCell.RIGHT_BORDER; cellBlancheD.FixedHeight = (440 - dimTab); cellBlancheD.Border = PdfPCell.NO_BORDER; cellBlancheD.Border += PdfPCell.LEFT_BORDER; cellBlancheD.Border += PdfPCell.RIGHT_BORDER; cellFin.Border = PdfPCell.NO_BORDER; cellFin.Border += PdfPCell.TOP_BORDER; table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlancheDA); table.AddCell(cellBlancheD); table.AddCell(cellFin); nouveauDocument.Add(table);//----------------------------------------------------------------------------Repère ligne en dessous-------------------------------------------------- Phrase pReport = new Phrase(" A REPORTER\n\n\n\n\n\n", FontFactory.GetFont(FontFactory.HELVETICA, 11, Font.BOLD)); /*10 12 15 ND correction bug saut de page donnée entete innexistante*/ // Phrase pPage = new Phrase("\n " + donneEntete["Document_type"] + " " + donneEntete["Duplicata"] + " Page n° " + (numPage + 1) + " ", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD)); Phrase pPage = new Phrase("\n " + donneEntete["Document_type"] + " Page n° " + (numPage + 1) + " ", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD)); pPage.Leading = 15; nouveauDocument.Add(pReport); table.DeleteBodyRows(); nouveauDocument.Add(Chunk.NEXTPAGE); nouveauDocument.Add(tableau); nouveauDocument.Add(pPage); table.AddCell(cellET1); table.AddCell(cellET2); table.AddCell(cellET3); table.AddCell(cellET4); table.AddCell(cellET5); table.AddCell(cellET6); dimTab = 0; décrement = (i - 1); } //FinGestionSautPage } //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- int b; //---------------------------------------------------------------- for (b = 0; b <= i; b++) // { // Compteur dimension du tableau float temp = table.TotalHeight; // resultat = temp; // } //------------------------------------------------------------------- if (i >= iBody) { PdfPCell cellFin = new PdfPCell(new Phrase(" ")); PdfPCell cellBlanche = new PdfPCell(new Phrase(" ")); PdfPCell cellBlancheD = new PdfPCell(new Phrase(" ")); cellFin.Colspan = 8; resultat = 300 - resultat; //<<----------450 correspond au nombre de point de la longueur du tableau, c'est la valeur à modifier pour modifier la taille du tableau cellBlanche.FixedHeight = resultat; cellBlanche.Border = PdfPCell.NO_BORDER; cellBlanche.Border += PdfPCell.RIGHT_BORDER; cellBlanche.Border += PdfPCell.LEFT_BORDER; cellBlancheD.FixedHeight = resultat; cellBlancheD.Border = PdfPCell.NO_BORDER; cellBlancheD.Border += PdfPCell.LEFT_BORDER; cellBlancheD.Border += PdfPCell.RIGHT_BORDER; cellFin.Border = PdfPCell.NO_BORDER; cellFin.Border += PdfPCell.TOP_BORDER; table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlanche); table.AddCell(cellBlancheD); table.AddCell(cellFin); } table.SpacingAfter = -15F; nouveauDocument.Add(table); //----------------------------------------------------Tableau récap----------------------------------------- PdfPTable tabTot = new PdfPTable(3); tabTot.TotalWidth = 565; tabTot.LockedWidth = true; PdfPCell cellHT = new PdfPCell(new Phrase("HT " + donneeFoot["Tot_ht"], FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); cellHT.Border = PdfPCell.NO_BORDER; PdfPCell cellTVA = new PdfPCell(new Phrase("TVA " + donneeFoot["Tot_tva"], FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); cellTVA.Border = PdfPCell.NO_BORDER; PdfPCell cellTot = new PdfPCell(new Phrase(donneeFoot["Tot_rel"], FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.BOLD))); cellTot.Border = PdfPCell.NO_BORDER; cellHT.HorizontalAlignment = Element.ALIGN_RIGHT; cellTVA.HorizontalAlignment = Element.ALIGN_RIGHT; cellTot.HorizontalAlignment = Element.ALIGN_RIGHT; tabTot.AddCell(cellHT); tabTot.AddCell(cellTVA); tabTot.AddCell(cellTot); PdfPCell cellType = new PdfPCell(new Phrase("\nDate d'échéance : " + donneeFoot["Tot_datech"]+"\n\n"+donneeFoot["Tot_libtraite"], FontFactory.GetFont(FontFactory.HELVETICA, 9, Font.NORMAL))); cellType.Border = PdfPCell.NO_BORDER; cellType.Colspan = 2; PdfPTable tabReleve = new PdfPTable(1); tabReleve.TotalWidth = 138; tabReleve.LockedWidth = true; tabReleve.AddCell(new PdfPCell(new Phrase("TOTAL RELEVE", FontFactory.GetFont(FontFactory.HELVETICA, 11, Font.BOLD)))); PdfPCell tabCellTot = new PdfPCell(new Phrase("\n"+donneeFoot["Tot_rel"]+" EUR", FontFactory.GetFont(FontFactory.HELVETICA, 11, Font.BOLD))); tabCellTot.HorizontalAlignment = Element.ALIGN_RIGHT; tabReleve.AddCell(tabCellTot); PdfPCell cellTabReleve = new PdfPCell(); cellTabReleve.Border = PdfPCell.NO_BORDER; cellTabReleve.PaddingLeft= 50; cellTabReleve.VerticalAlignment = Element.ALIGN_BOTTOM; cellTabReleve.AddElement(tabReleve); tabTot.AddCell(cellType); tabTot.AddCell(cellTabReleve); nouveauDocument.Add(tabTot); Phrase pTiré = new Phrase("\n------------------------------------------------------------------------------------------------------------------------------------------"); pTiré.SetLeading(0f, 0.5f); nouveauDocument.Add(pTiré); //--------------------------------------FIN TABLEAU RECAP------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if (donneeFoot["Tot_libreg"] == "") // Condition si réglement par traites { PdfPTable tableauTraiteHaut = new PdfPTable(3); tableauTraiteHaut.TotalWidth = 565; tableauTraiteHaut.LockedWidth = true; PdfPCell cellBlancheTraite = new PdfPCell(); cellBlancheTraite.Border = PdfPCell.NO_BORDER; tableauTraiteHaut.AddCell(cellBlancheTraite); PdfPCell cellTraiteHaut = new PdfPCell(); cellTraiteHaut.SetLeading(1f, 0.5f); PdfPCell cellTraiteHautD = new PdfPCell(); cellTraiteHautD.SetLeading(1f, 0.5f); cellTraiteHaut.Border = PdfPCell.NO_BORDER; cellTraiteHautD.Border = PdfPCell.NO_BORDER; cellTraiteHaut.AddElement(new Phrase("Contre cette LETTRE de CHANGE stipulée SANS FRAIS veuillez payer la somme indiquée ci-dessous à l'ordre de :", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); tableauTraiteHaut.AddCell(cellTraiteHaut); cellTraiteHautD.AddElement(new Phrase(" " + donneeFoot["Tra_libacc"] + " " + donneeFoot["Tra_lcr"], FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); tableauTraiteHaut.AddCell(cellTraiteHautD); tableauTraiteHaut.SpacingAfter = -10f; nouveauDocument.Add(tableauTraiteHaut); //--------------------------Tableau Traite principal------------------------------------------------------------------------------------------------------- PdfPTable tableauTraite = new PdfPTable(3); //tableauTraite.SpacingBefore = -10f; tableauTraite.TotalWidth = 565; tableauTraite.LockedWidth = true; PdfPCell cellTraiteMiG = new PdfPCell(); cellTraiteMiG.Border = PdfPCell.NO_BORDER; Paragraph pcellTraiteHG = new Paragraph(); pcellTraiteHG.Add(new Phrase("\nA " + donneeFoot["Tra_lieucr"]+"\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); pcellTraiteHG.Add(new Phrase("Montant pour controle Date de création\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); pcellTraiteHG.Add(new Phrase("|"+donneeFoot["Tra_montae"] + "| |" + donneeFoot["Tra_datrel"]+"|", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); pcellTraiteHG.Add(new Phrase("\n| ", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.UNDERLINE))); pcellTraiteHG.Add(new Phrase("|\n RIB du tiré .", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.UNDERLINE))); cellTraiteMiG.AddElement(pcellTraiteHG); cellTraiteMiG.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; PdfPCell cellTraiteMiM = new PdfPCell(); cellTraiteMiM.Border = PdfPCell.NO_BORDER; Paragraph pcellTraiteHM = new Paragraph(); pcellTraiteHM.Add(new Phrase("\n\nEchéance\n ", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); pcellTraiteHM.Add(new Phrase("| " + donneeFoot["Tra_datech"] + " |", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); pcellTraiteHM.Add(new Phrase(" |" + donneeFoot["Tra_cocpt"] + "|\n", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); pcellTraiteHM.Add(new Phrase(" Ref.tiré ", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cellTraiteMiM.AddElement(pcellTraiteHM); cellTraiteMiM.HorizontalAlignment = PdfPCell.ALIGN_RIGHT; PdfPCell cellTraiteMiD = new PdfPCell(); cellTraiteMiD.Border = PdfPCell.NO_BORDER; cellTraiteMiD.AddElement(new Phrase("\n CODE MONNAIE ISO\n",FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); cellTraiteMiD.AddElement(new Phrase(" EUR\n", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); cellTraiteMiD.AddElement(new Phrase("Montant\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cellTraiteMiD.AddElement(new Phrase(" *****" + donneeFoot["Tra_montae"] + "***", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); cellTraiteMiD.PaddingLeft = 70; tableauTraite.AddCell(cellTraiteMiG); tableauTraite.AddCell(cellTraiteMiM); tableauTraite.AddCell(cellTraiteMiD); //------------FIN LIGNE MILEU TABLEAU--------------- PdfPCell cellTraiteBasG = new PdfPCell(); cellTraiteBasG.Border = PdfPCell.NO_BORDER; cellTraiteBasG.AddElement(new Phrase("|" + donneeFoot["Tra_banque"] + " | " + donneeFoot["Tra_guichet"] + " | " + donneeFoot["Tra_cptco"] + " | " + donneeFoot["Tra_rib"]+"|\n", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); cellTraiteBasG.AddElement(new Phrase("Code établ. Code guichet N°de Compte Clé RIB\n", FontFactory.GetFont(FontFactory.HELVETICA, 6, Font.NORMAL))); cellTraiteBasG.AddElement(new Phrase("Valeur en:", FontFactory.GetFont(FontFactory.HELVETICA, 7, Font.NORMAL))); cellTraiteBasG.AddElement(new Phrase("ACCEPTATION OU AVAL", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); cellTraiteBasG.AddElement(new Phrase(" NOM\n et ADRESSE", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cellTraiteBasG.AddElement(new Phrase("\nN° SIREN du TIRE "+donneeFoot["Tra_siren"],FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); PdfPCell cellTraiteBasM = new PdfPCell(); cellTraiteBasM.Border = PdfPCell.NO_BORDER; cellTraiteBasM.AddElement(new Phrase(" "+donneeFoot["Tra_tiers_adf1"]+"\n",FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cellTraiteBasM.AddElement(new Phrase(" " + donneeFoot["Tra_tiers_adf2"] + "\n\n\n\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cellTraiteBasM.AddElement(new Phrase(" " + donneeFoot["Tra_tiers_adfcp"] + " " + donneeFoot["Tra_tiers_adf6"], FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); PdfPCell cellTraiteBasD = new PdfPCell(); cellTraiteBasD.Border = PdfPCell.NO_BORDER; cellTraiteBasD.AddElement(new Phrase(" DOMICILIATION .\n", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.UNDERLINE))); cellTraiteBasD.AddElement(new Phrase("| " + donneeFoot["Tra_domic1"] + " |\n", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); cellTraiteBasD.AddElement(new Phrase("| " + donneeFoot["Tra_domic2"] + " |\n", FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); cellTraiteBasD.AddElement(new Phrase(" Signature ", FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.NORMAL))); cellTraiteBasD.AddElement(new Phrase("\n\nCLIENT N° " + donneeFoot["Tra_nocli"] + " RELEVE N° " + donneeFoot["Tra_numrel"], FontFactory.GetFont(FontFactory.COURIER, 8, Font.NORMAL))); tableauTraite.AddCell(cellTraiteBasG);tableauTraite.AddCell(cellTraiteBasM);tableauTraite.AddCell(cellTraiteBasD); nouveauDocument.Add(tableauTraite); } nouveauDocument.Close(); incCopie++; //--------------------------------------------------COPIE GED-------------------------------------------------------- string nomADH = ""; string numcli = ""; try { String connectionString = ConfigurationManager.AppSettings["ChaineDeConnexionBase"]; OdbcConnection conn = new OdbcConnection(connectionString); conn.Open(); //string requete = "select T1.NOCLI c1 , T1.NOMCL c2 from B00C0ACR.AMAGESTCOM.ACLIENL1 T1 where T1.NOCLI = '" + donneeFoot["Tra_nocli"] + "'"; numcli = donneEntete["Tiers_nocpt"].Substring(3, 6); string requete = "select T1.NOCLI c1 , T1.NOMCL c2 from B00C0ACR.AMAGESTCOM.ACLIENL1 T1 where T1.NOCLI = '" + numcli + "'"; OdbcCommand act = new OdbcCommand(requete, conn); OdbcDataReader act0 = act.ExecuteReader(); //string nomADH = ""; //act0.Read(); while (act0.Read()) { nomADH = (act0.GetString(1)); nomADH = nomADH.Trim(); /*test recup nom*/ // LogHelper.WriteToFile("requete : ", requete + "-" + numcli); } conn.Close(); /*if (!System.IO.Directory.Exists(ConfigurationManager.AppSettings["cheminGED"] + "\\" + donneeFoot["Tra_nocli"] + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM") + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Facturation\\")) { System.IO.Directory.CreateDirectory(ConfigurationManager.AppSettings["cheminGED"] + "\\" + donneeFoot["Tra_nocli"] + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Facturation\\"); System.IO.File.Copy(chemin, ConfigurationManager.AppSettings["cheminGED"] + "\\" + donneeFoot["Tra_nocli"] + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Facturation\\RELEVE" + "\\" + nomDoc + "_" + donneeFoot["Tra_nocli"] + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"); } else { System.IO.File.Copy(chemin, ConfigurationManager.AppSettings["cheminGED"] + "\\" + donneeFoot["Tra_nocli"] + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Facturation\\RELEVE" + nomDoc + "_" + donneeFoot["Tra_nocli"] + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"); }*/ if (!System.IO.Directory.Exists(ConfigurationManager.AppSettings["cheminGED"] + "\\" + numcli + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM") + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Facturation\\")) { System.IO.Directory.CreateDirectory(ConfigurationManager.AppSettings["cheminGED"] + "\\" + numcli + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Facturation\\"); System.IO.File.Copy(chemin, ConfigurationManager.AppSettings["cheminGED"] + "\\" + numcli + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Facturation\\RELEVE" + "\\" + nomDoc + "_" + donneeFoot["Tra_nocli"] + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"); } else { System.IO.File.Copy(chemin, ConfigurationManager.AppSettings["cheminGED"] + "\\" + numcli + " - " + nomADH + "\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.ToString("MM").ToUpperInvariant() + "-" + DateTime.Now.ToString("MMMM").First().ToString().ToUpper() + String.Join("", DateTime.Now.ToString("MMMM").Skip(1)) + "\\Facturation\\RELEVE" + nomDoc + "_" + donneeFoot["Tra_nocli"] + "_" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".pdf"); } } catch (Exception e) { LogHelper.WriteToFile(e.Message, "nomAdh : " + nomADH + "-"+ numcli + "ENVOI GED Releve"); } //----------------------------------------------FIN COPIE---------------------------------------------------------- //Requette qui retourne le champ "OUI/NON" envoi mail facture String connectionString2 = ConfigurationManager.AppSettings["ChaineDeConnexionBase"]; OdbcConnection conn2 = new OdbcConnection(connectionString2); conn2.Open(); //Requete de séléction sur le champ "envoi facture par mail" string requete2 = "select T1.NOCLI c1 , T1.CLID5 c2 , T1.RENDI c3 , T1.PROFE c4 from B00C0ACR.AMAGESTCOM.ACLIENL1 T1 where T1.CLID5 = 'OUI'"; OdbcCommand act2 = new OdbcCommand(requete2, conn2); OdbcDataReader act20 = null; bool effectuerImpression = true; string numCli =""; try { act20 = act2.ExecuteReader(); while (act20.Read()) { numCli = donneEntete["Tiers_nocpt"].Substring(3, 6); /*ND 27 10 15 correction erreur généré recherche facture oui ou non donnée entete inexistante car code compte*/ // if(act20.GetString(0) == donneEntete["Client_code"])// Si le code client est égale au résultat de la requete sur la ligne lu "NOCLI" if (act20.GetString(0) == numCli)// Si le code client est égale au résultat de la requete sur la ligne lu "NOCLI" { if(act20.GetString(1) == "OUI") //Si la ligne de l'enrigistrement dans la base est à OUI pour cet ID, alors ne pas imprimer { effectuerImpression = false; } } } } catch (Exception e) { LogHelper.WriteToFile(e.Message, "Erreur de connexion à la base, rupture d'impression"); } if (effectuerImpression == true) { int nbImp = 0; int nbImpOK = 0; string[] printer = new string[20]; // tableau qui contient les imprimantes du profil d'impression ProfilImprimante profil = new ProfilImprimante(); profil.chargementXML("Facture"); // chargement selon le type de doc string vendeur = unProfil.Substring(2, 3); vendeur = vendeur.TrimEnd(); var listeProfil = profil.getDonneeProfil(); try { foreach (string v in listeProfil[vendeur]) //lecture des imprimantes liée à un profil { printer[nbImp] = v.ToString(); nbImp++; //on incrémente le nombre d'impression à executer } } catch { printer[nbImp] = ConfigurationManager.AppSettings["ImpDef"]; //Imprimante par defaut (essai) nbImp++; } nbImp = nbImp - 1; while (nbImpOK <= nbImp) // boucle tant que le nombre d'impression fait n'à pas atteint le nombre d'impression demander { string printerName = printer[nbImpOK]; string inputFile = String.Format(@"{0}", chemin); try { //Envoi de l'ordre d'impression vers l'imprimante, les "switches" sont des arguments de la ligne de script "processor" de type GhostscriptProcessor using (GhostscriptProcessor processor = new GhostscriptProcessor()) { List<string> switches = new List<string>(); switches.Add("-empty"); switches.Add("-dPrinted"); switches.Add("-dBATCH"); switches.Add("-dNOPAUSE"); switches.Add("-dNOSAFER"); switches.Add("-dNumCopies=" + ConfigurationManager.AppSettings["NbCopieGC"]); switches.Add("-sDEVICE=" + ConfigurationManager.AppSettings["PiloteImpressionFacture"]); //switches.Add("-r360x360");//Pilote d'impression switches.Add("-sOutputFile=%printer%" + printerName); switches.Add("-f"); switches.Add(inputFile); processor.StartProcessing(switches.ToArray(), null); } nbImpOK++; } catch (Exception e) { //LogHelper.WriteToFile(e.Message, "ParseurBP" + donneEntete["Document_numero"].Trim()); LogHelper.WriteToFile(e.Message, "relevé" +donneEntete["Tiers_nocpt"].Trim()); } // incrément à chaque impression terminée } } } }