Beispiel #1
0
        public FrmEditarArticuloPedido(int id, int idPedido)
        {
            InitializeComponent();
            this.idPedido = idPedido;
            medidaBindingSource.DataSource = DatosMedida.getMedidas();

            if (id == 0)
            {
                articuloPedidoBindingSource.Add(new ArticuloPedido());
            }
            else
            {
                articuloPedidoBindingSource.Add(DatosArticuloPedido.getArticuloPedido(id));

                cbMedida.SelectedItem  = ((ArticuloPedido)articuloPedidoBindingSource.Current).Medida;
                cbMedida.SelectedValue = ((ArticuloPedido)articuloPedidoBindingSource.Current).Medida.Id;

                ArticuloPedido ap = (ArticuloPedido)articuloPedidoBindingSource.Current;

                if (ap.Nombre != "")
                {
                    this.Text = "Editar " + ap.Nombre;
                }
            }
        }
        public static ArticuloPedido getArticuloPedido(int id)
        {
            ArticuloPedido ap  = new ArticuloPedido();
            SqlConnection  cnn = new SqlConnection(conexion);

            //abro la conexion
            cnn.Open();

            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("select id, nombre, cantidad, descripcion, idMedida, idPedido from ArticulosPedidos where id = @id");

            //asigno la conexion al comando
            cmd.Parameters.Add(new SqlParameter("@id", id));

            cmd.Connection = cnn;
            //creo el datareader
            SqlDataReader obdr = cmd.ExecuteReader();

            //recorro el datareader
            while (obdr.Read())
            {
                ap.Id          = obdr.GetInt32(0);
                ap.Nombre      = obdr.GetString(1);
                ap.Cantidad    = obdr.GetDouble(2);
                ap.Descripcion = obdr.GetString(3);
                ap.Medida      = DatosMedida.getMedida(obdr.GetInt32(4));
                ap.Pedido      = DatosPedido.getPedido(obdr.GetInt32(5));
            }

            cnn.Close();

            return(ap);
        }
Beispiel #3
0
        protected bool guardarArticuloPedido(ArticuloPedido articuloPedido, int idPedido)
        {
            articuloPedido.IdPedido = idPedido;

            Articulo                    articuloAux       = articuloPedido.Articulo;
            EstadoArticuloPedido        estadoArticuloAux = articuloPedido.EstadoArticuloPedido;
            List <EstadoArticuloPedido> estadosAux        = articuloPedido.EstadosArticuloPedido;

            articuloPedido.Articulo = null;
            articuloPedido.EstadosArticuloPedido = null;

            Token token = (Token)Session["token"];

            _articuloPedidoService = new ArticuloPedidoService(token.access_token);
            int idArticuloPedido = _articuloPedidoService.Guardar(articuloPedido);

            if (idArticuloPedido == 0)
            {
                return(false);
            }

            articuloPedido.Id       = idArticuloPedido;
            articuloPedido.Articulo = articuloAux;
            articuloPedido.EstadosArticuloPedido = estadosAux;
            return(true);
        }
Beispiel #4
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                if (!validaciones())
                {
                    return;
                }

                ArticuloPedido ap = (ArticuloPedido)articuloPedidoBindingSource.Current;
                ap.Medida = (Medida)cbMedida.SelectedItem;

                Pedido p = new Pedido();
                p.Id      = idPedido;
                ap.Pedido = p;

                if (ap.Id == 0)
                {
                    DatosArticuloPedido.Crear(ap);
                }
                else
                {
                    DatosArticuloPedido.Modificar(ap);
                }
                Close();
            }
            catch
            {
                MessageBox.Show("Complete todos los campos");
            }
        }
        public async Task <IHttpActionResult> Post([FromBody] ArticuloPedido articulo)
        {
            var idArticuloPedido = await _articuloPedidoBl.GuardarAsync(articulo);

            if (idArticuloPedido == 0)
            {
                throw new Exception("No se pudo crear el articulo pedido");
            }
            return(Ok(idArticuloPedido));
        }
