public void CerrarMesa (ComprobanteMesaDto Comprobante, TipoComprobante tipoComprobante) { using (var context = new ModeloXCommerceContainer()) { if (Comprobante.Total == 0) { var mesaCero = context.Mesas.FirstOrDefault(x => x.Id == Comprobante.MesaId); if (mesaCero == null) { throw new Exception("no se encontro la entidad"); } mesaCero.EstadoMesa = EstadoMesa.Cerrada; var comprobanteCero = context.Comprobantes.OfType <ComprobanteSalon>().FirstOrDefault(x => x.MesaId == Comprobante.MesaId && x.EstadoComprobante == EstadoComprobanteSalon.Proceso); comprobanteCero.EstadoComprobante = EstadoComprobanteSalon.Finalizado; context.SaveChanges(); return; } //CAMBIAR ESTADO MESA var mesa = context.Mesas.FirstOrDefault(x => x.Id == Comprobante.MesaId); if (mesa == null) { throw new Exception("no se encontro la entidad"); } mesa.EstadoMesa = EstadoMesa.Cerrada; //CAMBIAR ESTADO COMPROBANTE var comprobante = context.Comprobantes.OfType <ComprobanteSalon>().FirstOrDefault(x => x.MesaId == Comprobante.MesaId && x.EstadoComprobante == EstadoComprobanteSalon.Proceso); comprobante.Numero = NumeroDeComprobante.UltimoNumeroComprobante(); comprobante.TipoComprobante = tipoComprobante; comprobante.SubTotal = Comprobante.SubTotal; comprobante.Descuento = Comprobante.Descuento; comprobante.Total = Comprobante.Total; comprobante.EstadoComprobante = EstadoComprobanteSalon.Finalizado; comprobante.TipoComprobante = Comprobante.TipoComprobante; MovimientoServicio m = new MovimientoServicio(); FormaPagoServicio fp = new FormaPagoServicio(); if (Comprobante.MontoEfectivo > 0) { //GENERAR MOVIMIENTO m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = Comprobante.MontoEfectivo, TipoMovimento = TipoMovimiento.Ingreso, Descripcion = $"FC_{comprobante.TipoComprobante}_{comprobante.Numero.ToString("0000")}_{comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } if (Comprobante.MontoCtaCte > 0) { //GENERAR MOVIMIENTO m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = Comprobante.MontoCtaCte, TipoMovimento = TipoMovimiento.Ingreso, Descripcion = $"CC_{comprobante.TipoComprobante}_{comprobante.Numero.ToString("0000")}_{comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } if (Comprobante.MontoTarjeta > 0) { m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = Comprobante.MontoTarjeta, TipoMovimento = TipoMovimiento.Ingreso, Descripcion = $"TC_{comprobante.TipoComprobante}_{comprobante.Numero.ToString("0000")}_{comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } if (Comprobante.MontoCheque > 0) { m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = Comprobante.MontoCheque, TipoMovimento = TipoMovimiento.Ingreso, Descripcion = $"CH_{comprobante.TipoComprobante}_{comprobante.Numero.ToString("0000")}_{comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } context.SaveChanges(); } }
public FormaPagoMesa(long mesaId) : this(new CuentaCorrienteServicio(), new FormaPagoServicio(), new DetalleCajaServicio(), new ComprobanteMesaServicio(), new OperacionServicio()) { _comprobante = _comprobanteMesaServicio.ObtenerComprobanteMesa(mesaId); SetTotal(_comprobante.Total); }