public static Single CoutDesMatieresConsommees(DateTime debutPeriode, DateTime finPeriode, string matiere)
        {
            using (CasaDBEntities db = new CasaDBEntities())
            {
                Single quantiteMatiere      = QuantiteDeMatieresConsommees(debutPeriode, finPeriode, matiere);
                string coutUnitaireStandard = (from mp in db.ResStockMatieresPremieres where mp.NomMatiere == matiere select mp.CoutUnitaire)
                                              .SingleOrDefault()
                                              .ToString();
                Single coutUnitaire;

                if (CoutDAchatDesMatierePremieres.CoutDAchat(matiere) > 0)
                {
                    coutUnitaire = CoutDAchatDesMatierePremieres.CoutDAchat(matiere);
                }
                else
                {
                    coutUnitaire = Single.Parse(coutUnitaireStandard);
                }


                return(quantiteMatiere * coutUnitaire);
            }
        }
示例#2
0
        public static Single CoutUnitaireProduitSemiFini(string produitSemiFini)
        {
            using (CasaDBEntities db = new CasaDBEntities())
            {
                var listeMatieres = (from psf in db.ResStockProduitsSemiFinis
                                     join ppf in db.EveProductionProduitsSemiFinis on psf.CodeProduitSemiFini equals ppf.CodeProduitSemiFini
                                     join p in db.EveProductions on ppf.CodeProduction equals p.CodeProduction
                                     join ur in db.EveUtilisationMatieresPremieres on p.CodeUtilisationRessources equals ur.CodeUtilisationRessource
                                     where psf.Description == produitSemiFini

                                     select new
                {
                    Matiere = ur.ResStockMatieresPremiere.NomMatiere
                }).Distinct().ToList();

                Single coutMatieresPremieresParProduitSemiFini = 0;

                foreach (var mat in listeMatieres)
                {
                    Single coutMatiere = (float)GestionStocks.QuantiteMatierePremiereParProduitSemiFini(produitSemiFini, mat.Matiere) * CoutDAchatDesMatierePremieres.CoutDAchat(mat.Matiere);
                    coutMatieresPremieresParProduitSemiFini += coutMatiere;
                }

                if (coutMatieresPremieresParProduitSemiFini == 0)
                {
                    coutMatieresPremieresParProduitSemiFini = (from psf in db.ResStockProduitsSemiFinis
                                                               where psf.Description == produitSemiFini
                                                               select psf.CoutUnitaire).FirstOrDefault();
                }

                return(coutMatieresPremieresParProduitSemiFini);
            }
        }
        public static Single ValeurStockMatieresPremieres(DateTime date)
        {
            using (CasaDBEntities db = new CasaDBEntities())
            {
                Single valeurStockMatieresPremieres = 0;
                var    listeMatieresPremieres       = (from mp in db.ResStockMatieresPremieres
                                                       select mp.NomMatiere).ToList();

                foreach (var matPrem in listeMatieresPremieres)
                {
                    valeurStockMatieresPremieres += GestionStocks.CalculerSoldeStockMatierePremiere(matPrem, date) * CoutDAchatDesMatierePremieres.CoutDAchat(matPrem);
                }

                return(valeurStockMatieresPremieres);
            }
        }