Esempio n. 1
0
        /// <summary>
        ///
        ///Il file deve contenere le righe di vendita cosi strutturate  :



        ///       Descrizione : per il tipo di riga V deve sempre esserci , per il resto è opzionale
        ///       Aliquota Iva : per il tipo di riga V deve sempre esserci , per il resto è opzionale
        ///       Quantità : per il tipo di riga V deve sempre esserci , per il resto è opzionale
        ///       Totale : è sempre obbligatoria
        ///       Tipo Riga(V, T) : è sempre obbligatoria
        ///       Extra : è sempre opzionale


        ///       -V sta per Vendita
        ///       -T sta per Totale
        ///       -S sconto e importo
        ///       Vino Lambrusco; 22 ;1;0,75;2,50;V;



        ///       Es riga Totale :



        ///       Totale; ; ; ; 2,50;T;1 Riga con pagamento in contanti

        ///       Totale; ; ; ; 2,50;T;45 Riga con pagamento bancomat

        ///       Totale; ; ; ; 2,50;T;5 Riga con pagamento non riscosso
        ///
        /// </summary>
        private bool ScriviFileScontrino(List <ScontrinoLine> listRighe, bool scaricaGiacenze, SaveEntityManager saveEntity)
        {
            var uof = saveEntity.UnitOfWork;
            {
                var list = uof.TipiPagamentoScontrinoRepository.Find(a => a.Enable == true).ToList().Select(a => a.Codice.ToString() + " " + a.Descrizione).ToList();
                using (var tipiPagamento = new ListViewCustom(list, "Tipo pagamento", "Codice lotteria"))
                {
                    var diag = tipiPagamento.ShowDialog();
                    if (diag != DialogResult.OK)
                    {
                        return(false);
                    }
                    var pagamento      = tipiPagamento.SelectedItem;
                    var codiceLotteria = tipiPagamento.SelectedTextProp;

                    if (string.IsNullOrEmpty(pagamento))
                    {
                        MessageManager.NotificaWarnig("Occorre selezionare il tipo di pagamento");

                        return(false);
                    }
                    var tot = listRighe.Where(a => a.TipoRigaScontrino == TipoRigaScontrino.Totale).First();

                    tot.Pagamento         = pagamento.Split(" ".ToCharArray()).First();
                    tot.TotaleComplessivo = tot.TotaleRiga;

                    var incassato = Datasource.Where(a => a.TipoRigaScontrino == TipoRigaScontrino.Incassato).First();

                    tot.TotaleComplessivo = incassato.PrezzoIvato;
                    if (codiceLotteria.Trim().Length > 0)
                    {
                        tot.CodiceLotteria = codiceLotteria;
                    }
                    var content = listRighe.Select(a => a.ToString()).ToList().ToArray();


                    var validator = SettingScontrinoValidator.ReadSetting();
                    if (scaricaGiacenze)
                    {
                        var negozio = uof.DepositoRepository.Find(a => a.Principale == true).First();
                        using (var depo = new Core.Controllers.ControllerMagazzino())
                        {
                            foreach (var item in Datasource.Where(a => a.TipoRigaScontrino == TipoRigaScontrino.Vendita & a.Articolo >= 0))
                            {
                                ScaricaQtaMagazzino scarica = new ScaricaQtaMagazzino();

                                scarica.Qta        = 1;
                                scarica.Prezzo     = item.PrezzoIvato - item.PrezzoIvato * (item.ScontoPerc) / 100;
                                scarica.Deposito   = negozio.ID;
                                scarica.ArticoloID = item.Articolo;
                                EventAggregator.Instance().Publish <ScaricaQtaMagazzino>(scarica);
                            }
                        }
                    }
                    System.IO.File.WriteAllLines(
                        System.IO.Path.Combine(validator.FolderDestinazione, DateTime.Now.Ticks.ToString() + ".txt"), content);


                    MessageManager.NotificaInfo("Scontrino pubblicato al servizio correttamente!");

                    return(true);
                }
            }
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        private void AggiungiComandiMenu()
        {
            var tabFirst = GetMenu().Tabs[0];
            var pnl      = tabFirst.Pannelli.First();


            if (ModalitaController == enModalitaArticolo.Ricerca ||
                ModalitaController == enModalitaArticolo.SelezioneSingola)
            {
                pnl.Pulsanti.RemoveAll(a => a.Tag == MenuTab.TagAdd ||
                                       a.Tag == MenuTab.TagRemove || a.Tag == MenuTab.TagCerca ||
                                       a.Tag == MenuTab.TagCercaClear);


                tabFirst.Pannelli.RemoveAt(2);
                tabFirst.Pannelli.RemoveAt(1);
            }
            if (ModalitaController == enModalitaArticolo.SelezioneSingola)
            {
                pnl.Pulsanti.RemoveAll(a => a.Tag == MenuTab.TagEdit);
            }
            if (ModalitaController != enModalitaArticolo.Ricerca &&
                ModalitaController != enModalitaArticolo.SelezioneSingola)
            {
                var rib1 = pnl.Add("Duplica", StrumentiMusicali.Core.Properties.ImageIcons.Duplicate, true);
                rib1.Click += (a, e) =>
                {
                    EventAggregator.Instance().Publish <ArticoloDuplicate>(new ArticoloDuplicate(this));
                };
                var pnl2 = GetMenu().Tabs[0].Add("Prezzi");
                var rib2 = pnl2.Add("Varia prezzi", StrumentiMusicali.Core.Properties.ImageIcons.Sconta_Articoli);
                rib2.Click += (a, e) =>
                {
                    ScontaArticoliShowView();
                };
                var rib3 = pnl.Add("Unisci", StrumentiMusicali.Core.Properties.ImageIcons.Merge_64, true);
                rib3.Click += (a, e) =>
                {
                    EventAggregator.Instance().Publish <ArticoloMerge>(new ArticoloMerge(this));
                };
            }
            if (ModalitaController == enModalitaArticolo.Ricerca ||
                ModalitaController == enModalitaArticolo.SoloLibri ||
                ModalitaController == enModalitaArticolo.SoloStrumenti ||
                ModalitaController == enModalitaArticolo.Tutto)
            {
                var pnlS = GetMenu().Tabs[0].Add("Scontrino");
                pnlS.Add("Aggiungi a scontrino", StrumentiMusicali.Core.Properties.ImageIcons.Add, true).Click += (a, e) =>
                {
                    EventAggregator.Instance().Publish <ScontrinoAddEvents>(new ScontrinoAddEvents()
                    {
                        Articolo = this.SelectedItem
                    });
                };
                if (SettingScontrinoValidator.ReadSetting().ArticoloGenerico)
                {
                    pnlS.Add("Aggiungi generico", StrumentiMusicali.Core.Properties.ImageIcons.Add, true).Click += (a, e) =>
                    {
                        EventAggregator.Instance().Publish <ScontrinoAddEvents>(new ScontrinoAddEvents()
                        {
                        });
                    }
                }
                ;
                //pnlS.Add("Aggiungi sconto", StrumentiMusicali.Core.Properties.ImageIcons.Sconto_64, true).Click += (a, e) =>
                //{
                //    EventAggregator.Instance().Publish<ScontrinoAddScontoEvents>(new ScontrinoAddScontoEvents()
                //    {

                //    });
                //};
                pnlS.Add("Rimuovi riga", StrumentiMusicali.Core.Properties.ImageIcons.CancellaRiga_scontrino, true).Click += (a, e) =>
                {
                    EventAggregator.Instance().Publish <ScontrinoRemoveLineEvents>(new ScontrinoRemoveLineEvents()
                    {
                    });
                };
                pnlS.Add("Stampa", StrumentiMusicali.Core.Properties.ImageIcons.PrintScontrino_48, true).Click += (a, e) =>
                {
                    EventAggregator.Instance().Publish <ScontrinoStampa>(new ScontrinoStampa());
                };
                //pnlS.Add("Elimina tutto", StrumentiMusicali.Core.Properties.ImageIcons.Cancella_scontrino_64, true).Click += (a, e) =>
                //{
                //    EventAggregator.Instance().Publish<ScontrinoClear>(new ScontrinoClear());
                //};
            }
            if (LoginData.utenteLogin.Magazzino && ModalitaController != enModalitaArticolo.SelezioneSingola)
            {
                var pnl3 = GetMenu().Tabs[0].Add("Magazzino");

                if (ModalitaController != enModalitaArticolo.Ricerca)
                {
                    var rib3 = pnl3.Add("Qta Magazzino", StrumentiMusicali.Core.Properties.ImageIcons.UnloadWareHouse, true);
                    rib3.Click += (a, e) =>
                    {
                        using (var depo = new Core.Controllers.ControllerMagazzino(SelectedItem))
                        {
                            using (var view = new View.ScaricoMagazzinoView(depo))
                            {
                                ShowView(view, enAmbiente.Magazzino, depo, true, true);

                                RiselezionaSelezionato();
                            }
                        }
                    };
                }
                var rib4 = pnl3.Add("1 pezzo venduto", StrumentiMusicali.Core.Properties.ImageIcons.Remove, true);
                rib4.Click += (a, e) =>
                {
                    using (var depo = new Core.Controllers.ControllerMagazzino(SelectedItem))
                    {
                        ScaricaQtaMagazzino scarica = new ScaricaQtaMagazzino();

                        scarica.Qta = 1;

                        using (var uof = new UnitOfWork())
                        {
                            var principale = uof.DepositoRepository.Find(b => b.Principale).FirstOrDefault();
                            if (principale == null)
                            {
                                MessageManager.NotificaWarnig("Occorre impostare un deposito principale, vai in depositi e imposta il deposito principale.");
                                return;
                            }
                            scarica.Deposito   = principale.ID;
                            scarica.ArticoloID = SelectedItem.ID;
                            EventAggregator.Instance().Publish <ScaricaQtaMagazzino>(scarica);
                            RiselezionaSelezionato();
                        }
                    }
                };
                var rib5 = pnl3.Add("1 pezzo aggiunto", StrumentiMusicali.Core.Properties.ImageIcons.Add, true);
                rib5.Click += (a, e) =>
                {
                    using (var depo = new Core.Controllers.ControllerMagazzino(SelectedItem))
                    {
                        CaricaQtaMagazzino carica = new CaricaQtaMagazzino();

                        carica.Qta = 1;

                        using (var uof = new UnitOfWork())
                        {
                            var principale = uof.DepositoRepository.Find(b => b.Principale).FirstOrDefault();
                            if (principale == null)
                            {
                                MessageManager.NotificaWarnig("Occorre impostare un deposito principale, vai in depositi e imposta il deposito principale.");
                                return;
                            }
                            carica.Deposito   = principale.ID;
                            carica.ArticoloID = SelectedItem.ID;
                            EventAggregator.Instance().Publish <CaricaQtaMagazzino>(carica);
                            RiselezionaSelezionato();
                        }
                    }
                };
            }


            if (ModalitaController == enModalitaArticolo.SelezioneSingola)
            {
                var pnl2 = GetMenu().Tabs[0].Add("Conferma");
                var rib2 = pnl2.Add("Conferma", StrumentiMusicali.Core.Properties.ImageIcons.Check_OK_48);
                rib2.Click += (a, e) =>
                {
                    if (SelectedItem != null && SelectedItem.ID > 0)
                    {
                        ArticoloSelezionatoSingolo = SelectedItem;
                        RaiseClose();
                    }
                    else
                    {
                        MessageManager.NotificaInfo("Selezionare un articolo");
                    }
                };
            }
            //	EventAggregator.Instance().Publish(new ApriAmbiente(enAmbiente.ScaricoMagazzino));
            //	EventAggregator.Instance().Publish(new MagazzinoSelezionaArticolo() { Articolo=SelectedItem});

            //};
        }