예제 #1
0
        public static string Excluir(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;
                }

                //Cancelar NF de Fixacao
                TCN_Fixacao_NF.Buscar(string.Empty,
                                      val.Id_fixacao.Value.ToString(),
                                      string.Empty,
                                      string.Empty,
                                      string.Empty,
                                      decimal.Zero,
                                      decimal.Zero,
                                      0,
                                      string.Empty,
                                      qtb_fixacao.Banco_Dados).ForEach(p =>
                {
                    if (!p.Tp_nota.Trim().ToUpper().Equals("P"))                        //Nota de Complemento/Devolucao
                    {
                        TCN_LanFaturamento.CancelarFaturamento(
                            TCN_LanFaturamento.BuscarNF(p.Cd_empresa,
                                                        p.Nr_lanctofiscal.ToString(),
                                                        qtb_fixacao.Banco_Dados),
                            qtb_fixacao.Banco_Dados);
                    }
                });
                //Cancelar Duplicata
                val.lDupFixacao.ForEach(p =>
                {
                    //Excluir Fixacao X Duplicata
                    TList_Fixacao_X_Duplicata lFDup = TCN_Fixacao_X_Duplicata.Buscar(val.Id_fixacao.Value.ToString(),
                                                                                     p.Cd_empresa,
                                                                                     p.Nr_lancto.ToString(),
                                                                                     qtb_fixacao.Banco_Dados);
                    if (lFDup.Count > 0)
                    {
                        TCN_Fixacao_X_Duplicata.Excluir(lFDup[0], qtb_fixacao.Banco_Dados);
                    }

                    //Cancelar Duplicata
                    Financeiro.Duplicata.TCN_LanDuplicata.CancelarDuplicata(p, qtb_fixacao.Banco_Dados);
                });
                //Cancelar Fixacao
                val.St_registro = "C";
                qtb_fixacao.Gravar(val);
                if (st_transacao)
                {
                    qtb_fixacao.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_fixacao.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro cancelar fixação: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_fixacao.deletarBanco_Dados();
                }
            }
        }
예제 #2
0
        public static void Cancela_Transferencia(TRegistro_Transferencia val, TObjetoBanco banco)
        {
            string            Retorno           = string.Empty;
            bool              st_transacao      = false;
            TCD_Transferencia qtb_Transferencia = new TCD_Transferencia();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_Transferencia.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_Transferencia.Banco_Dados = banco;
                }

                //Verificar se o usuario tem permissão para cancelar nota fiscal
                if (!CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin, "PERMITIR CANCELAR NOTAS FISCAIS", qtb_Transferencia.Banco_Dados))
                {
                    throw new Exception("Usuario não tem permissão para cancelar nota fiscal.");
                }
                //Cancelar transferencia
                val.St_registro = "C";
                Altera_Transferencia(val, qtb_Transferencia.Banco_Dados);
                //Cancelar nota fiscal de origem
                TList_RegLanFaturamento lFatOrigem = TCN_LanFaturamento.Busca(val.Transf_X_Contrato_Origem[0].CD_Empresa,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              val.Transf_X_Contrato_Origem[0].NR_LanctoFiscal.ToString(),
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              decimal.Zero,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              false,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              decimal.Zero,
                                                                              decimal.Zero,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              false,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              0,
                                                                              string.Empty,
                                                                              qtb_Transferencia.Banco_Dados);
                if (lFatOrigem.Count > 0)
                {
                    TCN_LanFaturamento.CancelarFaturamento(lFatOrigem[0], qtb_Transferencia.Banco_Dados);
                }
                else
                {
                    throw new Exception("Nota Fiscal de Origem não encontrada!");
                }

                //Cancelar nota fiscal de destino
                TList_RegLanFaturamento lFatDestino = TCN_LanFaturamento.Busca(val.Transf_X_Contrato_Destino[0].CD_Empresa,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               val.Transf_X_Contrato_Destino[0].NR_LanctoFiscal.ToString(),
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               decimal.Zero,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               false,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               decimal.Zero,
                                                                               decimal.Zero,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               false,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               string.Empty,
                                                                               0,
                                                                               string.Empty,
                                                                               qtb_Transferencia.Banco_Dados);
                if (lFatDestino.Count > 0)
                {
                    TCN_LanFaturamento.CancelarFaturamento(lFatDestino[0], qtb_Transferencia.Banco_Dados);
                }
                else
                {
                    throw new Exception("Nota Fiscal de destino não encontrada!");
                }


                if (st_transacao)
                {
                    qtb_Transferencia.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_Transferencia.Banco_Dados.RollBack_Tran();
                }
                //Retornar o status da transferencia para ativo novamente
                val.St_registro = "A";
                throw new Exception(ex.Message);
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_Transferencia.deletarBanco_Dados();
                }
            }
        }