コード例 #1
0
        public static ag_upsideo_compte Updatecompte(ag_upsideo_compte compte)
        {
            using (UpsilabEntities context = new UpsilabEntities())
            {
                if (compte.Idfrontcompte <= 0)
                {
                    context.ag_upsideo_compte.AddObject(compte);
                }
                else
                {
                    var comptetoupdate = context.ag_upsideo_compte.Where(c => c.Idfrontcompte == compte.Idfrontcompte).FirstOrDefault();

                    comptetoupdate.designation = compte.designation;
                    comptetoupdate.numcompte = compte.numcompte;
                    comptetoupdate.pea = compte.pea;
                    comptetoupdate.NomTitulaire1 = compte.NomTitulaire1;
                    comptetoupdate.idfrontfournisseur = compte.idfrontfournisseur;
                    comptetoupdate.dds = compte.dds;
                    comptetoupdate.dateacquisition = compte.dateacquisition;
                    comptetoupdate.valeuracquisition = compte.valeuracquisition;
                    comptetoupdate.typecontrat = compte.typecontrat;
                    comptetoupdate.totalcompte = compte.totalcompte;
                    comptetoupdate.fiscalite = compte.fiscalite;
                    //foreach (var propinfo in compte.GetType().GetProperties())
                    //{
                    //    var comptepropertyvalue = propinfo.GetValue(compte, null);
                    //    propinfo.SetValue(comptetoupdate, comptepropertyvalue, null);
                    //}
                }
                context.SaveChanges();
                return compte;
            }
        }
コード例 #2
0
 public static ag_upsideo_compte Addcompte(ag_upsideo_compte compte)
 {
     using (UpsilabEntities context = new UpsilabEntities())
     {
         context.ag_upsideo_compte.AddObject(compte);
         context.SaveChanges();
         return compte;
     }
 }
