private void ExecutarProcesso_OnLoaded(object sender, RoutedEventArgs e)
        {
            var bootstrap = ContainerIoc.GetInstance <Bootstrap>();

            bootstrap.ProdutoImportadoHandler    += ProdutoImportadoHandler;
            bootstrap.ImportacaoConcluidaHandler += (ex) =>
            {
                if (Dispatcher.CheckAccess())
                {
                    InstanceManager.ListaDeProdutosDoPdv = ContainerIoc.GetInstance <Produto>().RecuperarListaDeProdutosDoPdv();
                    AlertarErro(ex);
                    DialogResult = true;
                }
                else
                {
                    Dispatcher.Invoke(() =>
                    {
                        InstanceManager.ListaDeProdutosDoPdv = ContainerIoc.GetInstance <Produto>().RecuperarListaDeProdutosDoPdv();
                        AlertarErro(ex);
                        DialogResult = true;
                    });
                }
            };
            Task.Factory.StartNew(() =>
            {
                bootstrap.ImportarProdutos();
            });
        }
예제 #2
0
 private void BtnInicializarVenda_OnClick(object sender, RoutedEventArgs e)
 {
     try
     {
         _mvvm.VendaCorrente = ContainerIoc.GetInstance <Core.Dominio.Venda.Venda>();
         (new Alertas.DadosConsumidor(_mvvm)).ShowDialog();
         this.StartWait();
         _mvvm.PodeInicializarVenda    = false;
         BtnAbrirFecharCaixa.IsEnabled = false;
         BtnCancelarVenda.Visibility   = Visibility.Visible;
         BtnIncluirCpf.Visibility      = Visibility.Visible;
         TxtNrComanda.Visibility       = Visibility.Visible;
         LblNrComanda.Visibility       = Visibility.Visible;
         PainelProdutosDaVenda.Width   = new GridLength(480);
         StpTotal.Visibility           = Visibility.Visible;
         _mvvm.NotifyPropertyChanged("ValorTotalDaVenda");
         TxtProduto.Text = "";
         SendKey(Key.Space);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.OK, MessageBoxImage.Error);
     }
     finally
     {
         this.StopWait();
         TxtProduto.Focus();
     }
 }
예제 #3
0
 public Producao()
 {
     InitializeComponent();
     this.Title          = InstanceManager.Parametros.TituloNoConfig;
     mvvm                = ContainerIoc.GetInstance <ProducaoMvvm>();
     mvvm.DataDeProducao = DateTime.Now;
     DataContext         = mvvm;
 }
예제 #4
0
 public ConsultarVendas()
 {
     InitializeComponent();
     _mvvm = ContainerIoc.GetInstance <ConsultarVendasMvvm>();
     _mvvm.ProcessoFinalizadoHandler += ProcessoFinalizado;
     _mvvm.ProcessoInciadoHandler    += FiltroFinalizado;
     _mvvm.AlertHandler += AlertHandler;
     DataContext         = _mvvm;
 }
예제 #5
0
 private void ImprimirComanda()
 {
     if (MessageBox.Show("Deseja imprimir Comanda?",
                         InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.YesNo,
                         MessageBoxImage.Question, MessageBoxResult.Yes) == MessageBoxResult.Yes)
     {
         ContainerIoc.GetInstance <Cupom>().ImprimirComanda(_mvvm.VendaCorrente.VendaCorrente);
     }
 }
예제 #6
0
 public Pedido()
 {
     InitializeComponent();
     _mvvm = ContainerIoc.GetInstance <PedidoMvvm>();
     _mvvm.ProcessoFinalizadoHandler += ProcessoFinalizado;
     _mvvm.ProcessoInciadoHandler    += ProcessoInicializado;
     _mvvm.AlertHandler += AlertHandler;
     _mvvm.OnDeleted    += OnDeleted;
     DataContext         = _mvvm;
 }
