Files
OMS/app/openapi/lib/data/original/iostock.php
2026-01-04 17:22:44 +08:00

167 lines
7.3 KiB
PHP

<?php
/**
* Copyright 2026 ShopeX (https://www.shopex.cn)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class openapi_data_original_iostock{
/**
* 获取List
* @param mixed $start_time start_time
* @param mixed $end_time end_time
* @param mixed $iostock_bn iostock_bn
* @param mixed $original_bn original_bn
* @param mixed $branch_bn branch_bn
* @param mixed $bn bn
* @param mixed $type type
* @param mixed $offset offset
* @param mixed $limit limit
* @return mixed 返回结果
*/
public function getList($start_time,$end_time,$iostock_bn='',$original_bn='',$branch_bn='',$bn='',$type='',$offset=0,$limit=100){
if(empty($start_time) || empty($end_time)){
return false;
}
$basicMaterialObj = app::get('material')->model('basic_material');
$basicMaterialBarcode = kernel::single('material_basic_material_barcode');#基础物料条形码
$shopObj = app::get('ome')->model('shop');
$branchObj = app::get('ome')->model('branch');
$iostocktypeObj = app::get('ome')->model('iostock_type');
$memberObj = app::get('ome')->model('members');
$opObj = app::get('desktop')->model('users');
$countSql = "select count(iostock_id) as _count from sdb_ome_iostock where ";
$where = "create_time >=".$start_time." and create_time <".$end_time;
if($iostock_bn != ''){
$where .= " AND iostock_bn = '".$iostock_bn."'";
}
if($original_bn != ''){
$where .= " AND original_bn = '".$original_bn."'";
}
if($branch_bn != ''){
$_branch = $branchObj->getlist('branch_id',array('branch_bn'=>$branch_bn),0,1);
$where .= " AND branch_id = '".$_branch[0]['branch_id']."'";
}
if($bn != ''){
$where .= " AND bn = '".$bn."'";
}
if($type != ''){
// $_type = $iostocktypeObj->getlist('type_id',array('type_name'=>$type),0,1);
// $where .= " AND type_id = '".$_type[0]['type_id']."'";
$where .= " AND type_id = '" . $type . "'";
}
$countList = kernel::database()->selectrow($countSql.$where);
if(intval($countList['_count']) >0){
$iostocktypeInfos = array();
$iostocktype_arr = $iostocktypeObj->getList('type_id,type_name', array(), 0, -1);
foreach ($iostocktype_arr as $k => $iostocktype){
$iostocktypeInfos[$iostocktype['type_id']] = $iostocktype['type_name'];
}
$branchInfos = array();
$branch_arr = $branchObj->getList('branch_id,branch_bn,name', array(), 0, -1);
foreach ($branch_arr as $k => $branch){
$branchInfos[$branch['branch_id']] = array('branch_bn'=>$branch['branch_bn'],'name'=>$branch['name']);
}
$listSql = "select * from sdb_ome_iostock where ";
$lists = kernel::database()->select($listSql.$where." order by create_time asc limit ".$offset.",".$limit."");
$arr_original_ids = array();
$arr_original_bn = array();//原发货单号
$arr_appropriation_type_ids = array("4","40");
foreach (kernel::single("ome_iostock")->get_iostock_types() as $typeKey => $typeValue) {
if (isset($typeValue['is_new'])) {
$arr_appropriation_type_ids[] = $typeKey;
}
}
foreach ($lists as $var_list){
if(in_array($var_list["type_id"],$arr_appropriation_type_ids)){
$arr_original_ids[] = $var_list["original_id"];
}
if($var_list["type_id"] == 1){
$arr_original_bn[] = $var_list['original_bn'];
}
}
if(!empty($arr_original_ids)){
$taoguaniostockorder_iso_obj = app::get('taoguaniostockorder')->model('iso');
$taoguaniostockorder_infos = $taoguaniostockorder_iso_obj->getList("iso_id,appropriation_no,name,arrival_no",array('iso_id|in'=>$arr_original_ids));
$rl_original_id_appropriation_no = array();
foreach ($taoguaniostockorder_infos as $var_taoguaniostockorder_info){
$rl_original_id_appropriation_no[$var_taoguaniostockorder_info["iso_id"]] = $var_taoguaniostockorder_info;
}
}
//获取采购单的退货单号特殊处理方式
$originalBnNums = array();
if($arr_original_bn){
$ios_sql = "select it.bn,it.nums,i.original_bn,i.iso_id,i.arrival_no,i.iso_bn,it.normal_num
from sdb_taoguaniostockorder_iso_items it
left join sdb_taoguaniostockorder_iso i on it.iso_id = i.iso_id
where i.type_id = 1
";
$ios_sql = $ios_sql." and i.original_bn in ('". implode("','", array_unique($arr_original_bn)) ."')";
$iso_lists = kernel::database()->select($ios_sql);
if($iso_lists){
foreach($iso_lists as $k => $val){
$original_bn_nums = md5($val['original_bn'].'_'.$val['bn'].'_'.$val['normal_num']);
$originalBnNums[$original_bn_nums] = $val;
}
}
}
foreach ($lists as &$v) {
$v['branch_bn'] = $branchInfos[$v['branch_id']]['branch_bn'];
$v['branch_name'] = $branchInfos[$v['branch_id']]['name'];
$_product = $basicMaterialObj->dump(array('material_bn' => $v['bn']), 'bm_id, material_name');
#查询关联的条形码
$_product['barcode'] = $basicMaterialBarcode->getBarcodeById($_product['bm_id']);
$v['barcode'] = $_product['barcode'];
$v['name'] = $_product['material_name'];
$v['type_name'] = $iostocktypeInfos[$v['type_id']];
if (in_array($v["type_id"], $arr_appropriation_type_ids)) {
$v['original_name'] = (string)$rl_original_id_appropriation_no[$v["original_id"]]['name'];
if ($v['type_id'] == '4' || $v['type_id'] == '40') {
$v["appropriation_no"] = $rl_original_id_appropriation_no[$v["original_id"]]['appropriation_no'];
}
}
$ios_key = md5($v['original_bn'].'_'.$v['bn'].'_'.$v['nums']);
$v['arrival_no'] = isset($originalBnNums[$ios_key]['arrival_no']) ? $originalBnNums[$ios_key]['arrival_no'] : '';
}
return array(
'lists' => $lists,
'count' => $countList['_count'],
);
}else{
return array(
'lists' => array(),
'count' => 0,
);
}
}
}