Example #1
0
        public async Task <Response <bool> > AssignWorkPlanAsync([FromBody] AssignModel model)
        {
            var user = await userManager.GetUserAsync(User);

            if (user is not {
                Admin : true
            })
Example #2
0
        public List <AssignModel> GetAllAssignCourses()
        {
            List <AssignModel> courses    = new List <AssignModel>();
            SqlConnection      connection = new SqlConnection(connectionstrings);
            string             query      = "SELECT * FROM t_courseassign";
            SqlCommand         command    = new SqlCommand(query, connection);

            connection.Open();
            SqlDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                AssignModel model = new AssignModel()
                {
                    Id           = (int)reader["Id"],
                    DepartmentId = (int)reader["DepartmentId"],
                    TeacherId    = (int)reader["TeacherId"],
                    CourseId     = (int)reader["CourseId"]
                };
                courses.Add(model);
            }
            reader.Close();
            connection.Close();
            return(courses);
        }
Example #3
0
        public DeluxeJsonResult DormAssign(AssignModel assign)
        {
            int result = 0;

            result = DormDal.Instance.DormAssign(assign.DormAssigns);
            return(new DeluxeJsonResult(new { Data = result, State = 200 }));
        }
Example #4
0
        public AssignModel CallCheckingSecurityCodeMatch(string securityCode)
        {
            DoctorData  doctorData = new DoctorData();
            AssignDTO   assignDTO  = doctorData.CheckSecurityCodeMatch(securityCode);
            AssignModel assignModel;

            if (assignDTO.SecurityCodeMatch)
            {
                assignModel = new AssignModel
                {
                    patientModel = new PatientModel {
                        Id = assignDTO.patientDTO.Id
                    },
                    SecurityCodeMatch = assignDTO.SecurityCodeMatch
                };
            }
            else
            {
                assignModel = new AssignModel
                {
                    SecurityCodeMatch = assignDTO.SecurityCodeMatch
                };
            }
            return(assignModel);
        }
 public IHttpActionResult AssignToEmp([FromBody] AssignModel model)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest("invalid request"));
     }
     using (var context = new EquipmentEntities())
     {
         var equip = context.EQUIPMENTs.Where(s => s.ID == model.IDEquip).FirstOrDefault();
         var emp   = context.AspNetUsers.Where(s => s.UserName == model.UserName).FirstOrDefault();
         if (equip == null || emp == null)
         {
             return(NotFound());
         }
         var result = context.ASSIGN_TO_EMPLOYEE(model.IDEquip, model.UserName);
         if (result == 1)
         {
             return(Ok());
         }
         else
         {
             return(BadRequest("Server Error"));
         }
     }
 }
        public string Save(AssignModel assign)
        {
            AssignModel isCourseExist = gateway.GetAllAssignCourses().Find(c => c.CourseId == assign.CourseId && c.TeacherId == assign.TeacherId);

            if (isCourseExist != null)
            {
                return("This Course already assigned");
            }

            int rowAffected = gateway.Save(assign);


            if (rowAffected > 0)
            {
                int rowAffected1 = gateWay.Update(assign);
                int rowAffected2 = courseGateway.Update(assign);
                if (rowAffected1 > 0)
                {
                    return("Assign Successfully");
                }
                else
                {
                    return("Insertion Failed");
                }
            }
            else
            {
                return("Insertion Failed");
            }
        }
        public ActionResult Assign(string IDEquip, string UserName)
        {
            if (Session["access_token"] == null)
            {
                return(RedirectToAction("Index", "Login", null));
            }
            if (!ModelState.IsValid)
            {
                return(View());
            }
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:63216/api/");
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Session["access_token"].ToString());

                AssignModel model = new AssignModel();
                model.UserName = UserName;
                model.IDEquip  = IDEquip;
                //HTTP PUT
                var postTask = client.PutAsJsonAsync <AssignModel>("Assign", model);
                postTask.Wait();

                var result = postTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index"));
                }
                ModelState.AddModelError(string.Empty, result.StatusCode.ToString());
                return(RedirectToAction("Assign", new { ID = IDEquip }));
            }
        }
        private void AssignModel()
        {
            AssignModel modelAssignment = new AssignModel();

            modelAssignment.DataContext = this;
            modelAssignment.Show();
        }
 public IActionResult Assigning([FromBody] AssignModel model)
 {
     if (model.ObjectId.IsEmpty())
     {
         return(NotSpecifiedRecord());
     }
     model.EntityMetaData = _entityFinder.FindById(model.EntityId);
     return(View($"~/Views/Entity/{WebContext.ActionName}.cshtml", model));
 }
Example #10
0
        public bool CallCheckRelationDoctorPatient(string idD, string idP)
        {
            DoctorData  doctorData  = new DoctorData();
            AssignModel assignModel = new AssignModel
            {
                ExistingRelation = doctorData.CheckExistingRelationDoctorPatient(idD, idP)
            };

            return(assignModel.ExistingRelation);
        }
Example #11
0
        public ActionResult EditNextFlow(AssignModel assign)
        {
            var             ur         = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault();
            var             repairFlow = _context.RepairFlows.Where(f => f.DocId == assign.DocId).ToList();
            string          lastStatus = repairFlow.OrderBy(f => f.StepId).LastOrDefault().Status;
            RepairFlowModel rf;

            if (ModelState.IsValid)
            {
                if (lastStatus == "2")
                {
                    rf = _context.RepairFlows.Where(f => f.DocId == assign.DocId && f.Status == "2").FirstOrDefault();
                }
                else
                {
                    rf = _context.RepairFlows.Where(f => f.DocId == assign.DocId && f.Status == "?").FirstOrDefault();
                }

                //轉單
                assign.AssignOpn        += "【已經由轉單人員[" + ur.FullName + "]轉單】";
                rf.Opinions              = assign.AssignOpn;
                rf.Status                = "1";
                rf.Rtt                   = DateTime.Now;
                rf.Rtp                   = ur.Id;
                _context.Entry(rf).State = EntityState.Modified;
                _context.SaveChanges();
                //
                RepairFlowModel flow = new RepairFlowModel();
                flow.DocId    = assign.DocId;
                flow.StepId   = rf.StepId + 1;
                flow.UserId   = assign.FlowUid.Value;
                flow.UserName = _context.AppUsers.Find(assign.FlowUid.Value).FullName;
                flow.Status   = "?";
                flow.Cls      = assign.FlowCls;
                flow.Rtt      = DateTime.Now;
                _context.RepairFlows.Add(flow);
                _context.SaveChanges();

                return(new JsonResult(assign)
                {
                    Value = new { success = true, error = "" }
                });
            }
            else
            {
                string msg = "";
                foreach (var error in ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors))
                {
                    msg += error.ErrorMessage + Environment.NewLine;
                }
                throw new Exception(msg);
            }
        }
Example #12
0
        //public int Update(AssignModel assign)
        //{

        //}
        public int Update(AssignModel assign)
        {
            SqlConnection connection = new SqlConnection(connectionstrings);
            string        query      = "UPDATE t_course SET TeacherName = '" + assign.TeacherName + "' WHERE Id = '" +
                                       assign.CourseId + "' ";
            SqlCommand command = new SqlCommand(query, connection);

            connection.Open();
            int rowAffected = command.ExecuteNonQuery();

            connection.Close();
            return(rowAffected);
        }
