private void CreerNouveauProduitFini()
        {
            try
            {
                bool prixValide  = prod.VerifierChampsQuantite(txtPrixDeVente.Text);
                bool stockValide = prod.VerifierChampsQuantite(txtStockInitial.Text);
                bool coutUValide = prod.VerifierChampsQuantite(txtCoutUnitaire.Text);
                bool nomvalide   = Validation.ChampsVide(txtNomProduitFini.Text);

                ResStockProduitsFini pf = new ResStockProduitsFini
                {
                    NomProduit          = txtNomProduitFini.Text,
                    StockProduit        = int.Parse(txtStockInitial.Text),
                    PrixDeVenteStandard = int.Parse(txtPrixDeVente.Text),
                    CoutUnitaire        = int.Parse(txtCoutUnitaire.Text)
                };

                db.ResStockProduitsFinis.Add(pf);
                db.SaveChanges();

                MessageBox.Show("Le nouveau produit fini a été enregistré avec succès.");
                txtPrixDeVente.Text  = "00";
                txtStockInitial.Text = "00";
                txtCoutUnitaire.Text = "00";
                txtNomProduitFini.Clear();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Le nouveau produit fini n'a pas pu être enregistré.", ex.Message);
            }
        }
示例#2
0
        private void EnregistrerProduction()
        {
            AgeEmploye respProd               = db.AgeEmployes.FirstOrDefault(rp => rp.PrenomNom == cbxResponsableProduction.Text);
            AgeEmploye respStockMatPrem       = db.AgeEmployes.FirstOrDefault(rsmp => rsmp.PrenomNom == cbxRespMatPrem.Text);
            AgeEmploye respStockProduitsFinis = db.AgeEmployes.FirstOrDefault(rspf => rspf.PrenomNom == cbxResponsableStockProduitFinis.Text);

            if (VerifierInfoIntrantsEtExtrantsProduction() && ProductionRealiseeParAuMoinsUnEmploye())
            {
                // Creer une nouvelle utilisation des ressources
                EveUtilisationRessource utilisationRessource = new EveUtilisationRessource
                {
                    CodeEmploye_Resp_production_             = respProd.CodeEmploye,
                    CodeEmploye_Resp_stock_matiere_premiere_ = respStockMatPrem.CodeEmploye
                };

                db.EveUtilisationRessources.Add(utilisationRessource);
                db.SaveChanges();

                var codeUtilisationRessources = utilisationRessource.CodeUtilisationRessources;

                AjouterRessourcesMatieresPremieres(codeUtilisationRessources);
                AjouterRessourcesTravailleurs(codeUtilisationRessources);
                AjouterRessourcesProduitSemiFini(codeUtilisationRessources);

                // Créer production
                var    creerProduction = CreerProduction(codeUtilisationRessources, respStockProduitsFinis.CodeEmploye);
                var    codeProduction  = creerProduction.CodeProduction;
                string nomProduit      = cbxProduitsProduits.GetItemText(cbxProduitsProduits.SelectedItem);

                if (rbtnProduitsFinis.Checked)
                {
                    string emballage = cbxEmballage.GetItemText(cbxEmballage.SelectedItem);
                    string etiquette = cbxEtiquettes.GetItemText(cbxEtiquettes.SelectedItem);

                    if (!string.IsNullOrEmpty(emballage))
                    {
                        ResStockProduitsFini npf = db.ResStockProduitsFinis.FirstOrDefault(n => n.NomProduit == nomProduit);

                        UtiliserEmballage(codeUtilisationRessources, emballage, int.Parse(txtQuantiteProduitProduit.Text));

                        if (cbxEtiquettes.Enabled && cbxUtiliserEtiquette.Checked)
                        {
                            try
                            {
                                bool etiquetteChoisie = cbxEtiquettes.SelectedIndex >= 0;
                                UtiliserEmballage(codeUtilisationRessources, etiquette, int.Parse(txtQuantiteProduitProduit.Text));
                            }
                            catch (Exception)
                            {
                                MessageBox.Show("Vous devez choisir une etiquette!");
                                return;
                            }
                        }

                        if (rbtnAvecSucre.Checked)
                        {
                            UtiliserSucre(codeUtilisationRessources);
                        }

                        EveProductionStockProduitsFini prodPFini = new EveProductionStockProduitsFini
                        {
                            CodeProduction      = codeProduction,
                            CodeProduitFini     = npf.CodeProduit,
                            QuantiteProduitFini = int.Parse(txtQuantiteProduitProduit.Text)
                        };

                        db.EveProductionStockProduitsFinis.Add(prodPFini);
                        db.SaveChanges();
                    }
                    else
                    {
                        MessageBox.Show("Veuillez choisir un emballage et une etiquette.");
                    }
                }
                else
                {
                    ResStockProduitsSemiFini      npsf       = db.ResStockProduitsSemiFinis.FirstOrDefault(n => n.Description == nomProduit);
                    EveProductionProduitsSemiFini prodPSFini = new EveProductionProduitsSemiFini
                    {
                        CodeProduction          = codeProduction,
                        CodeProduitSemiFini     = npsf.CodeProduitSemiFini,
                        QuantiteProduitSemiFini = int.Parse(txtQuantiteProduitProduit.Text)
                    };

                    db.EveProductionProduitsSemiFinis.Add(prodPSFini);
                    db.SaveChanges();
                }

                MessageBox.Show("La production a été enregistrée avec succès.");

                // Effacer les donnees deja enregistrees
                lvwListeMatieresP.Items.Clear();
                cbxEmballage.SelectedIndex = -1;
                txtQuantiteProduitProduit.Clear();
                lvwListProduitsSemiFinisUtilises.Items.Clear();

                var nomMatierePrem = cbxNomMatiereP.GetItemText(cbxNomMatiereP.SelectedItem);
                txtStockMatierePremiereDispo.Text = ChargerStockMatierePremiere(nomMatierePrem).ToString();
            }
        }