feat: 优化收银台现金流水逻辑

This commit is contained in:
mkm 2024-06-21 16:56:54 +08:00
parent 2258d11ea8
commit ec86c3b6b7
3 changed files with 150 additions and 6 deletions

View File

@ -11,11 +11,17 @@ class CashFlowLogic extends BaseLogic
public function insert($storeId, $amount)
{
$model = new StoreCashFinanceFlow();
$model->store_id = $storeId;
$model->cash_price = $amount;
$model->receivable = $amount;
$model->status = YesNoEnum::NO;//收银台收了默认算完成了
$model->save();
$find = $model->where(['store_id' => $storeId])->whereDay('create_time')->where('status', 0)->find();
if ($find) {
$find->cash_price = bcadd($find->cash_price, $amount, 2);
$find->receivable = bcadd($find->receivable, $amount, 2);
$find->save();
} else {
$model->store_id = $storeId;
$model->cash_price = $amount;
$model->receivable = $amount;
$model->status = YesNoEnum::NO; //收银台收了默认算完成了
$model->save();
}
}
}

View File

@ -0,0 +1,66 @@
<?php
namespace app\store\controller\store_cash_finance_flow;
use app\store\controller\BaseAdminController;
use app\admin\logic\store_cash_finance_flow\StoreCashFinanceFlowLogic;
use app\admin\validate\store_cash_finance_flow\StoreCashFinanceFlowValidate;
use app\common\model\store_cash_finance_flow\StoreCashFinanceFlow;
use app\store\lists\store_cash_finance_flow\StoreCashFinanceFlowLists;
/**
* 现金流水控制器
* Class StoreCashFinanceFlowController
* @package app\admin\controller\store_cash_finance_flow
*/
class StoreCashFinanceFlowController extends BaseAdminController
{
/**
* @notes 获取现金流水列表
* @return \think\response\Json
* @author admin
* @date 2024/06/06 10:29
*/
public function lists()
{
return $this->dataLists(new StoreCashFinanceFlowLists());
}
/**
* @notes 编辑现金流水
* @return \think\response\Json
* @author admin
* @date 2024/06/06 10:29
*/
public function edit()
{
$id=$this->request->post('id');
$res=StoreCashFinanceFlow::where(['store_id'=>$this->adminInfo['store_id'],'id'=>$id])->update(['store_status'=>1]);
if ($res) {
return $this->success('上交成功,等待财务审核', [], 1, 1);
}
return $this->fail('没有更新');
}
/**
* @notes 获取现金流水详情
* @return \think\response\Json
* @author admin
* @date 2024/06/06 10:29
*/
public function detail()
{
$params = (new StoreCashFinanceFlowValidate())->goCheck('detail');
$result = StoreCashFinanceFlowLogic::detail($params);
$result['image']='https://lihaiim.oss-cn-chengdu.aliyuncs.com/public/uploads/images/20240619/20240619104553f7e108704.jpg';
$result['bank_code']='456565656';
$result['bank_name']='里海农科';
$result['bank_address']='泸州支行';
return $this->data($result);
}
}

View File

@ -0,0 +1,72 @@
<?php
namespace app\store\lists\store_cash_finance_flow;
use app\admin\lists\BaseAdminDataLists;
use app\common\model\store_cash_finance_flow\StoreCashFinanceFlow;
use app\common\lists\ListsSearchInterface;
use app\common\model\auth\Admin;
use app\common\model\system_store\SystemStore;
/**
* 现金流水列表
* Class StoreCashFinanceFlowLists
* @package app\admin\listsstore_cash_finance_flow
*/
class StoreCashFinanceFlowLists extends BaseAdminDataLists implements ListsSearchInterface
{
/**
* @notes 设置搜索条件
* @return \string[][]
* @author admin
* @date 2024/06/06 10:29
*/
public function setSearch(): array
{
return [
"between_time" => 'create_time'
];
}
/**
* @notes 获取现金流水列表
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author admin
* @date 2024/06/06 10:29
*/
public function lists(): array
{
$this->searchWhere[]=['store_id','=',$this->adminInfo['store_id']];
return StoreCashFinanceFlow::where($this->searchWhere)
->field(['id', 'store_id', 'cash_price', 'receivable', 'receipts', 'admin_id', 'file', 'remark', 'status'])
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()->each(function ($item) {
$item->store_name =SystemStore::where('id', $item->store_id)->value('name');
if($item->admin_id>0){
$item->admin_name =Admin::where('id', $item->admin_id)->value('name');
}
})
->toArray();
}
/**
* @notes 获取现金流水数量
* @return int
* @author admin
* @date 2024/06/06 10:29
*/
public function count(): int
{
return StoreCashFinanceFlow::where($this->searchWhere)->count();
}
}