none
Comment calculer une quantité restante entre une collection de datetime? RRS feed

  • Question

  • Bonjour tout le monde,

    J'ai une question concernant un calcule de quantité. Je vous explique : J'ai deux objets, le premier s'appel "Order" et le deuxième "Tender" soit l'équivalent de "commandes effectuées par un client" et "appel d'offres".

    J'ai présentement plusieurs commandes dans ma table "Order" relié aux clients. Les champs les plus important pour mon problème sont ceux-ci :

    Order

    1. Date d'expiration
    2. Date d'achat
    3. Quantité d'appel d'offres achetés

    Tender

    1. Date de création

    Un usager peut avoir plusieurs commande durant la même année. Chaque commande est enregistrée dans la table "Order".

    Ma mission est de calculer la quantité d'appel d'offres disponible pour l'usager en fonction des dates d'achats et d'expirations des différentes commandes.

    J'ai de la difficulté à voir comment je peux calculer la quantité d'appel d'offres encore disponible lorsque j'ai une collection de date venant de la table "Order" et une date de création dans la table "Tender"

    Je ne peux pas simplement faire une Sum() - Count() comme l'exemple de code ci-dessous car il y a une règle qui détermine qu'un achat est disponible uniquement pendant 365 jours.

    public static int GetTendersRemaining        {            get            {                var tenderQuantityPurchased = (from o in UserMembership.GetUserProfileOrDefault.Orders                                               select o.TenderPurchased).Sum();                return tenderQuantityPurchased - UserMembership.GetUserProfileOrDefault.Tenders.Count();            }        }

    J'aimerais solliciter votre aide pour que je puisses débloquer ma situation...

    Merci à la communauté,

    David

    vendredi 5 septembre 2014 18:54

Réponses

  • Difficile de rentrer dans votre code mais en ajoutant des Where ?

    Orders.Where(o=>o.DateExpiration > xxx and o.DateExpiration< yyy).Sum()


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    • Marqué comme réponse Aurel Bera mercredi 17 septembre 2014 10:22
    lundi 8 septembre 2014 09:27
  • Bonjour,

    Ceci correspond a votre demande ?

    var quantite = monClient.Orders.Sum(o=> o.Tenders.Where(t=>t.DateCreation < o.DateExpiration).Count());

    Cdt,

    Davy


    • Modifié Davy H mercredi 10 septembre 2014 09:58
    • Marqué comme réponse Aurel Bera mercredi 17 septembre 2014 10:22
    mercredi 10 septembre 2014 09:57

Toutes les réponses

  • Difficile de rentrer dans votre code mais en ajoutant des Where ?

    Orders.Where(o=>o.DateExpiration > xxx and o.DateExpiration< yyy).Sum()


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    • Marqué comme réponse Aurel Bera mercredi 17 septembre 2014 10:22
    lundi 8 septembre 2014 09:27
  • Bonjour,

    Ceci correspond a votre demande ?

    var quantite = monClient.Orders.Sum(o=> o.Tenders.Where(t=>t.DateCreation < o.DateExpiration).Count());

    Cdt,

    Davy


    • Modifié Davy H mercredi 10 septembre 2014 09:58
    • Marqué comme réponse Aurel Bera mercredi 17 septembre 2014 10:22
    mercredi 10 septembre 2014 09:57