Ejemplo n.º 1
0
 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();
            }
        }