// Service de conversion des échéances
        public Operation ConvertirEcheance(EcheanceContrat _echeance)
        {
            // Conversion échéance
            _echeance.ConvertieOperation = true;
            if (_echeance.MontantRéalisé == 0)
            {
                _echeance.MontantRéalisé = _echeance.Montant;
            }

            // MOyen B
            MoyenPaiement _moyenB = uow.MoyenPaiement.GetAllByCompteId(_echeance.Contrat.Budget.Id).FirstOrDefault();

            // _typeOperation
            var _typeOperation = uow.TypeOperation.GetAll().FirstOrDefault(); // Transaction compte
            if (_echeance.Compte.TypeCompte == TypeCompte.CAISSE)
            {
                _typeOperation = uow.TypeOperation.GetAll().ElementAt(3); // Transaction caisse
            };

            // Operation
            Operation operation = fabrique.FromEcheance(_echeance, _moyenB, _typeOperation);

            // Validation de l'entité (quel que soit le profil user)
            operation.Valider();

            // Retour
            return operation;
        }
        public bool Match(EcheanceContrat echeance, Operation ope)
        {
            if (ope.AllocationEcheanceId == echeance.Id)
            {
                return true;
            }

            return false;
        }
        public RapproEcheance Produire(EcheanceContrat echeance, Operation operation)
        {
            // Création du rappro échéance
            RapproEcheance rappro = new RapproEcheance();
            rappro.EcheanceContrat = echeance;
            rappro.DateRapprochement = DateTime.Now;
            rappro.GroupeId = groupeId;
            rappro.Operation = operation;

            // Mise à jour des états de l'opé
            operation.RapprocherEcheance();

            // Mise à jour de l'échéance
            echeance.Realiser(operation);

            // Retour
            return rappro;
        }
        // Match
        public bool Match(EcheanceContrat _echeance, OperationRawSG raw)
        {
            var _dateEch = _echeance.DateEcheance;
            var _rawDate = raw.DateOperation;
            var _ecartConfianceDate = _echeance.CalculerEcartConfianceDate();

            // Test si écart confiance == 0 _ échéance unique dans contrat
            DateTime inf;
            DateTime sup;

            if (_ecartConfianceDate == 0)
            {
                inf = _echeance.Contrat.DateDebut;
                sup = _echeance.Contrat.DateFin;
            }
            else
            {
                inf = _dateEch.AddDays(-_ecartConfianceDate);
                sup = _dateEch.AddDays(_ecartConfianceDate);
            }

            bool matchDate = _rawDate >= inf && _rawDate <= sup;

            // Match montant
            bool matchMontant = false;
            var _echanceMontant = _echeance.Montant;
            if (_echanceMontant != 0)
            {
                var _rawMontant = -raw.Montant;
                var diff = _rawMontant - _echanceMontant;
                var div = diff / _echanceMontant;
                matchMontant = Math.Abs(div) < 0.25M;

            }

            if (matchDate && matchMontant)
            {
                return true;
            }

            return false;
        }
