public long GenerarComprobanteCompra(ComprobanteCompraDto dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                //Comprobante
                var cliente = context.Personas.OfType <AccesoDatos.Cliente>().FirstOrDefault(x =>
                                                                                             x.Dni == "99999999");
                if (cliente == null)
                {
                    throw new Exception("no se encontro la entidad");
                }

                var comprobante = new AccesoDatos.ComprobanteCompra
                {
                    Fecha               = DateTime.Now,
                    Numero              = NumeroDeComprobante.UltimoNumeroComprobante(),
                    ProveedorId         = dto.ProveedorId,
                    Total               = dto.Total,
                    SubTotal            = dto.SubTotal,
                    TipoComprobante     = TipoComprobante.X,
                    ClienteId           = cliente.Id,
                    Descuento           = dto.Descuento,
                    UsuarioId           = Entidad.Entidad.UsuarioId,
                    DetalleComprobantes = new List <AccesoDatos.DetalleComprobante>()
                };
                context.Comprobantes.Add(comprobante);
                context.SaveChanges();
                return(comprobante.Id);
            }
        }
Ejemplo n.º 2
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(DeliveryDto dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                if (dto == null)
                {
                    throw new Exception("Comprobante null");
                }
                long direccion = dto.DireccionId;

                if (dto.DireccionId == 0)
                {
                    direccion = context.Direcciones.FirstOrDefault(x => x.Persona.Id == dto.ClienteId).Id;
                }

                var comprobante = new ComprobanteDelivery
                {
                    CadeteId            = dto.CadeteId,
                    ClienteId           = dto.ClienteId,
                    EstadoPedido        = EstadoPedido.Pendiente,
                    Numero              = NumeroDeComprobante.UltimoNumeroComprobante(),
                    Fecha               = DateTime.Now,
                    SubTotal            = dto.SubTotal,
                    Descuento           = dto.Descuento,
                    Total               = dto.Total,
                    UsuarioId           = Entidad.Entidad.UsuarioId,
                    TipoComprobante     = TipoComprobante.X,
                    DireccionId         = direccion,
                    TipoPedido          = TipoPedido.Telefono,
                    DetalleComprobantes = new List <AccesoDatos.DetalleComprobante>()
                };
                foreach (var x in dto.Items)
                {
                    var detalle = new AccesoDatos.DetalleComprobante()
                    {
                        Cantidad       = x.Cantidad,
                        Codigo         = x.CodigoProducto,
                        Descripcion    = x.Descripcion,
                        PrecioUnitario = x.PrecioUnitario,
                        ArticuloId     = x.ArticuloId,
                        SubTotal       = x.SubTotal,
                        ComprobanteId  = dto.Id
                    };
                    comprobante.DetalleComprobantes.Add(detalle);
                }
                context.Comprobantes.Add(comprobante);
                context.SaveChanges();
            }
        }
        public void EditarComprobante(DeliveryDto dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                if (dto == null)
                {
                    throw new Exception("Comprobante null");
                }

                var comprobante = context.Comprobantes.OfType <AccesoDatos.ComprobanteDelivery>().FirstOrDefault(x => x.Id == dto.Id);
                comprobante.CadeteId        = dto.CadeteId;
                comprobante.ClienteId       = dto.ClienteId;
                comprobante.EstadoPedido    = EstadoPedido.Pendiente;
                comprobante.Numero          = NumeroDeComprobante.UltimoNumeroComprobante();
                comprobante.Fecha           = DateTime.Now;
                comprobante.SubTotal        = dto.SubTotal;
                comprobante.Descuento       = dto.Descuento;
                comprobante.Total           = dto.Total;
                comprobante.UsuarioId       = Entidad.Entidad.UsuarioId;
                comprobante.TipoComprobante = TipoComprobante.C;
                comprobante.DireccionId     = dto.DireccionId;
                comprobante.TipoPedido      = TipoPedido.Telefono;
                context.DetalleComprobantes.RemoveRange(context.DetalleComprobantes.Where(x => x.ComprobanteId == comprobante.Id));
                comprobante.DetalleComprobantes = dto.Items.Select(item => new AccesoDatos.DetalleComprobante
                {
                    Cantidad       = item.Cantidad,
                    Codigo         = item.CodigoProducto,
                    Descripcion    = item.Descripcion,
                    ComprobanteId  = dto.Id,
                    PrecioUnitario = item.PrecioUnitario,
                    SubTotal       = item.SubTotal,
                    ArticuloId     = item.ArticuloId
                }).ToList();
                context.SaveChanges();
            }
        }
        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();
            }
        }