Ejemplo n.º 1
0
        [ProducesResponseType(404)] // Not found
        public async Task <IActionResult> Lit([FromQuery] KeyUidRnoNo2 keyDétail)
        {
            CarteUtilisateur carte = await _utilisateurService.CréeCarteUtilisateur(HttpContext.User);

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

            bool estLeClient = await carte.EstActifEtAMêmeUidRno(AKeyUidRnoNo2.KeyUidRno_1(keyDétail).KeyParam);

            if (!estLeClient)
            {
                bool estFournisseur = await carte.EstActifEtAMêmeUidRno(AKeyUidRnoNo2.KeyUidRno_2(keyDétail).KeyParam);

                if (!estFournisseur)
                {
                    return(Forbid());
                }
            }

            DétailCommande détail = await _détailCommandeService.Lit(keyDétail.KeyParam);

            if (détail == null)
            {
                return(NotFound());
            }

            DétailCommandeVue vue = _détailCommandeService.CréeVue(détail);

            return(Ok(vue));
        }
Ejemplo n.º 2
0
        public async Task <DétailCommande> LitDétail(DétailCommandeVue vue)
        {
            DétailCommande détail = await _context.DétailCommande
                                    .Where(d => d.AMêmeKey(vue))
                                    .FirstOrDefaultAsync();

            return(détail);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Vérifie que vérificateur.Commande.Détails ne contient pas déjà le détail
        /// </summary>
        /// <param name="vérificateur"></param>
        /// <returns></returns>
        private Task DétailNExistePas(Vérificateur vérificateur)
        {
            List <DétailCommande> détails = new List <DétailCommande>(vérificateur.Commande.Détails);
            DétailCommande        détail  = détails.Find(d => d.No2 == vérificateur.KeyDétail.No2);

            if (détail != null)
            {
                vérificateur.Erreur = RésultatBadRequest("DétailExiste");
            }
            return(Task.CompletedTask);
        }
Ejemplo n.º 4
0
        [ProducesResponseType(409)] // Conflict
        public async Task <IActionResult> Detail(DétailCommandeVue vue)
        {
            CarteUtilisateur carte = await _utilisateurService.CréeCarteUtilisateur(HttpContext.User);

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

            KeyUidRno keySite = new KeyUidRno {
                Uid = vue.Uid2, Rno = vue.Rno
            };

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

            Commande commande = await _service.CommandeDeDétail(vue);

            if (commande == null)
            {
                return(NotFound());
            }

            if (!(await _service.EstDansSynthèseEnvoyée(commande)))
            {
                Erreurs.ErreurDeModel.AjouteAModelState(ModelState, "CommandeLivréeEtNonFacturée");
                return(BadRequest());
            }

            DétailCommande détail = await _service.LitDétail(vue);

            if (détail == null)
            {
                return(NotFound());
            }

            RetourDeService retour = await _service.EcritDétail(détail, vue);

            return(SaveChangesActionResult(retour));
        }
Ejemplo n.º 5
0
 public async Task <RetourDeService> EcritDétail(DétailCommande détail, DétailCommandeVue vue)
 {
     détail.AFacturer = vue.AFacturer;
     _context.DétailCommande.Update(détail);
     return(await SaveChangesAsync());
 }
Ejemplo n.º 6
0
 /// <summary>
 /// retourne vrai si les TypeCommande du détail et du produit permettent la copie de Demande dans ALivrer
 /// </summary>
 /// <param name="détail"></param>
 /// <param name="produit"></param>
 /// <returns></returns>
 public bool TypesPermettentCopieDemande(DétailCommande détail, Produit produit)
 {
     return(produit.TypeCommande != TypeUnitéDeCommande.UnitéOuVrac || détail.TypeCommande == TypeUnitéDeCommande.Vrac);
 }