コード例 #3
0
        public static ag_upsideo_cptrelsupports UpdateFondCapitalRisque(Guid idcgp, ag_upsideo_compte compte, int qte, double prixunitaire)
        {
            using (UpsilabEntities db = new UpsilabEntities())
            {
                var cgp = db.ag_upsideo_cgp.FirstOrDefault(x => x.idcgp == idcgp);
                if (cgp == null)
                    return null;
                db.Connection.Open();
                using (var dbContextTransaction = db.Connection.BeginTransaction())
                {
                    var nomsupport = "Fond capital risque";
                    var referentiel = db.ag_upsideo_referentiel.FirstOrDefault(x => x.nomsupport == nomsupport);
                    ag_upsideo_cptrelsupports cptesupport = null;
                    ag_upsideo_support support = null;
                    try
                    {
                        //
                        //Referentiel
                        //
                        if (referentiel == null)
                        {
                            referentiel = new ag_upsideo_referentiel { nomsupport = nomsupport, idtypesupport = 1, datevl = DateTime.Now, vl = 0 };
                            db.ag_upsideo_referentiel.AddObject(referentiel);
                            db.SaveChanges();
                        }
                        //
                        //Support
                        //
                        support = db.ag_upsideo_support.FirstOrDefault(x =>
                            x.idrefsupport == referentiel.idrefsupport &&
                            x.idcrmcabinet == cgp.idcrmcabinet &&
                            x.idtypesupport == 1 &&
                            x.nomsupport == nomsupport &&
                            x.deleted == "n"
                            );
                        if (support == null)
                        {

                            support = new ag_upsideo_support
                                {
                                    idrefsupport = referentiel.idrefsupport,
                                    idcrmcabinet = cgp.idcrmcabinet,
                                    idtypesupport = 1,
                                    nomsupport = referentiel.nomsupport,
                                    deleted = "n",
                                    datevl = DateTime.Now,
                                    vl = 0,
                                    Performance12mois = 0,
                                    Performance3112 = 0,
                                    Performance60mois = 0,
                                    Vleuro = 0,
                                    Volatilite12mois = 0,
                                    Volatilite60mois = 0
                                };
                            db.ag_upsideo_support.AddObject(support);
                            db.SaveChanges();
                        }

                        //
                        //Compte
                        //
                        if (compte.Idfrontcompte <= 0)
                        {
                            db.ag_upsideo_compte.AddObject(compte);
                        }
                        else
                        {
                            var tmpcompte = db.ag_upsideo_compte.FirstOrDefault(x => x.Idfrontcompte == compte.Idfrontcompte);
                            tmpcompte.designation = compte.designation;
                            tmpcompte.totalcompte = compte.totalcompte;
                            tmpcompte.dds = compte.dds;
                        }
                        db.SaveChanges();
                        //
                        //Support Compte
                        //
                        cptesupport = db.ag_upsideo_cptrelsupports.FirstOrDefault(x => x.Idfrontcompte == compte.Idfrontcompte && x.idfrontsupport ==
                            support.idfrontsupport);
                        if (cptesupport == null)
                        {
                            cptesupport = new ag_upsideo_cptrelsupports
                            {
                                datemaj = DateTime.Now,
                                Idfrontcompte = compte.Idfrontcompte,
                                idfrontsupport = support.idfrontsupport,
                                pru = prixunitaire,
                                qte = qte
                            };
                            db.ag_upsideo_cptrelsupports.AddObject(cptesupport);
                            db.SaveChanges();
                        }
                        else
                        {
                            cptesupport.pru = prixunitaire;
                            cptesupport.qte = qte;
                            db.SaveChanges();
                        }
                        //
                        //
                        //
                        dbContextTransaction.Commit();

                        return cptesupport;

                    }
                    catch (Exception e)
                    {
                        dbContextTransaction.Rollback();
                        Log.Log.AppendException(e);
                        throw new Exception("SavingError");
                    }
                }
            }
        }
        //
        // GET: /AgregInitialiseRevenus/

        public string Index()
        {
            try
            {

                using (UpsilabEntities context = new UpsilabEntities())
                {

                    // liste CustomerProspect
                    List<CustomerProspect> customers = CustomerProspectBL.GetCustomerProspectList(context);

                    Report report = null;
                    Report reportValues = null;
                    Guid idClient = Guid.Empty;
                    List<ReportOptionAttributeValue> listeReportImmoJouissance = null;
                    List<ReportOptionAttributeValue> listeReportImmoRapport = null;
                    List<ReportOptionAttributeValue> listeReportProfessionnel = null;

                    //boucle sur les clients
                    Guid currentAgregClientId = Guid.Empty;
                    foreach (CustomerProspect cp in customers)
                    {
                        //teste si client existe dans agreg si non on ajoute et maj customer -- ou ne rien faire
                        currentAgregClientId = cp.idAgregClient.HasValue ? cp.idAgregClient.Value : Guid.Empty;

                        if (!cp.idAgregClient.HasValue)
                        {
                            ag_upsideo_client agregClientToAdd = new ag_upsideo_client()
                            {
                                idclient = Guid.NewGuid(),
                                idcgp = cp.User1.idAgregCGP.Value,
                                nomclient = cp.User.UserName,
                                prenomclient = cp.User.UserFirstName,
                                adr = cp.Adress,
                                cp = cp.ZipCode,
                                ville = cp.City,
                                titre = cp.Title,
                                ddn = DateTime.Now,
                                deleted = "n"
                            };
                            context.ag_upsideo_client.AddObject(agregClientToAdd);

                            cp.idAgregClient = agregClientToAdd.idclient;
                            currentAgregClientId = agregClientToAdd.idclient;
                        }

                        //------------------
                        //Fournisseur de l'actif : comme il s'agit de données provenant du "Recueil/LAB", mettre "UPSIDEO" comme fournisseur fictif (pour chaque cabinet / etablissement)
                        //Get fournisseur
                        Guid idAgregCabinet = cp.FirmInstitution.ag_upsideo_cabinet.idcrmcabinet;
                        ag_upsideo_fournisseur agregFournisseur = context.ag_upsideo_fournisseur.Where(f => f.idcrmcabinet == cp.FirmInstitution.ag_upsideo_cabinet.idcrmcabinet
                                                                                                  && f.nomfournisseur == Business.Agreg.agupsideocompteBL.FournisseurUpsideo).FirstOrDefault();

                        if (agregFournisseur == null)
                        {
                            agregFournisseur = new ag_upsideo_fournisseur()
                            {
                                idcrmcabinet = idAgregCabinet,
                                nomfournisseur = Business.Agreg.agupsideocompteBL.FournisseurUpsideo,
                                cleAgreg = Business.Agreg.agupsideocompteBL.FournisseurUpsideo.ToLower(),
                                deleted = "n",
                            };

                            //TODO : to delete : normalement à faire lors de la souscription mais garder ce code pour test
                            //Insertion fournisseur avec un autre contexte
                            using (UpsilabEntities dbTemp = new UpsilabEntities())
                            {
                                dbTemp.ag_upsideo_fournisseur.AddObject(agregFournisseur);
                                dbTemp.SaveChanges();
                            }
                        }

                        //------------------

                        // obtenir le dernier repport pour chaque client (customerprospect)
                        report = new Report();
                        report = ReportBL.GetLatestReportByIdCustomerProspect(cp.idCustomer);

                        if (report != null)
                        {

                            //obtenir les donnés de report
                            reportValues = new Report();
                            reportValues = ReportBL.GetReportWithValues(report.idReport);

                            //obtenir ReportOptionAttributeValue
                            // idOptionAttribute = 204 (1. Immobilier de jouissance (résidence principale, résidence secondaire, terrain à bâtir ou non, etc.)
                            // idOptionAttribute = 205 (2. Immobilier de rapport (location, SICAFI, SIR, certificats immobiliers, sociétés immobilières, etc.)
                            // idOptionAttribute = 206 (c) Patrimoine professionnel (parts sociales, clientèle, fonds de commerce), compte courant, compte d’associé)
                            listeReportImmoJouissance = new List<ReportOptionAttributeValue>();
                            listeReportImmoRapport = new List<ReportOptionAttributeValue>();
                            listeReportProfessionnel = new List<ReportOptionAttributeValue>();

                            if (reportValues.ReportOptionAttributeValue != null && reportValues.ReportOptionAttributeValue.Count > 0)
                            {
                                listeReportImmoJouissance = reportValues.ReportOptionAttributeValue.Where(r => r.idOptionAttribute == 204).ToList();
                                listeReportImmoRapport = reportValues.ReportOptionAttributeValue.Where(r => r.idOptionAttribute == 205).ToList();
                                listeReportProfessionnel = reportValues.ReportOptionAttributeValue.Where(r => r.idOptionAttribute == 206).ToList();

                                dynamic customData = null;
                                string numcompteFictif = string.Empty;
                                int ligneImmoJ = 0;
                                int ligneImmoR = 0;
                                int lignePro = 0;

                                foreach (ReportOptionAttributeValue roav in listeReportImmoJouissance)
                                {
                                    //les valeur dans receuil lab
                                    customData = roav.CustomObjectValue;
                                    //clé de maj pour les revenus dans la table ag_upsideo_compte
                                    numcompteFictif = string.Format("{0}_{1}", roav.idOptionAttribute.ToString(), ligneImmoJ.ToString());
                                    //pour tester les revenus
                                    if (customData.Values["Description"] != null && customData.Values["Description"] != "")
                                    {
                                        //teste si existe déjà (maj) si no new
                                        ag_upsideo_compte currentCompte = context.ag_upsideo_compte.Where(c => c.idclient == currentAgregClientId && c.numcompte == numcompteFictif).FirstOrDefault();
                                        //update
                                        if (currentCompte != null)
                                        {
                                            currentCompte.designation = customData.Values["Description"];
                                            currentCompte.dateacquisition = customData.Values["AcquisitionDate"] != "" ? Convert.ToDateTime(customData.Values["AcquisitionDate"]) : null;
                                            currentCompte.valeuracquisition = customData.Values["AcquisitionValue"] != "" ? Convert.ToDouble(customData.Values["AcquisitionValue"]) : null;
                                            currentCompte.totalcompte = customData.Values["CurrentValue"] != "" ? Convert.ToDouble(customData.Values["CurrentValue"]) : null;
                                            currentCompte.idfrontfournisseur = agregFournisseur.idfrontfournisseur;
                                            currentCompte.type = "n"; //non gere


                                        }
                                        //new
                                        else
                                        {
                                            currentCompte = new ag_upsideo_compte()
                                            {
                                                idclient = currentAgregClientId,
                                                idcgp = cp.User1.idAgregCGP.Value,
                                                idfrontfournisseur = agregFournisseur.idfrontfournisseur,
                                                numcompte = numcompteFictif,
                                                typecontrat = "bien immobilier",
                                                deleted = "n",

                                                designation = customData.Values["Description"],
                                                dateacquisition = customData.Values["AcquisitionDate"] != "" ? Convert.ToDateTime(customData.Values["AcquisitionDate"]) : null,
                                                valeuracquisition = customData.Values["AcquisitionValue"] != "" ? Convert.ToDouble(customData.Values["AcquisitionValue"]) : null,
                                                totalcompte = customData.Values["CurrentValue"] != "" ? Convert.ToDouble(customData.Values["CurrentValue"]) : null,

                                                type = "n", //non gere

                                            };
                                            context.ag_upsideo_compte.AddObject(currentCompte);
                                        }
                                    }
                                    ligneImmoJ = ligneImmoJ + 1;
                                }

                                foreach (ReportOptionAttributeValue roav in listeReportImmoRapport)
                                {
                                    customData = roav.CustomObjectValue;
                                    numcompteFictif = string.Format("{0}_{1}", roav.idOptionAttribute.ToString(), ligneImmoR.ToString());
                                    //pour tester les revenus
                                    if (customData.Values["Description"] != null && customData.Values["Description"] != "")
                                    {
                                        //teste si existe déjà (maj) si no new
                                        ag_upsideo_compte currentCompte = context.ag_upsideo_compte.Where(c => c.idclient == currentAgregClientId && c.numcompte == numcompteFictif).FirstOrDefault();
                                        if (currentCompte != null)
                                        {
                                            currentCompte.designation = customData.Values["Description"];
                                            currentCompte.dateacquisition = customData.Values["AcquisitionDate"] != "" ? Convert.ToDateTime(customData.Values["AcquisitionDate"]) : null;
                                            currentCompte.valeuracquisition = customData.Values["AcquisitionValue"] != "" ? Convert.ToDouble(customData.Values["AcquisitionValue"]) : null;
                                            currentCompte.totalcompte = customData.Values["CurrentValue"] != "" ? Convert.ToDouble(customData.Values["CurrentValue"]) : null;
                                            currentCompte.idfrontfournisseur = agregFournisseur.idfrontfournisseur;
                                            currentCompte.type = "n"; //non gere
                                        }
                                        else
                                        {
                                            currentCompte = new ag_upsideo_compte()
                                            {
                                                idclient = currentAgregClientId,
                                                idcgp = cp.User1.idAgregCGP.Value,
                                                idfrontfournisseur = agregFournisseur.idfrontfournisseur,
                                                numcompte = numcompteFictif,
                                                typecontrat = "bien immobilier",
                                                deleted = "n",

                                                designation = customData.Values["Description"],
                                                dateacquisition = customData.Values["AcquisitionDate"] != "" ? Convert.ToDateTime(customData.Values["AcquisitionDate"]) : null,
                                                valeuracquisition = customData.Values["AcquisitionValue"] != "" ? Convert.ToDouble(customData.Values["AcquisitionValue"]) : null,
                                                totalcompte = customData.Values["CurrentValue"] != "" ? Convert.ToDouble(customData.Values["CurrentValue"]) : null,

                                                type = "n", //non gere
                                            };
                                            context.ag_upsideo_compte.AddObject(currentCompte);
                                        }
                                    }
                                    ligneImmoR = ligneImmoR + 1;
                                }

                                foreach (ReportOptionAttributeValue roav in listeReportProfessionnel)
                                {
                                    customData = roav.CustomObjectValue;
                                    numcompteFictif = string.Format("{0}_{1}", roav.idOptionAttribute.ToString(), lignePro.ToString());
                                    //pour tester les revenus
                                    if (customData.Values["Description"] != null && customData.Values["Description"] != "")
                                    {
                                        double capital = 0;
                                        double.TryParse(customData.Values["OwnedCapital"], out capital);

                                        //teste si existe déjà (maj) si no new
                                        ag_upsideo_compte currentCompte = context.ag_upsideo_compte.Where(c => c.idclient == currentAgregClientId && c.numcompte == numcompteFictif).FirstOrDefault();

                                        if (currentCompte != null)
                                        {
                                            currentCompte.designation = customData.Values["Description"];
                                            currentCompte.totalcompte = customData.Values["OwnedCapital"] != "" ? capital : (double?)null;
                                            currentCompte.idfrontfournisseur = agregFournisseur.idfrontfournisseur;
                                            currentCompte.type = "n"; //non gere
                                        }
                                        else
                                        {
                                            currentCompte = new ag_upsideo_compte()
                                            {
                                                idclient = currentAgregClientId,
                                                idcgp = cp.User1.idAgregCGP.Value,
                                                idfrontfournisseur = agregFournisseur.idfrontfournisseur,
                                                numcompte = numcompteFictif,
                                                typecontrat = "professionels",
                                                deleted = "n",

                                                designation = customData.Values["Description"],
                                                totalcompte = customData.Values["OwnedCapital"] != "" ? capital : (double?)null,

                                                type = "n", //non gere
                                            };
                                            context.ag_upsideo_compte.AddObject(currentCompte);
                                        }
                                    }
                                    lignePro = lignePro + 1;
                                }

                            }

                        }


                    }

                    context.SaveChanges();
                }

            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
                return "Erreur : " + ex.Message;
            }
            
            return "OK";
        }
