示例#1
0
        public async Task <RetourDeService <Commande> > AjouteCommande(AKeyUidRno keyClient, long noCommande, Site site, bool estFournisseur)
        {
            Commande commande = new Commande
            {
                Uid     = keyClient.Uid,
                Rno     = keyClient.Rno,
                No      = noCommande,
                SiteUid = site.Uid,
                SiteRno = site.Rno,
            };

            if (estFournisseur)
            {
                commande.Date = new DateTime();
            }

            // [A SUPPRIMER
            if (site.Etat == TypeEtatSite.Livraison)
            {
                Livraison livraison = await _utile.DernièreLivraison(site);

                commande.LivraisonNo = livraison.No;
            }
            // A SUPPRIMER]

            _context.Commande.Add(commande);
            return(await SaveChangesAsync(commande));
        }
示例#2
0
        /// <summary>
        /// supprime une livraison et supprime le numéro de livraison des commandes qui y étaient affectées
        /// </summary>
        /// <param name="site"></param>
        /// <returns></returns>
        public async Task AnnuleLivraison(Site site, Livraison livraison)
        {
            _context.Livraison.Remove(livraison);

            /// supprime le numéro de livraison des commandes de la livraison
            await _commandeService.AnnuleLivraison(site, livraison.No);
        }
 public LivController()
 {
     livreur          = new Livreur();
     livraison        = new Livraison();
     serviceLivreur   = new LivreurService();
     serviceLivraison = new LivraisonService();
     serviceProduct   = new ProductService();
 }
示例#4
0
        /// <summary>
        /// retourne la livraison définie par la clé
        /// </summary>
        /// <param name="keyLivraison"></param>
        /// <returns>null si non trouvé</returns>
        private async Task <Livraison> LivraisonDeKey(KeyUidRnoNo keyLivraison)
        {
            Livraison livraison = await _context.Livraison
                                  .Where(l => l.Uid == keyLivraison.Uid && l.Rno == keyLivraison.Rno)
                                  .FirstOrDefaultAsync();

            return(livraison);
        }
        public Livraison RechercheParId(int id)
        {
            Livraison s = db.Livraisons
                          .Where(i => i.id == id)
                          .SingleOrDefault();

            return(s);
        }
示例#6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Livraison livraison = db.Livraison.Find(id);

            db.Livraison.Remove(livraison);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#7
0
        /// <summary>
        /// fixe la date de la livraison, supprime les commandes vides de la livraison et fixe la date des autres
        /// </summary>
        /// <param name="site"></param>
        /// <returns></returns>
        public async Task TermineLivraison(Site site, Livraison livraison)
        {
            livraison.Date = DateTime.Now;
            _context.Livraison.Update(livraison);

            // supprime les commandes vides, fixe la date des autres à celle de leur dernier détail créé par le client s'il y en a, à celle de la livraison sinon.
            await _commandeService.TermineLivraison(site, livraison);
        }
示例#8
0
        /// <summary>
        /// retourne vrai si tous les ALivrer des détails des commandes de la livraison sont fixés
        /// </summary>
        /// <param name="livraison"></param>
        /// <returns></returns>
        public async Task <bool> EstPrête(Livraison livraison)
        {
            bool pasPrête = await _context.Commande
                            .Where(c => c.SiteUid == livraison.Uid && c.SiteRno == livraison.Rno && c.LivraisonNo == livraison.No)
                            .Where(c => c.Détails.Where(d => !d.ALivrer.HasValue).Any())
                            .AnyAsync();

            return(!pasPrête);
        }
示例#9
0
            public void SetPrixLivraisonPourUnPays()
            {
                var     livraison = new Livraison();
                decimal prix      = 10;
                var     pays      = "France";

                livraison.SetPrix(pays, prix);
                Assert.AreEqual(livraison.GetPrix(pays), prix);
            }
