private void TotalizarNota() { if (bsNotaFiscal.Current != null) { vl_totalbasecalc.Value = TCN_LanFaturamento.CalcTotalBaseCalc(bsNotaFiscal.Current as TRegistro_LanFaturamento); vl_totalicms.Value = TCN_LanFaturamento.CalcTotalICMS(bsNotaFiscal.Current as TRegistro_LanFaturamento); vl_totalipi.Value = TCN_LanFaturamento.CalcTotalIPI(bsNotaFiscal.Current as TRegistro_LanFaturamento); vl_total_impcalc.Value = TCN_LanFaturamento.CalcTotalImpCalc(bsNotaFiscal.Current as TRegistro_LanFaturamento); vl_totalimpret.Value = TCN_LanFaturamento.CalcTotalImpRet(bsNotaFiscal.Current as TRegistro_LanFaturamento); vl_totalitens.Value = TCN_LanFaturamento.CalcTotalProdServ(bsNotaFiscal.Current as TRegistro_LanFaturamento); vl_totalnota.Value = TCN_LanFaturamento.CalcTotalNota(bsNotaFiscal.Current as TRegistro_LanFaturamento); } }
public static List <TRegistro_SaldoContratoGMO> processaFinanceiroGMO(string Nr_contrato, decimal id_LanctoGmo, TObjetoBanco banco) { //Buscar saldo pedido GMO List <TRegistro_SaldoContratoGMO> lSaldoContrato = new TCD_LanRoyaltiesGMO(banco).SelectSaldoContratoGMO( new TpBusca[] { new TpBusca() { vNM_Campo = "p.nr_contrato", vOperador = "=", vVL_Busca = Nr_contrato } }, 0); //Buscar Saldo NF GMO List <TRegistro_SaldoNFGMO> lSaldoNf = new TCD_LanRoyaltiesGMO(banco).SelectSaldoNFGMO( new TpBusca[] { new TpBusca() { vNM_Campo = "contrato.nr_contrato", vOperador = "=", vVL_Busca = Nr_contrato } }, 0); decimal pc_gmo_declarado = ConfigGer.TCN_CadParamGer.BuscaVlNumerico("PC_GMO_DECLARADO", banco); decimal pc_gmo_testado = ConfigGer.TCN_CadParamGer.BuscaVlNumerico("PC_GMO_TESTADO", banco); TList_RegLanLiquidacao liq = new TList_RegLanLiquidacao(); //credito/debito de todas as notas fiscais do pedido lSaldoContrato.ForEach(p => { if ((p.Saldo_debito - p.Saldo_credito) > 0) { //Credito/Debito da nota fiscal atual lSaldoNf.ForEach(v => { if ((v.Saldo_debito - v.Saldo_credito) > 0) { if (v.Tp_gmo.Trim().ToUpper().Equals("D") && pc_gmo_declarado.Equals(decimal.Zero)) { throw new Exception("Não existe configuração percentual de GMO declarado configurado.\r\n" + "Va em PARAMETROS->CONFIGURAÇÕES->CONFIGURAÇÕES GERAIS e configure o percentual GMO declarado."); } if (v.Tp_gmo.Trim().ToUpper().Equals("T") && pc_gmo_testado.Equals(decimal.Zero)) { throw new Exception("Não existe configuração percentual de GMO testado configurado.\r\n" + "Va em PARAMETROS->CONFIGURAÇÕES->CONFIGURAÇÕES GERAIS e configure o percentual GMO testado."); } decimal qtd_lancto = decimal.Zero; if ((p.Saldo_debito - p.Saldo_credito) >= (v.Saldo_debito - v.Saldo_credito)) { qtd_lancto = v.Saldo_debito - v.Saldo_credito; } else { qtd_lancto = p.Saldo_debito - p.Saldo_credito; } //Calcular impostos Retidos da Nota TList_RegLanFaturamento lNf = TCN_LanFaturamento.Busca(v.Cd_empresa, string.Empty, string.Empty, v.Nr_lanctofiscal.ToString(), string.Empty, string.Empty, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, false, string.Empty, string.Empty, string.Empty, 1, string.Empty, banco); decimal vl_liquidar = decimal.Zero; if (lNf.Count > 0) { //Buscar Item da Nota TList_RegLanFaturamento_Item lItem = TCN_LanFaturamento_Item.Busca(v.Cd_empresa, v.Nr_lanctofiscal.Value.ToString(), v.Id_nfitem.Value.ToString(), banco); if (lItem.Count > 0) { //Calcular Impostos Retidos TCN_LanFaturamento_Item.PreencherOutrosImpostos( TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(lNf[0].Cd_condfiscal_clifor, lItem[0].Cd_condfiscal_produto, lNf[0].Cd_movimentacaostring, lNf[0].Tp_movimento, lNf[0].Tp_pessoa, lNf[0].Cd_empresa, lNf[0].Nr_serie, lNf[0].Cd_clifor, lItem[0].Cd_unidEst, lNf[0].Dt_emissao, qtd_lancto, TCN_CadConvUnidade.ConvertUnid(p.Cd_unidade, p.Cd_unidade_valor, (qtd_lancto * v.Vl_unitario), 2, banco), lNf[0].Tp_nota, lNf[0].Cd_municipioexecservico, banco), lItem[0], lNf[0].Tp_movimento); lNf[0].ItensNota = lItem; } TCN_LanFaturamento.CalcTotalNota(lNf[0]); vl_liquidar = lNf[0].Vl_totalnota * ((v.Tp_gmo.Trim().ToUpper().Equals("D") ? pc_gmo_declarado : pc_gmo_testado) / 100); } else { //Valor liquidar vl_liquidar = TCN_CadConvUnidade.ConvertUnid(p.Cd_unidade, p.Cd_unidade_valor, (qtd_lancto * v.Vl_unitario), 2, banco) * ((v.Tp_gmo.Trim().ToUpper().Equals("D") ? pc_gmo_declarado : pc_gmo_testado) / 100); } //Liquidar duplicata liquidaDuplicatas(v, p, vl_liquidar, qtd_lancto, banco); } }); } }); return(lSaldoContrato); }