Example #1
0
        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();
                }
            }
        }
Example #2
0
        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();
                }
            }
        }
Example #3
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);
        }
Example #4
0
        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();
                }
            }
        }
Example #5
0
        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();
                }
            }
        }
Example #6
0
        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();
                }
            }
        }
Example #7
0
        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;
                }
            }
        }
Example #8
0
        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;
                }
            }
        }
Example #9
0
        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();
                }
            }
        }