Преглед изворни кода

新增作业票编辑功能

huangsanjia пре 3 година
родитељ
комит
a117b5b50f

+ 83 - 0
application/admin/controller/Task.php

@@ -25,6 +25,89 @@ class Task extends Backend
         $this->model = new \app\admin\model\Task;
     }
 
+    /**
+     * 编辑
+     *
+     * @param $ids
+     * @return string
+     * @throws DbException
+     * @throws \think\Exception
+     */
+    public function edit($ids = null)
+    {
+        $row = $this->model->get($ids);
+        if (!$row) {
+            $this->error(__('No Results were found'));
+        }
+        $adminIds = $this->getDataLimitAdminIds();
+        if (is_array($adminIds) && !in_array($row[$this->dataLimitField], $adminIds)) {
+            $this->error(__('You have no permission'));
+        }
+        if (false === $this->request->isPost()) {
+            //新增关联订单
+            $order = Db::name('order')->where('status','neq',3)->field('id,customer,product,number,completed')->select();
+            $uncompleted_order = array();
+            if (!empty($order)){
+                foreach($order as $k=>$v){
+                    $uncompleted_order[$k]['id'] = $v['id'];
+                    if (empty($v['completed'])){
+                        $completed = 0;
+                    }else{
+                        $completed = $v['completed'];
+                    }
+                    $uncompleted_order[$k]['str'] = $v['id'].'、'.$v['customer'].'-'.$v['product'].'-'.'总数量('.$v['number'].'kg)'.'-' .'已完成('.$completed.'kg)';
+                }
+            }
+
+            $formula_detail['data'] = Db::name('task')->where('id',$ids)->find();
+            $formula_detail['detail']  = Db::name('formula_detail')->where('pid',$formula_detail['data']['fid'])->select();
+            foreach ($formula_detail['detail'] as $key=>$value){
+                $formula_detail['detail'][$key]['percentage'] = decode($value['percentage']);
+            }
+            $this->view->assign("formula_detail", $formula_detail);
+            $this->view->assign('row', $row);
+            $this->view->assign('order',$uncompleted_order);
+            $this->view->assign('machineList',\app\admin\model\Machine::select());
+            return $this->view->fetch();
+        }
+        /**
+         * 如果修改关联订单,1、将之前oid的已完成订单数量减掉 2、加上新选择的oid的已完成订单数量
+         * 3、修改作业票信息
+        */
+        $params = $this->request->post('row/a');
+//        echo "<pre>";
+//        print_r($params);
+//        echo "</pre>";
+//        die;
+        if (empty($params)) {
+            $this->error(__('Parameter %s can not be empty', ''));
+        }
+        $params = $this->preExcludeFields($params);
+        $result = false;
+        Db::startTrans();
+        try {
+            if ($row['oid'] != $params['oid']){
+                //第一步
+                $res = Db::name('order')->where('id',$row['oid'])->find();
+                $num = $res['completed'] - $row['number'];
+                Db::name('order')->where('id',$row['oid'])->setField('completed',$num);
+                //第二步
+                $order = Db::name('order')->where('id',$params['oid'])->find();
+                $o_num = $order['completed'] + $row['number'];
+                Db::name('order')->where('id',$params['oid'])->setField('completed',$o_num);
+            }
+            //第三步
+            $result = Db::name('task')->where('id',$ids)->update($params);
+            Db::commit();
+        } catch (ValidateException|PDOException|Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        }
+        if (false === $result) {
+            $this->error(__('No rows were updated'));
+        }
+        $this->success();
+    }
 
 
     /**

+ 77 - 38
application/admin/view/task/edit.html

@@ -1,52 +1,91 @@
-<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
+<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
 
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-name" data-rule="required" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
+    <div style="width: 40%;float:left;margin: 0px 0px 0px 0px">
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-5">{:__('Name')}:</label>
+            <div class="col-xs-12 col-sm-6">
+                <input id="c-name" readonly class="form-control" name="row[name]" value="{$row.name}" type="text">
+            </div>
         </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Bach')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-bach" data-rule="required" class="form-control" name="row[bach]" type="text" value="{$row.bach|htmlentities}">
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-5">{:__('Drawer_name')}:</label>
+            <div class="col-xs-12 col-sm-6">
+                <input id="c-drawer_name" readonly class="form-control" name="row[drawer_name]" value="{$row.drawer_name}" type="text">
+            </div>
         </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Drawer_name')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-drawer_name" class="form-control" name="row[drawer_name]" type="text" value="{$row.drawer_name|htmlentities}">
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-5">{:__('Number')}:</label>
+            <div class="col-xs-12 col-sm-6">
+                <input id="c-number" readonly class="form-control" name="row[number]" value="{$row.number}" type="text">
+            </div>
         </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Examine_name')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-examine_name" class="form-control" name="row[examine_name]" type="text" value="{$row.examine_name|htmlentities}">
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-5">机台选择:</label>
+            <div class="col-xs-12 col-sm-6">
+                <select id="c-mid" data-rule="required" class="control-label col-xs-12 col-sm-8 selectpicker" name="row[machine]">
+                    {foreach name="machineList" item="vo"}
+                    <option value="{$vo.name}" {if condition="$row.machine eq $vo.name"}selected{/if} >{$vo.name}</option>
+                    {/foreach}
+                </select>
+            </div>
+
         </div>
     </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Number')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-number" data-rule="required" class="form-control" name="row[number]" type="text" value="{$row.number|htmlentities}">
+
+    <div style="width: 40%;float:right;margin: 0px 214px 0px 0px">
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-5">{:__('Bach')}:</label>
+            <div class="col-xs-12 col-sm-6">
+                <input id="c-bach" readonly class="form-control" name="row[bach]" value="{$row.bach}" type="text">
+            </div>
         </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-remark" class="form-control" name="row[remark]" type="text" value="{$row.remark|htmlentities}">
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-5">{:__('Examine_name')}:</label>
+            <div class="col-xs-12 col-sm-6">
+                <input id="c-examine_name" readonly class="form-control" name="row[examine_name]" value="{$row.examine_name}" type="text">
+            </div>
         </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Fid')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-fid" data-rule="required" class="form-control" name="row[fid]" type="number" value="{$row.fid|htmlentities}">
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-5">{:__('Remark')}:</label>
+            <div class="col-xs-12 col-sm-6">
+                <input id="c-remark" readonly class="form-control" name="row[remark]" value="{$row.remark}" type="text">
+            </div>
+        </div>
+        <div lass="form-group">
+            <label class="control-label col-xs-12 col-sm-5">请选择关联订单:</label>
+            <div class="col-xs-12 col-sm-6">
+                <select id="c-order-uncompleted" data-rule="required" class="control-label col-xs-12 col-sm-24 selectpicker" name="row[oid]">
+                    {foreach name="order" item="vo"}
+                    <option value="{$vo.id}"  {if condition="$row.oid eq $vo.id"}selected{/if}>{$vo.str}</option>
+                    {/foreach}
+                </select>
+            </div>
         </div>
     </div>
+    <!--=================================================================================================-->
     <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Create')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-create" class="form-control" name="row[create]" type="text" value="{$row.create|htmlentities}">
-        </div>
+        <table class="table table-striped table-bordered table-hover table-nowrap" id="table">
+            <tr>
+                <th class="col-xs-12 col-sm-1">批次号</th>
+                <th class="col-xs-12 col-sm-1">原材料</th>
+                <th class="col-xs-12 col-sm-1">百分比</th>
+                <th class="col-xs-12 col-sm-5">操作工艺说明</th>
+                <th class="col-xs-12 col-sm-1">工序</th>
+                <th class="col-xs-12 col-sm-1">版本号</th>
+                <th class="col-xs-12 col-sm-2">日期</th>
+            </tr>
+            {foreach name='formula_detail.detail' item='vo'}
+            <tr>
+                <td><input class='form-control' style="text-align: center" type="text" readonly value="{$formula_detail['data']['bach']}"></td>
+                <td><input class='form-control' style="text-align: center" type="text" readonly value="{$vo.material}"></td>
+                <td><input class='form-control' style="text-align: center" type="text" readonly value="{$vo.percentage}"></td>
+                <td><input class='form-control' type="text" readonly value="{$vo.gy_name}"></td>
+                <td><input class='form-control' style="text-align: center" type="text" readonly value="{$vo.gy_num}"></td>
+                <td><input class='form-control' style="text-align: center" type="text" readonly value="{$vo.version}"></td>
+                <td><input class='form-control' style="text-align: center" type="text" readonly value="{$vo.create}"></td>
+            </tr>
+            {/foreach}
+        </table>
     </div>
     <div class="form-group layer-footer">
         <label class="control-label col-xs-12 col-sm-2"></label>

+ 4 - 4
application/admin/view/task/index.html

@@ -9,7 +9,7 @@
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
                         <a href="#" class="btn btn-success"  id="button" >生成领料单</a>
                         <!--<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('task/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
-                        <!--<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('task/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
+<!--                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('task/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
                         <!--<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('task/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
 
 
@@ -24,11 +24,11 @@
 
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
-                           data-operate-edit=""
+                           data-operate-edit="{:$auth->check('task/edit')}"
                            data-operate-del=""
                            width="100%">
-                        <!--data-operate-edit="{:$auth->check('task/edit')}"-->
-                        <!--data-operate-del="{:$auth->check('task/del')}"-->
+<!--                        data-operate-edit="{:$auth->check('task/edit')}"-->
+<!--                        data-operate-del="{:$auth->check('task/del')}"-->
                     </table>
                 </div>
             </div>

+ 4 - 1
public/assets/js/backend/task.js

@@ -35,7 +35,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'remark', title: __('Remark'), operate: 'LIKE'},
                         {field: 'fid', title: __('Fid')},
                         {field: 'create', title: __('Create'), operate: 'LIKE'},
-                        // {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+                        // {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate},
                         {field: 'operate', title: '操作',  buttons:[{
                                 name:'task',
                                 text:'查看',
@@ -51,6 +51,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     ]
                 ]
             });
+            table.on('post-body.bs.table',function(){
+                $(".btn-editone").data("area",["100%","100%"]);
+            });
             $("#button").on("click",function(){
                 var temp=table.bootstrapTable('getSelections');//获取复选框id中信息
                 var ids = '';