public PartialViewResult DesgloseCierrePartial(int id) { var dia = _service.BuscarDiaContable(id); var cierre = _db.Set <CierreDeCaja>().SingleOrDefault(c => c.DiaContableId == dia.Id); return(PartialView("_DesgloseDeEfectivoCierrePartial", cierre.Desglose)); }
public ActionResult Index(int id = 0) { if (id == -1) { TempData["error"] = "El dia seleccionado no existe!"; id = 0; } var diaContable = id == 0 ? _periodoContableService.GetDiaContableActual() : _periodoContableService.BuscarDiaContable(id); ViewBag.DiaContable = diaContable; return(View()); }
public PartialViewResult ResumenDeOperaciones(int id) { var diaContable = _periodoContableService.BuscarDiaContable(id); var operaciones = new List <ResumenDeOperaciones>(); operaciones.AddRange(_db.Set <OtrosGastos>().Where(g => g.DiaContableId == id).Select(o => new ResumenDeOperaciones() { Detalle = o.ConceptoDeGasto.Nombre, Importe = -o.Importe, CentroDeCosto = "Ninguno", Fecha = o.DiaContable.Fecha, Usuario = "No tiene", Tipo = "Otros gastos" })); var ventas = _db.Set <Venta>().Where(g => g.DiaContableId == id).ToList(); var compras = _db.Set <Compra>().Where(g => g.DiaContableId == id).ToList(); foreach (var venta in ventas) { var fecha = venta.Fecha; operaciones.Add(new ResumenDeOperaciones() { Tipo = "Venta", Detalle = venta.Resumen, Importe = venta.Importe, Fecha = fecha, CentroDeCosto = venta.PuntoDeVenta.CentroDeCosto.Nombre, Usuario = venta.Usuario.UserName }); } foreach (var compra in compras) { operaciones.Add(new ResumenDeOperaciones() { Tipo = "Compra", Detalle = string.Join(",", compra.Productos.Select(p => p.Producto.Nombre)), Importe = -compra.Productos.Sum(p => p.ImporteTotal), Fecha = compra.Fecha, CentroDeCosto = "Ninguno", Usuario = compra.Usuario.UserName }); } return(PartialView("_ResumenDeOperacionesPartial", operaciones)); }
public CierreViewModel VerResumen(int id) { var dia = _periodoContableService.BuscarDiaContable(id); var cierre = _db.Set <CierreDeCaja>().SingleOrDefault(c => c.DiaContableId == id); var porcientos = _db.Set <PorcientoMenu>().ToList(); var totalVentas = 0m; var ventasSinPorciento = 0m; var ventasAlCosto = 0m; var ventasPorFacturas = 0m; var centrosDeCosto = new List <ResumenCentroCosto>(); if (_db.Set <Venta>().Any(v => v.DiaContableId == dia.Id && (v.EstadoDeVenta == EstadoDeVenta.PagadaEnEfectivo || v.EstadoDeVenta == EstadoDeVenta.PagadaPorTarjeta || v.EstadoDeVenta == EstadoDeVenta.PagadaPorFactura))) { var ventas = _db.Set <Venta>() .Where( v => v.DiaContableId == dia.Id && (v.EstadoDeVenta == EstadoDeVenta.PagadaEnEfectivo || v.EstadoDeVenta == EstadoDeVenta.PagadaPorTarjeta || v.EstadoDeVenta == EstadoDeVenta.PagadaPorFactura)).ToList(); totalVentas = ventas.Where(v => v.EstadoDeVenta == EstadoDeVenta.PagadaEnEfectivo || v.EstadoDeVenta == EstadoDeVenta.PagadaPorTarjeta).Sum(v => v.Importe); ventasPorFacturas = ventas.Where(v => v.EstadoDeVenta == EstadoDeVenta.PagadaPorFactura).Sum(v => v.Importe); ventasSinPorciento = ventas.Sum( v => v.Elaboraciones.Where( e => porcientos.Any(p => p.ElaboracioId == e.ElaboracionId && !p.SeCalcula) && e.Venta.Observaciones != "Venta al costo") .Sum(s => s.ImporteTotal)); ventasAlCosto = ventas.Where(v => v.Observaciones == "Venta al costo") .Sum( v => v.Importe); centrosDeCosto = ventas.Where(v => v.EstadoDeVenta == EstadoDeVenta.PagadaEnEfectivo || v.EstadoDeVenta == EstadoDeVenta.PagadaPorTarjeta).SelectMany(vw => vw.Elaboraciones.GroupBy(e => e.Elaboracion.CentroDeCosto).Select(v => new ResumenCentroCosto() { Nombre = v.Key.Nombre, Importe = v.Sum(ve => ve.ImporteTotal) })).GroupBy(e => e.Nombre).Select(e => new ResumenCentroCosto() { Nombre = e.Key, Importe = e.Sum(s => s.Importe) }).ToList(); } var extracciones = _cuentasServices.GetMovimientosDeCuenta("Caja") .Where(m => m.Asiento.DiaContableId == dia.Id && (m.Asiento.Detalle.StartsWith("Extracción") || m.Asiento.Detalle.StartsWith("Pago") || m.Asiento.Detalle.StartsWith("Compra"))).Sum(m => m.Importe); var extraccionCierre = _cuentasServices.GetMovimientosDeCuenta("Caja") .Where(m => m.Asiento.DiaContableId == dia.Id && (m.Asiento.Detalle.StartsWith("Cierre"))).Sum(m => m.Importe); var pagoTrabajadores = _cuentasServices.GetMovimientosDeCuenta("Caja") .Where(m => m.Asiento.DiaContableId == dia.Id && (m.Asiento.Detalle.StartsWith("Trabajadores"))).Sum(m => m.Importe); var depositos = _cuentasServices.GetMovimientosDeCuenta("Caja") .Where(m => m.Asiento.DiaContableId == dia.Id && m.TipoDeOperacion == TipoDeOperacion.Debito && m.Asiento.Detalle.StartsWith("Deposito")).Sum(m => m.Importe); var propinas = _db.Set <Propina>().Any(v => v.Venta.DiaContableId == dia.Id) ? _db.Set <Propina>().Where(v => v.Venta.DiaContableId == dia.Id).Sum(c => c.Importe) : 0; var resumen = new CierreViewModel() { Fecha = dia.Fecha, EfectivoAnterior = 100, Ventas = totalVentas, VentasPorFactura = ventasPorFacturas, VentasSinPorciento = ventasSinPorciento, VentasAlCosto = ventasAlCosto, Depositos = depositos, Extracciones = extracciones, Propinas = propinas, ExtraccionCierre = extraccionCierre, PagoTrabajadores = pagoTrabajadores, Desgloce = cierre != null?cierre.Desglose.ToList() : null, CentrosDeCosto = centrosDeCosto }; return(resumen); }