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); } } } }
private void bsFichaTec_PositionChanged(object sender, EventArgs e) { if (bsImpostos.Count <= 0) { CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor clifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo((bsOrcamento.Current as TRegistro_Orcamento).Cd_clifor, null); object cd_cidade = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_clifor }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_endereco } }, "a.cd_cidade"); object uf_clifor = new CamadaDados.Financeiro.Cadastros.TCD_CadCidade().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_cidade", vOperador = "=", vVL_Busca = cd_cidade.ToString() } }, "a.cd_uf"); object uf_empresa = new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa } }, "c.cd_uf"); CamadaDados.Estoque.Cadastros.TRegistro_CadProduto prod = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo((bsFichaTec.Current as TRegistro_FichaTec).Cd_produto, null); string vObsFiscal = string.Empty; (bsFichaTec.Current as TRegistro_FichaTec).lImpostos = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf((bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa, uf_empresa.ToString(), uf_clifor.ToString(), (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cd_movtostring, (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Tp_movimento, clifor.Cd_condfiscal_clifor, prod.CD_CondFiscal_Produto, decimal.Zero, (bsFichaTec.Current as TRegistro_FichaTec).Quantidade, ref vObsFiscal, dt_emissao.Data, (bsFichaTec.Current as TRegistro_FichaTec).Cd_produto, "P", (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Nr_serie, null); (bsFichaTec.Current as TRegistro_FichaTec).lImpostos.Concat( CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(clifor.Cd_condfiscal_clifor, prod.CD_CondFiscal_Produto, (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cd_movtostring, (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Tp_movimento, clifor.Tp_pessoa, (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa, (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cfg_pedido, clifor.Cd_clifor, prod.CD_Unidade, dt_emissao.Data, (bsFichaTec.Current as TRegistro_FichaTec).Quantidade, decimal.Zero, "P", (bsOrcamento.Current as TRegistro_Orcamento).Cd_cidadeemp, null)); } (bsFichaTec.Current as TRegistro_FichaTec).lImpostos.ForEach(p => { p.Vl_basecalc = (bsFichaTec.Current as TRegistro_FichaTec).Vl_subtotal; CamadaNegocio.Faturamento.NotaFiscal.TCN_ImpostosNF.CalcValorImposto(p, p.Vl_basecalc, false); }); bsFichaTec.ResetCurrentItem(); }