Beispiel #1
0
        public static DALResponse<Gasto> Obtener(RepositoryProxy proxy, ObtenerGastos gasto,Pager paginador)
        {
            long? totalCount=null;

            var visitor = ReadExtensions.CreateExpression<Gasto>();
            var predicate = PredicateBuilder.True<Gasto>();

            if(gasto.FechaDesde.HasValue){
                if(!gasto.FechaHasta.HasValue) gasto.FechaHasta=gasto.FechaDesde;
                predicate= q=>q.Fecha>=gasto.FechaDesde.Value && q.Fecha<=gasto.FechaHasta;
            }

            visitor.Where(predicate);

            if(paginador.PageNumber.HasValue)
            {
                totalCount= proxy.DbCmd.Count(predicate);
                int rows= paginador.PageSize.HasValue? paginador.PageSize.Value:DAL.PageSize;
                visitor.Limit(paginador.PageNumber.Value*rows, rows);
            }

            var response = new DALResponse<Gasto>();
            response.Result= proxy.DbCmd.Select(visitor);
            response.TotalCount= totalCount;
            return response;
        }
Beispiel #2
0
        public static DALResponse<Concepto> Obtener(RepositoryProxy proxy, ObtenerConceptos concepto,Pager paginador)
        {
            long? totalCount=null;

            var visitor = ReadExtensions.CreateExpression<Concepto>();
            var predicate = PredicateBuilder.True<Concepto>();

            if(!concepto.Tipo.IsNullOrEmpty()){

                predicate= q=>q.Tipo==concepto.Tipo;
            }

            if( concepto.SoloDetalles)
            {
                predicate =predicate.AndAlso(q=>q.Codigo.Contains("."));
            }

            visitor.Where(predicate);

            if(paginador.PageNumber.HasValue)
            {
                totalCount= proxy.DbCmd.Count(predicate);
                int rows= paginador.PageSize.HasValue? paginador.PageSize.Value:DAL.PageSize;
                visitor.Limit(paginador.PageNumber.Value*rows, rows);
            }

            visitor.OrderBy(f=>f.Codigo);

            var response = new DALResponse<Concepto>();
            response.Result= proxy.DbCmd.Select(visitor);
            response.TotalCount= totalCount;
            return response;
        }
Beispiel #3
0
 public static Concepto Crear(RepositoryProxy proxy , CrearConcepto concepto)
 {
     var c = new Concepto();
     c.PopulateWith(concepto);
     proxy.DbCmd.InsertAndAssertId(c);
     return c;
 }
Beispiel #4
0
 public static Fuente Crear(RepositoryProxy proxy , CrearFuente fuente)
 {
     var c = new Fuente();
     c.PopulateWith(fuente);
     proxy.DbCmd.InsertAndAssertId(c);
     return c;
 }
Beispiel #5
0
        public static void Borrar(RepositoryProxy proxy , BorrarGasto gasto)
        {
            proxy.BeginDbTransaction();

            ActualizarSaldosAlBorrar(proxy, gasto.Id);
            proxy.DbCmd.Delete<Gasto>(f=>f.Id==gasto.Id);

            proxy.CommitDbTransaction();
        }
Beispiel #6
0
 public static Gasto Actualizar(RepositoryProxy proxy , ActualizarGasto gasto)
 {
     var c = new Gasto();
     c.PopulateWith(gasto);
     proxy.BeginDbTransaction();
     ActualizarSaldosAlBorrar(proxy, gasto.Id);
     ActualizarSaldos(proxy, c );
     proxy.DbCmd.UpdateOnly(c, f=> new {f.Descripcion, f.Beneficiario, f.Valor, f.IdFuente, f.IdConcepto}, f=> f.Id==gasto.Id);
     proxy.CommitDbTransaction();
     return proxy.DbCmd.FirstOrDefault<Gasto>(f=>f.Id== gasto.Id);
 }
