diff --git a/admin/controllers/drug/ServerController.php b/admin/controllers/drug/ServerController.php index 52effd4..717af86 100644 --- a/admin/controllers/drug/ServerController.php +++ b/admin/controllers/drug/ServerController.php @@ -182,321 +182,13 @@ class ServerController extends BaseAdminController } # 后面可能回做一个结算重试 -// public function actionServiceLedger() -// { -// //门店可提现及累计金额更新 -// $supplierId = 1; -// -// $time = time(); -// /******************************************** 供应商 ********************************************** */ -// $storeTotal = Ledger::find()->where(['order_id' => -1, 'user_id' => $supplierId, 'user_type' => 3, 'order_type' => 1, 'fee_type' => 1])->sum('money'); // 该订单供应商分佣总金额 -// $storeTotal = round($storeTotal, 6)?? '20.01';//4舍5入 -// //增加供应商分佣 -// $log = new LedgerLog(); -// $log->order_id = -1; -// $log->user_id = $supplierId; -// $log->user_type = 3;// 供应商 -// $log->order_type = 1; //产品订单 -// $log->fee_type = 1; //药品费用 -// $log->type = 1;// 增加 -// $log->amount = $storeTotal; -// $log->content = '订单结算后增加药品分佣金额'; -// $log->created_at = $time; -// $log->updated_at = $time; -// $log->saveOrFail(); -// -// -// //门店可提现及累计金额更新 -// AccountBalanceModel::updateAllCounters([ -// 'total' => $storeTotal, -// 'frozen' => $storeTotal, -// ], [ -// 'user_id' => $supplierId, -// 'type' => 3 -// ]); -// return ['分账成功']; -// -// -// -// -// -// -// -// -// -// -// -// -// -// $t = \Yii::$app->db->beginTransaction(); -// $orderId = 314; -// try { -// $productOrder = ProductOrder::find()->with(['orderItems'])->where(['id' => $orderId])->one(); -// if (!$productOrder) { -// throw new Exception('产品订单不存在'); -// } -// $store = Store::findOne(['id' => $productOrder->store_id]); -// if (!$store) { -// throw new Exception('仓库不存在'); -// } -// $isLegder = Ledger::find()->where(['order_id' => $orderId])->andWhere(['order_type' => 1])->one(); -// if (!empty($isLegder)) { -// throw new Exception('该订单已增加待结算记录'); -// } -// $time = time(); -// $ledgerData = []; -// if ($productOrder->decoct_price > 0) { -// $ledgerData[] = [ -// 'order_id' => $orderId, -// 'user_id' => 0, -// 'user_type' => 2, //平台 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 4,//代煎费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => 0, -// 'xd_time' => $productOrder->created_at, -// 'number' => 1, -// 'money' => $productOrder->decoct_price, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// } -// if ($productOrder->process_price > 0) { -// $ledgerData[] = [ -// 'order_id' => $orderId, -// 'user_id' => 0, -// 'user_type' => 2, //供应商 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 5,//加工费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => 0, -// 'xd_time' => $productOrder->created_at, -// 'number' => 1, -// 'money' => $productOrder->process_price, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// } -// if ($productOrder->treatement_price > 0) { -// $ledgerData[] = [ -// 'order_id' => $orderId, -// 'user_id' => $store->id, -// 'user_type' => 1, //门店 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 6,//诊疗费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => 0, -// 'xd_time' => $productOrder->created_at, -// 'number' => 1, -// 'money' => $productOrder->treatement_price, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// } -// if ($productOrder->trans_expenses > 0) { -// $ledgerData[] = [ -// 'order_id' => $orderId, -// 'user_id' => 0, -// 'user_type' => 2, //平台 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 3,//快递费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => 0, -// 'xd_time' => $productOrder->created_at, -// 'number' => 1, -// 'money' => $productOrder->trans_expenses, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// } -// if (!empty($ledgerData)) { -// \Yii::$app->db->createCommand()->batchInsert(Ledger::tableName(), [ -// 'order_id', 'user_id', 'user_type', 'order_type', 'fee_type', 'su_id', 'drugstore_id', -// 'drug_id', 'xd_time', 'number', 'money', 'status', 'created_at', 'updated_at' -// ], $ledgerData)->execute(); -// } -// $productOrderItems = ProductOrderItems::find()->with(['drug.supplier'])->where(['product_order_id' => $productOrder->id])->asArray()->all(); -// -// switch ($productOrder->prescription_type) { -// case '1': -// case '3': //中药/颗粒药分佣 -// foreach ($productOrderItems as $v) { -// $ledger = []; -// $number = $v['number']; -// $totalPrice = round($number * $v['price'], 4); -// $totalBuyPrice = round($number * $v['buy_price'], 4); -// -// $ledger[] = [ -// 'order_id' => $orderId, -// 'user_id' => $store->id, -// 'user_type' => 1, //门店 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 1,//药品费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => $v['drug_id'], -// 'xd_time' => $productOrder->created_at, -// 'number' => $number, -// 'money' => $totalPrice - $totalBuyPrice, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// -// $ledger[] = [ -// 'order_id' => $orderId, -// 'user_id' => 0, -// 'user_type' => 2, //平台 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 1,//药品费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => $v['drug_id'], -// 'xd_time' => $productOrder->created_at, -// 'number' => $number, -// 'money' => $totalBuyPrice, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// \Yii::$app->db->createCommand()->batchInsert(Ledger::tableName(), [ -// 'order_id', 'user_id', 'user_type', 'order_type', 'fee_type', 'su_id', 'drugstore_id', -// 'drug_id', 'xd_time', 'number', 'money', 'status', 'created_at', 'updated_at' -// ], $ledger)->execute(); -// } -// break; -// case '2': //西药分佣 -// $ledger = []; -// foreach ($productOrderItems as $v) { -// $totalPrice = round($v['number'] * $v['price'], 4); -// $totalBuyPrice = round($v['number'] * $v['buy_price'], 4); -// $ledger[] = [ -// 'order_id' => $orderId, -// 'user_id' => $store->id, -// 'user_type' => 1, //门店 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 1,//药品费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'xd_time' => $productOrder->created_at, -// 'drug_id' => $v['drug_id'], -// 'number' => $v['number'], -// 'money' => $totalPrice - $totalBuyPrice, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// -// $ledger[] = [ -// 'order_id' => $orderId, -// 'user_id' => 0, -// 'user_type' => 2, //平台 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 1,//药品费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => $v['drug_id'], -// 'xd_time' => $productOrder->created_at, -// 'number' => $v['number'], -// 'money' => $totalBuyPrice, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// \Yii::$app->db->createCommand()->batchInsert(Ledger::tableName(), [ -// 'order_id', 'user_id', 'user_type', 'order_type', 'fee_type', 'su_id', 'drugstore_id', -// 'drug_id', 'xd_time', 'number', 'money', 'status', 'created_at', 'updated_at' -// ], $ledger)->execute(); -// } -// -// break; -// case '5': -// //产品服务包分成 -// $ledger = []; -// foreach ($productOrderItems as $v) { -// $totalPrice = bcmul($v['number'], $v['price'], 4); -// $platformMoney = bcmul($totalPrice, $v['drug']['platform_ledger'] / 100, 4); -// $storeMoney = bcmul($totalPrice, $v['drug']['store_ledger'] / 100, 4); -// $supplierMoney = bcmul($totalPrice, $v['drug']['supplier_ledger'] / 100, 4); -// $ledger[] = [ -// 'order_id' => $orderId, -// 'user_id' => $store->id, -// 'user_type' => 1, //门店 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 1,//药品费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'xd_time' => $productOrder->created_at, -// 'drug_id' => $v['drug_id'], -// 'number' => $v['number'], -// 'money' => $storeMoney, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// -// $ledger[] = [ -// 'order_id' => $orderId, -// 'user_id' => 0, -// 'user_type' => 2, //平台 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 1,//药品费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => $v['drug_id'], -// 'xd_time' => $productOrder->created_at, -// 'number' => $v['number'], -// 'money' => $platformMoney, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// -// $ledger[] = [ -// 'order_id' => $orderId, -// 'user_id' => $v['drug']['supplier']['id'], -// 'user_type' => 3, //平台 -// 'order_type' => 1,//产品订单 -// 'fee_type' => 1,//药品费用 -// 'su_id' => $productOrder->su_id, -// 'drugstore_id' => $productOrder->store_id, -// 'drug_id' => $v['drug_id'], -// 'xd_time' => $productOrder->created_at, -// 'number' => $v['number'], -// 'money' => $supplierMoney, -// 'status' => 0, -// 'created_at' => $time, -// 'updated_at' => $time -// ]; -// ds($ledger); -// \Yii::$app->db->createCommand()->batchInsert(Ledger::tableName(), [ -// 'order_id', 'user_id', 'user_type', 'order_type', 'fee_type', 'su_id', 'drugstore_id', -// 'drug_id', 'xd_time', 'number', 'money', 'status', 'created_at', 'updated_at' -// ], $ledger)->execute(); -// } -// break; -// default: -// throw new Exception('错误的处方类型'); -// break; -// } -//// $t->commit(); -// -//// $ledgerForm = new LedgerForm(); -//// $ledgerForm->order_id = $orderId; -//// $ledgerForm->status = 1; // 已结算 -//// $ledgerForm->update(); -// } catch (\Exception $e) { -// $t->rollBack(); -// throw $e; -// } -// return ['重试成功']; -// } + public function actionServiceLedger() + { + $leaderNoMoney = Ledger::find()->where(['status' => 0])->sum('money'); + ds($leaderNoMoney); + $ledgerForm = new LedgerForm(); + $ledgerForm->order_id = 339; + $ledgerForm->status = 1; // 已结算 + $ledgerForm->update(); + } } \ No newline at end of file diff --git a/admin/controllers/store/WareController.php b/admin/controllers/store/WareController.php index 8626658..eff3bce 100644 --- a/admin/controllers/store/WareController.php +++ b/admin/controllers/store/WareController.php @@ -605,7 +605,7 @@ class WareController extends BaseAdminController { $order = \Yii::$app->request->post('order_id'); if (empty($order)) { - throw new Exception('订单id不能为空'); + throw new Exception('订单id不能为空'. $order); } $orderAutoReceivedTime = isset($config['product_order']['received_time']) ? $config['product_order']['received_time'] : 7*24*3600; \Yii::$app->queue->delay($orderAutoReceivedTime)->push(new ProductOrderAutoReceivedJob([ diff --git a/common/forms/LedgerForm.php b/common/forms/LedgerForm.php index 244a6d9..4d42e8e 100644 --- a/common/forms/LedgerForm.php +++ b/common/forms/LedgerForm.php @@ -490,28 +490,30 @@ class LedgerForm extends BaseModel /******************************************** 供应商 ********************************************** */ $storeTotal = Ledger::find()->where(['order_id' => $this->order_id, 'user_id' => $v['drug']['source'], 'user_type' => 3, 'order_type' => 1, 'fee_type' => 1])->sum('money'); // 该订单供应商分佣总金额 $storeTotal = round($storeTotal, 6);//4舍5入 - //增加供应商分佣 - $log = clone $model; - $log->order_id = $this->order_id; - $log->user_id = $v['drug']['source']; - $log->user_type = 3;// 供应商 - $log->order_type = 1; //产品订单 - $log->fee_type = 1; //药品费用 - $log->type = 1;// 增加 - $log->amount = $storeTotal; - $log->content = '订单结算后增加供应商佣金额'; - $log->created_at = $time; - $log->updated_at = $time; - $log->saveOrFail(); + if ($storeTotal > 0) { + //增加供应商分佣 + $log = clone $model; + $log->order_id = $this->order_id; + $log->user_id = $v['drug']['source']; + $log->user_type = 3;// 供应商 + $log->order_type = 1; //产品订单 + $log->fee_type = 1; //药品费用 + $log->type = 1;// 增加 + $log->amount = $storeTotal; + $log->content = '订单结算后增加供应商佣金额'; + $log->created_at = $time; + $log->updated_at = $time; + $log->saveOrFail(); - //供应商冻结金额及累计金额更新 - AccountBalanceModel::updateAllCounters([ - 'total' => $storeTotal, - 'frozen' => $storeTotal, - ], [ - 'user_id' => $v['drug']['source'], - 'type' => 3 - ]); + //供应商冻结金额及累计金额更新 + AccountBalanceModel::updateAllCounters([ + 'total' => $storeTotal, + 'frozen' => $storeTotal, + ], [ + 'user_id' => $v['drug']['source'], + 'type' => 3 + ]); + } } //分账表批量更新状态为已结算