public static int SaveReportOptionValueWithLineNumber(Guid idReport, Upsilab.Data.Model.Option option, int idOptionAttribute, string value, string fieldType, string colomnName, int idReportAttributeValue) { ReportOptionAttributeValue optionAttributeValue = null; int idOption = option.idOption; bool updateDateUpdated = false; string completedStatus = Report.ReportBL.Status.Completed.ToString(); string waitingForClientUpdateStatus = Report.ReportBL.Status.WaitingForClientUpdate.ToString(); using (UpsilabEntities db = new UpsilabEntities()) { ReportOptionAttributeValue reportOptionAttrValueToUpdate = db.ReportOptionAttributeValue.FirstOrDefault( x => x.idReportOptionAttributeValue == idReportAttributeValue); /* UPDATE */ if (reportOptionAttrValueToUpdate != null) { dynamic customData = reportOptionAttrValueToUpdate.CustomObjectValue; if (customData != null) { bool isTheSameValue = CustomObject.IsTheSameValue(customData, colomnName, value); if (!isTheSameValue) { CustomObject.SetValueByPropertyName(customData, colomnName, value); reportOptionAttrValueToUpdate.CustomObjectValue = customData; reportOptionAttrValueToUpdate.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null; if (reportOptionAttrValueToUpdate.ReportOptionValue!=null) { reportOptionAttrValueToUpdate.ReportOptionValue.DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null; } // } } optionAttributeValue = reportOptionAttrValueToUpdate; } /* CREATE */ else { //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; } } { //pour agreg ReportOptionAttributeValue agregOptionAttributeValue = null; // ReportOptionValue optionValue = (from rov in db.ReportOptionValue.Include("ReportOptionAttributeValue") where rov.idReport == idReport && rov.idOption == idOption && rov.ReportOptionAttributeValue.FirstOrDefault(x => x.idReportOptionAttributeValue == idReportAttributeValue).idReportOptionAttributeValue == idReportAttributeValue 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 && option.idParent != 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 (lstOptionAttributeValues.Any()) { //Line already in database ReportOptionAttributeValue reportOptionAttrValue = lstOptionAttributeValues.FirstOrDefault(); 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; optionAttributeValue = 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); } } bool createOptionAttr = true; //Create empty lines if (lstOptionAttributeValues.Count == 0) { optionAttributeValue = new ReportOptionAttributeValue() { idReport = idReport, idOptionAttribute = idOptionAttribute, idReportOptionValue = optionValue.idReportOptionValue, DateCreated = DateTime.Now, DateUpdated = (updateDateUpdated) ? DateTime.Now : (DateTime?)null }; optionAttributeValue.CustomObjectValue = customData; 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; // } 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); } } //#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) //{ // //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 } #region Report //5- Update dateupdated report report.DateUpdated = DateTime.Now; #endregion } //6- Commit all changes here db.SaveChanges(); return optionAttributeValue!=null ? optionAttributeValue.idReportOptionAttributeValue : 0; } }
private static void SetOptionToSave(Guid idReport, Upsilab.Data.Model.Option option, OptionAttribute optionAttribute, string value, string fieldType, List<ReportOptionValue> lstOptionValues, UpsilabEntities db) { if (option == null && optionAttribute == null) { return; //ce cas ne doit pas se présenter } string action = string.Empty; ReportOptionValue optionValue = null; ReportOptionAttributeValue optionAttributeValue = null; //1- Champ #region TXT if (fieldType == "txt") { //Do nothing if value is null. Don't check empty because it's a value :) ? if (value == null) { return; } optionValue = lstOptionValues.Where(rov => rov.idOption == optionAttribute.idOption).FirstOrDefault(); if (optionValue == null) { action = "I"; } else { optionAttributeValue = optionValue.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == optionAttribute.idOptionAttribute).FirstOrDefault(); if (optionAttributeValue == null) { action = "I"; } else { //No need to add if the same value if (optionAttributeValue.Value != value) { optionAttributeValue.Value = value; //optionAttributeValue.DateUpdated = DateTime.Now; TODO //TODO //db.ReportOptionAttributeValue.Attach(optionAttributeValue); //db.ObjectStateManager.ChangeObjectState(optionAttributeValue, System.Data.EntityState.Modified); //db.SaveChanges(); } } } if (action == "I") { //Check if reportOptionValue exists if (optionValue == null) //insert option value { optionValue = new ReportOptionValue() { idReport = idReport, idOption = option.idOption, Value = string.Empty, DateCreated = DateTime.Now, }; //Add ReportOptionValue to DB : don't save yet lstOptionValues.Add(optionValue); db.ReportOptionValue.Attach(optionValue); db.ObjectStateManager.ChangeObjectState(optionValue, System.Data.EntityState.Added); //Insert parent ?? List<ReportOptionValue> lstParents = GetParentOptionToAdd(idReport, lstOptionValues, option); foreach (var optionParentValue in lstParents) { lstOptionValues.Add(optionParentValue); //db.ReportOptionValue.Attach(optionParentValue); //db.ObjectStateManager.ChangeObjectState(optionValue, System.Data.EntityState.Added); db.ReportOptionValue.AddObject(optionParentValue); } } //Insert optionattrubutevalue ReportOptionAttributeValue newReportOptionAttributeValue = new ReportOptionAttributeValue() { idReport = idReport, idOptionAttribute = optionAttribute.idOptionAttribute, idReportOptionValue = optionValue.idReportOptionValue, Value = value, DateCreated = DateTime.Now, }; //Add ReportOptionAttributeValue to DB : don't save yet optionValue.ReportOptionAttributeValue.Add(newReportOptionAttributeValue); } } #endregion //2- Radio #region RB //2- Save option attribute value (Radio button) else if (fieldType == "rb") { //No need to delete if it's the option optionValue = lstOptionValues.Where(rov => rov.idOption == option.idOption).FirstOrDefault(); if (optionValue == null) { //Delete old rb IList<ReportOptionValue> optionValues = (from rov in lstOptionValues where rov.Option.idParent == option.idParent select rov).ToList(); //Delete option attribute values attached to option value if (optionValues != null) { foreach (var itemOptionValue in optionValues) { IList<ReportOptionAttributeValue> lstOptionAttributeValues = new List<ReportOptionAttributeValue>(itemOptionValue.ReportOptionAttributeValue); foreach (var item in lstOptionAttributeValues) { var optionAttrValueToBeDel = itemOptionValue.ReportOptionAttributeValue.Where(oa => oa.idReportOptionAttributeValue == item.idReportOptionAttributeValue).FirstOrDefault(); db.ReportOptionAttributeValue.DeleteObject(optionAttrValueToBeDel); } lstOptionValues.Remove(itemOptionValue); db.ReportOptionValue.DeleteObject(itemOptionValue); //Delete child option value IList<ReportOptionValue> lstOptionValuesChild = (from rov in lstOptionValues where rov.Option.idParent == itemOptionValue.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); } lstOptionValues.Remove(optionValueChild); db.ReportOptionValue.DeleteObject(optionValueChild); } } } } //Insert new rb ReportOptionValue newOptionValue = new ReportOptionValue() { idReport = idReport, idOption = option.idOption, Value = string.Empty, DateCreated = DateTime.Now, }; //Add ReportOptionValue to DB : don't save yet lstOptionValues.Add(newOptionValue); db.ReportOptionValue.AddObject(newOptionValue); //Insert parent List<ReportOptionValue> lstParents = GetParentOptionToAdd(idReport, lstOptionValues, option); foreach (var optionParentValue in lstParents) { lstOptionValues.Add(optionParentValue); db.ReportOptionValue.AddObject(optionParentValue); } } } #endregion }
/// <summary> /// /// </summary> /// <param name="reportIdDest"></param> /// <param name="lstReportOptionValuesSource"></param> public static void SaveReportOptionValues(Upsilab.Data.Model.Report reportDest, List<ReportOptionValue> lstReportOptionValuesSource) { //Insert new OptionValue using (UpsilabEntities db = new UpsilabEntities()) { foreach (var reportOptionValueSource in lstReportOptionValuesSource) { //1- Report option value ReportOptionValue newReportOptionValue = new ReportOptionValue() { idReport = reportDest.idReport, idOption = reportOptionValueSource.idOption, Value = string.Empty, DateCreated = DateTime.Now, }; //Add ReportOptionValue to DB : don't save yet db.ReportOptionValue.AddObject(newReportOptionValue); if (reportOptionValueSource.ReportOptionAttributeValue.Count > 0) { //2- Report option attribute value foreach (var reportOptAttrValueSource in reportOptionValueSource.ReportOptionAttributeValue) { ReportOptionAttributeValue newReportOptionAttrValue = new ReportOptionAttributeValue() { idReport = reportDest.idReport, idOptionAttribute = reportOptAttrValueSource.idOptionAttribute, idReportOptionValue = newReportOptionValue.idReportOptionValue, Value = reportOptAttrValueSource.Value, DateCreated = DateTime.Now, }; //Add ReportOptionAttributeValue to DB : don't save yet newReportOptionValue.ReportOptionAttributeValue.Add(newReportOptionAttrValue); } } } //3- Commit all changes here db.SaveChanges(); } }
public static bool UpdateReportOptions(Guid idReport, List<ReportOptionValue> SelectedOptions) { // Particular case for mobile 151, email 152 Upsilab.Data.Model.Report report = ReportBL.GetReportById(idReport); Upsilab.Data.Model.User userClient = report.CustomerProspect.User; bool saveDataUser = false; // bool retVal = true; try { var parentOptions = SelectedOptions.Where(so => so.Option.idParent.HasValue.Equals(false)); foreach (var parentOption in parentOptions) { List<Data.Model.Option> optList = OptionBL.GetOptionsByIdParent(parentOption.idOption); //TODO #region Delete existing OptionAttributeValue under Parent List<ReportOptionAttributeValue> toBeDeletedAttr = new List<ReportOptionAttributeValue>(); using (UpsilabEntities retrieveContext = new UpsilabEntities()) { foreach (var opt in optList) { var deleteAttr = (from toBeDel in retrieveContext.ReportOptionAttributeValue.ToList() join o in opt.OptionAttribute on toBeDel.idOptionAttribute equals o.idOptionAttribute where toBeDel.idReport.Equals(idReport) select toBeDel).ToList(); toBeDeletedAttr.AddRange(deleteAttr); } foreach (var toBeDel in toBeDeletedAttr) { retrieveContext.ReportOptionAttributeValue.DeleteObject(toBeDel); retrieveContext.SaveChanges(); } //Commit all changes here //retrieveContext.SaveChanges(); } #endregion //Delete existing OptionValue under Parent List<ReportOptionValue> toBeDeletedOpt = new List<ReportOptionValue>(); using (UpsilabEntities retrieveContext = new UpsilabEntities()) { toBeDeletedOpt = (from toBeDel in retrieveContext.ReportOptionValue.ToList() join opt in optList on toBeDel.idOption equals opt.idOption where toBeDel.idReport.Equals(idReport) select toBeDel).ToList(); foreach (var toBeDel in toBeDeletedOpt) { retrieveContext.ReportOptionValue.DeleteObject(toBeDel); retrieveContext.SaveChanges(); } //Commit all changes here //retrieveContext.SaveChanges(); } } #region Update OptionValue //Insert new OptionValue using (UpsilabEntities insertContext = new UpsilabEntities()) { foreach (var toBeAdded in SelectedOptions) { ReportOptionValue newVal = new ReportOptionValue(); newVal.idReport = idReport; newVal.idOption = toBeAdded.idOption; newVal.Value = string.Empty; insertContext.ReportOptionValue.AddObject(newVal); insertContext.SaveChanges(); if (toBeAdded.ReportOptionAttributeValue.Count > 0) { foreach (var optAttr in toBeAdded.ReportOptionAttributeValue) { ReportOptionAttributeValue newAttVal = new ReportOptionAttributeValue(); newAttVal.idReport = idReport; newAttVal.idOptionAttribute = optAttr.idOptionAttribute; newAttVal.idReportOptionValue = newVal.idReportOptionValue; newAttVal.Value = optAttr.Value; insertContext.ReportOptionAttributeValue.AddObject(newAttVal); insertContext.SaveChanges(); //----- Particular cas for field existing in table USER : Mobile and email //151 PP mobile. 391 PM Mobile //152 PP email. 392 PM email if (optAttr.idOptionAttribute == 151 || optAttr.idOptionAttribute == 391) { userClient.UserMobilePhone = optAttr.Value; saveDataUser = true; } if (optAttr.idOptionAttribute == 152 || optAttr.idOptionAttribute == 392) { userClient.UserEmail = optAttr.Value; saveDataUser = true; } //----- } } } //Commit all changes here //insertContext.SaveChanges(); } if (saveDataUser) { if (!UserBL.IsEmailUsed(userClient.UserEmail, userClient)) Upsilab.Business.User.UserBL.UpdateUser(userClient); } #endregion } catch (Exception e) { retVal = false; Log.Log.AppendException(e); } return retVal; }
public static List<ReportOptionValue> GetParentOptionToAdd(Guid idReport, List<ReportOptionValue> lstOptionValues, Data.Model.Option option) { List<ReportOptionValue> lstParentOptionValues = new List<ReportOptionValue>(); using (UpsilabEntities db = new UpsilabEntities()) { //Insert parent ?? while (option.idParent.HasValue) { ReportOptionValue optionParentValue = (from rov in lstOptionValues where 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, }; lstParentOptionValues.Add(optionParentValue); //Check if this parent option has already parent ? option = OptionBL.GetOptionById(optionParentValue.idOption); } else { optionParentValue.DateUpdated = DateTime.Now; break; } } } return lstParentOptionValues; }
//END KIRA 05082014 private static List<ReportOptionValue> GetOptionValueList(Guid idReport, ReportOptionValue optionValueRoot) { using (UpsilabEntities context = new UpsilabEntities()) { //var query = ((ObjectQuery<ReportOptionValue>)from optionValue in context.ReportOptionValue.Include("CustomerProspectOptionAttributeValue") // join option in context.Option on optionValue.idOption equals option.idOption // where optionValue.idReport.Equals(idReport) // where option.idParent.Value.Equals(optionValueRoot.idOption) // select optionValue).Include("ReportOptionAttributeValue"); //List<ReportOptionValue> returnValue = new List<ReportOptionValue>(); //foreach (var optionValue in query.ToList()) //{ // context.LoadProperty(optionValue, "ReportOptionAttributeValue"); // returnValue.Add(optionValue); // returnValue.AddRange(GetOptionValueList(idReport, optionValue)); //} //return returnValue; IQueryable<ReportOptionValue> ROV = GetOptionValueListQuery.Invoke(context, new GetOptionValueListParams { gIdReport = idReport, gOptionValueRoot = optionValueRoot }); List<ReportOptionValue> returnValue = ROV.ToList(); foreach (var optionValue in returnValue.ToList()) { returnValue.Add(optionValue); returnValue.AddRange(GetOptionValueList(idReport, optionValue)); } return returnValue; } }
private static List<ReportOptionValue> GetOptionValueList(ReportOptionValue optionValueRoot, List<Upsilab.Data.Model.ReportOptionValue> allReportOptionValues) { var optionValues = (from optionValue in allReportOptionValues where optionValue.Option.idParent == optionValueRoot.idOption select optionValue).ToList(); List<ReportOptionValue> returnValue = new List<ReportOptionValue>(); foreach (var optionValue in optionValues) { returnValue.Add(optionValue); returnValue.AddRange(GetOptionValueList(optionValue, allReportOptionValues)); } return returnValue; }
private int SetOptionFor(List<int> lstOptionToInsert, List<int> lstDataToFound, string[] criteria1, string[] criteria2, PageLanguageHelper pageHelper, bool checkData = false) { int clientsCount = 0; //System.Text.StringBuilder sb = new System.Text.StringBuilder(); try { using (UpsilabEntities retrieveContext = new UpsilabEntities()) { var clients = retrieveContext.CustomerProspect.Include("Report").Where(cli => cli.isDeleted.HasValue && !cli.isDeleted.Value && cli.IsCorporation.HasValue && !cli.IsCorporation.Value); foreach (var cli in clients) { if (cli.Report != null) { // test if (cli.idCustomer.ToString().Equals("656bb16a-6782-41e6-b954-f7c11e5ca54d")) { string found = ""; } var latestReport = cli.Report.Where(r => r.Status != "Canceled").OrderByDescending(r => r.DateUpdated).FirstOrDefault(); if (latestReport != null) { bool dataFound = false; //if (IsOptionAttribute) //recherche dans la table ReportOptionAttributeValue //{ var allAnswers = retrieveContext.ReportOptionAttributeValue.Where(roav => roav.idReport == latestReport.idReport); if (allAnswers.Any()) { foreach (ReportOptionAttributeValue rov in allAnswers) { dataFound = IsAnyDataAnd(rov, criteria1); if (!dataFound && criteria2 !=null && criteria2.Length > 0) { dataFound = IsAnyDataAnd(rov, criteria2); } if (!dataFound && pageHelper!=null) { int idOptionAttribute = 0; Int32.TryParse(Convert.ToString(rov.idOptionAttribute), out idOptionAttribute); var obj = Upsilab.Business.Report.ReportOptionBL.GetOptionAttributeById(idOptionAttribute); if (obj != null) { var des = pageHelper.GetContent(obj.NameKey); dataFound = !string.IsNullOrEmpty(des); } } if (dataFound) break; } } if (dataFound) { bool insertDone = false; foreach (int opt in lstOptionToInsert) { var isAlreadyChecked = retrieveContext.ReportOptionValue.Any(rov => rov.idReport == latestReport.idReport && rov.idOption == opt); if (!isAlreadyChecked) { ReportOptionValue rov = new ReportOptionValue() { idReport = latestReport.idReport, idOption = opt, DateCreated = DateTime.Now, DateUpdated = DateTime.Now, Value = string.Empty, }; insertDone = true; retrieveContext.ReportOptionValue.AddObject(rov); Option objOption = OptionBL.GetOptionById(opt); if (objOption != null) { while (objOption.idParent.HasValue) { ReportOptionValue optionParentValue = (from rov1 in retrieveContext.ReportOptionValue.Include("Option") where rov1.idReport == latestReport.idReport && rov1.idOption == objOption.idParent.Value select rov1).FirstOrDefault(); if (optionParentValue == null) { optionParentValue = new ReportOptionValue() { idReport = latestReport.idReport, idOption = objOption.idParent.Value, Value = string.Empty, DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; //Add ReportOptionValue to DB : don't save yet retrieveContext.ReportOptionValue.AddObject(optionParentValue); //Check if this parent option has already parent ? objOption = optionParentValue.Option; } else { optionParentValue.DateUpdated = DateTime.Now; break; } } } } else { var RoptionChild = retrieveContext.ReportOptionValue.FirstOrDefault(rov => rov.idReport == latestReport.idReport && rov.idOption == opt); if (RoptionChild != null) { Option objOptionChild = OptionBL.GetOptionById(RoptionChild.idOption); if (objOptionChild != null) { while (objOptionChild.idParent.HasValue) { ReportOptionValue optionParentValue = (from rov2 in retrieveContext.ReportOptionValue.Include("Option") where rov2.idReport == latestReport.idReport && rov2.idOption == objOptionChild.idParent.Value select rov2).FirstOrDefault(); if (optionParentValue == null) { optionParentValue = new ReportOptionValue() { idReport = latestReport.idReport, idOption = objOptionChild.idParent.Value, Value = string.Empty, DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; //Add ReportOptionValue to DB : don't save yet retrieveContext.ReportOptionValue.AddObject(optionParentValue); //Check if this parent option has already parent ? objOptionChild = optionParentValue.Option; } else { optionParentValue.DateUpdated = DateTime.Now; break; } } } } } } if (insertDone) clientsCount++; } } } } retrieveContext.SaveChanges(); } } catch (Exception ex) { throw ex; } //return string.Format("{0} Clients traités : {1} ", clientsCount, sb.ToString()); return clientsCount; }
/// <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; } }
private int SetOptionForCredit(List<int> lstOptionToInsert) { int clientsCount = 0; try { using (UpsilabEntities retrieveContext = new UpsilabEntities()) { var clients = retrieveContext.CustomerProspect.Include("Report") .Where(cli => cli.isDeleted.HasValue && !cli.isDeleted.Value && cli.IsCorporation.HasValue && !cli.IsCorporation.Value); foreach (var cli in clients) { if (cli.Report != null) { var latestReport = cli.Report.Where(r => r.Status != "Canceled").OrderByDescending(r => r.DateUpdated).FirstOrDefault(); if (latestReport != null) { var lstAnyCredit = latestReport.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 215); lstAnyCredit = lstAnyCredit.Where(dc => !string.IsNullOrEmpty(dc.CustomObjectValue.Borrower)).ToList(); if (lstAnyCredit.Any()) { bool insertDone = false; foreach (int opt in lstOptionToInsert) { var isAlreadyChecked = retrieveContext.ReportOptionValue.Any(rov => rov.idReport == latestReport.idReport && rov.idOption == opt); if (!isAlreadyChecked) { ReportOptionValue rov = new ReportOptionValue() { idReport = latestReport.idReport, idOption = opt, DateCreated = DateTime.Now, DateUpdated = DateTime.Now, Value = string.Empty, }; insertDone = true; retrieveContext.ReportOptionValue.AddObject(rov); Option objOption = OptionBL.GetOptionById(opt); if (objOption != null) { while (objOption.idParent.HasValue) { ReportOptionValue optionParentValue = (from rov1 in retrieveContext.ReportOptionValue.Include("Option") where rov1.idReport == latestReport.idReport && rov1.idOption == objOption.idParent.Value select rov1).FirstOrDefault(); if (optionParentValue == null) { optionParentValue = new ReportOptionValue() { idReport = latestReport.idReport, idOption = objOption.idParent.Value, Value = string.Empty, DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; //Add ReportOptionValue to DB : don't save yet retrieveContext.ReportOptionValue.AddObject(optionParentValue); //Check if this parent option has already parent ? objOption = optionParentValue.Option; } else { optionParentValue.DateUpdated = DateTime.Now; break; } } } } else { var RoptionChild = retrieveContext.ReportOptionValue.FirstOrDefault(rov => rov.idReport == latestReport.idReport && rov.idOption == opt); if (RoptionChild != null) { Option objOptionChild = OptionBL.GetOptionById(RoptionChild.idOption); if (objOptionChild != null) { while (objOptionChild.idParent.HasValue) { ReportOptionValue optionParentValue = (from rov2 in retrieveContext.ReportOptionValue.Include("Option") where rov2.idReport == latestReport.idReport && rov2.idOption == objOptionChild.idParent.Value select rov2).FirstOrDefault(); if (optionParentValue == null) { optionParentValue = new ReportOptionValue() { idReport = latestReport.idReport, idOption = objOptionChild.idParent.Value, Value = string.Empty, DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; //Add ReportOptionValue to DB : don't save yet retrieveContext.ReportOptionValue.AddObject(optionParentValue); //Check if this parent option has already parent ? objOptionChild = optionParentValue.Option; } else { optionParentValue.DateUpdated = DateTime.Now; break; } } } } } } if (insertDone) clientsCount++; } } } } retrieveContext.SaveChanges(); } } catch (Exception ex) { throw ex; } //return string.Format("{0} Clients traités : {1} ", clientsCount, sb.ToString()); return clientsCount; }
private int SetOptionFor2(List<int> lstOptionToInsert, List<int> lstDataToFound, bool checkData = false) { int clientsCount = 0; //System.Text.StringBuilder sb = new System.Text.StringBuilder(); try { using (UpsilabEntities retrieveContext = new UpsilabEntities()) { var clients = retrieveContext.CustomerProspect.Include("Report").Where(cli => cli.isDeleted.HasValue && !cli.isDeleted.Value && cli.IsCorporation.HasValue && !cli.IsCorporation.Value).ToList(); foreach (var cli in clients) { if (cli.Report != null) { var latestReport = cli.Report.Where(r => r.Status != "Canceled").OrderByDescending(r => r.DateUpdated).FirstOrDefault(); if (latestReport != null) { bool dataFound = false; //if (IsOptionAttribute) //recherche dans la table ReportOptionAttributeValue //{ var allAnswers = retrieveContext.ReportOptionAttributeValue.Where(roav => roav.idReport == latestReport.idReport); List<int> idOptionAttributeValuesList = new HashSet<int>(allAnswers.Select(x => x.idOptionAttribute)).ToList(); if (!checkData) dataFound = idOptionAttributeValuesList.Any(x => lstDataToFound.Contains(x)); else { ///check data value ---> cas spécial pour conjoint on a qu'une optionValue à tester int data = lstDataToFound[0]; var optionAttrVal = allAnswers.Where(x => x.idOptionAttribute == data).FirstOrDefault(); if (optionAttrVal != null && !string.IsNullOrEmpty(optionAttrVal.Value)) dataFound = true; } // } //else // recherche dans la table ReportOptionValue //{() // var allAnswers = retrieveContext.ReportOptionValue.Where(rov => rov.idReport == latestReport.idReport); // List<int> idOptionValuesList = new HashSet<int>(allAnswers.Select(x => x.idOption)).ToList(); // dataFound = idOptionValuesList.Any(x => lstDataToFound.Contains(x)); //} if (dataFound) { bool insertDone = false; foreach (int opt in lstOptionToInsert) { var isAlreadyChecked = retrieveContext.ReportOptionValue.Any(rov => rov.idReport == latestReport.idReport && rov.idOption == opt); if (!isAlreadyChecked) { ReportOptionValue rov = new ReportOptionValue() { idReport = latestReport.idReport, idOption = opt, DateCreated = DateTime.Now, DateUpdated = DateTime.Now, Value = string.Empty, }; insertDone = true; retrieveContext.ReportOptionValue.AddObject(rov); Option objOption = OptionBL.GetOptionById(opt); if (objOption != null) { while (objOption.idParent.HasValue) { ReportOptionValue optionParentValue = (from rov1 in retrieveContext.ReportOptionValue.Include("Option") where rov1.idReport == latestReport.idReport && rov1.idOption == objOption.idParent.Value select rov1).FirstOrDefault(); if (optionParentValue == null) { optionParentValue = new ReportOptionValue() { idReport = latestReport.idReport, idOption = objOption.idParent.Value, Value = string.Empty, DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; //Add ReportOptionValue to DB : don't save yet retrieveContext.ReportOptionValue.AddObject(optionParentValue); //Check if this parent option has already parent ? objOption = optionParentValue.Option; } else { optionParentValue.DateUpdated = DateTime.Now; break; } } } } else { var RoptionChild = retrieveContext.ReportOptionValue.FirstOrDefault(rov => rov.idReport == latestReport.idReport && rov.idOption == opt); if (RoptionChild != null) { Option objOptionChild = OptionBL.GetOptionById(RoptionChild.idOption); if (objOptionChild != null) { while (objOptionChild.idParent.HasValue) { ReportOptionValue optionParentValue = (from rov2 in retrieveContext.ReportOptionValue.Include("Option") where rov2.idReport == latestReport.idReport && rov2.idOption == objOptionChild.idParent.Value select rov2).FirstOrDefault(); if (optionParentValue == null) { optionParentValue = new ReportOptionValue() { idReport = latestReport.idReport, idOption = objOptionChild.idParent.Value, Value = string.Empty, DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; //Add ReportOptionValue to DB : don't save yet retrieveContext.ReportOptionValue.AddObject(optionParentValue); //Check if this parent option has already parent ? objOptionChild = optionParentValue.Option; } else { optionParentValue.DateUpdated = DateTime.Now; break; } } } } } } if (insertDone) clientsCount++; } } } } retrieveContext.SaveChanges(); } } catch (Exception ex) { throw ex; } //return string.Format("{0} Clients traités : {1} ", clientsCount, sb.ToString()); return clientsCount; }
private void FindAndReplaceValue(ReportOptionValue optionValue, List<int> idOptionAttributes, List<String> values) { if (idOptionAttributes.Count != values.Count) throw new Exception(LanguageData.GetContent("invalid_override_count")); for (int counter = 0; counter <= idOptionAttributes.Count - 1; counter++) { var item = optionValue.ReportOptionAttributeValue.Where(optValAttr => optValAttr.idOptionAttribute == idOptionAttributes[counter]).FirstOrDefault(); if (item != null) { string sValue = values[counter]; if (string.IsNullOrEmpty(values[counter])) { sValue = ""; } item.Value = sValue; } else { string sValue = values[counter]; if (string.IsNullOrEmpty(values[counter])) { sValue = ""; } optionValue.ReportOptionAttributeValue.Add(new ReportOptionAttributeValue() { Value = sValue, idOptionAttribute = idOptionAttributes[counter], idReportOptionValue = optionValue.idReportOptionValue }); } } }
private void replaceValue(RecueilModel model, int idParent, int idOptionAttribute, string value) { // récuperation des ReportOptionValue par l'idOption du parent var optVal = model.OptionValue.Where(opt => opt.idOption == idParent).FirstOrDefault(); // créer si null if (optVal == null) { optVal = new ReportOptionValue() { idOption = idParent, idReport = model.Report.idReport }; model.OptionValue.Add(optVal); } // replacer les OptionAttributes FindAndReplaceValue(optVal, new List<int>() { idOptionAttribute }, new List<String>() { value }); }
//override for Recueil TitularePP private ActionResult OverrideTitulareValues(ActionResult actionResult) { if (actionResult is ViewResult) { var viewResult = actionResult as ViewResult; var objModel = viewResult.Model; var model = objModel as RecueilModel; var optVal = model.OptionValue.Where(opt => opt.idOption == 216).FirstOrDefault(); var optVal217 = model.OptionValue.Where(opt => opt.idOption == 217).FirstOrDefault(); var optVal363 = model.OptionValue.Where(opt => opt.idOption == 363).FirstOrDefault(); // Pays de residence if (optVal == null) { optVal = new ReportOptionValue() { idOption = 216, idReport = model.Report.idReport }; model.OptionValue.Add(optVal); } if (optVal217 == null) { optVal217 = new ReportOptionValue() { idOption = 217, idReport = model.Report.idReport }; model.OptionValue.Add(optVal217); } if (optVal363 == null) { optVal363 = new ReportOptionValue() { idOption = 363, idReport = model.Report.idReport }; model.OptionValue.Add(optVal363); } FindAndReplaceValue( optVal, new List<int>() { Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.USERNAME) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.USERFIRSTNAME) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.MOBILE) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.EMAIL) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.MAIDENNAME) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.DATEOFBIRTH) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.PLACEOFBIRTH) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.PRIVATEPHONE) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.FAX) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.PROFESSIONALPHONE) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.FISCALADDRRESS) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.FISCALZIPCODE) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.FISCALCITY) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.ADRESS) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.ZIPCODE) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.CITY) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.NATIONALITY) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.NATIONALITYIFDOUBLE) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.COUNTRY) }, new List<String>() { model.TargetCustomer.User.UserName , model.TargetCustomer.User.UserFirstName , model.TargetCustomer.User.UserMobilePhone , model.TargetCustomer.User.UserEmail , model.TargetCustomer.MaidenName , (model.TargetCustomer.DateOfBirth.HasValue) ? model.TargetCustomer.DateOfBirth.Value.ToString("dd/MM/yyyy") : null , model.TargetCustomer.PlaceOfBirth , model.TargetCustomer.PrivatePhone , model.TargetCustomer.Fax , model.TargetCustomer.ProfessionalPhone , model.TargetCustomer.FiscalAddrress , model.TargetCustomer.FiscalZipCode , model.TargetCustomer.FiscalCity , model.TargetCustomer.Adress , model.TargetCustomer.ZipCode , model.TargetCustomer.City , model.TargetCustomer.Nationality , model.TargetCustomer.NationalityIfDouble , model.TargetCustomer.Country } ); FindAndReplaceValue( optVal217, new List<int>() { Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.NATIONALITY) , Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.NATIONALITYIFDOUBLE) }, new List<String>() { model.TargetCustomer.Nationality , model.TargetCustomer.NationalityIfDouble } ); FindAndReplaceValue( optVal363, new List<int>() { Convert.ToInt16(NUMOPTIONATTRIBUTE_IDENTITE.COUNTRY) }, new List<String>() { model.TargetCustomer.Country } ); #region Affichage de la date dans "Origine de la relation" PP // récuperation des ReportOptionValue par l'idOption du parent var optVal233 = model.OptionValue.Where(opt => opt.idOption == 233).FirstOrDefault(); // créer si null if (optVal233 == null) { optVal233 = new ReportOptionValue() { idOption = 233, idReport = model.Report.idReport }; model.OptionValue.Add(optVal233); } // replacer les OptionAttributes FindAndReplaceValue( optVal233, new List<int>() { Convert.ToInt16(NUMOPTIONATTRIBUTE_ORIGINE_DE_LA_RELATION.CLIENT_DEPUIS_LE) }, new List<String>() { (model.TargetCustomer.RelationshipBeginingDate.HasValue) ? model.TargetCustomer.RelationshipBeginingDate.Value.ToString("dd/MM/yyyy") : null } ); #endregion #region GESTION RADIOBUTTON #region Identité "Etes vous majeur" GESTION DES RADIOBUTTON if (model.TargetCustomer.LegalCapacity != null) { model = ClearRadioSelectionByIdParent(model, 217); if (model.TargetCustomer.LegalCapacity.CompareTo("Mineur non émancipé") == 0) { var optVal542 = model.OptionData.Where(o => o.Option.NameKey == "ClientPP_Titulaire_022_Mineur").FirstOrDefault(); if (optVal542 != null) optVal542.IsSelected = true; } else if (model.TargetCustomer.LegalCapacity.CompareTo("Majeur capable") == 0) { var optVal218 = model.OptionData.Where(o => o.Option.idOption == 218).FirstOrDefault(); if (optVal218 != null) optVal218.IsSelected = true; } else if (model.TargetCustomer.LegalCapacity.CompareTo("Majeur sous tutelle") == 0) { var optVal219 = model.OptionData.Where(o => o.Option.idOption == 219).FirstOrDefault(); if (optVal219 != null) optVal219.IsSelected = true; } else if (model.TargetCustomer.LegalCapacity.CompareTo("Majeur sous curatelle") == 0) { var optVal220 = model.OptionData.Where(o => o.Option.idOption == 220).FirstOrDefault(); if (optVal220 != null) optVal220.IsSelected = true; } else if (model.TargetCustomer.LegalCapacity.CompareTo("Majeur sous sauvegarde de justice") == 0) { var optVal221 = model.OptionData.Where(o => o.Option.idOption == 221).FirstOrDefault(); if (optVal221 != null) optVal221.IsSelected = true; } else if (model.TargetCustomer.LegalCapacity.CompareTo("Mineur émancipé") == 0) { var optVal1149 = model.OptionData.Where(o => o.Option.idOption == 1149).FirstOrDefault(); if (optVal1149 != null) optVal1149.IsSelected = true; } } #endregion #region MARITAL STATUS if (model.TargetCustomer.MaritalStatus != null) { model = ClearRadioSelectionByIdParent(model, 277); if (model.TargetCustomer.MaritalStatus.Contains(_NON)) { var optVal278 = model.OptionData.Where(o => o.Option.idOption == 278).FirstOrDefault(); if (optVal278 != null) optVal278.IsSelected = true; } else if (model.TargetCustomer.MaritalStatus.Contains(_CELIBATAIRE)) { var optVal280 = model.OptionData.Where(o => o.Option.idOption == 280).FirstOrDefault(); if (optVal280 != null) optVal280.IsSelected = true; } else if (model.TargetCustomer.MaritalStatus.Contains(_DIVORCE)) { var optVal282 = model.OptionData.Where(o => o.Option.idOption == 282).FirstOrDefault(); if (optVal282 != null) optVal282.IsSelected = true; } else if (model.TargetCustomer.MaritalStatus.Contains(_SEPARE)) { var optVal283 = model.OptionData.Where(o => o.Option.idOption == 283).FirstOrDefault(); if (optVal283 != null) optVal283.IsSelected = true; } else if (model.TargetCustomer.MaritalStatus.Contains(_PACS)) { var optVal279 = model.OptionData.Where(o => o.Option.idOption == 279).FirstOrDefault(); if (optVal279 != null) optVal279.IsSelected = true; } else if (model.TargetCustomer.MaritalStatus.Contains(_VEUF)) { var optVal281 = model.OptionData.Where(o => o.Option.idOption == 281).FirstOrDefault(); if (optVal281 != null) optVal281.IsSelected = true; } else if (model.TargetCustomer.MaritalStatus.Contains(_CONCUBIN)) { var optVal284 = model.OptionData.Where(o => o.Option.idOption == 284).FirstOrDefault(); if (optVal284 != null) optVal284.IsSelected = true; } //else if (model.TargetCustomer.MaritalStatus.Contains(_MARIE)) //{ // var optVal218 = model.OptionData.Where(o => o.Option.idOption == 218).FirstOrDefault(); // if (optVal218 != null) optVal218.IsSelected = true; //} //else if (model.TargetCustomer.MaritalStatus.Contains(_UNION_LIBRE)) //{ // var optVal218 = model.OptionData.Where(o => o.Option.idOption == 218).FirstOrDefault(); // if (optVal218 != null) optVal218.IsSelected = true; //} } #region date de l'évènement if (model.TargetCustomer.WeddingDate.HasValue && model.TargetCustomer.WeddingDate.Value != null) { var optVal277 = model.OptionValue.Where(opt => opt.idOption == 277).FirstOrDefault(); // Liberalité if (optVal277 == null) { optVal277 = new ReportOptionValue() { idOption = 277, idReport = model.Report.idReport }; model.OptionValue.Add(optVal277); } FindAndReplaceValue( optVal277, new List<int>() { 178 }, new List<String>() { (model.TargetCustomer.WeddingDate.HasValue) ? model.TargetCustomer.WeddingDate.Value.ToString("dd/MM/yyyy") : null } ); } #endregion #endregion #region IsResident if (model.TargetCustomer.IsResident != null) { model = ClearRadioSelectionByIdParent(model, 222); if (model.TargetCustomer.IsResident.Value) { var optValResident = model.OptionData.Where(o => o.Option.NameKey == "ClientPP_Titulaire_026").FirstOrDefault(); if (optValResident != null) optValResident.IsSelected = true; } else { var optValNonResident = model.OptionData.Where(o => o.Option.NameKey == "ClientPP_Titulaire_027").FirstOrDefault(); if (optValNonResident != null) optValNonResident.IsSelected = true; } } #endregion #region GAFI(OptionAttribute) if (model.TargetCustomer.Gafi != null) { model = ClearRadioSelectionByIdParent(model, 225); if (model.TargetCustomer.Gafi.Value) { var optValOui = model.OptionData.Where(o => o.Option.NameKey == "ClientPP_Titulaire_030").FirstOrDefault(); if (optValOui != null) optValOui.IsSelected = true; } else { var optValNon = model.OptionData.Where(o => o.Option.NameKey == "ClientPP_Titulaire_031").FirstOrDefault(); if (optValNon != null) optValNon.IsSelected = true; } } #endregion #region OFFSHORE(OptionAttribute) if (model.TargetCustomer.OffShore != null) { model = ClearRadioSelectionByIdParent(model, 228); if (model.TargetCustomer.OffShore.Value) { var optValOui = model.OptionData.Where(o => o.Option.NameKey == "ClientPP_Titulaire_033").FirstOrDefault(); if (optValOui != null) optValOui.IsSelected = true; } else { var optValNon = model.OptionData.Where(o => o.Option.NameKey == "ClientPP_Titulaire_034").FirstOrDefault(); if (optValNon != null) optValNon.IsSelected = true; } } #endregion #region REGIME MATRIMONIAL (Seulement sur PP) if (model.TargetCustomer.MarriageSettlement != null) { model = ClearRadioSelectionByIdParent(model, 285); if (model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Contains("communaute legale")) { var optValMS = model.OptionData.Where(o => o.Option.idOption == 286).FirstOrDefault(); if (optValMS != null) optValMS.IsSelected = true; } else if (model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Contains("separation de biens")) { var optValMS = model.OptionData.Where(o => o.Option.idOption == 287).FirstOrDefault(); if (optValMS != null) optValMS.IsSelected = true; } else if (model.TargetCustomer.MarriageSettlement.ToLower().Replace('ê', 'e').Contains("participation aux acquets")) { var optValMS = model.OptionData.Where(o => o.Option.idOption == 288).FirstOrDefault(); if (optValMS != null) optValMS.IsSelected = true; } else if (model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Contains("communaute universelle") || model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Contains("regime de communaute universelle")) { var optValMS = model.OptionData.Where(o => o.Option.idOption == 289).FirstOrDefault(); if (optValMS != null) optValMS.IsSelected = true; } else if (model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Replace('ê', 'e').Replace('è', 'e').Contains("communaute reduite aux acquets (depuis 1966)") || model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Replace('ê', 'e').Contains("communaute reduite aux acquets (regime legal apres 1966)") || model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Replace('ê', 'e').Contains("Communaute réduite aux acquets")) { var optValMS = model.OptionData.Where(o => o.Option.idOption == 1148).FirstOrDefault(); if (optValMS != null) optValMS.IsSelected = true; } else if (model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Contains("regime legal avant 1er fevrier 1966") || model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Contains("communaute meubles et acquets (régime legal avant 1966)")) { var optVal_ = model.OptionData.Where(o => o.Option.idOption == 1158).FirstOrDefault(); if (optVal_ != null) optVal_.IsSelected = true; } else if (model.TargetCustomer.MarriageSettlement.ToLower().Replace('é', 'e').Replace('ê', 'e').Replace('è', 'e').Contains("separation de biens avec societe d’acquets")) { var optVal_ = model.OptionData.Where(o => o.Option.idOption == 1159).FirstOrDefault(); if (optVal_ != null) optVal_.IsSelected = true; } } #endregion #endregion #region Champ Profession // on ne fait ce traitement que lorsque model.TargetCustomer.Profession est différent de NULL // dans le cas contraire, on affiche les valeurs dans les tables ReportOptionAttribute et ReportOptionvalue if (!string.IsNullOrEmpty(model.TargetCustomer.Profession)) { model = ClearRadioSelectionByIdParent(model, 257); var optValSelectedVieProf = model.OptionData.Where(o => o.Option.idOption == 258).FirstOrDefault(); // check radio "En activité ou retraité" if (optValSelectedVieProf != null) optValSelectedVieProf.IsSelected = true; if (model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("retraite")) { var _optVal = model.OptionData.Where(o => o.Option.idOption == 263).FirstOrDefault(); // Retraité depuis le if (_optVal != null) _optVal.IsSelected = true; } else if (model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("medecin (salarie)")) { var _optVal = model.OptionData.Where(o => o.Option.idOption == 261).FirstOrDefault(); //Activité(s) salariée(s) if (_optVal != null) _optVal.IsSelected = true; replaceValue(model, 261, 160, model.TargetCustomer.Profession); replaceValue(model, 261, 161, "Santé et action sociale"); // valeur par defaut dropdownlist } else if (model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("cadre superieur") || model.TargetCustomer.Profession.ToLower().Contains("cadre d'entreprise")) { var _optVal = model.OptionData.Where(o => o.Option.idOption == 261).FirstOrDefault(); //Activité(s) salariée(s) if (_optVal != null) _optVal.IsSelected = true; replaceValue(model, 261, 160, model.TargetCustomer.Profession); } else if (model.TargetCustomer.Profession.ToLower().Contains("notaire") || model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("chef d'entreprise (de 1 à 9 salaries)") || model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("gerant majoritaire") || model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("médecin (prof. liberale)") || model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("avocat, avoue (prof. liberale)") || model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("expert comptable (prof. liberale)") || model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("veterinaire") || model.TargetCustomer.Profession.ToLower().Contains("agriculteur sur moyenne exploitation")) { var _optVal = model.OptionData.Where(o => o.Option.idOption == 262).FirstOrDefault(); // Activité(s) autre que salariée) if (_optVal != null) _optVal.IsSelected = true; replaceValue(model, 262, 163, model.TargetCustomer.Profession); } else if (model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("etudiant") || model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("lyceen")) // Etudiant / Lycéen" { var _optVal = model.OptionData.Where(o => o.Option.idOption == 1144).FirstOrDefault(); if (_optVal != null) _optVal.IsSelected = true; } #region "redmine 4577" else if (model.TargetCustomer.Profession.ToLower().Contains("sans profession")) { var _optVal = model.OptionData.Where(o => o.Option.idOption == 260).FirstOrDefault(); if (_optVal != null) _optVal.IsSelected = true; } else if (model.TargetCustomer.Profession.ToLower().Replace('é', 'e').Contains("medecin generaliste")) { var _optVal = model.OptionData.Where(o => o.Option.idOption == 262).FirstOrDefault(); // Activité(s) autre que salariée if (_optVal != null) _optVal.IsSelected = true; replaceValue(model, 262, 163, model.TargetCustomer.Profession); // valeur du textbox Métier replaceValue(model, 262, 164, "Santé et action sociale"); // valeur par defaut dropdownlist } #endregion else { var _optVal = model.OptionData.Where(o => o.Option.idOption == 261).FirstOrDefault(); //Activité(s) salariée(s) if (_optVal != null) _optVal.IsSelected = true; replaceValue(model, 261, 160, model.TargetCustomer.Profession); } } #endregion #region Libéralité var optVal1147 = model.OptionValue.Where(opt => opt.idOption == 1147).FirstOrDefault(); // Liberalité if (optVal1147 == null) { optVal1147 = new ReportOptionValue() { idOption = 1147, idReport = model.Report.idReport }; model.OptionValue.Add(optVal1147); } FindAndReplaceValue( optVal1147, new List<int>() { 721 }, new List<String>() { model.TargetCustomer.Liberality } ); #endregion #region Conjoint //Désactiver temporairement en attendant une solution pour enreg auto bool activate = false; if (activate) { CustomerProspectRelation objCPEnRelation = CustomerProspectRelationBL.GetCustomerRelationByIdCustomerProspect1(model.TargetCustomer.idCustomer); if (objCPEnRelation != null && objCPEnRelation.CustomerProspect1 != null) { var optVal290 = model.OptionValue.Where(opt => opt.idOption == 290).FirstOrDefault(); if (optVal290 == null) { optVal290 = new ReportOptionValue() { idOption = 290, idReport = model.Report.idReport }; model.OptionValue.Add(optVal290); } FindAndReplaceValue( optVal290, new List<int>() { 180, 181, 182, 183, 642, 184, 185, 186, 187, 188, 190, 643 }, new List<String>() { objCPEnRelation.CustomerProspect1.User.UserName, objCPEnRelation.CustomerProspect1.MaidenName, objCPEnRelation.CustomerProspect1.User.UserFirstName, (objCPEnRelation.CustomerProspect1.DateOfBirth.HasValue) ? objCPEnRelation.CustomerProspect1.DateOfBirth.Value.ToString("dd/MM/yyyy") : null, objCPEnRelation.CustomerProspect1.PlaceOfBirth, objCPEnRelation.CustomerProspect1.PrivatePhone, objCPEnRelation.CustomerProspect1.User.UserMobilePhone, objCPEnRelation.CustomerProspect1.User.UserEmail, objCPEnRelation.CustomerProspect1.Adress, objCPEnRelation.CustomerProspect1.Profession, objCPEnRelation.CustomerProspect1.Nationality, objCPEnRelation.CustomerProspect1.NationalityIfDouble } ); #region Pays de residence var optValPaysDeResidence = model.OptionValue.Where(opt => opt.idOption == 1113).FirstOrDefault(); if (optValPaysDeResidence == null) { optValPaysDeResidence = new ReportOptionValue() { idOption = 1113, idReport = model.Report.idReport }; model.OptionValue.Add(optValPaysDeResidence); } FindAndReplaceValue( optValPaysDeResidence, new List<int>() { 641 }, new List<String>() { objCPEnRelation.CustomerProspect1.Country } ); #endregion #region GAFI(OptionAttribute) if (objCPEnRelation.CustomerProspect1.Gafi != null) { model = ClearRadioSelectionByIdParent(model, 1114); if (objCPEnRelation.CustomerProspect1.Gafi.Value) { var optValOui = model.OptionData.Where(o => o.Option.idOption == 1115).FirstOrDefault(); if (optValOui != null) optValOui.IsSelected = true; } else { var optValNon = model.OptionData.Where(o => o.Option.idOption == 1116).FirstOrDefault(); if (optValNon != null) optValNon.IsSelected = true; } } #endregion #region OFFSHORE(OptionAttribute) if (objCPEnRelation.CustomerProspect1.OffShore != null) { model = ClearRadioSelectionByIdParent(model, 1117); if (objCPEnRelation.CustomerProspect1.OffShore.Value) { var optValOui = model.OptionData.Where(o => o.Option.idOption == 1118).FirstOrDefault(); if (optValOui != null) optValOui.IsSelected = true; } else { var optValNon = model.OptionData.Where(o => o.Option.idOption == 1119).FirstOrDefault(); if (optValNon != null) optValNon.IsSelected = true; } } #endregion #region IsResident if (objCPEnRelation.CustomerProspect1.IsResident != null) { model = ClearRadioSelectionByIdParent(model, 1110); if (objCPEnRelation.CustomerProspect1.IsResident.Value) { var optValResident = model.OptionData.Where(o => o.Option.idOption == 1111).FirstOrDefault(); if (optValResident != null) optValResident.IsSelected = true; } else { var optValNonResident = model.OptionData.Where(o => o.Option.idOption == 1112).FirstOrDefault(); if (optValNonResident != null) optValNonResident.IsSelected = true; } } #endregion #region Identité "Etes vous majeur" GESTION DES RADIOBUTTON if (objCPEnRelation.CustomerProspect1.LegalCapacity != null) { model = ClearRadioSelectionByIdParent(model, 1151); if (objCPEnRelation.CustomerProspect1.LegalCapacity.CompareTo("Mineur non émancipé") == 0) { var optValLegalCapacity = model.OptionData.Where(o => o.Option.idOption == 1156).FirstOrDefault(); if (optValLegalCapacity != null) optValLegalCapacity.IsSelected = true; } else if (objCPEnRelation.CustomerProspect1.LegalCapacity.CompareTo("Majeur capable") == 0) { var optValLegalCapacity = model.OptionData.Where(o => o.Option.idOption == 1152).FirstOrDefault(); if (optValLegalCapacity != null) optValLegalCapacity.IsSelected = true; } else if (objCPEnRelation.CustomerProspect1.LegalCapacity.CompareTo("Majeur sous tutelle") == 0) { var optValLegalCapacity = model.OptionData.Where(o => o.Option.idOption == 1153).FirstOrDefault(); if (optValLegalCapacity != null) optValLegalCapacity.IsSelected = true; } else if (objCPEnRelation.CustomerProspect1.LegalCapacity.CompareTo("Majeur sous curatelle") == 0) { var optValLegalCapacity = model.OptionData.Where(o => o.Option.idOption == 1154).FirstOrDefault(); if (optValLegalCapacity != null) optValLegalCapacity.IsSelected = true; } else if (objCPEnRelation.CustomerProspect1.LegalCapacity.CompareTo("Majeur sous sauvegarde de justice") == 0) { var optValLegalCapacity = model.OptionData.Where(o => o.Option.idOption == 1155).FirstOrDefault(); if (optValLegalCapacity != null) optValLegalCapacity.IsSelected = true; } else if (objCPEnRelation.CustomerProspect1.LegalCapacity.CompareTo("Mineur émancipé") == 0) { var optValLegalCapacity = model.OptionData.Where(o => o.Option.idOption == 1157).FirstOrDefault(); if (optValLegalCapacity != null) optValLegalCapacity.IsSelected = true; } } #endregion } } #endregion } return actionResult; }
public List<ReportOptionValue> GetSelectedOptionsFromPostData(RecueilModel _dataModel, int idParent) { List<ReportOptionValue> retVal = new List<ReportOptionValue>(); Option ParentOption = _dataModel.Option.Where(o => o.idOption.Equals(idParent)).FirstOrDefault(); if (ParentOption != null) { if (ParentOption.idOption == 285) { } var ChildOptions = _dataModel.Option.Where(o => o.idParent.HasValue && o.idParent.Value.Equals(ParentOption.idOption)); foreach (var childOp in ChildOptions) { bool isSelected = !ParentOption.SingleOption.HasValue; string idPrefix = string.Empty; if (ParentOption.SingleOption.HasValue) { if (ParentOption.SingleOption.Value) idPrefix = "hdn_rb_{0}_{1}"; else idPrefix = "hdn_chk_{0}_{1}"; string postDataName = string.Format(idPrefix, childOp.idParent.Value, childOp.idOption); if (!string.IsNullOrEmpty(Request.Params[postDataName]) && Request.Params[postDataName].ToLower().Equals("c")) { isSelected = true; } } if (isSelected) { ReportOptionValue newVal = new ReportOptionValue(); newVal.idReport = _dataModel.Report.idReport; newVal.idOption = childOp.idOption; newVal.Option = childOp; retVal.Add(newVal); if (_dataModel.Option.Count(o => o.idParent.HasValue && o.idParent.Value.Equals(childOp.idOption)) > 0) { retVal.AddRange(GetSelectedOptionsFromPostData(_dataModel, childOp.idOption)); } } } } return retVal; }
public List<ReportOptionValue> GetSelectedOptions(RecueilModel _dataModel) { List<ReportOptionValue> retVal = new List<ReportOptionValue>(); var ParentOptions = _dataModel.Option.Where(o => !o.idParent.HasValue); if (ParentOptions != null) { foreach (var parent in ParentOptions) { ReportOptionValue _parent = new ReportOptionValue(); _parent.idReport = _dataModel.Report.idReport; _parent.idOption = parent.idOption; _parent.Option = parent; retVal.Add(_parent); var selectedChild = GetSelectedOptionsFromPostData(_dataModel, parent.idOption); if (selectedChild.Count > 0) { ReportOptionValue newVal = new ReportOptionValue(); newVal.idReport = _dataModel.Report.idReport; newVal.idOption = parent.idOption; newVal.Option = parent; retVal.Add(newVal); retVal.AddRange(selectedChild); } } } return retVal; }