Beispiel #6
0
        public bool Modificar(ArticuloPedido articuloPedido, int id)
        {
            string url       = $"http://localhost/restaurant/api/articuloPedidos/{id}";
            var    respuesta = _restClientHttp.Put <bool>(url, articuloPedido);

            if (respuesta.StatusName != HttpStatusCode.OK)
            {
                return(false);
            }
            return(respuesta.Response);
        }
Beispiel #7
0
        public int Guardar(ArticuloPedido articuloPedido)
        {
            string url       = "http://localhost/restaurant/api/articuloPedidos";
            var    respuesta = _restClientHttp.Post <int>(url, articuloPedido);

            if (respuesta.StatusName != HttpStatusCode.OK)
            {
                return(0);
            }
            return(respuesta.Response);
        }
        public async Task <IHttpActionResult> Put([FromBody] ArticuloPedido articulo, int id)
        {
            if (id == 0)
            {
                throw new Exception("El id del articulo pedido debe ser mayor a cero");
            }
            articulo.Id = id;
            var esActualizado = await _articuloPedidoBl.ModificarAsync(articulo);

            if (esActualizado == 0)
            {
                throw new Exception("No se pudo actualizar el articulo pedido");
            }
            return(Ok(true));
        }
        public Task <int> InsertAsync(ArticuloPedido articuloPedido)
        {
            const string spName = "sp_insertArticuloPedido";

            return(_repository.ExecuteProcedureAsync <int>(spName, new Dictionary <string, object>
            {
                { "@p_precio", articuloPedido.Precio },
                { "@p_cantidad", articuloPedido.Cantidad },
                { "@p_total", articuloPedido.Total },
                { "@p_articulo_id", articuloPedido.IdArticulo },
                { "@p_pedidoId", articuloPedido.IdPedido },
                { "@p_estado_articulo_pedido_id", articuloPedido.IdEstadoArticuloPedido },
                { "@p_comentarios", articuloPedido.Comentarios },
                { "@p_return", 0 }
            }, CommandType.StoredProcedure));
        }
Beispiel #10
0
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            try
            {
                ArticuloPedido ap = (ArticuloPedido)articuloPedidoBindingSource.Current;

                if (MessageBox.Show("¿Esta seguro de borrar a " + ap.Nombre + "?", "Eliminar", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    DatosArticuloPedido.Eliminar(ap);
                    Actualizar();
                }
            }
            catch
            {
                MessageBox.Show("No seleccionó nada");
            }
        }
        public static void Eliminar(ArticuloPedido ap)
        {
            //creo la conexion
            SqlConnection cnn = new SqlConnection(conexion);

            //abro la conexion
            cnn.Open();

            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("delete from ArticulosPedidos Where id = @id");

            //Cargo el valor del parametro
            cmd.Parameters.Add(new SqlParameter("@id", ap.Id));

            //asigno la conexion al comando
            cmd.Connection = cnn;
            cmd.ExecuteNonQuery();
            cnn.Close();
        }
Beispiel #12
0
        protected ArticuloPedido crearArticuloPedido(Articulo articulo, int cantidad, string comentarios)
        {
            ArticuloPedido nuevoArticuloPedido = new ArticuloPedido();

            nuevoArticuloPedido.Articulo    = articulo;
            nuevoArticuloPedido.IdArticulo  = articulo.Id;
            nuevoArticuloPedido.Precio      = articulo.Precio;
            nuevoArticuloPedido.Cantidad    = cantidad;
            nuevoArticuloPedido.Total       = nuevoArticuloPedido.Precio * cantidad;
            nuevoArticuloPedido.Comentarios = comentarios;

            EstadoArticuloPedido estadoInicialArticuloPedido = new EstadoArticuloPedido();

            estadoInicialArticuloPedido.Id            = EstadoArticuloPedido.pendiente;
            estadoInicialArticuloPedido.Nombre        = "Pendiente";
            nuevoArticuloPedido.EstadosArticuloPedido = new List <EstadoArticuloPedido>();
            nuevoArticuloPedido.EstadosArticuloPedido.Add(estadoInicialArticuloPedido);
            nuevoArticuloPedido.IdEstadoArticuloPedido = estadoInicialArticuloPedido.Id;

            return(nuevoArticuloPedido);
        }
        public static void Crear(ArticuloPedido ap)
        {
            //creo la conexion
            SqlConnection cnn = new SqlConnection(conexion);

            //abro la conexion
            cnn.Open();

            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("insert into ArticulosPedidos (nombre, cantidad, descripcion, idMedida, idPedido) values (@nombre, @cantidad, @descripcion, @idMedida, @idPedido)");

            //Cargo el valor del parametro
            cmd.Parameters.Add(new SqlParameter("@nombre", ap.Nombre));
            cmd.Parameters.Add(new SqlParameter("@cantidad", ap.Cantidad));
            cmd.Parameters.Add(new SqlParameter("@descripcion", ap.Descripcion));
            cmd.Parameters.Add(new SqlParameter("@idMedida", ap.Medida.Id));
            cmd.Parameters.Add(new SqlParameter("@idPedido", ap.Pedido.Id));
            //asigno la conexion al comando
            cmd.Connection = cnn;
            cmd.ExecuteNonQuery();
            cnn.Close();
        }
        public static void Modificar(ArticuloPedido ap)
        {
            //creo la conexion
            SqlConnection cnn = new SqlConnection(conexion);

            //abro la conexion
            cnn.Open();

            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("update ArticulosPedidos set nombre = @nombre, cantidad = @cantidad, descripcion = @descripcion, idMedida = @idMedida, idPedido = @idPedido Where id = @id");

            //Cargo el valor del parametro
            cmd.Parameters.Add(new SqlParameter("@id", ap.Id));
            cmd.Parameters.Add(new SqlParameter("@nombre", ap.Nombre));
            cmd.Parameters.Add(new SqlParameter("@cantidad", ap.Cantidad));
            cmd.Parameters.Add(new SqlParameter("@descripcion", ap.Descripcion));
            cmd.Parameters.Add(new SqlParameter("@idMedida", ap.Medida.Id));
            cmd.Parameters.Add(new SqlParameter("@idPedido", ap.Pedido.Id));
            //asigno la conexion al comando
            cmd.Connection = cnn;
            cmd.ExecuteNonQuery();
            cnn.Close();
        }
Beispiel #15
0
 public Task <int> GuardarAsync(ArticuloPedido articuloPedido)
 {
     return(_unitOfWork.ArticuloPedidoDal.InsertAsync(articuloPedido));
 }
Beispiel #16
0
        protected void btnAgregarArticuloPedido_Click(object sender, EventArgs e)
        {
            validarIngreso();
            Page.Validate("ValidacionArticulo");
            if (!Page.IsValid)
            {
                upModalArticulo.Update();
                return;
            }
            try
            {
                int    cantidad    = Convert.ToInt32(txtCantidadArticulo.Text);
                string comentarios = txtComentarioArticulo.Text;
                int    idArticulo  = Convert.ToInt32(txtIdArticulo.Text);

                if (cantidad > 10)
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "erroArticulo", "Swal.fire('La cantidad máxima por pedido es de 10 artículos', '', 'error');", true);
                    return;
                }
                // Info de artículos disponibles para pedir
                List <Articulo> articulosDisponibles = (List <Articulo>)Session["articulosDisponibles"];
                Articulo        articulo             = articulosDisponibles.FirstOrDefault(a => a.Id == idArticulo);
                if (articulo == null)
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "erroArticulo", "Swal.fire('Error al agregar artículo', '', 'error');", true);
                    return;
                }

                List <ArticuloPedido> articulosPedido = (List <ArticuloPedido>)Session["articulosPedidoCliente"];
                Pedido pedidoCliente = (Pedido)Session["pedidoCliente"];

                ArticuloPedido nuevoArticuloPedido = crearArticuloPedido(articulo, cantidad, comentarios);
                articulosPedido.Add(nuevoArticuloPedido);
                if (pedidoCliente != null)
                {
                    guardarArticuloPedido(nuevoArticuloPedido, pedidoCliente.Id);
                }
                else
                {
                    btnHacerPedido.Visible = true;
                }

                recargarArticulosPedido(articulosPedido);

                if (pedidoCliente != null)
                {
                    pedidoCliente.Total = articulosPedido.Sum(x => x.Total);
                    Token token = (Token)Session["token"];
                    _pedidoService             = new PedidoService(token.access_token);
                    pedidoCliente.EstadoPedido = null;
                    pedidoCliente.Reserva      = null;
                    bool editar = _pedidoService.Modificar(pedidoCliente, pedidoCliente.Id);
                }
                limpiarTabsMenu(articulo.IdTipoConsumo);
                Session["pedidoCliente"] = pedidoCliente;

                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "modalArticulo", "$('#modalArticulo').modal('hide');", true);
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "creacionArticulo", "Swal.fire('Artículo agregado al pedido', '', 'success');", true);
            }
            catch (Exception ex)
            {
                string mensaje = ex != null && ex.Message != null ? ex.Message : "Ocurrió un error inesperado. Intente nuevamente";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "error", "Swal.fire('Error', '" + mensaje + "', 'error');", true);
                return;
            }
            limpiarTabs();
            tabMiOrden.Attributes.Add("class", "nav-link active");
            divMiOrden.Attributes.Add("class", "tab-pane active show");
        }