Exemplo n.º 5
0
        // Création d'une échéance à partir de la définition du contrat échéanciers
        private EcheanceContrat CreateEcheanceFromContratEcheancier(
            int index, Contrat _contrat, PeriodeContrat _periodeUneEcheance)
        {
            // Attibuts
            var _Contrat = _contrat;
            var _ContratId = _Contrat.Id;

            // calcul de la date échéance
            var _DatePremiereEcheance = _contrat.DatePremiereEcheance;
            var _DateEcheanceMoment = _DatePremiereEcheance; // Init

            switch (_periodeUneEcheance.unite) {

                case "months":
                    _DateEcheanceMoment = _DatePremiereEcheance
                        .AddMonths(index * _periodeUneEcheance.nombre);
                    break;

                case "weeks":
                    _DateEcheanceMoment = _DatePremiereEcheance
                        .AddDays(index * _periodeUneEcheance.nombre * 7);
                    break;

                default:
                    break;
            }
            var _DateEcheance = _DateEcheanceMoment;
            var _libelleMois = String.Format("{0:D}", _DateEcheanceMoment);
            // _DateEcheanceMoment.format('YYYY-MMMM');

            // Calcul du libellé
            var _Libelle = _libelleMois;
            //var _Libelle = _libelleMois.CharAt(0).toUpperCase() + _libelleMois.Slice(1);

            // Calcul du montant
            var _Montant = _contrat.MontantEcheance;

            // Compte et moyen de paiement
            var _Compte = _contrat.Compte;
            var _CompteId = _Compte.Id;
            var _MoyenPaiement = _contrat.MoyenPaiement;
            var _MoyenPaiementId = _MoyenPaiement.Id;
            var _IsCaisse = _contrat.IsCaisse;
            var _ConvertibleOperation = _contrat.ConvertibleOperation;
            var _EcheanceImputable = _contrat.EcheanceImputable;
            var _ABatcher = _contrat.ABatcher;

            // Commentaire
            var _dateFormattee = String.Format("{0:D}", DateTime.Now);
            var _Commentaire = "Echéance générée automatiquement le "
                + _dateFormattee;

            // Attention: Year et Month ne sont pas calculés ici.
            var echeance = new EcheanceContrat {
                 Compte = _Compte
                 , CompteId = _CompteId
                , ContratId = _ContratId
                , Contrat = _Contrat
                , MoyenPaiement = _MoyenPaiement
                , MoyenPaiementId = _MoyenPaiementId
                , Libelle = _Libelle
                , Montant = _Montant
                , DateEcheance = _DateEcheance
                , IsCaisse = _IsCaisse
                , ConvertibleOperation = _ConvertibleOperation
                , EcheanceImputable = _EcheanceImputable
                , Commentaire = _Commentaire
                , ABatcher = _ABatcher
            };

            return echeance;
        }
Exemplo n.º 6
0
        // CreateEcheanceFromPrevious
        private EcheanceContrat CreateEcheanceFromPrevious(Contrat contrat
            , EcheanceContrat previousEch)
        {
            // calcul de la date échéance
            var _PreviousDateEcheance = previousEch.DateEcheance;
            var _NextDateEcheance = _PreviousDateEcheance; // Init

            var _unite = contrat.Budget.UnitePeriodeDepense;
            var _nbreUnite = contrat.Budget.NombreUnitePeriodeDepense;
            switch (_unite)
            {

                case "months":
                    _NextDateEcheance = _PreviousDateEcheance.AddMonths(_nbreUnite);
                    break;

                case "weeks":
                    _NextDateEcheance = _PreviousDateEcheance.AddDays(_nbreUnite * 7);
                    break;

                default:
                    break;
            }

            // Commentaire
            var _dateFormattee = String.Format("{0:D}", DateTime.Now);
            var _Commentaire = "Echéance générée automatiquement le "
                + _dateFormattee;

            // Attention: Year et Month ne sont pas calculés ici.
            var echeance = new EcheanceContrat
            {
                Compte = previousEch.Compte
                ,
                CompteId = previousEch.CompteId
                ,
                ContratId = previousEch.ContratId
                ,
                Contrat = previousEch.Contrat
                ,
                MoyenPaiement = previousEch.MoyenPaiement
                ,
                MoyenPaiementId = previousEch.MoyenPaiementId
                ,
                Libelle = String.Format("{0:D}", _NextDateEcheance)
                ,
                Montant = previousEch.Montant
                ,
                DateEcheance = _NextDateEcheance
                ,
                IsCaisse = previousEch.IsCaisse
                ,
                ConvertibleOperation = previousEch.ConvertibleOperation
                ,
                EcheanceImputable = previousEch.EcheanceImputable
                ,
                Commentaire = _Commentaire
                ,
                ABatcher = previousEch.ABatcher
            };

            // Retour
            return echeance;
        }
Exemplo n.º 7
0
 // Calcule refi
 public void Calculer()
 {
     // Prochaine échéance
     var _echeancesAVenir = this.SoldeBudget.EcheancesAVenir
         .OrderBy(e => e.DateEcheance);
     if (_echeancesAVenir.Count() > 0)
     {
         ProchaineEcheance = _echeancesAVenir.FirstOrDefault();
         MontantPlanifieEcheanceRefinance = MontantPlanifieEcheanceCourant
             + this.MontantEcart
             ;
     };
 }