public string GetNomFichierAvenant(string entite = "NSAS") { string nomFichier = ""; try { int ID_Type_Document = TypeDocument.GetIDTypeDocumentCompagnie(CodeCompagnie, TypeAvenant, entite); if (ID_Type_Document > 0) //type existant { TypeDocument tpDoc = new TypeDocument(ID_Type_Document, entite); string nomSous = ""; if (entite == "NSAS") { using (SqlConnection con = new SqlConnection("data source=192.168.1.2\\SQL2008r2qualif;Database=GEDNortia_Invest;Uid=sa;password=NICKEL2000;")) { string strSQL = @"SELECT CASE WHEN [isPersonnePhysique]=1 then rtrim(ltrim(ca_souscripteur.nom)) else rtrim(ltrim(ca_souscripteur.societe)) END as nom FROM dbo.ca_contrat INNER JOIN dbo.ca_souscripteur ON ca_contrat.fksouscripteur=ca_souscripteur.pk WHERE NContrat=@numContrat"; con.Open(); SqlCommand cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@numContrat", (object)NumContrat ?? DBNull.Value); nomSous = (string)cmd.ExecuteScalar(); } } if (!String.IsNullOrWhiteSpace(NumContrat)) { if (String.IsNullOrWhiteSpace(nomSous)) { nomFichier = NumContrat + "_" + tpDoc.Nom + "_" + DateAvenant.ToString("dd-MM-yyyy"); } else { nomFichier = nomSous + "_" + NumContrat + "_" + tpDoc.Nom + "_" + DateAvenant.ToString("dd-MM-yyyy"); } } else { nomFichier = ""; } } nomFichier = Tools.Tools.ReplaceIllegalCharFromFileName(nomFichier); } catch (Exception ex) { nomFichier = ""; } return(nomFichier); }
public static List <TypeDocument> GetAllAvenants() { var result = new List <TypeDocument>(); var ocon = new SqlConnection(ConfigurationManager.ConnectionStrings["dsnGED"].ConnectionString); if (ocon.State != ConnectionState.Open) { ocon.Open(); } var sql = @"SELECT * FROM [Nortiaca_MEDIA].[dbo].[Type_Document] WHERE Nom LIKE '%Avenant%' ORDER BY Ordre"; var cmd = new SqlCommand(sql, ocon); var dr = cmd.ExecuteReader(); while (dr.Read()) { var td = new TypeDocument { ID_Type_Document = int.Parse(dr["ID_Type_Document"].ToString()), Categorie = (!string.IsNullOrEmpty(dr["Categorie"].ToString()) ? dr["Categorie"].ToString() : ""), EnvoyerSF = dr["EnvoyerSF"].ToString() == "1", GenereUnPli = dr["GenereUnPli"].ToString() == "1", Nom = dr["Nom"].ToString(), Ordre = (!string.IsNullOrEmpty(dr["Ordre"].ToString()) ? int.Parse(dr["Ordre"].ToString()) : 0), }; result.Add(td); } dr.Close(); ocon.Close(); return(result); }
public static string GetTableCA(int ID_TypeDocGED, int ID_TypeActe = 0) { SqlConnection con = null; string tableCA = ""; try { TypeDocument tpDoc = new TypeDocument(ID_TypeDocGED); if (tpDoc.Categorie == "Acte") //Acte { string strSQL = ""; SqlCommand cmd = null; con = new SqlConnection(ConfigurationManager.ConnectionStrings["dsnGED"].ConnectionString); con.Open(); if (ID_TypeActe == 0) { strSQL = @"SELECT Type_Acte_Type_Document.[Table_CA] FROM Type_Acte_Type_Document WHERE Type_Acte_Type_Document.ID_Type_Document=@ID_TypeDoc"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@ID_TypeDoc", (object)ID_TypeDocGED ?? DBNull.Value); } else { strSQL = @"SELECT Type_Acte_Type_Document.[Table_CA] FROM Type_Acte_Type_Document WHERE Type_Acte_Type_Document.ID_Type_Document=@ID_TypeDoc AND Type_Acte_Type_Document.ID_Type_Acte=@ID_TypeActe"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@ID_TypeActe", (object)ID_TypeActe ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_TypeDoc", (object)ID_TypeDocGED ?? DBNull.Value); } tableCA = (string)cmd.ExecuteScalar(); } else if (tpDoc.Categorie == "Contrat")//Contrat { tableCA = "ca_contrat"; } else { throw new Exception("La catégorie du type de document n'existe pas"); } } catch (Exception ex) { } finally { if (con != null && con.State == ConnectionState.Open) { con.Close(); } } return(tableCA); }
public static int GetTypeDocCA(int ID_TypeDocGED, int ID_TypeActe = 0) { SqlConnection con = null; int ID_TypeDoc_CA = 0; try { TypeDocument tpDoc = new TypeDocument(ID_TypeDocGED); if (tpDoc.Categorie == "Acte") //Acte { string strSQL = ""; SqlCommand cmd = null; con = new SqlConnection(ConfigurationManager.ConnectionStrings["dsnGED"].ConnectionString); con.Open(); if (ID_TypeActe == 0) //Avenant Acte { strSQL = @"SELECT Type_Acte_Type_Document.[ID_Type_Doc_CA] FROM Type_Acte_Type_Document WHERE Type_Acte_Type_Document.ID_Type_Document=@ID_TypeDoc"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@ID_TypeDoc", (object)ID_TypeDocGED ?? DBNull.Value); } else //Document Acte { strSQL = @"SELECT Type_Acte_Type_Document.[ID_Type_Doc_CA] FROM Type_Acte_Type_Document WHERE Type_Acte_Type_Document.ID_Type_Document=@ID_TypeDoc AND Type_Acte_Type_Document.ID_Type_Acte=@ID_TypeActe"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@ID_TypeActe", (object)ID_TypeActe ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_TypeDoc", (object)ID_TypeDocGED ?? DBNull.Value); } object nb = cmd.ExecuteScalar(); if (nb != null) { ID_TypeDoc_CA = (Int32)nb; } } else if (tpDoc.Categorie == "Contrat")//Contrat { ID_TypeDoc_CA = tpDoc.ID_Type_Document_CA; } else { throw new Exception("La catégorie du type de document n'existe pas"); } } catch (Exception ex) { throw new Exception(ex.Message); } finally { if (con != null && con.State == ConnectionState.Open) { con.Close(); } } return(ID_TypeDoc_CA); }
public static RetourIndexationDocument Indexer(IndexationDocument indexDoc, string entite = "NSAS") { SqlConnection con = null; string strSQL = ""; SqlCommand cmd = null; RetourIndexationDocument retour = new RetourIndexationDocument(); try { retour = new RetourIndexationDocument(); //Trace string message = "ID_Doc: " + indexDoc.ID_DocumentNortia + "; ID_DocSF: " + indexDoc.ID_DocumentSalesForce + "; TypeDoc: " + indexDoc.TypeDocument + "; ID_Pli: " + indexDoc.ID_PliNortia + "; ID_PliSF: " + indexDoc.ID_PliSalesForce + "; TypeActe: " + indexDoc.TypeActe + "; ObjetSF: " + indexDoc.TypeObjetAvenant + "; VisibleNOL: " + indexDoc.VisibleNOL; TraceIndexation(message, "Indexation Update", entite); if (entite == "NSAS") { con = new SqlConnection(ConfigurationManager.ConnectionStrings["dsnGED"].ConnectionString); } else { con = new SqlConnection(ConfigurationManager.ConnectionStrings["dsnGED_NI"].ConnectionString); } strSQL = "SELECT count(*) FROM CA_MEDIA WHERE pk = @ID_Doc AND ID_Pli=@ID_Pli"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@ID_Pli", (object)indexDoc.ID_PliNortia ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_Doc", (object)indexDoc.ID_DocumentNortia ?? DBNull.Value); con.Open(); int nbLigne = (int)cmd.ExecuteScalar(); if (nbLigne != 0) { //indexDoc.ID_PliNortia=0: Document Acte, sinon Document Avenant if (indexDoc.ID_PliNortia != 0) { int idTypeActe = TypeDocument.GetIDTypeActe(indexDoc.TypeActe, entite); strSQL = "UPDATE Pli SET ID_Type_Acte=@ID_Type_Acte, CleSalesForce = @CleSalesForce where ID_Pli = @ID_Pli"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@ID_Type_Acte", (object)idTypeActe ?? DBNull.Value); cmd.Parameters.AddWithValue("@CleSalesForce", (object)indexDoc.ID_PliSalesForce ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_Pli", (object)indexDoc.ID_PliNortia ?? DBNull.Value); nbLigne = cmd.ExecuteNonQuery(); } else { strSQL = "UPDATE Avenant SET Objet_SF=@Objet_SF, CleSalesForce = @CleSalesForce where ID_Document = @ID_Document"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@Objet_SF", (object)indexDoc.TypeObjetAvenant ?? DBNull.Value); cmd.Parameters.AddWithValue("@CleSalesForce", (object)indexDoc.ID_PliSalesForce ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_Document", (object)indexDoc.ID_DocumentNortia ?? DBNull.Value); nbLigne = cmd.ExecuteNonQuery(); } //if ((indexDoc.ID_PliNortia != 0 && nbLigne != 0) || indexDoc.ID_PliNortia == 0) if (nbLigne != 0) { int idTypeDoc = TypeDocument.GetIDTypeDocument(indexDoc.TypeDocument, entite); if (idTypeDoc > 0) { if (entite == "NI") { strSQL = "UPDATE CA_MEDIA SET VisibleNOL=@VisibleNOL,ID_Type_Document=@ID_Type_Document,TEK_DateSuppressionSF=null where pk = @ID_Doc;"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@VisibleNOL", (object)indexDoc.VisibleNOL ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_Type_Document", (object)idTypeDoc ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_Doc", (object)indexDoc.ID_DocumentNortia ?? DBNull.Value); nbLigne = cmd.ExecuteNonQuery(); strSQL = "SELECT Count(*) FROM IndexationDocument WHERE ID_Document=@ID_Document AND Applicatif='Salesforce' and Objet=@TypeObjetAvenant and Objet_ID=@ID_PliSalesForce"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@ID_Document", (object)indexDoc.ID_DocumentNortia); cmd.Parameters.AddWithValue("@TypeObjetAvenant", (object)indexDoc.TypeObjetAvenant); cmd.Parameters.AddWithValue("@ID_PliSalesForce", (object)indexDoc.ID_PliSalesForce); int nb = (int)cmd.ExecuteScalar(); if (nb > 0) { strSQL = "UPDATE IndexationDocument SET CleExterne=@ID_DocumentSalesForce WHERE ID_Document=@ID_Document AND Applicatif='Salesforce' and Objet=@TypeObjetAvenant and Objet_ID=@ID_PliSalesForce"; } else { strSQL = "INSERT INTO IndexationDocument(ID_Document,Applicatif,Objet,Objet_ID,CleExterne) VALUES (@ID_Document,'Salesforce',@TypeObjetAvenant,@ID_PliSalesForce,@ID_DocumentSalesForce)"; } cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@ID_PliSalesForce", (object)indexDoc.ID_PliSalesForce ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_Document", (object)indexDoc.ID_DocumentNortia); cmd.Parameters.AddWithValue("@TypeObjetAvenant", (object)indexDoc.TypeObjetAvenant); cmd.Parameters.AddWithValue("@ID_DocumentSalesForce", (object)indexDoc.ID_DocumentSalesForce); cmd.ExecuteNonQuery(); } else if (entite == "NSAS") { string nomTable = ""; int idCA = 0; if (indexDoc.TypeObjetAvenant == "Contrat") { nomTable = "ca_contrat"; idCA = GetID_Contrat(indexDoc.ID_PliSalesForce); } else { int idTypeActe = TypeDocument.GetIDTypeActe(indexDoc.TypeActe); nomTable = GetTableCA(idTypeDoc, idTypeActe); if (nomTable != null && nomTable != "") { idCA = GetID_Acte(nomTable, indexDoc.ID_PliSalesForce); } } //strSQL = "UPDATE CA_MEDIA SET CleSalesForce = @CleSalesForce, Original=@Original, VisibleNOL=@VisibleNOL,ID_Type_Document=@ID_Type_Document,pkvalue=@pkvalue,[table]=@table where pk = @ID_Doc;"; strSQL = "UPDATE CA_MEDIA SET CleSalesForce = @CleSalesForce, VisibleNOL=@VisibleNOL,ID_Type_Document=@ID_Type_Document,pkvalue=@pkvalue,[table]=@table,TEK_DateSuppressionSF=null where pk = @ID_Doc;"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@CleSalesForce", (object)indexDoc.ID_DocumentSalesForce ?? DBNull.Value); cmd.Parameters.AddWithValue("@VisibleNOL", (object)indexDoc.VisibleNOL ?? DBNull.Value); //cmd.Parameters.AddWithValue("@Original", (object)indexDoc.Original ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_Type_Document", (object)idTypeDoc ?? DBNull.Value); if (nomTable == null || nomTable.Trim() == "" || idCA == 0) { cmd.Parameters.AddWithValue("@pkvalue", DBNull.Value); cmd.Parameters.AddWithValue("@table", DBNull.Value); } else { cmd.Parameters.AddWithValue("@pkvalue", (object)idCA); cmd.Parameters.AddWithValue("@table", (object)nomTable); } cmd.Parameters.AddWithValue("@ID_Doc", (object)indexDoc.ID_DocumentNortia ?? DBNull.Value); nbLigne = cmd.ExecuteNonQuery(); if (nbLigne != 0) { try { int ID_TypeDoc_CA = 0; if (indexDoc.TypeObjetAvenant == "Contrat") { ID_TypeDoc_CA = GetTypeDocCA(idTypeDoc); } else { int idTypeActe = TypeDocument.GetIDTypeActe(indexDoc.TypeActe); ID_TypeDoc_CA = GetTypeDocCA(idTypeDoc, idTypeActe); } if (ID_TypeDoc_CA > 0) { if (con != null && con.State == ConnectionState.Open) { con.Close(); } con = new SqlConnection(ConfigurationManager.ConnectionStrings["dsnNortiaCA"].ConnectionString); strSQL = @"SELECT count(*) FROM [CA_TYPEDOCS_MEDIA] WHERE [fkmedia]= @fkmedia;"; con.Open(); cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@fkmedia", (object)indexDoc.ID_DocumentNortia); int nb = (int)cmd.ExecuteScalar(); if (nb > 0) { strSQL = @"UPDATE [CA_TYPEDOCS_MEDIA] set [fktypedocs]=@fktypedocs WHERE [fkmedia]= @fkmedia;"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@fktypedocs", (object)ID_TypeDoc_CA ?? DBNull.Value); cmd.Parameters.AddWithValue("@fkmedia", (object)indexDoc.ID_DocumentNortia); } else { strSQL = @"INSERT INTO [CA_TYPEDOCS_MEDIA] ([fktypedocs],[fkmedia],[date]) VALUES(@fktypedocs,@fkmedia,@date)"; cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@fktypedocs", (object)ID_TypeDoc_CA ?? DBNull.Value); cmd.Parameters.AddWithValue("@fkmedia", (object)indexDoc.ID_DocumentNortia ?? DBNull.Value); cmd.Parameters.AddWithValue("@date", (object)DateTime.Now); } cmd.ExecuteNonQuery(); } } catch (Exception ex) { throw new Exception(ex.Message); } retour.CodeRetour = 0; retour.Message = "Success Indexation"; } else { retour.CodeRetour = 5; retour.Message = "L'identifiant Nortia \"" + indexDoc.ID_DocumentNortia.ToString() + "\" du Document n'existe pas dans la GED"; } } } else { retour.CodeRetour = 4; retour.Message = "Le type de document spécifié \"" + indexDoc.TypeDocument + "\" du Document n'existe pas dans la GED"; } } else { retour.CodeRetour = 3; retour.Message = "L'identifiant Nortia \"" + indexDoc.ID_DocumentNortia.ToString() + "\" du Document n'est associé à aucun Pli"; } } else { retour.CodeRetour = 2; retour.Message = "L'identifiant du Pli Nortia \"" + indexDoc.ID_PliNortia.ToString() + "\" et l'identifiant du Document Nortia \"" + indexDoc.ID_DocumentNortia.ToString() + "\" ne coresponde pas dans la GED"; } } catch (Exception ex) { retour.CodeRetour = 1; retour.Message = ex.Message; } finally { if (con != null && con.State == ConnectionState.Open) { con.Close(); } } if (retour.CodeRetour > 0) { string message = retour.Message + " - Valeurs: ID_Doc: " + indexDoc.ID_DocumentNortia + "; ID_DocSF: " + indexDoc.ID_DocumentSalesForce + "; TypeDoc: " + indexDoc.TypeDocument + "; ID_Pli: " + indexDoc.ID_PliNortia + "; ID_PliSF: " + indexDoc.ID_PliSalesForce + "; TypeActe: " + indexDoc.TypeActe + "; ObjetSF: " + indexDoc.TypeObjetAvenant + "; VisibleNOL" + indexDoc.VisibleNOL; TraceIndexation(message, "Indexation Erreur", entite); } return(retour); }
public int IntegrerCAT_BIS() { int nbDoc = 0; try { string pathTmp = @"C:\Users\alaghouaouta\Desktop\TEST_INTEGRATION\CATtemp\"; //ConfigurationManager.AppSettings["CheminTmpAvenantCAT"]; if (!Directory.Exists(pathTmp)) { Directory.CreateDirectory(pathTmp); } string pathArchive = @"C:\Users\alaghouaouta\Desktop\TEST_INTEGRATION\Archive\"; //ConfigurationManager.AppSettings["CheminArchiveAvenantCAT"]; if (!Directory.Exists(pathArchive)) { Directory.CreateDirectory(pathArchive); } string pathRejet = @"C:\Users\alaghouaouta\Desktop\TEST_INTEGRATION\Rejet\"; //ConfigurationManager.AppSettings["CheminRejetAvenantCAT"]; if (!Directory.Exists(pathRejet)) { Directory.CreateDirectory(pathRejet); } string path = @"C:\Users\alaghouaouta\Desktop\TEST_INTEGRATION\"; // ConfigurationManager.AppSettings["CheminAvenantCAT"]; string avCAT = "GDNO01P_20??????????"; //ConfigurationManager.AppSettings["FormatFichierAvenantCAT"]; string pathAvCAT = @"C:\Users\alaghouaouta\Desktop\TEST_INTEGRATION\CAT\Tests\"; // ConfigurationManager.AppSettings["CheminDepotAvenantCAT"]; if (!Directory.Exists(pathAvCAT)) { Directory.CreateDirectory(pathAvCAT); } //serviceLog.WriteEntry("Recherche de nouveaux fichiers CAT à intégrer"); List <FichierAvenantZIP> listeFichierAvCAT = RechercheFichierAvenant(path, "", avCAT, "CAT"); //decompression des fichiers avenant if (listeFichierAvCAT.Count > 0) { //serviceLog.WriteEntry("Décompression des archives des situations: " + listeFichierAvCAT.Count.ToString()); foreach (FichierAvenantZIP fich in listeFichierAvCAT) { string cheminTo = pathTmp + fich.NomFichier; try { ZipFile.ExtractToDirectory(fich.CheminFichier, cheminTo); fich.DezipOK = true; } catch (Exception ex) { //serviceLog.WriteEntry("Erreur : Impossible de dézipper le fichier " + fich.CheminFichier, EventLogEntryType.Error); if (!RejetAvenant.Existe(fich.NomFichier, "", "ArchiveCorrompue")) { RejetAvenant.Ajouter(fich.NomFichier, "", "ArchiveCorrompue", "Impossible de décompresser l'archive"); } File.Move(fich.CheminFichier, pathRejet + fich.NomFichier); } if (fich.DezipOK) { File.Move(fich.CheminFichier, pathArchive + fich.NomFichier); } //File.Delete(fich.CheminFichier); } } //traitement des fichiers string nameRepAv = Path.GetFileNameWithoutExtension(avCAT); string[] listeRepAvCAT = System.IO.Directory.GetDirectories(pathTmp, nameRepAv); Array.Sort(listeRepAvCAT, StringComparer.InvariantCulture); /* mail pdfs*/ DataTable OSTCatMailDT = new DataTable(); OSTCatMailDT.Columns.Add("CodeCompagnie", typeof(string)); OSTCatMailDT.Columns.Add("NumContrat", typeof(string)); OSTCatMailDT.Columns.Add("IDTypeAvenant", typeof(int)); OSTCatMailDT.Columns.Add("chemin", typeof(string)); OSTCatMailDT.Columns.Add("codeRetour", typeof(int)); /* end mail pdfs*/ foreach (string rep in listeRepAvCAT) { DirectoryInfo di = new DirectoryInfo(rep); string[] listeFichierPDF = System.IO.Directory.GetFiles(rep, "*.pdf"); Array.Sort(listeFichierPDF, StringComparer.InvariantCulture); //PDF foreach (string fichierPDF in listeFichierPDF) { string nom = Path.GetFileNameWithoutExtension(fichierPDF); string typeDoc = ""; try { int codeRetour = Avenant.Exist(di.Name, nom, "", "NI"); if (codeRetour <= 0) { Avenant av = new Avenant(); string[] colonne = nom.Split('_'); typeDoc = colonne[1]; /*###################################################*/ av.CodeCompagnie = "CAT"; av.NumAvenant = nom; av.NumContrat = colonne[4]; av.TypeAvenant = colonne[1]; // prendre le code avec code insertion av.NumLot = di.Name; if (!String.IsNullOrWhiteSpace(av.NumContrat) && !String.IsNullOrWhiteSpace(av.TypeAvenant)) { string date = colonne[5]; av.DateAvenant = new DateTime(Convert.ToInt32(date.Substring(0, 4)), Convert.ToInt32(date.Substring(4, 2)), Convert.ToInt32(date.Substring(6, 2))); av.Actif = true; string nomFichier = av.GetNomFichierAvenant("NI"); // focntion qui alimente la base de données. codeRetour = av.Ajouter(fichierPDF, true, nomFichier, "NI"); /*#########*/ int IDTypeDoc = TypeDocument.GetIDTypeDocumentCompagnie(av.CodeCompagnie, av.TypeAvenant); OSTCatMailDT.Rows.Add(av.CodeCompagnie, av.NumContrat, IDTypeDoc, av.NumLot, codeRetour); //var = av.NumAvenant; destiné bdd ? /*#########*/ /*if (codeRetour > 0) * { * string idContratSF = Contrat.FindIdContratSF(av.NumContrat, "NI"); * if (!string.IsNullOrWhiteSpace(idContratSF))// à rajouter => le type doc est à exporter vers SF * av.Indexer("Portefeuille", idContratSF, "", "NI"); * }*/ } else { codeRetour = -3; } } if (codeRetour > 0) { FileInfo ff = new FileInfo(fichierPDF); if (!System.IO.Directory.Exists(pathAvCAT + "\\" + di.Name)) { System.IO.Directory.CreateDirectory(pathAvCAT + "\\" + di.Name); } string fichierDest = pathAvCAT + "\\" + di.Name + "\\" + ff.Name; if (System.IO.File.Exists(fichierDest)) { System.IO.File.Delete(fichierPDF); } else { System.IO.File.Move(fichierPDF, fichierDest); } nbDoc++; } else if (codeRetour == 0) { //serviceLog.WriteEntry("Impossible d'insérer en base le document " + nom, EventLogEntryType.Error); RejetAvenant.Ajouter(di.Name, nom, "AjoutAvenant", "Impossible d'insérer le fichier PDF de l'avenant en base de donnée"); } else if (codeRetour == -1) { //serviceLog.WriteEntry("Le type de document " + typeDoc + " n'est pas référencé dans la table de transcodage CAT", EventLogEntryType.Warning); if (!RejetAvenant.Existe(di.Name, nom, "TypeDocument")) { RejetAvenant.Ajouter(di.Name, nom, "TypeDocument", "Le fichier PDF n'est pas référencé dans la table de transcodage de la compagnie"); } } else if (codeRetour == -2) { //log: Doc pas actif ou à effacer System.IO.File.Delete(fichierPDF); } else if (codeRetour == -3) { //serviceLog.WriteEntry("Le numéro du contrat ou le type du document n'est pas renseigné dans le nom du PDF", EventLogEntryType.Error); } } catch (Exception ex) { //serviceLog.WriteEntry("Erreur lors du traitement du PDF: " + ex.Message, EventLogEntryType.Error); } } if (System.IO.Directory.GetFiles(rep, "*.pdf").Count() == 0) { if (GED.Tools.Tools.DirectoryCopy(rep, pathAvCAT + "\\" + di.Name, true)) { try { System.IO.Directory.Delete(rep, true); } catch (Exception ex) { RejetAvenant.Ajouter("Nortia.IntegrationAvenant", "", "Service", "Impossible de suprimer le répertoire " + rep + ": " + ex.Message); } } } } //envoie mail ost OSTCatMailSender(OSTCatMailDT, 42); } catch (Exception ex) { //serviceLog.WriteEntry("Erreur IntegrerCAT(): " + ex.Message, EventLogEntryType.Error); Console.WriteLine(ex.Message); } return(nbDoc); }
public int Ajouter(string cheminFichierPDF, bool envoyerSF = false, string nomFichierNew = "", string entite = "NSAS") { SqlConnection con = null; //SqlTransaction trans=null; //string strSQLMedia = ""; string strSQLAvenant = ""; //SqlCommand cmdMedia = null; SqlCommand cmdAvenant = null; FileStream fs; Byte[] datas; ID_Document = 0; try { string typeAvenantDefaut = "A définir";//ConfigurationManager.AppSettings["TypeAvenantDefaut"]; // lecture du ficheir pdf fs = File.Open(cheminFichierPDF, FileMode.Open, FileAccess.ReadWrite, FileShare.None); if (fs != null) { fs.Position = 0; datas = new BinaryReader(fs).ReadBytes(int.Parse(fs.Length.ToString())); fs.Close(); } else { throw new Exception(); } // nommer le fichier string nomFichier = ""; if (nomFichierNew == "") { nomFichier = Path.GetFileNameWithoutExtension(cheminFichierPDF); } else { nomFichier = nomFichierNew; } // lire le nombre de pages PdfReader pdfReader = new PdfReader(cheminFichierPDF); NbPage = pdfReader.NumberOfPages; pdfReader.Close(); // aller chercher le type de document ICI JE DOIS AGIR ######################### int ID_Type_Document = TypeDocument.GetIDTypeDocumentCompagnie(CodeCompagnie, TypeAvenant, entite); if (ID_Type_Document > 0) //type existant { TypeDocument tpDoc = new TypeDocument(ID_Type_Document, entite); //trans = con.BeginTransaction("GEDAjoutAvenant"); //System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.RequiresNew); //insertion CA_Media Document docAvenant = new Document(); docAvenant.Datas = datas; docAvenant.Extension = ".pdf"; docAvenant.Nom = nomFichier; docAvenant.NbPage = NbPage; docAvenant.ID_Pli = 0; docAvenant.ID_Type_Document = ID_Type_Document; docAvenant.Original = true; docAvenant.VisibleNOL = true; ID_Document = docAvenant.Ajouter(0, entite); if (ID_Document > 0) { DateTime dateAcq = DateTime.Now; //insertion Avenant if (entite == "NSAS") { con = new SqlConnection("data source=192.168.1.2\\SQL2008r2qualif;Database=GEDNortia_Invest;Uid=sa;password=NICKEL2000;"); } else { con = new SqlConnection("data source=192.168.1.2\\SQL2008r2qualif;Database=GEDNortia_Invest;Uid=sa;password=NICKEL2000;"); } con.Open(); strSQLAvenant = "INSERT INTO [Avenant] ([CodeCompagnie],[NumAvenant],[ID_Document],[TypeAvenant],[NumContrat],[CodeApporteur],[NomApporteur],[NomSouscripteur],[DateAvenant],[Visible],ReferenceInterne,[EnvoyerSF],[DateAcquisition],[NumLot])" + " VALUES(@CodeCompagnie,@NumAvenant,@ID_Document,@TypeAvenant,@NumContrat,@CodeApporteur,@NomApporteur,@NomSouscripteur,@DateAvenant,@Visible,@ReferenceInterne,@EnvoyerSF,@DateAcquisition,@NumLot);" + "SELECT CAST(SCOPE_IDENTITY() AS int)"; cmdAvenant = new SqlCommand(strSQLAvenant, con); cmdAvenant.Parameters.AddWithValue("@CodeCompagnie", (object)CodeCompagnie ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@NumAvenant", (object)NumAvenant ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@ID_Document", (object)ID_Document ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@TypeAvenant", (object)TypeAvenant ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@NumContrat", (object)NumContrat ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@CodeApporteur", (object)CodeApporteur ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@NomApporteur", (object)NomApporteur ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@NomSouscripteur", (object)NomSouscripteur ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@DateAvenant", (object)DateAvenant ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@Visible", (object)Actif ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@ReferenceInterne", (object)ReferenceInterne ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@EnvoyerSF", (object)0 ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@DateAcquisition", (object)dateAcq ?? DBNull.Value); cmdAvenant.Parameters.AddWithValue("@NumLot", (object)NumLot ?? DBNull.Value); int ID_Avenant = (Int32)cmdAvenant.ExecuteScalar(); if (ID_Avenant > 0) { if (envoyerSF && tpDoc.EnvoyerSF) { if (entite == "NSAS") { string envSF = ConfigurationManager.AppSettings["EnvironementSF"]; string loginSF = ConfigurationManager.AppSettings["loginSF"]; string mdpSF = ConfigurationManager.AppSettings["mdpSF"]; string nomTypeActe = Avenant.GetNomTypeActe(tpDoc.ID_Type_Document); if (envSF == "DEV") { //identification Tools.wsdl_enterprise_dev.SforceService bdAuth = new Tools.wsdl_enterprise_dev.SforceService(); Tools.wsdl_enterprise_dev.LoginResult lr = bdAuth.login(loginSF, mdpSF); string sIdSF = lr.sessionId; bdAuth.Url = lr.serverUrl; bdAuth.SessionHeaderValue = new Tools.wsdl_enterprise_dev.SessionHeader(); bdAuth.SessionHeaderValue.sessionId = sIdSF; //création de l'objet SF Tools.wsdl_enterprise_dev.sObject[] myObjectArr = new Tools.wsdl_enterprise_dev.sObject[1]; Tools.wsdl_enterprise_dev.Avenant__c avSF = new Tools.wsdl_enterprise_dev.Avenant__c(); avSF.Date_Acquisition__c = dateAcq; avSF.Date_Acquisition__cSpecified = true; avSF.Id_GED__c = ID_Document.ToString(); avSF.Name = nomFichier; if (TypeAvenant == typeAvenantDefaut) { avSF.Type_Acte__c = nomTypeActe; avSF.Type_Document__c = tpDoc.Nom; } myObjectArr[0] = avSF; //envoi de l'objet SF Tools.wsdl_enterprise_dev.SaveResult[] ret = bdAuth.create(myObjectArr); if (ret[0].success) { string strSQLEnvoiSF = "UPDATE dbo.Avenant SET EnvoyerSF=1 WHERE ID_Document=@ID_Document"; SqlCommand cmdEnvoiSF = new SqlCommand(strSQLEnvoiSF, con); cmdEnvoiSF.Parameters.AddWithValue("@ID_Document", (object)ID_Document ?? DBNull.Value); int retour = cmdEnvoiSF.ExecuteNonQuery(); if (retour == 1) { retour = 1;//trans.Commit();scope.Complete(); } else { throw new Exception("Impossible de flaguer l'avenant comme envoyé à SF"); } } else { throw new Exception("Impossible d'envoyer l'avenant à SF"); } } else if (envSF == "QUALIF") { //identification Tools.wsdl_enterprise_qualif.SforceService bdAuth = new Tools.wsdl_enterprise_qualif.SforceService(); Tools.wsdl_enterprise_qualif.LoginResult lr = bdAuth.login(loginSF, mdpSF); string sIdSF = lr.sessionId; bdAuth.Url = lr.serverUrl; bdAuth.SessionHeaderValue = new Tools.wsdl_enterprise_qualif.SessionHeader(); bdAuth.SessionHeaderValue.sessionId = sIdSF; //création de l'objet SF Tools.wsdl_enterprise_qualif.sObject[] myObjectArr = new Tools.wsdl_enterprise_qualif.sObject[1]; Tools.wsdl_enterprise_qualif.Avenant__c avSF = new Tools.wsdl_enterprise_qualif.Avenant__c(); avSF.Date_Acquisition__c = dateAcq; avSF.Date_Acquisition__cSpecified = true; avSF.Id_GED__c = ID_Document.ToString(); avSF.Name = nomFichier; if (TypeAvenant == typeAvenantDefaut) { avSF.Type_Acte__c = nomTypeActe; avSF.Type_Document__c = tpDoc.Nom; } myObjectArr[0] = avSF; //envoi de l'objet SF Tools.wsdl_enterprise_qualif.SaveResult[] ret = bdAuth.create(myObjectArr); if (ret[0].success) { string strSQLEnvoiSF = "UPDATE dbo.Avenant SET EnvoyerSF=1 WHERE ID_Document=@ID_Document"; SqlCommand cmdEnvoiSF = new SqlCommand(strSQLEnvoiSF, con); cmdEnvoiSF.Parameters.AddWithValue("@ID_Document", (object)ID_Document ?? DBNull.Value); int retour = cmdEnvoiSF.ExecuteNonQuery(); if (retour == 1) { retour = 1;//trans.Commit();scope.Complete(); } else { throw new Exception("Impossible de flaguer l'avenant comme envoyé à SF"); } } else { throw new Exception("Impossible d'envoyer l'avenant à SF"); } } else if (envSF == "PROD") { //identification Tools.wsdl_enterprise.SforceService bdAuth = new Tools.wsdl_enterprise.SforceService(); Tools.wsdl_enterprise.LoginResult lr = bdAuth.login(loginSF, mdpSF); string sIdSF = lr.sessionId; bdAuth.Url = lr.serverUrl; bdAuth.SessionHeaderValue = new Tools.wsdl_enterprise.SessionHeader(); bdAuth.SessionHeaderValue.sessionId = sIdSF; //création de l'objet SF Tools.wsdl_enterprise.sObject[] myObjectArr = new Tools.wsdl_enterprise.sObject[1]; Tools.wsdl_enterprise.Avenant__c avSF = new Tools.wsdl_enterprise.Avenant__c(); avSF.Date_Acquisition__c = dateAcq; avSF.Date_Acquisition__cSpecified = true; avSF.Id_GED__c = ID_Document.ToString(); avSF.Name = nomFichier; if (TypeAvenant == typeAvenantDefaut) { avSF.Type_Acte__c = nomTypeActe; avSF.Type_Document__c = tpDoc.Nom; } myObjectArr[0] = avSF; //envoi de l'objet SF Tools.wsdl_enterprise.SaveResult[] ret = bdAuth.create(myObjectArr); if (ret[0].success) { string strSQLEnvoiSF = "UPDATE dbo.Avenant SET EnvoyerSF=1 WHERE ID_Document=@ID_Document"; SqlCommand cmdEnvoiSF = new SqlCommand(strSQLEnvoiSF, con); cmdEnvoiSF.Parameters.AddWithValue("@ID_Document", (object)ID_Document ?? DBNull.Value); int retour = cmdEnvoiSF.ExecuteNonQuery(); if (retour == 1) { retour = 1;//trans.Commit();scope.Complete(); } else { throw new Exception("Impossible de flaguer l'avenant comme envoyé à SF"); } } else { throw new Exception("Impossible d'envoyer l'avenant à SF"); } } } else { string idContratSF = Contrat.FindIdContratSF(NumContrat, entite); if (!string.IsNullOrWhiteSpace(idContratSF)) { Indexer("Portefeuille", idContratSF, "", entite); } } } /*else * scope.Complete();//trans.Commit();*/ } else { throw new Exception("Erreur lors de l'insertion des informations de l'avenant dans la table 'Avenant'"); } } else { throw new Exception("Erreur lors de l'insertion du document dans la table 'CA_MEDIA'"); } } else if (ID_Type_Document == 0)//type non transcodé { ID_Document = -1; } else if (ID_Type_Document == -1)//type à effacer { ID_Document = -2; } else if (ID_Type_Document == -2)//nouveau type { string strSQL = "INSERT INTO [Type_Document_Compagnie] ([CodeCompagnie],[NomType_Comapagnie],[ID_Type_Document])" + " VALUES (@CodeCompagnie,@NomType_Comapagnie,@ID_Type_Document)"; if (entite == "NSAS") { con = new SqlConnection("data source=192.168.1.2\\SQL2008r2qualif;Database=GEDNortia_Invest;Uid=sa;password=NICKEL2000;"); } else { con = new SqlConnection("data source=192.168.1.2\\SQL2008r2qualif;Database=GEDNortia_Invest;Uid=sa;password=NICKEL2000;"); } con.Open(); SqlCommand cmd = new SqlCommand(strSQL, con); cmd.Parameters.AddWithValue("@CodeCompagnie", (object)CodeCompagnie ?? DBNull.Value); cmd.Parameters.AddWithValue("@NomType_Comapagnie", (object)TypeAvenant ?? DBNull.Value); cmd.Parameters.AddWithValue("@ID_Type_Document", (object)0 ?? DBNull.Value); cmd.ExecuteNonQuery(); ID_Document = -1; } } catch (Exception) { ID_Document = 0; /*try * { * if(trans!=null) * trans.Rollback(); * } * catch (Exception exRb) * { * * }*/ } finally { if (con != null) { con.Close(); } } return(ID_Document); }