예제 #7
0
        public async void LostTextBoxFocus()
        {
            var task = Task <Core.Dominio.Producao.Producao> .Factory.StartNew(() =>
            {
                var producao = ContainerIoc.GetInstance <Core.Dominio.Producao.Producao>();
                producao.RegistrarProdutoProducao(ProdutoProducao);
                return(producao);
            });

            await task;
        }
예제 #8
0
        public static void DevoImprimirCupomNaoFiscal()
        {
            var texto = new String(' ', 4096);

            texto  = "------------------------------------------\n";
            texto += "<ce><c>Empresa Teste\n";
            texto += "CNPJ: xxxxxxxxxxxxxx      Inscrição Estadual: yyyyyyyyyy\n";
            texto += "Rua: aaaaaaaaaaaa, Número: 999   Bairro: bbbbbbb\n";
            texto += "Cidade: zzzzzzzzzzzz nn\n";
            texto += "--------------------------------------------------------\n";
            texto += "DANFE NFC-e - Documento Auxiliar\n";
            texto += "da Nota Fiscal Eletrônica para Consumidor Final\n";
            texto += "Não permite aproveitamento de crédito de ICMS\n";
            texto += "</c></ce><c>--------------------------------------------------------\n";
            texto += "Código Descrição do Item        Vlr.Unit. Qtde Vlr.Total\n";
            texto += "--------------------------------------------------------\n";
            texto += "</c>" +
                     "<c>333333 ITEM 01                     37,14 001Un     37,14</c>\n";
            texto += "<c>444444 ITEM 02                     13,61 001Un     13,61</c>\n";
            texto += "<c>--------------------------------------------------------\n";
            texto += "QTD. TOTAL DE ITENS                                    2\n";
            texto += "VALOR TOTAL R$                                     50,75\n";
            texto += "\n";
            texto += "FORMA DE PAGAMENTO                            Valor Pago\n";
            texto += "</c><c>DINHEIRO                                           50,75\n";
            texto += "</c><c>VALOR PAGO R$                                      50,75\n";
            texto += "TROCO R$                                            0,00\n";
            texto += "</c><c>--------------------------------------------------------</c>\n";
            texto += "<c><ce>Val Aprox Tributos R$ 16.29 (32.10%) Fonte: IBPT</c></ce>\n";
            texto += "<c>--------------------------------------------------------</c>\n";
            texto += "<c><ce><ce>NFC-e nº 000001 Série 001\n";
            texto += "Emissão 03/12/2013 15:50:16</c></ce>\n";
            texto += "<ce><b></c><c><b>Via Consumidor</c></b>\n";
            texto += "</b></ce><c><ce>Consulte pela Chave de Acesso em</c>\n";
            texto += "<c>https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx\n";
            texto += "\n";
            texto += "<c><b>CHAVE DE ACESSO</b></ce></c>\n";
            texto += "<c><ce>8877 2222 4444 1101 7777 6666</ce></c>\n";
            texto += "<c><ce>0000 8888 3333 6666 7788</ce></c>\n";
            texto += "<c>--------------------------------------------------------</c>\n";
            texto += "<c><ce><b>CONSUMIDOR NÃO IDENTIFICADO</b></ce></c>\n";
            texto += "<c>--------------------------------------------------------</c>\n";
            texto += "<c><ce><b>Consulta via leitor de QR Code </b></ce></c>\n";
            texto += "<ce><qrcode>https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?chNFe=00000000000000000000000000000000000000000000&nVersao=100&tpAmb=2&cDest=11111111111111&dhEmi=77777777777777777777777777777777777777777777777777&vNF=50.75&vICMS=0.00&digVal=88888888888888888888888888888888888888888888888888888888&cIdToken=000001&cHashQRCode=8888888888888887777777777777777777777777<lmodulo>3</lmodulo></qrcode></ce>";
            texto += "<c><ce>Protocolo de Autorização: 000000000000001</c>\n";
            texto += "<c>03/12/2013 15:50:22\n</ce></c><gui></gui>";
            var impressora = ContainerIoc.GetInstance <IImpressora>();

            //var texto2 = "<c>333333 ITEM 01                             37,14 001Un     37,14</c>"; //64

            impressora.ImprimirTextoTag(texto);
            impressora.FecharComunicacao();
        }
