public List <ModelViewFailures> GetListCodeFailure(ModelViewUserG objCred) { var NegocioUsuario = new BusinessUsers(); var dataUsuario = NegocioUsuario.GetUserByToken(objCred.TokenUser); if (objCred.TokenApp != GlobalConfiguration.TokenWEB) { if (objCred.TokenApp != GlobalConfiguration.TokenMobile) { throw new Exception("TokenInvalid"); } } if (dataUsuario == null) { throw new Exception("UserPasswordInvalid"); } var NegocioOrdenes = new BusinessOrder(); var NegocioEmpleado = new BusinessEmployee(); var NegocioCodigoFalla = new BusinessCodeFailure(); var NegocioBase = new BusinessInstalledBase(); var codefailure = NegocioCodigoFalla.GetAll(); var empleado = NegocioEmpleado.GetByUserID(dataUsuario.UserID); if (objCred.ProductID == 0) { //var ordenes = NegocioOrdenes.GetAll().Where(p => empleado.Select(q => q.PK_EmployeeID).ToArray<int>().Contains(p.FK_EmployeeID.Value) && p.OrderExecuteDate >= objCred.Date.Value.Date); //var prod = NegocioBase.GetAll(); //var modelos = (from c in ordenes // join p in prod on c.FK_InstalledBaseID equals p.PK_InstalledBaseID // select p.FK_ProductID).Distinct().ToList(); //modelos = modelos.Where(x => x != null).ToList(); var ordenes = NegocioOrdenes.GetAll(empleado.Select(q => q.PK_EmployeeID).ToList(), objCred.Date.Value, false); List <int> baseInstalada = ordenes.Select(p => p.FK_InstalledBaseID).ToList(); var modelos = NegocioBase.GetAllByBI(baseInstalada).Select(p => p.FK_ProductID).Distinct(); modelos = modelos.Where(x => x != null).ToList(); List <int> modelo = modelos.Where(x => x != null).Cast <int>().ToList(); var codfallas = new List <ModelViewFailures>(); foreach (var item in modelos) { var x = (from c in GetByProductID(item.Value) join p in codefailure on c.FK_CodeFailureID equals p.PK_CodeFailureID select new ModelViewFailures() { CodeFailureID = p.PK_CodeFailureID, ProductID = c.FK_ProductID, CodeFailure = p.CodeFailure1, Failure = p.Failure, Complexity = c.Complexity.GetValueOrDefault(), Status = c.Status }).ToList(); codfallas.AddRange(x); } return(codfallas); //return (from c in modelos // join p in GetAll() on c equals p.FK_ProductID // join d in codefailure on p.FK_CodeFailureID equals d.PK_CodeFailureID // select new ModelViewFailures() // { // CodeFailureID = p.FK_CodeFailureID, // ProductID = p.FK_ProductID, // CodeFailure = d.CodeFailure1, // Failure = d.Failure, // Complexity = p.Complexity.GetValueOrDefault(), // Status = p.Status // }).ToList(); } else { return((from c in GetByProductID(objCred.ProductID) join p in codefailure on c.FK_CodeFailureID equals p.PK_CodeFailureID select new ModelViewFailures() { CodeFailureID = p.PK_CodeFailureID, ProductID = c.FK_ProductID, CodeFailure = p.CodeFailure1, Failure = p.Failure, Complexity = c.Complexity.GetValueOrDefault(), Status = c.Status }).ToList()); } }
//public List<ModelViewSpareParts> GetListSparePartsComplete(ModelViewUserG objCred) //{ // return new RepositoryBuildOfMaterial().GetList(objCred); //} public List <ModelViewSpareParts> GetListSpareParts(ModelViewUserG objCred) { var NegocioBase = new BusinessInstalledBase(); var NegocioUsuario = new BusinessUsers(); var NegocioOrdenes = new BusinessOrder(); var NegocioEmpleado = new BusinessEmployee(); var NegocioManoObra = new BusinessWorkforce(); var user = NegocioUsuario.GetUserByToken(objCred.TokenUser); var empleado = NegocioEmpleado.GetByUserID(user.UserID); var lista = new List <ModelViewSpareParts>(); if (objCred.ProductID == 0) { //var ordenes1 = NegocioOrdenes.GetAll().Where(p => empleado.Select(q => q.PK_EmployeeID).ToArray<int>().Contains(p.FK_EmployeeID.Value) && p.OrderExecuteDate >= objCred.Date); var ordenes = NegocioOrdenes.GetAll(empleado.Select(q => q.PK_EmployeeID).ToList(), objCred.Date.Value, false); List <int> baseInstalada = ordenes.Select(p => p.FK_InstalledBaseID).ToList(); //var prod = NegocioBase.GetAll(); //var modelos = (from c in ordenes // join p in prod on c.FK_InstalledBaseID equals p.PK_InstalledBaseID // select p.FK_ProductID).Distinct(); var modelos = NegocioBase.GetAllByBI(baseInstalada).Select(p => p.FK_ProductID).Distinct(); modelos = modelos.Where(x => x != null).ToList(); List <int> modelo = modelos.Where(x => x != null).Cast <int>().ToList(); lista = GetListSparePartsByModel(modelo); //lista = (from c in modelos // join p in GetAll() on c equals p.FK_ProductID // select new ModelViewSpareParts() // { // BuildOfMaterialsID = p.PK_BuildOfMaterialsID, // ProductID = p.FK_ProductID, // Model = p.Model, // SparePartsID = p.SparePartsID, // Quantity = p.Quantity, // SpartePartDescription = p.SparePartDescription, // StatusBOM = p.StatusBOM, // Status = p.Status // }).ToList<ModelViewSpareParts>(); } else { lista = GetAll().Where(p => p.FK_ProductID == objCred.ProductID).Select(p => new ModelViewSpareParts() { BuildOfMaterialsID = p.PK_BuildOfMaterialsID, ProductID = p.FK_ProductID, Model = p.Model, SparePartsID = p.SparePartsID, Quantity = p.Quantity, SpartePartDescription = p.SparePartDescription, StatusBOM = p.StatusBOM, Status = p.Status }).ToList <ModelViewSpareParts>(); } var demo2 = NegocioManoObra.GetAll().Where(p => p.WorkforceID == "8011161600000031").Select(p => new ModelViewSpareParts { BuildOfMaterialsID = 0, ProductID = 0, Model = "", SparePartsID = p.WorkforceID, Quantity = 1, SpartePartDescription = p.Description, StatusBOM = "", Status = p.Status, }).First(); var demo3 = NegocioManoObra.GetAll().Where(p => p.WorkforceID == "8011161600000032").Select(p => new ModelViewSpareParts { BuildOfMaterialsID = 0, ProductID = 0, Model = "", SparePartsID = p.WorkforceID, Quantity = 1, SpartePartDescription = p.Description, StatusBOM = "", Status = p.Status, }).First(); lista.Add(demo2); lista.Add(demo3); return(lista); }