From dd5cf8c7bd6cd4a78b3dbe6fed24ba5625a73c0c Mon Sep 17 00:00:00 2001 From: zhouxin Date: Mon, 15 Nov 2021 19:15:20 +0800 Subject: [PATCH] Fix bug #43916. --- module/product/model.php | 4 +++- module/project/model.php | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/module/product/model.php b/module/product/model.php index e41f59dd63..31e6ec233c 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -657,6 +657,7 @@ class productModel extends model $products = array(); $allChanges = array(); $data = fixer::input('post')->get(); + a($data); $oldProducts = $this->getByIdList($this->post->productIDList); $nameList = array(); @@ -682,12 +683,13 @@ class productModel extends model foreach($products as $productID => $product) { $oldProduct = $oldProducts[$productID]; + $programID = !isset($product->program) ? $oldProduct->program : (empty($product->program) ? 0 : $product->program); $this->dao->update(TABLE_PRODUCT) ->data($product) ->autoCheck() ->batchCheck($this->config->product->edit->requiredFields , 'notempty') - ->checkIF(!empty($product->name), 'name', 'unique', "id != $productID and `program` = $product->program") + ->checkIF(!empty($product->name), 'name', 'unique', "id != $productID and `program` = $programID") ->where('id')->eq($productID) ->exec(); if(dao::isError()) die(js::error('product#' . $productID . dao::getError(true))); diff --git a/module/project/model.php b/module/project/model.php index e46937ae4a..5a4b73a0de 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1115,13 +1115,15 @@ class projectModel extends model foreach($projects as $projectID => $project) { $oldProject = $oldProjects[$projectID]; + $parentID = !isset($project->parent) ? $oldProject->parent : $project->parent; + $this->dao->update(TABLE_PROJECT)->data($project) ->autoCheck($skipFields = 'begin,end') ->batchCheck($this->config->project->edit->requiredFields , 'notempty') ->checkIF($project->begin != '', 'begin', 'date') ->checkIF($project->end != '', 'end', 'date') ->checkIF($project->end != '', 'end', 'gt', $project->begin) - ->checkIF(!empty($project->name), 'name', 'unique', "id != $projectID and `type`='project' and `parent` = $project->parent") + ->checkIF(!empty($project->name), 'name', 'unique', "id != $projectID and `type`='project' and `parent` = $parentID") ->checkIF(!empty($project->code), 'code', 'unique', "id != $projectID and `type`='project'") ->where('id')->eq($projectID) ->exec();