示例#10
0
 public ActionResult Edit([Bind(Include = "id,idCommande,Adresse,Ville,idLivreur,idClient")] Livraison livraison)
 {
     if (ModelState.IsValid)
     {
         db.Entry(livraison).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(livraison));
 }
示例#11
0
文件: Form1.cs 项目: Driss-Nfifi/CMIM
        private void btnLivraison_Click(object sender, EventArgs e)
        {
            panelContainer.Controls.Clear();
            Livraison liv = new Livraison();

            this.panelContainer.Controls.Add(liv);
            liv.Dock = DockStyle.Fill;
            liv.BringToFront();
            setBackColor(btnLivraison);
        }
        private async Task <Livraison> LivraisonDeCommence(Site site)
        {
            Livraison livraison = await _utile.DernièreLivraison(site);

            if (livraison != null && !livraison.Date.HasValue)
            {
                ErreurDeModel.AjouteAModelState(ModelState, "DernièreLivraisonPasTerminée");
            }
            return(livraison);
        }
        private async Task <Livraison> LivraisonDeAnnule(Site site)
        {
            Livraison livraison = await _utile.DernièreLivraison(site);

            if (livraison == null || livraison.Date.HasValue)
            {
                ErreurDeModel.AjouteAModelState(ModelState, "PasDeDernièreLivraisonOuTerminée");
                return(null);
            }
            return(livraison);
        }
示例#14
0
 public LivraisonController(ApplicationUserManager userManager, ApplicationSignInManager signInManager)
 {
     livraison        = new Livraison();
     user             = new ApplicationUser();
     l                = new Livreur();
     livreur          = new Livreur();
     serviceLivraison = new LivraisonService();
     serviceLivreur   = new LivreurService();
     serviceCart      = new CartService();
     serviceCartLine  = new CartLineService();
 }
        public bool Update(Livraison s)
        {
            var original = db.Livraisons.Find(s.id);

            if (original != null)
            {
                db.Entry(original).CurrentValues.SetValues(s);
                return(db.SaveChanges() > 0);
            }
            return(false);
        }
示例#16
0
        /// <summary>
        /// retourne la dernière livraison du site si elle n'est pas terminée
        /// </summary>
        /// <param name="site"></param>
        /// <returns></returns>
        public async Task <Livraison> LivraisonPasTerminée(Site site)
        {
            Livraison livraison = await _utile.DernièreLivraison(site);

            if (livraison.Date.HasValue)
            {
                // la dernière livraison est terminée
                return(null);
            }
            return(livraison);
        }
 //Sauvegarder commande
 public void Ajouter_Livraison(DateTime dateLivraison, int Idclient, string Fournisseur, string Document)
 {
     clslivc = new Livraison();
     clslivc.Date_Livraison = dateLivraison;
     clslivc.ID_Client      = Idclient;
     clslivc.Fournisseur    = Fournisseur;
     clslivc.Num_Document   = Document;
     db.Livraisons.Add(clslivc);
     db.SaveChanges();
     IDLivraison = clslivc.ID_Livraison;//numero de commande ajoute
 }
示例#18
0
        private DocumentBilan DocumentLivraisonBase(Livraison livraison, IEnumerable <DocumentCommande> commandes)
        {
            DocumentCommande commande = commandes.First();
            DocumentBilan    doc      = new DocumentBilan
            {
                Uid  = commande.Uid,
                Rno  = commande.Rno,
                No   = livraison.No,
                Date = livraison.Date.Value,
            };

            return(doc);
        }
