Esempio n. 1
0
        public static string GravarFixacao(TRegistro_LanFixacao val, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_LanFixacao qtb_fixacao  = new TCD_LanFixacao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_fixacao.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_fixacao.Banco_Dados = banco;
                }
                //Gravar fixacao
                string retorno = qtb_fixacao.Gravar(val);
                val.Id_fixacao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_FIXACAO"));
                //Gravar Fixacao X Contrato
                TCN_Fixacao_X_Contrato.Gravar(new TRegistro_Fixacao_X_Contrato()
                {
                    Id_fixacao  = val.Id_fixacao,
                    Nr_contrato = val.Nr_contrato,
                }, qtb_fixacao.Banco_Dados);
                //Gravar nota fiscal de complemento
                val.lFixacaonf.ForEach(p =>
                {
                    if (p.rNfComplemento != null)
                    {
                        TCN_LanFaturamento.GravarFaturamento(p.rNfComplemento, null, qtb_fixacao.Banco_Dados);
                        //Gravar Fixacao NF Complemento
                        TRegistro_Fixacao_NF rFComp = new TRegistro_Fixacao_NF();
                        rFComp.Id_fixacao           = val.Id_fixacao;
                        rFComp.Id_fixacaonf         = null;
                        rFComp.Cd_empresa           = p.rNfComplemento.Cd_empresa;
                        rFComp.Nr_lanctofiscal      = p.rNfComplemento.Nr_lanctofiscal;
                        rFComp.Id_nfitem            = p.rNfComplemento.ItensNota[0].Id_nfitem;
                        rFComp.Qtd_fixacao          = p.Qtd_fixacao;
                        rFComp.Vl_complemento       = decimal.Zero;
                        rFComp.Vl_devolucao         = decimal.Zero;
                        rFComp.Vl_fixacao           = p.Vl_fixacao;
                        rFComp.Tp_nota = "C";
                        TCN_Fixacao_NF.GravarFixacaoNf(rFComp, qtb_fixacao.Banco_Dados);
                    }
                    //Gravar Fixacao NF Pauta
                    p.Tp_nota    = "P";
                    p.Id_fixacao = val.Id_fixacao;
                    TCN_Fixacao_NF.GravarFixacaoNf(p, qtb_fixacao.Banco_Dados);
                });
                //Gravar Nota Fiscal de Devolucao
                if (val.rNfDev != null)
                {
                    TCN_LanFaturamento.GravarFaturamento(val.rNfDev, null, qtb_fixacao.Banco_Dados);
                    TRegistro_Fixacao_NF rFDev = new TRegistro_Fixacao_NF();
                    rFDev.Id_fixacao      = val.Id_fixacao;
                    rFDev.Id_fixacaonf    = null;
                    rFDev.Cd_empresa      = val.rNfDev.Cd_empresa;
                    rFDev.Nr_lanctofiscal = val.rNfDev.Nr_lanctofiscal;
                    rFDev.Id_nfitem       = val.rNfDev.ItensNota[0].Id_nfitem;
                    rFDev.Qtd_fixacao     = val.lFixacaonf.Where(p => p.Vl_devolucao > decimal.Zero).Sum(p => p.Qtd_fixacao);
                    rFDev.Vl_complemento  = decimal.Zero;
                    rFDev.Vl_devolucao    = decimal.Zero;
                    rFDev.Vl_fixacao      = val.lFixacaonf.Where(p => p.Vl_devolucao > decimal.Zero).Sum(p => p.Vl_fixacao);
                    rFDev.Tp_nota         = "D";
                    //Gravar Fixacao NF Devolucao
                    TCN_Fixacao_NF.GravarFixacaoNf(rFDev, qtb_fixacao.Banco_Dados);
                    val.lFixacaonf.ForEach(p =>
                    {
                        //Gravar Fixacao NF Pauta
                        p.Tp_nota    = "P";
                        p.Id_fixacao = val.Id_fixacao;
                        TCN_Fixacao_NF.GravarFixacaoNf(p, qtb_fixacao.Banco_Dados);
                    });
                }
                //Gravar Financeiro Fixacao
                if (val.rDup != null)
                {
                    val.rDup.Nr_docto = "RAP" + val.Id_fixacao.Value.ToString();
                    Financeiro.Duplicata.TCN_LanDuplicata.GravarDuplicata(val.rDup, false, qtb_fixacao.Banco_Dados);
                    //Gravar Fixacao X Duplicata
                    TCN_Fixacao_X_Duplicata.Gravar(new TRegistro_Fixacao_X_Duplicata()
                    {
                        Id_fixacao = val.Id_fixacao,
                        Cd_empresa = val.rDup.Cd_empresa,
                        Nr_lancto  = val.rDup.Nr_lancto
                    }, qtb_fixacao.Banco_Dados);
                    if (ConfigGer.TCN_CadParamGer.BuscaVL_Bool("ST_CONTROLAR_GMO", val.rDup.Cd_empresa, qtb_fixacao.Banco_Dados).Trim().ToUpper().Equals("S"))
                    {
                        val.lFixacaonf.Where(p => p.Vl_complemento > decimal.Zero).ToList().ForEach(p =>
                        {
                            //Gravar Retencao GMO
                            TRegistro_SaldoNFGMO rSaldoNf = new TRegistro_SaldoNFGMO();
                            rSaldoNf.Cd_empresa           = val.rDup.Cd_empresa;
                            rSaldoNf.Nr_lanctoduplicata   = val.rDup.Nr_lancto;
                            rSaldoNf.Dt_saient            = val.rDup.Dt_emissao;
                            rSaldoNf.Nr_lanctofiscal      = p.rNfComplemento.Nr_lanctofiscal;
                            rSaldoNf.Id_nfitem            = p.rNfComplemento.ItensNota[0].Id_nfitem;
                            if (val.Qtd_gmo_declarado > decimal.Zero)
                            {
                                //Liquidar duplicata retendo os Royalties
                                TCN_LanRoyaltiesGMO.liquidaDuplicatas(rSaldoNf,
                                                                      new TRegistro_SaldoContratoGMO()
                                {
                                    Cd_produto  = val.Cd_produto,
                                    Nr_contrato = val.Nr_contrato,
                                    Tp_gmo      = "D"
                                },
                                                                      val.Vl_royalties_declarado,
                                                                      val.Qtd_gmo_declarado,
                                                                      qtb_fixacao.Banco_Dados);
                            }
                            if (val.Qtd_gmo_testado > decimal.Zero)
                            {
                                //Liquidar duplicata retendo os Royalties
                                TCN_LanRoyaltiesGMO.liquidaDuplicatas(rSaldoNf,
                                                                      new TRegistro_SaldoContratoGMO()
                                {
                                    Cd_produto  = val.Cd_produto,
                                    Nr_contrato = val.Nr_contrato,
                                    Tp_gmo      = "T"
                                },
                                                                      val.Vl_royalties_testado,
                                                                      val.Qtd_gmo_testado,
                                                                      qtb_fixacao.Banco_Dados);
                            }
                        });
                        if (val.rNfDev != null)
                        {
                            //Gravar Retencao GMO
                            TRegistro_SaldoNFGMO rSaldoNf = new TRegistro_SaldoNFGMO();
                            rSaldoNf.Cd_empresa         = val.rDup.Cd_empresa;
                            rSaldoNf.Nr_lanctoduplicata = val.rDup.Nr_lancto;
                            rSaldoNf.Dt_saient          = val.rDup.Dt_emissao;
                            rSaldoNf.Nr_lanctofiscal    = val.rNfDev.Nr_lanctofiscal;
                            rSaldoNf.Id_nfitem          = val.rNfDev.ItensNota[0].Id_nfitem;
                            if (val.Qtd_gmo_declarado > decimal.Zero)
                            {
                                //Liquidar duplicata retendo os Royalties
                                TCN_LanRoyaltiesGMO.liquidaDuplicatas(rSaldoNf,
                                                                      new TRegistro_SaldoContratoGMO()
                                {
                                    Cd_produto  = val.Cd_produto,
                                    Nr_contrato = val.Nr_contrato,
                                    Tp_gmo      = "D"
                                },
                                                                      val.Vl_royalties_declarado,
                                                                      val.Qtd_gmo_declarado,
                                                                      qtb_fixacao.Banco_Dados);
                            }
                            if (val.Qtd_gmo_testado > decimal.Zero)
                            {
                                //Liquidar duplicata retendo os Royalties
                                TCN_LanRoyaltiesGMO.liquidaDuplicatas(rSaldoNf,
                                                                      new TRegistro_SaldoContratoGMO()
                                {
                                    Cd_produto  = val.Cd_produto,
                                    Nr_contrato = val.Nr_contrato,
                                    Tp_gmo      = "T"
                                },
                                                                      val.Vl_royalties_testado,
                                                                      val.Qtd_gmo_testado,
                                                                      qtb_fixacao.Banco_Dados);
                            }
                        }
                    }
                }
                if (st_transacao)
                {
                    qtb_fixacao.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_fixacao.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar fixação: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_fixacao.deletarBanco_Dados();
                }
            }
        }
