コード例 #1
0
        public static void ExcluirTaxasProvisionadas(List <TRegistro_TaxaDeposito> val, BancoDados.TObjetoBanco banco)
        {
            bool st_transacao            = false;
            TCD_LanTaxaDeposito qtb_taxa = new TCD_LanTaxaDeposito();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_taxa.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_taxa.Banco_Dados = banco;
                }
                val.ForEach(p =>
                {
                    //Verificar se a taxa esta faturada
                    TList_Taxa_X_PedidoItem lTxPed = TCN_Taxa_X_PedidoItem.Buscar(p.Id_LanTaxa.ToString(), string.Empty, qtb_taxa.Banco_Dados);
                    lTxPed.ForEach(v => TCN_Taxa_X_PedidoItem.Excluir(v, qtb_taxa.Banco_Dados));
                    Excluir(p, qtb_taxa.Banco_Dados);
                });
                if (st_transacao)
                {
                    qtb_taxa.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_taxa.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir taxas provisionadas: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_taxa.deletarBanco_Dados();
                }
            }
        }
コード例 #2
0
        public static string Excluir(TRegistro_TaxaDeposito val, BancoDados.TObjetoBanco banco)
        {
            bool st_transacao            = false;
            TCD_LanTaxaDeposito qtb_taxa = new TCD_LanTaxaDeposito();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_taxa.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_taxa.Banco_Dados = banco;
                }
                //Excluir taxa
                qtb_taxa.Excluir(val);
                if (st_transacao)
                {
                    qtb_taxa.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_taxa.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir taxa: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_taxa.deletarBanco_Dados();
                }
            }
        }
