Ejemplo n.º 1
0
        /// <summary>
        /// Exécute une action sur chaque ligne des documents d'un client dont le No est dans une liste.
        /// Retourne une erreur si l'un des documents n'est pas à synthétiser.
        /// </summary>
        /// <param name="paramsSynthèse">contient l'Id du client et la liste des No des documents à synthétiser</param>
        /// <param name="action">retourne null si l'action est impossible</param>
        /// <returns></returns>
        protected async Task <IActionResult> Action(ParamsSynthèse paramsSynthèse, Func <List <DocCLF>, Task <RetourDeService> > action)
        {
            vérificateur.Initialise(paramsSynthèse.Id);
            try
            {
                await ClientDeLAction();
                await UtilisateurEstFournisseur();

                ContexteCatalogue();
            }
            catch (VérificationException)
            {
                return(vérificateur.Erreur);
            }

            // Lit la liste des documents synthétisables dont le No est dans la liste.
            List <DocCLF> docs = await _service.DocumentsEnvoyésSansSynthèse(paramsSynthèse, DocCLF.TypeBon(_type));

            if (docs.Count != paramsSynthèse.NoDocs.Count)
            {
                // L'un des No de la liste ne correspond pas à un document synthétisable.
                return(RésultatBadRequest("DocumentsPasEnvoyésOuAvecSynthèse"));
            }

            RetourDeService retour = await action(docs);

            return(SaveChangesActionResult(retour));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Crée un document de synthèse à partir des documents d'un client dont le No est dans une liste.
        /// L'objet retourné contient un DocCLF contenant uniquement le No et la Date de la synthèse créée.
        /// Retourne une erreur si l'un des documents n'est pas à synthétiser.
        /// </summary>
        /// <param name="paramsSynthèse">contient l'Id du client et la liste des No des documents à synthétiser</param>
        /// <returns></returns>
        protected async Task <IActionResult> Synthèse(ParamsSynthèse paramsSynthèse)
        {
            vérificateur.Initialise(paramsSynthèse.Id);
            try
            {
                await ClientDeLAction();
                await UtilisateurEstFournisseur();

                ContexteCatalogue();
            }
            catch (VérificationException)
            {
                return(vérificateur.Erreur);
            }

            if (paramsSynthèse.NoDocs == null || paramsSynthèse.NoDocs.Count == 0)
            {
                return(RésultatBadRequest("PasDeNosDeDocuments"));
            }

            // Lit la liste des documents synthétisables dont le No est dans la liste.
            List <DocCLF> docs = await _service.DocumentsEnvoyésSansSynthèse(paramsSynthèse, DocCLF.TypeBon(_type));

            if (docs.Count != paramsSynthèse.NoDocs.Count)
            {
                // L'un des No de la liste ne correspond pas à un document synthétisable.
                return(RésultatBadRequest("DocumentsPasEnvoyésOuAvecSynthèse"));
            }

            RetourDeService <DocCLF> retour = await _service.Synthèse(vérificateur.Site, paramsSynthèse.Id, docs, _type);

            if (retour.Ok)
            {
                return(Ok(retour.Entité));
            }

            return(SaveChangesActionResult(retour));
        }
Ejemplo n.º 3
0
 [ProducesResponseType(409)] // Conflict
 public async Task <IActionResult> Envoi(ParamsSynthèse paramsSynthèse)
 {
     return(await Synthèse(paramsSynthèse));
 }
Ejemplo n.º 4
0
 [ProducesResponseType(409)] // Conflict
 public async Task <IActionResult> Envoi(ParamsSynthèse clfDocs)
 {
     return(await Synthèse(clfDocs));
 }
Ejemplo n.º 5
0
        [ProducesResponseType(409)] // Conflict
        public async Task <IActionResult> AnnuleT(ParamsSynthèse clfDocs)
        {
            Task <RetourDeService> action(List <DocCLF> docs) => _service.Annule(docs, TypeCLF.Livraison);

            return(await Action(clfDocs, action));
        }
Ejemplo n.º 6
0
        [ProducesResponseType(409)] // Conflict
        public async Task <IActionResult> AnnuleT(ParamsSynthèse paramsSynthèse)
        {
            Task <RetourDeService> action(List <DocCLF> docs) => _service.Annule(docs, TypeCLF.Commande);

            return(await Action(paramsSynthèse, action));
        }