예제 #1
0
        public IActionResult Add(FacturaRequest request)
        {
            Respuesta _respuesta = new Respuesta();

            try
            {
                _facturaService.Add(request);
                _respuesta.Exito = 1;
            }
            catch (Exception ex)
            {
                _respuesta.Exito   = 0;
                _respuesta.Mensaje = ex.Message;
            }
            return(Ok(_respuesta));
        }
예제 #2
0
        public IActionResult GetListaFacturas([FromBody] FacturaRequest Solicitud)
        {
            try {
                var resultado = _providerDal.FacturasProveedor_Lista(Solicitud);

                if (resultado == null)
                {
                    return(NotFound());
                }

                return(Ok(resultado));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message.ToString()));
            }
        }
예제 #3
0
        //[AllowAnonymous]
        public async Task <JsonResult> ListarPagedFacturas(FacturaRequest filtro)
        {
            PagedList <FacturaResponse> pagedlista = null;

            HttpResponseMessage response = await client.PostAsJsonAsync("api/factura/ListarPagedFacturas", filtro);

            //HttpResponseMessage response = await client.GetAsync("api/test/resource1");
            //string frase = await response.Content.ReadAsAsync<string>();

            if (response.IsSuccessStatusCode)
            {
                pagedlista = await response.Content.ReadAsAsync <PagedList <FacturaResponse> >();
            }

            return(new JsonResult()
            {
                Data = pagedlista,
                MaxJsonLength = Int32.MaxValue,
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
예제 #4
0
        public void Add(FacturaRequest request)
        {
            var transaction = _context.Database.BeginTransaction();

            try
            {
                var client      = _context.Clientes.Find(request.Idcliente);
                var comprobante = _context.TipoComprobantes.Find(request.IdTipoComprobante);
                var factura     = new Factura();
                factura.Total           = request.detallefacturas.Sum(d => d.Cantidad * d.Precio);
                factura.Fecha           = DateTime.Now;
                factura.tipoComprobante = comprobante;
                factura.cliente         = client;
                _context.Add(factura);
                _context.SaveChanges();

                foreach (var _detalle in request.detallefacturas)
                {
                    var art     = _context.Articulos.Find(_detalle.Idarticulo);
                    var fac     = _context.Facturas.Find(factura.Id);
                    var detalle = new Models.Detallefactura();
                    detalle.Cantidad = _detalle.Cantidad;
                    detalle.Articulo = art;
                    detalle.Precio   = _detalle.Precio;
                    detalle.Itbis    = _detalle.Itbis;
                    detalle.Factura  = fac;
                    detalle.Total    = _detalle.Total;
                    _context.Detallefacturas.Add(detalle);
                    _context.SaveChanges();
                }
                transaction.Commit();
            }
            catch (Exception)
            {
                transaction.Rollback();
                throw new Exception("Ocurio un error en la inserción");
            }
        }
        public IActionResult PostFactura([FromBody] FacturaRequest facturaRequest)
        {
            using (var transaccion = context.Database.BeginTransaction())
            {
                try
                {
                    Factura factura = new Factura();
                    factura.Numero    = facturaRequest.Numero;
                    factura.Fecha     = facturaRequest.Fecha;
                    factura.Total     = facturaRequest.DetalleRequests.Sum(s => s.Cantidad * s.Precio);
                    factura.ClienteId = facturaRequest.ClienteId;
                    context.Factura.Add(factura);
                    context.SaveChanges();

                    foreach (var item in facturaRequest.DetalleRequests)
                    {
                        Detalle detalle = new Detalle();
                        detalle.Cantidad   = item.Cantidad;
                        detalle.Precio     = item.Precio;
                        detalle.Subtotal   = item.Cantidad * item.Precio;
                        detalle.FacturaId  = factura.FacturaId;
                        detalle.ProductoId = item.ProductoId;
                        context.Detalle.Add(detalle);
                    }
                    context.SaveChanges();

                    context.Database.CommitTransaction();
                }
                catch (Exception ex)
                {
                    context.Database.RollbackTransaction();
                    string mensaje = ex.Message;
                }
            }

            return(Ok(new { result = true }));
        }
예제 #6
0
        public IHttpActionResult ListarPagedFacturas(FacturaRequest filtro)
        {
            if (filtro == null)
            {
                return(BadRequest());
            }


            var context = new DbComercial();

            var source = (from f in context.Facturas
                          join c in context.Clientes on f.ClienteId equals c.ClienteId
                          join x in context.ConceptoFacturas on f.ConceptoId equals x.ConceptoId
                          join u in context.Usuarios on f.UsuarioRegistroId equals u.UsuarioId
                          join m in context.TipoMonedas on f.TipoMonedaId equals m.TipoMonedaId
                          join e in context.EstadoFacturas on f.EstadoId equals e.EstadoFacturaId
                          select new FacturaResponse
            {
                Numero = f.Numero,
                ConceptoId = f.ConceptoId,
                Concepto = x.Nombre,
                ClienteId = f.ClienteId,
                Cliente = c.RazonSocial,
                dFechaEmision = f.FechaEmision,
                TipoMonedaId = f.TipoMonedaId,
                TipoMoneda = m.Nombre,
                MontoTotal = f.MontoTotal,
                EstadoId = f.EstadoId,
                Estado = e.Nombre,
                dFechaRegistro = f.FechaRegistro,
                MontoIGV = f.MontoIGV,
                Mes = f.Mes,
                Ano = f.Ano
            }).OrderByDescending(a => a.dFechaEmision).AsQueryable();


            source = source.Where(p => ((filtro.Numero == 0) || (filtro.Numero != 0 && p.Numero == filtro.Numero)));
            source = source.Where(p => ((filtro.ConceptoId == 0) || (filtro.ConceptoId != 0 && p.ConceptoId == filtro.ConceptoId)));
            source = source.Where(p => ((filtro.ClienteId == 0) || (filtro.ClienteId != 0 && p.ClienteId == filtro.ClienteId)));
            source = source.Where(p => ((filtro.EstadoId == 0) || (filtro.EstadoId != 0 && p.EstadoId == filtro.EstadoId)));
            source = source.Where(p => ((filtro.Mes == 0) || (filtro.Mes != 0 && p.Mes == filtro.Mes)));
            source = source.Where(p => ((filtro.Ano == 0) || (filtro.Ano != 0 && p.Ano == filtro.Ano)));

            int CurrentPage = (filtro.Page == 0 ? 1 : filtro.Page);
            int PageSize    = filtro.PageSize;

            string SortCommand = filtro.SortCommand;
            string SortOrder   = filtro.SortOrder;

            if (!string.IsNullOrEmpty(SortCommand) && !string.IsNullOrEmpty(SortOrder))
            {
                switch (SortCommand)
                {
                case "Numero":
                    if (SortOrder == "asc")
                    {
                        source = source.OrderBy(a => a.Numero);
                    }
                    else if (SortOrder == "desc")
                    {
                        source = source.OrderByDescending(a => a.Numero);
                    }
                    break;

                case "Cliente":
                    if (SortOrder == "asc")
                    {
                        source = source.OrderBy(a => a.Cliente);
                    }
                    else if (SortOrder == "desc")
                    {
                        source = source.OrderByDescending(a => a.Cliente);
                    }
                    break;

                case "MontoTotal":
                    if (SortOrder == "asc")
                    {
                        source = source.OrderBy(a => a.MontoTotal);
                    }
                    else if (SortOrder == "desc")
                    {
                        source = source.OrderByDescending(a => a.MontoTotal);
                    }
                    break;

                case "FechaEmision":
                    if (SortOrder == "asc")
                    {
                        source = source.OrderBy(a => a.dFechaEmision);
                    }
                    else if (SortOrder == "desc")
                    {
                        source = source.OrderByDescending(a => a.dFechaEmision);
                    }
                    break;
                }
            }

            int TotalRows = source.Count();

            if (PageSize != 0)
            {
                source = source.Skip((CurrentPage - 1) * PageSize).Take(PageSize);
            }

            List <FacturaResponse> facturas = source.ToList();

            return(Ok(new PagedList <FacturaResponse>(facturas, TotalRows)));
        }