示例#19
0
        /// <summary>
        /// supprime les commandes vides, fixe la date des autres à celle de leur dernier détail créé par le client s'il y en a, à celle de la livraison sinon.
        /// </summary>
        /// <param name="site"></param>
        /// <param name="livraison"></param>
        /// <returns></returns>
        public async Task TermineLivraison(Site site, Livraison livraison)
        {
            bool filtreCommande(Commande commande) => commande.LivraisonNo == livraison.No;

            List <Commande> commandes = await _utile.CommandesAvecDétailsLivraisonEtFacture(filtreCommande, null, null, site).ToListAsync();

            List <Commande> vides = commandes.Where(c => c.Détails.Count == 0).ToList();

            commandes = commandes.Where(c => c.Détails.Count != 0).ToList();
            commandes.ForEach(commande => TermineCommande(commande, livraison.Date.Value));
            _context.Commande.RemoveRange(vides);
            _context.Commande.UpdateRange(commandes);
        }
示例#20
0
        // GET: Livraison/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Livraison livraison = db.Livraison.Find(id);

            if (livraison == null)
            {
                return(HttpNotFound());
            }
            return(View(livraison));
        }
示例#21
0
        public void CreateNewLivraison(LivraisonDto livraison)
        {
            Livraison livraisonNormale = new Livraison()
            {
                DateLivraison = livraison.DateLivraison,
                Adresse       = Context.Adresse.Where(a => a.Id == livraison.Adresse.Id).FirstOrDefault(),
                Commande      = Context.Commande.Where(c => c.Id == livraison.Commande.Id).FirstOrDefault(),
                Salarie       = Context.Salarie.Where(s => s.Id == livraison.Salarie.Id).FirstOrDefault(),
                Vehicule      = Context.Vehicule.Where(v => v.Id == livraison.Vehicule.Id).FirstOrDefault()
            };

            Context.Livraison.Add(livraisonNormale);
            Context.SaveChanges();
        }
示例#22
0
 private void dtgLivraison_SelectionChanged(object sender, EventArgs e)
 {
     if (dtgLivraison.SelectedRows.Count > 0)
     {
         livraison             = null;
         btModifier.Enabled    = true;
         livraison             = (Livraison)dtgLivraison.SelectedRows[0].DataBoundItem;
         txtIdLivraison.Text   = livraison.Id.ToString();
         cboArticle.Text       = Factory.Instance.GetArticle(livraison.Id_article).ToString();
         cboFounisseur.Text    = Factory.Instance.GetFournisseur(livraison.Id_fournisseur).ToString();
         txtQuantite.Text      = livraison.Qte_e.ToString();
         txtDateLivraison.Text = livraison.Date_livraison.ToString();
     }
 }
示例#23
0
 public LivraisonController()
 {
     t.T       = new Livreur();
     livraison = new Livraison();
     user      = System.Web.HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>()
                 .FindById(System.Web.HttpContext.Current.User.Identity.GetUserId <int>());
     l                = new Livreur();
     livreur          = new Livreur();
     serviceLivraison = new LivraisonService();
     serviceLivreur   = new LivreurService();
     serviceCart      = new CartService();
     serviceCartLine  = new CartLineService();
     //id = user.Id;
     userr = new ApplicationUser();
 }
示例#24
0
        public async Task <bool> EstDansSynthèseEnvoyée(Commande commande)
        {
            if (!commande.LivraisonNo.HasValue)
            {
                return(false);
            }
            Livraison livraison = await _context.Livraison
                                  .Where(l => l.Uid == commande.SiteUid && l.Rno == commande.SiteRno && l.No == commande.LivraisonNo)
                                  .FirstOrDefaultAsync();

            if (!livraison.Date.HasValue)
            {
                return(false);
            }
            return(!commande.Livraison.FactureNo.HasValue);
        }
示例#25
0
        public ActionResult Create([Bind(Include = "id,Adresse,Ville")] Livraison livraison)
        {
            if (ModelState.IsValid)
            {
                Cart cart = null;
                cart = serviceCart.GetCartByUserId(user.Id);
                livraison.idCommande = livraison.id;
                livraison.idLivreur  = 1;
                livraison.idClient   = user.Id;
                db.Livraison.Add(livraison);
                db.SaveChanges();
                return(RedirectToAction("../Product/Carthistory"));
            }

            return(View(livraison));
        }
