销售合同管理系统 API 文档

1. 合同设计

    /**
     * 合同设计
     * @param $contractModel
     * @return mixed
     */
    public static function contractProcessing($contractModel)
    {
        //合同设计内容
        $contractDesign = ContractDesign::find()->where(['id'=>$contractModel->contract_design_id])->one();
        $contractModel->contract_design_id = $contractDesign->name;
        //合同状态
        $contractModel->status = Contract::$getStatus[$contractModel->status];
        //合同类型
        $contractModel->contract_type_id = ContractType::$getType[$contractModel->contract_type_id];
        //合同负责人
        $contractModel->manager_id = Manager::getNames($contractModel->manager_id);
        //客户
        $contractModel->customer_id = Customer::getName($contractModel->customer_id);
        //创建人
        $contractModel->create_id = CrmEmployee::getName($contractModel->create_id);
        //修改人
        $contractModel->update_id = CrmEmployee::getName($contractModel->update_id);
        //合同费用
        $contractModel->cost_amount = ContractCost::getCost($contractModel->contract_id);
        //合同产品
        $contractProduct = ContractProduct::getProduct($contractModel->contract_id);
        $productNames = array();
        if(!empty($contractProduct)) {
            foreach($contractProduct as $value) {
                $productNames[] = $value['product_name'];
            }
        }
        $contractModel->product_name = implode(',',$productNames);
        return $contractModel;
    }

2. 合同附件

    /**
     * 合同附件
     * @param $contractId
     * @return array
     */
    public static function getAttachment($contractId)
    {
        $query = ContractAttachment::find()->where(['contract_id'=>$contractId]);
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);
        return $dataProvider;
    }

3. 合同费用

    /**
     * 合同费用
     * @param $contractId
     * @return array
     */
    public static function getCost($contractId)
    {
        $query = ContractCost::find()->where(['contract_id'=>$contractId]);
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);
        return $dataProvider;
    }

4. 合同产品

    /**
     * 合同产品
     * @param $contractId
     * @return array
     */
    public static function getProduct($contractId)
    {
        $query = ContractProduct::find()->where(['contract_id'=>$contractId]);
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);
        return $dataProvider;
    }

5. 合同详情

    /**
     * 合同详情页
     * @param $id
     * @return array
     */
    public static function getContractInfo($id)
    {
        $contractModel = self::find()->where(['contract_id'=>$id])->one();
        //合同详情处理
        $contractModel = self::contractProcessing($contractModel);
        //合同附件
        $contractAttachment = self::getAttachment($id);
        //合同费用
        $contractCost = self::getCost($id);
        //合同产品
        $contractProduct = self::getProduct($id);
        $contractInfo = array(
            'contractModel' => $contractModel,
            'contractAttachment' => $contractAttachment,
            'contractCost' => $contractCost,
            'contractProduct' => $contractProduct
        );
        return $contractInfo;
    }

6. 销售合同添加费用

    /**
     * 销售合同添加费用
     * @param $contractId
     * @param $costAmount
     * @param $costType
     * @param $remark
     * @param $ownerId
     * @param $createId
     * @param $updateId
     */
    public static function addCost($contractId,$costAmount,$costType,$remark,$ownerId,$createId,$updateId)
    {
        $contractCostModel = new ContractCost();
        $contractCostModel->contract_id = $contractId;
        $contractCostModel->cost_price = $costAmount;
        $contractCostModel->cost_type = $costType;
        $contractCostModel->remark = $remark;
        $contractCostModel->create_by = $createId;
        $contractCostModel->create_at = time();
        $contractCostModel->update_by = $updateId;
        $contractCostModel->update_at = time();
        $contractCostModel->owner_id = $ownerId;
        $contractCostModel->save();
    }

7. 销售合同添加产品

    /**
     * 销售合同添加产品
     * @param $contractId
     * @param $productId
     * @param $productName
     * @param $num
     * @param $price
     * @param $subtotal
     * @param $tax
     * @param $taxTotal
     * @param $ownerId
     * @param $createId
     * @param $updateId
     */
    public static function addProduct($contractId,$productId,$productName,$num,$price,$subtotal,$tax,$taxTotal,$ownerId,$createId,$updateId)
    {
        $contractProductModel = new ContractProduct();
        $contractProductModel->contract_id = $contractId;
        $contractProductModel->product_id = $productId;
        $contractProductModel->product_name = $productName;
        $contractProductModel->num = $num;
        $contractProductModel->price = $price;
        $contractProductModel->subtotal = $subtotal;
        $contractProductModel->tax = $tax;
        $contractProductModel->tax_total = $taxTotal;
        $contractProductModel->create_by = $createId;
        $contractProductModel->create_at = time();
        $contractProductModel->update_by = $updateId;
        $contractProductModel->update_at = time();
        $contractProductModel->owner_id = $ownerId;
        $contractProductModel->save();
    }

8. 销售合同添加附件

    /**
     * 销售合同添加附件
     * @param $contractId
     * @param $attachmentId
     * @param $attachmentName
     * @param $ownerId
     * @param $createId
     * @param $updateId
     */
    public static function addAttachment($contractId,$attachmentId,$attachmentName,$ownerId,$createId,$updateId)
    {
        $contractAttachmentModel = new ContractAttachment();
        $contractAttachmentModel->contract_id = $contractId;
        $contractAttachmentModel->attachment_id = $attachmentId;
        $contractAttachmentModel->attachment_name = $attachmentName;
        $contractAttachmentModel->create_by = $createId;
        $contractAttachmentModel->create_at = time();
        $contractAttachmentModel->update_by = $updateId;
        $contractAttachmentModel->update_at = time();
        $contractAttachmentModel->owner_id = $ownerId;
        $contractAttachmentModel->save();
    }

