public List <RWListItem> CaricaListaFornitori(bool fornitori)
        {
            List <RWListItem> model = new List <RWListItem>();

            using (RvlDocumentiBusiness bRvlDocumenti = new RvlDocumentiBusiness())
            {
                RvlDocumentiDS ds = new RvlDocumentiDS();
                bRvlDocumenti.FillCLIFO(ds);
                string filtro = "C";
                if (fornitori)
                {
                    filtro = "F";
                }
                foreach (RvlDocumentiDS.CLIFORow fornitore in ds.CLIFO.Where(x => !x.IsCODICENull() && !x.IsRAGIONESOCNull() && !x.IsTIPONull() && x.TIPO == filtro).OrderBy(x => x.RAGIONESOC))
                {
                    model.Add(new RWListItem(fornitore.RAGIONESOC.Trim(), fornitore.CODICE));
                }
            }
            return(model);
        }
        public List <RWListItem> CaricaTipoDocumentoBolleVendita()
        {
            List <RWListItem> model = new List <RWListItem>();

            using (RvlDocumentiBusiness bRvlDocumenti = new RvlDocumentiBusiness())
            {
                RvlDocumentiDS ds = new RvlDocumentiDS();
                bRvlDocumenti.FillTABTIPDOC(ds);

                List <string> documentiAmmessi = new List <string>();
                documentiAmmessi.Add("0000000022");
                documentiAmmessi.Add("0000000024");
                documentiAmmessi.Add("0000000026");
                documentiAmmessi.Add("0000000028");

                foreach (RvlDocumentiDS.TABTIPDOCRow tipoDoc in ds.TABTIPDOC.Where(x => documentiAmmessi.Contains(x.IDTABTIPDOC)))
                {
                    model.Add(new RWListItem(tipoDoc.CODICETIPDOC, tipoDoc.IDTABTIPDOC));
                }
            }
            return(model);
        }
        public List <BollaVenditaModel> TrovaBollaVendita(string NumeroDocumento, string TipoDocumento, string Data, string Cliente)
        {
            List <BollaVenditaModel> bolleVendita = new List <BollaVenditaModel>();

            using (RvlDocumentiBusiness bRvlDocumenti = new RvlDocumentiBusiness())
            {
                RvlDocumentiDS ds = new RvlDocumentiDS();

                bRvlDocumenti.FillUSR_VENDITET(ds, NumeroDocumento, TipoDocumento, Data, Cliente);

                List <string> IDVENDITET = ds.USR_VENDITET.Select(x => x.IDVENDITET).ToList();
                if (IDVENDITET.Count > 0)
                {
                    bRvlDocumenti.FillCLIFO(ds);
                    bRvlDocumenti.FillTABTIPDOC(ds);
                    bRvlDocumenti.FillTABCAUMGT(ds);
                }

                bRvlDocumenti.FillUSR_VENDITED(ds, IDVENDITET);

                List <string> IDVENDITED = ds.USR_VENDITED.Select(x => x.IDVENDITED).Distinct().ToList();
                bRvlDocumenti.FillUSR_PRD_FLUSSO_MOVMATE(ds, IDVENDITED);

                List <string> IDPRDMOVMATE = ds.USR_PRD_FLUSSO_MOVMATE.Select(x => x.IDPRDMOVMATE).Distinct().ToList();
                bRvlDocumenti.FillUSR_PRD_MOVMATE(ds, IDPRDMOVMATE);

                List <string> IDPRDMOVFASE = ds.USR_PRD_MOVMATE.Select(x => x.IDPRDMOVFASE).Distinct().ToList();
                bRvlDocumenti.FillUSR_PRD_FLUSSO_MOVFASI(ds, IDPRDMOVFASE);
                bRvlDocumenti.FillUSR_PRD_MOVFASI(ds, IDPRDMOVFASE);

                List <string> IDACQUISTID = ds.USR_PRD_FLUSSO_MOVFASI.Where(x => !x.IsIDACQUISTIDNull()).Select(x => x.IDACQUISTID).Distinct().ToList();
                bRvlDocumenti.FillUSR_ACQUISTID(ds, IDACQUISTID);

                List <string> IDACQUISTIT = ds.USR_ACQUISTID.Select(x => x.IDACQUISTIT).Distinct().ToList();
                bRvlDocumenti.FillUSR_ACQUISTIT(ds, IDACQUISTIT);

                List <string> IDMAGAZZ = ds.USR_PRD_MOVFASI.Select(x => x.IDMAGAZZ).Distinct().ToList();
                IDMAGAZZ.AddRange(ds.USR_VENDITED.Select(x => x.IDMAGAZZ).Distinct().ToList());
                bRvlDocumenti.FillMAGAZZ(ds, IDMAGAZZ);

                foreach (RvlDocumentiDS.USR_VENDITETRow testata in ds.USR_VENDITET)
                {
                    BollaVenditaModel bollaVendita = creaBollaVenditaModel(ds, testata);

                    IDVENDITED   = ds.USR_VENDITED.Where(x => x.IDVENDITET == testata.IDVENDITET).Select(x => x.IDVENDITED).ToList();
                    IDPRDMOVMATE = ds.USR_PRD_FLUSSO_MOVMATE.Where(x => IDVENDITED.Contains(x.IDVENDITED)).Select(x => x.IDPRDMOVMATE).ToList();
                    IDPRDMOVFASE = ds.USR_PRD_MOVMATE.Where(x => IDPRDMOVMATE.Contains(x.IDPRDMOVMATE)).Select(x => x.IDPRDMOVFASE).ToList();

                    foreach (RvlDocumentiDS.USR_PRD_MOVFASIRow movFaseRow in ds.USR_PRD_MOVFASI.Where(x => IDPRDMOVFASE.Contains(x.IDPRDMOVFASE)))
                    {
                        PrdMovFasiModel movFase = creaPrdMovFasiModel(ds, movFaseRow);
                        bollaVendita.PRDMOVFASI.Add(movFase);

                        IDACQUISTID = ds.USR_PRD_FLUSSO_MOVFASI.Where(x => !x.IsIDACQUISTIDNull() && x.IDPRDMOVFASE == movFaseRow.IDPRDMOVFASE).Select(x => x.IDACQUISTID).Distinct().ToList();
                        IDACQUISTIT = ds.USR_ACQUISTID.Where(x => IDACQUISTID.Contains(x.IDACQUISTID)).Select(x => x.IDACQUISTIT).Distinct().ToList();

                        foreach (RvlDocumentiDS.USR_ACQUISTITRow acquistoRow in ds.USR_ACQUISTIT.Where(x => IDACQUISTIT.Contains(x.IDACQUISTIT)))
                        {
                            BollaCaricoModel bollaCarico = creaBollaCaricoModel(ds, acquistoRow);
                            movFase.Acquisti.Add(bollaCarico);
                        }
                    }

                    bolleVendita.Add(bollaVendita);
                }
            }
            return(bolleVendita);
        }