private void button1_Click(object sender, EventArgs e) { using (Financeiro.Cadastros.TFCadCliforResumido fClifor = new Financeiro.Cadastros.TFCadCliforResumido()) { if (fClifor.ShowDialog() == DialogResult.OK) { if (fClifor.rClifor != null) { try { CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Gravar(fClifor.rClifor, null); cd_clifor.Text = fClifor.rClifor.Cd_clifor; nm_clifor.Text = fClifor.rClifor.Nm_clifor; object t = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = cd_clifor.Text } }, "a.cd_endereco"); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } }
private void cd_clifor_Leave(object sender, EventArgs e) { DataRow linha = FormBusca.UtilPesquisa.EDIT_LeaveClifor("a.cd_clifor|=|'" + cd_clifor.Text.Trim() + "'", new Componentes.EditDefault[] { cd_clifor, nm_clifor }, new CamadaDados.Financeiro.Cadastros.TCD_CadClifor()); if (linha != null) { cnpj_cpf.Text = linha["tp_pessoa"].ToString().Trim().ToUpper().Equals("J") ? linha["nr_cgc"].ToString() : linha["nr_cpf"].ToString(); CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select(new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = cd_clifor.Text } }, 1, string.Empty); CamadaDados.Financeiro.Cadastros.TList_CadContatoCliFor lcont = new CamadaDados.Financeiro.Cadastros.TCD_CadContatoCliFor().Select(new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = cd_clifor.Text } }, 1, string.Empty); if (lcont.Count > 0) { cd_contato.Text = lcont[0].Id_Contato_St; fone_contato.Text = lcont[0].Fone; email_contato.Text = lcont[0].Email; } if (lEnd.Count > 0) { cd_endereco.Text = lEnd[0].Cd_endereco; ds_endereco.Text = lEnd[0].Ds_endereco; ds_enderecoemp.Text = lEnd[0].Ds_endereco; numeroemp.Text = lEnd[0].Numero; bairroemp.Text = lEnd[0].Bairro; foneemp.Text = lEnd[0].Fone; cd_cidadeemp.Text = lEnd[0].Cd_cidade; ds_cidadeemp.Text = lEnd[0].DS_Cidade; uf_emp.Text = lEnd[0].UF; ds_empreendimento.Focus(); } } else { cnpj_cpf.Clear(); } }
private string BuscarEndereco(string Cd_clifor) { object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + Cd_clifor.Trim() + "'" } }, "a.cd_endereco"); return(obj == null ? string.Empty : obj.ToString()); }
private void BuscarEndereco() { if (!string.IsNullOrEmpty(cd_clifor.Text)) { object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + cd_clifor.Text.Trim() + "'" } }, "a.cd_endereco"); if (obj != null) CD_Endereco.Text = obj.ToString(); } }
private void BuscarEndereco() { if (!string.IsNullOrEmpty(cd_clifor.Text)) { object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + cd_clifor.Text.Trim() + "'" } }, "CONVERT(VARCHAR(100),(a.cd_endereco + ',' + a.cd_uf + ',' + a.ds_endereco))"); if (obj != null) { cd_endereco.Text = obj.ToString().Split(new char[] { ',' })[0]; ds_endereco.Text = obj.ToString().Split(new char[] { ',' })[2]; if (lCfgPosto[0].St_NFDiretaForaUFbool) { object ufEmp = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + lCfgPosto[0].Cd_clifor.Trim() + "'" } }, "a.cd_uf"); if (ufEmp != null) { if (ufEmp.ToString() != obj.ToString().Split(new char[] { ',' })[1]) { tp_faturamento.SelectedIndex = 2; tp_faturamento.SelectedValue = "NF"; tp_faturamento.Enabled = false; } } } } } }
private void BuscarEndereco() { //Busca Endereço Fornecedor CamadaDados.Financeiro.Cadastros.TList_CadEndereco List_Endereco = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + vCd_clifor.Trim() + "'" } }, 1, string.Empty); if (List_Endereco.Count > 0) { vCd_endereco = List_Endereco[0].Cd_endereco; vDs_endereco = List_Endereco[0].Ds_endereco; } }
private void BuscarEnd() { if (cd_transportadora.Text.Trim() != string.Empty) { object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + cd_transportadora.Text.Trim() + "'" } }, "a.cd_endereco"); if (obj != null) { cd_enderecotransp.Text = obj.ToString(); } } }
private void Busca_Endereco_Clifor() { //Busca Endereço CamadaDados.Financeiro.Cadastros.TList_CadEndereco List_Endereco = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + (bsPreVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_PreVenda).Cd_clifor.Trim() + "'" } }, 0, string.Empty); if (List_Endereco.Count > 0) { if (List_Endereco.Exists(p => p.St_enderecoentregabool)) { cd_endereco.Text = List_Endereco.Find(p => p.St_enderecoentregabool).Cd_endereco.Trim(); ds_endereco.Text = List_Endereco.Find(p => p.St_enderecoentregabool).Ds_endereco.Trim(); numero.Text = List_Endereco.Find(p => p.St_enderecoentregabool).Numero.Trim(); Bairro.Text = List_Endereco.Find(p => p.St_enderecoentregabool).Bairro.Trim(); fone.Text = List_Endereco.Find(p => p.St_enderecoentregabool).Fone.Trim(); proximo.Text = List_Endereco.Find(p => p.St_enderecoentregabool).Proximo.Trim(); } else { cd_endereco.Text = List_Endereco[0].Cd_endereco.Trim(); ds_endereco.Text = List_Endereco[0].Ds_endereco.Trim(); numero.Text = List_Endereco[0].Numero.Trim(); Bairro.Text = List_Endereco[0].Bairro.Trim(); fone.Text = List_Endereco[0].Fone.Trim(); proximo.Text = List_Endereco[0].Proximo.Trim(); } } }
public static TRegistro_LanFaturamento GerarDevolucao(TRegistro_LanFaturamento rNf) { CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor Reg_Clifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rNf.Cd_clifor, null); #region Nota Fiscal Devolução TRegistro_LanFaturamento rNfDev = new TRegistro_LanFaturamento(); CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPedido = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rNf.Nr_pedido.ToString() + ")" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'DV'" } }, 1, string.Empty); if (lCfgPedido.Count > 0) { rNfDev.Cd_empresa = rNf.Cd_empresa; rNfDev.Nr_serie = lCfgPedido[0].Nr_serie; rNfDev.Ds_serienf = lCfgPedido[0].Ds_serienf; rNfDev.Cd_modelo = lCfgPedido[0].Cd_modelo; rNfDev.Cd_movimentacao = lCfgPedido[0].Cd_movto; rNfDev.Cd_cmi = lCfgPedido[0].Cd_cmi; rNfDev.Tp_movimento = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S"; rNfDev.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); rNfDev.Dt_saient = CamadaDados.UtilData.Data_Servidor(); rNfDev.Cd_uf_clifor = rNf.Cd_uf_clifor; rNfDev.Cd_uf_empresa = rNf.Cd_uf_empresa; rNfDev.Cd_condfiscal_clifor = rNf.Cd_condfiscal_clifor; rNfDev.rEndereco = rNf.rEndereco; rNfDev.Cd_clifor = rNf.Cd_clifor; rNfDev.Cd_endereco = rNf.Cd_endereco; rNfDev.Nr_pedido = rNf.Nr_pedido; using (TFNumero_Nota fNumero = new TFNumero_Nota()) { fNumero.Text = "Dados Nota Fiscal Devolução"; fNumero.pCd_empresa = rNf.Cd_empresa; fNumero.pNm_empresa = rNf.Nm_empresa; fNumero.pCd_clifor = rNf.Cd_clifor; fNumero.pNm_clifor = rNf.Nm_clifor; fNumero.pTp_pessoa = rNf.Tp_pessoa; fNumero.pNr_serie = lCfgPedido[0].Nr_serie; fNumero.pDs_serie = lCfgPedido[0].Ds_serienf; fNumero.pCd_modelo = lCfgPedido[0].Cd_modelo; fNumero.pTp_movimento = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S"; fNumero.pNr_notafiscal = string.Empty; fNumero.pDt_emissao = rNfDev.Dt_emissao; fNumero.pDt_saient = rNfDev.Dt_saient; fNumero.pSt_sequenciaauto = lCfgPedido[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); fNumero.pCd_movto = rNfDev.Cd_movimentacaostring; fNumero.pCd_cmi = rNfDev.Cd_cmistring; //Buscar insc. estadual origem object obj_inscdestino = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rNf.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + rNf.Cd_endereco.Trim() + "'" } }, "a.insc_estadual"); if (obj_inscdestino != null) { fNumero.pInsc_estadual = obj_inscdestino.ToString(); } fNumero.pTp_nota = (TCN_LanFaturamento.validarST_Nota(fNumero.pTp_movimento, fNumero.pTp_pessoa, Reg_Clifor.St_equiparado_pjbool, Reg_Clifor.St_agropecuariabool).Equals(0) ? "P" : "T"); if (fNumero.ShowDialog() == DialogResult.OK) { rNfDev.Nr_serie = fNumero.pNr_serie; rNfDev.Tp_pessoa = fNumero.pTp_pessoa; rNfDev.Cd_modelo = fNumero.pCd_modelo; rNfDev.Tp_movimento = fNumero.pTp_movimento; rNfDev.Tp_nota = fNumero.pTp_nota; rNfDev.Dt_emissao = fNumero.pDt_emissao; rNfDev.Dt_saient = fNumero.pDt_saient; rNfDev.Obsfiscal = fNumero.pDs_obsfiscal; rNfDev.Dadosadicionais = fNumero.pDs_dadosadic; rNfDev.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { rNfDev.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { rNfDev.Nr_notafiscal = null; } rNfDev.St_sequenciaauto = fNumero.pSt_sequenciaauto; if (rNfDev.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim()) { CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rNfDev.Cminf.Add(new TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rNfDev.Cd_cmistring = fNumero.pCd_cmi; rNfDev.Ds_cmi = rCmi.Ds_cmi; rNfDev.Tp_duplicata = rCmi.Tp_duplicata; rNfDev.Ds_tpduplicata = rCmi.ds_tpduplicata; } //Dados Frete rNfDev.Cd_transportadora = fNumero.pCd_transportadora; rNfDev.Nm_razaosocialtransp = fNumero.pNm_transportadora; rNfDev.Cpf_transp = fNumero.pCnpjCpfTransp; rNfDev.Cd_enderecotransp = fNumero.pCd_endtransportadora; rNfDev.Especie = fNumero.pEspecie; rNfDev.Placaveiculo = fNumero.pPlacaVeiculo; rNfDev.Freteporconta = fNumero.pTp_frete; rNfDev.Vl_frete = fNumero.pVl_frete; rNfDev.Quantidade = fNumero.pQuantidade; rNfDev.Pesobruto = fNumero.pPsbruto; rNfDev.Pesoliquido = fNumero.pPsliquido; //Dados Exportacao rNfDev.Cd_ufsaidaex = fNumero.pCd_ufsaidaex; rNfDev.Ds_ufsaidaex = fNumero.pDs_ufsaidaex; rNfDev.Uf_saidaex = fNumero.pUf_saidaex; rNfDev.Ds_localex = fNumero.pDs_localex; } else { throw new Exception("Obrigatorio informar numero da nota fiscal de destino."); } } } else { throw new Exception("Não existe configuração fiscal Devolução para tipo de pedido!"); } //Itens da Nota rNf.ItensNota.FindAll(p => p.St_processar).ForEach(item => { //Item da nota fiscal TRegistro_LanFaturamento_Item rItem = new TRegistro_LanFaturamento_Item(); rItem.Cd_empresa = item.Cd_empresa; rItem.Nr_pedido = item.Nr_pedido; rItem.Id_pedidoitem = item.Id_pedidoitem; rItem.Cd_produto = item.Cd_produto; rItem.Cd_local = item.Cd_local; rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto; rItem.Cd_unidade = item.Cd_unidade; rItem.Cd_unidEst = item.Cd_unidade; rItem.Quantidade = item.Qtd_devolver; rItem.Quantidade_estoque = item.Qtd_devolver; rItem.Vl_subtotal = item.Qtd_devolver * item.Vl_unitario; rItem.Vl_subtotal_estoque = item.Qtd_devolver * item.Vl_unitario; rItem.Vl_unitario = item.Vl_unitario; rItem.Vl_desconto = (item.Vl_desconto / item.Quantidade) * item.Qtd_devolver; rItem.Vl_juro_fin = (item.Vl_juro_fin / item.Quantidade) * item.Qtd_devolver; //Buscar cfop do item CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null; if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNfDev.Cd_movimentacaostring, item.Cd_condfiscal_produto, rNfDev.rEndereco.Cd_uf.Trim().Equals("99") ? "I" : rNfDev.Cd_uf_clifor.Trim().Equals(rNfDev.Cd_uf_empresa.Trim()) ? "D" : "F", (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa), (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor), rNfDev.Tp_movimento, rNfDev.Cd_condfiscal_clifor, rItem.Cd_empresa, ref rCfop, null)) { rItem.Cd_cfop = rCfop.CD_CFOP; rItem.Ds_cfop = rCfop.DS_CFOP; rItem.St_bonificacao = rCfop.St_bonificacaobool; } else { throw new Exception("Não existe CFOP " + (rNf.rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rNf.rEndereco.Cd_uf.Trim().Equals(rNf.rEndereco.Cd_uf.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto); } //Procurar Impostos Estaduais para o Item string vObsFiscal = string.Empty; TList_ImpostosNF lImpUf = TCN_LanFaturamento_Item.procuraImpostosPorUf(rItem.Cd_empresa, (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNfDev.Cd_movimentacaostring, rNfDev.Tp_movimento, rNfDev.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rItem.Vl_subtotal, rItem.Quantidade, ref vObsFiscal, rNfDev.Dt_emissao, rItem.Cd_produto, rNfDev.Tp_nota, rNfDev.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem); rNf.Obsfiscal += vObsFiscal.Trim(); } else if (TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null)) { throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" + "Tipo Movimento: " + rNfDev.Tp_movimento + "\r\n" + "Movimentação: " + rNfDev.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + rNfDev.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino TCN_LanFaturamento_Item.PreencherOutrosImpostos( TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rNfDev.Cd_movimentacaostring, rNfDev.Tp_movimento, rNfDev.Tp_pessoa, rNfDev.Cd_empresa, rNfDev.Nr_serie, rNfDev.Cd_clifor, rItem.Cd_unidEst, rNfDev.Dt_emissao, rItem.Quantidade, rItem.Vl_subtotal, rNfDev.Tp_nota, rNf.Cd_municipioexecservico, null), rItem, rNfDev.Tp_movimento); // Formar Itens a devolver rItem.lNfcompdev.Add(new TRegistro_LanFat_ComplementoDevolucao() { Cd_empresa = item.Cd_empresa, Nr_notafiscal_origem = rNf.Nr_notafiscal, Nr_serie_origem = rNf.Nr_serie, Nr_lanctofiscal_origem = rNf.Nr_lanctofiscal, Id_nfitem_origem = item.Id_nfitem, Qtd_lancto = item.Qtd_devolver, Vl_lancto = item.Quantidade * item.Vl_unitario, Tp_operacao = "D" }); //Observação do Item com os dados das notas de orig rItem.Observacao_item += "NF/Serie Origem Quantidade Valor(R$)\r\n" + (rNf.Nr_notafiscalstr + rNf.Nr_serie).FormatStringDireita(21, ' ') + item.Qtd_devolver.ToString("N3", new System.Globalization.CultureInfo("en-US", true)) + rItem.Sigla_unidade_estoque.Trim().FormatStringDireita(15, ' ') + decimal.Multiply(item.Quantidade, item.Vl_unitario).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringDireita(12, ' ') + "\r\n"; rNfDev.ItensNota.Add(rItem); }); return(rNfDev); #endregion }
public static CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento ProcessaVRVendaFutura(CamadaDados.Faturamento.PDV.TRegistro_VendaRapida rVenda, CamadaDados.Faturamento.NotaFiscal.TList_LanFat_ComplementoDevolucao lNfM) { //Buscar pedido entrega futura CamadaDados.Faturamento.Pedido.TList_Pedido lPed = new CamadaDados.Faturamento.Pedido.TCD_Pedido().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_notafiscal_item x " + "where x.nr_pedido = a.nr_pedido " + "and x.cd_empresa = '" + lNfM[0].Cd_empresa.Trim() + "' " + "and x.nr_lanctofiscal = " + lNfM[0].Nr_lanctofiscal_origem.Value.ToString() + " " + "and x.id_nfitem = " + lNfM[0].Id_nfitem_origem.Value.ToString() + ")" } }, 1, string.Empty); if (lPed.Count > 0) { //Buscar configuracao fiscal entrega futura CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'NO'" }, new TpBusca() { vNM_Campo = "a.cfg_pedido", vOperador = "=", vVL_Busca = "'" + lPed[0].CFG_Pedido.Trim() + "'" } }, 1, string.Empty); if (lCfgPed.Count > 0) { //Objeto Nota Fiscal CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNf = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento(); rNf.Cd_empresa = lPed[0].CD_Empresa; rNf.Cd_clifor = lPed[0].CD_Clifor; rNf.Nm_clifor = lPed[0].NM_Clifor; rNf.Cd_endereco = lPed[0].CD_Endereco; rNf.Cd_cmi = lCfgPed[0].Cd_cmi; rNf.Cd_movimentacao = lCfgPed[0].Cd_movto; rNf.lCFGFiscal = lCfgPed; rNf.Cd_uf_empresa = lPed[0].Cd_uf_empresa; rNf.Uf_empresa = lPed[0].Uf_empresa; rNf.Cd_uf_clifor = lPed[0].Cd_uf_cliente; rNf.Uf_clifor = lPed[0].UF_Cliente; rNf.Cd_condfiscal_clifor = lPed[0].Cd_condfiscal_clifor; rNf.Tp_duplicata = lCfgPed[0].Tp_duplicata; rNf.Ds_tpduplicata = lCfgPed[0].Ds_tpduplicata; rNf.Cd_condpgto = lCfgPed[0].CD_CondPgto; rNf.Nr_pedido = lPed[0].Nr_pedido; rNf.Tp_movimento = "S"; rNf.Tp_pessoa = lPed[0].Tp_pessoa; rNf.Tp_nota = "P"; rNf.Nr_serie = lCfgPed[0].Nr_serie; rNf.Cd_modelo = lCfgPed[0].Cd_modelo; rNf.St_sequenciaauto = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); rNf.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); rNf.Dt_saient = rNf.Dt_emissao; rNf.Dadosadicionais = ProcessaAplicacao.BuscarObsMov("D", rNf.Cd_movimentacaostring, lPed[0].UF_Cliente.Trim().Equals(lPed[0].Uf_empresa.Trim())); rNf.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F", rNf.Cd_movimentacaostring, lPed[0].UF_Cliente.Trim().Equals(lPed[0].Uf_empresa.Trim())); if (rNf.Tp_nota.Trim().ToUpper().Equals("T") || (!rNf.St_sequenciaauto)) { //Abrir tela para capturar dados da nota fiscal using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota()) { fNumero.pCd_empresa = rNf.Cd_empresa; fNumero.pNm_empresa = rNf.Nm_empresa; fNumero.pCd_clifor = rNf.Cd_clifor; fNumero.pNm_clifor = rNf.Nm_clifor; fNumero.pTp_pessoa = rNf.Tp_pessoa; fNumero.pTp_movimento = rNf.Tp_movimento; fNumero.pTp_nota = rNf.Tp_nota; fNumero.pChave_Acesso_NFe = rNf.Chave_acesso_nfe; fNumero.pNr_serie = rNf.Nr_serie; fNumero.pDs_serie = rNf.Ds_serienf; fNumero.pCd_modelo = rNf.Cd_modelo; fNumero.pDt_emissao = rNf.Dt_emissao; fNumero.pST_NotaUnica = false; fNumero.pNr_notafiscal = rNf.Nr_notafiscal.HasValue ? rNf.Nr_notafiscal.Value.ToString() : string.Empty; fNumero.pDt_saient = rNf.Dt_saient; fNumero.pDs_dadosadic = rNf.Dadosadicionais; fNumero.pDs_obsfiscal = rNf.Obsfiscal; fNumero.pSt_sequenciaauto = rNf.St_sequenciaauto; fNumero.pCd_movto = rNf.Cd_movimentacaostring; fNumero.pCd_cmi = rNf.Cd_cmistring; if (rNf.Tp_nota.Trim().ToUpper().Equals("T")) { //Buscar inscricao estadual do clifor da nota object obj_insc = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rNf.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + rNf.Cd_endereco.Trim() + "'" } }, "a.insc_estadual"); fNumero.pInsc_estadual = obj_insc == null ? string.Empty : obj_insc.ToString(); } if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rNf.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { rNf.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { rNf.Nr_notafiscal = null; } rNf.Nr_serie = fNumero.pNr_serie; rNf.Cd_modelo = fNumero.pCd_modelo; rNf.Dt_emissao = fNumero.pDt_emissao; rNf.Dt_saient = fNumero.pDt_saient; rNf.Obsfiscal = fNumero.pDs_obsfiscal; rNf.Dadosadicionais = fNumero.pDs_dadosadic; rNf.Cd_transportadora = fNumero.pCd_transportadora; rNf.Nm_razaosocialtransp = fNumero.pNm_transportadora; rNf.Cpf_transp = fNumero.pCnpjCpfTransp; rNf.Placaveiculo = fNumero.pPlacaVeiculo; rNf.Tp_frete = fNumero.pTp_frete; rNf.Especie = fNumero.pEspecie; rNf.Quantidade = fNumero.pQuantidade; rNf.Pesobruto = fNumero.pPsbruto; rNf.Pesoliquido = fNumero.pPsliquido; rNf.Vl_frete = fNumero.pVl_frete; if (rNf.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim()) { CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rNf.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rNf.Cd_cmistring = fNumero.pCd_cmi; rNf.Ds_cmi = rCmi.Ds_cmi; rNf.Tp_duplicata = rCmi.Tp_duplicata; rNf.Ds_tpduplicata = rCmi.ds_tpduplicata; } } else { throw new Exception("Obrigatorio informar numero da nota fiscal."); } } } if (rNf.Nr_notafiscal.HasValue) { CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.existeNumeroNota(rNf.Nr_notafiscal.ToString(), rNf.Nr_serie, rNf.Cd_empresa, rNf.Cd_clifor, string.Empty, rNf.Tp_nota, null); if (rFat != null) { if (rFat.St_registro.Trim().ToUpper().Equals("C")) { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" + "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" + "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" + "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão."); } else { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra ativa.\r\n" + "Não é permitido gerar nota fiscal com mesmo numero."); } } } rVenda.lItem.ForEach(item => { //Buscar item pedido object obj = new CamadaDados.Faturamento.Pedido.TCD_LanPedido_Item().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.nr_pedido", vOperador = "=", vVL_Busca = lPed[0].Nr_pedido.ToString() }, new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + item.Cd_produto.Trim() + "'" } }, "a.id_pedidoitem"); //Item da nota fiscal CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item rItem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item(); rItem.Cd_empresa = rVenda.Cd_empresa; rItem.Cd_produto = item.Cd_produto; rItem.Cd_local = item.Cd_local; rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto; rItem.Cd_unidade = item.Cd_unidade; rItem.Cd_unidEst = item.Cd_unidade; rItem.Nr_pedido = lPed[0].Nr_pedido; rItem.Id_pedidoitem = decimal.Parse(obj.ToString()); rItem.Quantidade = item.Quantidade; rItem.Quantidade_estoque = item.Quantidade; rItem.Vl_subtotal = item.Vl_subtotal; rItem.Vl_subtotal_estoque = item.Vl_subtotal; rItem.Vl_unitario = item.Vl_unitario; //Buscar cfop do item CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null; if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNf.Cd_movimentacaostring, item.Cd_condfiscal_produto, lPed[0].Cd_uf_cliente.Trim().Equals("99") ? "I" : lPed[0].Cd_uf_cliente.Trim().Equals(lPed[0].Cd_uf_empresa.Trim()) ? "D" : "F", (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNf.Tp_movimento, rNf.Cd_condfiscal_clifor, rNf.Cd_empresa, ref rCfop, null)) { rItem.Cd_cfop = rCfop.CD_CFOP; rItem.Ds_cfop = rCfop.DS_CFOP; rItem.St_bonificacao = rCfop.St_bonificacaobool; } else { throw new Exception("Não existe CFOP " + (lPed[0].Cd_uf_cliente.Trim().Equals("99") ? "internacional" : lPed[0].Cd_uf_cliente.Trim().Equals(lPed[0].Cd_uf_empresa.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto); } //Procurar Impostos Estaduais para o Item string vObsFiscal = string.Empty; CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rNf.Cd_empresa, (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa), (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor), rNf.Cd_movimentacaostring, rNf.Tp_movimento, rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rItem.Vl_subtotal, rItem.Quantidade, ref vObsFiscal, rNf.Dt_emissao, rItem.Cd_produto, rNf.Tp_nota, rNf.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem); rNf.Obsfiscal += vObsFiscal.Trim(); } else if (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null)) { throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" + "Tipo Movimento: " + rNf.Tipo_movimento.Trim() + "\r\n" + "Movimentação: " + rNf.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + rNf.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherOutrosImpostos( CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor, rItem.Cd_condfiscal_produto, rNf.Cd_movimentacaostring, rNf.Tp_movimento, rNf.Tp_pessoa, rNf.Cd_empresa, rNf.Nr_serie, rNf.Cd_clifor, rItem.Cd_unidEst, rNf.Dt_emissao, rItem.Quantidade, rItem.Vl_subtotal, rNf.Tp_nota, rNf.Cd_municipioexecservico, null), rItem, rNf.Tp_movimento); //Incluir Nota Mestra rItem.lNfcompdev = lNfM; //Observação do Item com os dados das notas de origem string obsitem = string.Empty; lNfM.ForEach(p => obsitem += (p.Nr_notafiscal_origem.ToString() + "/" + p.Nr_serie_origem).FormatStringDireita(21, ' ') + (p.Qtd_lancto.ToString("N3", new System.Globalization.CultureInfo("pt-BR")) + item.Sigla_unidade.Trim()).FormatStringDireita(15, ' ') + p.Vl_lancto.ToString("N2", new System.Globalization.CultureInfo("pt-BR")).FormatStringDireita(12, ' ') + "\r\n"); rItem.Observacao_item += "NF/Serie Origem Quantidade Valor(R$)\r\n" + obsitem; rNf.ItensNota.Add(rItem); }); return(rNf); } else { throw new Exception("Não existe configuração fiscal para o pedido Nº" + lPed[0].Nr_pedido.ToString()); } } else { throw new Exception("Pedido não localizado."); } }
public static CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento ProcessaQuebraTec(CamadaDados.Balanca.TRegistro_PedidoAplicacao rPedAplic, List <CamadaDados.Graos.TRegistro_TaxaDeposito> lTaxas, string Tp_taxa) { //Buscar config taxa //Buscar configuracao para o tipo de taxa que esta sendo faturada CamadaDados.Graos.TList_CFGTaxa CfgTaxa = CamadaNegocio.Graos.TCN_CFGTaxa.Buscar(Tp_taxa, string.Empty, string.Empty, string.Empty, null); //Verificar se existe configuracao fiscal if (string.IsNullOrEmpty(CfgTaxa[0].Tp_fiscal)) { throw new Exception("Não existe configuração fiscal para o tipo de taxa por PESO."); } //Buscar configuracao fiscal do pedido CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rPedAplic.Nr_pedidostring + ")" }, new Utils.TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'" + CfgTaxa[0].Tp_fiscal.Trim().ToUpper() + "'" } }, 1, string.Empty); if (lCfgPed.Count > 0) { //Buscar pedido CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNfDev = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento(); rNfDev.Cd_empresa = rPedAplic.Cd_empresa; rNfDev.Cd_clifor = rPedAplic.Cd_clifor; rNfDev.Nm_clifor = rPedAplic.Nm_clifor; rNfDev.Cd_endereco = rPedAplic.Cd_endereco; rNfDev.Cd_cmi = lCfgPed[0].Cd_cmi; rNfDev.Cd_movimentacao = lCfgPed[0].Cd_movto; rNfDev.lCFGFiscal = lCfgPed; rNfDev.Cd_uf_empresa = rPedAplic.Cd_uf_empresa; rNfDev.Uf_empresa = rPedAplic.Uf_empresa; rNfDev.Cd_uf_clifor = rPedAplic.Cd_uf_clifor; rNfDev.Uf_clifor = rPedAplic.Uf_clifor; rNfDev.Cd_condfiscal_clifor = rPedAplic.Cd_condfiscal_clifor; rNfDev.Tp_duplicata = lCfgPed[0].Tp_duplicata; rNfDev.Ds_tpduplicata = lCfgPed[0].Ds_tpduplicata; rNfDev.Cd_condpgto = rPedAplic.Cd_condpgto; rNfDev.Nr_pedido = rPedAplic.Nr_pedido; rNfDev.Tp_movimento = rPedAplic.Tp_movimento.Trim().ToUpper().Equals("E") ? "S" : "E"; rNfDev.Tp_pessoa = rPedAplic.Tp_pessoa; rNfDev.Tp_nota = (rNfDev.Tp_pessoa.Trim().ToUpper().Equals("J") && rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? "T" : "P"); rNfDev.Nr_serie = lCfgPed[0].Nr_serie; rNfDev.Cd_modelo = lCfgPed[0].Cd_modelo; rNfDev.St_sequenciaauto = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); rNfDev.Dt_emissao = CamadaDados.UtilData.Data_Servidor(); rNfDev.Dt_saient = rNfDev.Dt_emissao; rNfDev.Dadosadicionais = ProcessaAplicacao.BuscarObsMov("D", rNfDev.Cd_movimentacaostring, rPedAplic.Uf_clifor.Trim().Equals(rPedAplic.Uf_empresa.Trim())); rNfDev.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F", rNfDev.Cd_movimentacaostring, rPedAplic.Uf_empresa.Trim().Equals(rPedAplic.Uf_clifor.Trim())); rNfDev.Pesoliquido = lTaxas.Sum(p => p.Ps_Taxa); //Buscar tipo frete no pedido object obj = new CamadaDados.Faturamento.Pedido.TCD_Pedido().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.nr_pedido", vOperador = "=", vVL_Busca = rPedAplic.Nr_pedidostring } }, "a.tp_frete"); rNfDev.Tp_frete = obj == null ? string.Empty : obj.ToString(); //Abrir tela para capturar dados da nota fiscal using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota()) { fNumero.pCd_empresa = rNfDev.Cd_empresa; fNumero.pNm_empresa = rNfDev.Nm_empresa; fNumero.pCd_clifor = rNfDev.Cd_clifor; fNumero.pNm_clifor = rNfDev.Nm_clifor; fNumero.pTp_pessoa = rNfDev.Tp_pessoa; fNumero.pTp_movimento = rNfDev.Tp_movimento; fNumero.pTp_nota = rNfDev.Tp_nota; fNumero.pChave_Acesso_NFe = rNfDev.Chave_acesso_nfe; fNumero.pNr_serie = rNfDev.Nr_serie; fNumero.pDs_serie = rNfDev.Ds_serienf; fNumero.pCd_modelo = rNfDev.Cd_modelo; fNumero.pDt_emissao = rNfDev.Dt_emissao; fNumero.pST_NotaUnica = false; fNumero.pNr_notafiscal = rNfDev.Nr_notafiscal.HasValue ? rNfDev.Nr_notafiscal.Value.ToString() : string.Empty; fNumero.pDt_emissao = rNfDev.Dt_emissao; fNumero.pDt_saient = rNfDev.Dt_saient; fNumero.pDs_dadosadic = rNfDev.Dadosadicionais; fNumero.pDs_obsfiscal = rNfDev.Obsfiscal; fNumero.pSt_sequenciaauto = rNfDev.St_sequenciaauto; fNumero.pCd_movto = rNfDev.Cd_movimentacaostring; fNumero.pCd_cmi = rNfDev.Cd_cmistring; if (rNfDev.Tp_nota.Trim().ToUpper().Equals("T")) { //Buscar inscricao estadual do clifor da nota object obj_insc = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rNfDev.Cd_clifor.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + rNfDev.Cd_endereco.Trim() + "'" } }, "a.insc_estadual"); fNumero.pInsc_estadual = obj_insc == null ? string.Empty : obj_insc.ToString(); } fNumero.pTp_frete = rNfDev.Tp_frete; if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rNfDev.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal)) { rNfDev.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal); } else { rNfDev.Nr_notafiscal = null; } rNfDev.Nr_serie = fNumero.pNr_serie; rNfDev.Cd_modelo = fNumero.pCd_modelo; rNfDev.Dt_emissao = fNumero.pDt_emissao; rNfDev.Dt_saient = fNumero.pDt_saient; rNfDev.Obsfiscal = fNumero.pDs_obsfiscal; rNfDev.Dadosadicionais = fNumero.pDs_dadosadic; rNfDev.Cd_transportadora = fNumero.pCd_transportadora; rNfDev.Nm_razaosocialtransp = fNumero.pNm_transportadora; rNfDev.Cpf_transp = fNumero.pCnpjCpfTransp; rNfDev.Placaveiculo = fNumero.pPlacaVeiculo; rNfDev.Tp_frete = fNumero.pTp_frete; rNfDev.Especie = fNumero.pEspecie; rNfDev.Quantidade = fNumero.pQuantidade; rNfDev.Pesobruto = fNumero.pPsbruto; rNfDev.Pesoliquido = fNumero.pPsliquido; rNfDev.Vl_frete = fNumero.pVl_frete; if (rNfDev.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim()) { CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rNfDev.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rNfDev.Cd_cmistring = fNumero.pCd_cmi; rNfDev.Ds_cmi = rCmi.Ds_cmi; rNfDev.Tp_duplicata = rCmi.Tp_duplicata; rNfDev.Ds_tpduplicata = rCmi.ds_tpduplicata; } } else { throw new Exception("Obrigatorio informar numero da nota fiscal."); } } if (rNfDev.Nr_notafiscal.HasValue) { CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.existeNumeroNota(rNfDev.Nr_notafiscal.ToString(), rNfDev.Nr_serie, rNfDev.Cd_empresa, rNfDev.Cd_clifor, string.Empty, rNfDev.Tp_nota, null); if (rFat != null) { if (rFat.St_registro.Trim().ToUpper().Equals("C")) { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" + "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" + "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" + "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão."); } else { throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se econtra ativa.\r\n" + "Não é permitido gerar nota fiscal com mesmo numero."); } } } //Item da nota fiscal CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item rItemDev = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item(); rItemDev.Cd_empresa = rPedAplic.Cd_empresa; rItemDev.Cd_produto = rPedAplic.Cd_produto; rItemDev.Cd_local = rPedAplic.Cd_local; rItemDev.Cd_condfiscal_produto = rPedAplic.Cd_condfiscal_produto; rItemDev.Cd_unidade = rPedAplic.Cd_unidade; rItemDev.Cd_unidEst = rPedAplic.Cd_unidade_estoque; rItemDev.Nr_pedido = rPedAplic.Nr_pedido.Value; rItemDev.Id_pedidoitem = rPedAplic.Id_pedidoitem; rItemDev.Quantidade = lTaxas.Sum(v => v.Ps_Taxa); rItemDev.Quantidade_estoque = rItemDev.Quantidade; rItemDev.Vl_subtotal = lTaxas.Sum(v => v.Ps_Taxa) * rPedAplic.Vl_unitario; rItemDev.Vl_subtotal_estoque = rItemDev.Vl_subtotal; rItemDev.Vl_unitario = rPedAplic.Vl_unitario; //Procurar cfop do item CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null; if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNfDev.Cd_movimentacaostring, rPedAplic.Cd_condfiscal_produto, rPedAplic.Cd_uf_clifor.Trim().Equals("99") ? "I" : rPedAplic.Cd_uf_clifor.Trim().Equals(rPedAplic.Cd_uf_empresa.Trim()) ? "D" : "F", (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa), (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor), rNfDev.Tp_movimento, rNfDev.Cd_condfiscal_clifor, rNfDev.Cd_empresa, ref rCfop, null)) { rItemDev.Cd_cfop = rCfop.CD_CFOP; rItemDev.Ds_cfop = rCfop.DS_CFOP; rItemDev.St_bonificacao = rCfop.St_bonificacaobool; } else { throw new Exception("Não existe CFOP " + (rPedAplic.Cd_uf_clifor.Trim().Equals("99") ? "internacional" : rPedAplic.Cd_uf_clifor.Trim().Equals(rPedAplic.Cd_uf_empresa.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNfDev.Cd_movimentacaostring + " condição fiscal do produto " + rPedAplic.Cd_condfiscal_produto); } //Procurar Impostos Estaduais para o Item string vObsFiscal = string.Empty; CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rNfDev.Cd_empresa, (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa), (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor), rNfDev.Cd_movimentacaostring, rNfDev.Tp_movimento, rNfDev.Cd_condfiscal_clifor, rItemDev.Cd_condfiscal_produto, rItemDev.Vl_subtotal, rItemDev.Quantidade, ref vObsFiscal, rNfDev.Dt_emissao, rItemDev.Cd_produto, rNfDev.Tp_nota, rNfDev.Nr_serie, null); if (lImpUf.Exists(v => v.Imposto.St_ICMS)) { CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItemDev); rNfDev.Obsfiscal += vObsFiscal.Trim(); } else if (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.ObrigImformarICMS(rItemDev.Cd_produto, rNfDev.Nr_serie, null)) { throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" + "Tipo Movimento: " + rNfDev.Tipo_movimento.Trim() + "\r\n" + "Movimentação: " + rNfDev.Cd_movimentacao.ToString() + "\r\n" + "Cond. Fiscal Clifor: " + rNfDev.Cd_condfiscal_clifor.Trim() + "\r\n" + "Cond. Fiscal Produto: " + rItemDev.Cd_condfiscal_produto.Trim() + "\r\n" + "UF Origem: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Uf_clifor.Trim() : rNfDev.Uf_empresa.Trim()) + "\r\n" + "UF Destino: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Uf_empresa.Trim() : rNfDev.Uf_clifor.Trim())); } //Procurar impostos sobre os itens da nota fiscal de destino CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherOutrosImpostos( CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNfDev.Cd_condfiscal_clifor, rItemDev.Cd_condfiscal_produto, rNfDev.Cd_movimentacaostring, rNfDev.Tp_movimento, rNfDev.Tp_pessoa, rNfDev.Cd_empresa, rNfDev.Nr_serie, rNfDev.Cd_clifor, rItemDev.Cd_unidEst, rNfDev.Dt_emissao, rItemDev.Quantidade, rItemDev.Vl_subtotal, rNfDev.Tp_nota, string.Empty, null), rItemDev, rNfDev.Tp_movimento); rNfDev.ItensNota.Add(rItemDev); return(rNfDev); } else { throw new Exception("Não existe configuração fiscal para o pedido Nº " + rPedAplic.Nr_pedidostring); } }
public static string Gravar(TRegistro_Devolucao val, CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParc, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Devolucao qtb_dev = new TCD_Devolucao(); try { if (banco == null) { st_transacao = qtb_dev.CriarBanco_Dados(true); } else { qtb_dev.Banco_Dados = banco; } decimal tot_devolver = Math.Round(val.lItens.Sum(p => p.Qtd_devolver * (p.Vl_subtotalliquido / p.Quantidade)), 2); TList_DevolucaoFIN lDevFin = new TList_DevolucaoFIN(); if (lParc?.Count > 0) { foreach (CamadaDados.Financeiro.Duplicata.TRegistro_LanParcela p in lParc) { if (tot_devolver > decimal.Zero) { lDevFin.Add(new TRegistro_DevolucaoFIN() { Nr_lancto = p.Nr_lancto, Cd_parcela = p.Cd_parcela, Vl_devolvido = tot_devolver < p.cVl_atual ? tot_devolver : p.cVl_atual }); tot_devolver -= tot_devolver < p.cVl_atual ? tot_devolver : p.cVl_atual; } else { break; } } } if (tot_devolver > decimal.Zero) { //Buscar Config Adto CamadaDados.Financeiro.Cadastros.TList_ConfigAdto lCfgAdto = CamadaNegocio.Financeiro.Cadastros.TCN_CadConfigAdto.Buscar(val.Cd_empresa, string.Empty, string.Empty, string.Empty, string.Empty, 1, string.Empty, qtb_dev.Banco_Dados); if (lCfgAdto.Count.Equals(0)) { throw new Exception("Não existe configuração adiantamento para gerar credito."); } //Gerar Credito do valor devolvido CamadaDados.Financeiro.Adiantamento.TRegistro_LanAdiantamento rAdto = new CamadaDados.Financeiro.Adiantamento.TRegistro_LanAdiantamento(); rAdto.Cd_clifor = val.Cd_clifor; rAdto.Cd_empresa = val.Cd_empresa; //Buscar endereco object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" } }, "a.cd_endereco"); rAdto.CD_Endereco = obj == null ? string.Empty : obj.ToString(); rAdto.Ds_adto = "CREDITO RECEBIDO DEVOLUÇÃO VENDA"; rAdto.Tp_movimento = "R"; rAdto.Dt_lancto = val.Dt_devolucao; rAdto.Vl_adto = tot_devolver; rAdto.ST_ADTO = "A"; rAdto.TP_Lancto = "T";//Frente Caixa CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamento.Gravar(rAdto, qtb_dev.Banco_Dados); //Quitar adiantamento rAdto.List_Caixa.Add(new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_ContaGer = lCfgAdto[0].Cd_contagerDEV_CV, Cd_Empresa = val.Cd_empresa, Cd_Historico = lCfgAdto[0].Cd_historico_ADTO_R, Cd_LanctoCaixa = decimal.Zero, ComplHistorico = "CREDITO RECEBIDO DEVOLUÇÃO VENDA", Dt_lancto = val.Dt_devolucao, Login = Utils.Parametros.pubLogin, Nr_Docto = "DEVPDV", St_Estorno = "N", St_Titulo = "N", Vl_PAGAR = decimal.Zero, Vl_RECEBER = rAdto.Vl_adto, NM_Clifor = val.Nm_clifor }); CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamentoXCaixa.Quitar_Adiantamento(rAdto, qtb_dev.Banco_Dados); val.Id_adto = rAdto.Id_adto; //Dar saida do valor do credito para não duplicar o valor string ret = CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa( new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_ContaGer = lCfgAdto[0].Cd_contagerDEV_CV, Cd_Empresa = val.Cd_empresa, Cd_Historico = lCfgAdto[0].Cd_historicoDEV_Venda, Cd_LanctoCaixa = decimal.Zero, ComplHistorico = "DEVOLUÇÃO VENDA", Dt_lancto = val.Dt_devolucao, Login = Utils.Parametros.pubLogin, Nr_Docto = "DEVPDV", St_Estorno = "N", St_Titulo = "N", Vl_PAGAR = rAdto.Vl_adto, Vl_RECEBER = decimal.Zero, NM_Clifor = val.Nm_clifor }, qtb_dev.Banco_Dados); val.Cd_contager = lCfgAdto[0].Cd_contagerDEV_CV; val.Cd_lanctocaixastr = CamadaDados.TDataQuery.getPubVariavel(ret, "@P_CD_LANCTOCAIXA"); } //Gravar devolucao val.Id_devolucaostr = CamadaDados.TDataQuery.getPubVariavel(qtb_dev.Gravar(val), "@P_ID_DEVOLUCAO"); lDevFin.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_devolucao = val.Id_devolucao; TCN_DevolucaoFIN.Gravar(p, qtb_dev.Banco_Dados); }); //Gravar Itens Devolvidos val.lItens.ForEach(p => { decimal vl_unit = decimal.Zero; //Buscar Vl.Unitario object objVl_unit = new TCD_LanEstoque(qtb_dev.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_PDV_CupomFiscal_Item_X_Estoque x " + "where a.Id_LanctoEstoque = x.Id_LanctoEstoque " + "and a.cd_empresa = x.cd_empresa " + "and a.cd_produto = x.cd_produto " + "and x.id_lancto = " + p.Id_lanctovenda.ToString() + " " + "and x.id_cupom = " + p.Id_vendarapida.ToString() + " " + "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " + "and x.cd_produto = '" + p.Cd_produto.Trim() + "')" } }, "a.vl_unitario"); if (objVl_unit == null || string.IsNullOrEmpty(objVl_unit.ToString())) { vl_unit = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(val.Cd_empresa, p.Cd_produto, qtb_dev.Banco_Dados); } else { vl_unit = decimal.Parse(objVl_unit.ToString()); } //dar entrada novamente no estoque string id_lanctoestoque = CamadaDados.TDataQuery.getPubVariavel( TCN_LanEstoque.GravarEstoque( new TRegistro_LanEstoque() { Cd_empresa = val.Cd_empresa, Cd_produto = p.Cd_produto, Cd_local = p.Cd_local, Dt_lancto = val.Dt_devolucao, Tp_movimento = "E", Qtd_entrada = p.Qtd_devolver, Qtd_saida = decimal.Zero, Vl_unitario = vl_unit, Vl_subtotal = vl_unit, Tp_lancto = "L", St_registro = "A", Ds_observacao = "DEVOLUCAO VENDA FRENTE CAIXA Nº" + p.Id_vendarapida.Value.ToString() }, qtb_dev.Banco_Dados), "@@P_ID_LANCTOESTOQUE"); //gravar itens devolvidos TCN_ItensDevolvidos.Gravar(new TRegistro_ItensDevolvidos() { Cd_empresa = val.Cd_empresa, Id_devolucao = val.Id_devolucao, Id_lancto = p.Id_lanctovenda, Id_cupom = p.Id_vendarapida, Cd_produto = p.Cd_produto, Id_lanctoestoquestr = id_lanctoestoque }, qtb_dev.Banco_Dados); //Grade Produto p.lGrade.ForEach(v => { if (v.Vl_mov > decimal.Zero) { TCN_GradeEstoque.Gravar( new TRegistro_GradeEstoque { Cd_empresa = p.Cd_empresa, Cd_produto = p.Cd_produto, Id_lanctoestoque = decimal.Parse(id_lanctoestoque), Id_caracteristica = v.Id_caracteristica, Id_item = v.Id_item, quantidade = v.Vl_mov }, qtb_dev.Banco_Dados); } }); }); //Reprocessar Comissão new TCD_VendaRapida_Item(qtb_dev.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.id_vendarapida", vOperador = "=", vVL_Busca = val.lItens[0].Id_vendarapida.ToString() }, new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" } }, 0, string.Empty, string.Empty).ForEach(p => PDV.TCN_VendaRapida_Item.ProcessarComissao(p, qtb_dev.Banco_Dados)); if (val.lItens.Count > 0) { //Recalcular Pontos Fidelidade new CamadaDados.Faturamento.Fidelizacao.TCD_PontosFidelidade(qtb_dev.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.id_cupom", vOperador = "=", vVL_Busca = val.lItens[0].Id_vendarapida.ToString() } }, 0, string.Empty, string.Empty).ForEach(x => { System.Collections.Hashtable hs = new System.Collections.Hashtable(3); hs.Add("@P_CD_EMPRESA", x.Cd_empresa); hs.Add("@P_ID_CUPOM", x.Id_cupomstr); hs.Add("@P_QTD_DEVOLVER", val.lItens.Sum(p => p.Qtd_devolver * (x.Qt_pontos / p.Quantidade))); qtb_dev.executarSql("update TB_FAT_PontosFidelidade set QT_Pontos = QT_Pontos - @P_QTD_DEVOLVER" + " where cd_empresa = @P_CD_EMPRESA" + " and id_cupom = @P_ID_CUPOM", hs); }); //Recalcular Resgate new CamadaDados.Faturamento.Fidelizacao.TCD_ResgatePontos(qtb_dev.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.id_cupom", vOperador = "=", vVL_Busca = val.lItens[0].Id_vendarapida.ToString() } }, 0, string.Empty).ForEach(x => { System.Collections.Hashtable hs = new System.Collections.Hashtable(4); hs.Add("@P_CD_EMPRESA", x.Cd_empresa); hs.Add("@P_ID_CUPOM", x.Id_cupomstr); hs.Add("@P_ID_PONTO", x.Id_pontostr); hs.Add("@P_QTD_DEVOLVER", val.lItens.Sum(p => p.Qtd_devolver * (x.Qt_pontos / p.Quantidade))); qtb_dev.executarSql("update TB_FAT_ResgatePontos set QT_Pontos = QT_Pontos - @P_QTD_DEVOLVER" + " where cd_empresa = @P_CD_EMPRESA" + " and id_cupom = @P_ID_CUPOM" + " and id_ponto = @P_ID_PONTO", hs); }); } if (st_transacao) { qtb_dev.Banco_Dados.Commit_Tran(); } return(val.Id_devolucaostr); } catch (Exception ex) { if (st_transacao) { qtb_dev.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar devolução:" + ex.Message.Trim()); } finally { if (st_transacao) { qtb_dev.deletarBanco_Dados(); } } }
public static void GerarTransferencia(CamadaDados.Graos.TRegistro_Transferencia rTransf) { rTransf.Reg_Clifor_Destino = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rTransf.Transf_X_Contrato_Destino[0].CD_Clifor, null); rTransf.Reg_Clifor_Origem = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rTransf.Transf_X_Contrato_Origem[0].CD_Clifor, null); using (TFLanCompDevol_NF fCompDevol = new TFLanCompDevol_NF()) { fCompDevol.Cd_empresa = rTransf.Transf_X_Contrato_Origem[0].CD_Empresa; fCompDevol.Nr_pedido = rTransf.Transf_X_Contrato_Origem[0].Nr_pedido.ToString(); fCompDevol.Cd_produto = rTransf.Transf_X_Contrato_Origem[0].Cd_produto; fCompDevol.Cd_clifor = rTransf.Transf_X_Contrato_Origem[0].CD_Clifor; fCompDevol.Tp_operacao = "D"; fCompDevol.Tp_movimento = "E"; fCompDevol.Quantidade = rTransf.QTD_Transf; fCompDevol.Valor = rTransf.VL_Sub_Total_Origem; if (fCompDevol.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rTransf.Complemento_Devolucao = fCompDevol.ListaCompDev; #region Nota Fiscal Origem //Buscar registro contrato de origem rTransf.Contrato_Origem = CamadaNegocio.Graos.TCN_CadContrato.BuscarContrato(string.Empty, rTransf.Transf_X_Contrato_Origem[0].NR_Contrato.ToString(), string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, null)[0]; rTransf.rNfOrigem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento(); CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lSerieOrigem = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rTransf.Transf_X_Contrato_Origem[0].Nr_pedido.ToString() + ")" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'DF'" //Devolução Fiscal, não movimenta estoque } }, 1, string.Empty); if (lSerieOrigem.Count > 0) { rTransf.rNfOrigem.Nr_serie = lSerieOrigem[0].Nr_serie; rTransf.rNfOrigem.Ds_serienf = lSerieOrigem[0].Ds_serienf; rTransf.rNfOrigem.Cd_modelo = lSerieOrigem[0].Cd_modelo; rTransf.rNfOrigem.Cd_movimentacao = lSerieOrigem[0].Cd_movto; rTransf.rNfOrigem.Cd_cmi = lSerieOrigem[0].Cd_cmi; rTransf.rNfOrigem.Tp_movimento = "S"; rTransf.rNfOrigem.Tp_nota = "P"; rTransf.rNfOrigem.Dt_emissao = rTransf.DT_Lancto; rTransf.rNfOrigem.Dt_saient = rTransf.DT_Lancto; using (TFNumero_Nota Numero_Nota = new TFNumero_Nota()) { Numero_Nota.Text = "Dados Nota Fiscal Devolução"; Numero_Nota.pCd_empresa = rTransf.Transf_X_Contrato_Origem[0].CD_Empresa; Numero_Nota.pNm_empresa = rTransf.Transf_X_Contrato_Origem[0].NM_Empresa; Numero_Nota.pCd_clifor = rTransf.Transf_X_Contrato_Origem[0].CD_Clifor; Numero_Nota.pNm_clifor = rTransf.Transf_X_Contrato_Origem[0].NM_Clifor; Numero_Nota.pNr_serie = lSerieOrigem[0].Nr_serie; Numero_Nota.pDs_serie = lSerieOrigem[0].Ds_serienf; Numero_Nota.pCd_modelo = lSerieOrigem[0].Cd_modelo; Numero_Nota.pTp_movimento = "S"; Numero_Nota.pTp_nota = "P"; Numero_Nota.pDt_emissao = rTransf.DT_Lancto; Numero_Nota.pDt_saient = rTransf.DT_Lancto; Numero_Nota.pSt_sequenciaauto = lSerieOrigem[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); Numero_Nota.pTp_pessoa = rTransf.Reg_Clifor_Origem.Tp_pessoa; Numero_Nota.pCd_movto = rTransf.rNfOrigem.Cd_movimentacaostring; Numero_Nota.pCd_cmi = rTransf.rNfOrigem.Cd_cmistring; //Buscar insc. estadual origem object obj_inscorigem = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rTransf.Contrato_Origem.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + rTransf.Contrato_Origem.Cd_endereco.Trim() + "'" } }, "a.insc_estadual"); if (obj_inscorigem != null) { Numero_Nota.pInsc_estadual = obj_inscorigem.ToString(); } if (Numero_Nota.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rTransf.rNfOrigem.Nr_serie = Numero_Nota.pNr_serie; rTransf.rNfOrigem.Cd_modelo = Numero_Nota.pCd_modelo; rTransf.rNfOrigem.Tp_movimento = Numero_Nota.pTp_movimento; rTransf.rNfOrigem.Tp_nota = Numero_Nota.pTp_nota; rTransf.rNfOrigem.Dt_emissao = Numero_Nota.pDt_emissao; rTransf.rNfOrigem.Dt_saient = Numero_Nota.pDt_saient; rTransf.rNfOrigem.St_sequenciaauto = Numero_Nota.pSt_sequenciaauto;; rTransf.rNfOrigem.Obsfiscal = Numero_Nota.pDs_obsfiscal; rTransf.rNfOrigem.Dadosadicionais = Numero_Nota.pDs_dadosadic; rTransf.rNfOrigem.Chave_acesso_nfe = Numero_Nota.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(Numero_Nota.pNr_notafiscal)) { rTransf.rNfOrigem.Nr_notafiscal = decimal.Parse(Numero_Nota.pNr_notafiscal); } else { rTransf.rNfOrigem.Nr_notafiscal = null; } if (rTransf.rNfOrigem.Cd_cmistring.Trim() != Numero_Nota.pCd_cmi.Trim()) { CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(Numero_Nota.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rTransf.rNfOrigem.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rTransf.rNfOrigem.Cd_cmistring = Numero_Nota.pCd_cmi; rTransf.rNfOrigem.Ds_cmi = rCmi.Ds_cmi; rTransf.rNfOrigem.Tp_duplicata = rCmi.Tp_duplicata; rTransf.rNfOrigem.Ds_tpduplicata = rCmi.ds_tpduplicata; } } else { throw new Exception("Obrigatorio informar numero da nota fiscal de origem."); } } } else { throw new Exception("Não existe configuração fiscal de TRANSFERENCIA para o contrato de origem " + rTransf.Transf_X_Contrato_Origem[0].NR_Contrato.ToString() + "."); } #endregion #region Nota Fiscal Destino //Buscar pedido destino rTransf.Contrato_Destino = CamadaNegocio.Graos.TCN_CadContrato.BuscarContrato(string.Empty, rTransf.Transf_X_Contrato_Destino[0].Nr_contratostr, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, null)[0]; rTransf.rNfDestino = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento(); CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lSerieDestino = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rTransf.Transf_X_Contrato_Destino[0].Nr_pedido.ToString() + ")" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'TF'" } }, 1, string.Empty); if (lSerieDestino.Count > 0) { rTransf.rNfDestino.Nr_serie = lSerieDestino[0].Nr_serie; rTransf.rNfDestino.Ds_serienf = lSerieDestino[0].Ds_serienf; rTransf.rNfDestino.Cd_modelo = lSerieDestino[0].Cd_modelo; rTransf.rNfDestino.Cd_movimentacao = lSerieDestino[0].Cd_movto; rTransf.rNfDestino.Cd_cmi = lSerieDestino[0].Cd_cmi; rTransf.rNfDestino.Tp_movimento = "E"; rTransf.rNfDestino.Dt_emissao = rTransf.DT_Lancto; rTransf.rNfDestino.Dt_saient = rTransf.DT_Lancto; using (TFNumero_Nota Numero_Nota_Destino = new TFNumero_Nota()) { Numero_Nota_Destino.Text = "Dados Nota Fiscal Entrada"; Numero_Nota_Destino.pCd_empresa = rTransf.Transf_X_Contrato_Destino[0].CD_Empresa; Numero_Nota_Destino.pNm_empresa = rTransf.Transf_X_Contrato_Destino[0].NM_Empresa; Numero_Nota_Destino.pCd_clifor = rTransf.Transf_X_Contrato_Destino[0].CD_Clifor; Numero_Nota_Destino.pNm_clifor = rTransf.Transf_X_Contrato_Destino[0].NM_Clifor; Numero_Nota_Destino.pNr_serie = lSerieDestino[0].Nr_serie; Numero_Nota_Destino.pDs_serie = lSerieDestino[0].Ds_serienf; Numero_Nota_Destino.pCd_modelo = lSerieDestino[0].Cd_modelo; Numero_Nota_Destino.pTp_movimento = "E"; Numero_Nota_Destino.pDt_emissao = rTransf.DT_Lancto; Numero_Nota_Destino.pDt_saient = rTransf.DT_Lancto; Numero_Nota_Destino.pSt_sequenciaauto = lSerieDestino[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S"); Numero_Nota_Destino.pTp_pessoa = rTransf.Reg_Clifor_Destino.Tp_pessoa; Numero_Nota_Destino.pCd_movto = rTransf.rNfDestino.Cd_movimentacaostring; Numero_Nota_Destino.pCd_cmi = rTransf.rNfDestino.Cd_cmistring; //Buscar insc. estadual origem object obj_inscdestino = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rTransf.Contrato_Destino.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + rTransf.Contrato_Destino.Cd_endereco.Trim() + "'" } }, "a.insc_estadual"); if (obj_inscdestino != null) { Numero_Nota_Destino.pInsc_estadual = obj_inscdestino.ToString(); } Numero_Nota_Destino.pTp_nota = (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.validarST_Nota("E", Numero_Nota_Destino.pTp_pessoa, rTransf.Reg_Clifor_Destino.St_equiparado_pjbool, rTransf.Reg_Clifor_Destino.St_agropecuariabool).Equals(0) ? "P" : "T"); if (Numero_Nota_Destino.ShowDialog() == System.Windows.Forms.DialogResult.OK) { rTransf.rNfDestino.Nr_serie = Numero_Nota_Destino.pNr_serie; rTransf.rNfDestino.Cd_modelo = Numero_Nota_Destino.pCd_modelo; rTransf.rNfDestino.Tp_movimento = Numero_Nota_Destino.pTp_movimento; rTransf.rNfDestino.Tp_nota = Numero_Nota_Destino.pTp_nota; rTransf.rNfDestino.Dt_emissao = Numero_Nota_Destino.pDt_emissao; rTransf.rNfDestino.Dt_saient = Numero_Nota_Destino.pDt_saient; rTransf.rNfDestino.Obsfiscal = Numero_Nota_Destino.pDs_obsfiscal; rTransf.rNfDestino.Dadosadicionais = Numero_Nota_Destino.pDs_dadosadic; rTransf.rNfDestino.Chave_acesso_nfe = Numero_Nota_Destino.pChave_Acesso_NFe; if (!string.IsNullOrEmpty(Numero_Nota_Destino.pNr_notafiscal)) { rTransf.rNfDestino.Nr_notafiscal = decimal.Parse(Numero_Nota_Destino.pNr_notafiscal); } else { rTransf.rNfDestino.Nr_notafiscal = null; } rTransf.rNfDestino.St_sequenciaauto = Numero_Nota_Destino.pSt_sequenciaauto; if (rTransf.rNfDestino.Cd_cmistring.Trim() != Numero_Nota_Destino.pCd_cmi.Trim()) { CamadaDados.Fiscal.TRegistro_CadCMI rCmi = CamadaNegocio.Fiscal.TCN_CadCMI.Busca(Numero_Nota_Destino.pCd_cmi, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, false, false, false, null)[0]; rTransf.rNfDestino.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI() { St_compdevimposto = rCmi.St_compdevimposto, St_complementar = rCmi.St_complementar, St_devolucao = rCmi.St_devolucao, St_geraestoque = rCmi.St_geraestoque, St_mestra = rCmi.St_mestra, St_simplesremessa = rCmi.St_simplesremessa, St_retorno = rCmi.St_retorno }); rTransf.rNfDestino.Cd_cmistring = Numero_Nota_Destino.pCd_cmi; rTransf.rNfDestino.Ds_cmi = rCmi.Ds_cmi; rTransf.rNfDestino.Tp_duplicata = rCmi.Tp_duplicata; rTransf.rNfDestino.Ds_tpduplicata = rCmi.ds_tpduplicata; } } else { throw new Exception("Obrigatorio informar numero da nota fiscal de destino."); } } } else { throw new Exception("Não existe configuração fiscal NORMAL para o contrato de destino " + rTransf.Transf_X_Contrato_Destino[0].NR_Contrato.ToString() + "."); } #endregion rTransf.Duplicata_Origem = TProcessaDevAquisicao.Gera_Financeiro(rTransf.Transf_X_Contrato_Origem[0], rTransf.VL_Sub_Total_Origem, rTransf.DT_Lancto, "O"); rTransf.Duplicata_Destino = TProcessaDevAquisicao.Gera_Financeiro(rTransf.Transf_X_Contrato_Destino[0], rTransf.VL_Sub_Total_Destino, rTransf.DT_Lancto, "D"); if ((rTransf.Duplicata_Origem != null) && (rTransf.Duplicata_Destino != null)) { rTransf.Contrato_Origem.Pedido_Fiscal = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rTransf.Contrato_Origem.Nr_pedido.ToString() + ")" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'DF'" } }, 1, string.Empty); rTransf.Reg_Produto_Origem = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo(rTransf.Transf_X_Contrato_Origem[0].Cd_produto, null); rTransf.Reg_Empresa_Origem = CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(rTransf.Transf_X_Contrato_Origem[0].CD_Empresa, string.Empty, string.Empty, null)[0]; CamadaDados.Faturamento.Pedido.TList_Pedido List_Contrato_Destino = new CamadaDados.Faturamento.Pedido.TList_Pedido(); rTransf.Contrato_Destino.Pedido_Fiscal = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rTransf.Transf_X_Contrato_Destino[0].Nr_pedido.ToString() + ")" }, new TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'TF'" } }, 1, string.Empty); rTransf.Reg_Produto_Destino = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo(rTransf.Transf_X_Contrato_Destino[0].Cd_produto, null); rTransf.Reg_Empresa_Destino = CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(rTransf.Transf_X_Contrato_Destino[0].CD_Empresa, string.Empty, string.Empty, null)[0]; } else { throw new Exception("Verifique os dados das Duplicatas."); } } else { throw new Exception("Obrigatório informar as notas a serem Devolvidas."); } } }
private void TFReceberConvenio_Load(object sender, EventArgs e) { ShapeGrid.RestoreShape(this, dataGridDefault1); ShapeGrid.RestoreShape(this, dataGridDefault2); ShapeGrid.RestoreShape(this, gPortador); this.Icon = ResourcesUtils.TecnoAliance_ICO; this.pDados.set_FormatZero(); cd_clifor.Text = Cd_clifor; nm_clifor.Text = Nm_clifor; cd_endereco.Text = Cd_endereco; object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + cd_clifor.Text.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + cd_endereco.Text.Trim() + "'" } }, "a.ds_endereco"); if (obj != null) { ds_endereco.Text = obj.ToString(); } //Buscar listagem de convenios do cliente bsConvenio.DataSource = lConv; bsVenda.DataSource = lItemVenda; bsCombustivel.DataSource = lVenda; tot_outrasvenda.Value = lItemVenda.Sum(p => p.Vl_subtotalliquido); total_receber.Value = tot_liquido.Value + tot_outrasvenda.Value; //Buscar duplicatas vencidas obj = new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + lConv[0].Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + cd_clifor.Text.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.tp_mov", vOperador = "=", vVL_Busca = "'R'" }, new TpBusca() { vNM_Campo = "isnull(dup.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new TpBusca() { vNM_Campo = "CONVERT(datetime, floor(convert(decimal(30,10), DATEADD(day, isnull(c.diascarenciadebvencto, 0), a.DT_Vencto))))", vOperador = "<", vVL_Busca = "convert(datetime, floor(convert(decimal(30,10), getdate())))" } }, "isnull(sum(a.Vl_Atual), 0)"); if (obj != null) { vl_dupvencidas.Value = decimal.Parse(obj.ToString()); } if ((!string.IsNullOrEmpty(this.pplaca)) && (this.pplaca.Trim() != "-")) { placa.Text = this.pplaca; placa.Enabled = !this.St_placacadastrada; bb_placa.Enabled = !this.St_placacadastrada; } }
private void bbBuscar_Click(object sender, EventArgs e) { if (bsDespesas.Current != null) { if (panelDados2.validarCampoObrigatorio()) { if (tp_pagamento.SelectedIndex.Equals(0) && string.IsNullOrWhiteSpace(cd_fornecedor.Text)) { MessageBox.Show("Obrigatório informar fornecedor para tipo de pagamento selecionado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_fornecedor.Focus(); return; } else if (tp_pagamento.SelectedIndex.Equals(1) && string.IsNullOrWhiteSpace(cd_funcionario.Text)) { MessageBox.Show("Obrigatório informar funcionário para tipo de pagamento selecionado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_funcionario.Focus(); return; } (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Cd_empresa = vCd_Empresa; (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Id_orcamentostr = vId_Orcamento; (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_versaostr = vNr_Versao; //Buscar config abast CamadaDados.Empreendimento.Cadastro.TList_CadCFGEmpreendimento lCfg = CamadaNegocio.Empreendimento.Cadastro.TCN_CadCFGEmpreendimento.Busca((bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Cd_empresa, string.Empty, null); if (lCfg.Count > 0) { if (string.IsNullOrEmpty(lCfg[0].tp_dup)) { MessageBox.Show("Não existe Tp.duplicata na CFG.empreendimento cadastrada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } else { MessageBox.Show("Não existe CFG.empreendimento cadastrado para a empresa informada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Despesa de funcionário com abatimento de adiantamento if (tp_pagamento.SelectedIndex.Equals(1)) { //Buscar conf. adiantamento CamadaDados.Financeiro.Cadastros.TList_ConfigAdto lCnfAdto = CamadaNegocio.Financeiro.Cadastros.TCN_CadConfigAdto.Buscar(vCd_Empresa, string.Empty, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); if (lCnfAdto.Count.Equals(0)) { MessageBox.Show("Não existe CFG.adiantamento cadastrado para a empresa informada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata rDup = new CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata(); rDup.Cd_empresa = vCd_Empresa; rDup.Cd_clifor = cd_funcionario.Text; object lEndClifor = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rDup.Cd_clifor.Trim() + "'" } }, "a.cd_endereco"); if (!lEndClifor.Equals(null)) { rDup.Cd_endereco = lEndClifor.ToString().Trim(); } rDup.Tp_docto = 2; //Duplicata rDup.Tp_duplicata = "01"; rDup.Tp_mov = lCnfAdto[0].Tp_mov_ADTO_C; rDup.Cd_historico = rDup.Cd_historico_Dup = vCd_Historico = lCnfAdto[0].Cd_historico_ADTO_C; rDup.Cd_portador = lCnfAdto[0].CD_Portador; rDup.Dt_emissao = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao; rDup.Vl_documento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado; rDup.Nr_docto = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_docto; DataTable rCond = new CamadaDados.Financeiro.Cadastros.TCD_CadCondPgto().Buscar(null, 1); rDup.Cd_condpgto = rCond.Rows[0].ItemArray[0].ToString(); rDup.Cd_moeda = rCond.Rows[0].ItemArray[5].ToString(); rDup.Cd_juro = rCond.Rows[0].ItemArray[9].ToString(); rDup.Qt_parcelas = 0; DataTable cd_contager = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().Buscar(null, 1); if (cd_contager != null) { rDup.Cd_contager = cd_contager.Rows[0].ItemArray[0].ToString(); } rDup.Parcelas.Add(new CamadaDados.Financeiro.Duplicata.TRegistro_LanParcela() { Vl_parcela = rDup.Vl_documento, Dt_vencto = rDup.Dt_emissao, Cd_parcela = 1 }); rDup.lCred.AddRange(CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamento.Buscar(string.Empty, rDup.Cd_empresa, rDup.Cd_clifor, string.Empty, "'C'", string.Empty, decimal.Zero, string.Empty, string.Empty, decimal.Zero, decimal.Zero, false, false, true, string.Empty, false, false, string.Empty, string.Empty, 0, string.Empty, null)); if (rDup.lCred.Count.Equals(0)) { MessageBox.Show("Funcionário não possui adiantamento quitado para efetuar o débito de saldo.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Validar saldo a devolver do funcionário rDup.lCred.ForEach(p => { if (rDup.Vl_documento <= p.Vl_total_devolver) { rDup.cVl_adiantamento = rDup.Vl_documento; } }); if (rDup.cVl_adiantamento.Equals(0)) { MessageBox.Show("Crédito do funcionário é menor do que o valor da despesa."); return; } (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).rDuplicata = rDup; } else { //Procedimento para despesa da empresa using (Financeiro.TFLanDuplicata fDup = new Financeiro.TFLanDuplicata()) { fDup.vCd_empresa = vCd_Empresa; fDup.vNm_empresa = vNm_empresa; fDup.vCd_clifor = tp_pagamento.SelectedIndex.Equals(1) ? cd_funcionario.Text : cd_fornecedor.Text; fDup.vNm_clifor = tp_pagamento.SelectedIndex.Equals(1) ? nm_funcionario.Text : nm_fornecedor.Text; //Buscar endereco CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(fDup.vCd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null); if (lEnd.Count > 0) { fDup.vCd_endereco = lEnd[0].Cd_endereco; fDup.vDs_endereco = lEnd[0].Ds_endereco; } if (lCfg.Count > 0) { if (string.IsNullOrEmpty(lCfg[0].tp_dup)) { MessageBox.Show("Não existe Tp.duplicata na CFG.empreendimento cadastrada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } fDup.vTp_docto = lCfg[0].tp_docto; fDup.vDs_tpdocto = lCfg[0].ds_docto; fDup.vTp_duplicata = string.Empty; fDup.vDs_tpduplicata = string.Empty; fDup.vTp_mov = "P"; fDup.vDt_emissao = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucaostr; fDup.vVl_documento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado; fDup.vNr_docto = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_docto; fDup.St_bloquearccusto = true; if (fDup.ShowDialog() == DialogResult.OK) { if (fDup.dsDuplicata.Count > 0) { (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).rDuplicata = fDup.dsDuplicata.Current as CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata; } vCd_Historico = fDup.vCd_historico; } } else { MessageBox.Show("Não existe configuração frota para lançar duplicata!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("CRESULTADO_EMPRESA", vCd_Empresa, null).Trim().ToUpper().Equals("S")) { //Verificar se historico possui centro resultado cadastrado object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadHistorico().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_historico", vOperador = "=", vVL_Busca = "'" + vCd_Historico.Trim() + "'" } }, "a.cd_centroresult"); if (obj == null ? false : !string.IsNullOrEmpty(obj.ToString())) { (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).lCCusto.Add( new CamadaDados.Financeiro.CCustoLan.TRegistro_LanCCustoLancto() { Cd_empresa = vCd_Empresa, Cd_centroresult = obj.ToString(), Vl_lancto = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado, Dt_lancto = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao, Tp_registro = "A" }); } else { using (Financeiro.TFRateioCResultado fRateio = new Financeiro.TFRateioCResultado()) { fRateio.vVl_Documento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado; fRateio.Tp_mov = "P"; fRateio.Dt_movimento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao; if (fRateio.ShowDialog() == DialogResult.OK) { (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).lCCusto = fRateio.lCResultado; } else { return; } } } } try { CamadaNegocio.Empreendimento.TCN_ExecDespesas.Gravar(bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas, null); MessageBox.Show("Despesa gravada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.OK; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "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(); }
public static CamadaDados.Faturamento.Pedido.TRegistro_Pedido ProcessarPedido(List <CamadaDados.Faturamento.CompraAvulsa.TRegistro_CompraAvulsa> lCompra, string Cd_empresa, string Cd_clifor) { if ((lCompra != null) && (!string.IsNullOrEmpty(Cd_empresa)) && (!string.IsNullOrEmpty(Cd_clifor))) { //Buscar moeda padrao string moeda = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_String_Empresa("CD_MOEDA_PADRAO", Cd_empresa); if (string.IsNullOrEmpty(moeda)) { throw new Exception("Não existe moeda padrão configurada para a empresa " + Cd_empresa); } //Buscar Endereco clifor object obj_end = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + Cd_clifor.Trim() + "'" } }, "a.cd_endereco"); if (obj_end == null) { throw new Exception("Cliente " + Cd_clifor + " não possui endereço cadastrado."); } //Buscar config do romaneio de compra CamadaDados.Faturamento.Cadastros.TList_CfgCompraAvulsa lCfg = CamadaNegocio.Faturamento.Cadastros.TCN_CfgCompraAvulsa.Buscar(Cd_empresa, null); if (lCfg.Count < 1) { throw new Exception("Não existe configuração romaneio de compra para a empresa " + Cd_empresa); } //Criar objeto pedido CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido(); rPed.CD_Empresa = Cd_empresa; rPed.CD_Clifor = Cd_clifor; rPed.CD_Endereco = obj_end.ToString(); rPed.Cd_moeda = moeda; rPed.CFG_Pedido = lCfg[0].Cfg_pedido; rPed.DT_Pedido = CamadaDados.UtilData.Data_Servidor(); rPed.TP_Movimento = "E"; //Pedido de saida rPed.ST_Pedido = "F"; //Pedido fechado rPed.ST_Registro = "F"; //Pedido fechado //Montar itens do pedido lCompra.ForEach(p => //Buscar itens da compra CamadaNegocio.Faturamento.CompraAvulsa.TCN_Compra_Itens.Buscar(p.Cd_empresa, p.Id_comprastr, null).ForEach(v => { //Verificar se existe item no pedido if (rPed.Pedido_Itens.Exists(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim()))) { rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Quantidade += v.Quantidade; rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_subtotal += v.Vl_subtotal; rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_descCupom += v.Vl_desconto; rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).lItensCompra.Add(v); } else { rPed.Pedido_Itens.Add(new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item() { Cd_Empresa = v.Cd_empresa, Cd_local = v.Cd_local, Cd_produto = v.Cd_produto, Ds_produto = v.Ds_produto, Cd_unidade_est = v.Cd_unidade, Cd_unidade_valor = string.Empty, Quantidade = v.Quantidade, Vl_unitario = v.Vl_unitario, Vl_subtotal = v.Vl_subtotal, Vl_descCupom = v.Vl_desconto, lItensCompra = new CamadaDados.Faturamento.CompraAvulsa.TList_Compra_Itens() { v } }); } }) ); rPed.Pedido_Itens.ForEach(p => { p.Cd_unidade_valor = p.Cd_unidade_est; p.Vl_juro_fin = p.Vl_juroCupom; p.Vl_desc = p.Vl_descCupom; }); return(rPed); } else { return(null); } }
public static string AlterarUnidPagadora(TRegistro_CartaFrete val, TObjetoBanco banco) { bool st_transacao = false; TCD_CartaFrete qtb_cf = new TCD_CartaFrete(); try { if (banco == null) { st_transacao = qtb_cf.CriarBanco_Dados(true); } else { qtb_cf.Banco_Dados = banco; } //Buscar Endereco CD.Unidade Pagadora object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco(qtb_cf.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_unidpagadora.Trim() + "'" } }, "a.cd_endereco"); if (obj != null) { val.Cd_endunidpagadora = obj.ToString(); } //Verificar se DUPLICATA ESTA AGRUPADA if (new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.nr_lancto", vOperador = "=", vVL_Busca = val.Nr_lanctostr }, new Utils.TpBusca() { vNM_Campo = "a.vl_agrupado", vOperador = ">", vVL_Busca = "0" } }, "1") != null) { throw new Exception("Carta frete possui duplicata agrupada!"); } //Verificar se PARCELA ESTA LIQUIDADA if (new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.nr_lancto", vOperador = "=", vVL_Busca = val.Nr_lanctostr }, new Utils.TpBusca() { vNM_Campo = "a.vl_liquidado", vOperador = ">", vVL_Busca = "0" } }, "1") != null) { throw new Exception("Carta frete possui parcela liquidada!"); } qtb_cf.Gravar(val); //Buscar Duplicata qtb_cf.executarSql("update TB_FIN_Duplicata set CD_Clifor = '" + val.Cd_unidpagadora.Trim() + "', " + "CD_Endereco = '" + val.Cd_endunidpagadora.Trim() + "', DT_Alt = GETDATE() " + "where CD_Empresa = '" + val.Cd_empresa.Trim() + "' " + "and Nr_Lancto = " + val.Nr_lanctostr, null); if (st_transacao) { qtb_cf.Banco_Dados.Commit_Tran(); } return(val.Id_cartafretestr); } catch (Exception ex) { if (st_transacao) { qtb_cf.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar carta frete: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_cf.deletarBanco_Dados(); } } }
public static CamadaDados.Faturamento.Pedido.TRegistro_Pedido ProcessarPedido(List <CamadaDados.Faturamento.PDV.TRegistro_NFCe> lCupom, string Cd_empresa, string Cd_cliente) { if ((lCupom != null) && (!string.IsNullOrEmpty(Cd_empresa)) && (!string.IsNullOrEmpty(Cd_cliente))) { //Buscar moeda padrao string moeda = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_String_Empresa("CD_MOEDA_PADRAO", Cd_empresa); if (string.IsNullOrEmpty(moeda)) { throw new Exception("Não existe moeda padrão configurada para a empresa " + Cd_empresa); } //Buscar Endereco clifor object obj_end = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + Cd_cliente.Trim() + "'" } }, "a.cd_endereco"); if (obj_end == null) { throw new Exception("Cliente " + Cd_cliente + " não possui endereço cadastrado."); } //Buscar Configuracao cupom CamadaDados.Faturamento.Cadastros.TList_CFGCupomFiscal lCfgCupom = CamadaNegocio.Faturamento.Cadastros.TCN_CFGCupomFiscal.Buscar(Cd_empresa, null); if (lCfgCupom.Count < 1) { throw new Exception("Não existe configuração cupom fiscal para a empresa " + Cd_empresa); } if (string.IsNullOrEmpty(lCfgCupom[0].Cfg_pedidovinculado)) { throw new Exception("Não existe tipo pedido vinculado configurado para a empresa " + Cd_empresa); } //Criar objeto pedido CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido(); rPed.CD_Empresa = Cd_empresa; rPed.CD_Clifor = Cd_cliente; rPed.CD_Endereco = obj_end.ToString(); rPed.Cd_moeda = moeda; rPed.CFG_Pedido = lCfgCupom[0].Cfg_pedidovinculado; rPed.DT_Pedido = CamadaDados.UtilData.Data_Servidor(); rPed.TP_Movimento = "S"; //Pedido de saida rPed.ST_Pedido = "F"; //Pedido fechado rPed.ST_Registro = "F"; //Pedido fechado //Montar itens do pedido lCupom.ForEach(p => { //Buscar itens do cupom p.lItem = CamadaNegocio.Faturamento.PDV.TCN_NFCe_Item.Buscar(p.Id_nfcestr, p.Cd_empresa, string.Empty, null); p.lItem.ForEach(v => { //Verificar se existe item no pedido if (rPed.Pedido_Itens.Exists(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())) && (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("AGRUPAR_ITENS_IGUAIS_NF_DIRETA", p.Cd_empresa, null) == "S")) { rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Quantidade += v.Quantidade; rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_subtotal += v.Vl_subtotal; rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_descCupom += v.Vl_desconto; rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_juroCupom += v.Vl_acrescimo; rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_unitario = Math.Round(rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_subtotal / rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Quantidade, 7); } else { rPed.Pedido_Itens.Add(new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item() { Cd_Empresa = p.Cd_empresa, Cd_produto = v.Cd_produto, Ds_produto = v.Ds_produto, Cd_condfiscal_produto = v.Cd_condfiscal_produto, Cd_unidade_est = v.Cd_unidade, Cd_unidade_valor = string.Empty, Quantidade = v.Quantidade, Vl_unitario = v.Vl_unitario, Vl_subtotal = v.Vl_subtotal, Vl_descCupom = v.Vl_desconto, Vl_juroCupom = v.Vl_acrescimo }); } }); }); rPed.Pedido_Itens.ForEach(p => { p.Cd_unidade_valor = p.Cd_unidade_est; p.Vl_juro_fin = p.Vl_juroCupom; p.Vl_desc = p.Vl_descCupom; }); return(rPed); } else { return(null); } }
private void ImprimirReduzido(TRegistro_PreVenda val, string porta, string Tp_impressora) { //Buscar dados da empresa CamadaDados.Diversos.TList_CadEmpresa lEmpresa = CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(val.Cd_empresa, string.Empty, string.Empty, null); if (lEmpresa.Count < 1) { throw new Exception("Não foi possivel localizar empresa " + val.Cd_empresa); } if (!string.IsNullOrEmpty(Tp_impressora)) { PDV.TGerenciarImpNaoFiscal.IniciarPorta(porta); try { StringBuilder imp = new StringBuilder(); imp.AppendLine(" PRÉ-VENDA N: " + val.Id_prevendastr + " " + val.Dt_emissaostr); imp.AppendLine(" ========================================="); imp.AppendLine(" DADOS EMPRESA "); imp.AppendLine(" ========================================="); imp.AppendLine(" " + lEmpresa[0].Nm_empresa.Trim().ToUpper()); imp.AppendLine(" " + lEmpresa[0].Ds_endereco.Trim().ToUpper() + "," + lEmpresa[0].rEndereco.Numero); imp.AppendLine(" " + lEmpresa[0].rEndereco.Bairro.Trim().ToUpper()); imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" DADOS CLIENTE "); imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" " + val.Cd_clifor.Trim() + "-" + val.Nm_clifor.Trim().ToUpper()); //Buscar clifor config object obj_clifor = new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" } }, "a.cd_clifor"); if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor))) { //Buscar dados cliente CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(val.Cd_clifor, null); if (!string.IsNullOrEmpty(rCliente.Nm_fantasia)) { imp.Append(" " + rCliente.Nm_fantasia.Trim().ToUpper()); } if (rCfg.St_impcpfcnpjbool) { if ((!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero())) || (!string.IsNullOrEmpty(rCliente.Nr_cpf.SoNumero()))) { imp.AppendLine(" CNPJ/CPF: " + (!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero()) ? rCliente.Nr_cgc : rCliente.Nr_cpf)); } } } imp.Append(" " + val.Ds_endereco.Trim().ToUpper()); if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor))) { //Buscar Endereco do cliente CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEndereco = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + val.Cd_endereco.Trim() + "'" } }, 0, string.Empty); if (lEndereco.Count > 0) { if (!string.IsNullOrEmpty(lEndereco[0].Numero)) { imp.AppendLine(", " + lEndereco[0].Numero.Trim().ToUpper()); } if (!string.IsNullOrEmpty(lEndereco[0].Bairro)) { imp.AppendLine(" " + lEndereco[0].Bairro.Trim().ToUpper()); } if (!string.IsNullOrEmpty(lEndereco[0].DS_Cidade)) { imp.AppendLine(" " + lEndereco[0].DS_Cidade.Trim().ToUpper() + " - " + lEndereco[0].UF); } if (!string.IsNullOrEmpty(lEndereco[0].Fone.SoNumero())) { imp.AppendLine(" " + lEndereco[0].Fone.Trim().ToUpper() + (!string.IsNullOrEmpty(lEndereco[0].Celular.SoNumero()) ? "/" + lEndereco[0].Celular.Trim().ToUpper() : string.Empty)); } if (!string.IsNullOrEmpty(lEndereco[0].Cep.SoNumero())) { imp.AppendLine(" CEP: " + lEndereco[0].Cep); } if (!string.IsNullOrEmpty(lEndereco[0].Proximo)) { imp.AppendLine(" " + lEndereco[0].Proximo.Trim().ToUpper()); } } } else { imp.AppendLine(); imp.AppendLine(); } if (!string.IsNullOrEmpty(val.Nm_vendedor)) { imp.AppendLine((" VENDEDOR: " + val.Nm_vendedor.Trim()).FormatStringDireita(42, ' ')); } imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" PRODUTO QTD VAL.UNIT SUBTOTAL"); imp.AppendLine(" -----------------------------------------"); val.lItens.ForEach(p => { imp.AppendLine(" " + (p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim().ToUpper())); imp.Append(p.Quantidade.ToString("N3", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(13, ' ') + "x"); imp.Append(p.Vl_unitario.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(14, ' ')); imp.Append(p.Vl_subtotal.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(10, ' ')); imp.AppendLine(); if (p.Vl_desconto > decimal.Zero) { imp.AppendLine(" DESCONTO: " + p.Vl_desconto.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } if (p.Vl_acrescimo > decimal.Zero) { imp.AppendLine(" ACRESCIMO: " + p.Vl_acrescimo.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } if (p.Vl_juro_fin > decimal.Zero) { imp.AppendLine(" JURO FIN.: " + p.Vl_juro_fin.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } }); imp.Append(" -----------------------------------------------"); imp.Append(" ACRESCIMOS JUROS FIN. FRETE DESCONTO LIQUIDO"); imp.Append(val.lItens.Sum(p => p.Vl_acrescimo).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(12, ' ')); imp.Append(val.lItens.Sum(p => p.Vl_juro_fin).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(11, ' ')); imp.Append(val.lItens.Sum(p => p.Vl_frete).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(7, ' ')); imp.Append(val.lItens.Sum(p => p.Vl_desconto).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' ')); imp.AppendLine(val.lItens.Sum(p => p.Vl_liquido).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' ')); imp.AppendLine(" -------------------------------------------"); if (!string.IsNullOrEmpty(val.Cd_portador)) { imp.AppendLine(" FORMA PGTO : " + val.Cd_portador.Trim() + "-" + val.Ds_portador.Trim()); } //Buscar Parcelas TList_PreVenda_DT_Vencto lParc = CamadaNegocio.Faturamento.PDV.TCN_PreVenda_DT_Vencto.Buscar(val.Id_prevendastr, val.Cd_empresa, null); if (lParc.Count > 0) { imp.AppendLine(" COND.PGTO : " + val.Cd_condPgto.Trim() + "-" + val.Ds_condPgto.Trim()); imp.AppendLine(" VENCIMENTO VALOR "); lParc.OrderBy(p => p.Dt_vencto).ToList().ForEach(p => imp.AppendLine(" " + p.Dt_vencto.ToString("dd/MM/yyyy").FormatStringDireita(20, ' ') + p.Vl_parcela.ToString("C2", new System.Globalization.CultureInfo("pt-BR")))); imp.AppendLine(); imp.AppendLine(); } imp.AppendLine(); imp.AppendLine(); imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" Cliente "); imp.AppendLine(); imp.AppendLine(); //Imprimir observacao cupom if (!string.IsNullOrEmpty(val.Ds_observacao)) { string obs = val.Ds_observacao.Trim(); imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" OBSERVAÇÕES "); imp.AppendLine(" -----------------------------------------"); while (true) { if (obs.Length <= 40) { imp.AppendLine(" " + obs); break; } else { imp.AppendLine(" " + obs.Substring(0, 40)); obs = obs.Remove(0, 40); } } } imp.AppendLine(" -----------------------------------------"); imp.AppendLine(" Este recibo nao tem valor Fiscal "); imp.AppendLine(); imp.AppendLine(); imp.AppendLine(); imp.AppendLine(); imp.AppendLine(); PDV.TGerenciarImpNaoFiscal.Texto(imp.ToString()); PDV.TGerenciarImpNaoFiscal.Guilhotina(); } catch (Exception ex) { MessageBox.Show("Erro: " + ex.Message.Trim()); } finally { PDV.TGerenciarImpNaoFiscal.FecharPorta(); } } else { System.IO.FileInfo f = null; System.IO.StreamWriter w = null; f = new System.IO.FileInfo(System.IO.Path.GetTempPath() + System.IO.Path.DirectorySeparatorChar + "Orcamento.txt"); w = f.CreateText(); try { w.WriteLine(" PRÉ-VENDA N: " + val.Id_prevendastr + " " + val.Dt_emissaostr); w.WriteLine(" ========================================="); w.WriteLine(" DADOS EMPRESA "); w.WriteLine(" ========================================="); w.WriteLine(" " + lEmpresa[0].Nm_empresa.Trim().ToUpper()); w.WriteLine(" " + lEmpresa[0].Ds_endereco.Trim().ToUpper() + "," + lEmpresa[0].rEndereco.Numero); w.WriteLine(" " + lEmpresa[0].rEndereco.Bairro.Trim().ToUpper()); w.WriteLine(" -----------------------------------------"); w.WriteLine(" DADOS CLIENTE "); w.WriteLine(" -----------------------------------------"); w.WriteLine(" " + val.Cd_clifor.Trim() + "-" + val.Nm_clifor.Trim().ToUpper()); object obj_clifor = new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" } }, "a.cd_clifor"); if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor))) { //Buscar dados cliente CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(val.Cd_clifor, null); if (!string.IsNullOrEmpty(rCliente.Nm_fantasia)) { w.WriteLine(" " + rCliente.Nm_fantasia.Trim().ToUpper()); } if (rCfg.St_impcpfcnpjbool) { if ((!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero())) || (!string.IsNullOrEmpty(rCliente.Nr_cpf.SoNumero()))) { w.WriteLine(" CNPJ/CPF: " + (!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero()) ? rCliente.Nr_cgc : rCliente.Nr_cpf)); } } } w.Write(" " + val.Ds_endereco.Trim().ToUpper()); if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor))) { //Buscar Endereco do cliente CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEndereco = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + val.Cd_endereco.Trim() + "'" } }, 0, string.Empty); if (lEndereco.Count > 0) { if (!string.IsNullOrEmpty(lEndereco[0].Numero)) { w.WriteLine(", " + lEndereco[0].Numero.Trim().ToUpper()); } if (!string.IsNullOrEmpty(lEndereco[0].Bairro)) { w.WriteLine(" " + lEndereco[0].Bairro.Trim().ToUpper()); } if (!string.IsNullOrEmpty(lEndereco[0].DS_Cidade)) { w.WriteLine(" " + lEndereco[0].DS_Cidade.Trim().ToUpper() + " - " + lEndereco[0].UF); } if (!string.IsNullOrEmpty(lEndereco[0].Fone.SoNumero())) { w.WriteLine(" " + lEndereco[0].Fone.Trim().ToUpper() + (!string.IsNullOrEmpty(lEndereco[0].Celular.SoNumero()) ? "/" + lEndereco[0].Celular.Trim().ToUpper() : string.Empty)); } if (!string.IsNullOrEmpty(lEndereco[0].Cep.SoNumero())) { w.WriteLine(" CEP: " + lEndereco[0].Cep); } if (!string.IsNullOrEmpty(lEndereco[0].Proximo)) { w.WriteLine(" " + lEndereco[0].Proximo.Trim().ToUpper()); } } } else { w.WriteLine(); w.WriteLine(); } if (!string.IsNullOrEmpty(val.Nm_vendedor)) { w.WriteLine((" VENDEDOR: " + val.Nm_vendedor.Trim()).FormatStringDireita(42, ' ')); } w.WriteLine(" -----------------------------------------"); w.WriteLine(" PRODUTO QTD VAL.UNIT SUBTOTAL"); w.WriteLine(" -----------------------------------------"); val.lItens.ForEach(p => { w.WriteLine(" " + (p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim().ToUpper())); w.Write(p.Quantidade.ToString("N3", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(13, ' ') + "x"); w.Write(p.Vl_unitario.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(14, ' ')); w.Write(p.Vl_subtotal.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(10, ' ')); w.WriteLine(); if (p.Vl_desconto > decimal.Zero) { w.WriteLine(" DESCONTO: " + p.Vl_desconto.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } if (p.Vl_acrescimo > decimal.Zero) { w.WriteLine(" ACRESCIMO: " + p.Vl_acrescimo.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } if (p.Vl_juro_fin > decimal.Zero) { w.WriteLine(" JURO FIN.: " + p.Vl_juro_fin.ToString("N2", new System.Globalization.CultureInfo("en-US", true))); } }); w.WriteLine(" -----------------------------------------"); w.WriteLine(" ACRESCIMOS JUROS FIN. DESCONTO LIQUIDO "); w.Write(val.lItens.Sum(p => p.Vl_acrescimo).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(12, ' ')); w.Write(val.lItens.Sum(p => p.Vl_juro_fin).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(11, ' ')); w.Write(val.lItens.Sum(p => p.Vl_desconto).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' ')); w.WriteLine(val.lItens.Sum(p => p.Vl_liquido).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' ')); w.WriteLine(" -----------------------------------------"); if (!string.IsNullOrEmpty(val.Cd_portador)) { w.WriteLine(" FORMA PGTO : " + val.Cd_portador.Trim() + "-" + val.Ds_portador.Trim()); } //Buscar Parcelas TList_PreVenda_DT_Vencto lParc = CamadaNegocio.Faturamento.PDV.TCN_PreVenda_DT_Vencto.Buscar(val.Id_prevendastr, val.Cd_empresa, null); if (lParc.Count > 0) { w.WriteLine(" COND.PGTO : " + val.Cd_condPgto.Trim() + "-" + val.Ds_condPgto.Trim()); w.WriteLine(" VENCIMENTO VALOR "); lParc.OrderBy(p => p.Dt_vencto).ToList().ForEach(p => w.WriteLine(" " + p.Dt_vencto.ToString("dd/MM/yyyy").FormatStringDireita(20, ' ') + p.Vl_parcela.ToString("C2", new System.Globalization.CultureInfo("pt-BR")))); w.WriteLine(); w.WriteLine(); } w.WriteLine(); w.WriteLine(); w.WriteLine(" -----------------------------------------"); w.WriteLine(" Cliente "); w.WriteLine(); w.WriteLine(); //Imprimir observacao cupom if (!string.IsNullOrEmpty(val.Ds_observacao)) { string obs = val.Ds_observacao.Trim(); w.WriteLine("Observacoes".FormatStringDireita(42, '-')); while (true) { if (obs.Length <= 40) { w.WriteLine(" " + obs); break; } else { w.WriteLine(" " + obs.Substring(0, 40)); obs = obs.Remove(0, 40); } } } w.WriteLine(" -----------------------------------------"); w.WriteLine(" Este recibo nao tem valor Fiscal "); w.Write(Convert.ToChar(27)); w.Write(Convert.ToChar(109)); w.Flush(); decimal copias = CamadaNegocio.ConfigGer.TCN_CadParamGer.VlNumericoEmpresa("QTD_VIA_REC_ECF", val.Cd_empresa, null); if (copias.Equals(decimal.Zero)) { copias = 1; } for (int i = 0; i < copias; i++) { f.CopyTo(porta); } } catch (Exception ex) { throw new Exception("Erro na impressao: " + ex.Message.Trim()); } finally { w.Dispose(); f = null; } } }
private void InserirDespesas() { using (TFDespesasViagem fDesp = new TFDespesasViagem()) { if (fDesp.ShowDialog() == DialogResult.OK) { if (fDesp.rDespesas != null) { if (fDesp.rDespesas.Tp_pagamento.Trim().ToUpper().Equals("1")) { using (TFLanDuplicata fDup = new TFLanDuplicata()) { fDup.vCd_empresa = (bsViagem.Current as CamadaDados.Financeiro.Viagem.TRegistro_Viagem).Cd_empresa; fDup.vNm_empresa = (bsViagem.Current as CamadaDados.Financeiro.Viagem.TRegistro_Viagem).Nm_empresa; fDup.vCd_clifor = fDesp.vCD_Clifor; fDup.vNm_clifor = fDesp.rDespesas.Nm_fornecedor; //Buscar Endereço CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + fDesp.vCD_Clifor.Trim() + "'" } }, 1, string.Empty); if (lEnd.Count > 0) { fDup.vCd_endereco = lEnd[0].Cd_endereco; fDup.vDs_endereco = lEnd[0].Ds_endereco; } //fDup.vTp_docto = lCfg[0].Tp_doctostr; //fDup.vDs_tpdocto = lCfg[0].Ds_tpdocto; //fDup.vTp_duplicata = lCfg[0].Tp_duplicata; //fDup.vDs_tpduplicata = lCfg[0].Ds_tpduplicata; fDup.vTp_mov = "P"; //fDup.vCd_historico = lCfg[0].Cd_historico; //fDup.vDs_historico = lCfg[0].Ds_historico; fDup.vDt_emissao = fDesp.rDespesas.Dt_despesastr; fDup.vVl_documento = fDesp.rDespesas.Vl_subtotal; fDup.vNr_docto = fDesp.rDespesas.Nr_notafiscal; fDup.vSt_finPed = true; fDup.St_bloquearccusto = true;//Centro Resultado sera lancado pela despesa da viagem if (fDup.ShowDialog() == DialogResult.OK) { if (fDup.dsDuplicata.Count > 0) { fDesp.rDespesas.rDup = fDup.dsDuplicata.Current as CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata; } else { MessageBox.Show("Obrigatório gerar duplicata para incluir despesa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } else { MessageBox.Show("Obrigatório gerar duplicata para incluir despesa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("CRESULTADO_EMPRESA", (bsViagem.Current as CamadaDados.Financeiro.Viagem.TRegistro_Viagem).Cd_empresa, null).Trim().ToUpper().Equals("S")) { using (TFRateioCResultado fRateio = new TFRateioCResultado()) { fRateio.vVl_Documento = fDesp.rDespesas.Vl_subtotal; fRateio.Tp_mov = "P"; fRateio.Dt_movimento = fDesp.rDespesas.Dt_despesa; fRateio.ShowDialog(); fDesp.rDespesas.lCCusto = fRateio.lCResultado; } } (bsViagem.Current as CamadaDados.Financeiro.Viagem.TRegistro_Viagem).lDespesas.Add(fDesp.rDespesas); bsViagem.ResetCurrentItem(); } } } }