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(); } } }
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(); } } }