public long CerrarKiosco(ComprobanteKioscoDto kiosco, TipoComprobante tipo) { using (var context = new ModeloXCommerceContainer()) { //GENERO DETALLE DE CAJA var cfId = context.Personas.OfType <Cliente>().FirstOrDefault(x => x.Dni == "99999999").Id; if (cfId == null) { throw new Exception("Falta consumidor final"); } var comp = new ComprobanteFactura { ClienteId = cfId, Descuento = kiosco.Descuento, Fecha = DateTime.Now, Numero = NumeroDeComprobante.UltimoNumeroComprobante(), TipoComprobante = tipo, UsuarioId = Entidad.Entidad.UsuarioId, SubTotal = kiosco.SubTotal, Total = kiosco.Total, DetalleComprobantes = new List <DetalleComprobante>() }; context.Comprobantes.Add(comp); var list = new List <DetalleComprobante>(); foreach (var items in kiosco.Items) { var detComp = new DetalleComprobante { ComprobanteId = comp.Id, SubTotal = items.SubTotal, Codigo = items.CodigoProducto, Cantidad = items.Cantidad, PrecioUnitario = items.PrecioUnitario, Descripcion = items.Descripcion, ArticuloId = items.ArticuloId }; list.Add(detComp); context.DetalleComprobantes.Add(detComp); } comp.DetalleComprobantes = list; context.SaveChanges(); //GENERAR MOVIMIENTO MovimientoServicio m = new MovimientoServicio(); m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comp.Id, Fecha = DateTime.Now, Monto = kiosco.Total, TipoMovimento = TipoMovimiento.Ingreso, UsuarioId = Entidad.Entidad.UsuarioId, Descripcion = $"FC_{comp.TipoComprobante}_{comp.Numero.ToString("0000")}_{comp.Fecha.ToString("ddmmyyyy")}" }); return(comp.Id); } }
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 void Entregar(DeliveryDto comprobante) { using (var context = new ModeloXCommerceContainer()) { var Comprobante = context.Comprobantes.OfType <AccesoDatos.ComprobanteDelivery>().FirstOrDefault(x => x.Id == comprobante.Id); Comprobante.EstadoPedido = EstadoPedido.Entregado; Comprobante.TipoComprobante = comprobante.TipoComprobante; var movimiento = new MovimientoServicio(); movimiento.GenerarMovimiento(new MovimientoDto { Monto = comprobante.Total, CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, TipoMovimento = TipoMovimiento.Ingreso, UsuarioId = Entidad.Entidad.UsuarioId, Descripcion = $"FC_{ Comprobante.TipoComprobante }_{ comprobante.Numero.ToString("0000") }_{ comprobante.Fecha.ToString("ddmmyyyy") }" }); foreach (var item in Comprobante.DetalleComprobantes) { if (context.Articulos.FirstOrDefault(x => x.Id == item.ArticuloId).DescuentaStock) { var articulo = context.Articulos.FirstOrDefault(x => x.Id == item.ArticuloId); if (articulo == null) { throw new Exception("No se encontro la entidad"); } articulo.Stock -= item.Cantidad; } } //TODO MovimientoServicio m = new MovimientoServicio(); 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) { //CUENTA CORRIENTE NO GENERA DETALLE DE CAJA AL INSTANTE(DEBE PAGAR PARA GENERARLO) CuentaCorrienteServicio cta = new CuentaCorrienteServicio(); cta.Vender(comprobante.ClienteId, comprobante.Total); OperacionServicio op = new OperacionServicio(); op.Agregar(new OperacionDto { TipoOperacion = TipoOperacion.Venta, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = comprobante.MontoCtaCte, CuentaCorrienteId = cta.ObtenerCorrientePorClienteId(comprobante.ClienteId).Id }); //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 void CerrarComprobanteCompra(ComprobanteCompraDto comprobante) { using (var context = new ModeloXCommerceContainer()) { ArticuloServicio art = new ArticuloServicio(); //DetalleComprobante var Comprobante = context.Comprobantes.OfType <AccesoDatos.ComprobanteCompra>().FirstOrDefault(x => x.Id == comprobante.Id); Comprobante.TipoComprobante = comprobante.TipoComprobante; foreach (var item in comprobante.Items) { var articulo = art.ObtenerPorId(item.ArticuloId); articulo.Stock += item.Cantidad; art.Modificar(articulo); } Comprobante.DetalleComprobantes = comprobante.Items.Select(x => new AccesoDatos.DetalleComprobante { ArticuloId = x.ArticuloId, Cantidad = x.Cantidad, ComprobanteId = comprobante.Id, PrecioUnitario = x.PrecioUnitario, SubTotal = x.SubTotal, Descripcion = x.Descripcion, Codigo = x.CodigoProducto }).ToList(); context.SaveChanges(); //Movimiento 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.Egreso, Descripcion = $"FC_{Comprobante.TipoComprobante}_{Comprobante.Numero.ToString("0000")}_{Comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } //if (dto.MontoCtaCte > 0) //{ // //CUENTA CORRIENTE NO GENERA DETALLE DE CAJA AL INSTANTE(DEBE PAGAR PARA GENERARLO) // CuentaCorrienteServicio cta = new CuentaCorrienteServicio(); // cta.Vender(comprobante.ClienteId, comprobante.Total); // OperacionServicio op = new OperacionServicio(); // op.Agregar(new OperacionDto // { // TipoOperacion = TipoOperacion.Venta, // ComprobanteId = comprobante.Id, // Fecha = DateTime.Now, // Monto = dto.MontoCtaCte, // CuentaCorrienteId = cta.ObtenerCorrientePorClienteId(comprobante.ClienteId).Id // }); // //GENERAR MOVIMIENTO // m.GenerarMovimiento(new MovimientoDto // { // CajaId = Entidad.Entidad.CajaId, // ComprobanteId = comprobante.Id, // Fecha = DateTime.Now, // Monto = dto.MontoCtaCte, // TipoMovimento = TipoMovimiento.Egreso, // 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.Egreso, 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.Egreso, Descripcion = $"CH_{Comprobante.TipoComprobante}_{Comprobante.Numero.ToString("0000")}_{Comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } } }