public static List<ag_upsideo_support> GetSupportsByCriteria(Guid idcrmcabinet, ag_upsideo_support criteria) { using (var ctx = new UpsilabEntities()) { ////var entities = ctx.ag_upsideo_support.Where(s => s.idcrmcabinet == idcrmcabinet).ToList(); var entities = ctx.ag_upsideo_support.Where(s => s.idcrmcabinet == idcrmcabinet); if (criteria != null) { if (criteria.idtypesupport > 0) { //entities = entities.Where(c => c.idtypesupport == criteria.idtypesupport).ToList(); entities = entities.Where(c => c.idtypesupport == criteria.idtypesupport); } if (criteria.idsg > 0) { //entities = entities.Where(c => c.idsg == criteria.idsg).ToList(); entities = entities.Where(c => c.idsg == criteria.idsg); } if (criteria.idElig > 0) { //entities = entities.Where(c => c.idElig == criteria.idElig).ToList(); entities = entities.Where(c => c.idElig == criteria.idElig); } if (!string.IsNullOrEmpty(criteria.codeisin) || !string.IsNullOrEmpty(criteria.nomsupport)) { if (!string.IsNullOrEmpty(criteria.codeisin) && string.IsNullOrEmpty(criteria.nomsupport)) { //entities = entities.Where(c => c.codeisin.Contains(criteria.codeisin)).ToList(); entities = entities.Where(c => c.codeisin.Contains(criteria.codeisin)); } else if (string.IsNullOrEmpty(criteria.codeisin) && !string.IsNullOrEmpty(criteria.nomsupport)) { //entities = entities.Where(c => c.nomsupport.Contains(criteria.nomsupport)).ToList(); entities = entities.Where(c => c.nomsupport.Contains(criteria.nomsupport)); } else { //entities = entities.Where(c => (c.codeisin.Contains(criteria.codeisin) || c.nomsupport.Contains(criteria.nomsupport))).ToList(); entities = entities.Where(c => (c.codeisin.Contains(criteria.codeisin) || c.nomsupport.Contains(criteria.nomsupport))); } } } return entities.Distinct().ToList(); } }
public static int AddSupport(ag_upsideo_support support) { using (var ctx = new UpsilabEntities()) { //vérifier si ce n'est pas dans referentiel, puis ajouter ag_upsideo_referentiel supref = getsupportrefbyisin(support.codeisin); if (supref == null) { supref = Addreferentiel(support); // support.idrefsupport = supref.idrefsupport; ctx.ag_upsideo_support.AddObject(support); ctx.SaveChanges(); } else { support.idrefsupport = supref.idrefsupport; ctx.ag_upsideo_support.AddObject(support); ctx.SaveChanges(); } return support.idfrontsupport; } }
public static ag_upsideo_cptrelsupports UpdateFondCapitalRisque(Guid idcgp, ag_upsideo_compte compte, int qte, double prixunitaire) { using (UpsilabEntities db = new UpsilabEntities()) { var cgp = db.ag_upsideo_cgp.FirstOrDefault(x => x.idcgp == idcgp); if (cgp == null) return null; db.Connection.Open(); using (var dbContextTransaction = db.Connection.BeginTransaction()) { var nomsupport = "Fond capital risque"; var referentiel = db.ag_upsideo_referentiel.FirstOrDefault(x => x.nomsupport == nomsupport); ag_upsideo_cptrelsupports cptesupport = null; ag_upsideo_support support = null; try { // //Referentiel // if (referentiel == null) { referentiel = new ag_upsideo_referentiel { nomsupport = nomsupport, idtypesupport = 1, datevl = DateTime.Now, vl = 0 }; db.ag_upsideo_referentiel.AddObject(referentiel); db.SaveChanges(); } // //Support // support = db.ag_upsideo_support.FirstOrDefault(x => x.idrefsupport == referentiel.idrefsupport && x.idcrmcabinet == cgp.idcrmcabinet && x.idtypesupport == 1 && x.nomsupport == nomsupport && x.deleted == "n" ); if (support == null) { support = new ag_upsideo_support { idrefsupport = referentiel.idrefsupport, idcrmcabinet = cgp.idcrmcabinet, idtypesupport = 1, nomsupport = referentiel.nomsupport, deleted = "n", datevl = DateTime.Now, vl = 0, Performance12mois = 0, Performance3112 = 0, Performance60mois = 0, Vleuro = 0, Volatilite12mois = 0, Volatilite60mois = 0 }; db.ag_upsideo_support.AddObject(support); db.SaveChanges(); } // //Compte // if (compte.Idfrontcompte <= 0) { db.ag_upsideo_compte.AddObject(compte); } else { var tmpcompte = db.ag_upsideo_compte.FirstOrDefault(x => x.Idfrontcompte == compte.Idfrontcompte); tmpcompte.designation = compte.designation; tmpcompte.totalcompte = compte.totalcompte; tmpcompte.dds = compte.dds; } db.SaveChanges(); // //Support Compte // cptesupport = db.ag_upsideo_cptrelsupports.FirstOrDefault(x => x.Idfrontcompte == compte.Idfrontcompte && x.idfrontsupport == support.idfrontsupport); if (cptesupport == null) { cptesupport = new ag_upsideo_cptrelsupports { datemaj = DateTime.Now, Idfrontcompte = compte.Idfrontcompte, idfrontsupport = support.idfrontsupport, pru = prixunitaire, qte = qte }; db.ag_upsideo_cptrelsupports.AddObject(cptesupport); db.SaveChanges(); } else { cptesupport.pru = prixunitaire; cptesupport.qte = qte; db.SaveChanges(); } // // // dbContextTransaction.Commit(); return cptesupport; } catch (Exception e) { dbContextTransaction.Rollback(); Log.Log.AppendException(e); throw new Exception("SavingError"); } } } }
public static ag_upsideo_support GetLiquiditeSupportByCabinet(Guid idCrmCabinet) { using (var ctx = new UpsilabEntities()) { var liquidite_support = ctx.ag_upsideo_support.FirstOrDefault(x => x.idcrmcabinet == idCrmCabinet && x.nomsupport == "Liquidités"); if (liquidite_support == null) { var liquidite_ref = ctx.ag_upsideo_referentiel.FirstOrDefault(x => x.nomsupport == "Liquidités"); liquidite_support = new ag_upsideo_support { idrefsupport = liquidite_ref.idrefsupport, idcrmcabinet = idCrmCabinet, idsg = -1, idtypesupport = -1, nomsupport = liquidite_ref.nomsupport, deleted = "n" }; ctx.ag_upsideo_support.AddObject(liquidite_support); ctx.SaveChanges(); } return liquidite_support; } }
public static ag_upsideo_support AddObjetcSupport(ag_upsideo_support support) { using (var ctx = new UpsilabEntities()) { ctx.ag_upsideo_support.AddObject(support); ctx.SaveChanges(); return support; } }
public static int UpdateSupport(ag_upsideo_support support) { using (var ctx = new UpsilabEntities()) { ctx.ag_upsideo_support.Attach(support); ctx.ObjectStateManager.ChangeObjectState(support, System.Data.EntityState.Modified); ctx.SaveChanges(); return support.idfrontsupport; } }
public static ag_upsideo_support AddSupport(Guid idcrmcabinet, int idref) { using (UpsilabEntities db = new UpsilabEntities()) { var refer = db.ag_upsideo_referentiel.FirstOrDefault(x => x.idrefsupport == idref); if (refer != null) { var newsup = new ag_upsideo_support() { idrefsupport = refer.idrefsupport, idcrmcabinet = idcrmcabinet, idsg = 0, idtypesupport = refer.idtypesupport, nomsupport = refer.nomsupport, datevl = refer.datevl, vl = refer.vl, codeisin = refer.codeisin, devise = refer.devise, niveaurisque = refer.niveaurisque, categorisation = refer.categorisation, Vleuro = refer.Vleuro, actions = refer.actions, obligations = refer.obligations, monetaire = refer.monetaire, immobilier = refer.immobilier, autres = refer.autres, Performance12mois = refer.Performance12mois, Performance3112 = refer.Performance3112, Performance60mois = refer.Performance60mois, Volatilite12mois = refer.Volatilite12mois, Volatilite60mois = refer.Volatilite60mois, deleted = "n", fiche_prospectus = refer.fiche_prospectus, fiche_dici = refer.fiche_dici }; db.ag_upsideo_support.AddObject(newsup); db.SaveChanges(); return newsup; } return null; } }
public static ag_upsideo_referentiel Addreferentiel(ag_upsideo_support support) { using (UpsilabEntities db = new UpsilabEntities()) { var newsup = new ag_upsideo_referentiel() { idtypesupport = support.idtypesupport, nomsupport = support.nomsupport, datevl = support.datevl, vl = support.vl, codeisin = support.codeisin, devise = support.devise, niveaurisque = support.niveaurisque, categorisation = support.categorisation, Vleuro = support.Vleuro, actions = support.actions, obligations = support.obligations, monetaire = support.monetaire, immobilier = support.immobilier, autres = support.autres, Performance12mois = support.Performance12mois, Performance3112 = support.Performance3112, Performance60mois = support.Performance60mois, Volatilite12mois = support.Volatilite12mois, Volatilite60mois = support.Volatilite60mois, fiche_prospectus = support.fiche_prospectus, fiche_dici = support.fiche_dici }; db.ag_upsideo_referentiel.AddObject(newsup); db.SaveChanges(); return newsup; } }
//[HttpPost] public ActionResult RechercheOpvm() { List<ag_upsideo_support> listeSupport = new List<ag_upsideo_support>(); try { string codeisin = Request.Form["codeisin"] != null ? Request.Form["codeisin"].ToString() : ""; string nomsupport = Request.Form["nomsupport"] != null ? Request.Form["nomsupport"].ToString() : ""; if (Request.Params["page"] != null || Request.Params["sort"] != null) { SessionManager.Get<string>(AgregCodeisinSessionKey, out codeisin); SessionManager.Get<string>(AgregLibelleSessionKey, out nomsupport); } else { SessionManager.Set<string>(AgregCodeisinSessionKey, codeisin); SessionManager.Set<string>(AgregLibelleSessionKey, nomsupport); } SessionManager.Get<List<ag_upsideo_support>>(agupsideocompteBL.AgregListeSupportIdSessionKey, out listeSupport); Guid idAgregCGP = SessionManager.GetUserSession().idAgregCGP.Value; ag_upsideo_cgp cgp = AgregCgpBL.GetCgpById(idAgregCGP); //if (listeSupport == null) //{ using (UpsilabEntities db = new UpsilabEntities()) { var entities = db.ag_upsideo_support.Where(s => s.idfrontsupport != 0 && s.idcrmcabinet == cgp.idcrmcabinet); if (!string.IsNullOrEmpty(codeisin) && !string.IsNullOrEmpty(nomsupport)) { entities = entities.Where(l => l.codeisin.Contains(codeisin) || l.nomsupport.Contains(nomsupport)); } else if (!string.IsNullOrEmpty(codeisin)) { entities = entities.Where(l => l.codeisin.Contains(codeisin)); } else if (!string.IsNullOrEmpty(nomsupport)) { entities = entities.Where(l => l.nomsupport.Contains(nomsupport)); } listeSupport = entities.Distinct().ToList(); SessionManager.Set<List<ag_upsideo_support>>(agupsideocompteBL.AgregListeSupportIdSessionKey, listeSupport); } //} //supports présent dans la table support pour le cabinet //+ les supports dans la table référentiels moins ceux en communs entre les 2 tables using (UpsilabEntities db = new UpsilabEntities()) { ag_upsideo_cgp cgpagreg = db.ag_upsideo_cgp.Where(c => c.idcgp == idAgregCGP).FirstOrDefault(); List<ag_upsideo_referentiel> listereferentiel = new List<ag_upsideo_referentiel>(); var entitiesRef = db.ag_upsideo_referentiel.Where(s => s.idrefsupport != 0); if (!string.IsNullOrEmpty(codeisin) && !string.IsNullOrEmpty(nomsupport)) { entitiesRef = entitiesRef.Where(l => l.codeisin.Contains(codeisin) || l.nomsupport.Contains(nomsupport)); } else if (!string.IsNullOrEmpty(codeisin)) { entitiesRef = entitiesRef.Where(l => l.codeisin.Contains(codeisin)); } else if (!string.IsNullOrEmpty(nomsupport)) { entitiesRef = entitiesRef.Where(l => l.nomsupport.Contains(nomsupport)); } listereferentiel = entitiesRef.Distinct().ToList(); listereferentiel = listereferentiel.Where(r => !listeSupport.Select(s => s.idrefsupport).ToList().Contains(r.idrefsupport)).ToList(); foreach (ag_upsideo_referentiel r in listereferentiel) { ag_upsideo_support newsup = new ag_upsideo_support() { idrefsupport = r.idrefsupport, idcrmcabinet = cgpagreg.idcrmcabinet, idsg = 0, idtypesupport = r.idtypesupport, nomsupport = r.nomsupport, datevl = r.datevl, vl = r.vl, codeisin = r.codeisin, devise = r.devise, niveaurisque = r.niveaurisque, categorisation = r.categorisation, Vleuro = r.Vleuro, actions = r.actions, obligations = r.obligations, monetaire = r.monetaire, immobilier = r.immobilier, autres = r.autres, Performance12mois = r.Performance12mois, Performance3112 = r.Performance3112, Performance60mois = r.Performance60mois, Volatilite12mois = r.Volatilite12mois, Volatilite60mois = r.Volatilite60mois, deleted = "n", fiche_prospectus = r.fiche_prospectus, fiche_dici = r.fiche_dici }; listeSupport.Add(newsup); } } } catch(Exception ex) { ViewBag.Style = "style=color:red"; ViewBag.Message = "Erreur: " + ex.Message; Upsilab.Business.Log.Log.AppendException(ex); } return PartialView("ResultatRecherchePartial", listeSupport); }
public ActionResult InsertOperation(ag_upsideo_operation _operation) { int idCompte = 0; SessionManager.Get<int>(agupsideocompteBL.AgregCompteIdSessionKey, out idCompte); Guid idAgregCGP = SessionManager.GetUserSession().idAgregCGP.Value; ag_upsideo_cgp cgpagreg = AgregCgpBL.GetCgpById(idAgregCGP); try { int idoperation = 0; idoperation = _operation.idop; ag_upsideo_operation newoperation; ag_upsideo_cptrelsupports cptsupport; ag_upsideo_cptrelsupports_histo cptsupporthisto; ag_upsideo_compte compte; ag_upsideo_support support; bool isValorisation = false; string action = "historique"; if (Request.Form["Isvalorisation"] != null && Convert.ToInt32(Request.Form["Isvalorisation"]) == 1) { isValorisation = true; action = "valoriser"; } //il faut en 1er créer le support selectionné depuis le réferentiel dans la table support //ensuite prendre le support depuis la table support if (_operation.idfrontsupport == 0 && Request.Form["idrefsupport"] != null && Convert.ToInt32(Request.Form["idrefsupport"]) != 0) { using (UpsilabEntities db = new UpsilabEntities()) { int idrefsupport = Convert.ToInt32(Request.Form["idrefsupport"]); ag_upsideo_referentiel refer = db.ag_upsideo_referentiel.Where(r=>r.idrefsupport == idrefsupport).FirstOrDefault(); if (refer != null) { ag_upsideo_support newsup = new ag_upsideo_support() { idrefsupport = refer.idrefsupport, idcrmcabinet = cgpagreg.idcrmcabinet, idsg = 0, idtypesupport = refer.idtypesupport, nomsupport = refer.nomsupport, datevl = refer.datevl, vl = refer.vl, codeisin = refer.codeisin, devise = refer.devise, niveaurisque = refer.niveaurisque, categorisation = refer.categorisation, Vleuro = refer.Vleuro, actions = refer.actions, obligations = refer.obligations, monetaire = refer.monetaire, immobilier = refer.immobilier, autres = refer.autres, Performance12mois = refer.Performance12mois, Performance3112 = refer.Performance3112, Performance60mois = refer.Performance60mois, Volatilite12mois = refer.Volatilite12mois, Volatilite60mois = refer.Volatilite60mois, deleted = "n", fiche_prospectus = refer.fiche_prospectus, fiche_dici = refer.fiche_dici }; db.ag_upsideo_support.AddObject(newsup); db.SaveChanges(); //set new support _operation.idfrontsupport = newsup.idfrontsupport; } } } using (UpsilabEntities db = new UpsilabEntities()) { newoperation = db.ag_upsideo_operation.Where(m => m.idop == idoperation).FirstOrDefault(); if (idoperation == 0) { newoperation = new ag_upsideo_operation() { Idfrontcompte = idCompte, libelleoperation = _operation.libelleoperation, qte = _operation.qte, vl = _operation.vl, frais = _operation.frais, idfrontsupport = _operation.idfrontsupport, action = action, dateope = _operation.dateope, deleted = "n" }; //insert db.ag_upsideo_operation.AddObject(newoperation); } else { newoperation.dateope = _operation.dateope; newoperation.libelleoperation = _operation.libelleoperation; newoperation.qte = _operation.qte; newoperation.vl = _operation.vl; newoperation.frais = _operation.frais; newoperation.idfrontsupport = _operation.idfrontsupport; newoperation.action = action; } //obtenir le compte compte = db.ag_upsideo_compte.Where(c => c.Idfrontcompte == idCompte && (c.deleted == null || (c.deleted != null && c.deleted == "n"))).FirstOrDefault(); //gerer la table relation if(_operation.idfrontsupport != 0 && isValorisation) { double qteavantoperation = 0; double qteoperation = 0; double vlderniereoperation = 0; double vloperation = 0; bool isNewRelation = false; support = db.ag_upsideo_support.Where(s => s.idfrontsupport == _operation.idfrontsupport).FirstOrDefault(); cptsupport = db.ag_upsideo_cptrelsupports.Include("ag_upsideo_support").Where(c => c.Idfrontcompte == _operation.Idfrontcompte && c.idfrontsupport == _operation.idfrontsupport).FirstOrDefault(); cptsupporthisto = db.ag_upsideo_cptrelsupports_histo.Where(c => c.idfrontcompte == _operation.Idfrontcompte && c.idfrontsupport == _operation.idfrontsupport).OrderByDescending(o=>o.datehisto).FirstOrDefault(); if (cptsupport != null) { //update //maj pru if (cptsupporthisto != null) { qteavantoperation = cptsupport.qte.HasValue ? cptsupport.qte.Value : 0; qteoperation = _operation.qte.HasValue ? _operation.qte.Value : 0; vlderniereoperation = cptsupporthisto.vl.HasValue ? cptsupporthisto.vl.Value : 0; //vloperation = (cptsupport.ag_upsideo_support != null && cptsupport.ag_upsideo_support.vl.HasValue) ? cptsupport.ag_upsideo_support.vl.Value : 0; vloperation = _operation.vl.HasValue ? _operation.vl.Value : 0; if (_operation.libelleoperation.ToLower().Contains("vente")) { cptsupport.pru = (qteavantoperation == qteoperation) ? 0 :((qteavantoperation * vlderniereoperation) - (qteoperation * vloperation)) / (qteavantoperation - qteoperation); } else { cptsupport.pru = ((qteavantoperation * vlderniereoperation) + (qteoperation * vloperation)) / (qteavantoperation + qteoperation); } } //maj qté if (_operation.libelleoperation.ToLower().Contains("vente") && _operation.qte.HasValue && cptsupport.qte.HasValue) { cptsupport.qte = (cptsupport.qte.HasValue ? cptsupport.qte.Value : 0) - (_operation.qte.HasValue ? _operation.qte.Value : 0); } else if (_operation.qte.HasValue && cptsupport.qte.HasValue) { cptsupport.qte = cptsupport.qte.Value + _operation.qte.Value; } cptsupport.datemaj = DateTime.Now; } else { //ajout isNewRelation = true; //ajout pru double pru = 0; //vloperation = support.vl.HasValue ? support.vl.Value : 0; vloperation = _operation.vl.HasValue ? _operation.vl.Value : 0; if (!_operation.libelleoperation.ToLower().Contains("vente")) { pru = vloperation; } //ajout qté double qte = 0; if (!_operation.libelleoperation.ToLower().Contains("vente") && _operation.qte.HasValue) { qte = _operation.qte.Value; } cptsupport = new ag_upsideo_cptrelsupports() { Idfrontcompte = _operation.Idfrontcompte, idfrontsupport = _operation.idfrontsupport, qte = qte, pru = pru, datemaj = DateTime.Now }; db.ag_upsideo_cptrelsupports.AddObject(cptsupport); } //update pru liquidité double montanthorsfrais = (_operation.qte.HasValue ? _operation.qte.Value : 0) * (_operation.vl.HasValue ? _operation.vl.Value : 0); double liquidite= 0; if (_operation.libelleoperation.ToLower().Contains("vente")) { liquidite = montanthorsfrais * (1 - (_operation.frais.HasValue ? _operation.frais.Value : 0) / 100);//txtmontanthorsfrais * (1 - txtfrais / 100); } else { liquidite = - montanthorsfrais * (1 + (_operation.frais.HasValue ? _operation.frais.Value : 0) / 100);//txtmontanthorsfrais * (1 + txtfrais / 100); } //voir si le cabinet a un fond fictif (nomsupport = Liquidités) ag_upsideo_support supportfictif = db.ag_upsideo_support.Where(s => s.idcrmcabinet == cgpagreg.idcrmcabinet && s.nomsupport == "Liquidités" && (s.deleted == null || (s.deleted != null && s.deleted == "n"))).FirstOrDefault(); //si support fictif existe if (supportfictif != null) { ag_upsideo_cptrelsupports relationfictif = db.ag_upsideo_cptrelsupports.Where(s => s.Idfrontcompte == compte.Idfrontcompte && s.idfrontsupport == supportfictif.idfrontsupport).FirstOrDefault(); if(relationfictif != null) { relationfictif.pru = relationfictif.pru + liquidite; relationfictif.qte = 1; } } //fin maj pru fictif //add histo ag_upsideo_cptrelsupports_histo double mtfondeuro = 0; List<ag_upsideo_cptrelsupports> cptsupportListe = new List<ag_upsideo_cptrelsupports>(); cptsupportListe = db.ag_upsideo_cptrelsupports.Include("ag_upsideo_support").Where(c => c.Idfrontcompte == _operation.Idfrontcompte).ToList(); foreach (ag_upsideo_cptrelsupports cptsupportnow in cptsupportListe) { if (cptsupportnow.ag_upsideo_support.vl.HasValue && cptsupportnow.ag_upsideo_support.vl.Value > 0 && cptsupportnow.qte.HasValue && cptsupportnow.qte.Value > 1) { mtfondeuro = cptsupportnow.qte.Value * cptsupportnow.ag_upsideo_support.vl.Value; } else { mtfondeuro = cptsupportnow.pru.HasValue ? cptsupportnow.pru.Value : 0; } //regarde si déjà dans l'histo pour la date du jour ag_upsideo_cptrelsupports_histo cptsupporthistonow = db.ag_upsideo_cptrelsupports_histo.Where(h => h.idfrontcompte == idCompte && h.idfrontsupport == cptsupportnow.idfrontsupport && h.datehisto.Value.Year == DateTime.Now.Year && h.datehisto.Value.Month == DateTime.Now.Month && h.datehisto.Value.Day == DateTime.Now.Day).FirstOrDefault(); if (cptsupporthistonow != null) { cptsupporthistonow.datemaj = DateTime.Now; cptsupporthistonow.qte = cptsupportnow.qte; cptsupporthistonow.pru = cptsupportnow.pru; cptsupporthistonow.vl = cptsupportnow.ag_upsideo_support.vl; cptsupporthistonow.mtfondeuro = mtfondeuro; } else { cptsupporthistonow = new ag_upsideo_cptrelsupports_histo() { datehisto = DateTime.Now, datemaj = DateTime.Now, idfrontcompte = cptsupportnow.Idfrontcompte, idfrontsupport = cptsupportnow.idfrontsupport, qte = cptsupportnow.qte, pru = cptsupportnow.pru, vl = cptsupportnow.ag_upsideo_support.vl, mtfondeuro = mtfondeuro }; db.ag_upsideo_cptrelsupports_histo.AddObject(cptsupporthistonow); } } //si un nouveau relation (pas encore dans la table relation) if (isNewRelation) { if (support.vl.HasValue && support.vl.Value > 0 && cptsupport.qte.HasValue && cptsupport.qte.Value > 1) { mtfondeuro = cptsupport.qte.Value * cptsupport.ag_upsideo_support.vl.Value; } else { mtfondeuro = cptsupport.pru.HasValue ? cptsupport.pru.Value : 0; } ag_upsideo_cptrelsupports_histo cptsupporthistofornewrelation = new ag_upsideo_cptrelsupports_histo() { datehisto = DateTime.Now, datemaj = DateTime.Now, idfrontcompte = cptsupport.Idfrontcompte, idfrontsupport = cptsupport.idfrontsupport, qte = cptsupport.qte, pru = cptsupport.pru, vl = support.vl, mtfondeuro = mtfondeuro }; db.ag_upsideo_cptrelsupports_histo.AddObject(cptsupporthistofornewrelation); } //fin histo ag_upsideo_cptrelsupports_histo } //save db.SaveChanges(); //après chaque opération , lancer la proc frontalweb_majtotalcompte (pour valorisé compte) if (_operation.idfrontsupport != 0 && isValorisation) { Guid idClient = Guid.Empty; SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient); db.CommandTimeout = 180; db.ExecuteStoreCommand("exec agreg.frontalweb_majtotalcompte @idcrmcabinet,@idfrontcompte", new SqlParameter("@idcrmcabinet", cgpagreg.idcrmcabinet), new SqlParameter("@idfrontcompte", idCompte)); //save db.SaveChanges(); } } if (_operation.idfrontsupport != 0 && isValorisation) { using (UpsilabEntities db = new UpsilabEntities()) { //compte aprés maj ag_upsideo_compte compteahistoriser = db.ag_upsideo_compte.Where(c => c.Idfrontcompte == idCompte && (c.deleted == null || (c.deleted != null && c.deleted == "n"))).FirstOrDefault(); //historisé dans ag_upsideo_compte_histo ag_upsideo_compte_histo cpthisto = db.ag_upsideo_compte_histo.Where(h => h.idfrontcompte == idCompte && h.datehisto.Year == DateTime.Now.Year && h.datehisto.Month == DateTime.Now.Month && h.datehisto.Day == DateTime.Now.Day).FirstOrDefault(); if (cpthisto != null) { cpthisto.datehisto = DateTime.Now; cpthisto.totalcompte = compteahistoriser.totalcompte.Value; } else { ag_upsideo_compte_histo cpthistonew = new ag_upsideo_compte_histo() { datehisto = DateTime.Now, idfrontcompte = compteahistoriser.Idfrontcompte, devise = string.IsNullOrEmpty(compteahistoriser.devise) ? "EUR" : compteahistoriser.devise, totalcompte = compteahistoriser.totalcompte.HasValue ? compteahistoriser.totalcompte.Value : 0 }; //insert db.ag_upsideo_compte_histo.AddObject(cpthistonew); } //save db.SaveChanges(); //fin historisation } } } catch (Exception ex) { ViewBag.Style = "style=color:red"; ViewBag.Message = "Erreur: " + ex.Message; Upsilab.Business.Log.Log.AppendException(ex); } return RedirectToAction("Index", new { id = idCompte }); }
public ActionResult ListeSupport() { var sup = new AgregSupportModel() { IdTypSup = -1, IdSg = -1, IdElig = -1, CodeISIN = string.Empty, Libelle = string.Empty, Call = CallEnum.LISTING }; Guid idcrmcabinet; SessionManager.Get<Guid>(AgregCgpBL.AgregCrmcabinetIdSessionKey, out idcrmcabinet); //nouveau procédure List<ag_upsideo_support> listeSupport = new List<ag_upsideo_support>(); using (UpsilabEntities db = new UpsilabEntities()) { listeSupport = db.ag_upsideo_support.Where(s => s.idcrmcabinet == idcrmcabinet).ToList(); } //supports présent dans la table support pour le cabinet //+ les supports dans la table référentiels moins ceux en communs entre les 2 tables using (UpsilabEntities db = new UpsilabEntities()) { List<ag_upsideo_referentiel> listereferentiel = db.ag_upsideo_referentiel.ToList(); listereferentiel = listereferentiel.Where(r => !listeSupport.Select(s => s.idrefsupport).ToList().Contains(r.idrefsupport)).ToList(); foreach (ag_upsideo_referentiel r in listereferentiel) { ag_upsideo_support newsup = new ag_upsideo_support() { idfrontsupport = 0, idrefsupport = r.idrefsupport, idcrmcabinet = idcrmcabinet, idsg = -1, idElig = -1, idtypesupport = r.idtypesupport, nomsupport = r.nomsupport, datevl = r.datevl, vl = r.vl, codeisin = r.codeisin, devise = r.devise, niveaurisque = r.niveaurisque, categorisation = r.categorisation, Vleuro = r.Vleuro, actions = r.actions, obligations = r.obligations, monetaire = r.monetaire, immobilier = r.immobilier, autres = r.autres, Performance12mois = r.Performance12mois, Performance3112 = r.Performance3112, Performance60mois = r.Performance60mois, Volatilite12mois = r.Volatilite12mois, Volatilite60mois = r.Volatilite60mois, deleted = "n", fiche_prospectus = r.fiche_prospectus, fiche_dici = r.fiche_dici }; listeSupport.Add(newsup); } } //fin procédure SessionManager.Set<String>(AgregCgpBL.AgregCallSupportIdSessionKey, CallEnum.LISTING.ToString()); Session["lstRet"] = listeSupport; Session["supcriteria"] = sup; InitSelectList(); ViewData["results"] = listeSupport; return View(); }
public ActionResult Index(string id) { Guid idCgp = SessionManager.GetUserSession().idAgregCGP.Value; ag_upsideo_cgp cgp = AgregCgpBL.GetCgpById(idCgp); SessionManager.Set<Guid>(AgregCgpBL.AgregCrmcabinetIdSessionKey, cgp.idcrmcabinet); Guid idcrmcabinet; SessionManager.Get<Guid>(AgregCgpBL.AgregCrmcabinetIdSessionKey, out idcrmcabinet); InitSelectList(); if (!string.IsNullOrEmpty(id) && id == "frommenu") { ViewData["IsFromMenu"] = 1; return View(); } else { AgregSupportModel sup; SessionManager.Get<AgregSupportModel>("AgregSupportModelSessionKey", out sup); //nouveau procédure List<ag_upsideo_support> listeSupport = new List<ag_upsideo_support>(); listeSupport = AgregSupportBL.GetSupportsByCriteria(idcrmcabinet, sup.ConverToEntity()); //supports présent dans la table support pour le cabinet //+ les supports dans la table référentiels moins ceux en communs entre les 2 tables List<ag_upsideo_referentiel> listereferentiel = new List<ag_upsideo_referentiel>(); listereferentiel = AgregReferentielBL.GetReferentielByCriteria(idcrmcabinet, sup.ConverToEntity()); listereferentiel = listereferentiel.Where(r => !listeSupport.Select(s => s.idrefsupport).ToList().Contains(r.idrefsupport)).ToList(); foreach (ag_upsideo_referentiel r in listereferentiel) { ag_upsideo_support newsup = new ag_upsideo_support() { idfrontsupport = 0, idrefsupport = r.idrefsupport, idcrmcabinet = idcrmcabinet, idsg = -1, idElig = -1, idtypesupport = r.idtypesupport, nomsupport = r.nomsupport, datevl = r.datevl, vl = r.vl, codeisin = r.codeisin, devise = r.devise, niveaurisque = r.niveaurisque, categorisation = r.categorisation, Vleuro = r.Vleuro, actions = r.actions, obligations = r.obligations, monetaire = r.monetaire, immobilier = r.immobilier, autres = r.autres, Performance12mois = r.Performance12mois, Performance3112 = r.Performance3112, Performance60mois = r.Performance60mois, Volatilite12mois = r.Volatilite12mois, Volatilite60mois = r.Volatilite60mois, deleted = "n", fiche_prospectus = r.fiche_prospectus, fiche_dici = r.fiche_dici }; listeSupport.Add(newsup); } //fin procédure SessionManager.Set<String>(AgregCgpBL.AgregCallSupportIdSessionKey, CallEnum.SEARCH.ToString()); Session["lstRet"] = listeSupport; Session["supcriteria"] = sup; ViewData["results"] = listeSupport; ViewData["IsFromMenu"] = 0; return View("Index", sup); } }
public ActionResult SearchSupport(AgregSupportModel sup) { try { #region Sauvegarde de la pageSize courant // Selection pageSize (ne sera utilisé que dans la declaration du webgrid) if (Request.Params["PageSize"] != null) { SessionManager.Set<int>("SelectedPageSizeSupportSessionKey", Convert.ToInt32(Request.Params["PageSize"])); } #endregion #region Sauvegarde des critère de recherche AgregSupportModel SessionManager.Set<AgregSupportModel>("AgregSupportModelSessionKey", sup); #endregion Guid idcrmcabinet; SessionManager.Get<Guid>(AgregCgpBL.AgregCrmcabinetIdSessionKey, out idcrmcabinet); //nouveau procédure List<ag_upsideo_support> listeSupport = new List<ag_upsideo_support>(); listeSupport = AgregSupportBL.GetSupportsByCriteria(idcrmcabinet, sup.ConverToEntity()); //supports présent dans la table support pour le cabinet //+ les supports dans la table référentiels moins ceux en communs entre les 2 tables List<ag_upsideo_referentiel> listereferentiel = new List<ag_upsideo_referentiel>(); listereferentiel = AgregReferentielBL.GetReferentielByCriteria(idcrmcabinet, sup.ConverToEntity()); listereferentiel = listereferentiel.Where(r => !listeSupport.Select(s => s.idrefsupport).ToList().Contains(r.idrefsupport)).ToList(); foreach (ag_upsideo_referentiel r in listereferentiel) { ag_upsideo_support newsup = new ag_upsideo_support() { idfrontsupport = 0, idrefsupport = r.idrefsupport, idcrmcabinet = idcrmcabinet, idsg = -1, idElig = -1, idtypesupport = r.idtypesupport, nomsupport = r.nomsupport, datevl = r.datevl, vl = r.vl, codeisin = r.codeisin, devise = r.devise, niveaurisque = r.niveaurisque, categorisation = r.categorisation, Vleuro = r.Vleuro, actions = r.actions, obligations = r.obligations, monetaire = r.monetaire, immobilier = r.immobilier, autres = r.autres, Performance12mois = r.Performance12mois, Performance3112 = r.Performance3112, Performance60mois = r.Performance60mois, Volatilite12mois = r.Volatilite12mois, Volatilite60mois = r.Volatilite60mois, deleted = "n", fiche_prospectus = r.fiche_prospectus, fiche_dici = r.fiche_dici }; listeSupport.Add(newsup); } //fin procédure /*var resultSup = AgregSupportBL.GetSupportsByCriteria(idcrmcabinet, sup.ConverToEntity()).ConverToViewModel(); var critRef = new AgregReferentielModel() { Actions = sup.Actions, Libelle = sup.Libelle, Autres = sup.Autres, DateValeur = sup.DateValeur, Devise = sup.Devise,Categorisation = sup.Categorisation, CodeISIN = sup.CodeISIN, IdTypSup = sup.IdTypSup, Immobilier = sup.Immobilier, Monetaire = sup.Monetaire, NiveauRisque = sup.NiveauRisque, Obligations = sup.Obligations, Perfo12Mois = sup.Perfo12Mois, Perfo60Mois = sup.Perfo60Mois, Perfo3112 = sup.Perfo3112, Valeur = sup.Valeur, ValeurEuro = sup.ValeurEuro, Volatilite12Mois = sup.Volatilite12Mois, Volatilite60Mois = sup.Volatilite60Mois }; if (sup.IdSg > 0) { var sg = AgregSocieteGestionBL.GetSocietesGestionsById(sup.IdSg); critRef.NomSocieteGestion = sg != null ? sg.ConvertToViewModel().Libelle : string.Empty; } var resultRef = AgregReferentielBL.GetReferentielByCriteria(idcrmcabinet,critRef.ConverToEntity()).ConverToViewModel(); if (resultRef != null && resultRef.Any()) resultRef.ToList().ForEach(r => { r.CriteriaSupportSearch = CriteriaSupportSearchEnum.REFERENTIEL; r.Call = CallEnum.SEARCH; }); var results = new List<AgregSupportModel>(); if (resultSup != null && resultSup.Any()) results.AddRange(resultSup); if (resultRef != null && resultRef.Any()) { resultRef.ToList().ForEach(r => { if (!results.Any(c => c.IdRefSup == r.Id)) { results.Add(new AgregSupportModel() { Id = 0, IdRefSup = r.Id, Actions = r.Actions, Libelle = r.Libelle, Autres = r.Autres, DateValeur = r.DateValeur, Devise = r.Devise, Categorisation = r.Categorisation, CodeISIN = r.CodeISIN, IdTypSup = r.IdTypSup, Immobilier = r.Immobilier, Monetaire = r.Monetaire, NiveauRisque = r.NiveauRisque, Obligations = r.Obligations, Perfo12Mois = r.Perfo12Mois, Perfo60Mois = r.Perfo60Mois, Perfo3112 = r.Perfo3112, Valeur = r.Valeur, ValeurEuro = r.ValeurEuro, Volatilite12Mois = r.Volatilite12Mois, Volatilite60Mois = r.Volatilite60Mois, CriteriaSupportSearch = r.CriteriaSupportSearch, }); } }); } results = results.OrderBy(c => c.Libelle).ToList();*/ SessionManager.Set<String>(AgregCgpBL.AgregCallSupportIdSessionKey, CallEnum.SEARCH.ToString()); Session["lstRet"] = listeSupport; Session["supcriteria"] = sup; InitSelectList(); ViewData["results"] = listeSupport; ViewData["IsFromMenu"] = 0; return View("Index", sup); } catch (Exception ex) { Log.AppendException(ex); return Content("Error"); } }
public ActionResult InsertMvmt(ag_upsideo_mouvement _mvmt) { int idCompte = 0; SessionManager.Get<int>(agupsideocompteBL.AgregCompteIdSessionKey, out idCompte); Guid idAgregCgp = SessionManager.GetUserSession().idAgregCGP.Value; ag_upsideo_cgp agregcgp = AgregCgpBL.GetCgpById(idAgregCgp); try { int idmouvement = 0; idmouvement = _mvmt.idmouv; ag_upsideo_mouvement newmvmt; ag_upsideo_compte compte; bool isValorisation = false; string action = "historique"; if (Request.Form["Isvalorisation"] != null && Convert.ToInt32(Request.Form["Isvalorisation"]) == 1) { isValorisation = true; action = "valoriser"; } //new if (_mvmt.libellemouvement.ToLower().Equals("souscription") || _mvmt.libellemouvement.ToLower().Equals("coupon") || _mvmt.libellemouvement.ToLower().Equals("remboursement") || _mvmt.libellemouvement.ToLower() == "participation aux bénéfices" || _mvmt.libellemouvement.ToLower() == "participation benefice" || _mvmt.libellemouvement.ToLower() == "régulation historique" || _mvmt.libellemouvement.ToLower() == "transfert" || _mvmt.libellemouvement.ToLower().Equals("souscription/adhésion/ouverture de compte") || _mvmt.libellemouvement.ToLower().Contains("versement")) { _mvmt.montantnet = _mvmt.montantnet.HasValue ? _mvmt.montantnet.Value : 0; _mvmt.montantbrut = _mvmt.montantbrut.HasValue ? _mvmt.montantbrut.Value : 0; _mvmt.frais = _mvmt.frais.HasValue ? _mvmt.frais.Value : 0; } else { _mvmt.montantnet = _mvmt.montantnet.HasValue ? -_mvmt.montantnet.Value : 0; _mvmt.montantbrut = _mvmt.montantbrut.HasValue ? -_mvmt.montantbrut.Value : 0; _mvmt.frais = _mvmt.frais.HasValue ? -_mvmt.frais.Value : 0; } // using (UpsilabEntities db = new UpsilabEntities()) { newmvmt = db.ag_upsideo_mouvement.Where(m => m.idmouv == idmouvement).FirstOrDefault(); if (idmouvement == 0) { newmvmt = new ag_upsideo_mouvement() { Idfrontcompte = idCompte, libellemouvement = _mvmt.libellemouvement, montantbrut = _mvmt.montantbrut, montantnet = _mvmt.montantnet, frais = _mvmt.frais/100, devise = _mvmt.devise, action = action, datemvt = _mvmt.datemvt, deleted = "n" }; //insert db.ag_upsideo_mouvement.AddObject(newmvmt); } else { newmvmt.datemvt = _mvmt.datemvt; newmvmt.libellemouvement = _mvmt.libellemouvement; newmvmt.montantbrut = _mvmt.montantbrut; newmvmt.montantnet = _mvmt.montantnet; newmvmt.frais = _mvmt.frais/100; newmvmt.devise = _mvmt.devise; newmvmt.action = action; } //save db.SaveChanges(); //valoriser //compte compte = db.ag_upsideo_compte.Where(c => c.Idfrontcompte == idCompte && (c.deleted == null || (c.deleted != null && c.deleted == "n"))).FirstOrDefault(); if (isValorisation && compte !=null) { string libellemouvement = _mvmt.libellemouvement.ToLower(); double pru = 0; //déjà definit en haut /*if (libellemouvement.ToLower().Equals("souscription") || libellemouvement.ToLower().Equals("souscription/adhésion/ouverture de compte") || libellemouvement.ToLower().Contains("versement")) { pru = _mvmt.montantnet.HasValue ? _mvmt.montantnet.Value : 0; } else { pru = _mvmt.montantnet.HasValue ? -_mvmt.montantnet.Value : 0; }*/ pru = _mvmt.montantnet.HasValue ? _mvmt.montantnet.Value : 0; //voir si le cabinet a un fond fictif (nomsupport = Liquidités) ag_upsideo_support support = db.ag_upsideo_support.Where(s => s.idcrmcabinet == agregcgp.idcrmcabinet && s.nomsupport == "Liquidités" && (s.deleted == null || (s.deleted != null && s.deleted == "n"))).FirstOrDefault(); //crée un support si n'existe pas if (support == null) { ag_upsideo_referentiel referentiel = db.ag_upsideo_referentiel.Where(r => r.nomsupport == "Liquidités").OrderByDescending(o => o.datevl).FirstOrDefault(); support = new ag_upsideo_support() { idrefsupport = referentiel.idrefsupport, idcrmcabinet = agregcgp.idcrmcabinet, idsg = -1, idtypesupport = -1, nomsupport = referentiel.nomsupport, datevl = referentiel.datevl, devise = referentiel.devise, deleted = "n", vl = 0, }; support = AgregSupportBL.AddObjetcSupport(support); } else { support.deleted = "n"; support.vl = 0; } ag_upsideo_cptrelsupports relation = db.ag_upsideo_cptrelsupports.Where(s => s.Idfrontcompte == compte.Idfrontcompte && s.idfrontsupport == support.idfrontsupport).FirstOrDefault(); if (relation == null) { relation = new ag_upsideo_cptrelsupports() { Idfrontcompte = compte.Idfrontcompte, idfrontsupport = support.idfrontsupport, pru = pru, qte = 1, datemaj = DateTime.Now }; db.ag_upsideo_cptrelsupports.AddObject(relation); } else { relation.pru = relation.pru + pru; relation.qte = 1; } //save db.SaveChanges(); db.CommandTimeout = 180; db.ExecuteStoreCommand("exec agreg.frontalweb_majtotalcompte @idcrmcabinet,@idfrontcompte", new SqlParameter("@idcrmcabinet", agregcgp.idcrmcabinet), new SqlParameter("@idfrontcompte", idCompte)); //save db.SaveChanges(); } } if (isValorisation && compte != null) { using (UpsilabEntities db = new UpsilabEntities()) { //compte aprés maj ag_upsideo_compte compteahistoriser = db.ag_upsideo_compte.Where(c => c.Idfrontcompte == idCompte && (c.deleted == null || (c.deleted != null && c.deleted == "n"))).FirstOrDefault(); //historisé dans ag_upsideo_compte_histo ag_upsideo_compte_histo cpthisto = db.ag_upsideo_compte_histo.Where(h => h.idfrontcompte == idCompte && h.datehisto.Year == DateTime.Now.Year && h.datehisto.Month == DateTime.Now.Month && h.datehisto.Day == DateTime.Now.Day).FirstOrDefault(); if (cpthisto != null) { cpthisto.datehisto = DateTime.Now; cpthisto.totalcompte = compteahistoriser.totalcompte.Value; } else { ag_upsideo_compte_histo cpthistonew = new ag_upsideo_compte_histo() { datehisto = DateTime.Now, idfrontcompte = compteahistoriser.Idfrontcompte, devise = string.IsNullOrEmpty(compteahistoriser.devise) ? "EUR" : compteahistoriser.devise, totalcompte = compteahistoriser.totalcompte.HasValue ? compteahistoriser.totalcompte.Value : 0 }; //insert db.ag_upsideo_compte_histo.AddObject(cpthistonew); } //save db.SaveChanges(); //fin historisation } } } catch (Exception ex) { ViewBag.Style = "style=color:red"; ViewBag.Message = "Erreur: " + ex.Message; } return RedirectToAction("Index", new { id = idCompte }); }
public ActionResult UpdateSupport(ag_upsideo_cptrelsupports _cpt) { int idCompte = 0; SessionManager.Get<int>(agupsideocompteBL.AgregCompteIdSessionKey, out idCompte); Guid idCgpAgreg = Guid.Empty; User currentUser = SessionManager.GetUserSession(); if (currentUser.IsEndUser()) { CustomerProspect currentCustomer = SessionManager.GetCustomerProspectSession(); User currenttUserCreated = currentCustomer.User1; idCgpAgreg = currenttUserCreated.idAgregCGP.Value; } else { idCgpAgreg = currentUser.idAgregCGP.Value; } ag_upsideo_cgp cgpagreg = AgregCgpBL.GetCgpById(idCgpAgreg); try { int IdFrontsupport = 0; double qte = 0; double pam = 0; int idrefsupport = 0; if (Request.Form["idsupport"] != null && !string.IsNullOrEmpty(Request.Form["idsupport"])) { IdFrontsupport = Convert.ToInt32(Request.Form["idsupport"]); } if (Request.Form["quantite"] != null && !string.IsNullOrEmpty(Request.Form["quantite"])) { qte = Convert.ToDouble(Request.Form["quantite"]); } if (Request.Form["pam"] != null && !string.IsNullOrEmpty(Request.Form["pam"])) { pam = Convert.ToDouble(Request.Form["pam"]); } if (Request.Form["idrefsupport"] != null && !string.IsNullOrEmpty(Request.Form["idrefsupport"])) { idrefsupport = Convert.ToInt32(Request.Form["idrefsupport"]); } //il faut en 1er créer le support selectionné depuis le réferentiel dans la table support //ensuite prendre le support depuis la table support if (IdFrontsupport == 0 && idrefsupport > 0) { using (UpsilabEntities db = new UpsilabEntities()) { ag_upsideo_referentiel refer = db.ag_upsideo_referentiel.Where(r => r.idrefsupport == idrefsupport).FirstOrDefault(); if (refer != null) { ag_upsideo_support newsup = new ag_upsideo_support() { idrefsupport = refer.idrefsupport, idcrmcabinet = cgpagreg.idcrmcabinet, idsg = 0, idtypesupport = refer.idtypesupport, nomsupport = refer.nomsupport, datevl = refer.datevl, vl = refer.vl, codeisin = refer.codeisin, devise = refer.devise, niveaurisque = refer.niveaurisque, categorisation = refer.categorisation, Vleuro = refer.Vleuro, actions = refer.actions, obligations = refer.obligations, monetaire = refer.monetaire, immobilier = refer.immobilier, autres = refer.autres, Performance12mois = refer.Performance12mois, Performance3112 = refer.Performance3112, Performance60mois = refer.Performance60mois, Volatilite12mois = refer.Volatilite12mois, Volatilite60mois = refer.Volatilite60mois, deleted = "n", fiche_prospectus = refer.fiche_prospectus, fiche_dici = refer.fiche_dici }; db.ag_upsideo_support.AddObject(newsup); db.SaveChanges(); //set new support IdFrontsupport = newsup.idfrontsupport; } } } using (UpsilabEntities db = new UpsilabEntities()) { //regarder si la table relation existe ag_upsideo_cptrelsupports cptsupport = db.ag_upsideo_cptrelsupports.Include("ag_upsideo_support").Where(c => c.Idfrontcompte == idCompte && c.idfrontsupport == IdFrontsupport).FirstOrDefault(); ag_upsideo_cptrelsupports_histo cpthisto = db.ag_upsideo_cptrelsupports_histo.Where(c => c.idfrontcompte == idCompte && c.idfrontsupport == IdFrontsupport).FirstOrDefault(); //update double qtedepart = 0; bool isRachat = false; bool isNewRelation = false; if (cptsupport != null) { qtedepart = cptsupport.qte.HasValue ? cptsupport.qte.Value : 0; isRachat =(qte < qtedepart) ? true : false; if (qte == qtedepart) { ViewBag.Message = "Le pru n'a pas pu être calculé"; AgregCompteDetail agregcomptedetail = new AgregCompteDetail(); agregcomptedetail.AgregCompteDetailList = agupsideocompteBL.GetCompteDetail(idCompte); agregcomptedetail.AgregCompte = agupsideocompteBL.GetComptesByIdCompte(idCompte); agregcomptedetail.SoldeEspece = agupsideocompteBL.SoldeEspece(idCompte); return View("CompteDetail",agregcomptedetail); } else { double vlhisto = 0; if(cpthisto == null) { vlhisto = cptsupport.ag_upsideo_support.vl.HasValue ? cptsupport.ag_upsideo_support.vl.Value : 0; } else { vlhisto = cpthisto.vl.HasValue ? cpthisto.vl.Value : 0; } //calcul pru if (isRachat) { cptsupport.pru = ((qtedepart * vlhisto) - (qte * pam)) / (qtedepart - qte); } else { cptsupport.pru = ((qte * pam) - (qtedepart * vlhisto)) / (qte - qtedepart); } cptsupport.qte = qte; cptsupport.datemaj = DateTime.Now; } } //ajout else { //ajout pru isNewRelation = true; cptsupport = new ag_upsideo_cptrelsupports() { Idfrontcompte = idCompte, idfrontsupport = IdFrontsupport, qte = qte, pru = pam, datemaj = DateTime.Now }; db.ag_upsideo_cptrelsupports.AddObject(cptsupport); } //update pru liquidité double liquidite = 0; liquidite = isRachat ? (qtedepart - qte) * pam : -(qte - qtedepart) * pam; //voir si le cabinet a un fond fictif (nomsupport = Liquidités) ag_upsideo_support supportfictif = db.ag_upsideo_support.Where(s => s.idcrmcabinet == cgpagreg.idcrmcabinet && s.nomsupport == "Liquidités" && (s.deleted == null || (s.deleted != null && s.deleted == "n"))).FirstOrDefault(); //si support fictif existe if (supportfictif != null) { ag_upsideo_cptrelsupports relationfictif = db.ag_upsideo_cptrelsupports.Where(s => s.Idfrontcompte == idCompte && s.idfrontsupport == supportfictif.idfrontsupport).FirstOrDefault(); if (relationfictif != null) { relationfictif.pru = relationfictif.pru + liquidite; relationfictif.qte = 1; } } //fin maj pru fictif //add histo ag_upsideo_cptrelsupports_histo double mtfondeuro = 0; List<ag_upsideo_cptrelsupports> cptsupportListe = new List<ag_upsideo_cptrelsupports>(); cptsupportListe = db.ag_upsideo_cptrelsupports.Include("ag_upsideo_support").Where(c => c.Idfrontcompte == idCompte).ToList(); foreach (ag_upsideo_cptrelsupports cptsupportnow in cptsupportListe) { if (cptsupportnow.ag_upsideo_support.vl.HasValue && cptsupportnow.ag_upsideo_support.vl.Value > 0 && cptsupportnow.qte.HasValue && cptsupportnow.qte.Value > 1) { mtfondeuro = cptsupportnow.qte.Value * cptsupportnow.ag_upsideo_support.vl.Value; } else { mtfondeuro = cptsupportnow.pru.HasValue ? cptsupportnow.pru.Value : 0; } //regarde si déjà dans l'histo pour la date du jour ag_upsideo_cptrelsupports_histo cptsupporthistonow = db.ag_upsideo_cptrelsupports_histo.Where(h => h.idfrontcompte == idCompte && h.idfrontsupport == cptsupportnow.idfrontsupport && h.datehisto.Value.Year == DateTime.Now.Year && h.datehisto.Value.Month == DateTime.Now.Month && h.datehisto.Value.Day == DateTime.Now.Day).FirstOrDefault(); if (cptsupporthistonow != null) { cptsupporthistonow.datemaj = DateTime.Now; cptsupporthistonow.qte = cptsupportnow.qte; cptsupporthistonow.pru = cptsupportnow.pru; cptsupporthistonow.vl = cptsupportnow.ag_upsideo_support.vl; cptsupporthistonow.mtfondeuro = mtfondeuro; } else { cptsupporthistonow = new ag_upsideo_cptrelsupports_histo() { datehisto = DateTime.Now, datemaj = DateTime.Now, idfrontcompte = cptsupportnow.Idfrontcompte, idfrontsupport = cptsupportnow.idfrontsupport, qte = cptsupportnow.qte, pru = cptsupportnow.pru, vl = cptsupportnow.ag_upsideo_support.vl, mtfondeuro = mtfondeuro }; db.ag_upsideo_cptrelsupports_histo.AddObject(cptsupporthistonow); } } //si un nouveau relation (pas encore dans la table relation) if (isNewRelation) { if (cptsupport.ag_upsideo_support != null && cptsupport.ag_upsideo_support.vl.HasValue && cptsupport.ag_upsideo_support.vl.Value > 0 && cptsupport.qte.HasValue && cptsupport.qte.Value > 1) { mtfondeuro = cptsupport.qte.Value * cptsupport.ag_upsideo_support.vl.Value; } else { mtfondeuro = cptsupport.pru.HasValue ? cptsupport.pru.Value : 0; } ag_upsideo_cptrelsupports_histo cptsupporthistofornewrelation = new ag_upsideo_cptrelsupports_histo() { datehisto = DateTime.Now, datemaj = DateTime.Now, idfrontcompte = cptsupport.Idfrontcompte, idfrontsupport = cptsupport.idfrontsupport, qte = cptsupport.qte, pru = cptsupport.pru, vl = cptsupport.ag_upsideo_support.vl.Value, mtfondeuro = mtfondeuro }; db.ag_upsideo_cptrelsupports_histo.AddObject(cptsupporthistofornewrelation); } //fin histo ag_upsideo_cptrelsupports_histo //save db.SaveChanges(); //après chaque opération , lancer la proc frontalweb_majtotalcomptecpts db.CommandTimeout = 180; db.ExecuteStoreCommand("exec agreg.frontalweb_majtotalcompte @idcrmcabinet,@idfrontcompte", new SqlParameter("@idcrmcabinet", cgpagreg.idcrmcabinet), new SqlParameter("@idfrontcompte", idCompte)); } using (UpsilabEntities db = new UpsilabEntities()) { //compte aprés maj ag_upsideo_compte compteahistoriser = db.ag_upsideo_compte.Where(c => c.Idfrontcompte == idCompte && (c.deleted == null || (c.deleted != null && c.deleted == "n"))).FirstOrDefault(); //historisé dans ag_upsideo_compte_histo ag_upsideo_compte_histo cpthisto = db.ag_upsideo_compte_histo.Where(h => h.idfrontcompte == idCompte && h.datehisto.Year == DateTime.Now.Year && h.datehisto.Month == DateTime.Now.Month && h.datehisto.Day == DateTime.Now.Day).FirstOrDefault(); if (cpthisto != null) { cpthisto.datehisto = DateTime.Now; cpthisto.totalcompte = compteahistoriser.totalcompte.Value; } else { ag_upsideo_compte_histo cpthistonew = new ag_upsideo_compte_histo() { datehisto = DateTime.Now, idfrontcompte = compteahistoriser.Idfrontcompte, devise = string.IsNullOrEmpty(compteahistoriser.devise) ? "EUR" : compteahistoriser.devise, totalcompte = compteahistoriser.totalcompte.HasValue ? compteahistoriser.totalcompte.Value : 0 }; //insert db.ag_upsideo_compte_histo.AddObject(cpthistonew); } //save db.SaveChanges(); //fin historisation } } catch (Exception ex) { Upsilab.Business.Log.Log.AppendException(ex); ViewBag.Message = "Erreur: " + ex.Message; AgregCompteDetail agregcomptedetail = new AgregCompteDetail(); agregcomptedetail.AgregCompteDetailList = agupsideocompteBL.GetCompteDetail(idCompte); agregcomptedetail.AgregCompte = agupsideocompteBL.GetComptesByIdCompte(idCompte); agregcomptedetail.SoldeEspece = agupsideocompteBL.SoldeEspece(idCompte); return View("CompteDetail", agregcomptedetail); } return RedirectToAction("CompteDetail", new { id = idCompte }); }