mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-22 18:35:35 +08:00
563 lines
22 KiB
PHP
563 lines
22 KiB
PHP
<?php
|
||
/**
|
||
* Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
|
||
* See LICENSE file for license details.
|
||
*/
|
||
|
||
class console_storefreeze{
|
||
|
||
|
||
/**
|
||
* 销售预占.
|
||
* @param
|
||
* @return
|
||
* @access public
|
||
* @author sunjing@shopex.cn
|
||
*/
|
||
function sale_freezeproduct($product_ids=0)
|
||
{
|
||
|
||
$sqlstr = " AND o.order_type <> 'brush'";
|
||
if($product_ids) {
|
||
$product_ids = (array)$product_ids;
|
||
$product_ids = implode(',',$product_ids);
|
||
$sqlstr.=" AND i.product_id in (".$product_ids.")";
|
||
}
|
||
$get_order_sql = "SELECT o.order_id,o.order_type,i.product_id,SUM(i.nums) nums,SUM(i.sendnum) sendnum,SUM(i.nums-i.sendnum) freeze FROM sdb_ome_orders AS o
|
||
LEFT JOIN sdb_ome_order_items AS i ON(o.order_id=i.order_id)
|
||
WHERE o.ship_status IN('0','2','3') AND o.status='active' AND o.process_status in ('unconfirmed','splitting','is_declare','splited','confirmed','is_retrial') AND i.delete='false' AND i.nums != i.sendnum".$sqlstr." GROUP BY i.product_id";
|
||
|
||
$orders = kernel::database()->select($get_order_sql);
|
||
$p_freeze = array();
|
||
foreach($orders as $order){
|
||
|
||
//brush特殊订单(刷单订单不预占冻结库存)
|
||
if($order['order_type'] == 'brush'){
|
||
continue;
|
||
}
|
||
|
||
$freeze = $order['freeze'];
|
||
if($freeze<0) {
|
||
$freeze = 0;
|
||
}
|
||
if(isset($p_freeze[$order['product_id']])){
|
||
$p_freeze[$order['product_id']] += $freeze;
|
||
}else{
|
||
$p_freeze[$order['product_id']] = $freeze;
|
||
}
|
||
}
|
||
|
||
// //复审。复审通过取订单明细 未通过前要取最早的一张快照 因复审修改记录直接变更的是订单明细
|
||
// $retrial_sql = "SELECT o.order_id,o.order_type,i.product_id,i.nums,i.sendnum,(i.nums-i.sendnum) as freeze FROM sdb_ome_orders AS o
|
||
// LEFT JOIN sdb_ome_order_items AS i ON(o.order_id=i.order_id) LEFT JOIN sdb_ome_order_retrial as retrial ON o.order_id=retrial.order_id
|
||
// WHERE o.ship_status IN('0','2') AND o.status='active' AND o.process_status in ('is_retrial') AND i.delete='false' AND retrial.status='1' AND i.nums != i.sendnum ".$sqlstr;
|
||
// $retrial = kernel::database()->select($retrial_sql);
|
||
// if ($retrial){
|
||
// foreach ($retrial as $retrial){
|
||
//
|
||
// //brush特殊订单(刷单订单不预占冻结库存)
|
||
// if($retrial['order_type'] == 'brush'){
|
||
// continue;
|
||
// }
|
||
//
|
||
// $freeze = $retrial['freeze'];
|
||
// if(isset($p_freeze[$retrial['product_id']])){
|
||
// $p_freeze[$retrial['product_id']] += $freeze;
|
||
// }else{
|
||
// $p_freeze[$retrial['product_id']] = $freeze;
|
||
// }
|
||
// }
|
||
//
|
||
// }
|
||
//
|
||
// $unretrial_sql = "SELECT o.order_type,snap.order_detail FROM sdb_ome_orders AS o LEFT JOIN sdb_ome_order_retrial as retrial ON o.order_id=retrial.order_id left join sdb_ome_order_retrial_snapshot as snap on retrial.id=snap.retrial_id WHERE o.ship_status IN('0','2') AND o.status='active' AND o.process_status in ('is_retrial') group by snap.order_id ";
|
||
// $unretrial = kernel::database()->select($unretrial_sql);
|
||
// if ($unretrial){
|
||
// foreach($unretrial as $v)
|
||
// {
|
||
// //brush特殊订单(刷单订单不预占冻结库存)
|
||
// if($v['order_type'] == 'brush'){
|
||
// continue;
|
||
// }
|
||
//
|
||
// $order_detail = $v['order_detail'] ? unserialize($v['order_detail']): [];
|
||
//
|
||
// foreach($order_detail['item_list'] as $items){
|
||
//
|
||
// foreach($items as $item){
|
||
// foreach($item['order_items'] as $mv){
|
||
// if($product_ids && implode($mv['product_id'], explode(',', $product_ids)) ){
|
||
// $product_id = $mv['product_id'];
|
||
// $nums = $mv['nums'];
|
||
// if (isset($p_freeze[$product_id])){
|
||
// $p_freeze[$product_id] += $nums;
|
||
// }else{
|
||
// $p_freeze[$product_id] = $nums;
|
||
// }
|
||
// }
|
||
//
|
||
// }
|
||
//
|
||
// }
|
||
// }
|
||
//
|
||
//
|
||
// }
|
||
// }
|
||
|
||
//检查是否安装dealer应用
|
||
if(app::get('dealer')->is_installed()){
|
||
//经销一件代发订单库存预占
|
||
$sql = "SELECT plat_order_id FROM sdb_dealer_platform_orders WHERE process_status IN('unconfirmed', 'fail') AND dispose_status IN('all_daifa', 'part_daifa')";
|
||
$tempList = kernel::database()->select($sql);
|
||
if($tempList){
|
||
$jxItemMdl = app::get('dealer')->model('platform_order_items');
|
||
|
||
//plat_order_id
|
||
$platOrderIds = array_column($tempList, 'plat_order_id');
|
||
|
||
//list
|
||
$filter = array('plat_order_id'=>$platOrderIds, 'is_delete'=>'false', 'is_shopyjdf_type'=>'2');
|
||
$tempList = $jxItemMdl->getList('plat_item_id,product_id,bn,nums', $filter, 0, -1);
|
||
if($tempList){
|
||
foreach ($tempList as $itemKey => $itemVal)
|
||
{
|
||
$product_id = $itemVal['product_id'];
|
||
$nums = $itemVal['nums'];
|
||
|
||
$p_freeze[$product_id] += $nums;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
return $p_freeze;
|
||
}
|
||
|
||
|
||
function sale_freezebranchproduct($product_ids=0)
|
||
{
|
||
$branchProductObj = app::get('ome')->model('branch_product');
|
||
|
||
$sqlstr = '';
|
||
if($product_ids) {
|
||
$product_ids = (array)$product_ids;
|
||
$product_ids = implode(',',$product_ids);
|
||
$sqlstr.=" and b.product_id in(".$product_ids.")";
|
||
}
|
||
$sql = 'select a.branch_id,sum(b.number) as total_num,b.product_id,max(b.bn) as bn
|
||
from sdb_ome_delivery as a
|
||
left join sdb_ome_delivery_items as b
|
||
on a.delivery_id=b.delivery_id
|
||
where
|
||
a.status in ("progress","ready","stop") and a.process="false" and type="normal" and a.parent_id=0
|
||
'.$sqlstr;
|
||
|
||
$sql .= " group by b.product_id,a.branch_id ";
|
||
|
||
$deliverys = kernel::database()->select($sql);
|
||
$sale_freeze = array();
|
||
foreach ( $deliverys as $dr ) {
|
||
$sale_freeze[$dr['product_id']][$dr['branch_id']] = $dr['total_num'];
|
||
}
|
||
|
||
return $sale_freeze;
|
||
}
|
||
/**
|
||
* 销售预占.
|
||
* @param
|
||
* @return
|
||
* @access public
|
||
* @author sunjing@shopex.cn
|
||
*/
|
||
function branch_freezeproduct($product_ids=0)
|
||
{
|
||
//采购退货
|
||
$db = kernel::database();
|
||
|
||
$sqlstr = '';
|
||
$sqlstr_artificial_freeze = '';
|
||
if($product_ids){
|
||
$product_ids = (array)$product_ids;
|
||
$product_ids = implode(',',$product_ids);
|
||
$sqlstr.=" and ai.product_id in (".$product_ids.")";
|
||
$sqlstr_artificial_freeze.=" and bm_id in (".$product_ids.")";
|
||
}
|
||
|
||
$sql = "select ai.product_id,a.branch_id,sum(ai.num) as _num from sdb_purchase_returned_purchase as a LEFT JOIN sdb_purchase_returned_purchase_items as ai ON a.rp_id = ai.rp_id
|
||
where a.rp_type in ('eo') AND a.return_status in ('1','4') AND a.check_status in ('2') ".$sqlstr." group by a.branch_id,ai.product_id";
|
||
$data = $db->select($sql);
|
||
|
||
$rs = array();
|
||
foreach($data as $v){
|
||
$rs[$v['product_id']][$v['branch_id']] = $v['_num'];
|
||
}
|
||
//
|
||
$stock_sql = "select ai.product_id,a.branch_id,sum(ai.nums) as _num from sdb_taoguaniostockorder_iso as a LEFT JOIN sdb_taoguaniostockorder_iso_items as ai ON a.iso_id = ai.iso_id
|
||
where a.iso_status in ('1','2') AND a.check_status in ('2') AND a.type_id in('5','7','100','300','40') ".$sqlstr." group by a.branch_id,ai.product_id";
|
||
|
||
$stock = $db->select($stock_sql);
|
||
|
||
foreach ($stock as $sv ) {
|
||
if (isset($rs[$sv['product_id']][$sv['branch_id']])) {
|
||
$rs[$sv['product_id']][$sv['branch_id']] +=$sv['_num'];
|
||
}else{
|
||
$rs[$sv['product_id']][$sv['branch_id']] = $sv['_num'];
|
||
}
|
||
|
||
}
|
||
|
||
//退货预占
|
||
$reship_sql = "SELECT ai.product_id,r.changebranch_id as branch_id,sum(ai.num) as _num FROM sdb_ome_reship as r LEFT JOIN sdb_ome_reship_items as ai ON r.reship_id=ai.reship_id WHERE r.return_type='change' AND r.change_status='0' AND ai.return_type='change' AND r.is_check in('1','11') ".$sqlstr." group by r.changebranch_id,ai.product_id";
|
||
$reship_sql.="";
|
||
$reship = $db->select($reship_sql);
|
||
foreach ($reship as $rv ) {
|
||
if (isset($rs[$rv['product_id']][$rv['branch_id']])) {
|
||
$rs[$rv['product_id']][$rv['branch_id']] +=$rv['_num'];
|
||
}else{
|
||
$rs[$rv['product_id']][$rv['branch_id']] =$rv['_num'];
|
||
}
|
||
}
|
||
|
||
//转储预占
|
||
$stockdump_sql = "SELECT ai.product_id,d.from_branch_id as branch_id,sum(ai.num) as _num FROM sdb_console_stockdump as d LEFT JOIN sdb_console_stockdump_items as ai ON d.stockdump_id=ai.stockdump_id WHERE d.confirm_type='1' AND d.self_status='1' AND d.in_status='0'".$sqlstr." group by d.from_branch_id,ai.product_id";
|
||
|
||
$stockdump_list = $db->select($stockdump_sql);
|
||
|
||
foreach ($stockdump_list as $stockdump){
|
||
|
||
if (isset($rs[$stockdump['product_id']][$stockdump['branch_id']])) {
|
||
$rs[$stockdump['product_id']][$stockdump['branch_id']] +=$stockdump['_num'];
|
||
}else{
|
||
$rs[$stockdump['product_id']][$stockdump['branch_id']] =$stockdump['_num'];
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 唯品会出库预占(条件:出库单已审核、单据为新建状态)
|
||
*/
|
||
$product_bns = array();
|
||
$temp_where = '';
|
||
if($product_ids)
|
||
{
|
||
$pro_sql = "SELECT material_bn FROM sdb_material_basic_material WHERE bm_id IN(". $product_ids .")";
|
||
$productInfo = $db->select($pro_sql);
|
||
foreach ($productInfo as $key => $val)
|
||
{
|
||
$product_bns[] = $val['material_bn'];
|
||
}
|
||
|
||
if($product_bns)
|
||
{
|
||
$product_bns = implode("','",$product_bns);
|
||
$temp_where .=" AND b.bn in ('". $product_bns ."')";
|
||
}
|
||
}
|
||
|
||
$sql = "SELECT a.stockout_id, a.branch_id, b.stockout_item_id, b.num, b.bn FROM sdb_purchase_pick_stockout_bills AS a
|
||
LEFT JOIN sdb_purchase_pick_stockout_bill_items AS b ON a.stockout_id=b.stockout_id
|
||
WHERE a.status=1 AND a.confirm_status=2 ". $temp_where;
|
||
$dataList = $db->select($sql);
|
||
if($dataList)
|
||
{
|
||
foreach ($dataList as $key => $val)
|
||
{
|
||
$branch_id = $val['branch_id'];
|
||
$bn = $val['bn'];
|
||
|
||
//查询product_id
|
||
$pro_sql = "SELECT bm_id FROM sdb_material_basic_material WHERE material_bn='". $bn ."'";
|
||
$productInfo = $db->selectrow($pro_sql);
|
||
if(empty($productInfo))
|
||
{
|
||
continue;
|
||
}
|
||
|
||
$product_id = $productInfo['bm_id'];
|
||
|
||
if(isset($rs[$product_id][$val['branch_id']]))
|
||
{
|
||
$rs[$product_id][$branch_id] += $val['num'];
|
||
}
|
||
else
|
||
{
|
||
$rs[$product_id][$branch_id] = $val['num'];
|
||
}
|
||
}
|
||
}
|
||
|
||
//人工库存预占记录(状态:预占中)
|
||
$sql_af = "select branch_id,bm_id,freeze_num from sdb_material_basic_material_stock_artificial_freeze where status=1 ".$sqlstr_artificial_freeze;
|
||
$af_list = $db->select($sql_af);
|
||
if(!empty($af_list)){
|
||
foreach($af_list as $var_af){
|
||
$branch_id = $var_af['branch_id'];
|
||
$product_id = $var_af['bm_id'];
|
||
if(isset($rs[$product_id][$branch_id])){
|
||
$rs[$product_id][$branch_id] += $var_af['freeze_num'];
|
||
}else{
|
||
$rs[$product_id][$branch_id] = $var_af['freeze_num'];
|
||
}
|
||
}
|
||
}
|
||
|
||
//盘点差异单预占
|
||
$sql_af = "select i.branch_id,i.bm_id,i.freeze_num from sdb_console_difference m
|
||
left join sdb_console_difference_items_freeze i on(m.id=i.diff_id)
|
||
where m.status in('4','2') ".$sqlstr_artificial_freeze;
|
||
$af_list = $db->select($sql_af);
|
||
if(!empty($af_list)){
|
||
foreach($af_list as $var_af){
|
||
$branch_id = $var_af['branch_id'];
|
||
$product_id = $var_af['bm_id'];
|
||
if(isset($rs[$product_id][$branch_id])){
|
||
$rs[$product_id][$branch_id] += abs($var_af['freeze_num']);
|
||
}else{
|
||
$rs[$product_id][$branch_id] = abs($var_af['freeze_num']);
|
||
}
|
||
}
|
||
}
|
||
|
||
//加工单预占
|
||
$sql_af = "select m.branch_id,i.bm_id,i.number from sdb_console_material_package m
|
||
left join sdb_console_material_package_items_detail i on(m.id=i.mp_id)
|
||
where m.status in('2') ".$sqlstr_artificial_freeze;
|
||
$af_list = $db->select($sql_af);
|
||
if(!empty($af_list)){
|
||
foreach($af_list as $var_af){
|
||
$branch_id = $var_af['branch_id'];
|
||
$product_id = $var_af['bm_id'];
|
||
if(isset($rs[$product_id][$branch_id])){
|
||
$rs[$product_id][$branch_id] += abs($var_af['number']);
|
||
}else{
|
||
$rs[$product_id][$branch_id] = abs($var_af['number']);
|
||
}
|
||
}
|
||
}
|
||
return $rs;
|
||
}
|
||
|
||
|
||
/**
|
||
* 根据所有有差异货品
|
||
* */
|
||
public function get_all_diff()
|
||
{
|
||
$db = kernel::database();
|
||
$basicMaterialSelect = kernel::single('material_basic_select');
|
||
$basicMStockFreezeLib = kernel::single('material_basic_material_stock_freeze');
|
||
|
||
$count = $basicMaterialSelect->count(array());
|
||
|
||
$limit = 10000;
|
||
$page = 0;
|
||
$data = $diff = $product_bn=$total_freeze = array();
|
||
for($page;$page < ($count / $limit);$page++)
|
||
{
|
||
$data = $basicMaterialSelect->getlist_stock('bm_id, material_bn, store_freeze', array(), $page * $limit, $limit);
|
||
|
||
|
||
foreach($data as $product){
|
||
|
||
//根据基础物料ID获取对应的冻结库存
|
||
$product['store_freeze'] = $basicMStockFreezeLib->getMaterialStockFreeze($product['product_id']);
|
||
|
||
$product_ids[] = $product['product_id'];
|
||
$total_freeze[$product['product_id']] = $product['store_freeze'];
|
||
$product_bn[$product['product_id']] = $product['bn'];
|
||
}
|
||
|
||
$sale_freeze = 0;
|
||
$sale_freeze = $this->sale_freezeproduct($product_ids);
|
||
|
||
$salestock_freeze = $this->sale_freezebranchproduct($product_ids);
|
||
|
||
$outstock_freeze = $this->branch_freezeproduct($product_ids);
|
||
|
||
|
||
//当前仓库总库存
|
||
$local_branchfreeze = $this->get_branchproductFreeze($product_ids);
|
||
$branch_freeze = array();
|
||
//比较货品冻结
|
||
foreach ( $product_ids as $product_id ) {
|
||
$outstock = 0;
|
||
$branchstock = 0;
|
||
if ($outstock_freeze[$product_id]) {
|
||
foreach ( $outstock_freeze[$product_id] as $freeze ) {
|
||
$outstock+=$freeze;
|
||
|
||
$branchstock+=$freeze;
|
||
}
|
||
}
|
||
|
||
if ($salestock_freeze[$product_id]) {
|
||
foreach ($salestock_freeze[$product_id] as $salefreeze ) {
|
||
$branchstock+=$salefreeze;
|
||
}
|
||
}
|
||
|
||
$real_product_freeze = $sale_freeze[$product_id]+$outstock; //货品总冻结
|
||
|
||
$pro_total_freeze = $total_freeze[$product_id]/1;
|
||
$real_branch_freeze = $branchstock;
|
||
//real_product_freeze real_branch_freeze local_branch_freeze
|
||
$real_local_branchfreeze = $local_branchfreeze[$product_id] ? $local_branchfreeze[$product_id] :0;
|
||
|
||
|
||
if (($real_product_freeze!=$pro_total_freeze) || $real_local_branchfreeze!=$real_branch_freeze || $real_local_branchfreeze>$pro_total_freeze) {
|
||
$diff[$product_id] = array(
|
||
'bn'=>$product_bn[$product_id],
|
||
'local_product_store_freeze' =>$pro_total_freeze,
|
||
'real_product_freeze' =>$real_product_freeze,
|
||
'real_branch_freeze' =>$real_branch_freeze,
|
||
'local_branch_freeze' =>$local_branchfreeze[$product_id],
|
||
|
||
);
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
return $diff;
|
||
}
|
||
|
||
|
||
/**
|
||
* 仓库货品总冻结.
|
||
* @param
|
||
* @return
|
||
* @access public
|
||
* @author sunjing@shopex.cn
|
||
*/
|
||
function get_branchproductFreeze($product_ids=0)
|
||
{
|
||
$db = kernel::database();
|
||
$basicMStockFreezeLib = kernel::single('material_basic_material_stock_freeze');
|
||
|
||
$product_ids = (array)$product_ids;
|
||
if(is_array($product_ids)) $product_ids = implode(',',$product_ids);
|
||
$sql="SELECT product_id FROM sdb_ome_branch_product WHERE product_id in(".$product_ids.") group by product_id";
|
||
|
||
$branch_product = $db->select($sql);
|
||
$branch_freeze = array();
|
||
if ($branch_product) {
|
||
foreach ( $branch_product as $product ) {
|
||
|
||
//根据基础物料ID获取关联仓库的冻结数量之和
|
||
$product['store_freeze'] = $basicMStockFreezeLib->getBranchProductFreeze($product['product_id']);
|
||
|
||
$branch_freeze[$product['product_id']] = $product['store_freeze'];
|
||
}
|
||
return $branch_freeze;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
/**
|
||
* 修正冻结库存.
|
||
* @param
|
||
* @return
|
||
* @access public
|
||
* @author sunjing@shopex.cn
|
||
* redis库存高可用,废弃掉直接修改db库存、冻结的方法
|
||
*/
|
||
function fix_freeze_store($product_id)
|
||
{
|
||
return 'success';
|
||
return 'success';
|
||
return 'success';
|
||
|
||
$db = kernel::database();
|
||
$real_product_freeze = 0;
|
||
$shop_real_data = $this->sale_freezeproduct($product_id);
|
||
|
||
$shop_real_data = $shop_real_data[$product_id] ? $shop_real_data[$product_id] : '0';
|
||
|
||
$branch_freeze = $this->branch_freezeproduct($product_id);
|
||
|
||
$branch_freeze = $branch_freeze[$product_id] ? $branch_freeze[$product_id] : '0';
|
||
|
||
$sale_freeze = $this->sale_freezebranchproduct($product_id);
|
||
|
||
$sale_freeze = $sale_freeze[$product_id] ? $sale_freeze[$product_id] : '0';
|
||
|
||
$real_product_freeze = $shop_real_data;
|
||
$branch_profreeze = array();
|
||
|
||
foreach ( $sale_freeze as $sk=> $shopfree ) {
|
||
$branch_profreeze[$sk] = $shopfree;
|
||
|
||
}
|
||
|
||
foreach ($branch_freeze as $bk=> $brfree ) {
|
||
|
||
$real_product_freeze+=$brfree;
|
||
if (isset($branch_profreeze[$bk])) {
|
||
$branch_profreeze[$bk]+=$brfree;
|
||
}else{
|
||
$branch_profreeze[$bk] = $brfree;
|
||
}
|
||
|
||
}
|
||
|
||
$o2o_branch=$ome_branch = array();
|
||
|
||
foreach($branch_profreeze as $branch_id=>$bv){
|
||
$branchs = $db->selectrow("SELECT b_type FROM sdb_ome_branch WHERE branch_id=".$branch_id."");
|
||
if($branchs['b_type'] == 1){
|
||
$ome_branch[$branch_id] = $bv;
|
||
}else{
|
||
$o2o_branch[$branch_id] = $bv;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
$up_sql = "UPDATE sdb_ome_branch_product set store_freeze=0 WHERE product_id=".$product_id;
|
||
|
||
|
||
$db->exec($up_sql);
|
||
|
||
$o2o_sql = "UPDATE sdb_o2o_product_store set store_freeze=0 WHERE bm_id=".$product_id;
|
||
$db->exec($o2o_sql);
|
||
|
||
if ($ome_branch) {
|
||
|
||
foreach ($ome_branch as $bk=>$bran ) {
|
||
if($bran>0){
|
||
$up_sql = "UPDATE sdb_ome_branch_product set store_freeze=".$bran." WHERE branch_id=".$bk." AND product_id=".$product_id;
|
||
|
||
$db->exec($up_sql);
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
if ($o2o_branch){
|
||
foreach($o2o_branch as $ok=>$ov){
|
||
$up_sql = "UPDATE sdb_o2o_product_store set store_freeze=".$ov." WHERE branch_id=".$ok." AND bm_id=".$product_id;
|
||
|
||
$db->exec($up_sql);
|
||
}
|
||
}
|
||
|
||
if ($real_product_freeze>0)
|
||
{
|
||
$pro_sql = "UPDATE ".DB_PREFIX."material_basic_material_stock set store_freeze=".$real_product_freeze." WHERE bm_id=".$product_id;
|
||
|
||
$db->exec($pro_sql);
|
||
}
|
||
else
|
||
{
|
||
$pro_sql = "UPDATE ".DB_PREFIX."material_basic_material_stock set store_freeze=0 WHERE bm_id=".$product_id;
|
||
|
||
$db->exec($pro_sql);
|
||
}
|
||
|
||
return 'success';
|
||
}
|
||
}
|