/*
* 查询来货编号有连号且在未开箱状态
*
* $trackingNumber String 来货编号
* $warehouseId Integer 仓库
*/
public function whetherConsecutiveNumbers($trackingNumber, $warehouseId) {
$rpTrackingNumber = $trackingNumber;
$data = array();
do {
$rpIds = $this->getByleftJoin(array('rp_tracking_number' => $trackingNumber, 'warehouse_id' => $warehouseId), '*');
if ($rpIds && $rpIds[0]['rp_status'] == 0 && !$rpIds[0]['receiving_code']) {
$trackingNumber = substr($rpIds[0]['rp_tracking_number'], 0, -5) . str_pad((substr($rpIds[0]['rp_tracking_number'], -5) - 1), 5, '0', STR_PAD_LEFT);
$data[] = $rpIds[0]['rp_tracking_number'];
} else {
break;
}
} while ($rpIds);
do {
$rpIds = $this->getByleftJoin(array('rp_tracking_number' => $rpTrackingNumber, 'warehouse_id' => $warehouseId), '*');
if ($rpIds && $rpIds[0]['rp_status'] == 0 && !$rpIds[0]['receiving_code']) {
$rpTrackingNumber = substr($rpIds[0]['rp_tracking_number'], 0, -5) . str_pad((substr($rpIds[0]['rp_tracking_number'], -5) + 1), 5, '0', STR_PAD_LEFT);
$data[] = $rpIds[0]['rp_tracking_number'];
} else {
break;
}
} while ($rpIds);
$return['data'] = array_unique($data);
sort($return['data']);
if (count($return['data']) > 1) {
return $return;
}
}
substr — 返回字符串的子串
str_pad — 使用另一个字符串填充字符串为指定长度