Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }