Пример #1
0
 private void RegistraCostoGalvanica(decimal costoMateriale, string idmagazz, string idListino)
 {
     ValorizzazioneDS.COSTI_GALVANICARow costoGalvanca = _ds.COSTI_GALVANICA.NewCOSTI_GALVANICARow();
     costoGalvanca.COSTOMATERIALE = costoMateriale;
     costoGalvanca.IDMAGAZZ       = idmagazz;
     costoGalvanca.IDLISACQ       = idListino;
     _ds.COSTI_GALVANICA.AddCOSTI_GALVANICARow(costoGalvanca);
 }
Пример #2
0
        private decimal CalcolaCostoGalvanica(string idtdiba, string idmagazz, DateTime DataFine, string notaEsterna, string idProdottoFinito)
        {
            //if (idmagazz == "0000131250")
            //    System.Diagnostics.Debugger.Break();
            ValorizzazioneDS.COSTI_GALVANICARow costoGalvanica = _ds.COSTI_GALVANICA.Where(x => x.IDMAGAZZ == idmagazz).FirstOrDefault();
            if (costoGalvanica != null)
            {
                return(costoGalvanica.COSTOMATERIALE);
            }

            ValorizzazioneDS.USR_PRD_TDIBARow tdibaArticolo = _ds.USR_PRD_TDIBA.Where(x => x.IDTDIBA == idtdiba).FirstOrDefault();

            decimal costoMateriale = 0;

            string idListino = string.Empty;

            if (tdibaArticolo == null)
            {
                RegistraCostoGalvanica(costoMateriale, idmagazz, idListino);
                return(costoMateriale);
            }
            if (!tdibaArticolo.IsCODICECLIFOPRDNull() && tdibaArticolo.CODICECLIFOPRD.Trim() == "02350")
            {
                List <ValorizzazioneDS.USR_LIS_VENRow> listini = _ds.USR_LIS_VEN.Where(x => !x.IsIDMAGAZZNull() && x.IDMAGAZZ == idmagazz &&
                                                                                       x.VALIDITA <= DataFine &&
                                                                                       x.FINEVALIDITA >= DataFine &&
                                                                                       !x.IsCODICECLIFONull() &&
                                                                                       x.CODICECLIFO.Trim() == "01631" &&
                                                                                       x.AZIENDA == "TF").ToList();

                if (listini.Count > 0)
                {
                    costoMateriale = ValutaCostoListino(0, listini, out idListino);
                }
                else
                {
                    List <ValorizzazioneDS.USR_LIS_ACQRow> listiniA = _ds.USR_LIS_ACQ.Where(x => !x.IsIDMAGAZZNull() && x.IDMAGAZZ == idmagazz &&
                                                                                            x.VALIDITA <= DataFine &&
                                                                                            x.FINEVALIDITA >= DataFine &&
                                                                                            !x.IsCODICECLIFONull() &&
                                                                                            x.CODICECLIFO.Trim() == "02350" &&
                                                                                            x.AZIENDA == "MP").ToList();

                    if (listiniA.Count > 0)
                    {
                        costoMateriale = ValutaCostoListino(0, listiniA, out idListino);
                    }
                }
            }



            decimal costoFigli = 0;

            foreach (ValorizzazioneDS.USR_PRD_RDIBARow rdiba in _ds.USR_PRD_RDIBA.Where(x => x.IDTDIBA == tdibaArticolo.IDTDIBA).OrderBy(x => x.SEQUENZA))
            {
                decimal costoFiglio = 0;
                if (!rdiba.IsIDTDIBAIFFASENull())
                {
                    costoFiglio = CalcolaCostoGalvanica(rdiba.IDTDIBAIFFASE, rdiba.IDMAGAZZ, DataFine, string.Empty, idProdottoFinito);
                }
                else
                {
                    ValorizzazioneDS.COSTI_GALVANICARow costoGalvanicaFiglio = _ds.COSTI_GALVANICA.Where(x => x.IDMAGAZZ == rdiba.IDMAGAZZ).FirstOrDefault();
                    if (costoGalvanicaFiglio != null)
                    {
                        costoFiglio = costoGalvanicaFiglio.COSTOMATERIALE;
                    }
                }
                costoFigli = costoFigli + costoFiglio * rdiba.QTACONSUMO;
            }

            RegistraCostoGalvanica(costoMateriale + costoFigli, idmagazz, idListino);
            return(costoMateriale + costoFigli);
        }