// Ctor
 public ChargementService(IArpagonUow _uow, CompteBanque _compte, Chargement __chargement, HttpPostedFileBase _file)
 {
     uow = _uow;
     chargement = __chargement;
     postedFile = _file;
     compte = _compte;
 }
        // Constructor
        public RapprochementProcessus(IArpagonUow _uow, Chargement _chargement, 
            int _groupeId, Groupe _groupe, string _userName)
        {
            uow = _uow;

            groupeId = _groupeId;
            groupe = _groupe;
            userName = _userName;

            chargement = _chargement;
            compteId = chargement.CompteId;

            // Init des props
            fabriqueSpec = this.MakeFabriqueSpec(compteId);
        }
        public ActionResult Create(Chargement chargement, HttpPostedFileBase file)
        {
            // Groupeid
            int groupeId = ProfileUser.GroupeId;

            // Chargement du fichier avec validation et chargement des raws
            var p1 = new ChargementProcessus(uow, groupeId, chargement, file);
            p1.Executer();

            // Récupération des erreurs si elles existent
            p1.Erreurs().ToList()
                .ForEach(e => ModelState.AddModelError("DateValeur", e));

            // Si pas d'erreurs, on procède au processus de rapprochement
            if (ModelState.IsValid)
            {
                if (chargement.AvecRappro == true)
                {
                    // Processus de chargement
                    var _groupeId = ProfileUser.GroupeId;
                    var _groupe = ProfileUser.Groupe;
                    var _userName = ProfileUser.UserName;
                    var p2 = new RapprochementProcessus(uow, chargement, _groupeId, _groupe, _userName);
                    p2.Executer();

                    // Retour index
                    return Redirect("~/i16#Rappros/dernierRappro");
                }
                else
                {
                    // Retour Acqusistion
                    return Redirect("~/i16#Comptes/detail/" + chargement.CompteId);
                }
            }

            CompteBanque compte = uow.CompteBanque.GetById(chargement.CompteId);
            chargement.Compte = compte;

            // Titre
            ViewBag.Titre = "Import de fichier bancaire";

            // Retour erreur
            PopulateDropDownListForCreate(chargement.CompteId);
            return View(_ImportView, chargement);
        }
        // Ctor
        public ChargementProcessus(IArpagonUow _uow, int _groupeId
            , Chargement __chargement, HttpPostedFileBase _file)
        {
            uow = _uow;
            groupeId = _groupeId;
            chargement = __chargement;
            postedFile = _file;

            // Compte du chargement
            compte = uow.CompteBanque
                .GetById(chargement.CompteId)
                ;

            SpecCandidateFabrique fabriqueSpec = this.MakeFabriqueSpec(compte.Id);
            rawEnrichisseur = new RawEnrichisseur(uow, fabriqueSpec);

            // Domain service
            serviceFichier = new ChargementService(uow, compte, chargement, postedFile);
        }
        public ActionResult Create(int CompteId, bool AvecRappro)
        {
            // Titre
            ViewBag.Titre = "Import de fichier bancaire de la Société Générale";

            // Model
            CompteBanque compte = uow.CompteBanque.GetById(CompteId);
            Chargement chargement = new Chargement {
                CompteId = CompteId
                , Compte = compte
                , AvecRappro = AvecRappro
            };

            // Viewbag
            PopulateDropDownListForCreate(CompteId);

            // View
            return View(_ImportView, chargement);
        }
示例#6
0
        public HttpResponseMessage Post(PostedFile _postedFile)
        {
            var compteId = _postedFile.compteId;
            var postedFile = _postedFile.file;

            // Init chargement
            CompteBanque compte = uow.CompteBanque.GetById(compteId);
            Chargement chargement = new Chargement { CompteId = compteId, Compte = compte };

            if (postedFile != null) {
            //{
                //if (!Request.Content.IsMimeMultipartContent())
                //{
                //    return StatusCode(HttpStatusCode.UnsupportedMediaType);
                //}

                //var filesReadToProvider = Request.Content.ReadAsFormDataAsync();

                //foreach (var stream in filesReadToProvider.Result)
                //{
                //    var fileBytes = await stream.ReadAsByteArrayAsync();
                //}

                // Posted file
                //HttpPostedFileBase postedFile = new HttpPostedFileWrapper(HttpContext.Current.Request.Files[0]);

                // Chargement du fichier avec validation et chargement des raws
                var p1 = new ChargementProcessus(uow, groupeId, chargement, postedFile);
                p1.Executer();

                // Commit
                uow.Commit();

                // Retour
                return new HttpResponseMessage(HttpStatusCode.Created);

            }

            return new HttpResponseMessage(HttpStatusCode.NoContent);
        }
 // Metre à jour solde raw du compte banque
 private void UpdateCompteBanqueSoldeRaw(Chargement _chargement)
 {
     _chargement.Compte.SoldeRaw = _chargement.SoldeRaw;
 }
        // EnrichirRawsAvecSpecCandidates
        private IEnumerable<OperationRawSG> EnrichirRawsAvecSpecCandidates(Chargement chargement)
        {
            //// Récupération des raws du référentiel des rappros pour le compte associé au chargement
            IQueryable<RapproRaw> referentielRappros = uow.RapproRaw.GetAll()
                    .Include(r => r.RawSG)
                    .Include(r => r.Operation.CompteB)
                    .Include(r => r.Operation.MoyenPaiementCompteA)
                    .Include(r => r.Operation.MoyenPaiementCompteB)
                    .Where(r => r.RawSG.CompteId == chargement.CompteId)
                    .Where(r => r.Operation.CompteB.IsActive == true)
                    ;

            // Raws non rapprochées - Pas seulement celles du dernier chargement
            IList<OperationRawSG> rawsNonRapprochees = uow.OperationRawSG
                .GetAllRapprochablesByGroupeId(groupeId)
                .OrderBy(r => r.Valorisee)
                .ToList()
                ;

            // Il faut ramener les contrats des budgets avant de travailler sur les raws
            IEnumerable<Budget> budgets = uow.Budget
                .GetAllByGroupeId(groupeId)
                .ToList()
                ;

            BudgetContratEnrichisseur budgetContratService = new BudgetContratEnrichisseur(uow, groupeId);
            IEnumerable<Budget> _budgetAvecContrats = budgetContratService
                .EnrichirAvecContratsActifs(budgets);

            // Enrichissement avec budgets ou caisses pour toutes les raws du groupe non rapprochées
            return rawEnrichisseur.EnrichirAvecSpecCandidates(rawsNonRapprochees, referentielRappros);
        }
 // Enrichir les raws
 private ICollection<OperationRawSG> EnrichirRaws(Chargement chargement)
 {
     // Enrichissement des raws : Production des tiers, typesPaiement, motifs, etc..
     return rawEnrichisseur.Enrichir(chargement.OperationRaws);
 }