This commit is contained in:
weiz 2024-03-25 15:33:25 +08:00
parent b35219cd6a
commit 2b94fbc528
3 changed files with 350 additions and 332 deletions

View File

@ -54,10 +54,10 @@
return false; return false;
} }
$finance_payment_plan = FinancePaymentPlan::where('id', $params['finance_payment_plan_id'])->findOrEmpty(); $finance_payment_plan = FinancePaymentPlan::where('id', $params['finance_payment_plan_id'])->findOrEmpty();
if ($finance_payment_plan['amount'] < $params['amount']) { if ($params['amount'] >= $finance_payment_plan['amount']) {
$status = 2;
} else {
$status = 3; $status = 3;
} else {
$status = 2;
} }
Db::startTrans(); Db::startTrans();
try { try {
@ -113,10 +113,10 @@
return false; return false;
} }
$finance_payment_plan = FinancePaymentPlan::where('id', $params['finance_payment_plan_id'])->findOrEmpty(); $finance_payment_plan = FinancePaymentPlan::where('id', $params['finance_payment_plan_id'])->findOrEmpty();
if ($finance_payment_plan['amount'] < $params['amount']) { if ($params['amount'] >= $finance_payment_plan['amount']) {
$status = 2;
} else {
$status = 3; $status = 3;
} else {
$status = 2;
} }
Db::startTrans(); Db::startTrans();
try { try {

View File

@ -12,162 +12,161 @@
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\logic\finance; namespace app\adminapi\logic\finance;
use app\common\model\auth\Admin; use app\common\logic\BaseLogic;
use app\common\model\contract\Contract; use app\common\model\auth\Admin;
use app\common\model\finance\FinanceReturnedMoney; use app\common\model\contract\Contract;
use app\common\logic\BaseLogic; use app\common\model\custom\Custom;
use app\common\model\oa\FlowApprove; use app\common\model\finance\FinanceReturnedMoney;
use app\common\model\project\Project; use app\common\model\oa\FlowApprove;
use app\common\model\custom\Custom; use app\common\model\project\Project;
use think\facade\Db; use think\facade\Db;
/** /**
* FinanceReturnedMoney逻辑 * FinanceReturnedMoney逻辑
* Class FinanceReturnedMoneyLogic * Class FinanceReturnedMoneyLogic
* @package app\adminapi\logic\finance * @package app\adminapi\logic\finance
*/ */
class FinanceReturnedMoneyLogic extends BaseLogic class FinanceReturnedMoneyLogic extends BaseLogic
{ {
/** /**
* @notes 添加 * @notes 添加
* @param array $params * @param array $params
* @return bool * @return bool
* @author likeadmin * @author likeadmin
* @date 2023/12/13 15:38 * @date 2023/12/13 15:38
*/ */
public static function add(array $params): bool public static function add(array $params): bool
{ {
$contract = Contract::field('project_id')->where('id',$params['contract_id'])->findOrEmpty(); $contract = Contract::field('project_id')->where('id', $params['contract_id'])->findOrEmpty();
Db::startTrans(); Db::startTrans();
try { try {
FinanceReturnedMoney::create([ FinanceReturnedMoney::create([
'project_id' => $contract['project_id'], 'project_id' => $contract['project_id'],
'contract_id' => $params['contract_id'], 'contract_id' => $params['contract_id'],
'return_date' => strtotime($params['return_date']), 'return_date' => strtotime($params['return_date']),
'period' => $params['period'], 'period' => $params['period'],
'amount' => $params['amount'], 'amount' => $params['amount'],
'return_status' => $params['return_status'], 'return_duty_id' => $params['return_duty_id'],
'return_duty_id' => $params['return_duty_id'], 'remark' => $params['remark'] ?? '',
'remark' => $params['remark'] ?? '', 'annex' => $params['annex'] ? json_encode($params['annex']) : null,
'annex' => $params['annex']? json_encode($params['annex']) : null,
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/13 15:38
*/
public static function edit(array $params): bool
{
$contract = Contract::field('project_id')->where('id',$params['contract_id'])->findOrEmpty();
Db::startTrans();
try {
FinanceReturnedMoney::where('id', $params['id'])->update([
'project_id' => $contract['project_id'],
'contract_id' => $params['contract_id'],
'return_date' => strtotime($params['return_date']),
'period' => $params['period'],
'amount' => $params['amount'],
'return_status' => $params['return_status'],
'return_duty_id' => $params['return_duty_id'],
'remark' => $params['remark'] ?? '',
'annex' => $params['annex']? json_encode($params['annex']) : null,
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/13 15:38
*/
public static function delete(array $params): bool
{
return FinanceReturnedMoney::destroy($params['id']);
}
/**
* @notes 获取详情
* @param $params
* @return array
* @author likeadmin
* @date 2023/12/13 15:38
*/
public static function detail($params): array
{
$data = FinanceReturnedMoney::field('id,project_id,contract_id,return_date,period,amount,return_status,return_duty_id,remark,annex,approve_id')->findOrEmpty($params['id']);
$project = Project::field('custom_id,name,project_code')->where('id',$data['project_id'])->findOrEmpty();
$custom = Custom::field('name')->where('id',$project['custom_id'])->findOrEmpty();
$contract = Contract::field('contract_name,contract_code')->where('id',$data['contract_id'])->findOrEmpty();
$return_duty = Admin::field('name')->where('id',$data['return_duty_id'])->findOrEmpty();
$data['project_name'] = $project['name'];
$data['project_code'] = $project['project_code'];
$data['custom_name'] = $custom['name'];
$data['contract_name'] = $contract['contract_name'];
$data['contract_code'] = $contract['contract_code'];
$data['period_text'] = $data->period_text;
$data['return_status_text'] = $data->return_status_text;
$data['return_duty'] = $return_duty['name'];
$approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty();
$data['approve_check_status'] = $approve_data['check_status'];
return $data->toArray();
}
public static function approve($params,$admin_id): bool{
$data = FinanceReturnedMoney::where('id',$params['id'])->findOrEmpty();
$approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty();
if(!empty($data['approve_id']) && $approve_data['check_status'] != 3){
self::setError('当前内容存在审核信息,请勿重复提交');
return false;
}
Db::startTrans();
try {
$res = addApprove(
'回款计划',
$params['id'],
'app\common\model\finance\FinanceReturnedMoney',
$params['path'],
$params['flow_id'],
$admin_id
);
if($res){
FinanceReturnedMoney::where('id',$params['id'])->update([
'approve_id' => $res,
]); ]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/13 15:38
*/
public static function edit(array $params): bool
{
$contract = Contract::field('project_id')->where('id', $params['contract_id'])->findOrEmpty();
Db::startTrans();
try {
FinanceReturnedMoney::where('id', $params['id'])->update([
'project_id' => $contract['project_id'],
'contract_id' => $params['contract_id'],
'return_date' => strtotime($params['return_date']),
'period' => $params['period'],
'amount' => $params['amount'],
'return_duty_id' => $params['return_duty_id'],
'remark' => $params['remark'] ?? '',
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/12/13 15:38
*/
public static function delete(array $params): bool
{
return FinanceReturnedMoney::destroy($params['id']);
}
/**
* @notes 获取详情
* @param $params
* @return array
* @author likeadmin
* @date 2023/12/13 15:38
*/
public static function detail($params): array
{
$data = FinanceReturnedMoney::field('id,project_id,contract_id,return_date,period,amount,return_status,return_duty_id,remark,annex,approve_id')->findOrEmpty($params['id']);
$project = Project::field('custom_id,name,project_code')->where('id', $data['project_id'])->findOrEmpty();
$custom = Custom::field('name')->where('id', $project['custom_id'])->findOrEmpty();
$contract = Contract::field('contract_name,contract_code')->where('id', $data['contract_id'])->findOrEmpty();
$return_duty = Admin::field('name')->where('id', $data['return_duty_id'])->findOrEmpty();
$data['project_name'] = $project['name'];
$data['project_code'] = $project['project_code'];
$data['custom_name'] = $custom['name'];
$data['contract_name'] = $contract['contract_name'];
$data['contract_code'] = $contract['contract_code'];
$data['period_text'] = $data->period_text;
$data['return_status_text'] = $data->return_status_text;
$data['return_duty'] = $return_duty['name'];
$approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty();
$data['approve_check_status'] = $approve_data['check_status'];
return $data->toArray();
}
public static function approve($params, $admin_id): bool
{
$data = FinanceReturnedMoney::where('id', $params['id'])->findOrEmpty();
$approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty();
if (!empty($data['approve_id']) && $approve_data['check_status'] != 3) {
self::setError('当前内容存在审核信息,请勿重复提交');
return false;
}
Db::startTrans();
try {
$res = addApprove(
'回款计划',
$params['id'],
'app\common\model\finance\FinanceReturnedMoney',
$params['path'],
$params['flow_id'],
$admin_id
);
if ($res) {
FinanceReturnedMoney::where('id', $params['id'])->update([
'approve_id' => $res,
]);
}
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;
} }
} }
}

View File

@ -12,175 +12,194 @@
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\logic\finance; namespace app\adminapi\logic\finance;
use app\common\model\bank\BankAccount; use app\common\logic\BaseLogic;
use app\common\model\contract\Contract; use app\common\model\bank\BankAccount;
use app\common\model\custom\Custom; use app\common\model\contract\Contract;
use app\common\model\finance\FinanceReturnedMoney; use app\common\model\custom\Custom;
use app\common\model\finance\FinanceReturnedRecord; use app\common\model\finance\FinanceReturnedMoney;
use app\common\logic\BaseLogic; use app\common\model\finance\FinanceReturnedRecord;
use app\common\model\oa\FlowApprove; use app\common\model\oa\FlowApprove;
use app\common\model\project\Project; use app\common\model\project\Project;
use think\facade\Db; use think\facade\Db;
/** /**
* FinanceReturnedRecord逻辑 * FinanceReturnedRecord逻辑
* Class FinanceReturnedRecordLogic * Class FinanceReturnedRecordLogic
* @package app\adminapi\logic\finance * @package app\adminapi\logic\finance
*/ */
class FinanceReturnedRecordLogic extends BaseLogic class FinanceReturnedRecordLogic extends BaseLogic
{ {
/** /**
* @notes 添加 * @notes 添加
* @param array $params * @param array $params
* @return bool * @return bool
* @author likeadmin * @author likeadmin
* @date 2023/12/13 16:28 * @date 2023/12/13 16:28
*/ */
public static function add(array $params): bool public static function add(array $params): bool
{ {
$contract = Contract::field('project_id')->where('id',$params['contract_id'])->findOrEmpty(); $contract = Contract::field('project_id')->where('id', $params['contract_id'])->findOrEmpty();
Db::startTrans(); Db::startTrans();
try { $finance_returned_money = FinanceReturnedMoney::where('id', $params['finance_returned_money_id'])->findOrEmpty();
FinanceReturnedRecord::create([ if ($params['amount'] >= $finance_returned_money['amount']) {
'project_id' => $contract['project_id'], $status = 3;
'contract_id' => $params['contract_id'], } else {
'finance_returned_money_id' => $params['finance_returned_money_id'], $status = 2;
'return_date' => strtotime($params['return_date']), }
'amount' => $params['amount'], try {
'collection_type' => $params['collection_type'], FinanceReturnedRecord::create([
'invoice_status' => $params['invoice_status'], 'project_id' => $contract['project_id'],
'pay_type' => $params['pay_type'], 'contract_id' => $params['contract_id'],
'return_desc' => $params['return_desc'] ?? '', 'finance_returned_money_id' => $params['finance_returned_money_id'],
'receiver' => $params['receiver'] ?? '', 'return_date' => strtotime($params['return_date']),
'remark' => $params['remark'] ?? '', 'amount' => $params['amount'],
'annex' => $params['annex']? json_encode($params['annex']) : null, 'collection_type' => $params['collection_type'],
'bank_account_id' => $params['bank_account_id'], 'invoice_status' => $params['invoice_status'],
]); 'pay_type' => $params['pay_type'],
Db::commit(); 'return_desc' => $params['return_desc'] ?? '',
return true; 'receiver' => $params['receiver'] ?? '',
} catch (\Exception $e) { 'remark' => $params['remark'] ?? '',
Db::rollback(); 'annex' => $params['annex'] ? json_encode($params['annex']) : null,
self::setError($e->getMessage()); 'bank_account_id' => $params['bank_account_id'],
return false; ]);
} FinanceReturnedMoney::where('id', $params['finance_returned_money_id'])->update([
} 'return_status' => $status
]);
Db::commit();
/** return true;
* @notes 编辑 } catch (\Exception $e) {
* @param array $params Db::rollback();
* @return bool self::setError($e->getMessage());
* @author likeadmin return false;
* @date 2023/12/13 16:28 }
*/ }
public static function edit(array $params): bool
{
$contract = Contract::field('project_id')->where('id',$params['contract_id'])->findOrEmpty(); /**
Db::startTrans(); * @notes 编辑
try { * @param array $params
FinanceReturnedRecord::where('id', $params['id'])->update([ * @return bool
'project_id' => $contract['project_id'], * @author likeadmin
'contract_id' => $params['contract_id'], * @date 2023/12/13 16:28
'finance_returned_money_id' => $params['finance_returned_money_id'], */
'return_date' => strtotime($params['return_date']), public static function edit(array $params): bool
'amount' => $params['amount'], {
'collection_type' => $params['collection_type'], $contract = Contract::field('project_id')->where('id', $params['contract_id'])->findOrEmpty();
'invoice_status' => $params['invoice_status'], $finance_returned_money = FinanceReturnedMoney::where('id', $params['finance_returned_money_id'])->findOrEmpty();
'pay_type' => $params['pay_type'], if ($params['amount'] >= $finance_returned_money['amount']) {
'return_desc' => $params['return_desc'] ?? '', $status = 3;
'receiver' => $params['receiver'] ?? '', } else {
'remark' => $params['remark'] ?? '', $status = 2;
'annex' => $params['annex']? json_encode($params['annex']) : null, }
'bank_account_id' => $params['bank_account_id'], Db::startTrans();
'update_time' => time(), try {
]); FinanceReturnedRecord::where('id', $params['id'])->update([
Db::commit(); 'project_id' => $contract['project_id'],
return true; 'contract_id' => $params['contract_id'],
} catch (\Exception $e) { 'finance_returned_money_id' => $params['finance_returned_money_id'],
Db::rollback(); 'return_date' => strtotime($params['return_date']),
self::setError($e->getMessage()); 'amount' => $params['amount'],
return false; 'collection_type' => $params['collection_type'],
} 'invoice_status' => $params['invoice_status'],
} 'pay_type' => $params['pay_type'],
'return_desc' => $params['return_desc'] ?? '',
'receiver' => $params['receiver'] ?? '',
/** 'remark' => $params['remark'] ?? '',
* @notes 删除 'annex' => $params['annex'] ? json_encode($params['annex']) : null,
* @param array $params 'bank_account_id' => $params['bank_account_id'],
* @return bool 'update_time' => time(),
* @author likeadmin ]);
* @date 2023/12/13 16:28 FinanceReturnedMoney::where('id', $params['finance_returned_money_id'])->update([
*/ 'return_status' => $status
public static function delete(array $params): bool ]);
{ Db::commit();
return FinanceReturnedRecord::destroy($params['id']); return true;
} } catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
/** return false;
* @notes 获取详情 }
* @param $params }
* @return array
* @author likeadmin
* @date 2023/12/13 16:28 /**
*/ * @notes 删除
public static function detail($params): array * @param array $params
{ * @return bool
$data = FinanceReturnedRecord::field('id,project_id,contract_id,finance_returned_money_id,return_date,amount,collection_type,invoice_status,pay_type,return_desc,receiver,remark,annex,bank_account_id,approve_id') * @author likeadmin
->findOrEmpty($params['id']); * @date 2023/12/13 16:28
$project = Project::field('custom_id,name,project_code')->where('id',$data['project_id'])->findOrEmpty(); */
$custom = Custom::field('name')->where('id',$project['custom_id'])->findOrEmpty(); public static function delete(array $params): bool
$contract = Contract::field('contract_name,contract_code')->where('id',$data['contract_id'])->findOrEmpty(); {
$finance_returned_money = FinanceReturnedMoney::field('period')->where('id',$data['finance_returned_money_id'])->findOrEmpty(); return FinanceReturnedRecord::destroy($params['id']);
$data['project_name'] = $project['name']; }
$data['project_code'] = $project['project_code'];
$data['custom_name'] = $custom['name'];
$data['contract_name'] = $contract['contract_name']; /**
$data['contract_code'] = $contract['contract_code']; * @notes 获取详情
$data['period'] = $finance_returned_money->period_text; * @param $params
$data['collection_type_text'] = $data->collection_type_text; * @return array
$data['invoice_status_text'] = $data->invoice_status_text; * @author likeadmin
$data['pay_type_text'] = $data->pay_type_text; * @date 2023/12/13 16:28
$data['bank_account_info'] = BankAccount::field('account_sn,deposit_bank,account_name,account')->where('id',$data['bank_account_id'])->findOrEmpty(); */
$approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); public static function detail($params): array
$data['approve_check_status'] = $approve_data['check_status']; {
return $data->toArray(); $data = FinanceReturnedRecord::field('id,project_id,contract_id,finance_returned_money_id,return_date,amount,collection_type,invoice_status,pay_type,return_desc,receiver,remark,annex,bank_account_id,approve_id')
} ->findOrEmpty($params['id']);
$project = Project::field('custom_id,name,project_code')->where('id', $data['project_id'])->findOrEmpty();
public static function approve($params,$admin_id): bool{ $custom = Custom::field('name')->where('id', $project['custom_id'])->findOrEmpty();
$data = FinanceReturnedRecord::where('id',$params['id'])->findOrEmpty(); $contract = Contract::field('contract_name,contract_code')->where('id', $data['contract_id'])->findOrEmpty();
$approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); $finance_returned_money = FinanceReturnedMoney::field('period')->where('id', $data['finance_returned_money_id'])->findOrEmpty();
if(!empty($data['approve_id']) && $approve_data['check_status'] != 3){ $data['project_name'] = $project['name'];
self::setError('当前内容存在审核信息,请勿重复提交'); $data['project_code'] = $project['project_code'];
return false; $data['custom_name'] = $custom['name'];
} $data['contract_name'] = $contract['contract_name'];
Db::startTrans(); $data['contract_code'] = $contract['contract_code'];
try { $data['period'] = $finance_returned_money->period_text;
$res = addApprove( $data['collection_type_text'] = $data->collection_type_text;
'开票申请', $data['invoice_status_text'] = $data->invoice_status_text;
$params['id'], $data['pay_type_text'] = $data->pay_type_text;
'app\common\model\finance\FinanceReturnedRecord', $data['bank_account_info'] = BankAccount::field('account_sn,deposit_bank,account_name,account')->where('id', $data['bank_account_id'])->findOrEmpty();
$params['path'], $approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty();
$params['flow_id'], $data['approve_check_status'] = $approve_data['check_status'];
$admin_id return $data->toArray();
); }
if($res){
FinanceReturnedRecord::where('id',$params['id'])->update([ public static function approve($params, $admin_id): bool
'approve_id' => $res, {
]); $data = FinanceReturnedRecord::where('id', $params['id'])->findOrEmpty();
$approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty();
if (!empty($data['approve_id']) && $approve_data['check_status'] != 3) {
self::setError('当前内容存在审核信息,请勿重复提交');
return false;
}
Db::startTrans();
try {
$res = addApprove(
'开票申请',
$params['id'],
'app\common\model\finance\FinanceReturnedRecord',
$params['path'],
$params['flow_id'],
$admin_id
);
if ($res) {
FinanceReturnedRecord::where('id', $params['id'])->update([
'approve_id' => $res,
]);
}
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;
} }
} }
}