コード例 #5
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="reportIdDest"></param>
        /// <param name="lstReportOptionValuesSource"></param>
        public static int SaveReportOptionValue(Guid idReport, Upsilab.Data.Model.Option option, int idOptionAttribute, string value, string fieldType, string colomnName, int? lineNumber)
        {
            ReportOptionAttributeValue optionAttributeValue2 = null;
            int idOption = option.idOption;
            bool updateDateUpdated = false;
            string completedStatus = Report.ReportBL.Status.Completed.ToString();
            string waitingForClientUpdateStatus = Report.ReportBL.Status.WaitingForClientUpdate.ToString();

            //Insert new OptionValue
            using (UpsilabEntities db = new UpsilabEntities())
            {
                //Get current report
                Data.Model.Report report = (from rep in db.Report
                                            where rep.idReport == idReport
                                            select rep).FirstOrDefault();

                //Check if customer has completed report
                var checkCompletedReport = (from rep in db.Report
                                            where rep.CustomerProspect.idCustomer == report.CustomerProspect.idCustomer
                                                  && rep.Status == completedStatus
                                            select rep).FirstOrDefault();

                if (checkCompletedReport != null)
                {
                    updateDateUpdated = true;
                }

                //#9262 : Check if customer changes the info after Adviser request
                if (!updateDateUpdated)
                {
                    if (report.Status == waitingForClientUpdateStatus && SessionManager.GetUserSession().IsEndUser())
                    {
                        updateDateUpdated = true;
                    }
                }

                #region TEXTBOX, DROPDOWN : txt, dt, enum
                //1- Save option attribute value (simple textbox / textarea)
                if (fieldType == "txt" || fieldType == "dt" || fieldType == "enum")
                {
                    ReportOptionAttributeValue optionAttributeValue = (from roav in db.ReportOptionAttributeValue.Include("ReportOptionValue")
                                                                       where roav.idReport == idReport && roav.idOptionAttribute == idOptionAttribute
                                                                       select roav).FirstOrDefault();

                    if (optionAttributeValue != null)
                    {
                        if (optionAttributeValue.Value != value) //update if not equal
                        {
                            optionAttributeValue.Value = value;
                            optionAttributeValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;

                            optionAttributeValue.ReportOptionValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;
                        }
                        else
                        {
                            //Do nothing if equal
                        }
                        optionAttributeValue2 = optionAttributeValue;
                    }
                    else if (!string.IsNullOrEmpty(value)) //Insert if value is not empty
                    {
                        //Check if reportOptionValue exists
                        ReportOptionValue optionValue = (from rov in db.ReportOptionValue
                                                         where rov.idReport == idReport && rov.idOption == idOption
                                                         select rov).FirstOrDefault();

                        if (optionValue == null) //insert option value
                        {
                            optionValue = new ReportOptionValue()
                            {
                                idReport = idReport,
                                idOption = idOption,
                                Value = string.Empty,
                                DateCreated = DateTime.Now,
                                DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                            };

                            //Add ReportOptionValue to DB : don't save yet
                            db.ReportOptionValue.AddObject(optionValue);

                            //Insert parent
                            while (option.idParent.HasValue)
                            {
                                ReportOptionValue optionParentValue = (from rov in db.ReportOptionValue.Include("Option")
                                                                       where rov.idReport == idReport && rov.idOption == option.idParent
                                                                       select rov).FirstOrDefault();

                                if (optionParentValue == null)
                                {
                                    optionParentValue = new ReportOptionValue()
                                    {
                                        idReport = idReport,
                                        idOption = option.idParent.Value,
                                        Value = string.Empty,
                                        DateCreated = DateTime.Now,
                                        DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                                    };

                                    //Add ReportOptionValue to DB : don't save yet
                                    db.ReportOptionValue.AddObject(optionParentValue);

                                    //Check if this parent option has already parent ?
                                    option = optionParentValue.Option;
                                }
                                else
                                {
                                    optionParentValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;
                                    break;
                                }
                            }
                        }

                        //Insert optionattrubutevalue
                        ReportOptionAttributeValue newReportOptionAttributeValue = new ReportOptionAttributeValue()
                        {
                            idReport = idReport,
                            idOptionAttribute = idOptionAttribute,
                            idReportOptionValue = optionValue.idReportOptionValue,
                            Value = value,
                            DateCreated = DateTime.Now,
                            DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                        };

                        //Add ReportOptionAttributeValue to DB : don't save yet
                        optionValue.ReportOptionAttributeValue.Add(newReportOptionAttributeValue);
                        optionAttributeValue2 = newReportOptionAttributeValue;
                    }
                }
                #endregion

                #region RADIO BUTTON : rb
                //2- Save option attribute value (Radio button)
                else if (fieldType == "rb")
                {
                    //Delete old rb
                    IList<ReportOptionValue> optionValues = (from rov in db.ReportOptionValue.Include("ReportOptionAttributeValue")
                                                             where rov.idReport == idReport && rov.Option.idParent == option.idParent
                                                             select rov).ToList();

                    //Delete option attribute values attached to option value
                    if (optionValues != null)
                    {
                        foreach (var optionValue in optionValues)
                        {
                            IList<ReportOptionAttributeValue> lstOptionAttributeValues = new List<ReportOptionAttributeValue>(optionValue.ReportOptionAttributeValue);
                            foreach (var item in lstOptionAttributeValues)
                            {
                                var optionAttrValueToBeDel = optionValue.ReportOptionAttributeValue.Where(oa => oa.idReportOptionAttributeValue == item.idReportOptionAttributeValue).FirstOrDefault();
                                db.ReportOptionAttributeValue.DeleteObject(optionAttrValueToBeDel);
                            }

                            db.ReportOptionValue.DeleteObject(optionValue);

                            //Delete child option value
                            IList<ReportOptionValue> lstOptionValuesChild = (from rov in db.ReportOptionValue.Include("ReportOptionAttributeValue")
                                                                             where rov.idReport == idReport && rov.Option.idParent == optionValue.idOption
                                                                             select rov).ToList();

                            if (lstOptionValuesChild != null)
                            {
                                foreach (var optionValueChild in lstOptionValuesChild)
                                {
                                    lstOptionAttributeValues = new List<ReportOptionAttributeValue>(optionValueChild.ReportOptionAttributeValue);
                                    foreach (var item in lstOptionAttributeValues)
                                    {
                                        var optionAttrValueToBeDel = optionValueChild.ReportOptionAttributeValue.Where(oa => oa.idReportOptionAttributeValue == item.idReportOptionAttributeValue).FirstOrDefault();
                                        db.ReportOptionAttributeValue.DeleteObject(optionAttrValueToBeDel);
                                    }

                                    db.ReportOptionValue.DeleteObject(optionValueChild);
                                }
                            }
                        }

                    }

                    if (!string.IsNullOrEmpty(value) && value.ToLower() == "true")
                    {
                        //Insert new rb
                        ReportOptionValue newOptionValue = new ReportOptionValue()
                        {
                            idReport = idReport,
                            idOption = idOption,
                            Value = string.Empty,
                            DateCreated = DateTime.Now,
                            DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                        };

                        //Add ReportOptionValue to DB : don't save yet
                        db.ReportOptionValue.AddObject(newOptionValue);

                        //Insert parent ??
                        while (option.idParent.HasValue)
                        {
                            ReportOptionValue optionParentValue = (from rov in db.ReportOptionValue.Include("Option")
                                                                   where rov.idReport == idReport && rov.idOption == option.idParent
                                                                   select rov).FirstOrDefault();

                            if (optionParentValue == null)
                            {
                                optionParentValue = new ReportOptionValue()
                                {
                                    idReport = idReport,
                                    idOption = option.idParent.Value,
                                    Value = string.Empty,
                                    DateCreated = DateTime.Now,
                                    DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                                };

                                //Add ReportOptionValue to DB : don't save yet
                                db.ReportOptionValue.AddObject(optionParentValue);

                                //Check if this parent option has already parent ?
                                option = optionParentValue.Option;
                            }
                            else
                            {
                                optionParentValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;
                                break;
                            }
                        }


                    
                    }
                }
                #endregion

                #region CHECKBOX : chk
                //3- Save option attribute value (Checkbox)
                else if (fieldType == "chk")
                {
                    ReportOptionValue optionValue;

                    if (value == "false")
                    {
                        //Delete old chk
                        optionValue = (from rov in db.ReportOptionValue.Include("ReportOptionAttributeValue")
                                       where rov.idReport == idReport && rov.idOption == idOption
                                       select rov).FirstOrDefault();

                        //Delete option attribute values attached to option value
                        if (optionValue != null)
                        {
                            IList<ReportOptionAttributeValue> lstOptionAttributeValues = new List<ReportOptionAttributeValue>(optionValue.ReportOptionAttributeValue);
                            foreach (var item in lstOptionAttributeValues)
                            {
                                var optionAttrValueToBeDel = optionValue.ReportOptionAttributeValue.Where(oa => oa.idReportOptionAttributeValue == item.idReportOptionAttributeValue).FirstOrDefault();
                                db.ReportOptionAttributeValue.DeleteObject(optionAttrValueToBeDel);
                            }

                            db.ReportOptionValue.DeleteObject(optionValue);

                            //Delete child option value
                            IList<ReportOptionValue> lstOptionValuesChild = (from rov in db.ReportOptionValue.Include("ReportOptionAttributeValue")
                                                                             where rov.idReport == idReport && rov.Option.idParent == optionValue.idOption
                                                                             select rov).ToList();

                            if (lstOptionValuesChild != null)
                            {
                                foreach (var optionValueChild in lstOptionValuesChild)
                                {
                                    lstOptionAttributeValues = new List<ReportOptionAttributeValue>(optionValueChild.ReportOptionAttributeValue);
                                    foreach (var item in lstOptionAttributeValues)
                                    {
                                        var optionAttrValueToBeDel = optionValueChild.ReportOptionAttributeValue.Where(oa => oa.idReportOptionAttributeValue == item.idReportOptionAttributeValue).FirstOrDefault();
                                        db.ReportOptionAttributeValue.DeleteObject(optionAttrValueToBeDel);
                                    }

                                    db.ReportOptionValue.DeleteObject(optionValueChild);
                                }
                            }
                        }
                    }
                    else if (value == "true")
                    {
                        //Insert new chk
                        optionValue = new ReportOptionValue()
                        {
                            idReport = idReport,
                            idOption = idOption,
                            Value = string.Empty,
                            DateCreated = DateTime.Now,
                            DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                        };

                        //Add ReportOptionValue to DB : don't save yet
                        db.ReportOptionValue.AddObject(optionValue);

                        //Insert parent ??
                        while (option.idParent.HasValue)
                        {
                            ReportOptionValue optionParentValue = (from rov in db.ReportOptionValue.Include("Option")
                                                                   where rov.idReport == idReport && rov.idOption == option.idParent
                                                                   select rov).FirstOrDefault();

                            if (optionParentValue == null)
                            {
                                optionParentValue = new ReportOptionValue()
                                {
                                    idReport = idReport,
                                    idOption = option.idParent.Value,
                                    Value = string.Empty,
                                    DateCreated = DateTime.Now,
                                    DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                                };

                                //Add ReportOptionValue to DB : don't save yet
                                db.ReportOptionValue.AddObject(optionParentValue);

                                //Check if this parent option has already parent ?
                                option = optionParentValue.Option;
                            }
                            else
                            {
                                optionParentValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;
                                break;
                            }
                        }
                    }
                }
                #endregion

                #region CUSTOM DATATYPE
                //4- Custom datatype
                else
                {
                    //pour agreg
                    ReportOptionAttributeValue agregOptionAttributeValue = null;
                    //

                    ReportOptionValue optionValue = (from rov in db.ReportOptionValue.Include("ReportOptionAttributeValue")
                                                     where rov.idReport == idReport && rov.idOption == idOption
                                                     select rov).FirstOrDefault();

                    IList<ReportOptionAttributeValue> lstOptionAttributeValues = new List<ReportOptionAttributeValue>();

                    //Option value ?
                    if (optionValue != null)
                    {
                        lstOptionAttributeValues = new List<ReportOptionAttributeValue>(optionValue.ReportOptionAttributeValue);
                        lstOptionAttributeValues = lstOptionAttributeValues.Where(oav => oav.idOptionAttribute == idOptionAttribute).ToList();
                    }
                    else if (!string.IsNullOrEmpty(value))
                    {
                        optionValue = new ReportOptionValue()
                        {
                            idReport = idReport,
                            idOption = idOption,
                            Value = string.Empty,
                            DateCreated = DateTime.Now,
                            DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                        };

                        //Add ReportOptionValue to DB : don't save yet
                        db.ReportOptionValue.AddObject(optionValue);

                        //Insert parent
                        while (option.idParent.HasValue)
                        {
                            ReportOptionValue optionParentValue = (from rov in db.ReportOptionValue.Include("Option")
                                                                   where rov.idReport == idReport && rov.idOption == option.idParent
                                                                   select rov).FirstOrDefault();

                            if (optionParentValue == null)
                            {
                                optionParentValue = new ReportOptionValue()
                                {
                                    idReport = idReport,
                                    idOption = option.idParent.Value,
                                    Value = string.Empty,
                                    DateCreated = DateTime.Now,
                                    DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                                };

                                //Add ReportOptionValue to DB : don't save yet
                                db.ReportOptionValue.AddObject(optionParentValue);

                                //Check if this parent option has already parent ?
                                option = optionParentValue.Option;
                            }
                            else
                            {
                                optionParentValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;
                                break;
                            }
                        }
                    }

                    //Get target option attribute
                    if (lineNumber.HasValue && lineNumber.Value < lstOptionAttributeValues.Count)
                    {
                        //Line already in database
                        ReportOptionAttributeValue reportOptionAttrValue = lstOptionAttributeValues[lineNumber.Value];
                        dynamic customData = reportOptionAttrValue.CustomObjectValue;

                        if (customData != null)
                        {
                            bool isTheSameValue = CustomObject.IsTheSameValue(customData, colomnName, value);

                            if (!isTheSameValue)
                            {
                                CustomObject.SetValueByPropertyName(customData, colomnName, value);
                                reportOptionAttrValue.CustomObjectValue = customData;
                                reportOptionAttrValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;

                                reportOptionAttrValue.ReportOptionValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;

                                //pour agreg
                                agregOptionAttributeValue = reportOptionAttrValue;
                                //
                            }
                        }
                        optionAttributeValue2 = reportOptionAttrValue;

                    }
                    else
                    {
                        //Get Custom datatype columns
                        List<string> customAttribute = OptionBL.GetCustomAttributeNames(fieldType);

                        if (customAttribute.Count > 0)
                        {
                            dynamic customData = new Upsilab.Data.Model.CustomObject();
                            dynamic customDataEmpty = new Upsilab.Data.Model.CustomObject();

                            foreach (string itemColumnName in customAttribute)
                            {
                                string _strVal = string.Empty;

                                if (itemColumnName == colomnName)
                                {
                                    _strVal = value;
                                }
                                CustomObject.SetValueByPropertyName(customData, itemColumnName, _strVal);
                                CustomObject.SetValueByPropertyName(customDataEmpty, itemColumnName, string.Empty);
                            }

                            ReportOptionAttributeValue optionAttributeValue = null;
                            bool createOptionAttr = true;
                            if (!lineNumber.HasValue && lstOptionAttributeValues.Count > 0)
                            {
                                createOptionAttr = false;
                                optionAttributeValue = optionValue.ReportOptionAttributeValue.Where(oav => oav.idOptionAttribute == idOptionAttribute).FirstOrDefault();
                                optionAttributeValue2 = optionAttributeValue;
                            }
                            else if (lineNumber.HasValue)
                            {
                                //Create empty lines
                               // while (lstOptionAttributeValues.Count < lineNumber.Value)
                                {
                                    optionAttributeValue = new ReportOptionAttributeValue()
                                    {
                                        idReport = idReport,
                                        idOptionAttribute = idOptionAttribute,
                                        idReportOptionValue = optionValue.idReportOptionValue,
                                        DateCreated = DateTime.Now,
                                        DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                                    };

                                    optionAttributeValue.CustomObjectValue = customDataEmpty;

                                    lstOptionAttributeValues.Add(optionAttributeValue);
                                    optionValue.ReportOptionAttributeValue.Add(optionAttributeValue);
                                }
                            }

                            //if (optionAttributeValue == null)
                            if (createOptionAttr)
                            {
                                //Add new line
                                //Insert optionattrubutevalue
                                optionAttributeValue = new ReportOptionAttributeValue()
                                {
                                    idReport = idReport,
                                    idOptionAttribute = idOptionAttribute,
                                    idReportOptionValue = optionValue.idReportOptionValue,
                                    DateCreated = DateTime.Now,
                                    DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null
                                };

                                optionAttributeValue.CustomObjectValue = customData;

                                //pour agreg
                                agregOptionAttributeValue = optionAttributeValue;
                                optionAttributeValue2 = agregOptionAttributeValue;
                                //
                            }
                            else
                            {
                                customData = optionAttributeValue.CustomObjectValue;

                                if (customData != null)
                                {
                                    bool isTheSameValue = CustomObject.IsTheSameValue(customData, colomnName, value);

                                    if (!isTheSameValue)
                                    {
                                        CustomObject.SetValueByPropertyName(customData, colomnName, value);
                                        optionAttributeValue.CustomObjectValue = customData;
                                        optionAttributeValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;

                                        optionAttributeValue.ReportOptionValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null;
                                        //pour agreg
                                        agregOptionAttributeValue = optionAttributeValue;
                                        //
                                    }
                                }
                            }

                            //Add ReportOptionAttributeValue to DB : don't save yet
                            optionValue.ReportOptionAttributeValue.Add(optionAttributeValue);
                            optionAttributeValue2 = optionAttributeValue;
                        }
                    }

                    #region Save patrimoine from Recueil/lab to Agregateur
                    //update/add ag_upsideo_compte
                    //if (report.CustomerProspect.User1.idLicenseAgreg.HasValue && report.CustomerProspect.User1.idAgregCGP.HasValue
                    //    && (idOptionAttribute == 204 || idOptionAttribute == 205 || idOptionAttribute == 206)
                    //    && report.CustomerProspect.FirmInstitution.ag_upsideo_cabinet != null)
                    if (report.CustomerProspect.User1.HasAggregatorLicense() && report.CustomerProspect.User1.idAgregCGP.HasValue
                        && (idOptionAttribute == 204 || idOptionAttribute == 205 || idOptionAttribute == 206)
                        && report.CustomerProspect.FirmInstitution.ag_upsideo_cabinet != null)
                    {
                        //Les ids en cours : agregCabinet, agregCGP et agregClient
                        Guid idAgregCGP = report.CustomerProspect.User1.idAgregCGP.Value;
                        Guid idAgregCabinet = report.CustomerProspect.FirmInstitution.ag_upsideo_cabinet.idcrmcabinet;
                        Guid currentAgregClientId = Guid.Empty;

                        if (report.CustomerProspect.idAgregClient.HasValue)
                        {
                            currentAgregClientId = report.CustomerProspect.idAgregClient.Value;
                        }
                        else
                        {
                            ag_upsideo_client clientAgregToAdd = new ag_upsideo_client()
                            {
                                idclient = Guid.NewGuid(),
                                idcgp = idAgregCGP,
                                nomclient = report.CustomerProspect.User.UserName,
                                prenomclient = report.CustomerProspect.User.UserFirstName,
                                adr = report.CustomerProspect.Adress,
                                cp = report.CustomerProspect.ZipCode,
                                ville = report.CustomerProspect.City,
                                titre = report.CustomerProspect.Title,
                                ddn = DateTime.Now,
                                deleted = "n"
                            };

                            db.ag_upsideo_client.AddObject(clientAgregToAdd);

                            report.CustomerProspect.idAgregClient = clientAgregToAdd.idclient;
                            currentAgregClientId = clientAgregToAdd.idclient;
                        }

                        //Fournisseur de l'actif : comme il s'agit de données provenant du "Recueil/LAB", mettre "UPSIDEO" comme fournisseur fictif (pour chaque cabinet / etablissement)
                        //Get fournisseur
                        ag_upsideo_fournisseur agregFournisseur = db.ag_upsideo_fournisseur.Where(f => f.idcrmcabinet == report.CustomerProspect.FirmInstitution.ag_upsideo_cabinet.idcrmcabinet
                                                                                                  && f.nomfournisseur == Business.Agreg.agupsideocompteBL.FournisseurUpsideo).FirstOrDefault();

                        if (agregFournisseur == null)
                        {
                            agregFournisseur = new ag_upsideo_fournisseur()
                            {
                                idcrmcabinet = idAgregCabinet,
                                nomfournisseur = Business.Agreg.agupsideocompteBL.FournisseurUpsideo,
                                cleAgreg = Business.Agreg.agupsideocompteBL.FournisseurUpsideo.ToLower(),
                                deleted = "n",
                            };

                            //TODO : to delete : normalement à faire lors de la souscription mais garder ce code pour test
                            //Insertion fournisseur avec un autre contexte
                            using (UpsilabEntities dbTemp = new UpsilabEntities())
                            {
                                dbTemp.ag_upsideo_fournisseur.AddObject(agregFournisseur);
                                dbTemp.SaveChanges();
                            }
                        }

                        //num compte fictif dans table compte Agreg
                        string numCompteFictif = string.Empty;
                        numCompteFictif = string.Format("{0}_{1}", idOptionAttribute.ToString(), lineNumber.Value.ToString());

                        //teste si existe déjà (maj) si no new
                        ag_upsideo_compte currentCompte = db.ag_upsideo_compte.Where(c => c.idclient == currentAgregClientId && c.numcompte == numCompteFictif).FirstOrDefault();

                        //maj
                        if (currentCompte != null && agregOptionAttributeValue != null)
                        {
                            switch (idOptionAttribute)
                            {
                                case 204:
                                case 205:
                                    {
                                        currentCompte.designation = agregOptionAttributeValue.CustomObjectValue.Values["Description"];
                                        currentCompte.dateacquisition = agregOptionAttributeValue.CustomObjectValue.Values["AcquisitionDate"] != "" ? Convert.ToDateTime(agregOptionAttributeValue.CustomObjectValue.Values["AcquisitionDate"]) : null;
                                        currentCompte.valeuracquisition = agregOptionAttributeValue.CustomObjectValue.Values["AcquisitionValue"] != "" ? Convert.ToDouble(agregOptionAttributeValue.CustomObjectValue.Values["AcquisitionValue"]) : null;
                                        currentCompte.totalcompte = agregOptionAttributeValue.CustomObjectValue.Values["CurrentValue"] != "" ? Convert.ToDouble(agregOptionAttributeValue.CustomObjectValue.Values["CurrentValue"]) : null;
                                        currentCompte.idfrontfournisseur = agregFournisseur.idfrontfournisseur;
                                        currentCompte.type = "n"; //pour l'instant : non géré
                                    }
                                    break;
                                case 206:
                                    currentCompte.designation = agregOptionAttributeValue.CustomObjectValue.Values["Description"];
                                    currentCompte.totalcompte = agregOptionAttributeValue.CustomObjectValue.Values["OwnedCapital"] != "" ? Convert.ToDouble(agregOptionAttributeValue.CustomObjectValue.Values["OwnedCapital"]) : null;
                                    currentCompte.idfrontfournisseur = agregFournisseur.idfrontfournisseur;
                                    currentCompte.type = "n"; //pour l'instant : non géré
                                    break;
                                default:
                                    break;

                            }
                        }
                        //new
                        else if (currentCompte == null && agregOptionAttributeValue != null)
                        {
                            switch (idOptionAttribute)
                            {
                                case 204:
                                case 205:
                                    {
                                        currentCompte = new ag_upsideo_compte()
                                        {
                                            idclient = currentAgregClientId,
                                            idcgp = report.CustomerProspect.User1.idAgregCGP.Value,
                                            idfrontfournisseur = agregFournisseur.idfrontfournisseur,
                                            numcompte = numCompteFictif,
                                            typecontrat = "bien immobilier",
                                            deleted = "n",

                                            designation = agregOptionAttributeValue.CustomObjectValue.Values["Description"],
                                            dateacquisition = agregOptionAttributeValue.CustomObjectValue.Values["AcquisitionDate"] != "" ? Convert.ToDateTime(agregOptionAttributeValue.CustomObjectValue.Values["AcquisitionDate"]) : null,
                                            valeuracquisition = agregOptionAttributeValue.CustomObjectValue.Values["AcquisitionValue"] != "" ? Convert.ToDouble(agregOptionAttributeValue.CustomObjectValue.Values["AcquisitionValue"]) : null,
                                            totalcompte = agregOptionAttributeValue.CustomObjectValue.Values["CurrentValue"] != "" ? Convert.ToDouble(agregOptionAttributeValue.CustomObjectValue.Values["CurrentValue"]) : null
                                        };
                                        if (!string.IsNullOrEmpty(agregOptionAttributeValue.CustomObjectValue.Values["Description"]))
                                        {
                                            db.ag_upsideo_compte.AddObject(currentCompte);
                                        }

                                    }
                                    break;

                                case 206:
                                    {
                                        currentCompte = new ag_upsideo_compte()
                                        {
                                            idclient = currentAgregClientId,
                                            idcgp = report.CustomerProspect.User1.idAgregCGP.Value,
                                            idfrontfournisseur = agregFournisseur.idfrontfournisseur,
                                            numcompte = numCompteFictif,
                                            typecontrat = "professionels",
                                            deleted = "n",

                                            designation = agregOptionAttributeValue.CustomObjectValue.Values["Description"],
                                            totalcompte = agregOptionAttributeValue.CustomObjectValue.Values["OwnedCapital"] != "" ? Convert.ToDouble(agregOptionAttributeValue.CustomObjectValue.Values["OwnedCapital"]) : null

                                        };
                                        if (!string.IsNullOrEmpty(agregOptionAttributeValue.CustomObjectValue.Values["Description"]))
                                        {
                                            db.ag_upsideo_compte.AddObject(currentCompte);
                                        }
                                    }
                                    break;
                                default:
                                    break;

                            }
                        }
                    }
                    #endregion


                }
                #endregion

                #region Report
                //5- Update dateupdated report               
                report.DateUpdated = DateTime.Now;
                #endregion

                //6- Commit all changes here
                db.SaveChanges();
                return optionAttributeValue2!=null ? optionAttributeValue2.idReportOptionAttributeValue : 0;
            }
        }
