public TRegistro_LanFat_ComplementoDevolucao() { id_compldev = null; id_compldevstr = string.Empty; Cd_empresa = string.Empty; Nm_empresa = string.Empty; Nr_lanctofiscal_origem = null; Id_nfitem_origem = null; Nr_lanctofiscal_destino = null; Id_nfitem_destino = null; tp_operacao = string.Empty; Qtd_lancto = decimal.Zero; Vl_lancto = decimal.Zero; Parcelas = new TList_RegLanParcela(); lSerie = new Producao.Producao.TList_SerieDevolvida(); }
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); }