private void Gera_Faturamento() { try { if ((BS_Comissao != null) && (BS_Comissao.Count > 0)) { if ((BS_Fechamento_Comissao != null) && (BS_Fechamento_Comissao.Count > 0) && (g_Fechamento_Comissao.Rows.Count > 0)) { try { if (VL_Com_Liberada.Text.Trim() == "") { VL_Com_Liberada.Text = "0"; } if (Convert.ToDecimal(VL_Com_Liberada.Text) == 0) { throw new Exception("Não existe Valores Liberados para se Faturar!"); } } catch { throw new Exception("Problemas com o Valores Liberados para Faturar!"); } if (Existe_Empresas_Diferentes() == true) { throw new Exception("Você deve Faturar somente Comissões de E!"); } // Cria a Lista com os selecionados TList_Lan_Comissao List_Comissao = new TList_Lan_Comissao(); for (int i = 0; i < g_Fechamento_Comissao.SelectedRows.Count; i++) { TRegistro_Lan_Comissao Reg_Lan_Comissao = BS_Fechamento_Comissao[g_Fechamento_Comissao.SelectedRows[i].Index] as TRegistro_Lan_Comissao; List_Comissao.Add(Reg_Lan_Comissao); } TList_CadVendedor List_Vendedor = TCN_CadVendedor.Busca((BS_Fechamento_Comissao.Current as TRegistro_Lan_Comissao).CD_Vendedor.ToString(), "", "", "", "", "", "", "", "", "", ""); TRegistro_CadVendedor Reg_Vendedor = List_Vendedor[0]; if (List_Vendedor.Count == 0) { throw new Exception("Vendedor: " + (BS_Fechamento_Comissao.Current as TRegistro_Lan_Comissao).CD_Vendedor.ToString() + " - " + (BS_Fechamento_Comissao.Current as TRegistro_Lan_Comissao).NM_Vendedor + "não encontrado."); } if (List_Vendedor[0].CD_condpgto_comissao == "") { throw new Exception("Vendedor: " + (BS_Fechamento_Comissao.Current as TRegistro_Lan_Comissao).CD_Vendedor.ToString() + " - " + (BS_Fechamento_Comissao.Current as TRegistro_Lan_Comissao).NM_Vendedor + "\r\n sem condição de Pagamento configurada. Verifique cadastro de Vendedor."); } string Moeda_Padrao = TCN_CadParamGer.BuscaVlString("CD_MOEDA_PADRAO"); if (Moeda_Padrao == "") { throw new Exception("Moeda Padrão não encontrado. Verificar configurações Gerais"); } string Produto_Comissao = TCN_CadParamGer.BuscaVlString("CD_PRODUTO_COMISSAO"); if (Produto_Comissao == "") { throw new Exception("Produto Comissão não encontrado. Verificar configurações Gerais"); } TRegistro_CadProduto Reg_Produto = TCN_CadProduto.Busca_Produto_Codigo(Produto_Comissao); if ((Reg_Produto == null) || (Reg_Produto.CD_Unidade == "")) { throw new Exception("Unidade da Comissão não encontrado. Verificar configurações Gerais"); } string CFG_Pedido_Comissao = TCN_CadParamGer.BuscaVlString("CFG_Pedido_Comissao"); if (CFG_Pedido_Comissao == "") { throw new Exception("Configuração de Pedido de Comissão não encontrado. Verificar configurações Gerais"); } TRegistro_CadClifor Reg_Clifor_Vendedor = new TRegistro_CadClifor(); Reg_Clifor_Vendedor = TCN_CadClifor.Busca_Clifor_Codigo(List_Vendedor[0].Cd_clifor); TList_CadEmpresa List_Empresa = new TList_CadEmpresa(); TRegistro_CadEmpresa Reg_Empresa = new TRegistro_CadEmpresa(); List_Empresa = TCN_CadEmpresa.Busca((BS_Fechamento_Comissao.Current as TRegistro_Lan_Comissao).CD_Empresa, "", "", null); Reg_Empresa = List_Empresa[0]; TList_CadEndereco List_Endereco = new TList_CadEndereco(); TRegistro_CadEndereco Reg_Endereco = new TRegistro_CadEndereco(); List_Endereco = TCN_CadEndereco.Buscar(List_Vendedor[0].Cd_clifor, List_Vendedor[0].Cd_endereco, "", "", "", "", "", "", "", "", "", "", "", "", "", 0, null); Reg_Endereco = List_Endereco[0]; TList_RegLanDuplicata Duplicata = new TList_RegLanDuplicata(); Duplicata = Gera_Financeiro(CFG_Pedido_Comissao, List_Vendedor[0].CD_condpgto_comissao, Moeda_Padrao, Reg_Empresa, Reg_Clifor_Vendedor, Reg_Endereco); if (Duplicata == null) { throw new Exception("Por favor! \r\n - Verifique os dados das Duplicatas"); } decimal Total_Faturar = Convert.ToDecimal(VL_Com_Liberada.Text); bool Pode_Gravar = false; bool ST_SequenciaNF = false; decimal NR_Nota = 0; TCD_CadCFGPedidoFiscal Pedido_Fiscal = new TCD_CadCFGPedidoFiscal(); TpBusca[] vBusca = new TpBusca[0]; Array.Resize(ref vBusca, vBusca.Length + 1); vBusca[vBusca.Length - 1].vNM_Campo = "a.cfg_pedido"; vBusca[vBusca.Length - 1].vVL_Busca = "'" + CFG_Pedido_Comissao + "'"; vBusca[vBusca.Length - 1].vOperador = "="; Array.Resize(ref vBusca, vBusca.Length + 1); vBusca[vBusca.Length - 1].vNM_Campo = "a.TP_FISCAL"; vBusca[vBusca.Length - 1].vVL_Busca = "'N'"; vBusca[vBusca.Length - 1].vOperador = "="; DataTable DT_Pedido_Fiscal = Pedido_Fiscal.Buscar(vBusca, 0); if (DT_Pedido_Fiscal.Rows.Count > 0) { if (DT_Pedido_Fiscal.Rows[0]["nr_serie"].ToString().Trim() != string.Empty) { TList_CadSerieNF List_SerieNF = TCN_CadSerieNF.Busca(DT_Pedido_Fiscal.Rows[0]["nr_serie"].ToString().Trim(), string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, null); if (List_SerieNF.Count > 0) { if (List_SerieNF[0].ST_SequenciaAutoBool == false) { TFNumero_Nota Numero_Nota = new TFNumero_Nota(); Numero_Nota.pCd_empresa = Reg_Empresa.Cd_empresa; Numero_Nota.pNm_empresa = Reg_Empresa.Nm_empresa; Numero_Nota.pCd_clifor = Reg_Clifor_Vendedor.Cd_clifor; Numero_Nota.pNm_clifor = Reg_Clifor_Vendedor.Nm_clifor; Numero_Nota.pNr_serie = DT_Pedido_Fiscal.Rows[0]["nr_serie"].ToString().Trim(); Numero_Nota.pDs_serie = DT_Pedido_Fiscal.Rows[0]["ds_serie"].ToString().Trim(); Numero_Nota.pTp_nota = "P"; if (Numero_Nota.ShowDialog() == DialogResult.OK) { NR_Nota = Numero_Nota.pNr_notafiscal; Pode_Gravar = true; } else { Pode_Gravar = false; } } else { ST_SequenciaNF = true; Pode_Gravar = true; } } else { throw new Exception("A Configuração do Pedido:" + CFG_Pedido_Comissao + "não está correta. Vefrificar numero de série!"); } } } else { throw new Exception("A Configuração do Pedido:" + CFG_Pedido_Comissao + "não está correta"); } if (Pode_Gravar == true) { TCN_Lan_Fechamento_Comissao.Gera_Faturamento(List_Comissao, NR_Nota, ST_SequenciaNF, Duplicata, Reg_Vendedor, Moeda_Padrao, Produto_Comissao, Reg_Produto, CFG_Pedido_Comissao, Reg_Clifor_Vendedor, Reg_Empresa, Reg_Endereco, Total_Faturar, null); MessageBox.Show("Comissão Faturada com Sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); afterNovo(); } else { throw new Exception("De Alguma forma o processo foi cancelado!"); } } } } catch (Exception e) { MessageBox.Show("Erro: \r\n\r\n" + e.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { } }
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 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."); } } }