private async Task <DocumentCommande> DocumentCommandeTarif(AKeyUidRno keySite, Commande commande, Func <DétailCommande, bool> filtreDétails, bool avecDétails) { DocumentCommande documentCommande = DocumentCommandeBase(commande); IEnumerable <DétailCommande> détails = filtreDétails == null ? commande.Détails : commande.Détails.Where(d => filtreDétails(d)).ToList(); if (avecDétails) { documentCommande.Détails = détails.Select(d => _détailCommandeService.DétailCommandeData(d)).ToList(); } documentCommande.Tarif = await _catalogueService.Tarif(keySite, commande.Date.Value, détails); return(documentCommande); }
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); }
private DocumentCommande DocumentCommandeBase(DocumentCommande documentCommande) { DocumentCommande doc = new DocumentCommande { Uid = documentCommande.Uid, Rno = documentCommande.Rno, No = documentCommande.No, Date = documentCommande.Date, LivraisonNo = documentCommande.LivraisonNo, DateLivraison = documentCommande.DateLivraison, }; return(doc); }
private DocumentCommande DocumentCommandeBase(Commande c) { DocumentCommande doc = new DocumentCommande { Uid = c.Uid, Rno = c.Rno, No = c.No, Date = c.Date, LivraisonNo = c.Livraison.No, DateLivraison = c.Livraison.Date, }; return(doc); }
private DocumentCommande DocumentCommandeBilan(DocumentCommande documentCommandeTarif) { DocumentCommande documentCommande = DocumentCommandeBase(documentCommandeTarif); IEnumerable <DétailCommandeData> détails = documentCommandeTarif.Détails.Where(d => d.Demande.HasValue && d.Demande.Value > 0); documentCommande.LignesC = détails.Count(); documentCommande.TotalC = _détailCommandeService.CoûtDemande(détails, documentCommandeTarif.Tarif, out bool incomplet); if (incomplet) { documentCommande.IncompletC = true; } détails = documentCommandeTarif.Détails.Where(d => d.ALivrer.HasValue && d.ALivrer.Value > 0); documentCommande.LignesL = détails.Count(); documentCommande.TotalL = _détailCommandeService.CoûtALivrer(détails, documentCommandeTarif.Tarif); return(documentCommande); }
public async Task <AKeyUidRnoNo> Commande(AKeyUidRno keySite, KeyUidRnoNo keyDocument) { bool filtreCommandes(Commande c) => c.Uid == keyDocument.Uid && c.Rno == keyDocument.Rno && c.No == keyDocument.No; bool filtreDétails(DétailCommande d) => d.Demande.HasValue; List <Commande> commandes = await _utile.CommandesAvecDétailsLivraisonEtFacture(filtreCommandes, filtreDétails, null, null).ToListAsync(); if (commandes.Count() == 0) { return(null); } DocumentCommande commande = (await DocumentCommandes(keySite, commandes, filtreDétails, avecDétails: true)).First(); commande.Détails = commande.Détails.Select(d => new DétailCommandeData { No = d.No, TypeCommande = d.TypeCommande, Demande = d.Demande }).ToList(); return(commande); }