Esempio n. 1
0
        public ActionResult DeleteConfirmed(string id)
        {
            WORK_ORDER wORK_ORDER = db.WORK_ORDER.Find(id);

            db.WORK_ORDER.Remove(wORK_ORDER);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 2
0
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WORK_ORDER wORK_ORDER = db.WORK_ORDER.Find(id);

            if (wORK_ORDER == null)
            {
                return(HttpNotFound());
            }
            return(View(wORK_ORDER));
        }
        public async Task <IHttpActionResult> deleteWorkSheet(stringReceiver sR)
        {
            string id = sR.decoded();

            try
            {
                WORK_ORDER wORK_ORDER = await db.WORK_ORDER.FindAsync(id);

                if (wORK_ORDER == null)
                {
                    throw new ApplicationException();
                }
                db.WORK_ORDER.Remove(wORK_ORDER);
                await db.SaveChangesAsync();

                var workSheets = GetWorkSheets().data.ToList();
                NotificationController.NotificationCallbackMsg("删除工单" + sR.decoded());
                return(Ok(returnHelper.make(workSheets)));
            }
            catch (Exception)
            {
                return(Ok(returnHelper.fail()));
            }
        }
Esempio n. 4
0
        public ActionResult Create([Bind(Include = "START_DATE,FINISH_DATE,ITEM_NUMBER,COST")] WORK_ORDER wORK_ORDER)
        {
            Innovator inn = (Innovator)Session["innovator"];

            Item itm = inn.newItem("work order", "add");

            itm.setProperty("START_DATE".ToLower(), wORK_ORDER.START_DATE.ToString());
            itm.setProperty("FINISH_DATE".ToLower(), wORK_ORDER.FINISH_DATE.ToString());
            itm.setProperty("ITEM_NUMBER".ToLower(), wORK_ORDER.ITEM_NUMBER.ToString());
            itm.setProperty("COST".ToLower(), wORK_ORDER.COST.ToString());
            itm = itm.apply();
            if (itm.isError())
            {
                TempData["Message"] = itm.getErrorString();
            }
            else
            {
                TempData["Message"] = "新增成功";
            }
            return(RedirectToAction("Index"));


            return(View(wORK_ORDER));
        }
Esempio n. 5
0
        public ActionResult Edit([Bind(Include = "id,START_DATE,FINISH_DATE,ITEM_NUMBER,COST")] WORK_ORDER wORK_ORDER)
        {
            Innovator inn = (Innovator)Session["innovator"];

            Item itm = WorkOrderRepo.FindItemById(inn, "work order", wORK_ORDER.id);

            itm.setProperty("START_DATE".ToLower(), wORK_ORDER.START_DATE.ToString());
            itm.setProperty("FINISH_DATE".ToLower(), wORK_ORDER.FINISH_DATE.ToString());
            itm.setProperty("ITEM_NUMBER".ToLower(), wORK_ORDER.ITEM_NUMBER.ToString());
            itm.setProperty("COST".ToLower(), wORK_ORDER.COST.ToString());
            WorkOrderRepo.EditItem(itm);
            if (itm.isError() == true)
            {
                TempData["Message"] = itm.getErrorString();
            }
            else
            {
                TempData["Message"] = "修改成功";
                return(RedirectToAction("Index"));
            }


            return(View(wORK_ORDER));
        }
Esempio n. 6
0
        public async Task <IHttpActionResult> scehduleRepairSheet(repairSheetReceiver input)
        {
            try
            {
                input.stfId = input.stfId.Substring(2);
                input.RSTid = input.RSTid.Substring(2);
                //since staff id is not prefixed when logging in
                //there's no need to decode DSTid
                //input.DSTid = input.DSTid.Substring(2);
                var dispatcher  = db.STAFF.Find(input.DSTid);
                var repairSheet = await db.REPAIR_ORDER.FindAsync(input.RSTid);

                if (repairSheet == null)
                {
                    throw new Exception();
                }
                db.Entry(repairSheet).Reference(e => e.EQ_IN_USE).Load();
                var oldEq = repairSheet.EQ_IN_USE;
                oldEq.STATUS = "1"; // 1: broken 0: normal
                decimal?[] oldEqLocation = new decimal?[2] {
                    repairSheet.EQ_IN_USE.LATITUDE, repairSheet.EQ_IN_USE.LONGITUDE
                };
                foreach (var requirement in input.ls)
                {
                    if (requirement.statue == "器材")
                    {
                        var neededEqType = await db.EQ_TYPE.FirstOrDefaultAsync(e => e.TYPE_NAME == requirement.type && e.MODEL_NUMBER == requirement.model);

                        string neededEqTypeId = neededEqType.ID;
                        var    availableList  = db.EQ_STORED.Where(e => e.EQ_TYPE_ID == neededEqTypeId).Include(e => e.WAREHOUSE).ToList();
                        availableList.OrderBy(w => Math.Pow((double)w.WAREHOUSE.LATITUDE - (double)oldEqLocation[0], 2) + Math.Pow((double)w.WAREHOUSE.LONGITUDE - (double)oldEqLocation[1], 2));
                        var nearest = availableList.First();
                        db.EQ_STORED.Remove(nearest);
                    }
                    else
                    {
                        var neededAcType = await db.ACCESSORY.FirstOrDefaultAsync(e => e.TYPE_NAME == requirement.type && e.MODEL_NUMBER == requirement.model);

                        string neededAcTypeId = neededAcType.ID;
                        var    availableList  = db.ACCESSORY_STORED.Where(e => e.ACCESSORY_ID == neededAcTypeId).Include(e => e.WAREHOUSE).ToList();
                        availableList.OrderBy(w => Math.Pow((double)w.WAREHOUSE.LATITUDE - (double)oldEqLocation[0], 2) + Math.Pow((double)w.WAREHOUSE.LONGITUDE - (double)oldEqLocation[1], 2));
                        var deleteAcStoreList = new List <ACCESSORY_STORED>();
                        int unsolved          = int.Parse(requirement.number);
                        for (int i = 0; i != availableList.Count(); ++i)
                        {
                            if (availableList[i].QUANTITY > unsolved)
                            {
                                availableList[i].QUANTITY -= unsolved;
                                unsolved = 0;
                                break;
                            }
                            else if (availableList[i].QUANTITY == unsolved)
                            {
                                db.ACCESSORY_STORED.Remove(availableList[i]);
                                unsolved = 0;
                                break;
                            }
                            else
                            {
                                unsolved -= availableList[i].QUANTITY;
                                db.ACCESSORY_STORED.Remove(availableList[i]);
                            }
                        }
                        if (unsolved != 0)
                        {
                            throw new Exception();
                        }
                    }
                }
                var workSheet = new WORK_ORDER
                {
                    ID            = "0",
                    DISPATCHER_ID = dispatcher.ID,
                    EQ_ID         = repairSheet.EQ_ID,
                    INSERT_TIME   = DateTime.Now,
                    INSERT_BY     = dispatcher.ID,
                    UPDATE_BY     = dispatcher.ID,
                    UPDATE_TIME   = DateTime.Now,
                    REPAIRER_ID   = input.stfId,
                    WORK_PICTURE  = repairSheet.REPORT_PICTURE,
                    STATUS        = "0"
                };
                db.WORK_ORDER.Add(workSheet);
                repairSheet.STATUS = "2";
                await db.SaveChangesAsync();

                NotificationController.NotificationCallbackMsg("维修器件" + repairSheet.EQ_ID);
                return(Ok(returnHelper.make("")));
            }
            catch (Exception ex)
            {
                return(Ok(returnHelper.fail()));
            }
        }