private void ddlMateriali_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlMateriali.SelectedIndex == -1)
            {
                return;
            }

            Anagrafica a = new Anagrafica();
            List <PrezzoMaterialeModel> prezzi = a.CreaListaPrezzoMaterialeModel();

            _prezzi = prezzi.Where(x => x.Materiale.IdMateriale == _materialeSelezionato.IdMateriale).ToList();
            caricaGrigliaPrezzi();
        }
        private void btnAggiungi_Click(object sender, EventArgs e)
        {
            if (ddlMateriali.SelectedIndex == -1)
            {
                MessageBox.Show("Selezionare il materiale per cui si inserisce il prezzo.", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                lblMessaggio.Text = string.Empty;
                return;
            }
            Anagrafica a = new Anagrafica();

            lblMessaggio.Text = a.CreaPrezzoMateriale(nuPrezzo.Value, txtNota.Text, _materialeSelezionato.IdMateriale, dtDataValidita.Value, _utenteConnesso);

            List <PrezzoMaterialeModel> prezzi = a.CreaListaPrezzoMaterialeModel();

            _prezzi = prezzi.Where(x => x.Materiale.IdMateriale == _materialeSelezionato.IdMateriale).ToList();
            caricaGrigliaPrezzi();
        }
        private void caricaGrigliaPrezzi()
        {
            //            dgvMateriali.AutoGenerateColumns = false;
            if (ddlMateriali.SelectedIndex == -1)
            {
                return;
            }
            Anagrafica a = new Anagrafica();
            List <PrezzoMaterialeModel> prezzi = a.CreaListaPrezzoMaterialeModel();

            _prezzi = prezzi.Where(x => x.Materiale.IdMateriale == _materialeSelezionato.IdMateriale).ToList();

            _source.DataSource      = _prezzi;
            dgvMateriali.DataSource = _source;

            dgvMateriali.Columns[0].Visible = false;
            dgvMateriali.Columns[4].Visible = false;
        }
예제 #4
0
        private void calcolaCostiGalvanica()
        {
            List <ElementoGrigliaCostoGalvanica> elementiCostiGalvanica = new List <ElementoGrigliaCostoGalvanica>();

            List <ElementoCostoPreventivoModel> elementiGalvanici = _elementiCostoPreventivo.Where(x => x.ElementoPreventivo.Reparto != null && x.ElementoPreventivo.Reparto.Codice == Reparti.Galvanica).ToList();

            if (elementiGalvanici.Count == 0)
            {
                MessageBox.Show("Non sono presenti elementi associati al reparto galvanica GALVA", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            Anagrafica a = new Anagrafica();
            List <PrezzoMaterialeModel> prezzi = a.CreaListaPrezzoMaterialeModel();

            foreach (ElementoCostoPreventivoModel elementoGalvanico in elementiGalvanici)
            {
                decimal dm2    = 0.1M * 0.1M;
                decimal micron = (1M / 1000) * (1M / 1000);
                ElementoPreventivoModel elementoPreventivo = elementoGalvanico.ElementoPreventivo;
                if (elementoPreventivo.IdEsterna == ElementiVuoti.ProcessoGalvanicoVuoto)
                {
                    continue;
                }
                ProcessoModel processoGalvanico = _processi.Where(x => x.IdProcesso == elementoPreventivo.IdEsterna).FirstOrDefault();  //  _preventivoCostoSelezionato.Preventvo.Processo;
                decimal       costo             = 0;
                foreach (FaseProcessoModel fase in processoGalvanico.Fasi)
                {
                    if (fase.Vasca.AbilitaStrato)
                    {
                        if (fase.Vasca.Materiale.IdMateriale == ElementiVuoti.NessunMateriale)
                        {
                            continue;
                        }
                        ElementoGrigliaCostoGalvanica elementoCostoGalvanica = new ElementoGrigliaCostoGalvanica();
                        elementiCostiGalvanica.Add(elementoCostoGalvanica);
                        elementoCostoGalvanica.Articolo      = elementoPreventivo.Articolo;
                        elementoCostoGalvanica.Elemento      = elementoPreventivo.Codice;
                        elementoCostoGalvanica.Superficie    = elementoPreventivo.Superficie;
                        elementoCostoGalvanica.Materiale     = fase.Vasca.Materiale.Descrizione;
                        elementoCostoGalvanica.Spessore      = fase.SpessoreNominale;
                        elementoCostoGalvanica.PesoSpecifico = fase.Vasca.Materiale.PesoSpecifico;

                        decimal volumeMetriCubi     = (elementoPreventivo.Superficie * dm2) * (fase.SpessoreNominale * micron);
                        decimal volumeDecimetriCubi = volumeMetriCubi * 1000;
                        elementoCostoGalvanica.Volume = volumeDecimetriCubi;
                        decimal pesoInKg = volumeDecimetriCubi * fase.Vasca.Materiale.PesoSpecifico;// peso speficifico espresso in kg/dm3
                        decimal pesoInGr = pesoInKg * 1000;
                        elementoCostoGalvanica.Peso = pesoInGr;
                        decimal prezzoGrammo        = 0;
                        PrezzoMaterialeModel prezzo = prezzi.Where(x => x.Materiale.IdMateriale == fase.Vasca.Materiale.IdMateriale).FirstOrDefault();
                        if (prezzo == null)
                        {
                            string messaggio = string.Format("Prezzo materiale {0} non presente. Il prezzo sarà pre-impostato a zero", fase.Vasca.Materiale);
                            MessageBox.Show(messaggio, "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            prezzoGrammo = prezzo.Prezzo;
                        }
                        elementoCostoGalvanica.PrezzoGrammo = prezzoGrammo;
                        decimal costoFase = Math.Round(prezzoGrammo * pesoInGr, 4);
                        costo += costoFase;
                        elementoCostoGalvanica.Costo = costoFase;
                    }
                }
                elementoGalvanico.CostoOrario   = costo;
                elementoGalvanico.CostoArticolo = costo * (1 + elementoGalvanico.Ricarico / 100);
            }

            dgvCostiGalvanica.DataSource = elementiCostiGalvanica;
            RefreshGridViewElementi();
        }