예제 #9
0
        private void TxtCpf_OnLostFocus(object sender, RoutedEventArgs e)
        {
            _mvvm.ClienteCampanha.NomeCampanha = _mvvm.TipoCampanhaSelecionada.ToString();
            _mvvm.ClienteCampanha.CpfCnpj      = TxtCpf.Text;
            var clienteCampanha = ContainerIoc.GetInstance <Core.Dominio.Cliente.ClienteCampanha>().RecuperarcClienteNaCampanha(_mvvm.ClienteCampanha);

            if (clienteCampanha == null)
            {
                return;
            }
            _mvvm.ClienteCampanha = clienteCampanha;
            string message = $"Este cliente foi cadastrado em: {_mvvm.ClienteCampanha.DataCadastro.ToString("dd/MM/yyyy HH:mm")}";

            message += $"\nNome: {_mvvm.ClienteCampanha.NomeCliente}";
            MessageBox.Show(message, InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.OK, MessageBoxImage.Information);
        }
예제 #10
0
        public PontoDeVenda()
        {
            InitializeComponent();
            this.Title = InstanceManager.Parametros.TituloNoConfig;
            if (InstanceManager.CaixaCorrente == null)
            {
                InstanceManager.CaixaCorrente = ContainerIoc.GetInstance <Caixa>();
                ContainerIoc.containerIoc.Configure(ioc =>
                {
                    ioc.ForConcreteType <Core.Dominio.Venda.Venda>().Configure.Ctor <Entity.Caixa>().Is(InstanceManager.CaixaCorrente.CaixaCorrente);
                });
            }

            _mvvm       = ContainerIoc.GetInstance <PontoDeVendaMvvm>();
            DataContext = _mvvm;
            _mvvm.PodeInicializarVenda = _mvvm.CaixaEstaAberto;
        }
예제 #11
0
        public ConsultarComanda()
        {
            InitializeComponent();
            _mvvm = ContainerIoc.GetInstance <ConsultarComandaMvvm>();
            _mvvm.ProcessoFinalizadoHandler += this.StopWait;
            _mvvm.ProcessoInciadoHandler    += this.StartWait;

            _mvvm.AlertHandler += (string s, MessageBoxImage messageBoxImage) =>
            {
                MessageBox.Show(s, InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.OK, messageBoxImage);
            };
            _mvvm.OnDeleted += () =>
            {
                MessageBox.Show("Pedido excluído com sucesso.", InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.OK, MessageBoxImage.Information);
            };

            DataContext = _mvvm;
        }
예제 #12
0
        public IncluirPedido()
        {
            InitializeComponent();
            _mvvm = ContainerIoc.GetInstance <IncluirPedidoMvvm>();
            _mvvm.OnProcessoFinalizado += ProcessoFinalizado;
            _mvvm.OnProcessoInciado    += ProcessoInicializado;
            _mvvm.OnPedidoRegistrado   += PedidoRegistrado;
            _mvvm.OnAlert += AlertHandler;

            if (PedidoCorrente == null)
            {
                PedidoCorrente = new Entity.Pedido {
                    DataEntrega = DateTime.Now, DataPedido = DateTime.Now, Situacao = "aguardando"
                }
            }
            ;


            DataContext = _mvvm;
        }
