Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @using DocProLogic.Models;
- @using DocProUtil.Customs.Perms;
- @model WorkflowModel
- @{
- var users = Model.Users ?? new List<User>();
- var depts = Model.Depts ?? new List<Dept>();
- var teams = Model.Teams ?? new List<Team>();
- var positions = Model.Positions ?? new List<Position>();
- var workflowSteps = ViewBag.stepModel;
- var workflowExecutors = Model.WorkflowExecutors ?? new List<WorkflowExecutor>();
- var workflowStatusItems = Model.WorkflowStatusItems ?? new List<WorkflowStatus>();
- var isUpdate = new WorkflowPerm(ViewBag.CUser, Model.Workflow).IsUpdate();
- Loger.Log(Utils.Serialize(workflowExecutors),"SonTH");
- }
- @foreach (var workflowStep in workflowSteps)
- {
- var rand = Guid.NewGuid();
- var stepWorkflowExecutors = workflowExecutors.Where(x => x.IDWorkflowStep == workflowStep.key).ToList() ?? new List<WorkflowExecutor>();
- Loger.Log(Utils.Serialize(stepWorkflowExecutors),"SonTH");
- var stepWorkflowStatusItems = workflowStatusItems.Where(x => x.IDWorkflowStep == workflowStep.ID).ToList() ?? new List<WorkflowStatus>();
- <div class="col-lg-4 col-sm-12 col-xs-12 item @(isUpdate ? "sortitem" : string.Empty)">
- <div class="widget">
- <div class="widget-header bordered-bottom bordered-themeprimary">
- <i class="widget-icon fa fa-tasks themeprimary"></i>
- <span class="widget-caption themeprimary">@Locate.T("Bước thực hiện")</span>
- <i class="close deleteItem ion-close-round"></i>
- </div>
- <div class="widget-body">
- <div class="task-container">
- <div class="form-group has-feedback">
- <label class="col-lg-12">@Locate.T("Tên bước")</label>
- <div class="col-lg-12">
- <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepName@(rand)" name="StepName" type="text" data-bv-notempty-message="@Locate.T("Tên bước không được trống")" data-bv-notempty="true"
- placeholder="@Locate.T("Tên bước")" class="form-control" data-bv-field="StepName" value="@workflowStep.text">
- </div>
- </div>
- <div class="form-group has-feedback">
- <label class="col-lg-12">@Locate.T("Mô tả")</label>
- <div class="col-lg-12">
- <textarea @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepDescribe@(rand)" name="StepDescribe" rows="3" cols="20" placeholder="@Locate.T("Mô tả")" class="form-control noresize">@workflowStep.Describe</textarea>
- </div>
- </div>
- <div class="form-group has-feedback">
- <div class="col-lg-12">
- <div class="tabbable">
- <ul class="nav nav-tabs tabs-flat">
- <li class="active">
- <a data-toggle="tab" href="#ExecutorUser@(rand)" aria-expanded="true">@Locate.T("Nhân viên")</a>
- </li>
- <li>
- <a data-toggle="tab" href="#ExecutorDept@(rand)" aria-expanded="true">@Locate.T("Phòng")</a>
- </li>
- <li>
- <a data-toggle="tab" href="#ExecutorPosition@(rand)" aria-expanded="true">@Locate.T("Chức vụ")</a>
- </li>
- <li>
- <a data-toggle="tab" href="#ExecutorTeam@(rand)" aria-expanded="true">@Locate.T("Nhóm")</a>
- </li>
- </ul>
- <div class="tab-content tabs-flat nopadlr">
- <input type="hidden" name="StepExecutor" value="@rand" />
- <div id="ExecutorUser@(rand)" class="tab-pane active">
- <div>
- <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepUserName@(rand)" name="UserName" data-target="#UpWorkflowIDUserContainer@(rand)" data-name="IDUser@(rand)" data-type="0"
- placeholder="@Locate.T("Người thực hiện")" class="form-control @(isUpdate ? "autocompleteUser" : string.Empty)" type="text">
- <div id="UpWorkflowIDUserContainer@(rand)" class="useScrollBar scrollItems" name="WorkflowStepExecutors@(rand)">
- @foreach (var stepWorkflowExecutor in stepWorkflowExecutors)
- {
- var user = users.Where(x => x.ID == stepWorkflowExecutor.IDUser).SingleOrDefault();
- if (Utils.IsNotEmpty(user))
- {
- <div class="scrollItem tickGroup item" data-id="@user.ID">
- <div class="col-sm-12">
- <div class="checkbox">
- <label>
- <input @(isUpdate ? string.Empty : "disabled") checked value="@user.ID" class="colored-success tickItem" name="IDUser@(rand)" id="Rand@(rand)" type="checkbox">
- <span class="nowrap text">@user.Name</span>
- </label>
- </div>
- <button type="button" class="btn btn-xs btn-link close deleteItem">x</button>
- </div>
- </div>
- }
- }
- </div>
- </div>
- </div>
- <div id="ExecutorDept@(rand)" class="tab-pane">
- <div>
- <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepDeptName@(rand)" name="DeptName" data-target="#UpWorkflowIDDeptContainer@(rand)" data-name="IDDept@(rand)" data-type="0"
- placeholder="@Locate.T("Phòng thực hiện")" class="form-control @(isUpdate ? "autocompleteDept" : string.Empty)" type="text">
- <div id="UpWorkflowIDDeptContainer@(rand)" class="useScrollBar scrollItems" name="WorkflowStepExecutors@(rand)">
- @foreach (var stepWorkflowExecutor in stepWorkflowExecutors)
- {
- var dept = depts.Where(x => x.ID == stepWorkflowExecutor.IDDept).SingleOrDefault();
- if (Utils.IsNotEmpty(dept))
- {
- <div class="scrollItem tickGroup item" data-id="@dept.ID">
- <div class="col-sm-12">
- <div class="checkbox">
- <label>
- <input @(isUpdate ? string.Empty : "disabled") checked value="@dept.ID" class="colored-success tickItem" name="IDDept@(rand)" id="Rand@(rand)" type="checkbox">
- <span class="nowrap text">@dept.Name</span>
- </label>
- </div>
- <button type="button" class="btn btn-xs btn-link close deleteItem">x</button>
- </div>
- </div>
- }
- }
- </div>
- </div>
- </div>
- <div id="ExecutorPosition@(rand)" class="tab-pane">
- <div>
- <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepPositionName@(rand)" name="PositionName" data-target="#UpWorkflowIDPositionContainer@(rand)" data-name="IDPosition@(rand)" data-type="0"
- placeholder="@Locate.T("Chức vụ")" class="form-control @(isUpdate ? "autocompletePosition" : string.Empty)" type="text">
- <div id="UpWorkflowIDPositionContainer@(rand)" class="useScrollBar scrollItems" name="WorkflowStepExecutors@(rand)">
- @foreach (var stepWorkflowExecutor in stepWorkflowExecutors)
- {
- var position = positions.Where(x => x.ID == stepWorkflowExecutor.IDPosition).SingleOrDefault();
- if (Utils.IsNotEmpty(position))
- {
- <div class="scrollItem tickGroup item" data-id="@position.ID">
- <div class="col-sm-12">
- <div class="checkbox">
- <label>
- <input @(isUpdate ? string.Empty : "disabled") checked value="@position.ID" class="colored-success tickItem" name="IDPosition@(rand)" id="Rand@(rand)" type="checkbox">
- <span class="nowrap text">@position.Name</span>
- </label>
- </div>
- <button type="button" class="btn btn-xs btn-link close deleteItem">x</button>
- </div>
- </div>
- }
- }
- </div>
- </div>
- </div>
- <div id="ExecutorTeam@(rand)" class="tab-pane">
- <div>
- <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepTeamName@(rand)" name="TeamName" data-target="#UpWorkflowIDTeamContainer@(rand)" data-name="IDTeam@(rand)" data-type="0"
- placeholder="@Locate.T("Nhóm thực hiện")" class="form-control @(isUpdate ? "autocompleteTeam" : string.Empty)" type="text">
- <div id="UpWorkflowIDTeamContainer@(rand)" class="useScrollBar scrollItems" name="WorkflowStepExecutors@(rand)">
- @foreach (var stepWorkflowExecutor in stepWorkflowExecutors)
- {
- var team = teams.Where(x => x.ID == stepWorkflowExecutor.IDTeam).SingleOrDefault();
- if (Utils.IsNotEmpty(team))
- {
- <div class="scrollItem tickGroup item" data-id="@team.ID">
- <div class="col-sm-12">
- <div class="checkbox">
- <label>
- <input @(isUpdate ? string.Empty : "disabled") checked value="@team.ID" class="colored-success tickItem" name="IDTeam@(rand)" id="Rand@(rand)" type="checkbox">
- <span class="nowrap text">@team.Name</span>
- </label>
- </div>
- <button type="button" class="btn btn-xs btn-link close deleteItem">x</button>
- </div>
- </div>
- }
- }
- </div>
- </div>
- </div>
- </div>
- </div>
- <div name="WorkflowStepExecutors@(rand)"
- data-bv-callback="true"
- data-bv-callback-message="@Locate.T("Bạn chưa chọn đối tượng thực hiện")"
- data-bv-callback-callback="Callbacks.WorkflowStepExecutors" data-bv-field="WorkflowStepExecutors@(rand)"></div>
- </div>
- </div>
- <div class="form-group has-feedback hidden">
- <label class="col-lg-12">@Locate.T("Thiết lập trạng thái") <i class="glyphicon glyphicon-question-sign red" title="@Locate.T("Các trạng thái của bước thực hiện. Mỗi trạng thái là 1 dòng")"></i></label>
- <div class="col-lg-12">
- @{
- var statusStr = string.Empty;
- var workflowStatus = workflowStatusItems.Where(x => x.IDWorkflowStep == workflowStep.ID).ToList();
- if (Utils.IsNotEmpty<WorkflowStatus>(workflowStatusItems))
- {
- statusStr = string.Join("\n", workflowStatus.Select(x => x.Name).ToArray());
- }
- }
- <textarea @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepStatus@(rand)" name="StepStatus" rows="3" cols="20" placeholder="@Locate.T("Thiết lập trạng thái")" class="form-control noresize">@(new HtmlString(statusStr))</textarea>
- </div>
- </div>
- <div class="form-group has-feedback">
- <div class="col-lg-6">
- <label>@Locate.T("Số ngày thực hiện")</label>
- <div>
- <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepDay@(rand)" name="StepDay" type="text" data-bv-notempty-message="@Locate.T("Số ngày")" data-bv-notempty="true"
- placeholder="@Locate.T("Số ngày thực hiện")" class="form-control" data-bv-field="StepDay" value="@workflowStep.StepDay">
- </div>
- </div>
- <div class="col-lg-6">
- <label>@Locate.T("Số giờ thực hiện")</label>
- <div>
- <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepHour@(rand)" name="StepHour" type="text" data-bv-notempty-message="@Locate.T("Số giờ")" data-bv-notempty="true"
- placeholder="@Locate.T("Số giờ thực hiện")" class="form-control" data-bv-field="StepHour" value="@workflowStep.StepHour">
- </div>
- </div>
- </div>
- @*<div class="form-group has-feedback hidden">
- <div class="col-lg-12">
- <div class="checkbox">
- <label>
- <input @(isUpdate ? string.Empty : "readonly") type="hidden" value="@(workflowStep.IsAllCompleted ? 1 : 0)" name="StepIsAllCompleted" id="UpWorkflowIsAllCompleted@(rand)">
- <input @(isUpdate ? string.Empty : "readonly") type="checkbox" @(workflowStep.IsAllCompleted ? "checked" : string.Empty) value="1" class="colored-success changeRel" data-rel="#UpWorkflowIsAllCompleted@(rand)">
- <span class="text">@Locate.T("Bước thực hiện hoàn thành khi tất cả người thực hiện xác hoàn thành.") <i class="glyphicon glyphicon-question-sign red" title="@Locate.T("Bỏ chọn khi ban muốn chỉ một trong số người thực hiện xác nhận hoàn thành, hệ thống sẽ chuyển trạng thái hoàn thành bước thực hiện")"></i></span>
- </label>
- </div>
- </div>
- </div>*@
- <div class="form-group has-feedback">
- <label class="col-sm-12">@Locate.T("Kiểu bước")</label>
- <div class="col-sm-12">
- <select @(isUpdate ? string.Empty : "disabled") class="form-control selectpicker" data-live-search="true" name="TypeCompleted" id="UpWorkflowTypeCompleted@(rand)" data-container="body" data-size="5">
- <option @(workflowStep.StepType == 0 ? "selected" : string.Empty) value="0">@Locate.T("Chuyển tiếp")</option>
- <option @(workflowStep.StepType == 1 ? "selected" : string.Empty) value="1">@Locate.T("Duyệt")</option>
- </select>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement