/// <summary>
        /// Creates a new order in database
        /// </summary>
        /// <param name="orderRequest">Order Model object with details</param>
        /// <returns>Order id (Guid)</returns>
        public Guid Add(Models.Order orderRequest)
        {
            // generate a new order id
            Guid orderId = Guid.NewGuid();

            // Get data using Entity Framework
            using (SEIEntities context = new SEIEntities())
            {
                context.Orders.Add(new Order
                {
                    OrderId     = orderId,
                    ProductId   = orderRequest.ProductId,
                    CustomerId  = orderRequest.CustomerId,
                    OrderDate   = orderRequest.OrderDate,
                    Quantity    = orderRequest.Quantity,
                    PricePaid   = orderRequest.PricePaid,
                    ShippedDate = orderRequest.ShippedDate,
                    // populate standard audit fields
                    CreationDate   = DateTime.Now,
                    CreationUser   = "******",
                    LastUpdateDate = DateTime.Now,
                    LastUpdateUser = "******"
                });

                // save the data to order table
                context.SaveChanges();

                // return the order id created
                return(orderId);
            }
        }
 /// <summary>
 /// Checks if product is valid in database
 /// </summary>
 /// <param name="productId">Product Id (Guid)</param>
 /// <returns>If product is valid then true otherwise false</returns>
 public bool isValidProduct(Guid productId)
 {
     using (SEIEntities context = new SEIEntities())
     {
         // check if any matching product exist based on product id
         return(context.Products.Any(i => i.ProductId == productId));
     }
 }
 /// <summary>
 /// Checks if customer is valid in database
 /// </summary>
 /// <param name="customerId"></param>
 /// <returns>If customer id is valid then true otherwise false</returns>
 public bool isValidCustomer(Guid customerId)
 {
     // Get data using Entity Framework
     using (SEIEntities context = new SEIEntities())
     {
         // check if any record exist with customer id
         return(context.Customers.Any(i => i.CustomerId == customerId));
     }
 }
 /// <summary>
 /// Gets all products sorted by average rating by custimer highest to lowest
 /// </summary>
 /// <returns>List of products</returns>
 public List <Models.Product> GetProductsByRating()
 {
     // Get data using Entity Framework
     using (SEIEntities context = new SEIEntities())
     {
         // map the data to Product Model before returning
         return(context.Products
                .OrderByDescending(i => i.AverageCustomerRating)  // sort by ratings best on top
                .Select(i => new Models.Product
         {
             ProductId = i.ProductId,
             ProductName = i.ProductName,
             PricePerItem = i.PricePerItem,
             AverageCustomerRating = i.AverageCustomerRating
         })
                .ToList());
     }
 }
        /// <summary>
        /// Gets all orders that are not shipped (have shipped date as null in order table)
        /// </summary>
        /// <returns>Orders List</returns>
        public List <Models.Order> GetPendingOrders()
        {
            // Get data using Entity Framework
            using (SEIEntities context = new SEIEntities())
            {
                // ObjectSet<Order> orders = context.Orders;

                // get the pending orders which are not shipped
                // check based on shipped date. If there is no date then the order is not shipped
                return(context.Orders
                       .Where(i => i.ShippedDate == null)
                       .Select(i => new Models.Order
                {
                    OrderId = i.OrderId,
                    ProductId = i.ProductId,
                    CustomerId = i.CustomerId,
                    CustomerName = i.Customer.CustomerName,                 // get the customer name based on the foreign key relationship
                    OrderDate = i.OrderDate,
                    Quantity = i.Quantity,
                    PricePaid = i.PricePaid
                })
                       .ToList());
            }
        }
