private void ScaricaMagazzino(ScaricaQtaMagazzino obj) { try { using (var uof = new UnitOfWork()) { NuovoMovimento(new MovimentoMagazzino() { ArticoloID = obj.ArticoloID, Deposito = obj.Deposito, Qta = -obj.Qta, Prezzo = obj.Prezzo, Causale = obj.Causale }, uof); uof.Commit(); MessageManager.NotificaInfo("Aggiunto movimento scarico magazzino"); EventAggregator.Instance().Publish <MovimentiUpdate>(new MovimentiUpdate()); } } catch (Exception ex) { ExceptionManager.ManageError(ex); } }
/// <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); }
/// <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); } } }
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}); //}; }