Example #1
0
        private void IniciarVenda()
        {
            rCupom = new TRegistro_CupomFiscal();
            string msgRet = string.Empty;

            if (TGerenciarECF.AbrirCupom(rECF,
                                         string.Empty,
                                         Nm_cliente,
                                         string.Empty,
                                         ref msgRet))
            {
                try
                {
                    rCupom.Id_coo_ecf      = TGerenciarECF.UltimoCOOEmitido(rECF);
                    rCupom.Cd_clifor       = Cd_cliente;
                    rCupom.Nm_clifor       = Nm_cliente;
                    rCupom.Cd_empresa      = lCfg[0].Cd_empresa;
                    rCupom.Nr_serie        = lCfg[0].Nr_serie;
                    rCupom.Cd_vendedor     = Cd_vendedor;
                    rCupom.Dt_emissao      = CamadaDados.UtilData.Data_Servidor();
                    rCupom.Id_pdv          = lSessao[0].Id_pdv;
                    rCupom.Id_sessao       = lSessao[0].Id_sessao;
                    rCupom.Id_equipamento  = rECF.Id_equipamento;
                    rCupom.Cd_movimentacao = lCfg[0].Cd_movimentacao;
                    rCupom.St_cupom        = "S";
                    TCN_CupomFiscal.Gravar(rCupom, null);

                    this.ExibirLayoutVenda();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    //Cancelar cupom fiscal aberto
                    if (rCupom.Id_coo_ecf.HasValue)
                    {
                        TGerenciarECF.CancelarUltimoCupom(rECF);
                    }
                }
            }
            else
            {
                MessageBox.Show(msgRet, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #2
0
        private void CancelarItem()
        {
            if (rCupom != null)
            {
                using (TFItemCancelar fCanc = new TFItemCancelar())
                {
                    fCanc.Id_cupom   = rCupom.Id_cupomstr;
                    fCanc.Cd_empresa = rCupom.Cd_empresa;
                    if (fCanc.ShowDialog() == DialogResult.OK)
                    {
                        if (fCanc.rItem != null)
                        {
                            try
                            {
                                //Cancelar cupom
                                if (TGerenciarECF.CancelarItemGenerico(rECF, fCanc.rItem.Nr_sequencial_ecf.Value.ToString()))
                                {
                                    //Cancelar Item
                                    TCN_CupomFiscal_Item.CancelarItem(fCanc.rItem, null);

                                    // Preparando o cupom para ser colocado na tela
                                    StringBuilder cupom = new StringBuilder(30);
                                    cupom.Append("Item Cancelado: ");
                                    cupom.Append(fCanc.rItem.Nr_sequencial_ecf.Value.ToString().PadLeft(3, '0'));
                                    cupom.Append(decimal.Negate(fCanc.rItem.Vl_subtotalliquido).ToString("N").PadLeft(32, ' '));
                                    cupom.Append('\n');
                                    AtualizarDisplay(cupom.ToString());

                                    this.lblVlUnitario.Text = string.Empty;
                                    this.lblVlSubTotal.Text = string.Empty;
                                    this.lblProduto.Text    = string.Empty;
                                    this.lblTotalCupom.Text = TGerenciarECF.BuscarVlSubTotal(rECF).ToString("N");
                                    this.lblQuantidade.Text = decimal.Parse("1").ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)); // volta quantidade para 1
                                    this.cd_produto.Clear();
                                }
                            }
                            catch (Exception ex)
                            { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                        }
                    }
                }
            }
        }
Example #3
0
 private void CancelarCupom()
 {
     if (rCupom != null)
     {
         if (MessageBox.Show("Confirma cancelamento do cupom?", "Pergunta", MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
         {
             try
             {
                 //Excluir cupom
                 TCN_CupomFiscal.CancelarCF(rCupom, null);
                 TGerenciarECF.CancelarUltimoCupom(rECF);
                 ExibirLayoutCaixaLivre();
             }
             catch (Exception erro)
             { MessageBox.Show("Erro cancelar cupom: " + erro.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
     }
 }
Example #4
0
        private void BuscarItens()
        {
            if (!string.IsNullOrEmpty(cd_produto.Text))
            {
                string pCd_codbarra = cd_produto.Text;
                //Buscar lengt cd_produto
                CamadaDados.Diversos.TList_CadParamSys lParam =
                    CamadaNegocio.Diversos.TCN_CadParamSys.Busca("CD_PRODUTO",
                                                                 string.Empty,
                                                                 decimal.Zero,
                                                                 null);
                if (lParam.Count > 0)
                {
                    if (cd_produto.Text.Trim().Length < lParam[0].Tamanho)
                    {
                        cd_produto.Text = cd_produto.Text.Trim().PadLeft(Convert.ToInt32(lParam[0].Tamanho), '0');
                    }
                }
                List <CamadaDados.Estoque.Cadastros.TRegistro_ProdutoPDV> lProduto =
                    CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.BuscarProdutoPDV(cd_produto.Text,
                                                                                    pCd_codbarra,
                                                                                    lCfg[0],
                                                                                    null);
                if (lProduto.Count > 0)
                {
                    try
                    {
                        TRegistro_CupomFiscal_Item rItem = new TRegistro_CupomFiscal_Item();
                        //Criar objeto item cupom
                        rItem.Cd_empresa            = lCfg[0].Cd_empresa;
                        rItem.Cd_local              = lCfg[0].Cd_local;
                        rItem.Cd_produto            = lProduto[0].Cd_produto;
                        rItem.Cd_condfiscal_produto = lProduto[0].Cd_condfiscal_produto;
                        rItem.Cd_unidade            = lProduto[0].Cd_unidade;
                        rItem.Id_cupom              = rCupom.Id_cupom;
                        rItem.Quantidade            = decimal.Parse(lblQuantidade.Text);
                        rItem.Vl_unitario           = lProduto[0].Vl_precovenda;
                        rItem.Vl_subtotal           = rItem.Quantidade * rItem.Vl_unitario;
                        //Buscar CFOP
                        CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null;
                        if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rCupom.Cd_movimentacaostr, rItem.Cd_condfiscal_produto, true, ref rCfop, null))
                        {
                            rItem.Cd_cfop = rCfop.CD_CFOP;
                            rItem.Ds_cfop = rCfop.DS_CFOP;
                        }
                        else
                        {
                            throw new Exception("Não existe CFOP cadastrado para a movimentação " + rCupom.Cd_movimentacaostr.Trim() + "\r\n" +
                                                "Condição fiscal produto " + rItem.Cd_condfiscal_produto.Trim());
                        }
                        //Procurar Impostos Estaduais para o Item
                        //Buscar estado da empresa
                        object obj = new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar(
                            new Utils.TpBusca[]
                        {
                            new Utils.TpBusca()
                            {
                                vNM_Campo = "a.cd_empresa",
                                vOperador = "=",
                                vVL_Busca = "'" + rCupom.Cd_empresa.Trim() + "'"
                            }
                        }, "c.cd_uf");
                        string vObsFiscal = string.Empty;
                        CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf =
                            CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rCupom.Cd_empresa,
                                                                                                              obj != null ? obj.ToString() : string.Empty,
                                                                                                              obj != null ? obj.ToString() : string.Empty,
                                                                                                              rCupom.Cd_movimentacaostr,
                                                                                                              "S",
                                                                                                              lCfg[0].Cd_condfiscal_clifor,
                                                                                                              rItem.Cd_condfiscal_produto,
                                                                                                              rItem.Vl_subtotalliquido,
                                                                                                              rItem.Quantidade,
                                                                                                              ref vObsFiscal,
                                                                                                              rCupom.Dt_emissao,
                                                                                                              rItem.Cd_produto,
                                                                                                              "P",
                                                                                                              rCupom.Nr_serie,
                                                                                                              null);
                        if (lImpUf.Count > 0)
                        {
                            rItem.ImpostosItens = lImpUf;
                        }
                        else
                        {
                            throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" +
                                                "Tipo Movimento: SAIDA" + "\r\n" +
                                                "Movimentação: " + rCupom.Cd_movimentacaostr + "\r\n" +
                                                "Cond. Fiscal Clifor: " + lCfg[0].Cd_condfiscal_clifor.Trim() + "\r\n" +
                                                "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" +
                                                "UF Origem: " + (obj != null ? obj.ToString() : string.Empty) + "\r\n" +
                                                "UF Destino: " + (obj != null ? obj.ToString() : string.Empty));
                        }
                        //Procurar impostos sobre os itens da nota fiscal de destino
                        rItem.ImpostosItens.Concat(CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(lCfg[0].Cd_condfiscal_clifor,
                                                                                                                                              rItem.Cd_condfiscal_produto,
                                                                                                                                              rCupom.Cd_movimentacaostr,
                                                                                                                                              "S",
                                                                                                                                              lCfg[0].Tp_pessoa,
                                                                                                                                              rCupom.Cd_empresa,
                                                                                                                                              rCupom.Nr_serie,
                                                                                                                                              string.Empty,
                                                                                                                                              string.Empty,
                                                                                                                                              rCupom.Dt_emissao,
                                                                                                                                              decimal.Zero,
                                                                                                                                              rItem.Vl_subtotalliquido,
                                                                                                                                              "P",
                                                                                                                                              string.Empty,
                                                                                                                                              null));

                        pImgProduto.Image = lProduto[0].Imagem;
                        //Objeto Cupom Impressora
                        string aliquota = CamadaNegocio.Faturamento.Cadastros.TCN_CFGCupomFiscal.BuscarAliquotaICMS(rItem.ImpostosItens, null);
                        if (string.IsNullOrEmpty(aliquota))
                        {
                            throw new Exception("Item sem parametro do ICMS.");
                        }
                        int nr_sequencial = 0;
                        if (TGerenciarECF.VenderItem(rECF,
                                                     lProduto[0].Cd_produto,
                                                     lProduto[0].Ds_produto,
                                                     lProduto[0].Sigla_unidade,
                                                     aliquota,
                                                     "F",
                                                     lblQuantidade.Text,
                                                     3,
                                                     lProduto[0].Vl_precovenda.ToString("N3", new System.Globalization.CultureInfo("pt-BR")),
                                                     "%",
                                                     decimal.Zero,
                                                     decimal.Zero,
                                                     ref nr_sequencial))
                        {
                            //Gravar item no banco
                            if (nr_sequencial > 0)
                            {
                                rItem.Nr_sequencial_ecf = nr_sequencial;
                            }
                            else
                            {
                                rItem.Nr_sequencial_ecf = TGerenciarECF.UltimoItemVendido(rECF);
                            }
                            TCN_CupomFiscal_Item.Gravar(rItem, true, null);
                            //Adicionar ao cupom em tela
                            rCupom.lItem.Add(rItem);
                            //Atualizar o Display
                            StringBuilder cupom = new StringBuilder();
                            cupom.AppendFormat("{0:000}", rItem.Nr_sequencial_ecf);
                            cupom.Append(' ', 2);
                            cupom.AppendFormat("{0,-29:G}", rItem.Ds_produto);
                            cupom.Append(' ', 2);
                            cupom.AppendFormat(rItem.Quantidade.ToString("G").PadLeft(3, ' '));
                            cupom.AppendFormat(rItem.Vl_subtotal.ToString("N").PadLeft(12, ' '));
                            cupom.Append('\n');

                            this.AtualizarDisplay(cupom.ToString());
                            Application.DoEvents();

                            this.lblVlUnitario.Text = rItem.Vl_unitario.ToString("N");
                            this.lblVlSubTotal.Text = rItem.Vl_subtotal.ToString("N");
                            this.lblProduto.Text    = rItem.Ds_produto;
                            this.lblTotalCupom.Text = TGerenciarECF.BuscarVlSubTotal(rECF).ToString("N");
                            this.lblQuantidade.Text = decimal.Parse("1").ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)); // volta quantidade para 1
                            this.cd_produto.Clear();
                            this.lblMenuCancelarItem.Enabled = true;
                            this.lblMenuFecharVenda.Enabled  = true;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }