Esempio n. 1
0
        public void CancelarTotal()
        {
            Gravar();

            string motivo = "Cancelar o cupom fiscal inteiro";

            VendaCF vendaCF = new VendaCF(GUID);
            vendaCF.Cancelar(motivo);

            vendaCF = new VendaCF(GUID);
            DumpElement(vendaCF);

            Assert.AreNotEqual(vendaCF.DadosCancelamento, null);
        }
Esempio n. 2
0
        /// <summary>
        /// Ao carregar o formulário
        /// </summary>
        /// <param name="sender">Objeto que disparou o evento</param>
        /// <param name="e">Argumento do evento gerado</param>
        private void Inicial_Load(object sender, EventArgs e)
        {
            splash.Show();

            splash.SetMessage("Verificando ECF");
            if(Settings.ECF.ECFAtual != null)
            {
                ICupomFiscal cf = null;
            #if IsPAF
                IArquivoAuxiliar aux = null;
            #endif
                try
                {
                    cf = new CupomFiscal(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta);
            #if IsPAF
                    aux = new ArquivoAuxiliar();

                    if(!System.IO.File.Exists(aux.ArquivoAuxiliarPath))
                    {
                        aux.GrandeTotal = cf.GrandeTotal.ToString();
                        aux.NumeroSerie = cf.NumeroSerie;
                        aux.Gerar();
                    }

                    aux.Carregar();
            #endif
                }
                catch
                { }
            #if IsPAF
                if((cf.Estado != EstadoECF.Livre) ||
                    !aux.PermiteFaturamento(cf.GrandeTotal))
                {
                    //TODO André: Essa parte do código só vai ser executado quando por algum motivo ocorreu a perda
                    //acidentalmente dos dados do
                    //arquivo auxiliar criptografado, onde será reconstituído o valor do Grande Total e Número de Série do Equipamento Emissor de Cupom Fiscal conectado
                    //Requisito XXIV - item 8
                    try
                    {
                        using(IInformacao info = new Informacao(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta))
                        {
                            DadosReducaoZClass dadosReducao = info.DadosReducaoZ;
                            if(aux.RecomporTotalizadorGeral(info.CRZ, info.CRO, dadosReducao.ValorVendaBruta, dadosReducao.DataHoraEmissao))
                                aux.CorrigeDados(cf.GrandeTotal);
                            else
                            {
                                MessageBox.ShowWarning("Não é permitido o faturamento na impressora fiscal, pois os dados do Grande Total ou Número de série, diferem dos que estão no arquivo auxiliar criptografado!");
                                return;
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            #endif
                splash.SetMessage("Preparando Caixa");
                IVendaCF venda = new VendaCF().HasTemp(Settings.ECF.ECFAtual) as IVendaCF;
                if(venda != null)
                {

                    if(venda.Status == Enuns.Faturamento.Lancamento.Status.ImpressoCupom)
                        new Pagamento(cf, venda).Confirmacao();
                    else
                        new Pagamento(cf, venda).CancelarTransacoesPendentes();

                    try
                    {
                        cf = new CupomFiscal(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta);
                        if(cf.Estado == EstadoECF.Pagamento)
                        {
                            if(cf.TotalPago > 0)
                            {
                                cf.CancelaCupom();
                                if(cf.Estado == EstadoECF.Livre)
                                    venda.Cancelar("Venda cancelada pelo Usuário");
                            }
                        }
                        else if(cf.Estado == EstadoECF.Venda)
                        {
                        }
                        else if(cf.Estado == EstadoECF.Livre)
                        {
                            venda.Cancelar("Venda cancelada pelo Sistema");
                        }
                        else if(cf.Estado == EstadoECF.Relatorio)
                        {
                            new OpenPOS.ECF.RelatorioGerencial(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta).FechaRelatorio(Enuns.ECF.TipoOutrosDocumentos.RG, false);
                        }
                        else if(cf.Estado == EstadoECF.NaoInicializada)
                        {
                            throw new Exception();
                        }
                    }
                    catch
                    {
                        if(MessageBox.AskYesNo("Impressora não responde.\r\tContinuar?", "Erro") == DialogResult.No)
                            Application.Exit();
                    }
                }
                splash.SetMessage("Finalizando Incialização");
            }

            optbCaixa.Visible = optBarVenda.Visible = optbConsulta.Visible = optBarDAV.Visible = optBarOutros.Visible = false;
            //Configurações na barra de acordo com o terminal, ou seja PDV ou não
            if(isPDV)
            {
                labelOperador.Text = Settings.UsuarioAtual.NomeLogin;
                labelTerminal.Text = Settings.MachineName;
                IAbreFechaCaixa abreCx = new AbreCaixa().PermiteAbrir(Settings.MachineName, DateTime.Now);
                labelStatus.Text = abreCx == null ? Convert.ToString(Enuns.FrenteCaixa.Cadastro.Caixa.Status.Fechado) : Convert.ToString(abreCx.Status);
            }
            else
            {
                labelOperador.Text = Settings.UsuarioAtual.NomeLogin;
                labelOperador.Location = new Point(202, 540);
                labelTerminal.Text = "";
                labelStatus.Text = "";
            }
            splash.Close();
        }