public static Response<ComprobanteIngresoItem> Delete(this ComprobanteIngresoItem request, Factory factory, IAuthSession authSession) { request.CheckId(Operaciones.Destroy); factory.Execute(proxy=>{ using (proxy.AcquireLock(request.IdComprobanteIngreso.GetLockKey<ComprobanteIngreso>(), Definiciones.LockSeconds)) { ComprobanteIngresoItem oldData = proxy.FirstOrDefaultById<ComprobanteIngresoItem>(request.Id); oldData.AssertExists(request.Id); var ce = proxy.FirstOrDefaultById<ComprobanteIngreso>(oldData.IdComprobanteIngreso); ce.AssertExists(oldData.IdComprobanteIngreso); ce.CheckPeriodo(proxy); var ingreso= proxy.FirstOrDefaultById<Ingreso>(oldData.IdIngreso); ingreso.AssertExists(oldData.IdIngreso); request.ValidateAndThrowHttpError(oldData,ce,ingreso,Operaciones.BorrarIngresoEnCI); ce.Valor-=oldData.Abono; proxy.BeginDbTransaction(); ce.ActualizarValor(proxy); request.Borrar(proxy); proxy.CommitDbTransaction(); } }); List<ComprobanteIngresoItem> data = new List<ComprobanteIngresoItem>(); data.Add(request); return new Response<ComprobanteIngresoItem>(){ Data=data }; }
public static Response<EgresoItem> Delete(this EgresoItem request, Factory factory, IAuthSession authSession) { request.CheckId(Operaciones.Destroy); factory.Execute(proxy=>{ using (proxy.AcquireLock(request.IdEgreso.GetLockKey<Egreso>(), Definiciones.LockSeconds)) { EgresoItem oldData = proxy.FirstOrDefaultById<EgresoItem>(request.Id); oldData.AssertExists(request.Id); Egreso egreso= DAL.GetEgresoById(proxy, oldData.IdEgreso); egreso.AssertExists(request.IdEgreso); CheckOldAndNew(egreso,request,oldData, proxy, int.Parse(authSession.UserAuthId)); if(oldData.TipoPartida==1) { egreso.Valor= egreso.Valor-oldData.Valor; egreso.Saldo= egreso.Saldo-oldData.Valor; } else egreso.Saldo=egreso.Saldo+oldData.Valor; proxy.BeginDbTransaction(); egreso.ActualizarValorSaldo(proxy); request.Borrar(proxy); proxy.CommitDbTransaction(); } }); List<EgresoItem> data = new List<EgresoItem>(); data.Add(request); return new Response<EgresoItem>(){ Data=data }; }