private static string GravarSaldoCarenciaTaxa(TRegistro_MovDeposito vMovDep, TRegistro_CadContrato vContrato, List <TRegistro_EstDeposito> lEstDeposito, TObjetoBanco banco) { string retorno = string.Empty; lEstDeposito.ForEach(p => { //Buscar lista de taxas configuradas para o contrato TCD_CadContratoTaxaDeposito qtb_taxa = new TCD_CadContratoTaxaDeposito(); qtb_taxa.Banco_Dados = banco; TList_CadContratoTaxaDeposito lTaxasContrato = new TCD_CadContratoTaxaDeposito(qtb_taxa.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.Nr_Contrato", vOperador = "=", vVL_Busca = vContrato.Nr_contrato.ToString() } }, 0, string.Empty); TList_SaldoCarenciaTaxa lSaldoCarencia = new TList_SaldoCarenciaTaxa(); lTaxasContrato.ForEach(v => { //Se for Entrada de Produtos em deposito if (p.Tp_Movimento.Trim().ToUpper().Equals("E")) { CalcularTaxasEntrada(p, v, vContrato, vMovDep, lSaldoCarencia, qtb_taxa.Banco_Dados); } else //EXPEDICAO { CalcularTaxasExpedicao(p, v, vContrato, vMovDep, lSaldoCarencia, qtb_taxa.Banco_Dados); } }); lSaldoCarencia.ForEach(i => new TCD_SaldoCarenciaTaxa(banco).Grava(i)); }); return(retorno); }
public static string DeletarContratoTaxaDeposito(TRegistro_CadContratoTaxaDeposito val, TObjetoBanco banco) { bool st_transacao = false; TCD_CadContratoTaxaDeposito qtb_ContratoTaxaDeposito = new TCD_CadContratoTaxaDeposito(); try { if (banco == null) { qtb_ContratoTaxaDeposito.CriarBanco_Dados(true); st_transacao = true; } else { qtb_ContratoTaxaDeposito.Banco_Dados = banco; } //Deletar Uf qtb_ContratoTaxaDeposito.DeletarContratoTaxaDeposito(val); if (st_transacao) { qtb_ContratoTaxaDeposito.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_ContratoTaxaDeposito.Banco_Dados.RollBack_Tran(); } throw new Exception(ex.Message); } finally { if (st_transacao) { qtb_ContratoTaxaDeposito.deletarBanco_Dados(); } } }
public static TList_TaxaDeposito CalcularTaxasExpedicaoPendentes(string Cd_empresa, string Nr_contrato, string Cd_produto, DateTime Dt_calctaxa, string Id_taxa) { //Buscar lista de taxas de expedicao configurada para o contrato TList_CadContratoTaxaDeposito lTaxasContrato = new TCD_CadContratoTaxaDeposito().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.nr_contrato", vOperador = "=", vVL_Busca = Nr_contrato }, new TpBusca() { vNM_Campo = "a.st_gerartxsomente", vOperador = "=", vVL_Busca = "'E'" }, new TpBusca() { vNM_Campo = "a.id_taxa", vOperador = "=", vVL_Busca = string.IsNullOrEmpty(Id_taxa) ? "a.id_taxa" : Id_taxa } }, 0, string.Empty); TList_TaxaDeposito lTaxaDeposito = new TList_TaxaDeposito(); lTaxasContrato.ForEach(p => { //Para cada taxa buscar saldo carencia List <TRegistro_ViewSaldoCarencia> SaldoCarencia = new TCD_SaldoCarenciaTaxa().BuscarSaldoCarencia(Cd_empresa, p.Id_taxastr, p.Nr_contratostr, Cd_produto); decimal tmpTotDiasExpirado = decimal.Zero; SaldoCarencia.ForEach(v => { tmpTotDiasExpirado = Dt_calctaxa.Subtract(v.DT_Saldo.Date).Subtract(TimeSpan.FromDays(Convert.ToDouble(p.Periodocarencia.ToString()))).Days; if (tmpTotDiasExpirado > 0) { //Buscar unidade do estoque object obj = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + Cd_produto.Trim() + "'" } }, "a.cd_unidade"); if (obj == null) { throw new Exception("Produto " + Cd_produto.Trim() + " sem unidade cadastrada."); } decimal QTD_Convertida = TCN_CadConvUnidade.ConvertUnid(obj.ToString(), p.Cd_unidadetaxa, v.Tot_Saldo, 3, null); decimal m = ((tmpTotDiasExpirado % p.Frequencia) > 0 ? 1 : 0); decimal t = (Math.Floor(tmpTotDiasExpirado / p.Frequencia) + m); decimal k = (p.Frequencia > 0 ? t : 1); lTaxaDeposito.Add(new TRegistro_TaxaDeposito() { Id_LanTaxa = 0, Nr_Contrato = p.Nr_contrato.Value, Cd_produto = Cd_produto, Id_Reg = p.Id_reg, Id_Taxa = p.Id_taxa.Value, Ds_taxa = p.Ds_taxa, Sigla_produto = p.Sg_unidadetaxa, DT_Lancto = v.DT_Saldo, Ps_Taxa = (p.Tp_taxa.Trim().ToUpper().Equals("P") ? Math.Round(v.Tot_Saldo * p.Valortaxa * k / 100, 0) : 0), Vl_Taxa = (p.Tp_taxa.Trim().ToUpper().Equals("V") ? QTD_Convertida * p.Valortaxa * k : 0), Tp_Lancto = "A", D_c = "D" }); } }); }); List <TRegistro_TaxaDeposito> lTaxa = lTaxaDeposito.OrderBy(p => p.DT_Lancto).ToList(); lTaxaDeposito.Clear(); lTaxa.ForEach(p => lTaxaDeposito.Add(p)); return(lTaxaDeposito); }