public void LoadControleEncours(Model.Sage.F_COMPTET F_COMPTET, DateTime DebutExo, DateTime FinExo, out Decimal SoldeComptable, out Decimal Portefeuille) { Model.Sage.P_CRISQUE._Enum_R_Type EtatControle = Model.Sage.P_CRISQUE._Enum_R_Type.Livraison; Portefeuille = 0; SoldeComptable = 0; if (F_COMPTET.CT_ControlEnc == null) { // pas d'action = livraison } else if (F_COMPTET.CT_ControlEnc == (short)ABSTRACTION_SAGE.F_COMPTET.Obj._Enum_CT_ControlEnc.Compte_Bloque) { EtatControle = Model.Sage.P_CRISQUE._Enum_R_Type.Blocage; } // si compte client en "controle automatique" ou "selon code risque" else { Model.Sage.P_CRISQUE P_CRISQUE; Model.Sage.P_CRISQUERepository P_CRISQUERepository = new Model.Sage.P_CRISQUERepository(); if (P_CRISQUERepository.ExistCRisque(F_COMPTET.N_Risque.Value)) { P_CRISQUE = P_CRISQUERepository.ReadCRisque(F_COMPTET.N_Risque.Value); if (P_CRISQUE.R_Type != null) { EtatControle = (Model.Sage.P_CRISQUE._Enum_R_Type)P_CRISQUE.R_Type; } } } // envoi des informations sur l'encours du client // récupération du montant d'encours Model.Sage.DP_ENCOURSTIERSRepository DP_ENCOURSTIERSRepository = new Model.Sage.DP_ENCOURSTIERSRepository(); Model.Sage.DP_ENCOURSTIERS DP_ENCOURSTIERS = DP_ENCOURSTIERSRepository.ReadTiers2(F_COMPTET.CT_Num, DebutExo, FinExo); SoldeComptable = DP_ENCOURSTIERS.SoldeComptable; Decimal LimiteTiers = 0; if (F_COMPTET.CT_Encours != null) { LimiteTiers = (Decimal)F_COMPTET.CT_Encours; } //Decimal DepassementMax = 0; //Decimal DepassementMini = 0; //if(P_CRISQUE.R_Min != null) //{ // DepassementMini = (Decimal)P_CRISQUE.R_Min; //} //if(P_CRISQUE.R_Max != null) //{ // DepassementMax = (Decimal)P_CRISQUE.R_Max; //} // récupération du portefeuille selon le paramétrage de Sage Model.Sage.DP_PORTEFEUILLEVENTERepository DP_PORTEFEUILLEVENTRepository = new Model.Sage.DP_PORTEFEUILLEVENTERepository(); Model.Sage.DP_PORTEFEUILLEVENTE DP_PORTEFEUILLEVENTE = DP_PORTEFEUILLEVENTRepository.ReadTiers2(F_COMPTET.CT_Num, ParametrePortefeuille); Portefeuille = DP_PORTEFEUILLEVENTE.MontantPortefeuille; //solde = SoldeComptable + Portefeuille; //NouvelEncours = SoldeComptable + MontantDocument; //Depassement = NouvelEncours - LimiteTiers; F_COMPTET.EtatControleEncours = EtatControle; }
public void LoadControleEncours(Model.Sage.F_COMPTET F_COMPTET, out Decimal Encours) { Model.Sage.P_CRISQUE._Enum_R_Type EtatControle = Model.Sage.P_CRISQUE._Enum_R_Type.Livraison; Decimal Portefeuille = 0, SoldeComptable = 0; Encours = 0; if (F_COMPTET.CT_ControlEnc == null) { // pas d'action = livraison } else if (F_COMPTET.CT_ControlEnc == (short)ABSTRACTION_SAGE.F_COMPTET.Obj._Enum_CT_ControlEnc.Compte_Bloque) { EtatControle = Model.Sage.P_CRISQUE._Enum_R_Type.Blocage; } // si compte client en "controle automatique" ou "selon code risque" alors else { Model.Sage.P_CRISQUE P_CRISQUE; Model.Sage.P_CRISQUERepository P_CRISQUERepository = new Model.Sage.P_CRISQUERepository(); if (P_CRISQUERepository.ExistCRisque(F_COMPTET.N_Risque.Value)) { P_CRISQUE = P_CRISQUERepository.ReadCRisque(F_COMPTET.N_Risque.Value); if (P_CRISQUE.R_Type != null) { switch (P_CRISQUE.R_Type) { case (short)Model.Sage.P_CRISQUE._Enum_R_Type.Livraison: // aucun blocage break; case (short)Model.Sage.P_CRISQUE._Enum_R_Type.Surveillance: case (short)Model.Sage.P_CRISQUE._Enum_R_Type.Blocage: // récupération du montant d'encours Model.Sage.DP_ENCOURSTIERSRepository DP_ENCOURSTIERSRepository = new Model.Sage.DP_ENCOURSTIERSRepository(); Model.Sage.DP_ENCOURSTIERS DP_ENCOURSTIERS = DP_ENCOURSTIERSRepository.ReadTiers(F_COMPTET.CT_Num, DebutExo, FinExo); Decimal LimiteTiers = 0; //Decimal DepassementMax = 0; //Decimal DepassementMini = 0; if (F_COMPTET.CT_Encours != null) { LimiteTiers = (Decimal)F_COMPTET.CT_Encours; } //if(P_CRISQUE.R_Min != null) //{ // DepassementMini = (Decimal)P_CRISQUE.R_Min; //} //if(P_CRISQUE.R_Max != null) //{ // DepassementMax = (Decimal)P_CRISQUE.R_Max; //} Model.Sage.DP_PORTEFEUILLEVENTERepository DP_PORTEFEUILLEVENTRepository = new Model.Sage.DP_PORTEFEUILLEVENTERepository(); Model.Sage.DP_PORTEFEUILLEVENTE DP_PORTEFEUILLEVENTE = DP_PORTEFEUILLEVENTRepository.ReadTiers(F_COMPTET.CT_Num, ParametrePortefeuille); Portefeuille = DP_PORTEFEUILLEVENTE.MontantPortefeuille; SoldeComptable = DP_ENCOURSTIERS.SoldeComptable; Encours = SoldeComptable + Portefeuille; //NouvelEncours = SoldeComptable + MontantDocument; //Depassement = NouvelEncours - LimiteTiers; if (Encours >= LimiteTiers) { if (P_CRISQUE.R_Type == (short)Model.Sage.P_CRISQUE._Enum_R_Type.Surveillance) { EtatControle = Model.Sage.P_CRISQUE._Enum_R_Type.Surveillance; } else if (P_CRISQUE.R_Type == (short)Model.Sage.P_CRISQUE._Enum_R_Type.Blocage) { EtatControle = Model.Sage.P_CRISQUE._Enum_R_Type.Blocage; } } break; } } } } F_COMPTET.EtatControleEncours = EtatControle; }