调整采购单生成

This commit is contained in:
DESKTOP-GMUNQ1B\Administrator 2024-12-18 17:44:44 +08:00
parent c0cdd0974b
commit 65ce4808c9
3 changed files with 56 additions and 15 deletions
app
admin
lists/purchase_product_offer
logic/purchase_product_offer
common/model/purchase_product_offer

@ -49,6 +49,14 @@ class PurchaseProductOfferLists extends BaseAdminDataLists implements ListsSearc
*/ */
public function lists(): array public function lists(): array
{ {
$procurementOrderId = PurchaseProductOffer::where('source_order_id', $this->params['order_id'])->value('source_order_id');
if ($procurementOrderId) {
foreach ($this->searchWhere as $k => &$v) {
if ($v[0] == 'order_id') {
$v[2] = $procurementOrderId;
}
}
}
$store_name=$this->request->get('store_name'); $store_name=$this->request->get('store_name');
if($store_name){ if($store_name){
$ids=StoreProduct::where('store_name','like','%'.$store_name.'%')->column('id'); $ids=StoreProduct::where('store_name','like','%'.$store_name.'%')->column('id');
@ -125,6 +133,14 @@ class PurchaseProductOfferLists extends BaseAdminDataLists implements ListsSearc
if($this->is_ids==1){ if($this->is_ids==1){
return 0; return 0;
} }
$procurementOrderId = PurchaseProductOffer::where('source_order_id', $this->params['order_id'])->value('source_order_id');
if ($procurementOrderId) {
foreach ($this->searchWhere as $k => &$v) {
if ($v[0] == 'order_id') {
$v[2] = $procurementOrderId;
}
}
}
return PurchaseProductOffer::where($this->searchWhere)->count(); return PurchaseProductOffer::where($this->searchWhere)->count();
} }

@ -56,21 +56,44 @@ class PurchaseProductOfferLogic extends BaseLogic
$mark = BeforehandOrderCartInfo::where('bhoid', $params['order_id'])->where('product_id', $params['product_id'])->value('mark'); $mark = BeforehandOrderCartInfo::where('bhoid', $params['order_id'])->where('product_id', $params['product_id'])->value('mark');
} }
$find=StoreProduct::where('id',$params['product_id'])->find(); $find=StoreProduct::where('id',$params['product_id'])->find();
PurchaseProductOffer::create([ $purchaseProductOffer = PurchaseProductOffer::where(['order_id' => $procurementOrder['id'], 'product_id' => $params['product_id']])->find();
'order_id' => $procurementOrder['id'], if ($purchaseProductOffer) {
'product_id' => $params['product_id'], $purchaseProductOffer->need_num = $purchaseProductOffer['need_num'] + $params['need_num'];
'unit' => $params['unit'], if (!empty($purchaseProductOffer['source_order_info'])) {
'is_buyer' => $params['is_buyer'], $sourceOrderInfo = $purchaseProductOffer['source_order_info'];
'need_num' => $params['need_num'], $sourceOrderInfo[] = [
'mark' => $mark, 'source_order_id' => $params['order_id'],
'buyer_id' => $params['buyer_id'], 'product_id' => $params['product_id'],
'package' => $find['package'], 'need_num' => $params['need_num'],
'store_info' => $find['store_info'], 'mark' => $mark,
'marques' => $find['marques'], ];
'after_sales' => $find['after_sales'], $purchaseProductOffer->source_order_info = $sourceOrderInfo;
'status' => 0, }
$purchaseProductOffer->save();
]); } else {
PurchaseProductOffer::create([
'order_id' => $procurementOrder['id'],
'product_id' => $params['product_id'],
'unit' => $params['unit'],
'is_buyer' => $params['is_buyer'],
'need_num' => $params['need_num'],
'mark' => $mark,
'buyer_id' => $params['buyer_id'],
'package' => $find['package'],
'store_info' => $find['store_info'],
'marques' => $find['marques'],
'after_sales' => $find['after_sales'],
'status' => 0,
'source_order_info' => [
[
'source_order_id' => $params['order_id'],
'product_id' => $params['product_id'],
'need_num' => $params['need_num'],
'mark' => $mark,
]
]
]);
}
BeforehandOrderCartInfo::where(['bhoid' => $params['order_id'], 'product_id' => $params['product_id']])->update(['is_buyer' => 1]); BeforehandOrderCartInfo::where(['bhoid' => $params['order_id'], 'product_id' => $params['product_id']])->update(['is_buyer' => 1]);
Db::commit(); Db::commit();
return true; return true;

@ -18,5 +18,7 @@ class PurchaseProductOffer extends BaseModel
protected $name = 'purchase_product_offer'; protected $name = 'purchase_product_offer';
protected $deleteTime = 'delete_time'; protected $deleteTime = 'delete_time';
protected $json = ['source_order_info'];
protected $jsonAssoc = true;
} }