Example #13
0
        public int Update(AssignModel assign)
        {
            double        credit     = assign.RemainingCredit - assign.Credit;
            SqlConnection connection = new SqlConnection(connectionstrings);
            string        query      = "UPDATE t_teacher SET remaining = '" + credit + "' WHERE Id = '" + assign.TeacherId + "' ";
            SqlCommand    command    = new SqlCommand(query, connection);

            connection.Open();
            int rowAffected = command.ExecuteNonQuery();

            connection.Close();
            return(rowAffected);
        }
Example #14
0
        public int Save(AssignModel assign)
        {
            SqlConnection connection = new SqlConnection(connectionstrings);
            string        query      = "INSERT INTO t_courseassign VALUES('" + assign.DepartmentId + "','" + assign.TeacherId + "','" + assign.Credit + "','" + assign.CourseId + "',@IsActive)";
            SqlCommand    command    = new SqlCommand(query, connection);

            command.Parameters.AddWithValue("@IsActive", 1);
            connection.Open();
            int rowAffected = command.ExecuteNonQuery();

            connection.Close();
            return(rowAffected);
        }
Example #15
0
        public async Task <JsonResult> SaveInstructorAssign(AssignModel assignModel)
        {
            BusinessLayerResult <AssignModel> result = await _courseApiService.AssignInstructor(ApiUrl + "api/Course/AssignInstructor", Session["access_token"] as String, assignModel);

            if (result.Error.Count == 0)
            {
                return(Json(new { messages = new List <string> {
                                      "Başarılı!"
                                  } }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { messages = result.Error.Select(x => x.Message).ToList() }, JsonRequestBehavior.AllowGet));
            }
        }
Example #16
0
        public async Task<IViewComponentResult> InvokeAsync()
        {
            AssignModel assign = new AssignModel();
            //repair.Buildings = new List<SelectListItem>
            //{
            //    new SelectListItem{Text = "第一醫療大樓",Value="第一醫療大樓"},
            //    new SelectListItem{Text = "第二醫療大樓",Value="第二醫療大樓"},
            //    new SelectListItem{Text = "第三醫療大樓",Value="第三醫療大樓"},
            //    new SelectListItem{Text = "中華路院區",Value="中華路院區"},
            //    new SelectListItem{Text = "兒童醫院",Value="兒童醫院"},
            //    new SelectListItem{Text = "向上大樓",Value="向上大樓"}
            //};

            return View(assign);
        }
        public async Task <IActionResult> AssignDevice(int id, [FromBody] AssignModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = await _userManager.FindByNameAsync(model.Name);

            if (user != null)
            {
                _repo.AssignDevice(id, user);
                if (_repo.SaveChanges())
                {
                    return(Ok());
                }
            }

            return(StatusCode(500, "Cannot assign Device"));
        }
Example #18
0
        private async void AssignAssetClicked(object sender, EventArgs e)
        {
            indicator.IsRunning = true;
            indicator.IsVisible = true;

            AssignModel assetmodel = new AssignModel();
            Int32       length     = Helper.listAssetA.Count;

            //var UserName = Helper.listUserA;
            assetmodel.assets              = Helper.listAssetA;
            assetmodel.staff_username      = Helper.listUserA[0].UserName;
            assetmodel.storeKeeperUsername = HelperAppSettings.username;
            assetmodel.location            = txtAssLocation.Text;
            assetmodel.requestStatus       = "Nill Request";

            string json = JsonConvert.SerializeObject(assetmodel, Formatting.Indented);

            var content = new StringContent(json, Encoding.UTF8, "application/json");

            HttpClient client = new HttpClient();

            client.DefaultRequestHeaders.Clear();
            client.DefaultRequestHeaders.Add("Authorization", Helper.userprofile.token);

            var result = await client.PostAsync(Helper.assignAsseturl, content);

            if (result.IsSuccessStatusCode)
            {
                await DisplayAlert("Success", "Request completed Successfully", "Ok");

                indicator.IsRunning          = false;
                indicator.IsVisible          = false;
                ToBeAssignedList.ItemsSource = null;
                Helper.listAssetA.Clear();
                Helper.listUserA.Clear();
                txtAssLocation.Text = "";
            }
            else
            {
                await DisplayAlert("Error ", "Bad request, Try Again", "Ok");
            }
        }
 public IActionResult Assigned(AssignModel model)
 {
     foreach (var item in model.ObjectId)
     {
         OwnerObject owner = null;
         if (model.OwnerIdType == 1) //assign to me
         {
             owner = new OwnerObject(OwnerTypes.SystemUser, CurrentUser.SystemUserId);
         }
         else if (model.OwnerIdType == 2)
         {
             owner = new OwnerObject(OwnerTypes.SystemUser, model.OwnerId);
         }
         else if (model.OwnerIdType == 3)
         {
             owner = new OwnerObject(OwnerTypes.Team, model.OwnerId);
         }
         _dataAssigner.Assign(model.EntityId, item, owner);
     }
     return(JOk(T["assign_success"]));
 }
Example #20
0
        [HttpPost] // post for adding/
        public async Task <IActionResult> Post([FromBody] AssignModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var project = await ProjectRepo.Single(Decode(model.Project));

            var developer = await DeveloperRepo.Single(Decode(model.Developer));

            if (project == null)
            {
                ModelState.AddModelError(nameof(AssignModel.Project), String.Format("Project with name {0} was not found", Decode(model.Developer)));
            }

            if (developer == null)
            {
                ModelState.AddModelError(nameof(AssignModel.Developer), String.Format("Developer with nickname {0} was not found", Decode(model.Developer)));
            }

            //if (await Assignments.IsAssigned())
            //{
            //    ModelState.AddModelError(nameof(AssignModel.isAssigned), String.Format("Already assigned"));
            //}

            if (model.isAssigned)
            {
                await Assignments.Assign(project, developer);
            }
            else
            {
                await Assignments.Unassign(project, developer);
            }

            await Assignments.SaveChangesAsync();

            return(new JsonResult(model));
        }
Example #21
0
        public ActionResult Assign_Click(string securityCode)
        {
            AssignViewModel assignViewModel;
            DoctorContainer doctorContainer = new DoctorContainer();
            AssignModel     assignModel     = doctorContainer.CallCheckingSecurityCodeMatch(securityCode);

            if (!assignModel.SecurityCodeMatch)
            {
                assignViewModel = new AssignViewModel
                {
                    SecurityCodeMatch = assignModel.SecurityCodeMatch,
                    AssignMessage     = Resource.AssignSecurityCodeError
                };
                return(View("Assign", assignViewModel));
            }
            else
            {
                assignViewModel = new AssignViewModel
                {
                    patientViewModel = new PatientViewModel {
                        UserId = assignModel.patientModel.Id
                    },
                    SecurityCodeMatch = assignModel.SecurityCodeMatch
                };
                string idD = User.FindFirstValue(ClaimTypes.NameIdentifier);
                assignViewModel.ExistingRelation = doctorContainer.CallCheckRelationDoctorPatient(idD, assignViewModel.patientViewModel.UserId);
                if (assignViewModel.ExistingRelation)
                {
                    assignViewModel.AssignMessage = Resource.AssignExistingRelation;
                    return(View("Assign", assignViewModel));
                }
                else
                {
                    doctorContainer.UseAddPatientToDoctor(idD, assignViewModel.patientViewModel.UserId);
                    assignViewModel.AssignMessage = Resource.AssignSuccess;
                    return(View("Assign", assignViewModel));
                }
            }
        }
