public static TList_RegLanParcela liquidaDuplicatas(TRegistro_SaldoNFGMO rSaldoNf, TRegistro_SaldoContratoGMO rSaldoPed, decimal vl_Liquidar, decimal qtdLancto, TObjetoBanco banco) { TList_RegLanParcela lParcelas = Financeiro.Duplicata.TCN_LanParcela.Busca(rSaldoNf.Cd_empresa, rSaldoNf.Nr_lanctoduplicata.Value, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 0, string.Empty, banco); TRegistro_LanLiquidacao liquid = new TRegistro_LanLiquidacao(); TList_Cad_ParamGMO lParamGMO = TCN_Cad_ParamGMO.Buscar(rSaldoNf.Cd_empresa, string.Empty, string.Empty, string.Empty, banco); if (lParamGMO.Count > 0) { lParcelas.ForEach(p => { liquid = new TRegistro_LanLiquidacao(); liquid.Cd_empresa = rSaldoNf.Cd_empresa; liquid.Nr_lancto = rSaldoNf.Nr_lanctoduplicata.Value; liquid.Cd_parcela = p.Cd_parcela; liquid.cVl_Atual = vl_Liquidar; liquid.Cd_contager = lParamGMO[0].Cd_contager; liquid.Cvl_aliquidar_padrao = vl_Liquidar; liquid.Nr_docto = p.Nr_docto; liquid.Ds_contaGer = lParamGMO[0].Ds_contager; liquid.Cd_portador = lParamGMO[0].Cd_portador; liquid.Ds_portador = lParamGMO[0].Ds_portador; liquid.Cd_historico = lParamGMO[0].Cd_historico_pgto; liquid.Ds_historico = lParamGMO[0].Ds_historico_pgto; liquid.Dt_Liquidacao = rSaldoNf.Dt_saient; liquid.Tp_mov = p.Tp_mov; liquid.Vl_parcela = p.Vl_parcela; liquid.Vl_atual = p.Vl_atual; liquid.Vl_difcamb_at = decimal.Zero; liquid.Vl_difcamb_pa = decimal.Zero; liquid.Vl_Liquidado = p.Vl_liquidado; liquid.Vl_liquidado_padrao = p.Vl_liquidado; liquid.Vl_DescontoBonus = decimal.Zero; liquid.Vl_JuroAcrescimo = decimal.Zero; liquid.st_registro = "A"; liquid.cVl_Nominal = decimal.Zero; liquid.cVl_Liquidado = p.Vl_liquidado; liquid.cVl_JuroTotal = decimal.Zero; liquid.cVl_DescontoTotal = decimal.Zero; Financeiro.Duplicata.TCN_LanLiquidacao.GravarLiquidacao(lParcelas, liquid, null, null, null, null, banco); //Cria registro para gravar lançamento de caixa. TRegistro_LanCaixa lCx = new TRegistro_LanCaixa(); lCx.Cd_ContaGer = lParamGMO[0].Cd_contager; lCx.Cd_LanctoCaixa = decimal.Zero; lCx.Cd_Empresa = lParamGMO[0].Cd_empresa; lCx.Cd_Historico = lParamGMO[0].Cd_historico_retencao; lCx.Vl_RECEBER = vl_Liquidar; lCx.Vl_PAGAR = decimal.Zero; lCx.Vl_Atual = decimal.Zero; lCx.Vl_Anterior = decimal.Zero; lCx.Nr_Docto = p.Nr_docto; lCx.Dt_lancto = rSaldoNf.Dt_saient; lCx.ComplHistorico = string.Empty; string vLanctoCx = Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa(lCx, banco); decimal lanctoCx = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(vLanctoCx, "@P_CD_LANCTOCAIXA")); if (liquid.Id_liquid.Equals(decimal.Zero) || lanctoCx.Equals(decimal.Zero)) { throw new Exception("Erro ao gravar Liquidação/Caixa "); } string credroy = Gravar(new TRegistro_LanRoyaltiesGMO() { CD_Produto = rSaldoPed.Cd_produto, DS_Observacao = "Crédito Retido GMO nota fiscal Número " + p.Nr_docto, Id_lanctoGMO = decimal.Zero, Nr_Contrato = rSaldoPed.Nr_contrato, QTD_Credito = qtdLancto, QTD_Debito = decimal.Zero, Tp_gmo = rSaldoPed.Tp_gmo, TP_Lancto = "N" }, banco); //Cria registro da retencao financeira TRegistro_Lan_RetencaoFinanceiraGMO lRGmo = new TRegistro_Lan_RetencaoFinanceiraGMO(); lRGmo.Id_Liquid = liquid.Id_liquid; lRGmo.Id_LanctoGMO = Convert.ToDecimal(credroy); lRGmo.Nr_Lancto = rSaldoNf.Nr_lanctoduplicata; lRGmo.Cd_ContaGer = lParamGMO[0].Cd_contager; lRGmo.Cd_Empresa = rSaldoNf.Cd_empresa; lRGmo.Cd_LanctoCaixa = lanctoCx; lRGmo.Cd_Parcela = p.Cd_parcela; TCN_Lan_RetencaoFinanceiraGMO.Gravar(lRGmo, banco); if ((rSaldoNf.Nr_lanctofiscal != null) && (rSaldoNf.Id_nfitem != null)) { TCN_Lan_NotaFiscalGMO.Gravar( new TRegistro_Lan_NotaFiscalGMO() { cd_Empresa = rSaldoNf.Cd_empresa, id_LanctoGmo = Convert.ToDecimal(credroy), id_NfItem = rSaldoNf.Id_nfitem, nr_LanctoFiscal = rSaldoNf.Nr_lanctofiscal }, banco); } }); } else { throw new Exception("Não existem parâmetros de GMO configurados para a empresa " + rSaldoNf.Cd_empresa.Trim()); } return(lParcelas); }
public static string DeletarLanRoyaltiesGMO(TRegistro_LanRoyaltiesGMO val, TObjetoBanco banco) { bool st_transacao = false; TCD_LanRoyaltiesGMO Qtb_LanRoyaltiesGMO = new TCD_LanRoyaltiesGMO(); try { if (banco == null) { Qtb_LanRoyaltiesGMO.CriarBanco_Dados(true); banco = Qtb_LanRoyaltiesGMO.Banco_Dados; st_transacao = true; } else { Qtb_LanRoyaltiesGMO.Banco_Dados = banco; } //Deletar Uf TList_Lan_RetencaoFinanceiraGMO lRgmo = TCN_Lan_RetencaoFinanceiraGMO.Buscar(val.Id_lanctoGMO.Value.ToString(), string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, banco); if (lRgmo.Count > 0) { TCN_Lan_RetencaoFinanceiraGMO.Deletar(lRgmo[0], banco); } TList_LanPesagemGMO lPsgGmo = TCN_LanPesagemGMO.Buscar(val.Id_lanctoGMO.Value.ToString(), string.Empty, string.Empty, string.Empty, banco); if (lPsgGmo.Count > 0) { TCN_LanPesagemGMO.Excluir(lPsgGmo[0], banco); } TList_Lan_NotaFiscalGMO lNfGmo = TCN_Lan_NotaFiscalGMO.Buscar(val.Id_lanctoGMO.Value.ToString(), string.Empty, string.Empty, string.Empty, banco); if (lNfGmo.Count > 0) { TCN_Lan_NotaFiscalGMO.Excluir(lNfGmo[0], banco); } Qtb_LanRoyaltiesGMO.Excluir(val); if (st_transacao) { Qtb_LanRoyaltiesGMO.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { Qtb_LanRoyaltiesGMO.Banco_Dados.RollBack_Tran(); } else { throw new Exception(ex.Message); } return(""); } finally { if (st_transacao) { Qtb_LanRoyaltiesGMO.deletarBanco_Dados(); } } }