Пример #1
0
 public ControllerLog()
     : base(enAmbiente.LogViewList, enAmbiente.LogViewList)
 {
     sub1 = EventAggregator.Instance().Subscribe <Remove <EventLog> >(
         (b) =>
     {
         using (var saveEntity = new SaveEntityManager())
         {
             var uof  = saveEntity.UnitOfWork;
             var item = ((EventLog)SelectedItem);
             var sel  = uof.EventLogRepository.Find(a => a.ID == item.ID).FirstOrDefault();
             if (sel == null)
             {
                 EventAggregator.Instance().Publish <UpdateList <EventLog> >(new UpdateList <EventLog>(this));
                 return;
             }
             uof.EventLogRepository.Delete(sel);
             if (saveEntity.SaveEntity(operation: enSaveOperation.OpDelete))
             {
                 EventAggregator.Instance().Publish <UpdateList <EventLog> >(new UpdateList <EventLog>(this));
             }
         }
     }
         );
 }
Пример #2
0
 private void SaveArticolo(object arg)
 {
     try
     {
         using (var save = new SaveEntityManager())
         {
             var uof = save.UnitOfWork;
             if (EditItem.ID <= 0 ||
                 uof.ArticoliRepository.Find(a => a.ID == EditItem.ID).Count() == 0)
             {
                 uof.ArticoliRepository.Add(EditItem);
             }
             else
             {
                 EditItem.Categoria = null;
                 uof.ArticoliRepository.Update(EditItem);
             }
             if (
                 save.SaveEntity(enSaveOperation.OpSave))
             {
                 EventAggregator.Instance().Publish <UpdateList <Articolo> >(new UpdateList <Articolo>(this));
             }
         }
     }
     catch (MessageException ex)
     {
         ExceptionManager.ManageError(ex);
     }
     catch (Exception ex)
     {
         ExceptionManager.ManageError(ex);
     }
 }
Пример #3
0
        private void Save(Save <ListinoPrezziFornitori> obj)
        {
            using (var saveManager = new SaveEntityManager())
            {
                SelectedItem.ArticoloID = _controllerMaster.EditItem.ID;
                if (_controllerMaster.EditItem.ID == 0)
                {
                    return;
                }
                var uof = saveManager.UnitOfWork;
                if (SelectedItem.ID > 0)
                {
                    uof.ListinoPrezziFornitoriRepository.Update(SelectedItem);
                }
                else
                {
                    if (uof.ListinoPrezziFornitoriRepository.Find(a => a.ArticoloID == SelectedItem.ArticoloID && a.FornitoreID == SelectedItem.FornitoreID)
                        .Count() > 0)
                    {
                        MessageManager.NotificaWarnig("Esiste già l''associazione articolo fornitore!");
                        return;
                    }
                    uof.ListinoPrezziFornitoriRepository.Add(SelectedItem);
                }

                if (saveManager.SaveEntity(enSaveOperation.OpSave))
                {
                    RiselezionaSelezionato();
                }
            }
        }
Пример #4
0
        private void Save(Save <Fattura> obj)
        {
            using (var saveManager = new SaveEntityManager())
            {
                var uof = saveManager.UnitOfWork;
                EditItem.Data = EditItem.Data.Date;



                if (EditItem.ID > 0)
                {
                    if (saveManager.UnitOfWork.FatturaRepository.Find(a => a.ID == EditItem.ID).Select(a => a.ChiusaSpedita).First())
                    {
                        MessageManager.NotificaWarnig("Documento già chiuso, non è possibile modificare altro!");
                        return;
                    }

                    EditItem = CalcolaTotali(EditItem);
                    uof.FatturaRepository.Update(EditItem);
                }
                else
                {
                    uof.FatturaRepository.Add(EditItem);
                }

                if (saveManager.SaveEntity(enSaveOperation.OpSave))
                {
                    EventAggregator.Instance().Publish <UpdateList <Fattura> >(
                        new UpdateList <Fattura>(this));
                }
            }
        }