Beispiel #6
0
        //Funcion encargada de realizar las consultas a la base de datos
        //Recibe como variable alm_codig que corresponde al codigo de el almacen y categoriaCod que corresponde al codigo de la categoria
        //Si alm_codigo y categoriaCod son igual a 0 se realiza la busqueda para todos los almacenes y categorias
        //Si alm_codigo es distinto de 0 y categoriaCod es igual a 0 se realiza la busqueda por el codigo de almacen y por todas las categorias
        //Si alm_codigo y categoriaCod son distintos de 0 se realiza la busqueda por codigo de almacen y por categoria
        public string dataAF(int alm_codigo, int categoriaCod)
        {
            var           modelAF = new SEIEntities();
            List <string> resAF   = new List <string>();

            if (alm_codigo == 0)
            {
                var queryEquipos = (from equipo in modelAF.ACFI_equipos
                                    join almacen in modelAF.ACFI_almacen on equipo.alm_codigo equals almacen.alm_codigo
                                    join articulos in modelAF.ACFI_articulo on equipo.art_codigo equals articulos.art_codigo
                                    join categoria in modelAF.ACFI_categoria on articulos.cat_codigo equals categoria.cat_codigo
                                    group equipo.alm_codigo by new{
                    alm_codigo = almacen.alm_codigo,
                    alm_nombre = almacen.alm_nombre,
                    equipo_codigo = articulos.art_codigo,
                    art_nombre = articulos.art_nombre,
                    cat_codigo = categoria.cat_codigo,
                    cat_nombre = categoria.cat_nombre
                }
                                    into equip
                                    orderby equip.Key.alm_codigo ascending
                                    select new{
                    alm_codigo = equip.Key.alm_codigo,
                    alm_nombre = equip.Key.alm_nombre,
                    equipo_codigo = equip.Key.equipo_codigo,
                    art_nombre = equip.Key.art_nombre,
                    cat_codigo = equip.Key.cat_codigo,
                    cat_nombre = equip.Key.cat_nombre,
                    cant = equip.Count()
                }
                                    );

                foreach (var resultequipos in queryEquipos)
                {
                    resAF.Add(JsonConvert.SerializeObject(new{
                        alm_codigo = resultequipos.alm_codigo,
                        alm_nombre = resultequipos.alm_nombre,
                        cat_codigo = resultequipos.cat_codigo,
                        cat_nombre = resultequipos.cat_nombre,
                        art_codigo = resultequipos.equipo_codigo,
                        art_nombre = resultequipos.art_nombre,
                        cantidad   = resultequipos.cant
                    }
                                                          ));
                }
            }
            else if (categoriaCod == 0)
            {
                var queryEquipos = (from equipo in modelAF.ACFI_equipos
                                    join almacen in modelAF.ACFI_almacen on equipo.alm_codigo equals almacen.alm_codigo
                                    join articulos in modelAF.ACFI_articulo on equipo.art_codigo equals articulos.art_codigo
                                    join categoria in modelAF.ACFI_categoria on articulos.cat_codigo equals categoria.cat_codigo
                                    where equipo.alm_codigo == alm_codigo
                                    group equipo.alm_codigo by new{
                    alm_codigo = almacen.alm_codigo,
                    alm_nombre = almacen.alm_nombre,
                    equipo_codigo = articulos.art_codigo,
                    art_nombre = articulos.art_nombre,
                    cat_codigo = categoria.cat_codigo,
                    cat_nombre = categoria.cat_nombre
                }
                                    into equip
                                    orderby equip.Key.alm_codigo ascending
                                    select new{
                    alm_codigo = equip.Key.alm_codigo,
                    alm_nombre = equip.Key.alm_nombre,
                    equipo_codigo = equip.Key.equipo_codigo,
                    art_nombre = equip.Key.art_nombre,
                    cat_codigo = equip.Key.cat_codigo,
                    cat_nombre = equip.Key.cat_nombre,
                    cant = equip.Count()
                }
                                    );

                foreach (var resultequipos in queryEquipos)
                {
                    resAF.Add(JsonConvert.SerializeObject(new{
                        alm_codigo = resultequipos.alm_codigo,
                        alm_nombre = resultequipos.alm_nombre,
                        cat_codigo = resultequipos.cat_codigo,
                        cat_nombre = resultequipos.cat_nombre,
                        art_codigo = resultequipos.equipo_codigo,
                        art_nombre = resultequipos.art_nombre,
                        cantidad   = resultequipos.cant
                    }
                                                          ));
                }
            }
            else
            {
                var queryEquipos = (from equipo in modelAF.ACFI_equipos
                                    join almacen in modelAF.ACFI_almacen on equipo.alm_codigo equals almacen.alm_codigo
                                    join articulos in modelAF.ACFI_articulo on equipo.art_codigo equals articulos.art_codigo
                                    join categoria in modelAF.ACFI_categoria on articulos.cat_codigo equals categoria.cat_codigo
                                    where equipo.alm_codigo == alm_codigo
                                    where articulos.cat_codigo == categoriaCod
                                    group equipo.alm_codigo by new{
                    alm_codigo = almacen.alm_codigo,
                    alm_nombre = almacen.alm_nombre,
                    equipo_codigo = articulos.art_codigo,
                    art_nombre = articulos.art_nombre,
                    cat_codigo = categoria.cat_codigo,
                    cat_nombre = categoria.cat_nombre
                }
                                    into equip
                                    orderby equip.Key.alm_codigo ascending
                                    select new{
                    alm_codigo = equip.Key.alm_codigo,
                    alm_nombre = equip.Key.alm_nombre,
                    equipo_codigo = equip.Key.equipo_codigo,
                    art_nombre = equip.Key.art_nombre,
                    cat_codigo = equip.Key.cat_codigo,
                    cat_nombre = equip.Key.cat_nombre,
                    cant = equip.Count()
                }
                                    );

                foreach (var resultequipos in queryEquipos)
                {
                    resAF.Add(JsonConvert.SerializeObject(new{
                        alm_codigo = resultequipos.alm_codigo,
                        alm_nombre = resultequipos.alm_nombre,
                        cat_codigo = resultequipos.cat_codigo,
                        cat_nombre = resultequipos.cat_nombre,
                        art_codigo = resultequipos.equipo_codigo,
                        art_nombre = resultequipos.art_nombre,
                        cantidad   = resultequipos.cant
                    }
                                                          ));
                }
            }

            string json      = JsonConvert.SerializeObject(resAF, Newtonsoft.Json.Formatting.None);
            string resultado = json.Replace("\\", "");

            resultado = resultado.Replace("[\"", "[");
            resultado = resultado.Replace("}\",\"{", "},{");

            return(resultado.Replace("\"]", "]"));
        }
