private Task ChampsConformesAEtatCommande(Vérificateur vérificateur) { DétailCommandeVue détail = vérificateur.VueDétail; Commande commande = vérificateur.Commande; bool peutAjouterEtSupprimerDétailEtEditerDemande; bool peutEditerALivrer; if (vérificateur.EstClient) { peutAjouterEtSupprimerDétailEtEditerDemande = !commande.Date.HasValue; peutEditerALivrer = false; } else { peutAjouterEtSupprimerDétailEtEditerDemande = commande.Date.HasValue && commande.Date.Value.Ticks == 0 && (!commande.LivraisonNo.HasValue || !commande.Livraison.FactureNo.HasValue); peutEditerALivrer = commande.Date.HasValue && commande.LivraisonNo.HasValue && !commande.Livraison.Date.HasValue; } bool peutEditer = peutAjouterEtSupprimerDétailEtEditerDemande || peutEditerALivrer; if (!peutEditer) { vérificateur.Erreur = RésultatBadRequest("DétailNonEditable"); return(Task.CompletedTask); } if (!peutEditerALivrer && détail.ALivrer.HasValue) { vérificateur.Erreur = RésultatBadRequest("ALivrerNonEditable"); return(Task.CompletedTask); } return(Task.CompletedTask); }
[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)); }
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); }
[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)); }
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()); }
[ProducesResponseType(409)] // Conflict public async Task <IActionResult> Edite([FromQuery] ParamsEditeDétail paramsDétail, DétailCommandeVue vue) { Vérificateur vérificateur = new Vérificateur(vue, paramsDétail); await vérificateur.Vérifie( ClientDeLAction, UtilisateurEstClientOuFournisseur, EtatSiteChangé, DétailExiste, ChampsConformesAEtatCommande, PeutCommanderProduit, ChampsInterditsAbsents, ChampsPrésentsValides ); if (vérificateur.Erreur != null) { return(vérificateur.Erreur); } RetourDeService <DétailCommande> retour = await _détailCommandeService.Edite(vérificateur.Détail, vue); return(SaveChangesActionResult(retour)); }
[ProducesResponseType(409)] // Conflict public async Task <IActionResult> Ajoute([FromQuery] ParamsEditeDétail paramsDétail, DétailCommandeVue vue) { Vérificateur vérificateur = new Vérificateur(vue, paramsDétail); await vérificateur.Vérifie( ClientDeLAction, UtilisateurEstClientOuFournisseur, EtatSiteChangé, CommandeExiste, DétailNExistePas, CommandeModifiable, PeutCommanderProduit, ChampsInterditsAbsents, ChampsRequisPrésents, ChampsPrésentsValides ); if (vérificateur.Erreur != null) { return(vérificateur.Erreur); } RetourDeService <DétailCommande> retour = await _détailCommandeService.Ajoute(vue); if (retour.Ok) { return(CreatedAtAction(nameof(LitDétail), vérificateur.KeyDétail, retour.Entité)); } return(SaveChangesActionResult(retour)); }