Beispiel #7
0
        public static Gasto Crear(RepositoryProxy proxy , CrearGasto gasto)
        {
            if(!gasto.Fecha.HasValue) gasto.Fecha= DateTime.Today;

            var c = new Gasto();
            c.PopulateWith(gasto);

            proxy.BeginDbTransaction();
            proxy.DbCmd.InsertAndAssertId(c);

            ActualizarSaldos (proxy, c);

            proxy.CommitDbTransaction();
            return c;
        }
Beispiel #8
0
 public static void CreateTable(RepositoryProxy proxy, bool overwrite)
 {
     proxy.DbCmd.CreateTable<Concepto>(overwrite);
 }
Beispiel #9
0
 public static void Borrar(RepositoryProxy proxy , BorrarConcepto concepto)
 {
     proxy.DbCmd.Delete<Concepto>(f=>f.Id==concepto.Id);
 }
Beispiel #10
0
 public static Concepto Actualizar(RepositoryProxy proxy , ActualizarConcepto concepto)
 {
     var c = new Concepto(){Nombre=concepto.Nombre, Codigo=concepto.Codigo, Id=concepto.Id};
     proxy.DbCmd.UpdateOnly(c, f=> new {f.Nombre,f.Codigo}, f=> f.Id==c.Id);
     return proxy.DbCmd.FirstOrDefault<Concepto>(f=>f.Id== concepto.Id);
 }
Beispiel #11
0
 public static Fuente FijarSaldoInicial(RepositoryProxy proxy , int id, decimal valor)
 {
     var c = new Fuente(){SaldoInicial=valor};
     proxy.DbCmd.UpdateOnly(c, f=> new {f.SaldoInicial,}, f=> f.Id==id);
     return proxy.DbCmd.FirstOrDefault<Fuente>(f=>f.Id== id);
 }
Beispiel #12
0
 public static void Borrar(RepositoryProxy proxy , BorrarFuente fuente)
 {
     proxy.DbCmd.Delete<Fuente>(f=>f.Id==fuente.Id);
 }
Beispiel #13
0
 public static Fuente Actualizar(RepositoryProxy proxy , ActualizarFuente fuente)
 {
     var c = new Fuente(){Nombre=fuente.Nombre, Codigo=fuente.Codigo, Id= fuente.Id};
     proxy.DbCmd.UpdateOnly(c, f=> new {f.Nombre, f.Codigo}, f=> f.Id==fuente.Id);
     return proxy.DbCmd.FirstOrDefault<Fuente>(f=>f.Id== fuente.Id);
 }
Beispiel #14
0
 static void ActualizarSaldos(RepositoryProxy proxy, Gasto gasto)
 {
     var concepto = proxy.DbCmd.First<Concepto> (f => f.Id == gasto.IdConcepto);
     concepto.Acumulado += gasto.Valor;
     proxy.DbCmd.UpdateOnly (concepto, f => new {
         f.Acumulado
     }, f => f.Id == gasto.IdConcepto);
     var fuente = proxy.DbCmd.First<Fuente> (f => f.Id == gasto.IdFuente);
     fuente.Salidas += gasto.Valor;
     proxy.DbCmd.UpdateOnly (fuente, f => new {
         f.Salidas
     }, f => f.Id == gasto.IdFuente);
 }
Beispiel #15
0
        static void ActualizarSaldosAlBorrar(RepositoryProxy proxy , int id)
        {
            var oldGasto= proxy.DbCmd.First<Gasto>(f=>f.Id==id);

            var concepto = proxy.DbCmd.First<Concepto>(f=>f.Id== oldGasto.IdConcepto);
            concepto.Acumulado-= oldGasto.Valor;
            proxy.DbCmd.UpdateOnly(concepto, f=> new {f.Acumulado}, f=>f.Id== oldGasto.IdConcepto);

            var fuente = proxy.DbCmd.First<Fuente>(f=>f.Id== oldGasto.IdFuente);
            fuente.Salidas-=oldGasto.Valor;
            proxy.DbCmd.UpdateOnly(fuente, f=> new {f.Salidas}, f=>f.Id== oldGasto.IdFuente);
        }