Beispiel #7
0
        //Funcion encargada de buscar la cantidad se PDA que posee un lider ademas devuelte el total de las PDA disponibles en bodega
        //la busqueda se realiza en base al nombre de el almacen que corresponde al nombre de el lider espacio apellido paterno
        //la funcion sola hace la comparacion independiente de mayusculas o acentos que pueda contener el nombre
        public string GetXNombre(string nombre)
        {
            var           modelAF = new SEIEntities();
            List <string> resAF   = new List <string>();

            int codAlmacen = 0;

            //Debido a que linq no interpreta la comparacion de acentos para buscar el almacen primero se listan y se realiza el recorrido
            //por cada uno comparando el nombre para poder obtener el codigo de el almacen y asi realizar la condicion en la consulta en base al codigo
            foreach (var almacenList in modelAF.ACFI_almacen)
            {
                if (String.Compare(nombre, almacenList.alm_nombre, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase) == 0)
                {
                    codAlmacen = (int)almacenList.alm_codigo;
                }
            }

            var queryEquipos = (from equipo in modelAF.ACFI_equipos
                                join almacen in modelAF.ACFI_almacen on equipo.alm_codigo equals almacen.alm_codigo
                                join articulos in modelAF.ACFI_articulo on equipo.art_codigo equals articulos.art_codigo
                                join categoria in modelAF.ACFI_categoria on articulos.cat_codigo equals categoria.cat_codigo
                                where equipo.alm_codigo == codAlmacen
                                where articulos.cat_codigo == 4
                                group equipo.alm_codigo by new{
                alm_codigo = almacen.alm_codigo,
                alm_nombre = almacen.alm_nombre,
                cat_codigo = categoria.cat_codigo,
                cat_nombre = categoria.cat_nombre
            }
                                into equip
                                orderby equip.Key.alm_codigo ascending
                                select new{
                alm_codigo = equip.Key.alm_codigo,
                alm_nombre = equip.Key.alm_nombre,
                cat_codigo = equip.Key.cat_codigo,
                cat_nombre = equip.Key.cat_nombre,
                cant = equip.Count()
            }
                                );

            var queryDisponibles = (from equipo in modelAF.ACFI_equipos
                                    join almacen in modelAF.ACFI_almacen on equipo.alm_codigo equals almacen.alm_codigo
                                    join articulos in modelAF.ACFI_articulo on equipo.art_codigo equals articulos.art_codigo
                                    join categoria in modelAF.ACFI_categoria on articulos.cat_codigo equals categoria.cat_codigo
                                    where equipo.alm_codigo == 24
                                    where articulos.cat_codigo == 4
                                    group equipo.alm_codigo by new{
                alm_codigo = almacen.alm_codigo,
                alm_nombre = almacen.alm_nombre,
                cat_codigo = categoria.cat_codigo,
                cat_nombre = categoria.cat_nombre
            }
                                    into equip
                                    orderby equip.Key.alm_codigo ascending
                                    select new{
                alm_codigo = equip.Key.alm_codigo,
                alm_nombre = equip.Key.alm_nombre,
                cat_codigo = equip.Key.cat_codigo,
                cat_nombre = equip.Key.cat_nombre,
                cant = equip.Count()
            }
                                    );

            foreach (var resultDisponibles in queryDisponibles)
            {
                foreach (var resultequipos in queryEquipos)
                {
                    resAF.Add(JsonConvert.SerializeObject(new{
                        alm_codigo = resultequipos.alm_codigo,
                        alm_nombre = resultequipos.alm_nombre,
                        cat_codigo = resultequipos.cat_codigo,
                        cat_nombre = resultequipos.cat_nombre,
                        cantidad   = resultequipos.cant,
                        enBodega   = resultDisponibles.cant
                    }
                                                          ));
                }
            }

            string json      = JsonConvert.SerializeObject(resAF, Newtonsoft.Json.Formatting.None);
            string resultado = json.Replace("\\", "");

            resultado = resultado.Replace("[\"", "[");
            resultado = resultado.Replace("}\",\"{", "},{");

            return(resultado.Replace("\"]", "]"));
        }