예제 #13
0
        private void BtnFiltrar_OnClick(object sender, RoutedEventArgs e)
        {
            this.StartWait();
            try
            {
                if (!DtInicio.SelectedDate.HasValue)
                {
                    MessageBox.Show("Data inicial deve ser preenchida.", InstanceManager.Parametros.TituloDasMensagens,
                                    MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                if (!DtFim.SelectedDate.HasValue)
                {
                    MessageBox.Show("Data final deve ser preenchida.", InstanceManager.Parametros.TituloDasMensagens,
                                    MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                if (DtFim.SelectedDate.Value < DtInicio.SelectedDate.Value)
                {
                    MessageBox.Show("Data final deve ser maior que a data inicial.",
                                    InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                var dominio = ContainerIoc.GetInstance <Core.Dominio.Producao.Producao>();
                var mvvm    = dominio.RecuperarConsultaProducao(DtInicio.SelectedDate.Value, DtFim.SelectedDate.Value);
                DataContext = mvvm;
            }
            catch (Exception ex)
            {
                InstanceManager.Logger.Error(ex);
                MessageBox.Show(ex.Message, InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.OK, MessageBoxImage.Error);
            }
            finally
            {
                this.StopWait();
            }
        }
예제 #14
0
파일: Venda.cs 프로젝트: robertorp/pdv-sat
        public void DevoEfetuarVenda()
        {
            var usuario = ContainerIoc.GetInstance <Usuario>();

            usuario.LogarUsuario("admin", "123");
            Assert.IsTrue(usuario.Status == EnumStatusDoResultado.MensagemDeSucesso);

            if (usuario.Status == EnumStatusDoResultado.MensagemDeSucesso)
            {
                ContainerIoc.containerIoc.Configure(ioc =>
                {
                    ioc.ForConcreteType <Caixa>().Configure.Ctor <string>("nomeDoCaixa").Is("NomeDoCaixa".GetConfigValue()).Ctor <Entity.Usuario>().Is(usuario.UsuarioLogado);
                });
            }
            var caixa = ContainerIoc.GetInstance <Caixa>();

            ContainerIoc.SetDefaultConstructorParameter <Core.Dominio.Venda.Venda, Caixa>(caixa, "caixaAberto");

            caixa.AbrirCaixa(100);


            var produto         = ContainerIoc.GetInstance <Produto>();
            var listaDeProdutos = produto.RecuperarListaDeProdutosDoPdv();

            var venda1 = ContainerIoc.GetInstance <Core.Dominio.Venda.Venda>();

            venda1.AdicionarProdutoNaVenda(listaDeProdutos[0], 10, listaDeProdutos[0].PrecoVenda);
            venda1.AdicionarProdutoNaVenda(listaDeProdutos[1], 5, listaDeProdutos[1].PrecoVenda);
            venda1.AdicionarProdutoNaVenda(listaDeProdutos[2], 5, listaDeProdutos[2].PrecoVenda);
            venda1.AdicionarProdutoNaVenda(listaDeProdutos[3], 5, listaDeProdutos[3].PrecoVenda - 1);
            venda1.AdicionarPagamento(caixa.TipoDoPagamento.Dinheiro, 100);

            var venda2 = ContainerIoc.GetInstance <Core.Dominio.Venda.Venda>();

            venda2.AdicionarProdutoNaVenda(listaDeProdutos[0], 10, listaDeProdutos[0].PrecoVenda);
            venda2.AdicionarProdutoNaVenda(listaDeProdutos[1], 5, listaDeProdutos[1].PrecoVenda);
            venda2.AdicionarProdutoNaVenda(listaDeProdutos[2], 5, listaDeProdutos[2].PrecoVenda);
            venda2.AdicionarProdutoNaVenda(listaDeProdutos[3], 5, listaDeProdutos[3].PrecoVenda - 1);
            venda2.AdicionarPagamento(caixa.TipoDoPagamento.DebitoRede, venda2.VendaCorrente.ValorTotalVenda);

            var venda3 = ContainerIoc.GetInstance <Core.Dominio.Venda.Venda>();

            venda3.AdicionarProdutoNaVenda(listaDeProdutos[12], 10, listaDeProdutos[12].PrecoVenda);
            venda3.AdicionarProdutoNaVenda(listaDeProdutos[44], 5, listaDeProdutos[44].PrecoVenda);
            venda3.AdicionarProdutoNaVenda(listaDeProdutos[33], 5, listaDeProdutos[33].PrecoVenda);
            venda3.AdicionarProdutoNaVenda(listaDeProdutos[66], 5, listaDeProdutos[66].PrecoVenda - 1);
            venda3.AdicionarPagamento(caixa.TipoDoPagamento.CreditoRede, venda3.VendaCorrente.ValorTotalVenda);

            var venda4 = ContainerIoc.GetInstance <Core.Dominio.Venda.Venda>();

            venda4.AdicionarProdutoNaVenda(listaDeProdutos[12], 10, listaDeProdutos[12].PrecoVenda);
            venda4.AdicionarProdutoNaVenda(listaDeProdutos[44], 5, listaDeProdutos[44].PrecoVenda);
            venda4.AdicionarProdutoNaVenda(listaDeProdutos[88], 5, listaDeProdutos[88].PrecoVenda);
            venda4.AdicionarProdutoNaVenda(listaDeProdutos[66], 5, listaDeProdutos[66].PrecoVenda - 1);
            venda4.AdicionarPagamento(caixa.TipoDoPagamento.Tiket, venda4.VendaCorrente.ValorTotalVenda);

            caixa.EfetuarSangria(80.5m);
            caixa.AdicionarReforco(200);

            caixa.FecharCaixa(175);
        }
예제 #15
0
        private void BtnEfetuarPagamento_OnClick(object sender, RoutedEventArgs e)
        {
            var msgBox = new Alertas.Pagamentos(_mvvm);

            if (msgBox.ShowDialog().Value)
            {
                var hasMoney = _mvvm.ListaDeVendaPagamentos.Count(x => x.TipoPagamento.Nome.Contains("Dinheiro")) > 0;
                if (InstanceManager.Parametros.GavetaAutomatica && hasMoney)
                {
                    InstanceManager.Cupom.AbrirGaveta();
                }

                var msgCupom = "Venda Finalizada. Deseja imprimir Cupom?";
                if (_mvvm.VendaCorrente.VendaCorrente.ValorTroco > 0)
                {
                    msgCupom = $"Venda Finalizada. Troco: {_mvvm.VendaCorrente.VendaCorrente.ValorTroco.ToString("C")}. Deseja imprimir Cupom ?";
                }

                if (MessageBox.Show(msgCupom, InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.YesNo,
                                    MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)
                {
                    this.StartWait("Aguarde. Imprimindo Cupom...");
                    var tprint = Task.Run(() =>
                    {
                        try
                        {
                            _mvvm.VendaCorrente.VendaCorrente.CupomFiscalImpresso = true;
                            _mvvm.RegistrarCupomFiscalSat();
                            ContainerIoc.GetInstance <Cupom>().ImprimirVenda(_mvvm.VendaCorrente.VendaCorrente);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(string.Concat("Falha.\nMensagem: ", ex.Message), InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    });

                    tprint.Wait(10000);
                    this.StopWait();
                }
                else
                {
                    this.StartWait("Aguarde. Comunicando com SAT...");
                    var tsat = Task.Run(() =>
                    {
                        try
                        {
                            _mvvm.RegistrarCupomFiscalSat();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(string.Concat("Falha ao se comunicar com SAT.\nMensagem: ", ex.Message), InstanceManager.Parametros.TituloDasMensagens, MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    });
                    tsat.Wait(10000);
                    this.StopWait();
                }

                try
                {
                    FecharVenda();
                    SincronizarVenda();
                }
                finally
                {
                    this.StopWait();
                }
            }
        }
예제 #16
0
 public ExportarNotaFiscal()
 {
     InitializeComponent();
     _mvvm       = ContainerIoc.GetInstance <ExportarNotaFiscalMvvm>();
     DataContext = _mvvm;
 }