コード例 #3
0
        public static decimal FaturarTaxasContrato(CamadaDados.Balanca.TRegistro_PedidoAplicacao rPedAplic,
                                                   List <TRegistro_TaxaDeposito> lTaxas,
                                                   string Tp_taxa,
                                                   CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat,
                                                   BancoDados.TObjetoBanco banco)
        {
            bool st_transacao            = false;
            TCD_LanTaxaDeposito qtb_taxa = new TCD_LanTaxaDeposito();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_taxa.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_taxa.Banco_Dados = banco;
                }
                if (lTaxas.Count > 0)
                {
                    //Buscar configuracao para o tipo de taxa que esta sendo faturada
                    CamadaDados.Graos.TList_CFGTaxa CfgTaxa = CamadaNegocio.Graos.TCN_CFGTaxa.Buscar(Tp_taxa,
                                                                                                     string.Empty,
                                                                                                     string.Empty,
                                                                                                     string.Empty,
                                                                                                     qtb_taxa.Banco_Dados);
                    if (CfgTaxa.Count.Equals(0))
                    {
                        throw new Exception("Não existe configuração para o tipo de taxa.");
                    }
                    decimal retorno = decimal.Zero;
                    if (Tp_taxa.Trim().ToUpper().Equals("V"))
                    {
                        CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
                        //Criar pedido para faturar
                        rPed.CD_Empresa   = rPedAplic.Cd_empresa;
                        rPed.DT_Pedido    = CamadaDados.UtilData.Data_Servidor();
                        rPed.CFG_Pedido   = CfgTaxa[0].Cfg_pedido;
                        rPed.TP_Movimento = "S"; //Pedido de entrada
                        rPed.ST_Pedido    = "F"; //Pedido fechado
                        rPed.ST_Registro  = "F"; //Pedido fechado
                        rPed.CD_Clifor    = rPedAplic.Cd_clifor;
                        rPed.CD_Endereco  = rPedAplic.Cd_endereco;
                        rPed.Cd_moeda     = CfgTaxa[0].Cd_moeda;
                        //Criar itens do pedido
                        rPed.Pedido_Itens.Add(new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item()
                        {
                            Cd_Empresa       = rPedAplic.Cd_empresa,
                            Cd_local         = rPedAplic.Cd_local,
                            Cd_produto       = CfgTaxa[0].Cd_produto.Trim() != string.Empty ? CfgTaxa[0].Cd_produto : rPedAplic.Cd_produto,
                            Ds_produto       = CfgTaxa[0].Cd_produto.Trim() != string.Empty ? CfgTaxa[0].Ds_produto : rPedAplic.Ds_produto,
                            Cd_unidade_est   = (Tp_taxa.Trim().ToUpper().Equals("P") ? rPedAplic.Cd_unidade_estoque : CfgTaxa[0].Cd_unidproduto),
                            Cd_unidade_valor = (Tp_taxa.Trim().ToUpper().Equals("P") ? rPedAplic.Cd_unidade : CfgTaxa[0].Cd_unidproduto),
                            Quantidade       = (Tp_taxa.Trim().ToUpper().Equals("P") ? lTaxas.Sum(p => p.Ps_Taxa) : 1),
                            Vl_unitario      = (Tp_taxa.Trim().ToUpper().Equals("P") ? rPedAplic.Vl_unitario : lTaxas.Sum(p => p.Vl_Taxa)),
                            Vl_subtotal      = (Tp_taxa.Trim().ToUpper().Equals("P") ? lTaxas.Sum(p => p.Ps_Taxa) * rPedAplic.Vl_unitario : lTaxas.Sum(p => p.Vl_Taxa))
                        });
                        //Gravar pedido
                        CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, qtb_taxa.Banco_Dados);
                        lTaxas.ForEach(p =>
                        {
                            //Gravar taxa x pedido item
                            TCN_Taxa_X_PedidoItem.Gravar(new TRegistro_Taxa_X_PedidoItem()
                            {
                                Cd_produto    = rPed.Pedido_Itens[0].Cd_produto,
                                Id_lantaxa    = p.Id_LanTaxa,
                                Id_pedidoitem = rPed.Pedido_Itens[0].Id_pedidoitem,
                                Nr_pedido     = rPed.Nr_pedido
                            }, qtb_taxa.Banco_Dados);
                            //Alterar status das taxas para P - Processado
                            p.St_registro = "P";
                            qtb_taxa.Gravar(p);
                        });
                        retorno = rPed.Nr_pedido;
                    }
                    else if (rFat != null)
                    {
                        CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.GravarFaturamento(rFat, false, null, qtb_taxa.Banco_Dados);
                        lTaxas.ForEach(p =>
                        {
                            //Gravar Taxa X Nota Fiscal
                            TCN_FatQuebraTec.Gravar(new TRegistro_FatQuebraTec()
                            {
                                Cd_empresa      = rFat.Cd_empresa,
                                Nr_lanctofiscal = rFat.Nr_lanctofiscal,
                                Id_nfitem       = rFat.ItensNota[0].Id_nfitem,
                                Id_lantaxa      = p.Id_LanTaxa
                            }, qtb_taxa.Banco_Dados);
                            //Alterar status das taxas para P - Processado
                            p.St_registro = "P";
                            qtb_taxa.Gravar(p);
                        });
                        retorno = rFat.Nr_lanctofiscal.Value;
                    }
                    if (st_transacao)
                    {
                        qtb_taxa.Banco_Dados.Commit_Tran();
                    }
                    return(retorno);
                }
                else
                {
                    throw new Exception("Não existe taxas para faturar.");
                }
            }
            catch (Exception ex)
            {
                if (banco == null)
                {
                    qtb_taxa.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro faturar taxas: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_taxa.deletarBanco_Dados();
                }
            }
        }
