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); } }
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); } } } } } }
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); } } } }
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); } } } }