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

        }
Example #2
0
        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
            };
        }