1 ========================================== 前端视图部分 ==========================================
3 <?php
4
5 use app\services\PurchaseOrderServices;
6 use app\config\Vhelper;
7 use app\services\BaseServices;
8 use mdm\admin\components\Helper;
9 ?>
10
11 <div class="panel panel-success">
12 <h4 align="center" style="font-weight:bold;color: red;">ajax验证和修改数据</h4>
13 <div class="panel panel-body">
14 <h4>温馨小提示:</h4>
15 <ol style="color:red;font-weight: bold;">
16 <li>提示内容</li>
17 </ol>
18 <div class="form-group">
19 <label class="control-label" for="update_purchase_order_warehouse_code_pur_number">采购单单号</label>
20 <input type="text" id="update_purchase_order_warehouse_code_pur_number" class="form-control">
21 <div class="table-responsive">
22 <table style="table-layout: fixed;" class="table table-striped table-bordered table-hover">
23 <caption>采购订单主表</caption>
24 <!-- ajax返回的数据,追加到tbody -->
25 <tbody id="select_purchase_order_warehouse_code_pur_number"></tbody>
26 </table>
27 </div>
28 </div>
29 <div class="form-group">
30 <label>采购单仓库--修改后的</label>
31 <!-- 下拉框 -->
32 <select id="update_purchase_order_warehouse_code_new" class="form-control">
33 <option value="">请选择仓库</option>
34 <?php
35 foreach (BaseServices::getWarehouseCode() as $k => $v) {
36 echo '<option value="' . $k . '">'. $v .'</option>';
37 }
38 ?>
39 </select>
40 <div class="help-block"></div>
41 </div>
42 <div class="form-group">
43 <!-- 权限控制:【有权限执行:update-purchase-order-warehouse-code】 -->
44 <?php if(Helper::checkRoute('update-purchase-order-warehouse-code')) {
45 echo '<span id="update_purchase_order_warehouse_code_btn" class="btn btn-success">修改采购单仓库</span>';
46 }?>
47
48 </div>
49 </div>
50 <!-- 最后追加的数据【提示数据】 -->
51 <div class="panel-footer">
52 <span id="update_purchase_order_warehouse_code_span"></span>
53 </div>
54 </div>
55
56 <?php
57 <!-- 设置路由 -->
58 //$viewUrl = Url::toRoute('/waste-all-arrival/waste-all-arrival');
59 $js = <<<JS
60 $(function() {
61 var kkk = {
62 red: 'red',
63 green: 'green',
64 dark: 'dark',
65 };
66 //=============== 展示产品详情 ===================
67 // 当 input框 失去焦点时,触发事件
68 $("#update_purchase_order_warehouse_code_pur_number").blur(function(){
69 // 获取 input框 中的值【trim 过滤掉空白字符】
70 var pur_number = $.trim($('#update_purchase_order_warehouse_code_pur_number').val());
71 //当 input框中的值为空时,清空追加的数据
72 if(pur_number == '') {
73 $('#select_purchase_order_warehouse_code_pur_number').html('');
74 return false;
75 }
76
77 // ajax post请求
78 $.ajax({
79 url: 'select-purchase-order-warehouse-code', //请求地址
80 data: {pur_number: pur_number}, //传到后台的数据
81 type: 'post', //post请求
82 dataType: 'json', //json格式
83 success: function(data) { //返回的数据
84 var purchase_order = data.purchase_order;
85
86 //清空上一次追加的数据
87 $('#select_purchase_order_warehouse_code_pur_number').html('');
88
89 if (purchase_order=='') {
90 $('#select_purchase_order_warehouse_code_pur_number').append('<span style="font-weight: bold;color:red;">没有该采购单 -- '+ pur_number + '</span>');
91 } else {
92 //循环取出数据
93 $(purchase_order).each(function(pk,pv) {
94 $(pv).each(function(k,v) {
95 //追加数据到 tbody中
96 $('#select_purchase_order_warehouse_code_pur_number').append('<tr class="size-row success">' +
97 '<td>' + v['pur_number'] +'</td>' +
98 '<td>' + v['warehouse_code'] +'</td>' +
99 '</tr');
100 });
101 });
102 }
103 }
104 });
105 }) ;
106 //================ 修改采购单状态 ================================
107 //点击时触发事件
108 $('#update_purchase_order_warehouse_code_btn').click(function() {
109 var pur_number = $.trim($('#update_purchase_order_warehouse_code_pur_number').val()); //采购单单号
110 var warehouse_code_new = $.trim($('#update_purchase_order_warehouse_code_new').val()); //仓库
111
112 if(pur_number == '' || warehouse_code_new == '') {
113 alert('采购单单号 或 仓库 不能为空');
114 return false;
115 }
116
117 $.ajax({
118 url: 'update-purchase-order-warehouse-code',
119 data: {pur_number: pur_number,warehouse_code_new:warehouse_code_new},
120 type: 'post',
121 dataType: 'json',
122 success: function(data) {
123 var d = data.message;
124 $('#update_purchase_order_warehouse_code_span').html('');
125 $(d).each(function(k,v) {
126 var color = kkk[v['color']];
127 //追加到 span中
128 $('#update_purchase_order_warehouse_code_span').append('<p style="font-weight:bold;color:'+color+'">'+v['msg']+'</p>');
129 });
130 }
131 });
132 });
133 //=============================================================================
134 });
135 JS;
136 $this->registerJs($js);
137 ?>
138
139
140
141
142 ========================================= 后端控制器部分 =========================================
144 <?php
145 namespace app\controllers;
146
147 use app\config\Vhelper;
148 use app\models\PurchaseOrder;
149
150 class WasteAllArrivalController extends BaseController
151 {
152 /**
153 * 首页
154 */
155 public function actionIndex()
156 {
157 return $this->render('index', []);
158 }
159 /**
160 * ============================ 修改:采购单仓库 ============================
161 */
162 //需要有执行这个方法的权限,开会显示提交按钮
163 public function actionUpdatePurchaseOrderWarehouseCode()
164 {
165 $pur_number = trim(\Yii::$app->request->post('pur_number'));
166 $warehouse_code_new = trim(\Yii::$app->request->post('warehouse_code_new'));
167
168 $get_order_info = PurchaseOrder::find()->where(['pur_number'=>$pur_number])->asArray()->one();
169 if (!empty($get_order_info)) {
170 $status = PurchaseOrder::updateAll(['warehouse_code'=>$warehouse_code_new],['id'=>$get_order_info['id']]);
171
172 //保存到日志
173 $log['type']=22;
174 $log['pid']= null;
175 $log['pur_number']=$pur_number;
176 $log['module']='修改:采购单仓库';
177 $log['content']='=======修改后:warehouse_code:' . $warehouse_code_new .'===相关表:pur_purchase_order';
178 Vhelper::setOperatLog($log);
179
180 $data[] = ['color'=>'green','msg'=>'******* 最终结果:修改成功!! ********'. date('H:i:s',time())];
181 } else {
182 $data[] = ['color'=>'red','msg'=>'旧的--仓库错误'];
183 $data[] = ['color'=>'red','msg'=>'******* 最终结果:修改失败!! ********'. date('H:i:s',time())];
184 }
185 return json_encode(['error' => 1, 'message'=>$data]);
186 }
187
188 /**
189 * 查看:详情
190 */
191 public function actionSelectPurchaseOrderWarehouseCode()
192 {
193 $pur_number = trim(\Yii::$app->request->post('pur_number'));
194
195 $purchase_order_info = $this->selectPurchaseOrderInfo($pur_number);
196 return json_encode(['error' => 1, 'purchase_order'=>$purchase_order_info]);
197 }
198 /**
199 * ======== 订单详情表 ========
200 */
201 public function selectPurchaseOrderInfo($pur_number) {
202 $purchase_order=[];
203 $purchase_order_info = PurchaseOrder::find()
204 ->where(['pur_number'=>$pur_number])
205 ->asArray()
206 ->one();
207
208 if (!empty($purchase_order_info)) {
209 $purchase_order[] = ['pur_number'=>'PO号', 'is_drawback'=>'是否退税', 'warehouse_code'=>'仓库编码'];
210 $purchase_order_info['is_drawback'] = $purchase_order_info['is_drawback'] ==1 ?'不退':'退';
211 $purchase_order[] = $purchase_order_info;
212 }
213 return $purchase_order;
214 }