0 ? intval($params['page_no']) : 1; $limit = (intval($params['page_size']) > 1000 || intval($params['page_size']) <= 0) ? 100 : intval($params['page_size']); //filter $filter['shop_bn'] = $params['shop_bn']; if($params['order_bn']){ $filter['order_bn'] = trim($params['order_bn']); $filter['order_bn'] = str_replace(array('"', "'"), '', $filter['order_bn']); } if($start_time && $end_time) { $filter['sale_time'] = array($start_time, $end_time); } if($start_up_time && $end_up_time) { $filter['up_time'] = array($start_up_time, $end_up_time); } if(empty($filter['sale_time']) && empty($filter['up_time'])) { $sub_msg = '请输入查询时间'; return false; } //page if ($page_no == 1) { $offset = 0; } else { $offset = ($page_no - 1) * $limit; } $original_sales_data = kernel::single('openapi_data_original_sales')->getList($filter, $offset, $limit); $sale_arr = array(); foreach ($original_sales_data['lists'] as $k => $sale) { $sales_arr[$k]['shop_code'] = $this->charFilter($sale['shop_bn']); $sales_arr[$k]['shop_name'] = $this->charFilter($sale['shop_name']); $sales_arr[$k]['order_no'] = $this->charFilter($sale['order_bn']); $sales_arr[$k]['order_type'] = $this->charFilter($sale['order_type']); $sales_arr[$k]['member_name'] = $this->charFilter($sale['member_name']); $sales_arr[$k]['sale_no'] = $this->charFilter($sale['sale_bn']); $sales_arr[$k]['pay_method'] = $this->charFilter($sale['payment']); $sales_arr[$k]['sale_time'] = date('Y-m-d H:i:s', $sale['sale_time']); //订单下单订单日期为空,则输出空值 $sales_arr[$k]['order_create_time'] = (empty($sale['order_create_time']) ? '' : date('Y-m-d H:i:s', $sale['order_create_time'])); $sales_arr[$k]['pay_time'] = date('Y-m-d H:i:s', $sale['paytime']); $sales_arr[$k]['ship_time'] = date('Y-m-d H:i:s', $sale['ship_time']); $sales_arr[$k]['order_check_op'] = $this->charFilter($sale['order_check_name']); $sales_arr[$k]['order_check_time'] = date('Y-m-d H:i:s', $sale['order_check_time']); $sales_arr[$k]['goods_amount'] = $sale['total_amount']; $sales_arr[$k]['freight_amount'] = $sale['cost_freight']; $sales_arr[$k]['additional_amount'] = $sale['additional_costs']; $sales_arr[$k]['has_tax'] = $sale['is_tax'] == 'false' ? '否' : '是'; $sales_arr[$k]['pmt_amount'] = $sale['discount']; $sales_arr[$k]['sale_amount'] = $sale['sale_amount']; $sales_arr[$k]['logi_name'] = $this->charFilter($sale['logi_name']); $sales_arr[$k]['logi_code'] = $this->charFilter($sale['logi_code']); $sales_arr[$k]['logi_no'] = $this->charFilter($sale['logi_no']); $sales_arr[$k]['branch_name'] = $this->charFilter($sale['branch_name']); $sales_arr[$k]['branch_bn'] = $this->charFilter($sale['branch_bn']); $sales_arr[$k]['delivery_no'] = $this->charFilter($sale['delivery_bn']); $sales_arr[$k]['consignee'] = $this->charFilter($sale['ship_name']); $sales_arr[$k]['consignee_area'] = $sale['ship_area']; $sales_arr[$k]['consignee_addr'] = $this->charFilter($sale['ship_addr']); $sales_arr[$k]['consignee_zip'] = $this->charFilter($sale['ship_zip']); $sales_arr[$k]['consignee_tel'] = $this->charFilter($sale['ship_tel']); $sales_arr[$k]['consignee_mobile'] = $this->charFilter($sale['ship_mobile']); $sales_arr[$k]['consignee_email'] = $this->charFilter($sale['ship_email']); //delivery_cost_actual,order_memo $sales_arr[$k]['weight'] = $sale['weight']; $sales_arr[$k]['delivery_cost_actual'] = $sale['delivery_cost_actual']; $sales_arr[$k]['order_memo'] = $this->charFilter($sale['order_memo']); $sales_arr[$k]['tax_title'] = $this->charFilter($sale['tax_title']); //relate_order_bn $sales_arr[$k]['relate_order_bn'] = $sale['relate_order_bn']; $sales_arr[$k]['settlement_amount'] = $sale['settlement_amount'];//结算金额 $sales_arr[$k]['platform_amount'] = $sale['platform_amount'];//平台承担金额 $sales_arr[$k]['order_source'] = $sale['order_source']; // selling agent info $sales_arr[$k]['agent_info'] = $sale['agent_info']; foreach ($sale['sale_items'] as $key => $sale_item) { $sales_arr[$k]['sale_items'][$key]['item_id'] = $sale_item['item_id']; $sales_arr[$k]['sale_items'][$key]['bn'] = $sale_item['bn']; $sales_arr[$k]['sale_items'][$key]['name'] = $this->charFilter($sale_item['name']); $sales_arr[$k]['sale_items'][$key]['spec_name'] = $this->charFilter($sale_item['spec_name']); $sales_arr[$k]['sale_items'][$key]['barcode'] = $sale_item['barcode']; $sales_arr[$k]['sale_items'][$key]['price'] = $sale_item['price']; $sales_arr[$k]['sale_items'][$key]['nums'] = $sale_item['nums']; $sales_arr[$k]['sale_items'][$key]['pmt_price'] = $sale_item['pmt_price']; $sales_arr[$k]['sale_items'][$key]['sale_price'] = $sale_item['sale_price']; $sales_arr[$k]['sale_items'][$key]['apportion_pmt'] = $sale_item['apportion_pmt']; $sales_arr[$k]['sale_items'][$key]['sales_amount'] = $sale_item['sales_amount']; $sales_arr[$k]['sale_items'][$key]['cost'] = $sale_item['cost']; $sales_arr[$k]['sale_items'][$key]['cost_amount'] = $sale_item['cost_amount']; $sales_arr[$k]['sale_items'][$key]['order_item_id'] = $sale_item['order_item_id']; $sales_arr[$k]['sale_items'][$key]['item_type'] = $this->charFilter($sale_item['item_type']); //关联销售物料 $sales_arr[$k]['sale_items'][$key]['type_name'] = $this->charFilter($sale_item['type_name']); $sales_arr[$k]['sale_items'][$key]['sales_material_bn'] = $this->charFilter($sale_item['sales_material_bn']); $sales_arr[$k]['sale_items'][$key]['sales_material_name'] = $this->charFilter($sale_item['sales_material_name']); //商品采购成本价 $sales_arr[$k]['sale_items'][$key]['cost_amount'] = $sale_item['cost_amount']; //基础物料价格 $sales_arr[$k]['sale_items'][$key]['retail_price'] = $sale_item['retail_price']; //other $sales_arr[$k]['sale_items'][$key]['brand_code'] = $sale_item['brand_code']; //物料品牌 $sales_arr[$k]['sale_items'][$key]['cat_name'] = $this->charFilter($sale_item['cat_name']); //物料分类 $sales_arr[$k]['sale_items'][$key]['goods_type'] = $this->charFilter($sale_item['goods_type']); //物料属性 $sales_arr[$k]['sale_items'][$key]['shop_goods_id'] = $sale_item['shop_goods_id'];//平台商品ID $sales_arr[$k]['sale_items'][$key]['shop_product_id'] = $sale_item['shop_product_id'];//平台SkuID $sales_arr[$k]['sale_items'][$key]['settlement_amount'] = $sale_item['settlement_amount'];//结算金额 $sales_arr[$k]['sale_items'][$key]['platform_amount'] = $sale_item['platform_amount'];//平台承担金额 // 如果 $i_v 是 null,则返回空字符串;否则返回原始值 $sales_arr[$k]['sale_items'][$key] = array_map(function($i_v) {return is_null($i_v) ? '' : $i_v;}, $sales_arr[$k]['sale_items'][$key]); } // 如果 $v 是 null,则返回空字符串;否则返回原始值 $sales_arr[$k] = array_map(function($v) {return is_null($v) ? '' : $v;}, $sales_arr[$k]); } unset($original_sales_data['lists']); $original_sales_data['lists'] = $sales_arr; return $original_sales_data; } /** * 添加 * @param mixed $params 参数 * @param mixed $code code * @param mixed $sub_msg sub_msg * @return mixed 返回值 */ public function add($params, &$code, &$sub_msg) { //== } /** * 获取SalesAmount * @param mixed $params 参数 * @param mixed $code code * @param mixed $sub_msg sub_msg * @return mixed 返回结果 */ public function getSalesAmount($params, &$code, &$sub_msg) { $start_time = strtotime($params['start_time']); $end_time = strtotime($params['end_time']); $page_no = intval($params['page_no']) > 0 ? intval($params['page_no']) : 1; $limit = (intval($params['page_size']) > 100 || intval($params['page_size']) <= 0) ? 100 : intval($params['page_size']); if ($page_no == 1) { $offset = 0; } else { $offset = ($page_no - 1) * $limit; } $shop_bn = array(); if ($params['shop_bn']) { $all_shop_bn = explode('#', $params['shop_bn']); foreach ($all_shop_bn as $v) { if (trim($v)) { $shop_bn[] = trim($v); } } } $original_sales_data = kernel::single('openapi_data_original_sales')->SalesAmount($start_time, $end_time, $offset, $limit, $shop_bn); return $original_sales_data; } /** * 销售发货明细 * * @return Array * @author CP * @version 4.3.9 2021-08-14T10:39:02+08:00 **/ public function getDeliveryList($params, &$code, $sub_msg) { set_time_limit(0); ini_set('memory_limit', '512M'); $deliveryStartTime = strtotime($params['start_time']); $deliveryEndTime = strtotime($params['end_time']); $pageNo = intval($params['page_no']) > 0 ? intval($params['page_no']) : 1; $pageSize = (intval($params['page_size']) > 1000 || intval($params['page_size']) <= 0) ? 100 : intval($params['page_size']); $filter = [ 'delivery_time|bthan' => $deliveryStartTime, 'delivery_time|lthan' => $deliveryEndTime, ]; if ($params['delivery_bn']) { $filter['delivery_bn'] = $params['delivery_bn']; } if ($params['branch_bn']) { $branchMdl = app::get('ome')->model('branch'); $branch = $branchMdl->db_dump(['branch_bn' => $params['branch_bn'], 'check_permission' => 'false'], 'branch_id'); $filter['branch_id'] = (int) $branch['branch_id']; } if ($params['shop_bn']) { $shopMdl = app::get('ome')->model('shop'); $shop = $shopMdl->db_dump(['shop_bn' => $params['shop_bn']], 'shop_id'); $filter['shop_id'] = (string) $shop['shop_id']; } if ($params['order_bn']) { $orderMdl = app::get('ome')->model('orders'); $orderList = $orderMdl->getList('order_id', ['order_bn' => explode(',', $params['order_bn'])]); $order_id = $orderList ? array_column($orderList, 'order_id') : [0]; $deliveryOrderMdl = app::get('ome')->model('delivery_order'); $deliveryOrderList = $deliveryOrderMdl->getList('delivery_id', ['order_id' => $order_id]); $filter['delivery_id'] = $deliveryOrderList ? array_column($deliveryOrderList, 'delivery_id') : [0]; } $data = kernel::single('openapi_data_original_sales')->getDeliveryList($filter, ($pageNo - 1) * $pageSize, $pageSize); foreach ($data['lists'] as $k => $v) { $data['lists'][$k]['ship_name'] = $this->charFilter($v['ship_name']); $data['lists'][$k]['ship_mobile'] = $this->charFilter($v['ship_mobile']); $data['lists'][$k]['ship_email'] = $this->charFilter($v['ship_email']); $data['lists'][$k]['ship_addr'] = $this->charFilter($v['ship_addr']); } return $data; } /** * 获取JIT销售单 * * @return array **/ public function getGxList($params, &$code, &$sub_msg) { $start_modified = $params['start_time']; $end_modified = $params['end_time']; $page_no = intval($params['page_no']) > 0 ? intval($params['page_no']) : 1; $limit = (intval($params['page_size']) > 1000 || intval($params['page_size']) <= 0) ? 100 : intval($params['page_size']); $filter = []; $filter['up_time|betweenstr'] = [$start_modified, $end_modified]; $offset = ($page_no - 1) * $limit; $originalData = kernel::single('openapi_data_original_sales')->getGxList($filter, $offset, $limit); $data = [ 'count' => $originalData['count'], ]; foreach ($originalData['lists'] as $k => $v) { $lists = [ 'sale_bn' => $v['sale_bn'], 'bill_bn' => $v['bill_bn'], 'bill_type' => $v['bill_type'], 'shop_bn' => $v['shop_bn'], 'shop_name' => $v['shop_name'], 'sale_time' => date('Y-m-d H:i:s',$v['sale_time']), 'ship_time' => date('Y-m-d H:i:s',$v['ship_time']), 'original_bn' => $v['original_bn'], 'branch_bn' => $v['branch_bn'], 'branch_name' => $v['branch_name'], 'logi_name' => $v['logi_name'], 'logi_code' => $v['logi_code'], 'logi_no' => $v['logi_no'], 'order_bn' => $v['order_bn'], 'at_time' => $v['at_time'], 'up_time' => $v['up_time'], 'total_amount' => $v['total_amount'], 'settlement_amount' => $v['settlement_amount'], 'total_sale_price' => $v['total_sale_price'], ]; $items = []; foreach ($v['items'] as $item) { $items[] = [ 'item_id' => $item['id'], 'material_bn' => $item['material_bn'], 'barcode' => $item['barcode'], 'material_name' => $this->charFilter($item['material_name']), 'nums' => $item['nums'], 'retail_price' => $item['retail_price'], 'price' => $item['price'], 'amount' => $item['amount'], 'settlement_amount' => $item['settlement_amount'], 'sale_price' => $item['sale_price'], ]; } $lists['items'] = $items; $data['lists'][] = $lists; } return $data; } }