全部
常见问题
产品动态
精选推荐

陀螺匠1.4合同状态更新问题

管理 管理 编辑 删除

操作步骤如下:

一、打开app/Http/Service/Client/ContractService.php 文件, 修改以下三处位置。

1.1 找到 reloadStatus 方法, 位于843行左右,替换:

    public function reloadStatus(int $id, mixed $contract = null): void
    {
        $contract = $contract ?: $this->dao->get($id);
        if ($contract->is_abnormal) {
            $contract->contract_status = '3';
        } else {
            $status = '1';
            $tz     = config('app.timezone');
            $now    = Carbon::now($tz)->toDateString();
            if ($contract->start_date && Carbon::parse($contract->start_date, $tz)->gt($now)) {
                $status = '0';
            }

            if ($contract->end_date && Carbon::parse($contract->end_date, $tz)->lt($now)) {
                $status = '2';
            }
            $contract->contract_status = $status;
        }

        $contract->save();
    }


1.2 找到 updateContract 方法, 位于169行左右:

3288220240507113824768.png

替换行:

 $data['contract_status'] = $info->is_abnormal ? '3' : $this->getStatus($data);


1.3 找到 statusTimer 方法, 位于828行左右,替换:

    public function statusTimer(): void
    {
        $now = Carbon::now(config('app.timezone'))->toDateString();
        $this->dao->update(['start_date_gt' => $now, 'contract_status_lt' => '2'], ['contract_status' => '1']);
        $this->dao->update(['end_date_lt' => $now, 'contract_status_lt' => '3'], ['contract_status' => '2']);
    }


二、打开app/Http/Service/Client/ClientBillService.php 文件, 找到 contractPrice 方法,位于1113行左右,替换:

    private function contractPrice(int $cid, $contract = null): bool
    {
        $contractService = app()->get(ContractService::class);
        if (! $contract) {
            $contract = $contractService->get($cid);
        }
        if (! $contract) {
            throw $this->exception('合同信息获取异常');
        }
        $contract->received = max($this->dao->getSum(['cid' => $cid, 'types' => -1]), 0);
        $paymentAmount      = max($this->dao->getSum(['cid' => $cid, 'types' => 0]), 0);
        $contract->surplus  = max(bcsub((string) $contract->contract_price, (string) $paymentAmount, 2), 0);
        return true;
    }

三、打开app/Http/Model/Client/Contract.php 文件,新加方法:

    /**
     * end_date lt 作用域
     * @param $query
     * @param $value
     * @return void
     */
    public function scopeEndDateLt($query, $value): void
    {
        if ($value != '') {
            $query->whereDate('end_date', '<', $value);
        }
    }

保存文件后并重启守护进程。

请登录后查看

轩 最后编辑于2024-05-08 11:09:18

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
970
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

管理员
为了能够快速帮您解决问题,提问时请描述下具体做了哪些操作,什么情况下出现的问题,最好能有错误截图或操作流程,感谢您的理解和支持。

回答

245

发布

14

经验

11264

今日热榜
本月热榜
$item.title
{{item.title}}
热度 {{item.heat}}

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服