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 GenerarComprobante(ComprobanteKioskoDto dto, long cajaId) { using (var context = new ModeloXCommerceContainer()) { var nuevoComprobante = new ComprobanteFactura { Numero = Convert.ToInt32(UltimoComprobanteId()), Fecha = DateTime.Now, SubTotal = dto.SubTotal, Descuento = dto.Descuento, Total = dto.Total, UsuarioId = dto.UsuarioId, ClienteId = dto.ClienteId, TipoComprobante = dto.TipoComprobante }; context.Comprobantes.Add(nuevoComprobante); context.SaveChanges(); var comprobante = context.Comprobantes.FirstOrDefault(x => x.Numero == dto.Numero); foreach (var items in dto.Items) { comprobante.DetalleComprobantes.Add(new AccesoDatos.DetalleComprobante { ComprobanteId = comprobante.Id, Codigo = items.CodigoProducto, Descripcion = items.DescripcionProducto, PrecioUnitario = items.PrecioUnitario, Cantidad = items.Cantidad, SubTotal = items.SubTotalLinea, ArticuloId = items.ArticuloId }); } context.SaveChanges(); } }