/// <summary> /// Cancela este objeto /// </summary> /// <param name="dataHora">data/ hora que o cancelamento ocorreu</param> /// <param name="motivo">motivo do cancelamento</param> /// <returns></returns> public virtual bool Cancelar(DateTime dataHora, string motivo) { bool result = false; #region Altera o status this.Connection.ExecuteNonQuery("UPDATE fat_Lan SET Status = @p1 WHERE GUID=@p2", new[] { new Parameter{ ParameterName = "@p1", GenericDbType= GenericDbType.Integer, Value = (int)Enuns.Faturamento.Lancamento.Status.CanceladoTotal }, new Parameter{ ParameterName = "@p2", Value = GUID } }); #endregion Data.Faturamento.Lancamento.Cancelamento.CancelarTotal cancel = new Data.Faturamento.Lancamento.Cancelamento.CancelarTotal(); cancel.Lancamento = this; cancel.Motivo = motivo; cancel.DataHora = dataHora; cancel.Save(); return result; }
/// <summary> /// Cancela este objeto /// Observação: /// O xml do evento do cancelamento já é salvo na pasta de envio /// </summary> /// <param name="dataHora">data/ hora que o cancelamento ocorreu</param> /// <param name="motivo">motivo do cancelamento</param> /// <returns></returns> public override bool Cancelar(DateTime dataHora, string motivo) { bool result = true; if(!(this is INFe) && !(this is INFCe)) Save(); Data.Faturamento.Lancamento.Cancelamento.CancelarTotal cancel = new Data.Faturamento.Lancamento.Cancelamento.CancelarTotal(); cancel.Lancamento = this; cancel.Motivo = motivo; cancel.DataHora = dataHora; foreach(IItem item in Itens) { cancel.Itens.Add(new Data.Faturamento.Lancamento.Cancelamento.Item.Item { ItemMovimentado = item, Motivo = motivo, DataHora = dataHora }); } cancel.Save(); #region Cancela as parcelas foreach(Model.Financeiro.Lancamento.IParcela parcela in Parcelas) { parcela.Cancelar("Cancelado o lançamento"); } #endregion #region Atualiza o temporário if(Temp) this.Connection.ExecuteNonQuery("UPDATE fat_LanMov SET Temp = @p1 WHERE GUIDLan = @p2;", new Parameter[]{ new Parameter(){ ParameterName="@p1", Value = 0, GenericDbType = GenericDbType.Integer }, new Parameter(){ ParameterName="@p2", Value = GUID.ToString(), GenericDbType = GenericDbType.String } }); #endregion this.Status = Enuns.Faturamento.Lancamento.Status.CanceladoTotal; this.DadosCancelamento = cancel; return result; }