Esempio n. 2
0
        public static string Deletar(TRegistro_Lan_RetencaoFinanceiraGMO val, TObjetoBanco banco)
        {
            bool st_transacao = false;
            TCD_Lan_RetencaoFinanceiraGMO cd = new TCD_Lan_RetencaoFinanceiraGMO();

            try
            {
                if (banco == null)
                {
                    st_transacao = cd.CriarBanco_Dados(true);
                }
                else
                {
                    cd.Banco_Dados = banco;
                }
                cd.DeletarRetencaoFinanceiraGMO(val);
                //Excluir Royalties GMO
                TCN_LanRoyaltiesGMO.Buscar(val.Id_LanctoGMO.ToString(),
                                           string.Empty,
                                           string.Empty,
                                           string.Empty,
                                           string.Empty,
                                           string.Empty,
                                           string.Empty,
                                           cd.Banco_Dados).ForEach(p => TCN_LanRoyaltiesGMO.DeletarLanRoyaltiesGMO(p, cd.Banco_Dados));
                //Estornar caixa
                CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.Busca(val.Cd_ContaGer,
                                                                  val.Cd_LanctoCaixa.ToString(),
                                                                  val.Cd_Empresa,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  decimal.Zero,
                                                                  decimal.Zero,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  false,
                                                                  string.Empty,
                                                                  decimal.Zero,
                                                                  false,
                                                                  cd.Banco_Dados).ForEach(p => TCN_LanCaixa.EstornarCaixa(p, null, cd.Banco_Dados));
                //Estornar liquidacao
                TCN_LanLiquidacao.Busca(val.Cd_Empresa,
                                        val.Nr_Lancto.Value,
                                        val.Cd_Parcela.Value,
                                        Convert.ToInt16(val.Id_Liquid),
                                        val.Cd_ContaGer,
                                        decimal.Zero,
                                        decimal.Zero,
                                        decimal.Zero,
                                        decimal.Zero,
                                        decimal.Zero,
                                        decimal.Zero,
                                        decimal.Zero,
                                        false,
                                        string.Empty,
                                        0,
                                        string.Empty,
                                        cd.Banco_Dados).ForEach(p => TCN_LanLiquidacao.CancelarLiquidacao(p, null, cd.Banco_Dados));

                if (st_transacao)
                {
                    cd.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    cd.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir retenção: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    cd.deletarBanco_Dados();
                }
            }
        }