예제 #1
0
        public MethodResult Execute(RouteStationProcess process,
                                    Dictionary <string, object> inputParams)
        {
            InventoryItem item = process.Item;

            string oldProgram = item.ShopfloorProgram;
            string reason     = inputParams["Reason"].ToString();
            string newProgram = inputParams["NewProgram"].ToString();

            // Create conversion record
            ShopfloorProgramConversionRecord record =
                new ShopfloorProgramConversionRecord(item, item.ShopfloorProgram, newProgram, reason);

            // Update the inventory items program
            item.ShopfloorProgram = newProgram;
            item.CurrentProcess.ShopfloorProgram = newProgram;

            // Create conversion message
            string msg = string.Format("Converted unit from {0} to {1} because {2}", oldProgram, newProgram, reason);

            // Create conversion transaction record
            Scout.Core.Service <ITransactionService>().CreateTransaction("SFLPROGCONV", item, "", "", msg, reason);

            return(new MethodResult(true, msg));
        }
예제 #2
0
        internal static ICollection <RouteStation> GetRouteStationsFromProcess(RouteStationProcess process)
        {
            ServiceRoute route = process.Station.ServiceRoute;
            XPCollection <RouteStation> routeStations =
                new XPCollection <RouteStation>(route.Stations);

            return(routeStations);
        }
예제 #3
0
        public RouteStationProcess CreateRouteStationProcess(RouteStation station, InventoryItem item)
        {
            RouteStationProcess process = Scout.Core.Data.CreateEntity <RouteStationProcess>(item.Session);

            process.Station          = station;
            process.Item             = item;
            item.CurrentProcess      = process;
            process.ShopfloorProgram = item.ShopfloorProgram;
            return(process);
        }
예제 #4
0
        public static StationMaterialsTask GetMaterialsTask(IUnitOfWork uow, RouteStationProcess process)
        {
            BinaryOperator op1      = new BinaryOperator("Configuration.PartModel", process.Item.Part.Model);
            BinaryOperator op2      = new BinaryOperator("Configuration.RouteStation", process.Station);
            GroupOperator  criteria = new GroupOperator(op1, op2);

            return
                (Repository
                 .Get <StationMaterialsTask>(uow)
                 .ByCriteria(criteria));
        }
예제 #5
0
        public static BomConfiguration GetBomConfigurationByStation(IUnitOfWork uow, RouteStationProcess process)
        {
            BinaryOperator op1 = new BinaryOperator("RouteStation", process.Station);
            BinaryOperator op2 = new BinaryOperator("PartModel", process.Item.Part.Model);

            GroupOperator critieria = new GroupOperator(op1, op2);

            return
                (Repository
                 .Get <BomConfiguration>(uow)
                 .ByCriteria(critieria));
        }
예제 #6
0
        GetShopfloorConditions(RouteStationProcess process)
        {
            List <IActionSpecification <RouteStationProcess> > conditions =
                new List <IActionSpecification <RouteStationProcess> >();

            if (process.ServiceRoute.Shopfloorline.Label == "XIP PRINTERS")
            {
                conditions.Add(new ExceedsPageCountCondition());
            }

            return(conditions);
        }
예제 #7
0
        private bool AllFailuresHaveRepairs(RouteStationProcess process)
        {
            ICollection <RouteStationFailure> failures = process.AllProcessFailures;

            if (failures.Count > 0)
            {
                foreach (RouteStationFailure failure in failures)
                {
                    if (failure.Repairs.Count == 0)
                    {
                        m_error = "This process cannot end until all failures have repairs.";
                        return(false);
                    }
                }
            }

            return(true);
        }
예제 #8
0
        private void LoadMaterialTasks()
        {
            RouteStationProcess materialsProcess =
                RoutingRepository.GetRouteStationProcess(m_materialsUow,
                                                         m_process.Id);

            // Get the material tasks from the database.
            ICollection <ItemStationMaterialsTask> materialsTasks =
                RoutingRepository.GetProcessMaterialTasks(m_materialsUow, materialsProcess);

            // Add the material tasks to the model task list
            foreach (ItemStationMaterialsTask task in materialsTasks)
            {
                if (task.Task.ContainsProgramSpecification(m_process.Item.ShopfloorProgram))
                {
                    m_tasks.Add(task);
                }
            }
        }
예제 #9
0
 public RouteStationProcessValidator(RouteStationProcess process)
 {
     m_process = process;
 }
예제 #10
0
        public static ICollection <ItemStationMaterialsTask> GetProcessMaterialTasks(IUnitOfWork uow, RouteStationProcess process)
        {
            BinaryOperator op1 = new BinaryOperator("RouteStationProcess", process);

            return(Repository
                   .GetList <ItemStationMaterialsTask>(uow)
                   .ByCriteria(op1));
        }
예제 #11
0
 public StationTaskModel(RouteStationProcess process)
 {
     m_process = process;
     LoadTasks();
 }