Exemplo n.º 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();
                }
            }
        }
Exemplo n.º 2
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();
                }
            }
        }