コード例 #4
0
        public static void ReprocessarTaxasContrato(CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item rPedItem,
                                                    Utils.ThreadEspera tEspera,
                                                    TObjetoBanco banco)
        {
            bool            st_transacao = false;
            TCD_MovDeposito qtb_mov      = new TCD_MovDeposito();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_mov.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_mov.Banco_Dados = banco;
                }
                if (tEspera != null)
                {
                    tEspera.Msg("Buscar estoques amarrados ao contrato...");
                }
                //Buscar todos os estoques amarrados a este item do pedido
                CamadaDados.Faturamento.Pedido.TList_RegLanPedido_Item_X_Estoque lItemEstoque =
                    CamadaNegocio.Faturamento.Pedido.TCN_LanPedidoItem_X_Estoque.Buscar(rPedItem.Nr_PedidoString,
                                                                                        rPedItem.Cd_produto,
                                                                                        rPedItem.Id_pedidoitem.ToString(),
                                                                                        qtb_mov.Banco_Dados);
                if (lItemEstoque.Count > 0)
                {
                    if (tEspera != null)
                    {
                        tEspera.Msg("Excluindo movimentaçao de deposito...");
                        tEspera.Msg("Excluindo taxas de deposito...\r\n" +
                                    "(Serão excluidas somente as taxas que não foram processadas e que não seja lançado manual.)");
                    }
                    lItemEstoque.ForEach(p =>
                    {
                        //Buscar lancto taxa deposito
                        TList_TaxaDeposito lTaxas = new TCD_LanTaxaDeposito(qtb_mov.Banco_Dados).Select(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = string.Empty,
                                vOperador = "exists",
                                vVL_Busca = "(select 1 from tb_gro_saldocarenciataxa x " +
                                            "inner join tb_gro_movdeposito y " +
                                            "on x.id_movto = y.id_movto " +
                                            "where x.id_lantaxa = a.id_lantaxa " +
                                            "and y.nr_pedido = " + p.Nr_Pedido.ToString() + " " +
                                            "and y.cd_produto = '" + p.CD_Produto.Trim() + "' " +
                                            "and y.id_pedidoitem = " + p.Id_pedidoitem.ToString() + " " +
                                            "and y.cd_empresa = '" + p.CD_Empresa.Trim() + "' " +
                                            "and y.id_lanctoestoque = " + p.ID_LanctoEstoque.ToString() + ")"
                            }
                        }, 0, string.Empty);
                        if (lTaxas.Count > 0)
                        {
                            if (!lTaxas.Exists(v => v.St_registro.Trim().ToUpper().Equals("P")))
                            {
                                //Excluir saldo carencia
                                new TCD_SaldoCarenciaTaxa(qtb_mov.Banco_Dados).Select(
                                    new TpBusca[]
                                {
                                    new TpBusca()
                                    {
                                        vNM_Campo = string.Empty,
                                        vOperador = "exists",
                                        vVL_Busca = "(select 1 from tb_gro_movdeposito x " +
                                                    "where x.id_movto = a.id_movto " +
                                                    "and x.nr_pedido = " + p.Nr_Pedido.ToString() + " " +
                                                    "and x.cd_produto = '" + p.CD_Produto.Trim() + "' " +
                                                    "and x.id_pedidoitem = " + p.Id_pedidoitem.ToString() + " " +
                                                    "and x.cd_empresa = '" + p.CD_Empresa.Trim() + "' " +
                                                    "and x.id_lanctoestoque = " + p.ID_LanctoEstoque.ToString() + ")"
                                    }
                                }, 0, string.Empty).ForEach(v => new TCD_SaldoCarenciaTaxa(qtb_mov.Banco_Dados).Deleta(v));
                                //Excluir Movto Deposito
                                new TCD_MovDeposito(qtb_mov.Banco_Dados).Select(
                                    new TpBusca[]
                                {
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.nr_pedido",
                                        vOperador = "=",
                                        vVL_Busca = p.Nr_Pedido.ToString()
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.cd_produto",
                                        vOperador = "=",
                                        vVL_Busca = "'" + p.CD_Produto.Trim() + "'"
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.id_pedidoitem",
                                        vOperador = "=",
                                        vVL_Busca = p.Id_pedidoitem.ToString()
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.cd_empresa",
                                        vOperador = "=",
                                        vVL_Busca = "'" + p.CD_Empresa.Trim() + "'"
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.id_lanctoestoque",
                                        vOperador = "=",
                                        vVL_Busca = p.ID_LanctoEstoque.ToString()
                                    }
                                }, 0, string.Empty).ForEach(v => TCN_MovDeposito.DeletarMovDeposito(v, qtb_mov.Banco_Dados));
                                //Excluir lancto taxa deposito
                                lTaxas.ForEach(v =>
                                {
                                    //Somente se a taxa for automatica
                                    if (v.Tp_Lancto.Trim().ToUpper().Equals("A"))
                                    {
                                        new TCD_LanTaxaDeposito(qtb_mov.Banco_Dados).Excluir(v);
                                    }
                                });
                                //Chamar metodo GravarMovDeposito
                                GravarMovDeposito(new TRegistro_MovDeposito()
                                {
                                    Id_Movto         = 0,
                                    Nr_Pedido        = p.Nr_Pedido,
                                    CD_Produto       = p.CD_Produto,
                                    CD_Empresa       = p.CD_Empresa,
                                    Id_LanctoEstoque = p.ID_LanctoEstoque,
                                    Id_pedidoitem    = p.Id_pedidoitem
                                }, qtb_mov.Banco_Dados);
                            }
                        }
                        else
                        {
                            //Excluir saldo carencia
                            new TCD_SaldoCarenciaTaxa(qtb_mov.Banco_Dados).Select(
                                new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = string.Empty,
                                    vOperador = "exists",
                                    vVL_Busca = "(select 1 from tb_gro_movdeposito x " +
                                                "where x.id_movto = a.id_movto " +
                                                "and x.nr_pedido = " + p.Nr_Pedido.ToString() + " " +
                                                "and x.cd_produto = '" + p.CD_Produto.Trim() + "' " +
                                                "and x.id_pedidoitem = " + p.Id_pedidoitem.ToString() + " " +
                                                "and x.cd_empresa = '" + p.CD_Empresa.Trim() + "' " +
                                                "and x.id_lanctoestoque = " + p.ID_LanctoEstoque.ToString() + ")"
                                }
                            }, 0, string.Empty).ForEach(v => new TCD_SaldoCarenciaTaxa(qtb_mov.Banco_Dados).Deleta(v));
                            //Excluir Movto Deposito
                            new TCD_MovDeposito(qtb_mov.Banco_Dados).Select(
                                new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = "a.nr_pedido",
                                    vOperador = "=",
                                    vVL_Busca = p.Nr_Pedido.ToString()
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_produto",
                                    vOperador = "=",
                                    vVL_Busca = "'" + p.CD_Produto.Trim() + "'"
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.id_pedidoitem",
                                    vOperador = "=",
                                    vVL_Busca = p.Id_pedidoitem.ToString()
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_empresa",
                                    vOperador = "=",
                                    vVL_Busca = "'" + p.CD_Empresa.Trim() + "'"
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.id_lanctoestoque",
                                    vOperador = "=",
                                    vVL_Busca = p.ID_LanctoEstoque.ToString()
                                }
                            }, 0, string.Empty).ForEach(v => TCN_MovDeposito.DeletarMovDeposito(v, qtb_mov.Banco_Dados));
                            //Chamar metodo GravarMovDeposito
                            GravarMovDeposito(new TRegistro_MovDeposito()
                            {
                                Id_Movto         = 0,
                                Nr_Pedido        = p.Nr_Pedido,
                                CD_Produto       = p.CD_Produto,
                                CD_Empresa       = p.CD_Empresa,
                                Id_LanctoEstoque = p.ID_LanctoEstoque,
                                Id_pedidoitem    = p.Id_pedidoitem
                            }, qtb_mov.Banco_Dados);
                        }
                    });
                    if (st_transacao)
                    {
                        qtb_mov.Banco_Dados.Commit_Tran();
                    }
                }
                else
                {
                    throw new Exception("Não existe estoque amarrado ao item do pedido para reprocessar taxas.");
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_mov.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro reprocessar taxas: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_mov.deletarBanco_Dados();
                }
            }
        }