// // 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"; }
private string BuildSignatureLog(Report report) { string signatureLog = string.Empty; //Conseiller name string userAdviserName = string.Empty; if (report.User != null) { userAdviserName = report.User.EntireName + "<br />"; } if (report.Status == ReportBL.Status.InProgress.ToString()) { signatureLog = string.Empty; } else if (report.Status == ReportBL.Status.WaitingForAdviserSignature.ToString()) { //If not signed by adviser if (!report.SignedByCustomer) { signatureLog = string.Format("<li>{1}<br />{0}</li>", userAdviserName, languageDataSignature.GetContent("attente_sign_conseiller")); } else { //Already signed by the client signatureLog = string.Format(@"<li>{3}<br />{4} {0}</li> <li>{2}<br />{1}</li>", report.DateCustomerSignature.Value.ToShortDateString(), userAdviserName, languageDataSignature.GetContent("attente_sign_conseiller"), languageDataSignature.GetContent("signe_par_client"), languageDataSignature.GetContent("le")); } } else if (report.Status == ReportBL.Status.WaitingForClientSignature.ToString()) { //If not signed by adviser if (!report.SignedByAdviser) { signatureLog = string.Format(@"<li>{0}</li>", languageDataSignature.GetContent("attente_sign_client")); } else { signatureLog = string.Format(@"<li>{3}<br />{0}{4} {1}</li> <li>{2}</li>", userAdviserName, report.DateAdviserSignature.Value.ToShortDateString(), languageDataSignature.GetContent("attente_sign_client"), languageDataSignature.GetContent("signe_par_conseiller"), languageDataSignature.GetContent("le")); } //Relance email if (!string.IsNullOrEmpty(report.DatesSendReminderEmail)) { signatureLog += string.Format("{0}<br />{1}", _languageDataSideBar.GetContent("reminder_email_sent_on"), report.DatesSendReminderEmail.Replace(";", "<br />")); } } else if (report.Status == ReportBL.Status.WaitingForClientUpdate.ToString()) { signatureLog = string.Format(@"<li>{0}</li>", languageDataSignature.GetContent("attente_info_sign_client")); } else if (report.Status == ReportBL.Status.Completed.ToString()) { //Case signed manually if (!report.DateAdviserSignature.HasValue) { signatureLog = string.Format(@"<li>{0}</li>", languageDataSignature.GetContent("signe_manu_conseiller_client")); } else { string adviserText = string.Format(@"<li>{2}<br />{0}{3} {1}</li>", userAdviserName, report.DateAdviserSignature.Value.ToShortDateString(), languageDataSignature.GetContent("signe_par_conseiller"), languageDataSignature.GetContent("le")); string clientText = string.Format(@"<li>{1}<br />{2} {0}</li>", report.DateCustomerSignature.Value.ToShortDateString(), languageDataSignature.GetContent("signe_par_client"), languageDataSignature.GetContent("le")); if (DateTime.Compare(report.DateAdviserSignature.Value, report.DateCustomerSignature.Value) < 0) //Conseille signe en premier { signatureLog = string.Concat(adviserText, clientText); } else { signatureLog = string.Concat(clientText, adviserText); } } } return signatureLog; }
private Report CopyLatestReport(Report latestReport) { Report report = new Report() { idReport = Business.Utility.GuidHelper.GenerateGuid(), idCustomerProspect = latestReport.idCustomerProspect, DateCreated = DateTime.Now, DateUpdated = DateTime.Now, //needed in orderbydescending dateupdated (case get latest report) ? IsOriginal = true, Status = ReportBL.Status.InProgress.ToString(), }; try { //Create report report = ReportBL.CreateReport(report); //Copy values : get latest and copy them to new report List<ReportOptionValue> reportOptionValues = ReportOptionBL.GetOptionValuesByIdReport(latestReport.idReport); ReportOptionBL.SaveReportOptionValues(report, reportOptionValues); } catch (Exception ex) { Business.Log.Log.AppendException(ex); } return report; }
/// <summary> /// Enregistre l'indicateur d'enregistrement en base /// </summary> /// <param name="pReport"></param> /// <param name="pPageName"></param> public void SaveIndicator(Report pReport, string pPageName) { ///TODO : Create fields for this. ///AND Show image check in left menu according to these fields in sidebar PM/PP switch (pPageName) { case _Page_TitulairePP: case _Page_TitulairePM: pReport.IsTitulaireSaved = true; break; case _Page_PersonnePP: case _Page_PersonnePM: return; case _Page_EntretienPP: case _Page_EntretienPM: pReport.IsEntretienSaved = true; break; case _Page_RevenusPP: case _Page_RevenusPM: pReport.IsRevenuSaved = true; break; case _Page_CreditsPP: pReport.IsCreditSaved = true; break; case _Page_ChargesPP: pReport.IsChargesSaved = true; break; case _Page_OrientationsPP: case _Page_OrientationsPM: pReport.IsOrientationSaved = true; break; case _Page_ProfilPP: case _Page_ProfilPM: pReport.IsProfilSaved = true; break; case _Page_CategorisationPP: case _Page_CategorisationPM: pReport.IsCategorisationSaved = true; break; } ReportBL.UpdateReport(pReport); }
private Report CreateEmptyReport(Guid _idCustomer) { Report report = new Report(); report.idCustomerProspect = _idCustomer; report.DateCreated = DateTime.Now; report.DateUpdated = DateTime.Now; //needed in orderbydescending dateupdated (case get latest report) ? report.IsOriginal = true; report.Status = ReportBL.Status.InProgress.ToString(); //New : create empty report report.idReport = Business.Utility.GuidHelper.GenerateGuid(); report = ReportBL.CreateReport(report); return report; }