Example #22
0
        public async Task <IViewComponentResult> InvokeAsync(string id)
        {
            /* Get repair and flow details. */
            RepairModel     repair     = _context.Repairs.Find(id);
            RepairFlowModel repairFlow = _context.RepairFlows.Where(f => f.DocId == id && f.Status == "?")
                                         .FirstOrDefault();

            /* Insert values. */
            AssignModel assign = new AssignModel();

            assign.DocId = id;

            /* 根據當下流程的人員做額外的流程控管 */
            List <SelectListItem> listItem = new List <SelectListItem>();

            if (repairFlow != null)
            {
                assign.Cls = repairFlow.Cls;
                //if (repairFlow.Cls == "申請人")    //統一回申請人結案
                //{   /* 廢除選項在首頁 */
                //    listItem.Add(new SelectListItem { Text = "廢除", Value = "廢除" });
                //}
                if (repairFlow.Cls == "驗收人" || repairFlow.Cls == "工務主管")    //統一回申請人=驗收人結案
                {
                    listItem.Add(new SelectListItem {
                        Text = "結案", Value = "結案"
                    });
                }
                if (repairFlow.Cls == "工務/營建工程師")              //工務/營建工程師自己為驗收人時
                {
                    if (repair.CheckerId == repairFlow.UserId) //驗收人為自己
                    {
                        listItem.Add(new SelectListItem {
                            Text = "結案", Value = "結案"
                        });
                    }
                }
            }

            /* 增設流程 */
            if (repair.RepType == "增設")
            {
                listItem.Add(new SelectListItem {
                    Text = "申請人", Value = "申請人"
                });
                listItem.Add(new SelectListItem {
                    Text = "驗收人", Value = "驗收人"
                });
                listItem.Add(new SelectListItem {
                    Text = "單位主管", Value = "單位主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "單位主任", Value = "單位主任"
                });
                listItem.Add(new SelectListItem {
                    Text = "單位副院長", Value = "單位副院長"
                });
                listItem.Add(new SelectListItem {
                    Text = "工務/營建工程師", Value = "工務/營建工程師"
                });
                listItem.Add(new SelectListItem {
                    Text = "工務主管", Value = "工務主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "工務主任", Value = "工務主任"
                });
                listItem.Add(new SelectListItem {
                    Text = "營建主管", Value = "營建主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "營建主任", Value = "營建主任"
                });
            }
            else  //維修流程
            {
                listItem.Add(new SelectListItem {
                    Text = "申請人", Value = "申請人"
                });
                listItem.Add(new SelectListItem {
                    Text = "驗收人", Value = "驗收人"
                });
                listItem.Add(new SelectListItem {
                    Text = "單位主管", Value = "單位主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "工務/營建工程師", Value = "工務/營建工程師"
                });
                listItem.Add(new SelectListItem {
                    Text = "工務主管", Value = "工務主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "工務主任", Value = "工務主任"
                });
                listItem.Add(new SelectListItem {
                    Text = "營建主管", Value = "營建主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "營建主任", Value = "營建主任"
                });
                listItem.Add(new SelectListItem {
                    Text = "工務經辦", Value = "工務經辦"
                });
            }
            listItem.Add(new SelectListItem {
                Text = "列管財產負責人", Value = "列管財產負責人"
            });
            listItem.Add(new SelectListItem {
                Text = "固資財產負責人", Value = "固資財產負責人"
            });
            listItem.Add(new SelectListItem {
                Text = "其他", Value = "其他"
            });
            ViewData["FlowCls"] = new SelectList(listItem, "Value", "Text", "");

            List <SelectListItem> listItem3 = new List <SelectListItem>();

            listItem3.Add(new SelectListItem {
                Text = "", Value = ""
            });
            ViewData["FlowUid"] = new SelectList(listItem3, "Value", "Text", "");

            assign.Hint       = "單位請修→工務工程師→工務主管(若有費用)→單位驗收人→結案。";
            ViewData["Hint2"] = "單位請修→單位主管(護理長)→單位主任→工務工程師 [若費用5000元以上:單位主管(護理長)→" +
                                "單位直屬副院長→工務工程師] →工務主管→工務工程師→工務主管→單位驗收人→結案";
            ViewData["Hint3"] = "單位請修→工務工程師→工務主管→工務主任→列管/固資財產負責人(有財產編號時)→單位驗收人→結案";

            /* 於流程頁面顯示請修類型、及處理狀態*/
            string hintRepType  = repair.RepType;
            string hintRepState = "";
            var    repDtl       = _context.RepairDtls.Where(dtl => dtl.DocId == id).FirstOrDefault();

            if (repDtl != null)
            {
                hintRepState = _context.DealStatuses.Find(repDtl.DealState).Title;
            }
            ViewData["HintRepType"] = hintRepType + " / " + hintRepState;

            return(View(assign));
        }
        public async Task <IViewComponentResult> InvokeAsync(string id)
        {
            /* Get keep and flow details. */
            KeepModel     keep     = _context.Keeps.Find(id);
            KeepFlowModel keepFlow = _context.KeepFlows.Where(f => f.DocId == id && f.Status == "?")
                                     .FirstOrDefault();

            /* Insert values. */
            AssignModel assign = new AssignModel();

            assign.DocId = id;

            /* 根據當下流程的人員做額外的流程控管 */
            List <SelectListItem> listItem = new List <SelectListItem>();

            if (keepFlow != null)
            {
                assign.Cls = keepFlow.Cls;
                //if (repairFlow.Cls == "申請人")    //統一回申請人結案
                //{   /* 廢除選項在首頁 */
                //    listItem.Add(new SelectListItem { Text = "廢除", Value = "廢除" });
                //}
                if (keepFlow.Cls == "驗收人")    //統一回申請人=驗收人結案
                {
                    listItem.Add(new SelectListItem {
                        Text = "結案", Value = "結案"
                    });
                }
                if (keepFlow.Cls == "工務/營建工程師")            //工務/營建工程師自己為驗收人時
                {
                    if (keep.CheckerId == keepFlow.UserId) //驗收人為自己
                    {
                        listItem.Add(new SelectListItem {
                            Text = "結案", Value = "結案"
                        });
                    }
                }
            }

            listItem.Add(new SelectListItem {
                Text = "申請人", Value = "申請人"
            });
            listItem.Add(new SelectListItem {
                Text = "驗收人", Value = "驗收人"
            });
            listItem.Add(new SelectListItem {
                Text = "單位主管", Value = "單位主管"
            });
            listItem.Add(new SelectListItem {
                Text = "單位主任", Value = "單位主任"
            });
            listItem.Add(new SelectListItem {
                Text = "單位直屬院長室主管", Value = "單位直屬院長室主管"
            });
            listItem.Add(new SelectListItem {
                Text = "工務/營建工程師", Value = "工務/營建工程師"
            });
            listItem.Add(new SelectListItem {
                Text = "工務主管", Value = "工務主管"
            });
            listItem.Add(new SelectListItem {
                Text = "工務主任", Value = "工務主任"
            });
            listItem.Add(new SelectListItem {
                Text = "營建主管", Value = "營建主管"
            });
            listItem.Add(new SelectListItem {
                Text = "營建主任", Value = "營建主任"
            });
            listItem.Add(new SelectListItem {
                Text = "列管財產負責人", Value = "列管財產負責人"
            });
            listItem.Add(new SelectListItem {
                Text = "固資財產負責人", Value = "固資財產負責人"
            });
            listItem.Add(new SelectListItem {
                Text = "其他", Value = "其他"
            });

            ViewData["FlowCls"] = new SelectList(listItem, "Value", "Text", "");

            List <SelectListItem> listItem3 = new List <SelectListItem>();

            listItem3.Add(new SelectListItem {
                Text = "", Value = ""
            });
            ViewData["FlowUid"] = new SelectList(listItem3, "Value", "Text", "");

            assign.Hint = "";

            return(View(assign));
        }
        public async Task <IActionResult> NextFlow(AssignModel assign)
        {
            var ur = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault();

            /* 工程師的流程控管 */
            if (assign.Cls == "設備工程師")
            {
                /* 如點選有費用、卻無輸入費用明細 */
                var isCharged = _context.BMEDKeepDtls.Where(d => d.DocId == assign.DocId).FirstOrDefault().IsCharged;
                if (isCharged == "Y")
                {
                    var CheckRepairCost = _context.BMEDKeepCosts.Where(c => c.DocId == assign.DocId).FirstOrDefault();
                    if (CheckRepairCost == null)
                    {
                        throw new Exception("尚未輸入費用明細!!");
                    }
                }
            }

            if (assign.FlowCls == "結案" || assign.FlowCls == "廢除")
            {
                assign.FlowUid = ur.Id;
            }
            if (ModelState.IsValid)
            {
                KeepFlowModel kf = _context.BMEDKeepFlows.Where(f => f.DocId == assign.DocId && f.Status == "?").FirstOrDefault();
                if (assign.FlowCls == "驗收人")
                {
                    if (_context.BMEDKeepEmps.Where(emp => emp.DocId == assign.DocId).Count() <= 0)
                    {
                        throw new Exception("沒有維修工程師紀錄!!");
                    }
                    else if (_context.BMEDKeepDtls.Find(assign.DocId).EndDate == null)
                    {
                        throw new Exception("沒有完工日!!");
                    }
                    if (_context.BMEDKeepDtls.Find(assign.DocId).Result == null)
                    {
                        throw new Exception("保養結果不可空白!!");
                    }
                    if (string.IsNullOrEmpty(_context.BMEDKeepDtls.Find(assign.DocId).InOut))
                    {
                        throw new Exception("保養方式不可空白!!");
                    }
                }
                if (assign.FlowCls == "結案")
                {
                    KeepDtlModel kd = _context.BMEDKeepDtls.Find(assign.DocId);
                    kd.CloseDate             = DateTime.Now;
                    kf.Opinions              = "[" + assign.AssignCls + "]" + Environment.NewLine + assign.AssignOpn;
                    kf.Status                = "2";
                    kf.UserId                = ur.Id;
                    kf.UserName              = _context.AppUsers.Find(ur.Id).FullName;
                    kf.Rtt                   = DateTime.Now;
                    kf.Rtp                   = ur.Id;
                    _context.Entry(kf).State = EntityState.Modified;
                    _context.Entry(kd).State = EntityState.Modified;

                    _context.SaveChanges();
                    // Save stock to ERP system.
                    //var ERPreponse = await SaveToERPAsync(assign.DocId);

                    //Send Mail
                    //To all users in this keep's flow.
                    Tmail        mail = new Tmail();
                    string       body = "";
                    string       sto  = "";
                    AppUserModel u;
                    KeepModel    keep = _context.BMEDKeeps.Find(assign.DocId);
                    mail.from = new System.Net.Mail.MailAddress(ur.Email); //u.Email
                    _context.BMEDKeepFlows.Where(f => f.DocId == assign.DocId)
                    .ToList()
                    .ForEach(f =>
                    {
                        u    = _context.AppUsers.Find(f.UserId);
                        sto += u.Email + ",";
                    });
                    mail.sto = sto.TrimEnd(new char[] { ',' });

                    mail.message.Subject = "醫工工務智能保修系統[醫工保養案-結案通知]:設備名稱: " + keep.AssetName;
                    body += "<p>表單編號:" + keep.DocId + "</p>";
                    body += "<p>送單日期:" + keep.SentDate.Value.ToString("yyyy/MM/dd") + "</p>";
                    body += "<p>申請人:" + keep.UserName + "</p>";
                    body += "<p>財產編號:" + keep.AssetNo + "</p>";
                    body += "<p>設備名稱:" + keep.AssetName + "</p>";
                    body += "<p>放置地點:" + keep.PlaceLoc + "</p>";
                    body += "<p>保養結果:" + kd.Result + "</p>";
                    body += "<p>保養描述:" + kd.Memo + "</p>";
                    body += "<p><a href='http://dms.cch.org.tw/EDIS/Account/Login'" + "?DocId=" + keep.DocId + "&dealType=BMEDKeepViews" + ">檢視案件</a></p>";
                    body += "<br/>";
                    body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>";
                    body += "<br/>";
                    //body += "<h3 style='color:red'>如有任何疑問請聯絡工務部,分機3033或7033。<h3>";
                    mail.message.Body       = body;
                    mail.message.IsBodyHtml = true;
                    mail.SendMail();
                }
                else if (assign.FlowCls == "廢除")
                {
                    kf.Opinions = "[廢除]" + Environment.NewLine + assign.AssignOpn;
                    kf.Status   = "3";
                    kf.Rtt      = DateTime.Now;
                    kf.Rtp      = ur.Id;
                    _context.Entry(kf).State = EntityState.Modified;
                    _context.SaveChanges();
                }
                else
                {
                    //轉送下一關卡
                    kf.Opinions = "[" + assign.AssignCls + "]" + Environment.NewLine + assign.AssignOpn;
                    kf.Status   = "1";
                    kf.Rtt      = DateTime.Now;
                    kf.Rtp      = ur.Id;
                    _context.Entry(kf).State = EntityState.Modified;
                    _context.SaveChanges();
                    //
                    KeepFlowModel flow = new KeepFlowModel();
                    flow.DocId    = assign.DocId;
                    flow.StepId   = kf.StepId + 1;
                    flow.UserId   = assign.FlowUid.Value;
                    flow.UserName = _context.AppUsers.Find(assign.FlowUid.Value).FullName;
                    flow.Status   = "?";
                    flow.Cls      = assign.FlowCls;
                    flow.Rtt      = DateTime.Now;
                    _context.BMEDKeepFlows.Add(flow);
                    _context.SaveChanges();

                    //Send Mail
                    //To user and the next flow user.
                    Tmail        mail = new Tmail();
                    string       body = "";
                    AppUserModel u;
                    KeepModel    keep = _context.BMEDKeeps.Find(assign.DocId);
                    mail.from = new System.Net.Mail.MailAddress(ur.Email); //ur.Email
                    u         = _context.AppUsers.Find(flow.UserId);
                    mail.to   = new System.Net.Mail.MailAddress(u.Email);  //u.Email
                                                                           //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**");
                    mail.message.Subject = "醫工工務智能保修系統[醫工保養案]:設備名稱: " + keep.AssetName;
                    body += "<p>表單編號:" + keep.DocId + "</p>";
                    body += "<p>送單日期:" + keep.SentDate.Value.ToString("yyyy/MM/dd") + "</p>";
                    body += "<p>申請人:" + keep.UserName + "</p>";
                    body += "<p>財產編號:" + keep.AssetNo + "</p>";
                    body += "<p>設備名稱:" + keep.AssetName + "</p>";
                    body += "<p>放置地點:" + keep.PlaceLoc + "</p>";
                    body += "<p><a href='http://dms.cch.org.tw/EDIS/Account/Login'" + "?docId=" + keep.DocId + "&dealType=BMEDKeepEdit" + ">處理案件</a></p>";
                    body += "<br/>";
                    body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>";
                    body += "<br/>";
                    //body += "<h3 style='color:red'>如有任何疑問請聯絡工務部,分機3033或7033。<h3>";
                    mail.message.Body       = body;
                    mail.message.IsBodyHtml = true;
                    mail.SendMail();
                }

                return(new JsonResult(assign)
                {
                    Value = new { success = true, error = "" }
                });
            }
            else
            {
                string msg = "";
                foreach (var error in ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors))
                {
                    msg += error.ErrorMessage + Environment.NewLine;
                }
                throw new Exception(msg);
            }
        }