コード例 #6
0
        public ActionResult UpdateCompte(string jsondata)
        {
            var compteeditvm = new JavaScriptSerializer().Deserialize<AgregCompteEditVM>(jsondata);

            Guid idClient = Guid.Empty;
            SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient);
            Guid idCgpAgreg = Guid.Empty;
            User currentUser = SessionManager.GetUserSession();
            if (currentUser.IsEndUser())
            {
                CustomerProspect currentCustomer = SessionManager.GetCustomerProspectSession();
                User currenttUserCreated = currentCustomer.User1;
                idCgpAgreg = currenttUserCreated.idAgregCGP.Value;
            }
            else
            {
                idCgpAgreg = currentUser.idAgregCGP.Value;
            }
            ag_upsideo_compte comptedb = null;
            var agregcompte = new AgregCompteViewModel();
            List<SqlAgregCompteModel> lstCompte = null;
            
            try
            {
                if (compteeditvm.Idfrontcompte <= 0)
                {
                    comptedb = new ag_upsideo_compte();
                    comptedb.idclient = idClient;
                    comptedb.idcgp = idCgpAgreg;
                    comptedb.deleted = "n";
                }
                else
                {
                    comptedb = agupsideocompteBL.GetComptesByIdCompte(compteeditvm.Idfrontcompte);
                }
                //
                //
                //
                comptedb.typecontrat = compteeditvm.typecontrat;
                comptedb.Idfrontcompte = compteeditvm.Idfrontcompte;
                comptedb.type = "o";

                if (compteeditvm.typecontrat.ToLower() == agupsideocompteBL.comptetitrespea.ToLower() ||
                    compteeditvm.typecontrat.ToLower() == agupsideocompteBL.capitalisation.ToLower())
                {
                    comptedb.pea = compteeditvm.pea.ToLower() == "true" ? "o" : "n";
                    comptedb.numcompte = compteeditvm.numcompte;
                    comptedb.NomTitulaire1 = compteeditvm.NomTitulaire1;
                    comptedb.idfrontfournisseur = compteeditvm.idfrontfournisseur;
                    if (!string.IsNullOrEmpty(compteeditvm.dds))
                    {
                        comptedb.dds = DateTime.ParseExact(compteeditvm.dds, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        comptedb.dds = null;
                    }
                    //
                    //
                    //
                    comptedb = agupsideocompteBL.Updatecompte(comptedb);
                    lstCompte = agupsideocompteBL.GetComptesClient(idClient);
                    agregcompte.AgregCompteContrat = lstCompte.Where(c => c.Typecontrat.ToLower() == agupsideocompteBL.assurancevie.ToLower()
                                                                 || c.Typecontrat.ToLower() == agupsideocompteBL.comptetitrespea.ToLower()
                                                                 || c.Typecontrat.ToLower() == agupsideocompteBL.capitalisation.ToLower()
                                                                 || c.Typecontrat.ToLower() == agupsideocompteBL.comptebancaire.ToLower()
                                                                 ).ToList();

                    //historisé 9711
                    agupsideocompteBL.AddCompteHisto(comptedb);

                    return PartialView("ComptesContratsPartial", agregcompte);
                }
                if (compteeditvm.typecontrat.ToLower() == agupsideocompteBL.assurancevie.ToLower() ||
                    compteeditvm.typecontrat.ToLower() == agupsideocompteBL.comptebancaire.ToLower())
                {
                    comptedb.numcompte = compteeditvm.numcompte;
                    comptedb.NomTitulaire1 = compteeditvm.NomTitulaire1;
                    comptedb.idfrontfournisseur = compteeditvm.idfrontfournisseur;
                    if (!string.IsNullOrEmpty(compteeditvm.dds))
                    {
                        comptedb.dds = DateTime.ParseExact(compteeditvm.dds, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        comptedb.dds = null;
                    }
                    //
                    //
                    //
                    comptedb = agupsideocompteBL.Updatecompte(comptedb);
                    lstCompte = agupsideocompteBL.GetComptesClient(idClient);
                    agregcompte.AgregCompteContrat = lstCompte.Where(c => c.Typecontrat.ToLower() == agupsideocompteBL.assurancevie.ToLower()
                                             || c.Typecontrat.ToLower() == agupsideocompteBL.comptetitrespea.ToLower()
                                             || c.Typecontrat.ToLower() == agupsideocompteBL.capitalisation.ToLower()
                                             || c.Typecontrat.ToLower() == agupsideocompteBL.comptebancaire.ToLower()
                                             ).ToList();
                    //historisé 9711
                    agupsideocompteBL.AddCompteHisto(comptedb);
                    return PartialView("ComptesContratsPartial", agregcompte);
                }
                if (compteeditvm.typecontrat.ToLower() == agupsideocompteBL.immobilier.ToLower())
                {
                    comptedb.designation = compteeditvm.designation;
                    comptedb.dateacquisition = DateTime.ParseExact(compteeditvm.dateacquisition, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                    comptedb.valeuracquisition = compteeditvm.valeuracquisition;
                    comptedb.totalcompte = compteeditvm.totalcompte;
                    comptedb.fiscalite = compteeditvm.fiscalite;
                    //
                    //
                    //
                    comptedb = agupsideocompteBL.Updatecompte(comptedb);
                    lstCompte = agupsideocompteBL.GetComptesClient(idClient);
                    agregcompte.AgregCompteImmobilier = lstCompte.Where(c => c.Typecontrat.ToLower() == agupsideocompteBL.immobilier.ToLower()).OrderBy(c => c.Designation).ToList();
                    //historisé 9711
                    agupsideocompteBL.AddCompteHisto(comptedb);
                    return PartialView("ComptesImmobiliersPartial", agregcompte);
                }
                if (compteeditvm.typecontrat.ToLower() == agupsideocompteBL.professionels.ToLower())
                {
                    DateTime? dt;
                    comptedb.designation = compteeditvm.designation;
                    if (!string.IsNullOrEmpty(compteeditvm.dateacquisition))
                        comptedb.dateacquisition = DateTime.ParseExact(compteeditvm.dateacquisition, "dd/MM/yyyy",
                            System.Globalization.CultureInfo.InvariantCulture);
                    comptedb.valeuracquisition = compteeditvm.valeuracquisition;
                    comptedb.totalcompte = compteeditvm.totalcompte;
                    //
                    //
                    //
                    comptedb = agupsideocompteBL.Updatecompte(comptedb);
                    lstCompte = agupsideocompteBL.GetComptesClient(idClient);
                    agregcompte.AgregCompteProfessionnels = lstCompte.Where(c => c.Typecontrat.ToLower() == agupsideocompteBL.professionels.ToLower()).OrderBy(c => c.Designation).ToList();
                    //historisé 9711
                    agupsideocompteBL.AddCompteHisto(comptedb);
                    return PartialView("ComptesProfessionnelsPartial", agregcompte);
                }
                if (compteeditvm.typecontrat.ToLower() == agupsideocompteBL.capitalrisque.ToLower())
                {
                    comptedb.designation = compteeditvm.designation;
                    comptedb.totalcompte = compteeditvm.totalcompte;
                    if (!string.IsNullOrEmpty(compteeditvm.dds))
                    {
                        comptedb.dds = DateTime.ParseExact(compteeditvm.dds, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        comptedb.dds = null;
                    }
                    //
                    //compteeditvm.nbretitre;
                    //compteeditvm.prixunitaire;
                    #region Nbre titre et prixunitaire
                    //
                    AgUpsideoCptrelsupportsBL.UpdateFondCapitalRisque(idCgpAgreg, comptedb, compteeditvm.nbretitre, compteeditvm.prixunitaire);
                    //
                    #endregion
                    //
                    //
                    //
                    lstCompte = agupsideocompteBL.GetComptesClient(idClient);
                    agregcompte.AgregCompteCapitalRisque = lstCompte.Where(c => c.Typecontrat.ToLower() == agupsideocompteBL.capitalrisque.ToLower()).OrderBy(c => c.Designation).ToList();
                    //historisé 9711
                    agupsideocompteBL.AddCompteHisto(comptedb);
                    return PartialView("ComptesCapitalRisquePartial", agregcompte);
                }                

            }
            catch (Exception e)
            {
                return Json(new { error = "ok",msg= e.Message }, JsonRequestBehavior.AllowGet);
            }
            return Json(new { error = "ko", msg = string.Empty }, JsonRequestBehavior.AllowGet);
        }
コード例 #7
0
        public static ag_upsideo_compte_histo AddCompteHisto(ag_upsideo_compte compte)
        {            
            using (UpsilabEntities db = new UpsilabEntities())
            {
                ag_upsideo_compte_histo cpthisto = db.ag_upsideo_compte_histo.Where(h => h.idfrontcompte == compte.Idfrontcompte
                                                                                    && h.datehisto.Year == DateTime.Now.Year
                                                                                    && h.datehisto.Month == DateTime.Now.Month
                                                                                    && h.datehisto.Day == DateTime.Now.Day).FirstOrDefault();
                if (cpthisto != null)
                {
                    cpthisto.datehisto = DateTime.Now;
                    cpthisto.totalcompte = compte.totalcompte.HasValue ? compte.totalcompte.Value : 0;
                }
                else
                {
                    cpthisto = new ag_upsideo_compte_histo()
                    {
                        datehisto = DateTime.Now,
                        idfrontcompte = compte.Idfrontcompte,
                        devise = string.IsNullOrEmpty(compte.devise) ? "EUR" : compte.devise,
                        totalcompte = compte.totalcompte.HasValue ? compte.totalcompte.Value : 0
                    };
                    //insert
                    db.ag_upsideo_compte_histo.AddObject(cpthisto);
                }
                //save
                db.SaveChanges();

                return cpthisto;
            }
            
        }       
コード例 #8
0
        public PartialViewResult LoadPopupAjoutActif(string id)
        {
            try
            {
                Guid idClient = Guid.Empty;
                SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient);
                if (idClient == Guid.Empty)
                {
                    return PartialView("ErreurPartial", "Session perdue.");
                }

                ag_upsideo_compte compte = new ag_upsideo_compte()
                {
                    idclient = idClient
                };

                return PartialView("PopupAjoutActifPartial", compte);

            }
            catch (Exception ex)
            {
                return PartialView("ErreurPartial", ex.Message);
            }
        }
コード例 #9
0
        public ActionResult GraphePerformance(string id = null)
        {
            ag_upsideo_compte compte = new ag_upsideo_compte();
            List<ag_upsideo_client> listeClient = new List<ag_upsideo_client>();
            try
            {
                int idCompte = 0;
                if (!string.IsNullOrEmpty(id))
                {
                    idCompte = Convert.ToInt32(id);
                    using (UpsilabEntities db = new UpsilabEntities())
                    {
                        compte = db.ag_upsideo_compte.Include("ag_upsideo_client").Where(c => c.Idfrontcompte == idCompte && c.deleted == "n").FirstOrDefault();
                        //get performance                         
                        //List<AgregGraphePerformanceModel> lstrepartition = new List<AgregGraphePerformanceModel>();
                        //lstrepartition = agupsideocompteBL.GraphePerformance(idCompte);
                        //string xmlData = ChartBL.GetChart2DPerformance(lstrepartition);
                        //ViewBag.MyChart = FusionCharts.RenderChart(Url.Content("~/Content/FusionCharts/MSColumn2D.swf"), "", xmlData, "performanceChartId", "1000", "400", false, true, true, "FFFFFF", "noscale", "EN");

                        //Obtenir le mouvement d'un compte et mettre dans session
                        List<ag_upsideo_mouvement> listemvt = new List<ag_upsideo_mouvement>();
                        listemvt = db.ag_upsideo_mouvement.Where(m => m.Idfrontcompte == compte.Idfrontcompte && (m.deleted == null || (m.deleted != null && m.deleted == "n"))).OrderBy(o=>o.datemvt).ToList();
                        SessionManager.Set<List<ag_upsideo_mouvement>>(agupsideocompteBL.AgregListemvtIdSessionKey, listemvt);

                    }

                }

            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
            }
            return View(compte);
        }
コード例 #10
0
        public ActionResult GrapheValorisation(string id = null)
        {
            ag_upsideo_compte compte = new ag_upsideo_compte();
            List<ag_upsideo_client> listeClient = new List<ag_upsideo_client>();
            try
            {
                int idCompte = 0;
                if (!string.IsNullOrEmpty(id))
                {
                    idCompte = Convert.ToInt32(id);
                    using (UpsilabEntities db = new UpsilabEntities())
                    {
                        compte = db.ag_upsideo_compte.Include("ag_upsideo_client").Where(c => c.Idfrontcompte == idCompte && c.deleted == "n").FirstOrDefault();
                        //get evol valo in ag_upsideo_compte_histo 
                        List<AgregChart> lstrepartition = new List<AgregChart>();
                        lstrepartition = agupsideocompteBL.GetEvalValoByCompte(idCompte);
                        string xmlData = ChartBL.GetChartMSLineEvalValo(lstrepartition,true);
                        ViewBag.MyChart = FusionCharts.RenderChart(Url.Content("~/Content/FusionCharts/ZoomLine.swf"), "", xmlData, "evolutionChartId", "1000", "400", false, true, true, "FFFFFF", "noscale", "FR");

                    }

                }

            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
            }
            return View(compte);
        }
コード例 #11
0
        public ActionResult RepartitionParOPCVM(string id = null)
        {
            ag_upsideo_compte agregcompte = new ag_upsideo_compte();
            Guid idClient = Guid.Empty;
            SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient);
            Guid idCgpAgreg = Guid.Empty;
            User currentUser = SessionManager.GetUserSession();
            if (currentUser.IsEndUser())
            {
                CustomerProspect currentCustomer = SessionManager.GetCustomerProspectSession();
                User currenttUserCreated = currentCustomer.User1;
                idCgpAgreg = currenttUserCreated.idAgregCGP.Value;
            }
            else
            {
                idCgpAgreg = currentUser.idAgregCGP.Value;
            }
            int idCompte = 0;
            if (!string.IsNullOrEmpty(id))
            {
                idCompte = Convert.ToInt32(id);
                var correctcompte = agupsideocompteBL.IsClientCompte(idClient, idCompte);
                if (!correctcompte)
                {
                    var LanguageData = PageLanguageHelper.GetLanguageContent("User", "agregcompte");
                    throw new Exception(LanguageData.GetContent("incorrect_compte"));
                }
            }
            try
            {
              
                //Répartition par classe actif d'un compte de client
                List<AgregChart> lstrepartition = new List<AgregChart>();
                lstrepartition = (!string.IsNullOrEmpty(id)) ?
                    agupsideocompteBL.GetOPCVMByCompteClient(idCompte):
                    agupsideocompteBL.GetOPCVMByClient(idClient);

                //string xmlData = ChartBL.GetChartPie2DTagWithList(lstrepartition);
                string xmlData = ChartBL.GetChartDougnhutWithList(lstrepartition);
                //Create the chart - Column 2D Chart with data contained in xmlData
                ViewBag.MyChart = FusionCharts.RenderChart(Url.Content("~/Content/FusionCharts/Doughnut2D.swf"), "", xmlData, "myChartId", "620", "250", false, true, true, "FFFFFF", "noscale", "EN");
                //ViewBag.MyChart = FusionCharts.RenderChart(Url.Content("~/Content/FusionCharts/Pie2D.swf"), "", xmlData, "myChartId", "620", "250", false, true, true, "FFFFFF", "noscale", "EN");
                //Client                
                using (UpsilabEntities db = new UpsilabEntities())
                {
                    agregcompte = db.ag_upsideo_compte.Include("ag_upsideo_client").Where(c => c.Idfrontcompte == idCompte && c.deleted == "n").FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
            }
            if (agregcompte != null)
                return View(agregcompte);
            else
            {
                ViewBag.Title = AgUpsideoClientBL.GetClientTitleNameFirstNameByidClient(idClient);
                ViewBag.idClient = idClient;
                return View();
            }
        }
コード例 #12
0
        public ActionResult InsertCompte(ag_upsideo_compte _compte)
        {
            Guid idClient = Guid.Empty;
            SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient);
            Guid idCgpAgreg = Guid.Empty;
            User currentUser = SessionManager.GetUserSession();
            if (currentUser.IsEndUser())
            {
                CustomerProspect currentCustomer = SessionManager.GetCustomerProspectSession();
                User currenttUserCreated = currentCustomer.User1;
                idCgpAgreg = currenttUserCreated.idAgregCGP.Value;
            }
            else
            {
                idCgpAgreg = currentUser.idAgregCGP.Value;
            }
            try
            {

                if (Request.Form["typecontrat"] != null && idClient != Guid.Empty)
                {
                    using (UpsilabEntities db = new UpsilabEntities())
                    {
                        //new compte
                        ag_upsideo_compte compte = new ag_upsideo_compte();
                        string typecontrat = Request.Form["typecontrat"].ToString();
                        compte.typecontrat = typecontrat;
                        compte.idclient = idClient;
                        compte.idcgp = idCgpAgreg;
                        compte.deleted = "n";
                        compte.type = "o";
                        if (typecontrat.ToLower() == agupsideocompteBL.comptetitrespea.ToLower() || typecontrat.ToLower() == agupsideocompteBL.capitalisation.ToLower())
                        {
                            if (Request.Form["isPEA"] != null && Request.Form["isPEA"].ToString() == "on")
                                compte.pea = "o";
                            else
                                compte.pea = "n";
                            if (Request.Form["numcomptecontrat"] != null && !string.IsNullOrEmpty(Request.Form["numcomptecontrat"].ToString()))
                                compte.numcompte = Request.Form["numcomptecontrat"].ToString();
                            if (Request.Form["titulairecomptecontrat"] != null && !string.IsNullOrEmpty(Request.Form["titulairecomptecontrat"].ToString()))
                                compte.NomTitulaire1 = Request.Form["titulairecomptecontrat"].ToString();
                            if (Request.Form["depositairecomptecontrat"] != null && !string.IsNullOrEmpty(Request.Form["depositairecomptecontrat"].ToString()))
                                compte.idfrontfournisseur = int.Parse(Request.Form["depositairecomptecontrat"].ToString());
                            if (Request.Form["Ddscomptecontrat"] != null && !string.IsNullOrEmpty(Request.Form["Ddscomptecontrat"].ToString()))
                                compte.dds = DateTime.Parse(Request.Form["Ddscomptecontrat"].ToString());
                        }
                        else if (typecontrat.ToLower() == agupsideocompteBL.assurancevie.ToLower() || typecontrat.ToLower() == agupsideocompteBL.comptebancaire.ToLower())
                        {
                            if (Request.Form["numcomptecontrat"] != null && !string.IsNullOrEmpty(Request.Form["numcomptecontrat"].ToString()))
                                compte.numcompte = Request.Form["numcomptecontrat"].ToString();
                            if (Request.Form["titulairecomptecontrat"] != null && !string.IsNullOrEmpty(Request.Form["titulairecomptecontrat"].ToString()))
                                compte.NomTitulaire1 = Request.Form["titulairecomptecontrat"].ToString();
                            if (Request.Form["depositairecomptecontrat"] != null && !string.IsNullOrEmpty(Request.Form["depositairecomptecontrat"].ToString()))
                                compte.idfrontfournisseur = int.Parse(Request.Form["depositairecomptecontrat"].ToString());
                            if (Request.Form["Ddscomptecontrat"] != null && !string.IsNullOrEmpty(Request.Form["Ddscomptecontrat"].ToString()))
                                compte.dds = DateTime.Parse(Request.Form["Ddscomptecontrat"].ToString());
                        }
                        else if (typecontrat.ToLower() == agupsideocompteBL.immobilier.ToLower())
                        {
                            if (Request.Form["designationimmobilier"] != null && !string.IsNullOrEmpty(Request.Form["designationimmobilier"].ToString()))
                                compte.designation = Request.Form["designationimmobilier"].ToString();
                            if (Request.Form["dateacquisimmobilier"] != null && !string.IsNullOrEmpty(Request.Form["dateacquisimmobilier"].ToString()))
                                compte.dateacquisition = DateTime.Parse(Request.Form["dateacquisimmobilier"].ToString());
                            if (Request.Form["valacquisimmobilier"] != null && !string.IsNullOrEmpty(Request.Form["valacquisimmobilier"].ToString()))
                                compte.valeuracquisition = double.Parse(Request.Form["valacquisimmobilier"].ToString());
                            if (Request.Form["valvenalimmobilier"] != null && !string.IsNullOrEmpty(Request.Form["valvenalimmobilier"].ToString()))
                                compte.totalcompte = double.Parse(Request.Form["valvenalimmobilier"].ToString());
                            if (Request.Form["fiscaliteimmobilier"] != null && !string.IsNullOrEmpty(Request.Form["fiscaliteimmobilier"].ToString()))
                                compte.fiscalite = double.Parse(Request.Form["fiscaliteimmobilier"].ToString());
                        }
                        else if (typecontrat.ToLower() == agupsideocompteBL.professionels.ToLower())
                        {
                            if (Request.Form["designationprofessionel"] != null && !string.IsNullOrEmpty(Request.Form["designationprofessionel"].ToString()))
                                compte.designation = Request.Form["designationprofessionel"].ToString();
                            if (Request.Form["valacquisprofessionel"] != null && !string.IsNullOrEmpty(Request.Form["valacquisprofessionel"].ToString()))
                                compte.valeuracquisition = double.Parse(Request.Form["valacquisprofessionel"].ToString());
                            if (Request.Form["valoprofessionel"] != null && !string.IsNullOrEmpty(Request.Form["valoprofessionel"].ToString()))
                                compte.totalcompte = double.Parse(Request.Form["valoprofessionel"].ToString());

                        }
                        else if (typecontrat.ToLower() == agupsideocompteBL.capitalrisque.ToLower())
                        {
                            if (Request.Form["designationcapital"] != null && !string.IsNullOrEmpty(Request.Form["designationcapital"].ToString()))
                                compte.designation = Request.Form["designationcapital"].ToString();
                            if (Request.Form["montantcapital"] != null && !string.IsNullOrEmpty(Request.Form["montantcapital"].ToString()))
                                compte.totalcompte = double.Parse(Request.Form["montantcapital"].ToString());
                            if (Request.Form["ddscapital"] != null && !string.IsNullOrEmpty(Request.Form["ddscapital"].ToString()))
                                compte.dds = DateTime.Parse(Request.Form["ddscapital"].ToString());
                        }

                        //save                        
                        db.ag_upsideo_compte.AddObject(compte);
                        db.SaveChanges();

                        //historisé rd 9711
                        ag_upsideo_compte_histo cpthistonew = new ag_upsideo_compte_histo()
                        {
                            datehisto = DateTime.Now,
                            idfrontcompte = compte.Idfrontcompte,
                            devise = string.IsNullOrEmpty(compte.devise) ? "EUR" : compte.devise,
                            totalcompte = compte.totalcompte.HasValue ? compte.totalcompte.Value : 0
                        };
                        //insert
                        db.ag_upsideo_compte_histo.AddObject(cpthistonew);
                        db.SaveChanges();
                    }

                }

            }
            catch (Exception ex)
            {
                ViewBag.Style = "style=color:red";
                ViewBag.Message = "Erreur: " + ex.Message;
                Upsilab.Business.Log.Log.AppendException(ex);
            }

            return RedirectToAction("Index", new { id = idClient });
        }