9. 销售合同修改费用

    /**
     * 销售合同修改费用
     * @param $id
     * @param $costAmount
     * @param $costType
     * @param $remark
     * @param $updateId
     */
    public static function updateCost($id,$costAmount,$costType,$remark,$updateId)
    {
        $contractCostModel = ContractCost::find()->where(['id'=>$id])->one();
        $contractCostModel->cost_price = $costAmount;
        $contractCostModel->cost_type = $costType;
        $contractCostModel->remark = $remark;
        $contractCostModel->update_by = $updateId;
        $contractCostModel->update_at = time();
        $contractCostModel->save();
    }

10. 销售合同修改产品

    /**
     * 销售合同修改产品
     * @param $id
     * @param $productId
     * @param $productName
     * @param $num
     * @param $price
     * @param $subtotal
     * @param $tax
     * @param $taxTotal
     * @param $updateId
     */
    public static function updateProduct($id,$productId,$productName,$num,$price,$subtotal,$tax,$taxTotal,$updateId)
    {
        $contractProductModel = ContractProduct::find()->where(['id'=>$id])->one();
        $contractProductModel->product_id = $productId;
        $contractProductModel->product_name = $productName;
        $contractProductModel->num = $num;
        $contractProductModel->price = $price;
        $contractProductModel->subtotal = $subtotal;
        $contractProductModel->tax = $tax;
        $contractProductModel->tax_total = $taxTotal;
        $contractProductModel->update_by = $updateId;
        $contractProductModel->update_at = time();
        $contractProductModel->save();
    }

11. 销售合同修改附件

    /**
     * 销售合同修改附件
     * @param $id
     * @param $attachmentId
     * @param $attachmentName
     * @param $updateId
     */
    public static function updateAttachment($id,$attachmentId,$attachmentName,$updateId)
    {
        $contractAttachmentModel = ContractAttachment::find()->where(['id'=>$id])->one();
        $contractAttachmentModel->attachment_id = $attachmentId;
        $contractAttachmentModel->attachment_name = $attachmentName;
        $contractAttachmentModel->update_by = $updateId;
        $contractAttachmentModel->update_at = time();
        $contractAttachmentModel->save();
    }

12. 销售合同删除费用

    /**
     * 销售合同删除费用
     * @param $id
     */
    public static function deleteCost($id)
    {
        ContractCost::findOne($id)->delete();
    }

13. 销售合同删除产品

    /**
     * 销售合同删除产品
     * @param $id
     */
    public static function deleteProduct($id)
    {
        ContractProduct::findOne($id)->delete();
    }

14. 销售合同删除附件

    /**
     * 销售合同删除附件
     * @param $id
     */
    public static function deleteAttachment($id)
    {
        ContractAttachment::findOne($id)->delete();
    }

15. 获取合同费用列表

    /**
     * 获取合同费用列表
     * @param $contractId
     * @return array
     */
    public static function getCostList($contractId)
    {
        $contractCost = self::getCost($contractId);
        $costList = array();
        if(!empty($contractCost['models'])) {
            foreach($contractCost['models'] as $value) {
                $costList[] = array(
                    'id' => $value->id,
                    'cost_price' => $value->cost_price,
                    'cost_type' => $value->cost_type,
                    'remark' => $value->remark,
                    'create_by' => $value->create_by,
                    'create_at' => $value->create_at,
                    'update_by' => $value->update_by,
                    'update_at' => $value->update_at
                );
            }
        }
        return $costList;
    }

16. 获取合同产品列表

    /**
     * 获取合同产品列表
     * @param $contractId
     * @return array
     */
    public static function getProductList($contractId)
    {
        $contractProduct = self::getProduct($contractId);
        $productList = array();
        if(!empty($contractProduct['models'])) {
            foreach($contractProduct['models'] as $value) {
                $productList[] = array(
                    'id' => $value->id,
                    'product_id' => $value->product_id,
                    'product_name' => $value->product_name,
                    'num' => $value->num,
                    'price' => $value->price,
                    'subtotal' => $value->subtotal,
                    'tax' => $value->tax,
                    'tax_total' => $value->tax_total,
                    'create_by' => $value->create_by,
                    'create_at' => $value->create_at,
                    'update_by' => $value->update_by,
                    'update_at' => $value->update_at
                );
            }
        }
        return $productList;
    }

17. 获取合同附件列表

    /**
     * 获取合同附件列表
     * @param $contractId
     * @return array
     */
    public static function getAttachmentList($contractId)
    {
        $contractAttachment = self::getAttachment($contractId);
        $attachmentList = array();
        if(!empty($contractAttachment['models'])) {
            foreach($contractAttachment['models'] as $value) {
                $attachmentList[] = array(
                    'id' => $value->id,
                    'attachment_id' => $value->attachment_id,
                    'attachment_name' => $value->attachment_name,
                    'create_by' => $value->create_by,
                    'create_at' => $value->create_at,
                    'update_by' => $value->update_by,
                    'update_at' => $value->update_at
                );
            }
        }
        return $attachmentList;
    }
销售合同管理系统 - 合同设计与详情 API 文档

原文地址: https://www.cveoy.top/t/topic/llZ2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录