| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\plugins\product_traceability\models\client;
- use app\models\Goods;
- use app\models\SaasUser;
- use app\models\Shop;
- use app\models\Store;
- use app\models\User;
- use app\plugins\food\models\FoodOrderDetail;
- use app\plugins\product_traceability\models\Product;
- use app\plugins\product_traceability\models\ProductBatch;
- use app\plugins\product_traceability\models\ProductBatchProcess;
- use app\plugins\product_traceability\models\ProductBatchProcessLog;
- use app\plugins\product_traceability\models\ProductBatchProcessLogSheet;
- use app\plugins\product_traceability\models\ProductBatchProcessSheet;
- use app\utils\Tools;
- use yii\base\Model;
- use yii\data\Pagination;
- use yii\helpers\Json;
- use yii\helpers\Json as HelpersJson;
- class ProductBatchProcessLogSheetEditForm extends Model
- {
- public $store_id;
- public $user_id;
- public $process_log_id;
- public $sheet_list;
- public function rules()
- {
- return [
- [['store_id', 'user_id', 'process_log_id'], 'required'],
- [['sheet_list'], 'safe'],
- ];
- }
- public function edit()
- {
- if (!$this->validate()) {
- return ['code' => 1, 'msg' => $this->getErrorSummary(false)[0]];
- }
- $t = \Yii::$app->db->beginTransaction();
- if (!$this->sheet_list) {
- return [
- 'code'=>1,
- 'msg'=>'请填写溯源记录'
- ];
- }
- $product_batch_process_log = ProductBatchProcessLog::find()->where(['id' => $this->process_log_id])->one();
- $product_batch_list = ProductBatchProcess::find()->alias("pbp")
- ->innerJoin(['pbpl' => ProductBatchProcessLog::tableName()], 'pbp.id=pbpl.product_batch_process_id')
- ->where([
- 'pbp.is_delete' => 0,
- 'pbp.store_id' => $this->store_id,
- 'pbp.product_batch_id' => $product_batch_process_log->product_batch_id,
- ])->orderBy("pbp.sort asc")->select(['pbpl.*', 'pbp.process_name', 'pbp.process_user_id'])->asArray()->all();
- $is_add = 0;
- foreach ($product_batch_list as $k => $v) {
- if($k>0){
- if ($v['process_user_id'] == $this->user_id && $product_batch_list[$k-1]['state'] == 1 && $v['state'] == 0 && $v['id'] == $this->process_log_id) {
- $is_add = 1;
- break;
- }
- } else {
- if ($v['process_user_id'] == $this->user_id && $v['state'] == 0 && $v['id'] == $this->process_log_id) {
- $is_add = 1;
- break;
- }
- }
- }
- if ($is_add==0 && $product_batch_process_log->state == 0) {
- return [
- 'code'=>1,
- 'msg'=>'还未到您的流程,暂时不能填写',
- 'msg1'=>$is_add
- ];
- }
- $is_exist = ProductBatchProcessLogSheet::find()->where(['process_log_id' => $this->process_log_id, 'is_delete' => 0])->one();
- if ($is_exist) {
- ProductBatchProcessLogSheet::updateAll(['is_delete' => 1], ['store_id' => $this->store_id, 'process_log_id' => $this->process_log_id]);
- }
- $sheet_list = $this->sheet_list ? json_decode($this->sheet_list, true) : [];
- foreach ($sheet_list as $value) {
- $product_batch_process_log_sheet = ProductBatchProcessLogSheet::find()->where(['process_log_id' => $this->process_log_id, 'process_sheet_id' => $value['process_sheet_id']])->one();
- if (!$product_batch_process_log_sheet) {
- $product_batch_process_log_sheet = new ProductBatchProcessLogSheet();
- }
- $product_batch_process_log_sheet->store_id = $this->store_id;
- $product_batch_process_log_sheet->process_log_id = $this->process_log_id;
- $product_batch_process_log_sheet->process_sheet_id = $value['process_sheet_id'];
- $product_batch_process_log_sheet->key = $value['key'];
- $product_batch_process_log_sheet->value = $value['value'];
- $product_batch_process_log_sheet->type = $value['type'];
- $product_batch_process_log_sheet->is_delete = 0;
- if (!$product_batch_process_log_sheet->save()) {
- $t->rollBack();
- return [
- 'code' => 1,
- 'msg' => $product_batch_process_log_sheet->getErrors(),
- ];
- }
- }
- $product_batch_process_log->state = 1;
- if (!$product_batch_process_log->save()) {
- $t->rollBack();
- return [
- 'code' => 1,
- 'msg' => '编辑失败',
- ];
- }
- $t->commit();
- return [
- 'code' => 0,
- 'msg' => '编辑成功',
- ];
- }
- public function del(){
- if (!$this->validate()) {
- return ['code' => 1, 'msg' => $this->getErrorSummary(false)[0]];
- }
- $t = \Yii::$app->db->beginTransaction();
- ProductBatchProcessLogSheet::updateAll(['is_delete' => 1], ['store_id' => $this->store_id, 'process_log_id' => $this->process_log_id]);
- $product_batch_process_log = ProductBatchProcessLog::find()->where(['id' => $this->process_log_id])->one();
- $product_batch_process_log->state = 0;
- if (!$product_batch_process_log->save()) {
- $t->rollBack();
- return [
- 'code' => 1,
- 'msg' => '撤销失败',
- ];
- }
- $t->commit();
- return [
- 'code' => 0,
- 'msg' => '撤销成功',
- ];
- }
- }
|