Beispiel #17
0
        private async Task <string> GetHtmlReportePlatos(Usuario usuario, ReporteDto reporte)
        {
            var fecha         = $"{reporte.FechaDesde.Date:dd-MM-yyyy} al {reporte.FechaHasta.Date:dd-MM-yyyy}";
            var solicitante   = $"{usuario.Persona.Nombre} {usuario.Persona.Apellido}";
            var rutaImagen    = "C:\\Storage\\logo_sxxi.png";
            var detallePlatos = "";

            var pedidos = await _pedidoBl.ObtenerTodosAsync();

            pedidos = pedidos.Where(x => x.FechaHoraInicio.Date >= reporte.FechaDesde.Date && x.FechaHoraInicio.Date <= reporte.FechaHasta.Date)
                      .OrderBy(x => x.FechaHoraInicio)
                      .ToList();

            var articulos = new List <ArticuloPedido>();

            foreach (var x in pedidos)
            {
                var articulosPedidos = await _articuloPedidoBl.ObtenerPorIdPedidoAsync(x.Id);

                articulos.AddRange(articulosPedidos);
            }

            articulos = articulos.OrderByDescending(x => x.Cantidad).ToList();

            var articulosGroup = articulos.GroupBy(x => x.Articulo.Id).ToList();

            var articuloConMasVentas = new ArticuloPedido
            {
                Cantidad = 0,
                Articulo = new Articulo
                {
                    Nombre = string.Empty
                }
            };

            var articuloConMenosVentas = new ArticuloPedido
            {
                Cantidad = 100,
                Articulo = new Articulo
                {
                    Nombre = string.Empty
                }
            };

            var articulosTemp = new List <ArticuloPedido>();

            articulosGroup.ForEach(x =>
            {
                var cantidad    = 0;
                var nombrePlato = string.Empty;
                var tipoPlato   = string.Empty;

                articulos.ForEach(b =>
                {
                    if (x.Key == b.Articulo.Id)
                    {
                        cantidad   += b.Cantidad;
                        nombrePlato = b.Articulo.Nombre;
                        tipoPlato   = b.Articulo.TipoConsumo.Nombre;
                    }
                });

                articulosTemp.Add(new ArticuloPedido
                {
                    Cantidad = cantidad,
                    Articulo = new Articulo
                    {
                        Nombre      = nombrePlato,
                        TipoConsumo = new TipoConsumo
                        {
                            Nombre = tipoPlato
                        }
                    }
                });

                if (cantidad > articuloConMasVentas.Cantidad)
                {
                    articuloConMasVentas.Cantidad        = cantidad;
                    articuloConMasVentas.Articulo.Nombre = nombrePlato;
                }

                if (cantidad < articuloConMenosVentas.Cantidad)
                {
                    articuloConMenosVentas.Cantidad        = cantidad;
                    articuloConMenosVentas.Articulo.Nombre = nombrePlato;
                }
            });

            articulosTemp = articulosTemp.OrderByDescending(x => x.Cantidad).ToList();

            foreach (var x in articulosTemp)
            {
                detallePlatos += "<tr>";
                detallePlatos += $"<td>{x.Articulo.Nombre}</td>";
                detallePlatos += $"<td>{x.Articulo.TipoConsumo.Nombre}</td>";
                detallePlatos += $"<td>{x.Cantidad}</td>";
                detallePlatos += "</tr>";
            }

            if (detallePlatos == string.Empty)
            {
                detallePlatos = "<tr><td colspan='3'><p class='no-encontrado text-center'>No se encontraron platos consumidos en el periodo seleccionado</p></td></tr>";
            }

            var platoMasPedido      = "-";
            var platoMenosPedido    = "-";
            var unidadesMasPedido   = 0;
            var unidadesMenosPedido = 0;

            if (articuloConMasVentas.Articulo.Nombre != string.Empty)
            {
                platoMasPedido    = articuloConMasVentas.Articulo.Nombre;
                unidadesMasPedido = articuloConMasVentas.Cantidad;
            }

            if (articuloConMenosVentas.Articulo.Nombre != string.Empty)
            {
                platoMenosPedido    = articuloConMenosVentas.Articulo.Nombre;
                unidadesMenosPedido = articuloConMenosVentas.Cantidad;
            }

            return
                (@"<!DOCTYPE html><html><head><meta charset='utf-8'></meta><style>table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}body{font-family:'Arial','Verdana','Helvetica',Sans-serif;font-size:13px}h1{color:#22776b}h3{color:#383838}.center{margin:0 auto}.w-100{width:100%}.w-50{width:49%}.logo{width:100px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.d-inline-block{display:inline-block;vertical-align:top}.tabla-estilizada{width:100%;margin:25px 0}.tabla-estilizada thead tr{background-color:#009879;color:#fff;text-align:left}.tabla-estilizada thead tr th.transparente{background-color:#fff !important}.tabla-estilizada th, .tabla-estilizada td{padding:12px 15px}.tabla-estilizada tbody tr{border-bottom:1px solid #ddd}.tabla-estilizada tbody tr:nth-of-type(even){background-color:#f3f3f3}.tabla-estilizada tbody tr:last:child{border-bottom:2px solid #009879}.tabla-estilizada.tabla-estilizada-resumen th:nth-child(even){background-color:#efefef;color:#2d2d2d}.tabla-estilizada.egresos thead tr{background-color:#d49292}.tabla-estilizada.ingresos thead tr{background-color:#71a2a5}.tabla-estilizada.egresos td, .tabla-estilizada.ingresos td{text-align:center}.tabla-estilizada.egresos td:last-child, .tabla-estilizada.ingresos td:last-child{text-align:right}.no-encontrado{color:#d49292;font-weight:600}.margen-tabla-resumen{margin-bottom:29px}.p-1{padding:5px!important}</style></head><body><div id='container'><div class='w-100'> <img class='logo' src='" + rutaImagen + "'/></div><div class='w-100 text-center'><h1>Reporte de platos consumidos</h1></div><div class='w-100'><table class='tabla-estilizada tabla-estilizada-resumen'><thead><tr><th>Fecha:</th><th>" + fecha + "</th><th class='transparente p-1'></th><th class='transparente p-1'></th><th>Más pedido</th><th class='text-right'>" + platoMasPedido + "</th><th>Unidades</th><th class='text-right'>" + unidadesMasPedido + "</th></tr><tr><th>Solicitante:</th><th>" + solicitante + "</th><th class='transparente p-1'></th><th class='transparente p-1'></th><th>Menos pedido</th><th class='text-right'>" + platoMenosPedido + "</th><th>Unidades</th><th class='text-right'>" + unidadesMenosPedido + "</th></tr></thead></table></div><div class='w-100'><h3>Detalle de platos pedidos</h3><table class='tabla-estilizada egresos text-left'><thead><tr><th class='text-center'>Nombre del plato</th><th class='text-center'>Tipo de plato</th><th class='text-right'>Unidades pedidas</th></tr></thead><tbody>" + detallePlatos + "</tbody></table></div></div></body></html>");
        }
Beispiel #18
0
 public Task <int> ModificarAsync(ArticuloPedido articuloPedido)
 {
     return(_unitOfWork.ArticuloPedidoDal.UpdateAsync(articuloPedido));
 }