Example #25
0
 public ActionResult Assign(AssignModel assign, int departmentId)
 {
     ViewBag.message     = manager.Save(assign);
     ViewBag.departments = departmentManager.GetAllDepartment();
     return(View());
 }
Example #26
0
        public async Task <IViewComponentResult> InvokeAsync(string id)
        {
            /* Get repair and flow details. */
            RepairModel     repair     = _context.BMEDRepairs.Find(id);
            RepairDtlModel  repairDtl  = _context.BMEDRepairDtls.Find(id);
            RepairFlowModel repairFlow = _context.BMEDRepairFlows.Where(f => f.DocId == id && f.Status == "?")
                                         .FirstOrDefault();
            /* 增設流程 */
            List <SelectListItem> listItem = new List <SelectListItem>();

            if (repair.RepType == "增設")
            {
                listItem.Add(new SelectListItem {
                    Text = "申請人", Value = "申請人"
                });
                listItem.Add(new SelectListItem {
                    Text = "驗收人", Value = "驗收人"
                });
                listItem.Add(new SelectListItem {
                    Text = "單位主管", Value = "單位主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "單位主任", Value = "單位主任"
                });
                listItem.Add(new SelectListItem {
                    Text = "單位副院長", Value = "單位副院長"
                });
                listItem.Add(new SelectListItem {
                    Text = "維修工程師", Value = "維修工程師"
                });
                listItem.Add(new SelectListItem {
                    Text = "設備工程師", Value = "設備工程師"
                });
                listItem.Add(new SelectListItem {
                    Text = "醫工主管", Value = "醫工主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "賀康主管", Value = "賀康主管"
                });
                //listItem.Add(new SelectListItem { Text = "醫工主任", Value = "醫工主任" });
            }
            else  //維修流程
            {
                listItem.Add(new SelectListItem {
                    Text = "申請人", Value = "申請人"
                });
                listItem.Add(new SelectListItem {
                    Text = "驗收人", Value = "驗收人"
                });
                listItem.Add(new SelectListItem {
                    Text = "單位主管", Value = "單位主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "維修工程師", Value = "維修工程師"
                });
                listItem.Add(new SelectListItem {
                    Text = "設備工程師", Value = "設備工程師"
                });
                listItem.Add(new SelectListItem {
                    Text = "醫工主管", Value = "醫工主管"
                });
                listItem.Add(new SelectListItem {
                    Text = "賀康主管", Value = "賀康主管"
                });

                //額外流程控管
                if (repairDtl.IsCharged == "Y" && repairDtl.NotInExceptDevice == "N")   //有費用 & 非統包
                {
                    var itemToRemove = listItem.Single(r => r.Value == "驗收人");
                    listItem.Remove(itemToRemove); //只醫工、賀康主管可結案
                }
                if (repairDtl.DealState == 4)      //報廢
                {
                    var itemToRemove = listItem.Single(r => r.Value == "驗收人");
                    listItem.Remove(itemToRemove);                                    //只醫工、賀康主管可結案
                }
                if (repairDtl.IsCharged == "Y" && repairDtl.NotInExceptDevice == "Y") //有費用 & 統包
                {
                    var itemToRemove = listItem.Single(r => r.Value == "醫工主管");
                    listItem.Remove(itemToRemove);                         //移除醫工主管的選項
                }
                if (repairFlow.Cls == "驗收人" && repairDtl.IsCharged == "Y") //有費用 & 關卡於驗收人,下一關只可給工程師
                {
                    var itemToRemove = listItem.SingleOrDefault(r => r.Value == "醫工主管");
                    if (itemToRemove != null)
                    {
                        listItem.Remove(itemToRemove);
                    }
                    itemToRemove = listItem.SingleOrDefault(r => r.Value == "賀康主管");
                    if (itemToRemove != null)
                    {
                        listItem.Remove(itemToRemove);
                    }
                }
                //
            }
            //listItem.Add(new SelectListItem { Text = "列管財產負責人", Value = "列管財產負責人" });
            //listItem.Add(new SelectListItem { Text = "固資財產負責人", Value = "固資財產負責人" });
            listItem.Add(new SelectListItem {
                Text = "其他", Value = "其他"
            });
            /* Insert values. */
            AssignModel assign = new AssignModel();

            assign.DocId = id;

            /* 根據當下流程的人員做額外的流程控管 */
            if (repairFlow != null)
            {
                assign.Cls = repairFlow.Cls;

                if (repairFlow.Cls == "驗收人" || repairFlow.Cls == "醫工主管" ||
                    repairFlow.Cls == "賀康主管")    //可結案人員
                {
                    listItem.Add(new SelectListItem {
                        Text = "結案", Value = "結案"
                    });
                }
                if (repairFlow.Cls == "驗收人" && repairDtl.IsCharged == "Y")  //有費用 & 關卡於驗收人,下一關只可給工程師
                {
                    var itemToRemove = listItem.SingleOrDefault(r => r.Value == "結案");
                    if (itemToRemove != null)
                    {
                        listItem.Remove(itemToRemove);
                    }
                }
            }
            ViewData["FlowCls"] = new SelectList(listItem, "Value", "Text", "");

            List <SelectListItem> listItem3 = new List <SelectListItem>();

            listItem3.Add(new SelectListItem {
                Text = "", Value = ""
            });
            ViewData["FlowUid"] = new SelectList(listItem3, "Value", "Text", "");

            /* Get Default Checker for MedEngineers to edit. */
            List <SelectListItem> listItem4 = new List <SelectListItem>();
            var defaultChecker = _context.AppUsers.Find(repair.CheckerId);

            listItem4.Add(new SelectListItem {
                Text = defaultChecker.FullName, Value = defaultChecker.Id.ToString()
            });
            ViewData["DefaultChecker"] = new SelectList(listItem4, "Value", "Text", defaultChecker.Id.ToString());

            /* 驗收人員所屬部門搜尋的下拉選單資料 */
            var dptList     = new[] { "K", "P", "C" }; //本院部門
            var departments = _context.Departments.Where(d => dptList.Contains(d.Loc)).ToList();
            List <SelectListItem> listItem5 = new List <SelectListItem>();

            foreach (var item in departments)
            {
                listItem5.Add(new SelectListItem
                {
                    Text  = item.Name_C + "(" + item.DptId + ")",   //show DptName(DptId)
                    Value = item.DptId
                });
            }
            ViewData["BMEDQRYDPT"] = new SelectList(listItem5, "Value", "Text");

            //assign.Hint = "申請者→負責工程師→使用單位→[(若有費用及報廢)醫工部主管、賀康主管]→結案";
            assign.Hint = "申請者→負責工程師→使用單位→(若有費用)負責工程師→[醫工部主管、賀康主管]→結案";

            /* 於流程頁面顯示請修類型、及處理狀態*/
            string hintRepType  = repair.RepType;
            string hintRepState = "";
            var    repDtl       = _context.BMEDRepairDtls.Where(dtl => dtl.DocId == id).FirstOrDefault();

            if (repDtl != null)
            {
                hintRepState = _context.BMEDDealStatuses.Find(repDtl.DealState).Title;
            }
            ViewData["HintRepType"] = hintRepType + " / " + hintRepState;

            return(View(assign));
        }
        public ActionResult NextFlow(AssignModel assign)
        {
            var ur = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault();

            /* 工程師的流程控管 */
            if (assign.Cls == "工務/營建工程師")
            {
                /* 如點選有費用、卻無輸入費用明細 */
                var isCharged = _context.RepairDtls.Where(d => d.DocId == assign.DocId).FirstOrDefault().IsCharged;
                if (isCharged == "Y")
                {
                    var CheckRepairCost = _context.RepairCosts.Where(c => c.DocId == assign.DocId).FirstOrDefault();
                    if (CheckRepairCost == null)
                    {
                        string msg = "尚未輸入費用明細!!";
                        return(BadRequest(msg));
                    }
                }
                var repairDtl = _context.RepairDtls.Where(d => d.DocId == assign.DocId).FirstOrDefault();
                /* 3 = 已完成,4 = 報廢 */
                if (repairDtl.DealState == 3 || repairDtl.DealState == 4)
                {
                    if (repairDtl.EndDate == null)
                    {
                        string msg = "報廢及已完成,需輸入完工日!!";
                        return(BadRequest(msg));
                    }
                }
                /* 工程師做結案 */
                if (assign.FlowCls == "結案")
                {
                    if (_context.RepairEmps.Where(emp => emp.DocId == assign.DocId).Count() <= 0)
                    {
                        string msg = "沒有維修工程師紀錄!!";
                        return(BadRequest(msg));
                    }
                    else if (_context.RepairDtls.Find(assign.DocId).EndDate == null)
                    {
                        string msg = "沒有完工日!!";
                        return(BadRequest(msg));
                    }
                    else if (_context.RepairDtls.Find(assign.DocId).DealState == 0)
                    {
                        string msg = "處理狀態不可空值!!";
                        return(BadRequest(msg));
                    }
                    if (_context.RepairDtls.Find(assign.DocId).FailFactor == 0)
                    {
                        string msg = "故障原因不可空白!!";
                        return(BadRequest(msg));
                    }
                    if (string.IsNullOrEmpty(_context.RepairDtls.Find(assign.DocId).InOut))
                    {
                        string msg = "維修方式不可空白!!";
                        return(BadRequest(msg));
                    }
                    if (_context.RepairDtls.Find(assign.DocId).DealState == 1 || _context.RepairDtls.Find(assign.DocId).DealState == 2)
                    {
                        string msg = "處理狀態不可為處理中或未處理!!";
                        return(BadRequest(msg));
                    }
                }
            }

            if (assign.FlowCls == "結案" || assign.FlowCls == "廢除")
            {
                assign.FlowUid = ur.Id;
            }
            if (ModelState.IsValid)
            {
                RepairFlowModel rf = _context.RepairFlows.Where(f => f.DocId == assign.DocId && f.Status == "?").FirstOrDefault();
                if (assign.FlowCls == "驗收人")
                {
                    if (_context.RepairEmps.Where(emp => emp.DocId == assign.DocId).Count() <= 0)
                    {
                        //throw new Exception("沒有維修工程師紀錄!!");
                        string msg = "沒有維修工程師紀錄!!";
                        return(BadRequest(msg));
                    }
                    else if (_context.RepairDtls.Find(assign.DocId).EndDate == null)
                    {
                        //throw new Exception("沒有完工日!!");
                        string msg = "沒有完工日!!";
                        return(BadRequest(msg));
                    }
                    else if (_context.RepairDtls.Find(assign.DocId).DealState == 0)
                    {
                        //throw new Exception("處理狀態不可空值!!");
                        string msg = "處理狀態不可空值!!";
                        return(BadRequest(msg));
                    }
                    if (_context.RepairDtls.Find(assign.DocId).FailFactor == 0)
                    {
                        //throw new Exception("故障原因不可空白!!");
                        string msg = "故障原因不可空白!!";
                        return(BadRequest(msg));
                    }
                    if (string.IsNullOrEmpty(_context.RepairDtls.Find(assign.DocId).InOut))
                    {
                        //throw new Exception("維修方式不可空白!!");
                        string msg = "維修方式不可空白!!";
                        return(BadRequest(msg));
                    }
                    if (_context.RepairDtls.Find(assign.DocId).DealState == 1 || _context.RepairDtls.Find(assign.DocId).DealState == 2)
                    {
                        //throw new Exception("維修方式不可空白!!");
                        string msg = "處理狀態不可為處理中或未處理!!";
                        return(BadRequest(msg));
                    }
                }
                if (assign.FlowCls == "結案")
                {
                    RepairDtlModel rd = _context.RepairDtls.Find(assign.DocId);
                    rd.CloseDate             = DateTime.Now;
                    rf.Opinions              = "[" + assign.AssignCls + "]" + Environment.NewLine + assign.AssignOpn;
                    rf.Status                = "2";
                    rf.UserId                = ur.Id;
                    rf.UserName              = _context.AppUsers.Find(ur.Id).FullName;
                    rf.Rtt                   = DateTime.Now;
                    rf.Rtp                   = ur.Id;
                    _context.Entry(rf).State = EntityState.Modified;
                    _context.Entry(rd).State = EntityState.Modified;

                    //If "結案", delete 1 dealing doc to the engineer.
                    //var repairDoc = _context.Repairs.Find(assign.DocId);
                    //var eng = _context.EngDealingDocs.Find(repairDoc.EngId);
                    //eng.DealingDocs = eng.DealingDocs - 1;
                    //_context.Entry(eng).State = EntityState.Modified;
                    _context.SaveChanges();

                    //Send Mail
                    //To all users in this repair's flow.
                    //try
                    //{
                    //    Tmail mail = new Tmail();
                    //    string body = "";
                    //    string sto = "";
                    //    AppUserModel u;
                    //    RepairModel repair = _context.Repairs.Find(assign.DocId);
                    //    if (repair.Building != null)
                    //    {
                    //        repair.BuildingName = _context.Buildings.Where(b => b.BuildingId == Convert.ToInt32(repair.Building)).FirstOrDefault().BuildingName;
                    //        repair.FloorName = _context.Floors.Where(f => f.BuildingId == Convert.ToInt32(repair.Building) && f.FloorId == repair.Floor).FirstOrDefault().FloorName;
                    //        repair.AreaName = _context.Places.Where(p => p.BuildingId == Convert.ToInt32(repair.Building) && p.FloorId == repair.Floor && p.PlaceId == repair.Area).FirstOrDefault().PlaceName;
                    //    }
                    //    else
                    //    {
                    //        repair.BuildingName = "(無資料)";
                    //        repair.FloorName = "";
                    //        repair.AreaName = "";
                    //    }
                    //    mail.from = new System.Net.Mail.MailAddress(ur.Email); //u.Email
                    //    /* If is charged, send mail to all flow users. */
                    //    if (rd.IsCharged == "Y")
                    //    {
                    //        _context.RepairFlows.Where(f => f.DocId == assign.DocId)
                    //            .ToList()
                    //            .ForEach(f =>
                    //            {
                    //                u = _context.AppUsers.Find(f.UserId);
                    //                sto += u.Email + ",";
                    //            });
                    //    }
                    //    else
                    //    {
                    //        _context.RepairFlows.Where(f => f.DocId == assign.DocId).Where(f => f.Cls.Contains("工程師") == false)
                    //            .ToList()
                    //            .ForEach(f =>
                    //            {
                    //                u = _context.AppUsers.Find(f.UserId);
                    //                sto += u.Email + ",";
                    //            });
                    //    }
                    //    var temp = _context.RepairFlows.Where(f => f.DocId == assign.DocId).Where(f => f.Cls.Contains("工程師") == false)
                    //            .ToList();
                    //    mail.sto = sto.TrimEnd(new char[] { ',' });

                    //    mail.message.Subject = "工務智能請修系統[請修案-結案通知]:設備名稱: " + repair.AssetName;
                    //    body += "<p>表單編號:" + repair.DocId + "</p>";
                    //    body += "<p>申請日期:" + repair.ApplyDate.ToString("yyyy/MM/dd") + "</p>";
                    //    body += "<p>申請人:" + repair.UserName + "</p>";
                    //    body += "<p>財產編號:" + repair.AssetNo + "</p>";
                    //    body += "<p>設備名稱:" + repair.AssetName + "</p>";
                    //    body += "<p>請修地點:" + repair.PlaceLoc + " " + repair.BuildingName + " " + repair.FloorName + " " + repair.AreaName + "</p>";
                    //    //body += "<p>放置地點:" + repair.PlaceLoc + "</p>";
                    //    body += "<p>故障描述:" + repair.TroubleDes + "</p>";
                    //    body += "<p>處理描述:" + rd.DealDes + "</p>";
                    //    body += "<p><a href='http://dms.cch.org.tw/EDIS/Account/Login" + "?DocId=" + repair.DocId + "&dealType=Views'" + ">檢視案件</a></p>";
                    //    body += "<br/>";
                    //    body += "<p>使用IE瀏覽器注意事項:</p>";
                    //    body += "<p>「工具」→「相容性檢視設定」→移除cch.org.tw</p>";
                    //    body += "<br/>";
                    //    body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>";
                    //    body += "<br/>";
                    //    body += "<h3 style='color:red'>如有任何疑問請聯絡工務部,分機3033或7033。<h3>";
                    //    mail.message.Body = body;
                    //    mail.message.IsBodyHtml = true;
                    //    mail.SendMail();
                    //}
                    //catch (Exception ex)
                    //{
                    //    throw new Exception(ex.Message);
                    //}
                }
                else if (assign.FlowCls == "廢除")
                {
                    rf.Opinions = "[廢除]" + Environment.NewLine + assign.AssignOpn;
                    rf.Status   = "3";
                    rf.Rtt      = DateTime.Now;
                    rf.Rtp      = ur.Id;
                    _context.Entry(rf).State = EntityState.Modified;
                    _context.SaveChanges();
                }
                else
                {
                    //轉送下一關卡
                    rf.Opinions = "[" + assign.AssignCls + "]" + Environment.NewLine + assign.AssignOpn;
                    rf.Status   = "1";
                    rf.Rtt      = DateTime.Now;
                    rf.Rtp      = ur.Id;
                    _context.Entry(rf).State = EntityState.Modified;
                    _context.SaveChanges();
                    //
                    RepairFlowModel flow = new RepairFlowModel();
                    flow.DocId    = assign.DocId;
                    flow.StepId   = rf.StepId + 1;
                    flow.UserId   = assign.FlowUid.Value;
                    flow.UserName = _context.AppUsers.Find(assign.FlowUid.Value).FullName;
                    flow.Status   = "?";
                    flow.Cls      = assign.FlowCls;
                    flow.Rtt      = DateTime.Now;
                    _context.RepairFlows.Add(flow);
                    _context.SaveChanges();

                    //Send Mail
                    //To the next flow user.
                    try
                    {
                        Tmail        mail = new Tmail();
                        string       body = "";
                        AppUserModel u;
                        RepairModel  repair = _context.Repairs.Find(assign.DocId);
                        if (repair.Building != null)
                        {
                            repair.BuildingName = _context.Buildings.Where(b => b.BuildingId == Convert.ToInt32(repair.Building)).FirstOrDefault().BuildingName;
                            repair.FloorName    = _context.Floors.Where(f => f.BuildingId == Convert.ToInt32(repair.Building) && f.FloorId == repair.Floor).FirstOrDefault().FloorName;
                            repair.AreaName     = _context.Places.Where(p => p.BuildingId == Convert.ToInt32(repair.Building) && p.FloorId == repair.Floor && p.PlaceId == repair.Area).FirstOrDefault().PlaceName;
                        }
                        else
                        {
                            repair.BuildingName = "(無資料)";
                            repair.FloorName    = "";
                            repair.AreaName     = "";
                        }
                        mail.from = new System.Net.Mail.MailAddress(ur.Email); //ur.Email
                        u         = _context.AppUsers.Find(flow.UserId);
                        mail.to   = new System.Net.Mail.MailAddress(u.Email);  //u.Email
                                                                               //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**");
                        mail.message.Subject = "工務智能請修系統[請修案]:設備名稱: " + repair.AssetName;
                        body += "<p>表單編號:" + repair.DocId + "</p>";
                        body += "<p>申請日期:" + repair.ApplyDate.ToString("yyyy/MM/dd") + "</p>";
                        body += "<p>申請人:" + repair.UserName + "</p>";
                        body += "<p>財產編號:" + repair.AssetNo + "</p>";
                        body += "<p>設備名稱:" + repair.AssetName + "</p>";
                        body += "<p>故障描述:" + repair.TroubleDes + "</p>";
                        body += "<p>請修地點:" + repair.PlaceLoc + " " + repair.BuildingName + " " + repair.FloorName + " " + repair.AreaName + "</p>";
                        //body += "<p>放置地點:" + repair.PlaceLoc + "</p>";
                        body += "<p><a href='http://dms.cch.org.tw/EDIS/Account/Login" + "?docId=" + repair.DocId + "&dealType=Edit'" + ">處理案件</a></p>";
                        body += "<br/>";
                        body += "<p>使用IE瀏覽器注意事項:</p>";
                        body += "<p>「工具」→「相容性檢視設定」→移除cch.org.tw</p>";
                        body += "<br/>";
                        body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>";
                        body += "<br/>";
                        body += "<h3 style='color:red'>如有任何疑問請聯絡工務部,分機3033或7033。<h3>";
                        mail.message.Body       = body;
                        mail.message.IsBodyHtml = true;
                        /* If next flow is not engineer, send mail. */
                        if (flow.Cls.Contains("工程師") == false)
                        {
                            mail.SendMail();
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }

                return(new JsonResult(assign)
                {
                    Value = new { success = true, error = "" }
                });
            }
            else
            {
                string msg = "";
                foreach (var error in ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors))
                {
                    msg += error.ErrorMessage + Environment.NewLine;
                }
                throw new Exception(msg);
            }
        }
Example #28
0
        public async Task <IViewComponentResult> InvokeAsync(string id)
        {
            /* Get repair and flow details. */
            KeepModel     keep     = _context.BMEDKeeps.Find(id);
            KeepFlowModel keepFlow = _context.BMEDKeepFlows.Where(f => f.DocId == id && f.Status == "?")
                                     .FirstOrDefault();

            List <SelectListItem> listItem = new List <SelectListItem>();

            listItem.Add(new SelectListItem {
                Text = "申請人", Value = "申請人"
            });
            listItem.Add(new SelectListItem {
                Text = "驗收人", Value = "驗收人"
            });
            listItem.Add(new SelectListItem {
                Text = "單位主管", Value = "單位主管"
            });
            listItem.Add(new SelectListItem {
                Text = "維修工程師", Value = "維修工程師"
            });
            listItem.Add(new SelectListItem {
                Text = "設備工程師", Value = "設備工程師"
            });
            listItem.Add(new SelectListItem {
                Text = "醫工主管", Value = "醫工主管"
            });
            listItem.Add(new SelectListItem {
                Text = "設備主管", Value = "設備主管"
            });
            //listItem.Add(new SelectListItem { Text = "醫工主任", Value = "醫工主任" });
            listItem.Add(new SelectListItem {
                Text = "其他", Value = "其他"
            });

            /* Insert values. */
            AssignModel assign = new AssignModel();

            assign.DocId = id;

            /* 根據當下流程的人員做額外的流程控管 */
            if (keepFlow != null)
            {
                assign.Cls = keepFlow.Cls;

                if (keepFlow.Cls == "驗收人" || keepFlow.Cls == "醫工主管")    //驗收人 or 醫工主管結案
                {
                    listItem.Add(new SelectListItem {
                        Text = "結案", Value = "結案"
                    });
                }
            }
            ViewData["FlowCls"] = new SelectList(listItem, "Value", "Text", "");

            List <SelectListItem> listItem3 = new List <SelectListItem>();

            listItem3.Add(new SelectListItem {
                Text = "", Value = ""
            });
            ViewData["FlowUid"] = new SelectList(listItem3, "Value", "Text", "");

            assign.Hint = "";

            return(View(assign));
        }
Example #29
0
        public async Task <BusinessLayerResult <AssignModel> > AssignInstructor(string path, string accessToken, AssignModel assignModel)
        {
            BusinessLayerResult <AssignModel> result = new BusinessLayerResult <AssignModel>();

            _httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
            var stringContent            = new StringContent(JsonConvert.SerializeObject(assignModel), Encoding.UTF8, "application/json");
            HttpResponseMessage response = await _httpClient.PostAsync(path, stringContent);

            if (response.IsSuccessStatusCode)
            {
                result = await response.Content.ReadAsAsync <BusinessLayerResult <AssignModel> >();

                return(result);
            }
            else
            {
                return(result);
            }
        }
Example #30
0
        public IActionResult EditRepFlow(string qtyDocId)
        {
            string docId      = qtyDocId.Trim();
            var    repairFlow = _context.RepairFlows.Where(rf => rf.DocId == docId).ToList();
            string repairStatus;

            if (repairFlow.Count() == 0)
            {
                string msg = "查無資料!!";
                return(BadRequest(msg));
            }
            else
            {
                repairStatus = repairFlow.OrderBy(rf => rf.StepId).LastOrDefault().Status;

                if (repairStatus == "3")
                {
                    string msg = "此案件已廢除!!";
                    return(BadRequest(msg));
                }
                else
                {
                    /* Insert values. */
                    AssignModel assign = new AssignModel();
                    assign.DocId     = docId;
                    assign.AssignOpn = repairFlow.OrderBy(rf => rf.StepId).LastOrDefault().Opinions;

                    List <SelectListItem> listItem = new List <SelectListItem>();
                    listItem.Add(new SelectListItem {
                        Text = "申請人", Value = "申請人"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "驗收人", Value = "驗收人"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "單位主管", Value = "單位主管"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "單位主任", Value = "單位主任"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "單位直屬院長室主管", Value = "單位直屬院長室主管"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "工務/營建工程師", Value = "工務/營建工程師"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "工務主管", Value = "工務主管"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "工務主任", Value = "工務主任"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "營建主管", Value = "營建主管"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "營建主任", Value = "營建主任"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "工務經辦", Value = "工務經辦"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "列管財產負責人", Value = "列管財產負責人"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "固資財產負責人", Value = "固資財產負責人"
                    });
                    listItem.Add(new SelectListItem {
                        Text = "其他", Value = "其他"
                    });
                    ViewData["FlowCls"] = new SelectList(listItem, "Value", "Text", "");

                    List <SelectListItem> listItem3 = new List <SelectListItem>();
                    listItem3.Add(new SelectListItem {
                        Text = "", Value = ""
                    });
                    ViewData["FlowUid"] = new SelectList(listItem3, "Value", "Text", "");

                    return(View("EditFlowList", assign));
                }
            }
        }