|
@@ -4,6 +4,7 @@ namespace app\admin\controller;
|
|
|
|
|
|
use app\admin\model\OrderImportFromC as OIFCModel;
|
|
|
use Exception;
|
|
|
+use think\facade\Config;
|
|
|
use think\facade\Db;
|
|
|
use think\facade\Validate;
|
|
|
|
|
@@ -270,212 +271,23 @@ class OrderImport extends Base
|
|
|
|
|
|
if (empty($ids)) return error_show(1004, 'ids参数不允许为空');
|
|
|
|
|
|
+ $userinfo = GetUserInfo($this->post['token']);
|
|
|
+
|
|
|
$res = Db::name('order_import_from_c')
|
|
|
->whereIn('id', $ids)
|
|
|
->where(['is_del' => OIFCModel::$is_del_normal, 'status' => OIFCModel::$status_stock_not_enough])
|
|
|
- ->update(['status' => OIFCModel::$status_wait_relation, 'updatetime' => date('Y-m-d H:i:s')]);
|
|
|
+ ->update([
|
|
|
+ 'status' => OIFCModel::$status_wait_relation,
|
|
|
+ 'updatetime' => date('Y-m-d H:i:s'),
|
|
|
+ 'updateid'=>isset($user["data"]['id']) ? $userinfo["data"]['id'] : 0,
|
|
|
+ 'updater'=>isset($user["data"]['nickname']) ? $userinfo["data"]['nickname'] : '',
|
|
|
+ ]);
|
|
|
|
|
|
if ($res) return app_show(0, '批量关联库存成功');
|
|
|
else return error_show(1005, '批量关联库存失败');
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- //【脚本2】批量处理导入的数据
|
|
|
- public function analysisBatchDataBySystem2222()
|
|
|
- {
|
|
|
- //解析信息存到extend表,其中customer_code字段根据订单编号去customer_info查,其他根据商品编号查询
|
|
|
-
|
|
|
- Db::startTrans();
|
|
|
- try {
|
|
|
-
|
|
|
-
|
|
|
- $order_import_from_c_db = Db::name('order_import_from_c');
|
|
|
-
|
|
|
- $order_import_from_c_extend_db = Db::name('order_import_from_c_extend');
|
|
|
-// $customer_info_db = Db::name('customer_info')->field('companyNo')->where(['is_del' => 0]);
|
|
|
-
|
|
|
- $rs = $order_import_from_c_db
|
|
|
- ->where([
|
|
|
- 'is_del' => OIFCModel::$is_del_normal,
|
|
|
- 'status' => OIFCModel::$status_wait_validate
|
|
|
- ])->find();
|
|
|
-
|
|
|
- //加写锁
|
|
|
-
|
|
|
- //1.数据校验
|
|
|
- $val = Validate::rule([
|
|
|
- 'platform_code|平台订单号' => 'require|length:0,255',
|
|
|
- 'po_code|其他单号' => 'length:0,255',
|
|
|
- 'platform_time|平台下单时间' => 'require|date',
|
|
|
- 'sale_source|销售渠道' => 'require|length:0,255',
|
|
|
- 'plat_code|平台商品编号' => 'require|length:0,255',
|
|
|
- 'price|单价' => 'require|float',
|
|
|
- 'num|数量' => 'require|number',
|
|
|
- 'before_discount_all_price|优惠前总金额' => 'require|float',
|
|
|
- 'activity_name|优惠活动名称' => 'length:0,255',
|
|
|
- 'mode|收费模式' => 'require|length:0,255',
|
|
|
- 'order_remark|订单备注' => 'length:0,255',
|
|
|
- 'contactor|收货人' => 'require|length:0,255',
|
|
|
- 'mobile|联系电话' => 'require|length:0,20',
|
|
|
- 'addr|联系地址' => 'require|length:0,255',
|
|
|
- ]);
|
|
|
-
|
|
|
- if (!$val->check($rs)) {
|
|
|
- $order_import_from_c_db
|
|
|
- ->where('id', $rs['id'])
|
|
|
- ->update([
|
|
|
- 'updatetime' => date('Y-m-d H:i:s'),
|
|
|
- 'status' => OIFCModel::$status_wait_confirm,
|
|
|
- 'remark' => '数据格式不对,' . $val->getError()
|
|
|
- ]);
|
|
|
-
|
|
|
- //解除写锁
|
|
|
- Db::commit();
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- $extend_insert_data = [
|
|
|
- 'order_import_from_c_id' => $rs['id'],
|
|
|
- 'createrid' => 0,
|
|
|
- 'creater' => 'system',
|
|
|
- 'discount_reason' => $rs['activity_name']
|
|
|
- ];
|
|
|
- //查找extend的数据
|
|
|
-
|
|
|
- $good_platform_info = Db::name('good_platform')
|
|
|
- ->field('id,spuCode,platform_code,skuCode')
|
|
|
- ->where(['is_del' => 0])
|
|
|
- ->where('plat_code', $rs['plat_code'])
|
|
|
- ->find();
|
|
|
- if (!empty($good_platform_info)) {
|
|
|
- $extend_insert_data['spuCode'] = $good_platform_info['spuCode'];
|
|
|
- $extend_insert_data['platform_code'] = $good_platform_info['platform_code'];
|
|
|
- } else {
|
|
|
- $order_import_from_c_db
|
|
|
- ->where('id', $rs['id'])
|
|
|
- ->update([
|
|
|
- 'updatetime' => date('Y-m-d H:i:s'),
|
|
|
- 'status' => OIFCModel::$status_wait_confirm,
|
|
|
- 'remark' => '在商品平台表中查不到平台商品编号对应的spuCode'
|
|
|
- ]);
|
|
|
- //解除写锁
|
|
|
- Db::commit();
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- $good_info = Db::name('good')
|
|
|
- ->field('good_name,good_code,companyNo,supplierNo,is_stock,packing_fee,cert_fee,open_fee,cost_fee,mark_fee,demo_fee,cat_id')
|
|
|
- ->where(['is_del' => 0])
|
|
|
- ->where('spuCode', $extend_insert_data['spuCode'])
|
|
|
- ->find();
|
|
|
- if (!empty($good_info)) {
|
|
|
- $extend_insert_data['companyNo'] = $good_info['companyNo'];
|
|
|
- $extend_insert_data['supplierNo'] = $good_info['supplierNo'];
|
|
|
- $extend_insert_data['good_name'] = $good_info['good_name'];
|
|
|
- } else {
|
|
|
- $order_import_from_c_db
|
|
|
- ->where('id', $rs['id'])
|
|
|
- ->update([
|
|
|
- 'updatetime' => date('Y-m-d H:i:s'),
|
|
|
- 'status' => OIFCModel::$status_wait_confirm,
|
|
|
- 'remark' => '在上线商品表中查不到spuCode对应的商品信息'
|
|
|
- ]);
|
|
|
- //解除写锁
|
|
|
- Db::commit();
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- $order_import_from_c_extend_db->insertGetId($extend_insert_data);
|
|
|
-
|
|
|
- //判断是否库存品
|
|
|
- if ($good_info['is_stock'] == 1) {
|
|
|
- //库存品,查询可用库存数量
|
|
|
- $usable_stock = Db::name('good_stock')
|
|
|
- ->where('spuCode', $extend_insert_data['spuCode'])
|
|
|
- ->sum('usable_stock');
|
|
|
-
|
|
|
- if ($usable_stock < $rs['num']) {
|
|
|
- $order_import_from_c_db
|
|
|
- ->where('id', $rs['id'])
|
|
|
- ->update([
|
|
|
- 'updatetime' => date('Y-m-d H:i:s'),
|
|
|
- 'status' => OIFCModel::$status_wait_relation,
|
|
|
- 'remark' => '库存不足'
|
|
|
- ]);
|
|
|
-
|
|
|
- //解除写锁
|
|
|
- Db::commit();
|
|
|
- return false;
|
|
|
- } else {
|
|
|
- //扣减库存
|
|
|
-
|
|
|
-
|
|
|
- //录入成功
|
|
|
- $order_import_from_c_db
|
|
|
- ->where('id', $rs['id'])
|
|
|
- ->update([
|
|
|
- 'updatetime' => date('Y-m-d H:i:s'),
|
|
|
- 'status' => OIFCModel::$status_success,
|
|
|
- ]);
|
|
|
-
|
|
|
- $this->createSaleByImportSuccess($good_info, $rs, $extend_insert_data);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- //非库存品
|
|
|
-
|
|
|
- //录入成功
|
|
|
- $order_import_from_c_db
|
|
|
- ->where('id', $rs['id'])
|
|
|
- ->update([
|
|
|
- 'updatetime' => date('Y-m-d H:i:s'),
|
|
|
- 'status' => OIFCModel::$status_success,
|
|
|
- ]);
|
|
|
- $orderCode = $this->createSaleByImportSuccess($good_info, $rs, $extend_insert_data);
|
|
|
-
|
|
|
- //生成采购单
|
|
|
- $cgd = [
|
|
|
- "supplierNo" => $extend_insert_data['supplierNo'],
|
|
|
- "companyNo" => $extend_insert_data['companyNo'],
|
|
|
- "orderCode" => $orderCode,
|
|
|
- "spuCode" => $extend_insert_data['spuCode'],
|
|
|
- "skuCode" => $good_platform_info['skuCode'],
|
|
|
- "good_name" => $extend_insert_data['good_name'],
|
|
|
- "sale_price" => $rs['price'],
|
|
|
- "total_fee" => $rs['price'] * $rs['num'],
|
|
|
- "pakge_fee" => $good_info['packing_fee'],
|
|
|
- "cert_fee" => $good_info['cert_fee'],
|
|
|
- "open_fee" => $good_info['open_fee'],
|
|
|
- "cost_fee" => $good_info['cost_fee'],
|
|
|
- "mark_fee" => $good_info['mark_fee'],
|
|
|
- "demo_fee" => $good_info['demo_fee'],
|
|
|
- "good_num" => $rs['num'],
|
|
|
- "good_type" => 1,//商品类型 1正常2赠品3样品
|
|
|
- "order_type" => $good_info['is_stock'] == 1 ? 1 : 2,
|
|
|
- "createrid" => $rs['createrid'],
|
|
|
- "creater" => $rs['creater'],
|
|
|
- 'send_way' => 2
|
|
|
- ];
|
|
|
- $sale_controller = new Sale();
|
|
|
-
|
|
|
- $sale_controller->createCgd($cgd);
|
|
|
- }
|
|
|
-
|
|
|
- Db::commit();
|
|
|
-
|
|
|
- return true;
|
|
|
-
|
|
|
- } catch (\think\Exception $exception) {
|
|
|
- Db::rollback();
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
//【辅助1】获取线上商品详情
|
|
|
public function getOnlineGoodInfoByPlatcode()
|
|
|
{
|
|
@@ -509,7 +321,9 @@ class OrderImport extends Base
|
|
|
$spec = Db::name("good_spec")->where(["spuCode" => $good_platform['spuCode'], "is_del" => 0])->select()->toArray();
|
|
|
$supplier = Db::name("supplier")->where(["code" => $data['supplierNo']])->find();
|
|
|
$data['supplierName'] = isset($supplier['name']) ? $supplier['name'] : "";
|
|
|
- $data['noble_name'] = isset($data['noble_metal']) && $data['noble_metal'] != 0 ? $this->noble[$data['noble_metal']] : "";
|
|
|
+
|
|
|
+ $noble = Config::get('noble');
|
|
|
+ $data['noble_name'] = isset($data['noble_metal']) && $data['noble_metal'] != 0 ? $noble[$data['noble_metal']] : "";
|
|
|
$company = Db::name("business")->where(["companyNo" => $data['companyNo']])->find();
|
|
|
$data['company'] = isset($company['company']) ? $company['company'] : "";
|
|
|
if ($data['brand_id'] != 0) {
|