public static void DevolverEmbalagem(TRegistro_CadContrato rContrato, CamadaDados.Estoque.TRegistro_LanEstoque rEstoque, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Contrato_X_EstoqueEmbalagem qtb_cont = new TCD_Contrato_X_EstoqueEmbalagem(); try { if (banco == null) { st_transacao = qtb_cont.CriarBanco_Dados(true); } else { qtb_cont.Banco_Dados = banco; } if (rContrato == null) { throw new Exception("Não existe contrato informado para devolver embalagens."); } if (rEstoque == null) { throw new Exception("Não existe registro estoque informado para devolver embalagens."); } //Gravar Estoque CamadaNegocio.Estoque.TCN_LanEstoque.GravarEstoque(rEstoque, qtb_cont.Banco_Dados); //Gravar contrato x estoque Gravar(new TRegistro_Contrato_X_EstoqueEmbalagem() { Cd_empresa = rEstoque.Cd_empresa, Cd_produto = rEstoque.Cd_produto, Id_lanctoestoque = rEstoque.Id_lanctoestoque, Nr_contrato = rContrato.Nr_contrato.Value, Ds_observacao = rEstoque.Ds_observacao }, qtb_cont.Banco_Dados); if (st_transacao) { qtb_cont.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_cont.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro devolver embalagens: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_cont.deletarBanco_Dados(); } } }
public static string DeletarContrato(TRegistro_CadContrato val, TObjetoBanco banco) { bool st_transacao = false; TCD_CadContrato qtb_Contrato = new TCD_CadContrato(); try { if (banco == null) { st_transacao = qtb_Contrato.CriarBanco_Dados(true); } else { qtb_Contrato.Banco_Dados = banco; } //Deletar Contrato Headge val.lContrato_Headge.ForEach(p => TCN_CadContrato_Headge.DeletarContrato_Headge(p, qtb_Contrato.Banco_Dados)); val.lDelContrato_Headge.ForEach(p => TCN_CadContrato_Headge.DeletarContrato_Headge(p, qtb_Contrato.Banco_Dados)); //Deletar Taxa val.Taxas.ForEach(p => TCN_CadContratoTaxaDeposito.DeletarContratoTaxaDeposito(p, qtb_Contrato.Banco_Dados)); val.DelTaxas.ForEach(p => TCN_CadContratoTaxaDeposito.DeletarContratoTaxaDeposito(p, qtb_Contrato.Banco_Dados)); //Deletar desdobro especial val.lDesdobro.ForEach(p => TCN_Contrato_X_DesdEspecial.Excluir(p, qtb_Contrato.Banco_Dados)); val.lDesdobroDel.ForEach(p => TCN_Contrato_X_DesdEspecial.Excluir(p, qtb_Contrato.Banco_Dados)); //Cancelar lancamento estoque embalagem val.lEstoqueEmbalagem.ForEach(p => CamadaNegocio.Estoque.TCN_LanEstoque.DeletarEstoque( p, qtb_Contrato.Banco_Dados)); //Excluir contrato qtb_Contrato.Excluir(val); if (st_transacao) { qtb_Contrato.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_Contrato.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir contrato: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_Contrato.deletarBanco_Dados(); } } }
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 void AdiantamentoContrato(TRegistro_CadContrato val, TObjetoBanco banco) { if (val.rAdto == null) { throw new Exception("Não existe adiantamento informado para gravar."); } bool st_transacao = false; TCD_CadContrato qtb_contrato = new TCD_CadContrato(); try { if (banco == null) { st_transacao = qtb_contrato.CriarBanco_Dados(true); } else { qtb_contrato.Banco_Dados = banco; } TCN_Lan_Adto_Contrato.Gravar( new TRegistro_Adto_Contrato() { Nr_contrato = val.Nr_contrato, Id_adto = Convert.ToDecimal( CamadaDados.TDataQuery.getPubVariavel( CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamento.Gravar(val.rAdto, qtb_contrato.Banco_Dados), "@P_ID_ADTO")) }, qtb_contrato.Banco_Dados); if (st_transacao) { qtb_contrato.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_contrato.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar adiantamento contrato: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_contrato.deletarBanco_Dados(); } } }
public static void EncerrarContrato(TRegistro_CadContrato val, TObjetoBanco banco) { bool st_transacao = false; TCD_CadContrato qtb_contrato = new TCD_CadContrato(); try { if (banco == null) { st_transacao = qtb_contrato.CriarBanco_Dados(true); } else { qtb_contrato.Banco_Dados = banco; } val.Dt_encerramento = CamadaDados.UtilData.Data_Servidor(); val.St_registro = "E"; qtb_contrato.Gravar(val); if (st_transacao) { qtb_contrato.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_contrato.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro encerrar contrato: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_contrato.deletarBanco_Dados(); } } }
public static string AtivarContrato(TRegistro_CadContrato val, TObjetoBanco banco) { bool st_transacao = false; TCD_CadContrato qtb_contrato = new TCD_CadContrato(); try { if (banco == null) { st_transacao = qtb_contrato.CriarBanco_Dados(true); } else { qtb_contrato.Banco_Dados = banco; } val.St_registro = "A";//Ativo qtb_contrato.Gravar(val); if (st_transacao) { qtb_contrato.Banco_Dados.Commit_Tran(); } return(val.Nr_contrato.Value.ToString()); } catch (Exception ex) { if (st_transacao) { qtb_contrato.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro alterar contrato: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_contrato.deletarBanco_Dados(); } } }
private static void CalcularTaxasExpedicao(TRegistro_EstDeposito rEstDeposito, TRegistro_CadContratoTaxaDeposito rTaxa, TRegistro_CadContrato vContrato, TRegistro_MovDeposito vMovDep, TList_SaldoCarenciaTaxa lSaldoCarencia, TObjetoBanco banco) { decimal?vID_LanTaxa = null; List <TRegistro_ViewSaldoCarencia> SaldoCarencia = new TCD_SaldoCarenciaTaxa(banco).BuscarSaldoCarencia(vMovDep.CD_Empresa, rTaxa.Id_taxastr, rTaxa.Nr_contratostr, vMovDep.CD_Produto); decimal tmpSaldoExp = rEstDeposito.QTD_Saida; decimal tmpSaldoLan = decimal.Zero; decimal tmpTotDiasExpirado = decimal.Zero; foreach (TRegistro_ViewSaldoCarencia rSaldoCarencia in SaldoCarencia) { if (tmpSaldoExp > 0) { if (rSaldoCarencia.Tot_Saldo >= tmpSaldoExp) { tmpSaldoLan = tmpSaldoExp; } else { tmpSaldoLan = rSaldoCarencia.Tot_Saldo; } tmpTotDiasExpirado = rEstDeposito.DT_Lancto.Subtract(rSaldoCarencia.DT_Saldo.Date).Subtract(TimeSpan.FromDays(Convert.ToDouble(rTaxa.Periodocarencia.ToString()))).Days; decimal QTD_Convertida = TCN_CadConvUnidade.ConvertUnid(rEstDeposito.CD_Unidade, rTaxa.Cd_unidadetaxa, tmpSaldoLan, 3, banco); if ((tmpTotDiasExpirado > 0) && (rTaxa.St_gerartxsomente.Trim().ToUpper().Equals("R") ? "E" : "S").Equals(rEstDeposito.Tp_Movimento.Trim().ToUpper())) { decimal m = ((tmpTotDiasExpirado % rTaxa.Frequencia) > 0 ? 1 : 0); decimal t = (Math.Floor(tmpTotDiasExpirado / rTaxa.Frequencia) + m); decimal k = (rTaxa.Frequencia > 0 ? t : 1); vID_LanTaxa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel( TCN_LanTaxas_Deposito.Gravar(new TRegistro_TaxaDeposito() { Cd_empresa = rEstDeposito.CD_Empresa, Id_ticket = rEstDeposito.ID_Ticket, Tp_pesagem = rEstDeposito.Tp_Pesagem, Id_LanTaxa = 0, Nr_Contrato = rTaxa.Nr_contrato.Value, Cd_produto = vContrato.Cd_produto, Id_Reg = rTaxa.Id_reg, Id_Taxa = rTaxa.Id_taxa.Value, DT_Lancto = rEstDeposito.DT_Lancto, Ps_Taxa = (rTaxa.Tp_taxa.Trim().ToUpper().Equals("P") ? Math.Round(tmpSaldoLan * rTaxa.Valortaxa * k / 100, 0) : 0), Vl_Taxa = (rTaxa.Tp_taxa.Trim().ToUpper().Equals("V") ? QTD_Convertida * rTaxa.Valortaxa * k : 0), Tp_Lancto = "A", D_c = "D" }, banco), "@P_ID_LANTAXA")); } //Controlar saldo tmpSaldoExp -= tmpSaldoLan; rSaldoCarencia.Tot_Saldo -= tmpSaldoLan; lSaldoCarencia.Add(new TRegistro_SaldoCarenciaTaxa() { Id_Taxa = rTaxa.Id_taxa.Value, Id_Movto = vMovDep.Id_Movto, Id_LanTaxa = vID_LanTaxa, QTD_Lancto = tmpSaldoLan, DT_Saldo = rSaldoCarencia.DT_Saldo, ST_Carencia = "N" }); vID_LanTaxa = null; } else { break; } } }
private static void CalcularTaxasEntrada(TRegistro_EstDeposito rEstDeposito, TRegistro_CadContratoTaxaDeposito rTaxa, TRegistro_CadContrato vContrato, TRegistro_MovDeposito vMovDep, TList_SaldoCarenciaTaxa lSaldoCarencia, TObjetoBanco banco) { //Converter quantidade que esta entradando para unidade da taxa decimal QTD_Convertida = TCN_CadConvUnidade.ConvertUnid(rEstDeposito.CD_Unidade, rTaxa.Cd_unidadetaxa, rEstDeposito.QTD_Entrada, 3, banco); decimal?vID_LanTaxa = null; //se for uma taxa que somente sera cobrada com classificacao limitada por faixa if (!string.IsNullOrEmpty(rTaxa.Cd_tipoamostra)) { //se for um lancto por balanca/aplicacao testar os limites de classificacao para taxar ou nao if ((rEstDeposito.ID_Ticket > 0) && (!string.IsNullOrEmpty(rEstDeposito.CD_Empresa))) { rEstDeposito.Classif.ForEach(x => { if (rTaxa.Cd_tipoamostra.Trim().Equals(x.Cd_tipoamostra)) { if ((x.Pc_resultado_local >= rTaxa.Pc_result_maiorque) && (x.Pc_resultado_local <= rTaxa.Pc_result_menorque)) { if ((rTaxa.St_gerartxsomente.Trim().ToUpper().Equals("R") ? "E" : "S").Equals(rEstDeposito.Tp_Movimento.Trim().ToUpper())) { vID_LanTaxa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel( TCN_LanTaxas_Deposito.Gravar(new TRegistro_TaxaDeposito() { Cd_empresa = rEstDeposito.CD_Empresa, Id_ticket = rEstDeposito.ID_Ticket, Tp_pesagem = rEstDeposito.Tp_Pesagem, Id_LanTaxa = decimal.Zero, Nr_Contrato = rTaxa.Nr_contrato.Value, Cd_produto = vContrato.Cd_produto, Id_Reg = rTaxa.Id_reg, Id_Taxa = rTaxa.Id_taxa.Value, DT_Lancto = rEstDeposito.DT_Lancto, Ps_Taxa = (rTaxa.Tp_taxa.Trim().ToUpper().Equals("P") ? Math.Round(QTD_Convertida * rTaxa.Valortaxa / 100, 0) : 0), Vl_Taxa = (rTaxa.Tp_taxa.Trim().ToUpper().Equals("V") ? QTD_Convertida * rTaxa.Valortaxa : 0), Tp_Lancto = "A", D_c = "D" }, banco), "@P_ID_LANTAXA")); } } } }); } } else { if ((rTaxa.St_gerartxsomente.Trim().ToUpper().Equals("R") ? "E" : "S").Equals(rEstDeposito.Tp_Movimento.Trim().ToUpper())) { vID_LanTaxa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel( TCN_LanTaxas_Deposito.Gravar(new TRegistro_TaxaDeposito() { Cd_empresa = rEstDeposito.CD_Empresa, Id_ticket = rEstDeposito.ID_Ticket, Tp_pesagem = rEstDeposito.Tp_Pesagem, Id_LanTaxa = 0, Nr_Contrato = rTaxa.Nr_contrato.Value, Cd_produto = vContrato.Cd_produto, Id_Reg = rTaxa.Id_reg, Id_Taxa = rTaxa.Id_taxa.Value, DT_Lancto = rEstDeposito.DT_Lancto, Ps_Taxa = (rTaxa.Tp_taxa.Trim().ToUpper().Equals("P") ? Math.Round(QTD_Convertida * rTaxa.Valortaxa / 100, 0) : 0), Vl_Taxa = (rTaxa.Tp_taxa.Trim().ToUpper().Equals("V") ? QTD_Convertida * rTaxa.Valortaxa : 0), Tp_Lancto = "A", D_c = "D" }, banco), "@P_ID_LANTAXA")); } } if (!lSaldoCarencia.Exists(q => q.Id_Taxa.Equals(rTaxa.Id_taxa.Value) && q.Id_Movto.Equals(vMovDep.Id_Movto))) { lSaldoCarencia.Add(new TRegistro_SaldoCarenciaTaxa() { Id_Taxa = rTaxa.Id_taxa.Value, Id_Movto = vMovDep.Id_Movto, Id_LanTaxa = vID_LanTaxa, QTD_Lancto = rEstDeposito.QTD_Entrada, DT_Saldo = rEstDeposito.DT_Lancto, ST_Carencia = "N" }); } else if (vID_LanTaxa != null) { if (lSaldoCarencia.Exists(q => q.Id_Taxa.Equals(rTaxa.Id_taxa.Value) && q.Id_Movto.Equals(vMovDep.Id_Movto) && (q.Id_LanTaxa == null))) { lSaldoCarencia.Find(q => q.Id_Taxa.Equals(rTaxa.Id_taxa.Value) && q.Id_Movto.Equals(vMovDep.Id_Movto) && (q.Id_LanTaxa == null)).Id_LanTaxa = vID_LanTaxa; } } }
public static string GravarContrato(TRegistro_CadContrato val, TObjetoBanco banco) { bool st_transacao = false; TCD_CadContrato qtb_Contrato = new TCD_CadContrato(); try { if (banco == null) { st_transacao = qtb_Contrato.CriarBanco_Dados(true); } else { qtb_Contrato.Banco_Dados = banco; } string retorno = qtb_Contrato.Gravar(val); val.Nr_contrato = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_NR_CONTRATO")); //Deletar Contrato Headge val.lDelContrato_Headge.ForEach(p => TCN_CadContrato_Headge.DeletarContrato_Headge(p, qtb_Contrato.Banco_Dados)); //Gravar Contrato Headge val.lContrato_Headge.ForEach(p => { p.Nr_Contrato = val.Nr_contrato.Value; TCN_CadContrato_Headge.GravarContrato_Headge(p, qtb_Contrato.Banco_Dados); }); //Deletar Taxa val.DelTaxas.ForEach(p => TCN_CadContratoTaxaDeposito.DeletarContratoTaxaDeposito(p, qtb_Contrato.Banco_Dados)); //Gravar Taxa val.Taxas.ForEach(p => { p.Nr_contrato = val.Nr_contrato; TCN_CadContratoTaxaDeposito.GravarContratoTaxaDeposito(p, qtb_Contrato.Banco_Dados); }); //Excluir Desdobro Especial val.lDesdobroDel.ForEach(p => TCN_Contrato_X_DesdEspecial.Excluir(p, qtb_Contrato.Banco_Dados)); //Gravar Desdobro Especial val.lDesdobro.ForEach(p => { p.Nr_contrato = val.Nr_contrato; TCN_Contrato_X_DesdEspecial.Gravar(p, qtb_Contrato.Banco_Dados); }); if (st_transacao) { qtb_Contrato.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_Contrato.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar contrato: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_Contrato.deletarBanco_Dados(); } } }