示例#26
0
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            Consultation fac = new Consultation(int.Parse(label9.Text));
            var          App = Application.OpenForms["Form1"] as Form1;

            App.panelContainer.Controls.Clear();
            Livraison f = new Livraison();

            App.panelContainer.Controls.Add(f);
            f.panelContainer.Controls.Clear();
            f.panelContainer.Controls.Add(fac);
            fac.Dock = DockStyle.Fill;
            fac.BringToFront();
            f.Dock = DockStyle.Fill;
            f.BringToFront();
        }
示例#27
0
        /// <summary>
        /// crée une livraison et fixe le numéro de livraison des commandes sans numéro de livraison
        /// </summary>
        /// <param name="site"></param>
        /// <returns></returns>
        public async Task CommenceLivraison(Site site)
        {
            Livraison livraison = await _utile.DernièreLivraison(site);

            long no = livraison == null ? 1 : livraison.No + 1;

            livraison = new Livraison
            {
                Uid = site.Uid,
                Rno = site.Rno,
                No  = no
            };
            _context.Livraison.Add(livraison);

            /// fixe le numéro de livraison des commandes sans numéro de livraison émises par !es clients autorisés d'un site
            await _commandeService.CommenceLivraison(site, no);
        }
        [ProducesResponseType(409)] // Conflict
        public async Task <IActionResult> Commence([FromQuery] KeyUidRno keySite)
        {
            CarteUtilisateur carte = await _utilisateurService.CréeCarteUtilisateur(HttpContext.User);

            if (carte == null)
            {
                // fausse carte
                return(Forbid());
            }

            if (!await carte.EstActifEtAMêmeUidRno(keySite.KeyParam))
            {
                // pas le fournisseur
                return(Forbid());
            }

            Site site = await _utile.SiteDeKey(keySite);

            if (site == null)
            {
                return(NotFound());
            }
            if (site.Etat != TypeEtatSite.Ouvert)
            {
                ErreurDeModel.AjouteAModelState(ModelState, "EtatSiteIncorrect");
                return(BadRequest(ModelState));
            }

            Livraison livraison = await _utile.DernièreLivraison(site);

            if (livraison != null && !livraison.Date.HasValue)
            {
                ErreurDeModel.AjouteAModelState(ModelState, "DernièreLivraisonPasTerminée");
            }

            await _service.CommenceLivraison(site);

            RetourDeService retour = await _siteService.ChangeEtat(site, TypeEtatSite.Livraison);

            if (retour.Ok)
            {
                return(Ok(await _service.VueDesCommandesOuvertesDesClientsAvecCompte(site)));
            }

            return(SaveChangesActionResult(retour));
        }
示例#29
0
        /// <summary>
        /// retourne un objet LivraisonVue contenant les commandes reçues depuis la date
        /// </summary>
        /// <param name="site"></param>
        /// <returns></returns>
        public async Task <LivraisonVue> VueDesCommandesOuvertesDesClientsAvecCompte(Site site)
        {
            Livraison livraison = await _utile.DernièreLivraison(site);

            long            no = livraison == null ? 1 : site.Etat == TypeEtatSite.Livraison ? livraison.No : livraison.No + 1;
            List <Commande> dernièresCommandes = await _commandeService.CommandesOuvertesDesClientsAvecCompte(site);

            LivraisonVue vue = new LivraisonVue
            {
                Uid       = site.Uid,
                Rno       = site.Rno,
                No        = no,
                Commandes = dernièresCommandes.Select(c => _commandeService.CréeCommandeVue(c)).ToList(),
                Date      = DateTime.Now
            };

            return(vue);
        }
示例#30
0
        public ActionResult Edit(int id, Livraison livraison)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:8091/Dari/All/Livraison/");

                //HTTP POST
                var putTask = client.PutAsJsonAsync <Livraison>("livraison", livraison);
                putTask.Wait();

                var result = putTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index"));
                }
            }
            return(View(livraison));
        }