Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
                }
            }
        }
Beispiel #3
0
        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);
        }