diff --git a/app/adminapi/controller/financial/FinancialBudgetDocController.php b/app/adminapi/controller/financial/FinancialBudgetDocController.php index 8c7cb706a..5b61aab22 100644 --- a/app/adminapi/controller/financial/FinancialBudgetDocController.php +++ b/app/adminapi/controller/financial/FinancialBudgetDocController.php @@ -20,10 +20,10 @@ use app\adminapi\lists\financial\FinancialBudgetDocLists; use app\adminapi\logic\financial\FinancialBudgetDocLogic; use app\adminapi\validate\financial\FinancialBudgetDocValidate; - use app\common\model\cost_project\CostApprovedProject; use app\common\model\financial\FinancialBudgetDoc; use app\common\model\financial\FinancialDepartmentIncomeSettlement; use app\common\model\financial\FinancialDepartmentIncomeSettlementDetail; + use app\common\model\marketing\MarketingContract; /** @@ -138,9 +138,9 @@ ->page($page_no, $page_size) ->order('id desc') ->select()->each(function ($data) { - $contract = CostApprovedProject::field('contract_name,money')->where('id', $data['contract_id'])->findOrEmpty(); + $contract = MarketingContract::field('contract_name,signed_amount')->where('id', $data['contract_id'])->findOrEmpty(); $data['contract_name'] = $contract['contract_name']; - $data['money'] = $contract['money']; + $data['money'] = $contract['signed_amount']; $financial_department_income_settlement_ids = FinancialDepartmentIncomeSettlement::where('budget_doc_id', $data['id'])->column('id'); //分成金额合计 $data['amount'] = FinancialDepartmentIncomeSettlementDetail::where('department_income_settlement_id', 'in', $financial_department_income_settlement_ids)->sum('amount'); diff --git a/app/adminapi/lists/task/TaskAllocationLists.php b/app/adminapi/lists/task/TaskAllocationLists.php index 8c45cd51b..036474450 100644 --- a/app/adminapi/lists/task/TaskAllocationLists.php +++ b/app/adminapi/lists/task/TaskAllocationLists.php @@ -11,92 +11,94 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\lists\task; - - -use app\adminapi\lists\BaseAdminDataLists; -use app\common\lists\ListsExcelInterface; -use app\common\model\cost_project\CostApprovedProject; -use app\common\model\task\TaskAllocation; -use app\common\lists\ListsSearchInterface; - - -/** - * TaskAllocation列表 - * Class TaskAllocationLists - * @package app\adminapi\liststask - */ -class TaskAllocationLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface -{ - - - /** - * @notes 设置搜索条件 - * @return \string[][] - * @author likeadmin - * @date 2024/02/22 10:47 - */ - public function setSearch(): array - { - return [ - '=' => ['cost_project_id'], - ]; - } - - - /** - * @notes 获取列表 - * @return array - * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException - * @throws \think\db\exception\ModelNotFoundException - * @author likeadmin - * @date 2024/02/22 10:47 - */ - public function lists(): array - { - return TaskAllocation::where($this->searchWhere)->with(['taskTypeInfo', 'projectInfo']) - ->limit($this->limitOffset, $this->limitLength) - ->order(['id' => 'desc']) - ->select()->each(function($data){ - $contract = CostApprovedProject::field('project_director')->where('id',$data['projectInfo']['contract_id'])->findOrEmpty(); - $data['project_director'] = $contract['project_director']; - }) - ->toArray(); - } - - - /** - * @notes 获取数量 - * @return int - * @author likeadmin - * @date 2024/02/22 10:47 - */ - public function count(): int - { - return TaskAllocation::where($this->searchWhere)->count(); - } - - public function setFileName(): string - { - return '任务分配'; - } - - /** - * @notes 导出字段 - * @return string[] - * @author 段誉 - * @date 2022/11/24 16:17 - */ - public function setExcelFields(): array - { - return [ - 'id' => 'id', - 'task_type_id' => '任务类别id', - 'cost_project_id' => '项目id', - 'num' => '单据编号', - 'apptime' => '登记日期', - ]; - } -} \ No newline at end of file + + namespace app\adminapi\lists\task; + + + use app\adminapi\lists\BaseAdminDataLists; + use app\common\lists\ListsExcelInterface; + use app\common\lists\ListsSearchInterface; + use app\common\model\auth\Admin; + use app\common\model\marketing\MarketingContract; + use app\common\model\task\TaskAllocation; + + + /** + * TaskAllocation列表 + * Class TaskAllocationLists + * @package app\adminapi\liststask + */ + class TaskAllocationLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface + { + + + /** + * @notes 设置搜索条件 + * @return \string[][] + * @author likeadmin + * @date 2024/02/22 10:47 + */ + public function setSearch(): array + { + return [ + '=' => ['cost_project_id'], + ]; + } + + + /** + * @notes 获取列表 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + * @author likeadmin + * @date 2024/02/22 10:47 + */ + public function lists(): array + { + return TaskAllocation::where($this->searchWhere)->with(['taskTypeInfo', 'projectInfo']) + ->limit($this->limitOffset, $this->limitLength) + ->order(['id' => 'desc']) + ->select()->each(function ($data) { + $contract = MarketingContract::field('project_manager')->where('id', $data['projectInfo']['contract_id'])->findOrEmpty(); + $admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty(); + $data['project_director'] = $admin['name']; + }) + ->toArray(); + } + + + /** + * @notes 获取数量 + * @return int + * @author likeadmin + * @date 2024/02/22 10:47 + */ + public function count(): int + { + return TaskAllocation::where($this->searchWhere)->count(); + } + + public function setFileName(): string + { + return '任务分配'; + } + + /** + * @notes 导出字段 + * @return string[] + * @author 段誉 + * @date 2022/11/24 16:17 + */ + public function setExcelFields(): array + { + return [ + 'id' => 'id', + 'task_type_id' => '任务类别id', + 'cost_project_id' => '项目id', + 'num' => '单据编号', + 'apptime' => '登记日期', + ]; + } + } \ No newline at end of file diff --git a/app/adminapi/logic/ProjectCommissionLogic.php b/app/adminapi/logic/ProjectCommissionLogic.php index 33922adc8..16b414085 100644 --- a/app/adminapi/logic/ProjectCommissionLogic.php +++ b/app/adminapi/logic/ProjectCommissionLogic.php @@ -11,163 +11,163 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\logic; - - -use app\common\model\cost_project\CostApprovedProject; -use app\common\model\cost_project\CostProject; -use app\common\model\ProjectCommission; -use app\common\logic\BaseLogic; -use app\common\model\ProjectCommissionDetail; -use app\common\model\zjzx_finance\ZjzxRefund; -use think\facade\Db; - - -/** - * ProjectCommission逻辑 - * Class ProjectCommissionLogic - * @package app\adminapi\logic - */ -class ProjectCommissionLogic extends BaseLogic -{ - - - /** - * @notes 添加 - * @param array $params - * @return bool - * @author likeadmin - * @date 2024/02/23 09:37 - */ - public static function add(array $params): bool - { - Db::startTrans(); - try { - $projectCommission = ProjectCommission::create([ - 'dataid' => generate_sn(ProjectCommission::class,'dataid'), - 'num' => generate_sn(ProjectCommission::class,'num'), - 'project_id' => $params['project_id'], - 'rate' => $params['rate'], - 'bczfze' => $params['bczfze'], - 'djr' => $params['djr'], - 'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0, - 'remark' => $params['remark'] ?? '', - ]); - if(!empty($params['project_commission_detail'])){ - foreach ($params['project_commission_detail'] as $item) { - $item['project_commission_id'] = $projectCommission->id; - ProjectCommissionDetailLogic::add($item); + + namespace app\adminapi\logic; + + + use app\common\logic\BaseLogic; + use app\common\model\auth\Admin; + use app\common\model\cost_project\CostProject; + use app\common\model\marketing\MarketingContract; + use app\common\model\ProjectCommission; + use app\common\model\ProjectCommissionDetail; + use app\common\model\zjzx_finance\ZjzxRefund; + use think\facade\Db; + + + /** + * ProjectCommission逻辑 + * Class ProjectCommissionLogic + * @package app\adminapi\logic + */ + class ProjectCommissionLogic extends BaseLogic + { + + + /** + * @notes 编辑 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/02/23 09:37 + */ + public static function edit(array $params): bool + { + Db::startTrans(); + try { + ProjectCommission::where('id', $params['id'])->update([ + 'project_id' => $params['project_id'], + 'rate' => $params['rate'], + 'bczfze' => $params['bczfze'], + 'djr' => $params['djr'], + 'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0, + 'remark' => $params['remark'] ?? '', + 'update_time' => time(), + ]); + if (!empty($params['project_commission_detail'])) { + foreach ($params['project_commission_detail'] as $item) { + if (!empty($item['id'])) { + ProjectCommissionDetailLogic::edit($item); + } else { + $item['project_commission_id'] = $params['id']; + ProjectCommissionDetailLogic::add($item); + } + } } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; } - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 编辑 - * @param array $params - * @return bool - * @author likeadmin - * @date 2024/02/23 09:37 - */ - public static function edit(array $params): bool - { - Db::startTrans(); - try { - ProjectCommission::where('id', $params['id'])->update([ - 'project_id' => $params['project_id'], - 'rate' => $params['rate'], - 'bczfze' => $params['bczfze'], - 'djr' => $params['djr'], - 'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0, - 'remark' => $params['remark'] ?? '', - 'update_time' => time(), - ]); - if(!empty($params['project_commission_detail'])){ - foreach ($params['project_commission_detail'] as $item) { - if(!empty($item['id'])){ - ProjectCommissionDetailLogic::edit($item); - }else{ - $item['project_commission_id'] = $params['id']; + } + + /** + * @notes 添加 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/02/23 09:37 + */ + public static function add(array $params): bool + { + Db::startTrans(); + try { + $projectCommission = ProjectCommission::create([ + 'dataid' => generate_sn(ProjectCommission::class, 'dataid'), + 'num' => generate_sn(ProjectCommission::class, 'num'), + 'project_id' => $params['project_id'], + 'rate' => $params['rate'], + 'bczfze' => $params['bczfze'], + 'djr' => $params['djr'], + 'apptime' => !empty($params['apptime']) ? strtotime($params['apptime']) : 0, + 'remark' => $params['remark'] ?? '', + ]); + if (!empty($params['project_commission_detail'])) { + foreach ($params['project_commission_detail'] as $item) { + $item['project_commission_id'] = $projectCommission->id; ProjectCommissionDetailLogic::add($item); } - } - } - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 删除 - * @param array $params - * @return bool - * @author likeadmin - * @date 2024/02/23 09:37 - */ - public static function delete(array $params): bool - { - $detail = ProjectCommissionDetail::where('project_commission_id','in',$params['id'])->findOrEmpty(); - if(!$detail->isEmpty()){ - self::setError('此数据关联了提成明细信息,须删除提成明细信息'); - return false; - } - return ProjectCommission::destroy($params['id']); - } - - - /** - * @notes 获取详情 - * @param $params - * @return array - * @author likeadmin - * @date 2024/02/23 09:37 - */ - public static function detail($params): array - { - $data = ProjectCommission::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id'])->toArray(); - $project = CostProject::field('project_name,project_num,contract_id')->where('id',$data['project_id'])->findOrEmpty(); - $contract = CostApprovedProject::field('contract_name,project_director,industry_nature')->where('id',$project['contract_id'])->findOrEmpty(); - $data['project_name'] = $project['project_name']; - $data['project_num'] = $project['project_num']; - $data['contract_name'] = $contract['contract_name']; - $data['project_director'] = $contract['project_director']; - $data['industry_nature_text'] = $contract->industry_nature_text; - $data['industry_nature'] = (string)$contract['industry_nature']; - //到账金额 - $data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount'); - //已支付总额 - $data['total_pay_amount'] = ProjectCommission::where('project_id',$data['project_id'])->sum('bczfze'); - //应提成总金额 - $data['total_commission_amount'] = $data['total_refund_amount'] * ($data['rate'] / 100); - $data['project_commission_detail'] = ProjectCommissionDetail::field('id,engineer,task_name,task_type,professional_type,zj_amount,sk_amount,tc_rate,tc_amount,pay_amount,other_fee,remark')->where('project_commission_id', $data['id'])->select()->each(function($data){ - $data['task_type_text'] = $data->task_type_text; - $data['professional_type_text'] = $data->professional_type_text; - })->toArray(); - return $data; - } - - public static function datas() - { - $datas = ProjectCommission::field(['id', 'num']) - ->order(['id' => 'desc']) - ->select() - ->toArray(); - foreach ($datas as &$item) { - $item['projectinfo'] = 'ID:' . $item['id'] . ' / 单号:' . $item['num']; + } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } } - return $datas; - } -} \ No newline at end of file + + /** + * @notes 删除 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/02/23 09:37 + */ + public static function delete(array $params): bool + { + $detail = ProjectCommissionDetail::where('project_commission_id', 'in', $params['id'])->findOrEmpty(); + if (!$detail->isEmpty()) { + self::setError('此数据关联了提成明细信息,须删除提成明细信息'); + return false; + } + return ProjectCommission::destroy($params['id']); + } + + + /** + * @notes 获取详情 + * @param $params + * @return array + * @author likeadmin + * @date 2024/02/23 09:37 + */ + public static function detail($params): array + { + $data = ProjectCommission::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id'])->toArray(); + $project = CostProject::field('project_name,project_num,contract_id')->where('id', $data['project_id'])->findOrEmpty(); + $contract = MarketingContract::field('contract_name,project_manager,industry_nature')->where('id', $project['contract_id'])->findOrEmpty(); + $admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty(); + $data['project_name'] = $project['project_name']; + $data['project_num'] = $project['project_num']; + $data['contract_name'] = $contract['contract_name']; + $data['project_director'] = $admin['name']; + $data['industry_nature_text'] = !$contract->isEmpty() ? $contract->industry_nature_text : ''; + $data['industry_nature'] = (string)$contract['industry_nature']; + //到账金额 + $data['total_refund_amount'] = ZjzxRefund::where('project_id', $data['project_id'])->sum('amount'); + //已支付总额 + $data['total_pay_amount'] = ProjectCommission::where('project_id', $data['project_id'])->sum('bczfze'); + //应提成总金额 + $data['total_commission_amount'] = $data['total_refund_amount'] * ($data['rate'] / 100); + $data['project_commission_detail'] = ProjectCommissionDetail::field('id,engineer,task_name,task_type,professional_type,zj_amount,sk_amount,tc_rate,tc_amount,pay_amount,other_fee,remark')->where('project_commission_id', $data['id'])->select()->each(function ($data) { + $data['task_type_text'] = $data->task_type_text; + $data['professional_type_text'] = $data->professional_type_text; + })->toArray(); + return $data; + } + + public static function datas() + { + $datas = ProjectCommission::field(['id', 'num']) + ->order(['id' => 'desc']) + ->select() + ->toArray(); + foreach ($datas as &$item) { + $item['projectinfo'] = 'ID:' . $item['id'] . ' / 单号:' . $item['num']; + } + return $datas; + } + } \ No newline at end of file diff --git a/app/adminapi/logic/cost_project/CostProjectLogic.php b/app/adminapi/logic/cost_project/CostProjectLogic.php index 301620e47..050600b74 100644 --- a/app/adminapi/logic/cost_project/CostProjectLogic.php +++ b/app/adminapi/logic/cost_project/CostProjectLogic.php @@ -17,13 +17,13 @@ use app\common\logic\BaseLogic; use app\common\model\ApprovalIssuanceAchievementDocuments; - use app\common\model\cost_project\CostApprovedProject; use app\common\model\cost_project\CostProject; use app\common\model\cost_project\CostProjectPerson; use app\common\model\DataReception; use app\common\model\dept\Dept; use app\common\model\GeoCity; use app\common\model\GeoProvince; + use app\common\model\marketing\MarketingContract; use app\common\model\project_process_management\ApplyWithSeal; use app\common\model\project_process_management\JianliProjectProgressReport; use app\common\model\project_process_management\ProjectChangeVisa; @@ -87,7 +87,7 @@ 'annex' => $params['annex'] ? json_encode($params['annex']) : null, ]); if ($params['contract_id'] > 0) { - CostApprovedProject::where('id', $params['contract_id'])->update(['status' => 2]); + MarketingContract::where('id', $params['contract_id'])->update(['status' => 2]); } Db::commit(); return true; diff --git a/app/adminapi/logic/task/TaskAllocationLogic.php b/app/adminapi/logic/task/TaskAllocationLogic.php index 7989094a1..f093a4545 100644 --- a/app/adminapi/logic/task/TaskAllocationLogic.php +++ b/app/adminapi/logic/task/TaskAllocationLogic.php @@ -11,157 +11,157 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\logic\task; - - -use app\adminapi\logic\TaskDetailLogic; -use app\common\model\cost_project\CostApprovedProject; -use app\common\model\task\TaskAllocation; -use app\common\logic\BaseLogic; -use app\common\model\task\TaskType; -use app\common\model\TaskDetail; -use think\facade\Db; - - -/** - * TaskAllocation逻辑 - * Class TaskAllocationLogic - * @package app\adminapi\logic\task - */ -class TaskAllocationLogic extends BaseLogic -{ - - - /** - * @notes 添加 - * @param array $params - * @return bool - * @author likeadmin - * @date 2024/02/22 10:47 - */ - public static function add(array $params): bool - { - // 项目id关联任务类别 - $projectId = $params['project_id']; - // 任务 - $taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty(); - if ($taskType->isEmpty()) { - self::setError('项目未配置任务类别'); - return false; - } - Db::startTrans(); - try { - // 任务分配 - $taskAllocation = TaskAllocation::create([ - 'dataid' => generate_sn(TaskAllocation::class, 'dataid'), - 'num' => generate_sn(TaskAllocation::class, 'num'), - 'task_type_id' => $taskType['id'], // 任务类别id - 'cost_project_id' => $taskType['cost_project_id'], // 项目id - 'apptime' => $params['apptime'], - 'annex' => $params['annex'] ? json_encode($params['annex']) : null, - ]); - // 任务明细 - if(!empty($params['task_detail'])){ - foreach ($params['task_detail'] as $item) { - $item['task_allocation_id'] = $taskAllocation->id; - $item['task_type_id'] = $taskType['id']; - TaskDetailLogic::add($item); - } + + namespace app\adminapi\logic\task; + + + use app\adminapi\logic\TaskDetailLogic; + use app\common\logic\BaseLogic; + use app\common\model\auth\Admin; + use app\common\model\marketing\MarketingContract; + use app\common\model\task\TaskAllocation; + use app\common\model\task\TaskType; + use app\common\model\TaskDetail; + use think\facade\Db; + + + /** + * TaskAllocation逻辑 + * Class TaskAllocationLogic + * @package app\adminapi\logic\task + */ + class TaskAllocationLogic extends BaseLogic + { + + + /** + * @notes 编辑 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/02/22 10:47 + */ + public static function edit(array $params): bool + { + // 项目id关联任务类别 + $projectId = $params['project_id']; + // 任务 + $taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty(); + if ($taskType->isEmpty()) { + self::setError('项目未配置任务类别'); } - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 编辑 - * @param array $params - * @return bool - * @author likeadmin - * @date 2024/02/22 10:47 - */ - public static function edit(array $params): bool - { - // 项目id关联任务类别 - $projectId = $params['project_id']; - // 任务 - $taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty(); - if ($taskType->isEmpty()) { - self::setError('项目未配置任务类别'); - } - Db::startTrans(); - try { - TaskAllocation::where('id', $params['id'])->update([ - 'task_type_id' => $taskType['id'], // 任务类别id - 'cost_project_id' => $taskType['cost_project_id'], // 项目id - 'apptime' => $params['apptime'], - 'annex' => $params['annex'] ? json_encode($params['annex']) : null, - ]); - Db::commit(); - // 任务明细 - if(!empty($params['task_detail'])){ - foreach ($params['task_detail'] as $item) { - if(!empty($item['id'])){ - $item['task_type_id'] = $taskType['id']; - TaskDetailLogic::edit($item); - }else{ - $item['task_allocation_id'] = $params['id']; + Db::startTrans(); + try { + TaskAllocation::where('id', $params['id'])->update([ + 'task_type_id' => $taskType['id'], // 任务类别id + 'cost_project_id' => $taskType['cost_project_id'], // 项目id + 'apptime' => $params['apptime'], + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + ]); + Db::commit(); + // 任务明细 + if (!empty($params['task_detail'])) { + foreach ($params['task_detail'] as $item) { + if (!empty($item['id'])) { + $item['task_type_id'] = $taskType['id']; + TaskDetailLogic::edit($item); + } else { + $item['task_allocation_id'] = $params['id']; + $item['task_type_id'] = $taskType['id']; + TaskDetailLogic::add($item); + } + } + } + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + /** + * @notes 添加 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/02/22 10:47 + */ + public static function add(array $params): bool + { + // 项目id关联任务类别 + $projectId = $params['project_id']; + // 任务 + $taskType = TaskType::where('cost_project_id', $projectId)->findOrEmpty(); + if ($taskType->isEmpty()) { + self::setError('项目未配置任务类别'); + return false; + } + Db::startTrans(); + try { + // 任务分配 + $taskAllocation = TaskAllocation::create([ + 'dataid' => generate_sn(TaskAllocation::class, 'dataid'), + 'num' => generate_sn(TaskAllocation::class, 'num'), + 'task_type_id' => $taskType['id'], // 任务类别id + 'cost_project_id' => $taskType['cost_project_id'], // 项目id + 'apptime' => $params['apptime'], + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + ]); + // 任务明细 + if (!empty($params['task_detail'])) { + foreach ($params['task_detail'] as $item) { + $item['task_allocation_id'] = $taskAllocation->id; $item['task_type_id'] = $taskType['id']; TaskDetailLogic::add($item); } - } - } - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 删除 - * @param array $params - * @return bool - * @author likeadmin - * @date 2024/02/22 10:47 - */ - public static function delete(array $params): bool - { - $task_detail = TaskDetail::where('task_allocation_id','in',$params['id'])->findOrEmpty(); - if(!$task_detail->isEmpty()){ - self::setError('此数据关联了任务明细信息,须删除任务明细信息'); - return false; - } - return TaskAllocation::destroy($params['id']); - } - - - /** - * @notes 获取详情 - * @param $params - * @return array - * @author likeadmin - * @date 2024/02/22 10:47 - */ - public static function detail($params): array - { - $data = TaskAllocation::with(['taskTypeInfo', 'projectInfo'])->findOrEmpty($params['id'])->toArray(); - $contract = CostApprovedProject::field('project_director')->where('id',$data['projectInfo']['contract_id'])->findOrEmpty(); - $data['project_director'] = $contract['project_director']; - $data['task_detail'] = TaskDetail::where('task_allocation_id', $data['id'])->select()->each(function ($item){ - $taskTypeInfo = TaskType::findOrEmpty($item['task_type_id'])->toArray(); - $item['task_name'] = $taskTypeInfo['name']; - $item['professional_type_text'] = $item->professional_type_text; - $item['task_type_id_text'] = $item->task_type_id_text; - })->toArray(); - return $data; - } -} \ No newline at end of file + } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + /** + * @notes 删除 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/02/22 10:47 + */ + public static function delete(array $params): bool + { + $task_detail = TaskDetail::where('task_allocation_id', 'in', $params['id'])->findOrEmpty(); + if (!$task_detail->isEmpty()) { + self::setError('此数据关联了任务明细信息,须删除任务明细信息'); + return false; + } + return TaskAllocation::destroy($params['id']); + } + + + /** + * @notes 获取详情 + * @param $params + * @return array + * @author likeadmin + * @date 2024/02/22 10:47 + */ + public static function detail($params): array + { + $data = TaskAllocation::with(['taskTypeInfo', 'projectInfo'])->findOrEmpty($params['id'])->toArray(); + $contract = MarketingContract::field('project_manager')->where('id', $data['projectInfo']['contract_id'])->findOrEmpty(); + $admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty(); + $data['project_director'] = $admin['name']; + $data['task_detail'] = TaskDetail::where('task_allocation_id', $data['id'])->select()->each(function ($item) { + $taskTypeInfo = TaskType::findOrEmpty($item['task_type_id'])->toArray(); + $item['task_name'] = $taskTypeInfo['name']; + $item['professional_type_text'] = $item->professional_type_text; + $item['task_type_id_text'] = $item->task_type_id_text; + })->toArray(); + return $data; + } + } \ No newline at end of file diff --git a/app/adminapi/logic/zjzx_finance/ZjzxRefundLogic.php b/app/adminapi/logic/zjzx_finance/ZjzxRefundLogic.php index 4625dea40..5c1fc0091 100644 --- a/app/adminapi/logic/zjzx_finance/ZjzxRefundLogic.php +++ b/app/adminapi/logic/zjzx_finance/ZjzxRefundLogic.php @@ -3,8 +3,8 @@ namespace app\adminapi\logic\zjzx_finance; use app\common\logic\BaseLogic; - use app\common\model\cost_project\CostApprovedProject; use app\common\model\cost_project\CostProject; + use app\common\model\marketing\MarketingContract; use app\common\model\marketing\MarketingCustom; use app\common\model\zjzx_finance\ZjzxInvoice; use app\common\model\zjzx_finance\ZjzxRefund; @@ -105,7 +105,7 @@ { $data = ZjzxRefund::withoutField('update_time,delete_time')->findOrEmpty($params['id']); $project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty(); - $contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty(); + $contract = MarketingContract::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty(); $invoice = ZjzxInvoice::field('invoice_code,apply_amount')->where('id', $data['invoice_id'])->findOrEmpty(); $part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty(); $data['project_num'] = $project['project_num']; diff --git a/app/adminapi/logic/zjzx_finance/ZjzxSettlementLogic.php b/app/adminapi/logic/zjzx_finance/ZjzxSettlementLogic.php index 2a4b7be59..f5073f89e 100644 --- a/app/adminapi/logic/zjzx_finance/ZjzxSettlementLogic.php +++ b/app/adminapi/logic/zjzx_finance/ZjzxSettlementLogic.php @@ -3,8 +3,8 @@ namespace app\adminapi\logic\zjzx_finance; use app\common\logic\BaseLogic; - use app\common\model\cost_project\CostApprovedProject; use app\common\model\cost_project\CostProject; + use app\common\model\marketing\MarketingContract; use app\common\model\marketing\MarketingCustom; use app\common\model\zjzx_finance\ZjzxInvoice; use app\common\model\zjzx_finance\ZjzxRefund; @@ -101,7 +101,7 @@ { $data = ZjzxSettlement::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']); $project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty(); - $contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty(); + $contract = MarketingContract::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty(); $part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty(); $data['invoice_type_text'] = $data->invoice_type_text; $data['project_num'] = $project['project_num'];