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