Пример #5
0
        private void DelFattura(Remove <Fattura> obj)
        {
            try
            {
                if (!MessageManager.QuestionMessage("Sei sicuro di voler cancellare il documento selezionato?"))
                {
                    return;
                }
                using (var saveEntity = new SaveEntityManager())
                {
                    var uof  = saveEntity.UnitOfWork;
                    int val  = ((Fattura)SelectedItem).ID;
                    var item = uof.FatturaRepository.Find(a => a.ID == val).FirstOrDefault();
                    _logger.Info(string.Format("Cancellazione documento/r/n codice {0} /r/n ID {1}",
                                               item.Codice, item.ID));

                    foreach (var itemRiga in uof.FattureRigheRepository.Find(a => a.FatturaID == val))
                    {
                        uof.FattureRigheRepository.Delete(itemRiga);
                    }

                    uof.FatturaRepository.Delete(item);

                    if (saveEntity.SaveEntity(enSaveOperation.OpDelete))
                    {
                        EventAggregator.Instance().Publish <UpdateList <Fattura> >(
                            new UpdateList <Fattura>(this));
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.ManageError(ex);
            }
        }
Пример #6
0
 private void Sconta(ArticoloSconta obj)
 {
     if (!MessageManager.QuestionMessage(string.Format(@"Sei sicuro di volere applicare questo sconto su tutti i {0} articoli visualizzati nella lista?", DataSource.Count())))
     {
         return;
     }
     if (DataSource.Count() > 100)
     {
         if (!MessageManager.QuestionMessage(string.Format(@"Sei veramente sicuro di volere applicare questo sconto su tutti i {0} articoli  visualizzati nella lista?", DataSource.Count())))
         {
             return;
         }
     }
     _logger.Info("Applicato sconto su marca {0} e filtro ricerca {1} di {2} %.  ", FiltroMarca, this.TestoRicerca, obj.Percentuale);
     using (var saveEnt = new SaveEntityManager())
     {
         var list = DataSource.Select(a => a.ID).ToList();
         foreach (var item in saveEnt.UnitOfWork.ArticoliRepository.Find(a => list.Contains(a.ID)).ToList())
         {
             item.Prezzo += item.Prezzo * obj.Percentuale / (decimal)100;
             _logger.Info("Applicato sconto su articolo codice {0}, nuovo prezzo ", item.ID, item.Prezzo.ToString("C2"));
             saveEnt.UnitOfWork.ArticoliRepository.Update(item);
         }
         if (saveEnt.SaveEntity("Variazione applicata con successo"))
         {
             EventAggregator.Instance().Publish <UpdateList <Articolo> >(new UpdateList <Articolo>(this));
         }
     }
 }
Пример #7
0
        private void Save(Save <FatturaRiga> obj)
        {
            using (var saveManager = new SaveEntityManager())
            {
                var uof = saveManager.UnitOfWork;
                EditItem.Fattura   = null;
                EditItem.FatturaID = _controllerFatturazione.EditItem.ID;
                if (_controllerFatturazione.EditItem.ID == 0)
                {
                    return;
                }

                if (saveManager.UnitOfWork.FatturaRepository.Find(a => a.ID == EditItem.FatturaID).Select(a => a.ChiusaSpedita).First())
                {
                    MessageManager.NotificaWarnig("Documento già chiuso, non è possibile modificare altro!");
                    return;
                }
                if (EditItem.ID > 0)
                {
                    uof.FattureRigheRepository.Update(EditItem);
                }
                else
                {
                    uof.FattureRigheRepository.Add(EditItem);
                }

                if (saveManager.SaveEntity(enSaveOperation.OpSave))
                {
                    AggiornaTotaliFattura();

                    RiselezionaSelezionato();
                }
            }
        }
Пример #8
0
        private void ImageRemoveSet(ImageRemove <PagamentoDocumenti> obj)
        {
            if (obj.GuidKey == this._INSTANCE_KEY)
            {
                if (!SettingDocumentiPagamentiValidator.CheckFolderPdfPagamenti())
                {
                    return;
                }

                var folderPagamenti = SettingDocumentiPagamentiValidator.ReadSetting().CartellaReteDocumentiPagamenti;

                using (var saveManager = new SaveEntityManager())
                {
                    var repo = saveManager.UnitOfWork.PagamentoDocumentiRepository;

                    var filePdf = obj.File.Entity;

                    var nomeFile = Path.Combine(folderPagamenti, filePdf.PathFile);

                    File.Delete(nomeFile);

                    var item = repo.Find(a => a.ID == filePdf.ID).First();
                    repo.Delete(item);

                    saveManager.SaveEntity("Rimossa immagine");
                }

                EventAggregator.Instance().Publish <ImageListUpdate>(new ImageListUpdate());
            }
        }
Пример #9
0
        private void SavePreordine_Click(object sender, EventArgs e)
        {
            using (var saveEnt = new SaveEntityManager())
            {
                bool save = false;
                foreach (var item in DataSource.Where(a => a.ToSave == true))
                {
                    var listino   = saveEnt.UnitOfWork.ListinoPrezziFornitoriRepository.Find(a => a.ID == item.ID).FirstOrDefault();
                    var preOrdAcq = saveEnt.UnitOfWork.PreOrdineAcquistoRepository.Find(a => a.FornitoreID == listino.FornitoreID && a.ArticoloID == listino.ArticoloID).FirstOrDefault();
                    if (preOrdAcq == null)
                    {
                        preOrdAcq             = new PreOrdineAcquisto();
                        preOrdAcq.ArticoloID  = listino.ArticoloID;
                        preOrdAcq.FornitoreID = listino.FornitoreID;
                    }
                    save = true;
                    preOrdAcq.QtaDaOrdinare = item.QtaDaOrdinare;
                    if (preOrdAcq.ID <= 0)
                    {
                        saveEnt.UnitOfWork.PreOrdineAcquistoRepository.Add(preOrdAcq);
                    }
                    else
                    {
                        saveEnt.UnitOfWork.PreOrdineAcquistoRepository.Update(preOrdAcq);
                    }
                }
                if (save)
                {
                    saveEnt.SaveEntity(enSaveOperation.OpSave);

                    EventAggregator.Instance().Publish <UpdateList <ListinoPrezziFornitori> >(new UpdateList <ListinoPrezziFornitori>(this));
                }
            }
        }
Пример #10
0
        /// <summary>
        /// Unisce gli articoli in quello selezionato nella prima form
        /// </summary>
        /// <param name="artToMerge"></param>
        private void MergeArticoli(Articolo artToMerge)
        {
            using (var save = new SaveEntityManager(true))
            {
                var elem = save.UnitOfWork.ArticoliRepository.Find(a => a.ID == this.SelectedItem.ID ||
                                                                   a.ID == artToMerge.ID).ToList();

                var baseItem = elem.Where(a => a.ID == this.SelectedItem.ID).First();
                elem.Remove(baseItem);
                var secondItem = elem.First();


                var list = UtilityProp.GetProperties(baseItem);


                /*escludo le proprieta del oggetto entita base
                 */
                MergeObjects(baseItem, secondItem);
                if (baseItem.Condizione == enCondizioneArticolo.NonSpecificato)
                {
                    baseItem.Condizione = secondItem.Condizione;
                }
                save.UnitOfWork.ArticoliRepository.Update(baseItem);

                var fotoArt2 = save.UnitOfWork.FotoArticoloRepository.Find(a => a.ArticoloID == secondItem.ID).ToList();
                if (fotoArt2.Count() > 0)
                {
                    MessageManager.NotificaInfo("Sposto le eventuali foto da un articolo all'altro");
                    foreach (var item in fotoArt2)
                    {
                        /*sostituisco l'articolo*/
                        item.ArticoloID = baseItem.ID;
                        save.UnitOfWork.FotoArticoloRepository.Update(item);
                    }
                }
                else
                {
                    MessageManager.NotificaInfo("Non ci sono foto");
                }
                var aggList = save.UnitOfWork.AggiornamentoWebArticoloRepository.Find(a => a.ArticoloID == baseItem.ID ||
                                                                                      a.ArticoloID == secondItem.ID).ToList();

                var baseAgg   = aggList.Where(a => a.ArticoloID == baseItem.ID).First();
                var secondAgg = aggList.Where(a => a.ArticoloID != baseItem.ID).First();

                if (string.IsNullOrEmpty(baseAgg.CodiceArticoloEcommerce))
                {
                    /*scambio l'eventuale codice dell'articolo nell'ecommerce*/
                    baseAgg.CodiceArticoloEcommerce   = secondAgg.CodiceArticoloEcommerce;
                    secondAgg.CodiceArticoloEcommerce = "";

                    save.UnitOfWork.AggiornamentoWebArticoloRepository.Update(baseAgg);
                    save.UnitOfWork.AggiornamentoWebArticoloRepository.Update(secondAgg);
                }

                save.SaveEntity(enSaveOperation.Unione);
                MessageManager.NotificaInfo("Le eventuali giacenze vanno spostate manualmente");
            }
        }
Пример #11
0
        public ControllerRigheFatture(ControllerFatturazione controllerFatturazione)
            : base(enAmbiente.FattureRigheList, enAmbiente.FattureRigheDett)
        {
            _controllerFatturazione = controllerFatturazione;
            TipoDocFattura          = _controllerFatturazione.EditItem.TipoDocumento;
            SelectedItem            = new FatturaRiga();

            _removePrio = EventAggregator.Instance().Subscribe <AddPriority <FatturaRiga> >((a) => { CambiaPriorita(true); });;
            _addPrio    = EventAggregator.Instance().Subscribe <RemovePriority <FatturaRiga> >((a) => { CambiaPriorita(false); });;

            EventAggregator.Instance().Subscribe <Save <FatturaRiga> >((a) =>
            {
            });
            _selectSub = EventAggregator.Instance().Subscribe <Add <FatturaRiga> >((a) =>
            {
                EditItem = new FatturaRiga()
                {
                    IvaApplicata = "22", Fattura = _controllerFatturazione.EditItem
                };

                ShowEditView();
            });
            _subRemove = EventAggregator.Instance().Subscribe <Remove <FatturaRiga> >((x) =>
            {
                using (var saveManager = new SaveEntityManager())
                {
                    var uof     = saveManager.UnitOfWork;
                    var curItem = (FatturaRiga)SelectedItem;
                    if (curItem != null && curItem.ID > 0)
                    {
                        if (!MessageManager.QuestionMessage("Sei sicuro di volere eliminare la riga selezionata?"))
                        {
                            return;
                        }

                        if (saveManager.UnitOfWork.FatturaRepository.Find(a => a.ID == curItem.FatturaID).First().ChiusaSpedita)
                        {
                            MessageManager.NotificaWarnig("Documento già chiuso, non è possibile modificare altro!");
                            return;
                        }
                        var item = uof.FattureRigheRepository.Find(b => b.ID == curItem.ID).First();
                        uof.FattureRigheRepository.Delete(item);

                        if (saveManager.SaveEntity(enSaveOperation.OpDelete))
                        {
                            AggiornaTotaliFattura();

                            EventAggregator.Instance().Publish <UpdateList <FatturaRiga> >(new UpdateList <FatturaRiga>(this));
                        }
                    }
                }
            });
            _subSave = EventAggregator.Instance().Subscribe <Save <FatturaRiga> >((a) =>
            {
                Save(null);
            });
        }
Пример #12
0
        public ControllerListinoPrezziNomi(bool gestioneInline)
            : base(enAmbiente.NomeListiniClientiList, enAmbiente.NomeListiniClienti, gestioneInline)
        {
            SelectedItem = new ListinoPrezziVenditaNome();

            _selectSub = EventAggregator.Instance().Subscribe <Add <ListinoPrezziVenditaNome> >((a) =>
            {
                EditItem = new ListinoPrezziVenditaNome();

                ShowEditView();
            });
            _subRemove = EventAggregator.Instance().Subscribe <Remove <ListinoPrezziVenditaNome> >((a) =>
            {
                using (var saveManager = new SaveEntityManager())
                {
                    var uof     = saveManager.UnitOfWork;
                    var curItem = SelectedItem;
                    if (curItem != null && curItem.ID > 0)
                    {
                        if (!MessageManager.QuestionMessage("Sei sicuro di volere eliminare la riga selezionata?"))
                        {
                            return;
                        }

                        var item = uof.ListinoPrezziVenditaNomeRepository.Find(b => b.ID == curItem.ID).First();
                        uof.ListinoPrezziVenditaNomeRepository.Delete(item);

                        if (saveManager.SaveEntity(enSaveOperation.OpDelete))
                        {
                            EventAggregator.Instance().Publish(new UpdateList <ListinoPrezziVenditaNome>(this));
                        }
                    }
                }
            });
            _subSave = EventAggregator.Instance().Subscribe <Save <ListinoPrezziVenditaNome> >((a) =>
            {
                EventAggregator.Instance().Publish(new ValidateViewEvent <ListinoPrezziVenditaNome>());
                Save(null);
            });

            EventAggregator.Instance().Subscribe <UpdateList <ListinoPrezziVenditaNome> >((a) =>
            {
                RefreshList(a);
            });
            EventAggregator.Instance().Subscribe <ItemSelected <ListinoPrezziVenditaNomeItem, ListinoPrezziVenditaNome> >((a) =>
            {
                if (a.ItemSelected != null)
                {
                    SelectedItem = a.ItemSelected.Entity;
                }
                else
                {
                    SelectedItem = null;
                }
            });
        }
Пример #13
0
        public ControllerCategorie()
            : base(enAmbiente.CategorieArticoliList, enAmbiente.CategorieArticoliDett, false)
        {
            SelectedItem = new Categoria();

            _selectSub = EventAggregator.Instance().Subscribe <Add <Categoria> >((a) =>
            {
                EditItem = new Categoria();

                ShowEditView();
            });
            _subRemove = EventAggregator.Instance().Subscribe <Remove <Categoria> >((a) =>
            {
                using (var saveManager = new SaveEntityManager())
                {
                    var uof     = saveManager.UnitOfWork;
                    var curItem = SelectedItem;
                    if (curItem != null && curItem.ID > 0)
                    {
                        if (!MessageManager.QuestionMessage("Sei sicuro di volere eliminare la riga selezionata?"))
                        {
                            return;
                        }

                        var item = uof.CategorieRepository.Find(b => b.ID == curItem.ID).First();
                        uof.CategorieRepository.Delete(item);

                        if (saveManager.SaveEntity(enSaveOperation.OpDelete))
                        {
                            EventAggregator.Instance().Publish(new UpdateList <Categoria>(this));
                        }
                    }
                }
            });
            _subSave = EventAggregator.Instance().Subscribe <Save <Categoria> >((a) =>
            {
                EventAggregator.Instance().Publish(new ValidateViewEvent <Categoria>());
                Save(null);
            });

            EventAggregator.Instance().Subscribe <UpdateList <Categoria> >((a) =>
            {
                RefreshList(a);
            });
            EventAggregator.Instance().Subscribe <ItemSelected <CategoriaItem, Categoria> >((a) =>
            {
                if (a.ItemSelected != null)
                {
                    SelectedItem = a.ItemSelected.Entity;
                }
                else
                {
                    SelectedItem = null;
                }
            });
        }
Пример #14
0
        //public void ImportaCsvArticoli()
        //{
        //    try
        //    {
        //        using (OpenFileDialog res = new OpenFileDialog())
        //        {
        //            res.Title = "Seleziona file da importare";
        //            //Filter
        //            res.Filter = "File csv|*.csv;";

        //            //When the user select the file
        //            if (res.ShowDialog() == DialogResult.OK)
        //            {
        //                //Get the file's path
        //                var fileName = res.FileName;

        //                using (var curs = new CursorManager())
        //                {
        //                    using (StreamReader sr = new StreamReader(fileName, Encoding.Default, true))
        //                    {
        //                        String line;
        //                        bool firstLine = true;
        //                        int progress = 1;
        //                        // Read and display lines from the file until the end of
        //                        // the file is reached.
        //                        using (var uof = new UnitOfWork())
        //                        {
        //                            while ((line = sr.ReadLine()) != null)
        //                            {
        //                                if (!firstLine)
        //                                {
        //                                    progress = ImportLine(line, progress, uof);
        //                                }
        //                                firstLine = false;
        //                            }
        //                            uof.Commit();
        //                        }
        //                    }
        //                }
        //                EventAggregator.Instance().Publish<UpdateList<Articolo>>(new UpdateList<Articolo>(this));
        //                MessageManager.NotificaInfo("Terminata importazione articoli");
        //            }
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        ExceptionManager.ManageError(ex);
        //    }
        //}

        //private int ImportLine(string line, int progress, UnitOfWork uof)
        //{
        //    var dat = line.Split('§');
        //    var cond = enCondizioneArticolo.Nuovo;
        //    if (dat[2] == "N")
        //    {
        //        cond = enCondizioneArticolo.Nuovo;
        //    }
        //    else if (dat[2] == "U")
        //    {
        //        cond = enCondizioneArticolo.UsatoGarantito;
        //    }
        //    else if (dat[2] == "E")
        //    {
        //        cond = enCondizioneArticolo.ExDemo;
        //    }
        //    else
        //    {
        //        throw new Exception("Tipo dato non gestito o mancante nella condizione articolo.");
        //    }
        //    decimal prezzo = 0;
        //    decimal prezzoBarrato = 0;
        //    bool prezzoARichiesta = false;
        //    var strPrezzo = dat[6];
        //    if (strPrezzo == "NC")
        //    {
        //        prezzoARichiesta = true;
        //    }
        //    else if (strPrezzo.Contains(";"))
        //    {
        //        prezzo = decimal.Parse(strPrezzo.Split(';')[0]);

        //    }
        //    else
        //    {
        //        if (strPrezzo.Trim().Length > 0)
        //        {
        //            prezzo = decimal.Parse(strPrezzo);
        //        }
        //    }
        //    var artNew = (new Articolo()
        //    {
        //        CategoriaID = int.Parse(dat[1]),
        //        Condizione = cond,

        //        Titolo = dat[4],
        //        Testo = dat[5].Replace("<br>", Environment.NewLine),
        //        Prezzo = prezzo,


        //    });
        //    artNew.Strumento.Marca = dat[3];
        //    uof.ArticoliRepository.Add(artNew);
        //    var foto = dat[7];
        //    if (foto.Length > 0)
        //    {
        //        int ordine = 0;
        //        foreach (var item in foto.Split(';'))
        //        {
        //            var artFoto = new FotoArticolo()
        //            {
        //                Articolo = artNew,
        //                UrlFoto = item,
        //                Ordine = ordine
        //            };
        //            ordine++;
        //            uof.FotoArticoloRepository.Add(artFoto);
        //        }
        //    }

        //    return progress;
        //}

        private void DeleteArticolo(object obj)
        {
            try
            {
                if (!MessageManager.QuestionMessage("Sei sicuro di voler cancellare l'articolo selezionato?"))
                {
                    return;
                }
                using (var save = new SaveEntityManager())
                {
                    using (var immaginiController = new ControllerImmagini())
                    {
                        var item = save.UnitOfWork.ArticoliRepository.Find(a => a.ID ==
                                                                           this.SelectedItem.ID).FirstOrDefault();
                        _logger.Info(string.Format("Cancellazione articolo /r/n{0} /r/n{1}", item.Titolo, item.ID));

                        if (!immaginiController.CheckFolderImmagini())
                        {
                            return;
                        }

                        var folderFoto = SettingSitoValidator.ReadSetting().CartellaLocaleImmagini;
                        var listFile   = new List <string>();
                        foreach (var itemFoto in save.UnitOfWork.FotoArticoloRepository.Find(a => a.ArticoloID == item.ID))
                        {
                            immaginiController.RimuoviItemDaRepo(
                                folderFoto, listFile, save.UnitOfWork, itemFoto);
                        }
                        immaginiController.DeleteFile(listFile);
                        var mag = save.UnitOfWork.MagazzinoRepository.Find(a => a.ArticoloID == item.ID);
                        foreach (Magazzino itemMg in mag)
                        {
                            save.UnitOfWork.MagazzinoRepository.Delete(itemMg);
                        }
                        foreach (var itemAgg in save.UnitOfWork.AggiornamentoWebArticoloRepository.Find(a => a.ArticoloID == item.ID))
                        {
                            save.UnitOfWork.AggiornamentoWebArticoloRepository.Delete(itemAgg);
                        }

                        save.UnitOfWork.ArticoliRepository.Delete(item);

                        if (save.SaveEntity(enSaveOperation.OpDelete))
                        {
                            EventAggregator.Instance().Publish <UpdateList <Articolo> >(new UpdateList <Articolo>(this));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.ManageError(ex);
            }
        }
Пример #15
0
        public static bool AddImageFiles(ImageArticoloAddFiles args)
        {
            if (!CheckFolderImmagini())
            {
                return(false);
            }
            try
            {
                var folderFoto = SettingSitoValidator.ReadSetting().CartellaLocaleImmagini;
                using (var save = new SaveEntityManager())
                {
                    var uof           = save.UnitOfWork;
                    var maxOrdineItem = uof.FotoArticoloRepository
                                        .Find(a => a.ArticoloID == args.Articolo.ID)
                                        .OrderByDescending(a => a.Ordine).FirstOrDefault();

                    var maxOrdine = 0;
                    if (maxOrdineItem != null)
                    {
                        maxOrdine = maxOrdineItem.Ordine + 1;
                    }

                    foreach (var item in args.Files)
                    {
                        var file = new FileInfo(item);

                        var newName = DateTime.Now.Ticks.ToString() + file.Extension;
                        File.Copy(item, Path.Combine(folderFoto, newName));

                        uof.FotoArticoloRepository.Add(
                            new FotoArticolo()
                        {
                            ArticoloID = args.Articolo.ID,
                            UrlFoto    = newName,
                            Ordine     = maxOrdine
                        });
                        maxOrdine++;
                    }

                    if (save.SaveEntity(string.Format(@"{0} Immagine\i aggiunta\e", args.Files.Count())))
                    {
                        EventAggregator.Instance().Publish <ImageListUpdate>(new ImageListUpdate());
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.ManageError(ex);
            }
            return(false);
        }
Пример #16
0
        private void Save(Save <Pagamento> obj)
        {
            Pagamento nuovoPagamento = null;

            using (var saveManager = new SaveEntityManager())
            {
                var uof = saveManager.UnitOfWork;
                if (((EditItem).ID > 0))
                {
                    uof.PagamentoRepository.Update(EditItem);
                }
                else
                {
                    if (EditItem.ID == 0)
                    {
                        Guid guid        = Guid.NewGuid();
                        var  importoRata = EditItem.ImportoTotale / (decimal)EditItem.NumeroRate;
                        foreach (var item in Enumerable.Range(1, EditItem.NumeroRate))
                        {
                            var pagamento = (Pagamento)EditItem.Clone();

                            {
                                pagamento.IDPagamentoMaster = guid;
                                pagamento.ImportoRata       = importoRata;
                                pagamento.DataRata          = EditItem.DataInizio.AddMonths(item);
                                pagamento.ImportoResiduo    =
                                    EditItem.ImportoTotale - (importoRata * item);
                            };
                            uof.PagamentoRepository.Add(pagamento);

                            if (nuovoPagamento == null)
                            {
                                nuovoPagamento = pagamento;
                            }
                        }
                    }
                }

                if (saveManager.SaveEntity(enSaveOperation.OpSave))
                {
                    RiselezionaSelezionato();
                    if (nuovoPagamento != null)
                    {
                        EventAggregator.Instance().Publish <ForceCloseActiveFormView>(new ForceCloseActiveFormView());
                    }
                }
            }
        }
Пример #17
0
        public ControllerUtenti()
            : base(enAmbiente.UtentiList, enAmbiente.Utente)
        {
            SelectedItem = new Utente();


            _selectSub = EventAggregator.Instance().Subscribe <Add <Utente> >((a) =>
            {
                EditItem = new Utente()
                {
                    NomeUtente = "Nome utente"
                };
                ShowEditView();
            });
            _subRemove = EventAggregator.Instance().Subscribe <Remove <Utente> >((a) =>
            {
                if (!MessageManager.QuestionMessage("Sei sicuro di volere eliminare la riga selezionata?"))
                {
                    return;
                }
                using (var saveManager = new SaveEntityManager())
                {
                    var uof     = saveManager.UnitOfWork;
                    var curItem = (Utente)SelectedItem;
                    if (curItem.ID > 0)
                    {
                        try
                        {
                            var item = uof.UtentiRepository.Find(b => b.ID == curItem.ID).First();
                            uof.UtentiRepository.Delete(item);

                            if (saveManager.SaveEntity(enSaveOperation.OpDelete))
                            {
                                EventAggregator.Instance().Publish <UpdateList <Utente> >(new UpdateList <Utente>(this));
                            }
                        }
                        catch (Exception ex)
                        {
                            ExceptionManager.ManageError(ex);
                        }
                    }
                }
            });
            _subSave = EventAggregator.Instance().Subscribe <Save <Utente> >((a) =>
            {
                Save(null);
            });
        }
Пример #18
0
        private void ApriSettingMittenteFattura()
        {
            using (UnitOfWork unitOfWork = new UnitOfWork())
            {
                var setItem = unitOfWork.DatiMittenteRepository.Find(a => 1 == 1).FirstOrDefault();

                if (setItem == null)
                {
                    setItem    = new DatiMittente();
                    setItem.ID = 1;
                    unitOfWork.DatiMittenteRepository.Add(setItem);
                    unitOfWork.Commit();
                }
                if (setItem.UfficioRegistroImp == null)
                {
                    setItem.UfficioRegistroImp = new DatiMittente.UfficioRegistro();
                }
                if (setItem.Indirizzo == null)
                {
                    setItem.Indirizzo = new Library.Entity.Indirizzo();
                }
                if (setItem.PecConfig == null)
                {
                    setItem.PecConfig = new Library.Entity.PecConfig();
                }

                var view = new GenericSettingView(setItem);
                {
                    view.OnSave += (a, b) =>
                    {
                        using (var cur = new CursorManager())
                        {
                            view.Validate();
                            using (var save = new SaveEntityManager())
                            {
                                save.UnitOfWork.DatiMittenteRepository.Update(setItem);
                                save.SaveEntity(enSaveOperation.OpSave);
                            }
                        }
                    };
                    this.ShowView(view, enAmbiente.SettingFatture);
                }
            }
        }
Пример #19
0
        private void AddImageFiles(ImageAddFiles obj)
        {
            if (obj.GuidKey == this._INSTANCE_KEY)
            {
                if (!SettingDocumentiPagamentiValidator.CheckFolderPdfPagamenti())
                {
                    return;
                }

                var folderPagamenti = SettingDocumentiPagamentiValidator.ReadSetting().CartellaReteDocumentiPagamenti;

                using (var saveManager = new SaveEntityManager())
                {
                    var repo = saveManager.UnitOfWork.PagamentoDocumentiRepository;
                    foreach (var item in obj.Files)
                    {
                        var filePdf = item;

                        var info     = new FileInfo(filePdf);
                        var nomeFile = info.Name;
                        var dir      = Path.Combine(folderPagamenti, this._IDPagamentoMaster.ToString());
                        if (!Directory.Exists(dir))
                        {
                            Directory.CreateDirectory(dir);
                        }
                        File.Copy(filePdf, Path.Combine(dir, nomeFile));

                        repo.Add(new PagamentoDocumenti()
                        {
                            IDPagamentoMaster = this._IDPagamentoMaster,
                            FileName          = nomeFile,
                            Ordine            = 0,
                            PathFile          = Path.Combine(this._IDPagamentoMaster.ToString(), nomeFile),
                        });
                    }

                    saveManager.SaveEntity("Immagini aggiunte correttamente");

                    EventAggregator.Instance().Publish <ImageListUpdate>(new ImageListUpdate());
                }
            }
        }
Пример #20
0
        private void Save(Save <Deposito> obj)
        {
            using (var saveManager = new SaveEntityManager())
            {
                var uof = saveManager.UnitOfWork;
                if (((EditItem).ID > 0))
                {
                    uof.DepositoRepository.Update(EditItem);
                }
                else
                {
                    uof.DepositoRepository.Add(EditItem);
                }

                if (saveManager.SaveEntity(enSaveOperation.OpSave))
                {
                    RiselezionaSelezionato();
                }
            }
        }
Пример #21
0
        private void Save(Save <ListinoPrezziVenditaNome> obj)
        {
            using (var saveManager = new SaveEntityManager())
            {
                var uof = saveManager.UnitOfWork;
                if (EditItem.ID > 0)
                {
                    uof.ListinoPrezziVenditaNomeRepository.Update(EditItem);
                }
                else
                {
                    uof.ListinoPrezziVenditaNomeRepository.Add(EditItem);
                }

                if (saveManager.SaveEntity(enSaveOperation.OpSave))
                {
                    RiselezionaSelezionato();
                }
            }
        }
Пример #22
0
        private void ApriSettingStampaFattura()
        {
            var setItem = DatiIntestazioneStampaFatturaValidator.ReadSetting();

            var view = new GenericSettingView(setItem);
            {
                view.OnSave += (a, b) =>
                {
                    using (var cur = new CursorManager())
                    {
                        view.Validate();
                        using (var uof = new SaveEntityManager())
                        {
                            uof.UnitOfWork.DatiIntestazioneStampaFatturaRepository.Update(setItem);
                            uof.SaveEntity(enSaveOperation.OpSave);
                        }
                    }
                };
                this.ShowView(view, enAmbiente.SettingStampa);
            }
        }
Пример #23
0
        private void ApriSettingSito()
        {
            var settingSito = SettingSitoValidator.ReadSetting();

            var view = new GenericSettingView(settingSito);
            {
                view.OnSave += (a, b) =>
                {
                    using (var cur = new CursorManager())
                    {
                        view.Validate();
                        using (var save = new SaveEntityManager())
                        {
                            save.UnitOfWork.SettingSitoRepository.Update(settingSito);
                            save.SaveEntity(enSaveOperation.OpSave);
                        }
                    }
                };
                this.ShowView(view, enAmbiente.SettingSito);
            }
        }
Пример #24
0
        public ControllerDepositi()
            : base(enAmbiente.DepositoList, enAmbiente.Deposito)
        {
            SelectedItem = new Deposito();

            _selectSub = EventAggregator.Instance().Subscribe <Add <Deposito> >((a) =>
            {
                EditItem = new Deposito()
                {
                    NomeDeposito = "Nuovo Deposito"
                };
                ShowEditView();
            });
            _subRemove = EventAggregator.Instance().Subscribe <Remove <Deposito> >((a) =>
            {
                if (!MessageManager.QuestionMessage("Sei sicuro di volere eliminare il deposito selezionato?"))
                {
                    return;
                }
                using (var saveManager = new SaveEntityManager())
                {
                    var uof     = saveManager.UnitOfWork;
                    var curItem = SelectedItem;
                    if (curItem.ID > 0)
                    {
                        var item = uof.DepositoRepository.Find(b => b.ID == curItem.ID).First();
                        uof.DepositoRepository.Delete(item);

                        if (saveManager.SaveEntity(enSaveOperation.OpDelete))
                        {
                            EventAggregator.Instance().Publish <UpdateList <Deposito> >(new UpdateList <Deposito>(this));
                        }
                    }
                }
            });
            _subSave = EventAggregator.Instance().Subscribe <Save <Deposito> >((a) =>
            {
                Save(null);
            });
        }
Пример #25
0
        private void DuplicaArticolo(ArticoloDuplicate obj)
        {
            try
            {
                using (var saveEntity = new SaveEntityManager())
                {
                    var uof         = saveEntity.UnitOfWork;
                    var itemCurrent = (SelectedItem);
                    var art         =
                        (new Articolo()
                    {
                        CategoriaID = itemCurrent.Categoria.ID,
                        Condizione = itemCurrent.Condizione,

                        Prezzo = itemCurrent.Prezzo,


                        DataUltimaModifica = DateTime.Now,
                        DataCreazione = DateTime.Now
                    });
                    art.ArticoloWeb.Testo = itemCurrent.ArticoloWeb.Testo;
                    art.Titolo            = "* " + itemCurrent.Titolo;
                    art.Strumento         = itemCurrent.Strumento;
                    art.Libro             = itemCurrent.Libro;

                    uof.ArticoliRepository.Add(art);
                    if (saveEntity.SaveEntity(enSaveOperation.Duplicazione))
                    {
                        _logger.Info("Duplica articolo");

                        SelectedItem = art;
                        EventAggregator.Instance().Publish <UpdateList <Articolo> >(new UpdateList <Articolo>(this));
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.ManageError(ex);
            }
        }
Пример #26
0
        private void GeneraMovimentiDaOrdineDiCarico()
        {
            var fatt = SelectedItem;



            //controllo se ci sono già altri ordini di carico
            //per le righe di questo ordine

            if (fatt.ChiusaSpedita)
            {
                MessageManager.NotificaWarnig("Documento già chiuso, non è possibile generare altre giacenze!");
                return;
            }
            if (fatt.TipoDocumento != EnTipoDocumento.OrdineDiCarico)
            {
                MessageManager.NotificaWarnig("Documento deve essere del tipo ordine di carico!");
                return;
            }
            if (!MessageManager.QuestionMessage("Generando i movimenti, il documento non sarà più modificabile. Vuoi proseguire?"))
            {
                return;
            }
            using (var saveEnt = new SaveEntityManager())
            {
                var depositi = saveEnt.UnitOfWork.DepositoRepository.Find(a => a.ID == a.ID).Select(a => new { a.ID, a.NomeDeposito }).ToList();


                using (var selezionaDeposito = new ListViewCustom(depositi.Select(a => a.NomeDeposito).ToList(), "Imposta deposito e nome ddt fornitore", "Numero Ddt Fornitore", false))
                {
                    var diag = selezionaDeposito.ShowDialog();
                    if (diag != DialogResult.OK)
                    {
                        return;
                    }
                    if (selezionaDeposito.SelectedItem == null)
                    {
                        MessageManager.NotificaWarnig("Occorre impostare deposito su cui versare la merce!");
                        return;
                    }
                    if (selezionaDeposito.SelectedTextProp.Length == 0)
                    {
                        if (!MessageManager.QuestionMessage("Sei sicuro di non volere impostare il codice ddt o un riferimento al ddt fornitore. Vuoi proseguire?"))
                        {
                            return;
                        }
                    }
                    var deposito = depositi.Where(a => a.NomeDeposito == selezionaDeposito.SelectedItem).FirstOrDefault();

                    var list = saveEnt.UnitOfWork.FattureRigheRepository.Find(a => a.FatturaID == fatt.ID && a.Ricevuti > 0).ToList();

                    if (list.Count() == 0)
                    {
                        MessageManager.NotificaWarnig("Non c'è niente tra le qta ricevute nelle righe del documento!");
                        return;
                    }
                    ControllerMagazzino controllerMagazzino = new ControllerMagazzino();

                    foreach (var item in list)
                    {
                        if (!controllerMagazzino.NuovoMovimento(new Library.Core.Events.Magazzino.MovimentoMagazzino()
                        {
                            ArticoloID = item.ArticoloID.Value,
                            Deposito = deposito.ID,
                            Causale = selezionaDeposito.SelectedTextProp,
                            Qta = item.Ricevuti,
                            Prezzo = item.PrezzoUnitario
                        }, saveEnt.UnitOfWork))
                        {
                            MessageManager.NotificaWarnig("Sei sicuro un errore nell'inserimento del movimento");
                            return;
                        }
                        /*salvo i dati di evasione nella riga parent dell'ordine di acquisto*/
                        var evasi = saveEnt.UnitOfWork.FattureRigheRepository.Find(a => a.IdRigaCollegata != null &&
                                                                                   a.IdRigaCollegata == item.IdRigaCollegata)
                                    .Select(a => new { a.IdRigaCollegata, a.Qta })
                                    .GroupBy(a => a.IdRigaCollegata).Select(a => new { TOT = a.Sum(b => b.Qta), IdRigaParent = a.Key.Value }).FirstOrDefault();

                        var rigaParent = saveEnt.UnitOfWork.FattureRigheRepository.Find(a => a.ID == evasi.IdRigaParent).FirstOrDefault();

                        if (rigaParent.Evasi != evasi.TOT)
                        {
                            rigaParent.Evasi = evasi.TOT;
                            saveEnt.UnitOfWork.FattureRigheRepository.Update(rigaParent);
                        }
                    }
                    var dato = saveEnt.UnitOfWork.FatturaRepository.Find(a => a.ID == fatt.ID).FirstOrDefault();
                    dato.ChiusaSpedita = true;

                    saveEnt.UnitOfWork.FatturaRepository.Update(dato);



                    saveEnt.SaveEntity("Creati movimenti ingresso a magazzino e chiuso documento");
                }
            }
        }
Пример #27
0
        private void CambiaPriorita(bool aumenta)
        {
            if (_controllerFatturazione.EditItem.ID == 0)
            {
                return;
            }

            var itemSel = ((FatturaRiga)SelectedItem);

            if (itemSel.ID == 0)
            {
                return;
            }
            else
            {
                try
                {
                    using (var curs = new CursorManager())
                    {
                        using (var save = new SaveEntityManager())
                        {
                            var uof  = save.UnitOfWork;
                            var list = uof.FattureRigheRepository.Find(
                                a => a.FatturaID == itemSel.FatturaID).OrderBy(a => a.OrdineVisualizzazione).ToList();
                            foreach (var item in list)
                            {
                                if (item.ID == itemSel.ID)
                                {
                                    if (aumenta)
                                    {
                                        var itemToUpdate = list.Where(a => a.OrdineVisualizzazione == item.OrdineVisualizzazione - 1).FirstOrDefault();
                                        if (itemToUpdate != null)
                                        {
                                            itemToUpdate.OrdineVisualizzazione++;
                                        }
                                        item.OrdineVisualizzazione--;
                                    }
                                    else
                                    {
                                        var itemToUpdateTwo = list.Where(a => a.OrdineVisualizzazione == item.OrdineVisualizzazione + 1).FirstOrDefault();
                                        if (itemToUpdateTwo != null)
                                        {
                                            itemToUpdateTwo.OrdineVisualizzazione--;
                                        }
                                        item.OrdineVisualizzazione++;
                                    }
                                }
                            }
                            var setOrdine = 0;
                            foreach (var item in list.OrderBy(a => a.OrdineVisualizzazione))
                            {
                                item.OrdineVisualizzazione = setOrdine;
                                setOrdine++;
                                uof.FattureRigheRepository.Update(item);
                            }

                            if (save.SaveEntity(enSaveOperation.OpSave))
                            {
                                RiselezionaSelezionato();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ExceptionManager.ManageError(ex);
                }
            }
        }
Пример #28
0
        private void GeneraOrdineCarico()
        {
            var fatt = SelectedItem;



            //controllo se ci sono già altri ordini di carico
            //per le righe di questo ordine

            if (fatt.ChiusaSpedita)
            {
                MessageManager.NotificaWarnig("Documento già chiuso, non è possibile fare altri documenti di carico!");
                return;
            }
            if (fatt.TipoDocumento != EnTipoDocumento.OrdineAlFornitore)
            {
                MessageManager.NotificaWarnig("Documento deve essere del tipo ordine al fornitore!");
                return;
            }


            using (var saveEnt = new SaveEntityManager())
            {
                bool save = false;

                var listFatt = new List <Library.Entity.Fattura>();

                var daGenerare = new List <Tuple <FatturaRiga, int> >();
                foreach (var item in saveEnt.UnitOfWork.FattureRigheRepository.Find(a => a.FatturaID == fatt.ID).ToList())
                {
                    /*deve cercare gli ordini di carico già fatti, e collegati, e detrarre la qta per vedere se farne di nuovi*/
                    var evaso = saveEnt.UnitOfWork.FattureRigheRepository.Find(a => a.IdRigaCollegata == item.ID).Select(a => new
                                                                                                                         { Qta = a.Fattura.ChiusaSpedita == true ? a.Ricevuti : a.Qta }).Select(a => a.Qta).DefaultIfEmpty(0).Sum();

                    if (evaso == item.Qta)
                    {
                        continue;
                    }
                    daGenerare.Add(new Tuple <FatturaRiga, int>(item, item.Qta - evaso));
                }

                if (daGenerare.Count() == 0)
                {
                    MessageManager.NotificaInfo("Non ci altre righe da fare ingressare, chiudi ordine fornitore !");
                    return;
                }


                Library.Entity.Fattura fattExt = null;

                foreach (var item in daGenerare)
                {
                    if (fattExt == null)
                    {
                        fattExt = new Library.Entity.Fattura();
                        fattExt.ClienteFornitoreID = fatt.ClienteFornitoreID;
                        fattExt.TipoDocumento      = Library.Entity.EnTipoDocumento.OrdineDiCarico;
                        fattExt.Data   = DateTime.Now;
                        fattExt.Codice = ControllerFatturazione.CalcolaCodice(fattExt);

                        var fornitore = saveEnt.UnitOfWork.SoggettiRepository.Find(a => a.ID == fattExt.ClienteFornitoreID).ToList().Select(a => new
                        {
                            RagioneSociale = !string.IsNullOrEmpty(a.RagioneSociale) ? a.RagioneSociale : a.Cognome + " " + a.Nome,
                            PIVA           = !string.IsNullOrEmpty(a.PIVA) ? a.PIVA : a.CodiceFiscale
                        }).FirstOrDefault();
                        fattExt.RagioneSociale = fornitore.RagioneSociale;
                        fattExt.PIVA           = fornitore.PIVA;

                        saveEnt.UnitOfWork.FatturaRepository.Add(fattExt);

                        //saveEnt.SaveEntity("");

                        listFatt.Add(fattExt);
                    }

                    var rigaMaster = item.Item1;
                    var riga       = (new Library.Entity.FatturaRiga()
                    {
                        CodiceFornitore = rigaMaster.CodiceFornitore,
                        ArticoloID = rigaMaster.ArticoloID,
                        Descrizione = rigaMaster.Descrizione,
                        Qta = item.Item2,
                        Fattura = fattExt,
                        PrezzoUnitario = rigaMaster.PrezzoUnitario,
                        IvaApplicata = rigaMaster.IvaApplicata,
                        IdRigaCollegata = rigaMaster.ID
                    });
                    saveEnt.UnitOfWork.FattureRigheRepository.Add(riga);
                    save = true;
                }

                if (save)
                {
                    saveEnt.SaveEntity("");
                }
                else
                {
                    MessageManager.NotificaInfo("Non ci sono articoli da ordinare!");
                    return;
                }

                foreach (var item in listFatt.Distinct())
                {
                    ControllerFatturazione.CalcolaTotali(item);
                    saveEnt.UnitOfWork.FatturaRepository.Update(item);
                }
                if (save)
                {
                    saveEnt.SaveEntity("Generato ordine di carico!");
                }

                RefreshList(null);
            }
        }
Пример #29
0
        /// <summary>
        /// genera l'ordine scarico dalla vendita a banco e scarica le giacenze
        /// </summary>
        /// <param name="items"></param>
        /// <param name="cliente"></param>
        /// <param name="saveEnt"></param>
        /// <returns></returns>
        internal static bool GeneraOrdScarico(List <ScontrinoLine> items, int cliente, SaveEntityManager saveEnt)
        {
            bool save = false;

            var listFatt = new List <Library.Entity.Fattura>();

            var fattExt = new Library.Entity.Fattura();

            fattExt.ClienteFornitoreID = cliente;
            fattExt.TipoDocumento      = Library.Entity.EnTipoDocumento.OrdineDiScarico;
            fattExt.Data   = DateTime.Now;
            fattExt.Codice = ControllerFatturazione.CalcolaCodice(fattExt);

            var fornitore = saveEnt.UnitOfWork.SoggettiRepository.Find(a => a.ID == fattExt.ClienteFornitoreID).Select(a => new { a.RagioneSociale, a.CodiceFiscale, a.PIVA }).FirstOrDefault();

            fattExt.RagioneSociale = fornitore.RagioneSociale;
            fattExt.PIVA           = fornitore.PIVA;

            saveEnt.UnitOfWork.FatturaRepository.Add(fattExt);

            saveEnt.SaveEntity("");

            listFatt.Add(fattExt);

            var negozio = saveEnt.UnitOfWork.DepositoRepository.Find(a => a.Principale == true).First();

            using (var depo = new Core.Controllers.ControllerMagazzino())
            {
                foreach (var item in items
                         .Select(a => new { Qta = a.Qta, a.Articolo, a.Descrizione, a.IvaPerc, a.PrezzoIvato })
                         .ToList())
                {
                    var riga = (new Library.Entity.FatturaRiga()
                    {
                        ArticoloID = item.Articolo,
                        Descrizione = item.Descrizione,
                        Qta = (int)item.Qta,
                        Fattura = fattExt,
                        PrezzoUnitario = Math.Round(item.PrezzoIvato / (1 + ((decimal)item.IvaPerc / (decimal)100)), 5, MidpointRounding.ToEven),
                        IvaApplicata = item.IvaPerc.ToString(),
                    });
                    saveEnt.UnitOfWork.FattureRigheRepository.Add(riga);
                    if (item.Articolo > 0)
                    {
                        ScaricaQtaMagazzino scarica = new ScaricaQtaMagazzino();

                        scarica.Qta        = item.Qta;
                        scarica.Prezzo     = item.PrezzoIvato;
                        scarica.Deposito   = negozio.ID;
                        scarica.ArticoloID = item.Articolo;
                        scarica.Causale    = "Ordine scarico " + fattExt.Codice;

                        EventAggregator.Instance().Publish <ScaricaQtaMagazzino>(scarica);
                    }
                    save = true;
                }
            }
            if (save)
            {
                saveEnt.SaveEntity("");
            }
            else
            {
                MessageManager.NotificaInfo("Non ci sono articoli da ordinare!");
                return(false);
            }

            foreach (var item in listFatt.Distinct())
            {
                ControllerFatturazione.CalcolaTotali(item);
                saveEnt.UnitOfWork.FatturaRepository.Update(item);
            }
            if (save)
            {
                saveEnt.SaveEntity("Generato l'ordine di scarico!");
            }

            return(true);
        }
Пример #30
0
        public static bool GeneraOrdAcq(List <ListinoPrezziFornitoriItem> items)
        {
            using (var saveEnt = new SaveEntityManager())
            {
                bool save = false;

                var listFatt = new List <Library.Entity.Fattura>();

                foreach (var item in items.Where(a => a.QtaDaOrdinare - a.QtaInOrdine > 0)
                         .Select(a => new { Qta = a.QtaDaOrdinare - a.QtaInOrdine, a.CodiceArticoloFornitore, a.ID, a.Entity, a.Prezzo }).OrderBy(a => a.Entity.FornitoreID).ToList())
                {
                    Library.Entity.Fattura fattExt = saveEnt.UnitOfWork.FatturaRepository.Find(a => a.ChiusaSpedita == false && a.ClienteFornitoreID == item.Entity.FornitoreID &&
                                                                                               a.TipoDocumento == Library.Entity.EnTipoDocumento.OrdineAlFornitore).FirstOrDefault();
                    var riga = new Library.Entity.FatturaRiga();

                    Library.Entity.Articoli.Articolo art = saveEnt.UnitOfWork.ArticoliRepository.Find(a => a.ID == item.Entity.ArticoloID).FirstOrDefault();



                    if (fattExt == null)
                    {
                        fattExt = listFatt.Where(a => a.ClienteFornitoreID == item.Entity.FornitoreID).FirstOrDefault();
                    }

                    if (fattExt == null)
                    {
                        fattExt = new Library.Entity.Fattura();
                        fattExt.ClienteFornitoreID = item.Entity.FornitoreID;
                        fattExt.TipoDocumento      = Library.Entity.EnTipoDocumento.OrdineAlFornitore;
                        fattExt.Data   = DateTime.Now;
                        fattExt.Codice = ControllerFatturazione.CalcolaCodice(fattExt);

                        var fornitore = saveEnt.UnitOfWork.SoggettiRepository.Find(a => a.ID == fattExt.ClienteFornitoreID).Select(a => new { a.RagioneSociale, a.CodiceFiscale, a.PIVA }).FirstOrDefault();
                        fattExt.RagioneSociale = fornitore.RagioneSociale;
                        fattExt.PIVA           = fornitore.PIVA;

                        saveEnt.UnitOfWork.FatturaRepository.Add(fattExt);

                        saveEnt.SaveEntity("");
                    }
                    listFatt.Add(fattExt);

                    riga = (new Library.Entity.FatturaRiga()
                    {
                        CodiceFornitore = item.CodiceArticoloFornitore,
                        ArticoloID = item.Entity.ArticoloID,
                        Descrizione = art.Titolo,
                        Qta = item.Qta,
                        Fattura = fattExt,
                        PrezzoUnitario = item.Prezzo,
                        IvaApplicata = art.Iva.ToString(),
                    });
                    saveEnt.UnitOfWork.FattureRigheRepository.Add(riga);
                    save = true;
                }


                if (save)
                {
                    saveEnt.SaveEntity("");
                }
                else
                {
                    MessageManager.NotificaInfo("Non ci sono articoli da ordinare!");
                    return(false);
                }

                foreach (var item in listFatt.Distinct())
                {
                    ControllerFatturazione.CalcolaTotali(item);
                    saveEnt.UnitOfWork.FatturaRepository.Update(item);
                }
                if (save)
                {
                    saveEnt.SaveEntity("Generati gli ordini di acquisto!");
                }

                return(true);
            }
        }