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;
        }