mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-22 12:45:38 +08:00
1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数 3. 【优化】盘点申请单确认 4. 【修复】采购退货单模拟出库失败问题 5. 【新增】订单金额客户实付与结算金额 6. 【优化】仓库发货统计报表物料名称显示 7. 【优化】自有仓储虚拟发货逻辑 8. 【修复】基础物料分类管理问题
This commit is contained in:
@@ -197,6 +197,13 @@ class ome_order_edit_gift{
|
||||
$tmp_obj[$k]['quantity'] = intval($num[$n]);
|
||||
$tmp_obj[$k]['pmt_price'] = 0.00;
|
||||
$tmp_obj[$k]['delete'] = 'false';
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $objInfo['divide_order_fee'] * intval($num[$n]) / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['settlement_amount'] = sprintf('%.2f', $objInfo['settlement_amount'] * intval($num[$n]) / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['actually_amount'] = sprintf('%.2f', $objInfo['actually_amount'] * intval($num[$n]) / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['platform_pay_amount'] = sprintf('%.2f', $tmp_obj[$k]['divide_order_fee'] - $tmp_obj[$k]['actually_amount']);
|
||||
$tmp_obj[$k]['platform_amount'] = sprintf('%.2f', $tmp_obj[$k]['settlement_amount'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
$tmp_obj[$k]['part_mjz_discount'] = sprintf('%.2f', $tmp_obj[$k]['sale_price'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
$tmp_obj[$k]['oid'] = $objInfo['oid'];
|
||||
|
||||
} else {
|
||||
// 不存在 则进行删除
|
||||
|
||||
@@ -182,6 +182,13 @@ class ome_order_edit_giftpackage{
|
||||
$tmp_obj[$k]['delete'] = 'false';
|
||||
$tmp_obj[$k]['obj_type'] = 'giftpackage';
|
||||
$tmp_obj[$k]['goods_id'] = $objInfo['goods_id'];
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $objInfo['divide_order_fee'] * $num[$n] / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['settlement_amount'] = sprintf('%.2f', $objInfo['settlement_amount'] * $num[$n] / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['actually_amount'] = sprintf('%.2f', $objInfo['actually_amount'] * $num[$n] / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['platform_pay_amount'] = sprintf('%.2f', $tmp_obj[$k]['divide_order_fee'] - $tmp_obj[$k]['actually_amount']);
|
||||
$tmp_obj[$k]['platform_amount'] = sprintf('%.2f', $tmp_obj[$k]['settlement_amount'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
$tmp_obj[$k]['part_mjz_discount'] = sprintf('%.2f', $tmp_obj[$k]['sale_price'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
$tmp_obj[$k]['oid'] = $objInfo['oid'];
|
||||
|
||||
}else {
|
||||
if ($objInfo['delete'] == 'false'){
|
||||
|
||||
@@ -80,19 +80,37 @@ class ome_order_edit_goods{
|
||||
if (!$objInfo) continue;
|
||||
|
||||
if (isset($num[$n])){
|
||||
// 检查是否有oid限制
|
||||
$hasOidLimit = !empty($objInfo['oid']) && $objInfo['oid'] != '-1';
|
||||
|
||||
if ($data['do_action'] != 2){
|
||||
if ($num[$n] < 1 || $num[$n] > 499999){
|
||||
trigger_error('数量必须大于1且小于499999', E_USER_ERROR);
|
||||
}
|
||||
|
||||
// oid限制:验证数量只能改小
|
||||
if ($hasOidLimit && $num[$n] > $objInfo['quantity']) {
|
||||
trigger_error('oid限制:数量不能大于原数量', E_USER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
//优惠金额变化,那订单和商品就标记为变化
|
||||
if ($objInfo['pmt_price'] != $obj_pmt_price[$n]){
|
||||
$is_order_change = true;
|
||||
$is_goods_modify = true;
|
||||
// oid限制:禁止修改单价和优惠价格
|
||||
if ($hasOidLimit) {
|
||||
// 使用原单价和原优惠价格
|
||||
$tmp_price = $objInfo['price'];
|
||||
$pmt_price = $objInfo['pmt_price'];
|
||||
} else {
|
||||
$tmp_price = $price[$n]==0?0:$price[$n];
|
||||
$pmt_price = $obj_pmt_price[$n]==0?0:$obj_pmt_price[$n];
|
||||
|
||||
//优惠金额变化,那订单和商品就标记为变化
|
||||
if ($objInfo['pmt_price'] != $obj_pmt_price[$n]){
|
||||
$is_order_change = true;
|
||||
$is_goods_modify = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($objInfo['quantity'] != $num[$n] || $objInfo['price'] != $price[$n]){
|
||||
if ($objInfo['quantity'] != $num[$n] || ($objInfo['price'] != $price[$n] && !$hasOidLimit)){
|
||||
$t_n = $num[$n] - $objInfo['quantity'];
|
||||
if ($objInfo['delete'] == 'true'){
|
||||
|
||||
@@ -158,8 +176,6 @@ class ome_order_edit_goods{
|
||||
$is_goods_modify = true;
|
||||
}
|
||||
|
||||
$tmp_price = $price[$n]==0?0:$price[$n];
|
||||
$pmt_price = $obj_pmt_price[$n]==0?0:$obj_pmt_price[$n];
|
||||
$tmp_item = array (
|
||||
'item_id' => $itemInfo['item_id'],
|
||||
'product_id' => $itemInfo['product_id'],
|
||||
@@ -169,10 +185,26 @@ class ome_order_edit_goods{
|
||||
'delete' => 'false',
|
||||
);
|
||||
$tmp_item['amount'] = $tmp_item['quantity'] * $tmp_item['price'];
|
||||
$tmp_item['sale_price'] = $tmp_item['amount'] - $pmt_price;
|
||||
|
||||
// oid限制:按比例计算销售价和实付
|
||||
if ($hasOidLimit && $objInfo['quantity'] > 0) {
|
||||
$ratio = $num[$n] / $objInfo['quantity'];
|
||||
$originalSalePrice = $objInfo['sale_price'];
|
||||
$originalDivideOrderFee = $objInfo['divide_order_fee'];
|
||||
|
||||
$tmp_item['sale_price'] = sprintf('%.2f', $originalSalePrice * $ratio);
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $originalDivideOrderFee * $ratio);
|
||||
|
||||
// 重新计算商品优惠 = 单价 * 数量 - 销售价
|
||||
$pmt_price = sprintf('%.2f', $tmp_item['amount'] - floatval($tmp_item['sale_price']));
|
||||
$tmp_item['pmt_price'] = $pmt_price;
|
||||
} else {
|
||||
$tmp_item['sale_price'] = $tmp_item['amount'] - $pmt_price;
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $objInfo['divide_order_fee'] * $num[$n] / $objInfo['quantity']);
|
||||
}
|
||||
|
||||
$total += $tmp_item['amount'];
|
||||
$total_pmt_goods += $pmt_price;
|
||||
$total_pmt_goods += floatval($pmt_price);
|
||||
|
||||
$tmp_obj[$k]['amount'] = $tmp_item['amount'];
|
||||
$tmp_obj[$k]['pmt_price'] = $pmt_price;
|
||||
@@ -182,6 +214,13 @@ class ome_order_edit_goods{
|
||||
$tmp_obj[$k]['delete'] = 'false';
|
||||
$tmp_obj[$k]['obj_type'] = 'goods';
|
||||
$tmp_obj[$k]['goods_id'] = $objInfo['goods_id'];
|
||||
$tmp_obj[$k]['settlement_amount'] = sprintf('%.2f', $objInfo['settlement_amount'] * $num[$n] / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['actually_amount'] = sprintf('%.2f', $objInfo['actually_amount'] * $num[$n] / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['platform_pay_amount'] = sprintf('%.2f', $tmp_obj[$k]['divide_order_fee'] - $tmp_obj[$k]['actually_amount']);
|
||||
$tmp_obj[$k]['platform_amount'] = sprintf('%.2f', $tmp_obj[$k]['settlement_amount'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
// 均摊优惠 = 销售价 - 实付
|
||||
$tmp_obj[$k]['part_mjz_discount'] = sprintf('%.2f', floatval($tmp_obj[$k]['sale_price']) - floatval($tmp_obj[$k]['divide_order_fee']));
|
||||
$tmp_obj[$k]['oid'] = $objInfo['oid'];
|
||||
|
||||
}else {
|
||||
if ($objInfo['delete'] == 'false'){
|
||||
|
||||
@@ -189,6 +189,13 @@ class ome_order_edit_lkb{
|
||||
}
|
||||
}
|
||||
$tmp_obj[$k]['sale_price'] = $tmp_obj[$k]['amount'] - $obj_pmt_price[$k];
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $obj_['divide_order_fee'] * intval($onum[$k]) / $obj_['quantity']);
|
||||
$tmp_obj[$k]['settlement_amount'] = sprintf('%.2f', $obj_['settlement_amount'] * intval($onum[$k]) / $obj_['quantity']);
|
||||
$tmp_obj[$k]['actually_amount'] = sprintf('%.2f', $obj_['actually_amount'] * intval($onum[$k]) / $obj_['quantity']);
|
||||
$tmp_obj[$k]['platform_pay_amount'] = sprintf('%.2f', $tmp_obj[$k]['divide_order_fee'] - $tmp_obj[$k]['actually_amount']);
|
||||
$tmp_obj[$k]['platform_amount'] = sprintf('%.2f', $tmp_obj[$k]['settlement_amount'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
$tmp_obj[$k]['part_mjz_discount'] = sprintf('%.2f', $tmp_obj[$k]['sale_price'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
$tmp_obj[$k]['oid'] = $obj_['oid'];
|
||||
if ($obj_['sale_price'] != $tmp_obj[$k]['sale_price']){
|
||||
$is_order_change = true;
|
||||
$is_goods_modify = true;
|
||||
|
||||
@@ -182,6 +182,13 @@ class ome_order_edit_luckybag
|
||||
}
|
||||
|
||||
$tmp_obj[$k]['sale_price'] = $tmp_obj[$k]['amount'] - $obj_pmt_price[$k];
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $obj_['divide_order_fee'] * intval($onum[$k]) / $obj_['quantity']);
|
||||
$tmp_obj[$k]['settlement_amount'] = sprintf('%.2f', $obj_['settlement_amount'] * intval($onum[$k]) / $obj_['quantity']);
|
||||
$tmp_obj[$k]['actually_amount'] = sprintf('%.2f', $obj_['actually_amount'] * intval($onum[$k]) / $obj_['quantity']);
|
||||
$tmp_obj[$k]['platform_pay_amount'] = sprintf('%.2f', $tmp_obj[$k]['divide_order_fee'] - $tmp_obj[$k]['actually_amount']);
|
||||
$tmp_obj[$k]['platform_amount'] = sprintf('%.2f', $tmp_obj[$k]['settlement_amount'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
$tmp_obj[$k]['part_mjz_discount'] = sprintf('%.2f', $tmp_obj[$k]['sale_price'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
$tmp_obj[$k]['oid'] = $obj_['oid'];
|
||||
if ($obj_['sale_price'] != $tmp_obj[$k]['sale_price']){
|
||||
$is_order_change = true;
|
||||
$is_goods_modify = true;
|
||||
|
||||
@@ -80,7 +80,21 @@ class ome_order_edit_pkg{
|
||||
|
||||
if (!$obj_) continue;
|
||||
|
||||
if ($obj_['quantity'] != $onum[$k] || $obj_['price'] != $oprice[$k] || $obj_['pmt_price'] != $obj_pmt_price[$k]){
|
||||
// 检查是否有oid限制
|
||||
$hasOidLimit = !empty($obj_['oid']) && $obj_['oid'] != '-1';
|
||||
|
||||
// oid限制:验证数量只能改小
|
||||
if ($hasOidLimit && isset($onum[$k]) && $onum[$k] > $obj_['quantity']) {
|
||||
trigger_error('oid限制:数量不能大于原数量', E_USER_ERROR);
|
||||
}
|
||||
|
||||
// oid限制:禁止修改单价和优惠价格
|
||||
if ($hasOidLimit) {
|
||||
$oprice[$k] = $obj_['price'];
|
||||
$obj_pmt_price[$k] = $obj_['pmt_price'];
|
||||
}
|
||||
|
||||
if ($obj_['quantity'] != $onum[$k] || ($obj_['price'] != $oprice[$k] && !$hasOidLimit) || ($obj_['pmt_price'] != $obj_pmt_price[$k] && !$hasOidLimit)){
|
||||
$is_order_change = true;
|
||||
$is_goods_modify = true;
|
||||
}
|
||||
@@ -199,8 +213,32 @@ class ome_order_edit_pkg{
|
||||
|
||||
}
|
||||
|
||||
//$tmp_obj[$k]['sale_price'] = $tmp_obj[$k]['amount'] - $obj_pmt_price[$k] - $tmp_item_pmt_price;
|
||||
$tmp_obj[$k]['sale_price'] = $tmp_obj[$k]['amount'] - $obj_pmt_price[$k];
|
||||
// oid限制:按比例计算销售价和实付
|
||||
if ($hasOidLimit && $obj_['quantity'] > 0) {
|
||||
$ratio = intval($onum[$k]) / $obj_['quantity'];
|
||||
$originalSalePrice = $obj_['sale_price'];
|
||||
$originalDivideOrderFee = $obj_['divide_order_fee'];
|
||||
|
||||
$tmp_obj[$k]['sale_price'] = sprintf('%.2f', $originalSalePrice * $ratio);
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $originalDivideOrderFee * $ratio);
|
||||
|
||||
// 重新计算商品优惠 = 单价 * 数量 - 销售价
|
||||
$obj_pmt_price[$k] = sprintf('%.2f', $tmp_obj[$k]['amount'] - floatval($tmp_obj[$k]['sale_price']));
|
||||
$total_pmt_goods -= $obj_pmt_price[$k]; // 先减去旧的
|
||||
$total_pmt_goods += floatval($obj_pmt_price[$k]); // 再加上新的
|
||||
} else {
|
||||
//$tmp_obj[$k]['sale_price'] = $tmp_obj[$k]['amount'] - $obj_pmt_price[$k] - $tmp_item_pmt_price;
|
||||
$tmp_obj[$k]['sale_price'] = $tmp_obj[$k]['amount'] - $obj_pmt_price[$k];
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $obj_['divide_order_fee'] * $onum[$k] / $obj_['quantity']);
|
||||
}
|
||||
|
||||
$tmp_obj[$k]['settlement_amount'] = sprintf('%.2f', $obj_['settlement_amount'] * $onum[$k] / $obj_['quantity']);
|
||||
$tmp_obj[$k]['actually_amount'] = sprintf('%.2f', $obj_['actually_amount'] * $onum[$k] / $obj_['quantity']);
|
||||
$tmp_obj[$k]['platform_pay_amount'] = sprintf('%.2f', $tmp_obj[$k]['divide_order_fee'] - $tmp_obj[$k]['actually_amount']);
|
||||
$tmp_obj[$k]['platform_amount'] = sprintf('%.2f', $tmp_obj[$k]['settlement_amount'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
// 均摊优惠 = 销售价 - 实付
|
||||
$tmp_obj[$k]['part_mjz_discount'] = sprintf('%.2f', floatval($tmp_obj[$k]['sale_price']) - floatval($tmp_obj[$k]['divide_order_fee']));
|
||||
$tmp_obj[$k]['oid'] = $obj_['oid'];
|
||||
if ($obj_['sale_price'] != $tmp_obj[$k]['sale_price']){
|
||||
$is_order_change = true;
|
||||
$is_goods_modify = true;
|
||||
|
||||
@@ -84,7 +84,21 @@ class ome_order_edit_pko{
|
||||
if(!$itemInfo){
|
||||
continue;
|
||||
}
|
||||
if ($objInfo['quantity'] != $num[$k] || $objInfo['price'] != $price[$k] || $objInfo['pmt_price'] != $obj_pmt_price[$k]){
|
||||
// 检查是否有oid限制
|
||||
$hasOidLimit = !empty($objInfo['oid']) && $objInfo['oid'] != '-1';
|
||||
|
||||
// oid限制:验证数量只能改小
|
||||
if ($hasOidLimit && isset($num[$k]) && $num[$k] > $objInfo['quantity']) {
|
||||
trigger_error('oid限制:数量不能大于原数量', E_USER_ERROR);
|
||||
}
|
||||
|
||||
// oid限制:禁止修改单价和优惠价格
|
||||
if ($hasOidLimit) {
|
||||
$price[$k] = $objInfo['price'];
|
||||
$obj_pmt_price[$k] = $objInfo['pmt_price'];
|
||||
}
|
||||
|
||||
if ($objInfo['quantity'] != $num[$k] || ($objInfo['price'] != $price[$k] && !$hasOidLimit) || ($objInfo['pmt_price'] != $obj_pmt_price[$k] && !$hasOidLimit)){
|
||||
$is_order_change = true;
|
||||
$is_goods_modify = true;
|
||||
}
|
||||
@@ -96,14 +110,40 @@ class ome_order_edit_pko{
|
||||
$is_order_change = true;
|
||||
$is_goods_modify = true;
|
||||
}
|
||||
$tmp_obj[$k]['obj_id'] = $k;
|
||||
$tmp_obj[$k]['goods_id'] = $objInfo['goods_id'];
|
||||
$tmp_obj[$k]['amount'] = $tmp_amount;
|
||||
$tmp_obj[$k]['quantity'] = intval($num[$k]);
|
||||
$tmp_obj[$k]['price'] = $price[$k];
|
||||
$tmp_obj[$k]['amount'] = $tmp_obj[$k]['quantity'] * $tmp_obj[$k]['price'];
|
||||
$tmp_obj[$k]['delete'] = 'false';
|
||||
$tmp_obj[$k]['obj_id'] = $k;
|
||||
$tmp_obj[$k]['goods_id'] = $objInfo['goods_id'];
|
||||
$tmp_obj[$k]['amount'] = $tmp_amount;
|
||||
$tmp_obj[$k]['quantity'] = intval($num[$k]);
|
||||
$tmp_obj[$k]['price'] = $price[$k];
|
||||
$tmp_obj[$k]['amount'] = $tmp_obj[$k]['quantity'] * $tmp_obj[$k]['price'];
|
||||
$tmp_obj[$k]['delete'] = 'false';
|
||||
|
||||
// oid限制:按比例计算销售价和实付
|
||||
if ($hasOidLimit && $objInfo['quantity'] > 0) {
|
||||
$ratio = intval($num[$k]) / $objInfo['quantity'];
|
||||
$originalSalePrice = $objInfo['sale_price'];
|
||||
$originalDivideOrderFee = $objInfo['divide_order_fee'];
|
||||
|
||||
$tmp_obj[$k]['sale_price'] = sprintf('%.2f', $originalSalePrice * $ratio);
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $originalDivideOrderFee * $ratio);
|
||||
|
||||
// 重新计算商品优惠 = 单价 * 数量 - 销售价
|
||||
$obj_pmt_price[$k] = sprintf('%.2f', $tmp_obj[$k]['amount'] - floatval($tmp_obj[$k]['sale_price']));
|
||||
$total_pmt_goods -= $obj_pmt_price[$k]; // 先减去旧的
|
||||
$total_pmt_goods += floatval($obj_pmt_price[$k]); // 再加上新的
|
||||
} else {
|
||||
$tmp_obj[$k]['sale_price'] = $tmp_obj[$k]['amount'] - $obj_pmt_price[$k];
|
||||
$tmp_obj[$k]['divide_order_fee'] = sprintf('%.2f', $objInfo['divide_order_fee'] * intval($num[$k]) / $objInfo['quantity']);
|
||||
}
|
||||
|
||||
$tmp_obj[$k]['pmt_price'] = $obj_pmt_price[$k];
|
||||
$tmp_obj[$k]['settlement_amount'] = sprintf('%.2f', $objInfo['settlement_amount'] * intval($num[$k]) / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['actually_amount'] = sprintf('%.2f', $objInfo['actually_amount'] * intval($num[$k]) / $objInfo['quantity']);
|
||||
$tmp_obj[$k]['platform_pay_amount'] = sprintf('%.2f', $tmp_obj[$k]['divide_order_fee'] - $tmp_obj[$k]['actually_amount']);
|
||||
$tmp_obj[$k]['platform_amount'] = sprintf('%.2f', $tmp_obj[$k]['settlement_amount'] - $tmp_obj[$k]['divide_order_fee']);
|
||||
// 均摊优惠 = 销售价 - 实付
|
||||
$tmp_obj[$k]['part_mjz_discount'] = sprintf('%.2f', floatval($tmp_obj[$k]['sale_price']) - floatval($tmp_obj[$k]['divide_order_fee']));
|
||||
$tmp_obj[$k]['oid'] = $objInfo['oid'];
|
||||
$obj_num_change = intval($num[$k])-$objInfo['quantity']; //填写的数量 - 数据库数量
|
||||
$total_change_number = abs($obj_num_change);
|
||||
$tmp_item_sale_price = $tmp_item_pmt_price = $tmp_item_amount = 0;
|
||||
|
||||
Reference in New Issue
Block a user