mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-22 04:35:38 +08:00
1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数 3. 【优化】盘点申请单确认 4. 【修复】采购退货单模拟出库失败问题 5. 【新增】订单金额客户实付与结算金额 6. 【优化】仓库发货统计报表物料名称显示 7. 【优化】自有仓储虚拟发货逻辑 8. 【修复】基础物料分类管理问题
This commit is contained in:
@@ -32,17 +32,19 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<{foreach from=$conf.objs item=obj}>
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" >
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" <{if !empty($obj.oid) && $obj.oid != '-1'}>data-oid="<{$obj.oid}>"<{/if}>>
|
||||
<td class="obj_bn <{$obj.obj_type}>class">
|
||||
<span class="number"><{$obj.bn}></span>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" /></td>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" />
|
||||
<{if !empty($obj.oid) && $obj.oid != '-1'}><input type="hidden" name="giftpackage[oid][<{$obj.obj_id}>]" value="<{$obj.oid}>" /><{/if}></td>
|
||||
<td class="obj_name"><{$obj.name}><input name="giftpackage_ids[]" id="giftpackage_ids_<{$obj.obj_id}>" type="text" value="<{$obj.goods_id}>" style="display:none;" /></td>
|
||||
<td class="obj_num"><input type="hidden" value="<{$obj.obj_id}>" name="giftpackage[obj][<{$obj.obj_id}>][]" />
|
||||
<input atype="num" aid="<{$obj.obj_id}>" name="giftpackage[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" vtype="required&&unsignedint" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalgiftpackage(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_price"><input name="giftpackage[price][<{$obj.obj_id}>]" type="text" size="8" value="<{$obj.price}>" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalgiftpackage(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" value="<{$obj.pmt_price|default:0}>" class="giftpackage_pmt_price" name="giftpackage[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalgiftpackage(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<input atype="num" aid="<{$obj.obj_id}>" name="giftpackage[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" vtype="required&&unsignedint" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>data-original-quantity="<{$obj.quantity}>"<{/if}> onchange="changetotalgiftpackage(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_price"><input name="giftpackage[price][<{$obj.obj_id}>]" type="text" size="8" value="<{$obj.price}>" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotalgiftpackage(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" value="<{$obj.pmt_price|default:0}>" class="giftpackage_pmt_price" name="giftpackage[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotalgiftpackage(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_total"><input type="text" class="giftpackagetotal" style="display:none" id="giftpackagetotal_<{$obj.obj_id}>" size="2" value="0" <{if $obj.delete == 'true'}>disabled="true"<{/if}> /><input type="text" size="5" id="giftpackagesalepr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> giftpackagesaleprice<{/if}>" value="<{$obj.sale_price}>">
|
||||
<input type="hidden" size="5" id="giftpackagepmtpr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> giftpackagepmtprice<{/if}>" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="giftpackagepartmjz_<{$obj.obj_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
</td>
|
||||
<td class="item_op" objid="<{$obj.obj_id}>">
|
||||
<{if $obj.delete == 'false'}>
|
||||
@@ -90,6 +92,7 @@
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" value="<{$obj.pmt_price|default:0}>" class="giftpackage_pmt_price" name="giftpackage[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalgiftpackage(this);total();"<{/if}> /></td>
|
||||
<td class="obj_total"><input type="text" class="giftpackagetotal" style="display:none" id="giftpackagetotal_<{$obj.obj_id}>" size="2" value="0" <{if $obj.delete == 'true'}>disabled="true"<{/if}> /><input type="text" size="5" id="giftpackagesalepr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> giftpackagesaleprice<{/if}>" value="<{$obj.sale_price}>">
|
||||
<input type="hidden" size="5" id="giftpackagepmtpr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> giftpackagepmtprice<{/if}>" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="giftpackagepartmjz_<{$obj.obj_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
</td>
|
||||
<td class="item_op" objid="<{$obj.obj_id}>">
|
||||
<{if empty($obj.make_nums)}>
|
||||
@@ -565,4 +568,4 @@ function split_changetotalgiftpackage(e){
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@@ -41,20 +41,23 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<{foreach from=$conf.objs item=obj}>
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" >
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" <{if !empty($obj.oid) && $obj.oid != '-1'}>data-oid="<{$obj.oid}>"<{/if}>>
|
||||
<td class="obj_bn <{$obj.obj_type}>class">
|
||||
<span class="number"><{$obj.bn}></span>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" /></td>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" />
|
||||
<{if !empty($obj.oid) && $obj.oid != '-1'}><input type="hidden" name="goods[oid][<{$obj.obj_id}>]" value="<{$obj.oid}>" /><{/if}></td>
|
||||
<td class="obj_name"><{$obj.name}><input name="goods_ids[]" id="goods_ids_<{$obj.obj_id}>" type="text" value="<{$obj.goods_id}>" style="display:none;" /></td>
|
||||
<!--<td class="item_addon"><{$item.addon}></td> -->
|
||||
<td class="obj_num"><input type="hidden" value="<{$obj.obj_id}>" name="goods[obj][<{$obj.obj_id}>][]" />
|
||||
<input atype="num" aid="<{$obj.obj_id}>" name="goods[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" vtype="required&&unsignedint" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalgoods(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_price"><input name="goods[price][<{$obj.obj_id}>]" type="text" size="8" value="<{$obj.price}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalgoods(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<input atype="num" aid="<{$obj.obj_id}>" name="goods[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" vtype="required&&unsignedint" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>data-original-quantity="<{$obj.quantity}>"<{/if}> onchange="changetotalgoods(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_price"><input name="goods[price][<{$obj.obj_id}>]" type="text" size="8" value="<{$obj.price}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotalgoods(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" value="<{$obj.pmt_price|default:0}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" class="goods_pmt_price" name="goods[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalgoods(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" value="<{$obj.pmt_price|default:0}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" class="goods_pmt_price" name="goods[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotalgoods(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
|
||||
<td class="obj_total"><input type="text" class="goodstotal" style="display:none" id="goodstotal_<{$obj.obj_id}>" size="2" value="0" <{if $obj.delete == 'true'}>disabled="true"<{/if}> /><input type="text" size="5" id="goodssalepr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> goodssaleprice<{/if}>" value="<{$obj.sale_price}>">
|
||||
<input type="hidden" size="5" id="goodspmtpr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> goodspmtprice<{/if}>" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="goodspartmjz_<{$obj.obj_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
<input type="hidden" id="goodsdivideorderfee_<{$obj.obj_id}>" value="<{$obj.divide_order_fee|default:0}>" />
|
||||
</td>
|
||||
|
||||
<td class="item_op" objid="<{$obj.obj_id}>">
|
||||
@@ -93,14 +96,15 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<{foreach from=$conf.objs item=obj}>
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" >
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" <{if !empty($obj.oid) && $obj.oid != '-1'}>data-oid="<{$obj.oid}>"<{/if}>>
|
||||
<td class="obj_bn <{$obj.obj_type}>class">
|
||||
<span class="number"><{$obj.bn}></span>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" /></td>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" />
|
||||
<{if !empty($obj.oid) && $obj.oid != '-1'}><input type="hidden" name="goods[oid][<{$obj.obj_id}>]" value="<{$obj.oid}>" /><{/if}></td>
|
||||
<td class="obj_name"><{$obj.name}><input name="goods_ids[]" id="goods_ids_<{$obj.obj_id}>" type="text" value="<{$obj.goods_id}>" style="display:none;" /></td>
|
||||
<!-- <td class="item_addon"><{$obj.addon}></td> -->
|
||||
|
||||
<td class="obj_num"><input type="hidden" value="<{$obj.obj_id}>" name="goods[obj][<{$obj.obj_id}>][]" /><input atype="num" aid="<{$obj.obj_id}>" name="goods[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{else}>readonly="readonly" style="color:#666;"<{/if}> /><input type="hidden" value="<{$obj.quantity}>" id="old_goods_nums_<{$obj.obj_id}>" /></td>
|
||||
<td class="obj_num"><input type="hidden" value="<{$obj.obj_id}>" name="goods[obj][<{$obj.obj_id}>][]" /><input atype="num" aid="<{$obj.obj_id}>" name="goods[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{else}>readonly="readonly" style="color:#666;"<{/if}> <{if !empty($obj.oid) && $obj.oid != '-1'}>data-original-quantity="<{$obj.quantity}>"<{/if}> /><input type="hidden" value="<{$obj.quantity}>" id="old_goods_nums_<{$obj.obj_id}>" /></td>
|
||||
|
||||
<td class="obj_buy_nums">
|
||||
<{if $obj.left_nums <= 0}>
|
||||
@@ -111,12 +115,14 @@
|
||||
<{if $obj.make_nums}><br />(<font color="#f00;">已发货:<{$obj.make_nums}></font>)<input type="hidden" value="<{$obj.make_nums}>" id="split_send_<{$obj.obj_id}>" /><{/if}>
|
||||
</td>
|
||||
|
||||
<td class="obj_price"><input name="goods[price][<{$obj.obj_id}>]" type="text" size="8" value="<{$obj.price}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalgoods(this);total();"<{/if}> /></td>
|
||||
<td class="obj_price"><input name="goods[price][<{$obj.obj_id}>]" type="text" size="8" value="<{$obj.price}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0 || (!empty($obj.oid) && $obj.oid != '-1')}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalgoods(this);total();"<{/if}> /></td>
|
||||
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" class="goods_pmt_price" name="goods[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalgoods(this);total();"<{/if}> /></td>
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" class="goods_pmt_price" name="goods[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0 || (!empty($obj.oid) && $obj.oid != '-1')}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalgoods(this);total();"<{/if}> /></td>
|
||||
|
||||
<td class="obj_total"><input type="text" class="goodstotal" style="display:none" id="goodstotal_<{$obj.obj_id}>" size="2" value="0" <{if $obj.delete == 'true'}>disabled="true"<{/if}> /><input type="text" size="5" id="goodssalepr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> goodssaleprice<{/if}>" value="<{$obj.sale_price}>">
|
||||
<input type="hidden" size="5" id="goodspmtpr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> goodspmtprice<{/if}>" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="goodspartmjz_<{$obj.obj_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
<input type="hidden" id="goodsdivideorderfee_<{$obj.obj_id}>" value="<{$obj.divide_order_fee|default:0}>" />
|
||||
</td>
|
||||
|
||||
<td class="item_op" objid="<{$obj.obj_id}>">
|
||||
@@ -244,6 +250,39 @@ function edit_checked(obj_id,$obj_bn){
|
||||
function changetotalgoods(e){
|
||||
var id = e.get('aid'),l=0,_ca = e.getNext('.error');
|
||||
if(e.disable) return;
|
||||
|
||||
// 检查是否有oid限制
|
||||
var tr = e.getParent('tr');
|
||||
var hasOidLimit = tr && tr.get('data-oid') && tr.get('data-oid') != '-1';
|
||||
var originalQuantity = null;
|
||||
var originalSalePrice = null;
|
||||
var originalDivideOrderFee = null;
|
||||
var originalPmtPrice = null;
|
||||
|
||||
if(hasOidLimit) {
|
||||
var numInput = $('num_'+id);
|
||||
if(numInput && numInput.get('data-original-quantity')) {
|
||||
originalQuantity = parseFloat(numInput.get('data-original-quantity'));
|
||||
}
|
||||
if($('goodssalepr_'+id)) {
|
||||
originalSalePrice = parseFloat($('goodssalepr_'+id).get('data-original-sale-price') || $('goodssalepr_'+id).value);
|
||||
if(!$('goodssalepr_'+id).get('data-original-sale-price')) {
|
||||
$('goodssalepr_'+id).set('data-original-sale-price', originalSalePrice);
|
||||
}
|
||||
}
|
||||
// 直接读取obj层的divide_order_fee
|
||||
if($('goodsdivideorderfee_'+id)) {
|
||||
originalDivideOrderFee = parseFloat($('goodsdivideorderfee_'+id).value || 0);
|
||||
}
|
||||
// 获取原始的商品优惠价格
|
||||
if($('pmt_'+id)) {
|
||||
originalPmtPrice = parseFloat($('pmt_'+id).get('data-original-pmt-price') || $('pmt_'+id).value || 0);
|
||||
if(!$('pmt_'+id).get('data-original-pmt-price')) {
|
||||
$('pmt_'+id).set('data-original-pmt-price', originalPmtPrice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (/^\d+(\.\d+)?$/.test(e.value)){
|
||||
if(e.get('atype') == 'num'){
|
||||
if (parseInt(e.value) <= 0){
|
||||
@@ -252,7 +291,44 @@ function changetotalgoods(e){
|
||||
e.set('value', '0');
|
||||
}
|
||||
return;
|
||||
}else{
|
||||
}
|
||||
|
||||
// oid限制:验证数量只能改小
|
||||
if(hasOidLimit && originalQuantity !== null) {
|
||||
var newQuantity = parseFloat(e.value);
|
||||
if(newQuantity > originalQuantity) {
|
||||
if (!_ca){
|
||||
new Element('span',{'class':'error caution notice-inline',html:'数量不能大于原数量 '+originalQuantity}).injectAfter(e);
|
||||
}
|
||||
e.set('value', originalQuantity);
|
||||
return;
|
||||
} else {
|
||||
if (_ca) _ca.remove();
|
||||
}
|
||||
|
||||
// 按比例计算销售价和实付
|
||||
if(originalSalePrice !== null && originalQuantity > 0) {
|
||||
var ratio = newQuantity / originalQuantity;
|
||||
var newSalePrice = (originalSalePrice * ratio).toFixed(2);
|
||||
$('goodssalepr_'+id).set('value', newSalePrice);
|
||||
|
||||
if(originalDivideOrderFee !== null) {
|
||||
var newDivideOrderFee = (originalDivideOrderFee * ratio).toFixed(2);
|
||||
// newPmtPrice 按比例计算,和 newSalePrice 一样的计算方式
|
||||
var newPmtPrice = (originalPmtPrice * ratio).toFixed(2);
|
||||
$('pmt_'+id).set('value', newPmtPrice);
|
||||
|
||||
// 计算并更新part_mjz_discount = sale_price - divide_order_fee
|
||||
var newPartMjzDiscount = (parseFloat(newSalePrice) - parseFloat(newDivideOrderFee)).toFixed(2);
|
||||
if ($('goodspartmjz_'+id)) {
|
||||
$('goodspartmjz_'+id).set('value', newPartMjzDiscount);
|
||||
}
|
||||
}
|
||||
|
||||
$('goodstotal_'+id).value = (parseFloat($('num_'+id).value) * parseFloat($('pr_'+id).value)).toFixed(3);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (_ca) _ca.remove();
|
||||
}
|
||||
|
||||
@@ -291,6 +367,15 @@ function changetotalgoods(e){
|
||||
}
|
||||
|
||||
}else if (e.get('atype') == 'price'){
|
||||
// oid限制:单价不可修改
|
||||
if(hasOidLimit) {
|
||||
var originalPrice = parseFloat($('pr_'+id).get('data-original-price') || $('pr_'+id).value);
|
||||
if(!$('pr_'+id).get('data-original-price')) {
|
||||
$('pr_'+id).set('data-original-price', originalPrice);
|
||||
}
|
||||
e.set('value', originalPrice);
|
||||
return;
|
||||
}
|
||||
|
||||
if (parseInt(e.value) < 0){
|
||||
if (!_ca){
|
||||
@@ -339,6 +424,15 @@ function changetotalgoods(e){
|
||||
$('goodstotal_'+oid).value = parseFloat(goodstotalsub).toFixed(3);
|
||||
}
|
||||
}else if (e.get('atype') == 'pmt_price'){
|
||||
// oid限制:优惠价格不可修改
|
||||
if(hasOidLimit) {
|
||||
var originalPmtPrice = parseFloat($('pmt_'+id).get('data-original-pmt-price') || $('pmt_'+id).value);
|
||||
if(!$('pmt_'+id).get('data-original-pmt-price')) {
|
||||
$('pmt_'+id).set('data-original-pmt-price', originalPmtPrice);
|
||||
}
|
||||
e.set('value', originalPmtPrice);
|
||||
return;
|
||||
}
|
||||
|
||||
if (parseInt(e.value) < 0){
|
||||
if (!_ca){
|
||||
@@ -413,6 +507,32 @@ $('goods_list').getElements("input[atype]").each(function(e){
|
||||
changetotalgoods(e);
|
||||
});
|
||||
|
||||
// 初始化oid限制的原始值
|
||||
$('goods_list').getElements('tr[data-oid]').each(function(tr){
|
||||
var oid = tr.get('data-oid');
|
||||
if(oid && oid != '-1') {
|
||||
var aid = tr.get('aid');
|
||||
var numInput = $('num_'+aid);
|
||||
var priceInput = $('pr_'+aid);
|
||||
var pmtInput = $('pmt_'+aid);
|
||||
var salePriceInput = $('goodssalepr_'+aid);
|
||||
|
||||
if(numInput && !numInput.get('data-original-quantity')) {
|
||||
numInput.set('data-original-quantity', numInput.value);
|
||||
}
|
||||
if(priceInput && !priceInput.get('data-original-price')) {
|
||||
priceInput.set('data-original-price', priceInput.value);
|
||||
}
|
||||
if(pmtInput && !pmtInput.get('data-original-pmt-price')) {
|
||||
pmtInput.set('data-original-pmt-price', pmtInput.value || 0);
|
||||
}
|
||||
if(salePriceInput && !salePriceInput.get('data-original-sale-price')) {
|
||||
salePriceInput.set('data-original-sale-price', salePriceInput.value);
|
||||
}
|
||||
// 直接读取obj层的divide_order_fee,不需要计算
|
||||
}
|
||||
});
|
||||
|
||||
function total_goods(){
|
||||
var total = 0,amount = 0;
|
||||
$('goods_list').getElements("input.goodstotal").each(function(item,k){
|
||||
|
||||
@@ -40,20 +40,21 @@
|
||||
<{assign var='lkb_del' value="false"}>
|
||||
<{/if}>
|
||||
<{/foreach}>
|
||||
<tr class="bindtitle" lkb-type="lkb" g-id="<{$obj.goods_id}>" lkb-id="<{$obj.goods_id}>" <{if $lkb_del=='true'}>style="background-color: #D8D8D8;" lkb-del='b'<{else}> lkb-del="a"<{/if}>>
|
||||
<td class="goods_bn"><{$obj.bn}></td>
|
||||
<tr class="bindtitle" lkb-type="lkb" g-id="<{$obj.goods_id}>" lkb-id="<{$obj.goods_id}>" <{if $lkb_del=='true'}>style="background-color: #D8D8D8;" lkb-del='b'<{else}> lkb-del="a"<{/if}> <{if !empty($obj.oid) && $obj.oid != '-1'}>data-oid="<{$obj.oid}>"<{/if}>>
|
||||
<td class="goods_bn"><{$obj.bn}><{if !empty($obj.oid) && $obj.oid != '-1'}><input type="hidden" name="lkb[oid][<{$obj.obj_id}>]" value="<{$obj.oid}>" /><{/if}></td>
|
||||
<td class="goods_name"><{$obj.name}></td>
|
||||
<td class="goods_num">
|
||||
<input type="text" id="lkbnum_<{$obj.goods_id}>" lkb-id="<{$obj.goods_id}>" aid="<{$obj.goods_id}>" vtype="required&&unsignedint" atype="num_obj" value="<{$obj.quantity}>" name="lkb[num][<{$obj.obj_id}>]" size="4" <{if $lkb_del == 'true'}>disabled="true"<{/if}> onchange="changetotallkb(this);total();" />
|
||||
<input type="text" id="lkbnum_<{$obj.goods_id}>" lkb-id="<{$obj.goods_id}>" aid="<{$obj.goods_id}>" vtype="required&&unsignedint" atype="num_obj" value="<{$obj.quantity}>" name="lkb[num][<{$obj.obj_id}>]" size="4" <{if $lkb_del == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>data-original-quantity="<{$obj.quantity}>"<{/if}> onchange="changetotallkb(this);total();" />
|
||||
</td>
|
||||
<td class="goods_price"><span id="lkbpr_<{$obj.goods_id}>"><{$obj.price}></span><input type="hidden" name="lkb[price][<{$obj.obj_id}>]" value="<{$obj.price}>"/></td>
|
||||
<td class="goods_num">
|
||||
<input type="text" id="lkbpmtpr_<{$obj.goods_id}>" lkb-id="" aid="<{$obj.goods_id}>" atype="pmt_price_obj" value="<{$obj.pmt_price|default:0}>" vtype="unsigned" class="goods_pmt_price" name="lkb[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $lkb_del == 'true'}>disabled="true"<{/if}> onchange="changetotallkb(this);total();" />
|
||||
<input type="text" id="lkbpmtpr_<{$obj.goods_id}>" lkb-id="" aid="<{$obj.goods_id}>" atype="pmt_price_obj" value="<{$obj.pmt_price|default:0}>" vtype="unsigned" class="goods_pmt_price" name="lkb[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $lkb_del == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotallkb(this);total();" />
|
||||
</td>
|
||||
<td class="goods_num">
|
||||
<input type="text" class="lkbtotal" style="display:none" id="lkbtotal_<{$obj.goods_id}>" size="2" value="0" <{if $lkb_del == 'true'}>disabled="true"<{/if}> />
|
||||
<input type="text" size="5" id="lkbsalepr_<{$obj.goods_id}>" class="none_input lkbsaleprice" readonly="readonly" value="<{$obj.sale_price}>" <{if $lkb_del == 'true'}>disabled="true"<{/if}> >
|
||||
<input type="hidden" size="5" id="lkbpmtorderpr_<{$obj.goods_id}>" class="none_input lkbpmtorderprice" readonly="readonly" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="lkbpartmjz_<{$obj.goods_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
</td>
|
||||
<td class="goods_op">
|
||||
<{if empty($item.make_nums)}>
|
||||
@@ -128,6 +129,7 @@
|
||||
<input type="text" class="lkbtotal" style="display:none" id="lkbtotal_<{$obj.goods_id}>" size="2" value="0" <{if $item.delete == 'true'}>disabled="true"<{/if}> />
|
||||
<input type="text" size="5" id="lkbsalepr_<{$obj.goods_id}>" class="none_input lkbsaleprice" readonly="readonly" value="<{$obj.sale_price}>" <{if $item.delete == 'true'}>disabled="true"<{/if}> >
|
||||
<input type="hidden" size="5" id="lkbpmtorderpr_<{$obj.goods_id}>" class="none_input lkbpmtorderprice" readonly="readonly" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="lkbpartmjz_<{$obj.goods_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
</td>
|
||||
|
||||
<td class="goods_op">
|
||||
|
||||
@@ -43,18 +43,20 @@
|
||||
<{assign var='pkg_del' value="false"}>
|
||||
<{/if}>
|
||||
<{/foreach}>
|
||||
<tr class="bindtitle" pkg-type="pkg" g-id="<{$obj.goods_id}>" pkg-id="<{$obj.goods_id}>" <{if $pkg_del=='true'}>style="background-color: #D8D8D8;" pkg-del='b'<{else}> pkg-del="a"<{/if}>>
|
||||
<td class="goods_bn"><{$obj.bn}></td>
|
||||
<tr class="bindtitle" pkg-type="pkg" g-id="<{$obj.goods_id}>" pkg-id="<{$obj.goods_id}>" <{if $pkg_del=='true'}>style="background-color: #D8D8D8;" pkg-del='b'<{else}> pkg-del="a"<{/if}> <{if !empty($obj.oid) && $obj.oid != '-1'}>data-oid="<{$obj.oid}>"<{/if}>>
|
||||
<td class="goods_bn"><{$obj.bn}><{if !empty($obj.oid) && $obj.oid != '-1'}><input type="hidden" name="pkg[oid][<{$obj.obj_id}>]" value="<{$obj.oid}>" /><{/if}></td>
|
||||
<td class="goods_name"><{$obj.name}></td>
|
||||
<!--
|
||||
<td class="goods_addon">捆绑商品</td>
|
||||
-->
|
||||
<td class="goods_num"><input type="text" id="pkgnum_<{$obj.goods_id}>" pkg-id="<{$obj.goods_id}>" aid="<{$obj.goods_id}>" vtype="required&&unsignedint" atype="num_obj" value="<{$obj.quantity}>" name="pkg[num][<{$obj.obj_id}>]" size="4" <{if $pkg_del == 'true'}>disabled="true"<{/if}> onchange="changetotalpkg(this);total();" /></td>
|
||||
<td class="goods_price"><input type="text" id="pkgpr_<{$obj.goods_id}>" atype="price_obj" aid="<{$obj.goods_id}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.price}>" name="pkg[price][<{$obj.obj_id}>]" size="8" <{if $pkg_del == 'true'}>disabled="true"<{/if}> onchange="changetotalpkg(this);total();" /></td>
|
||||
<td class="goods_num"><input type="text" id="pkgnum_<{$obj.goods_id}>" pkg-id="<{$obj.goods_id}>" aid="<{$obj.goods_id}>" vtype="required&&unsignedint" atype="num_obj" value="<{$obj.quantity}>" name="pkg[num][<{$obj.obj_id}>]" size="4" <{if $pkg_del == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>data-original-quantity="<{$obj.quantity}>"<{/if}> onchange="changetotalpkg(this);total();" /></td>
|
||||
<td class="goods_price"><input type="text" id="pkgpr_<{$obj.goods_id}>" atype="price_obj" aid="<{$obj.goods_id}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.price}>" name="pkg[price][<{$obj.obj_id}>]" size="8" <{if $pkg_del == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotalpkg(this);total();" /></td>
|
||||
|
||||
<td class="goods_num"><input type="text" id="pkgpmtpr_<{$obj.goods_id}>" pkg-id="" aid="<{$obj.goods_id}>" atype="pmt_price_obj" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" vtype="unsigned" class="goods_pmt_price" name="pkg[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $pkg_del == 'true'}>disabled="true"<{/if}> onchange="changetotalpkg(this);total();" /></td>
|
||||
<td class="goods_num"><input type="text" id="pkgpmtpr_<{$obj.goods_id}>" pkg-id="" aid="<{$obj.goods_id}>" atype="pmt_price_obj" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" vtype="unsigned" class="goods_pmt_price" name="pkg[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $pkg_del == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotalpkg(this);total();" /></td>
|
||||
<td class="goods_num"><input type="text" class="pkgtotal" style="display:none" id="pkgtotal_<{$obj.goods_id}>" size="2" value="0" <{if $item.delete == 'true'}>disabled="true"<{/if}> /><input type="text" size="5" id="pkgsalepr_<{$obj.goods_id}>" class="none_input pkgsaleprice" readonly="readonly" value="<{$obj.sale_price}>" <{if $item.delete == 'true'}>disabled="true"<{/if}> >
|
||||
<input type="hidden" size="5" id="pkgpmtorderpr_<{$obj.goods_id}>" class="none_input pkgpmtorderprice" readonly="readonly" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="pkgpartmjz_<{$obj.goods_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
<input type="hidden" id="pkgdivideorderfee_<{$obj.goods_id}>" value="<{$obj.divide_order_fee|default:0}>" />
|
||||
</td>
|
||||
|
||||
<td class="goods_op">
|
||||
@@ -113,14 +115,14 @@
|
||||
<{assign var='pkg_del' value="false"}>
|
||||
<{/if}>
|
||||
<{/foreach}>
|
||||
<tr class="bindtitle" pkg-type="pkg" g-id="<{$obj.goods_id}>" pkg-id="<{$obj.goods_id}>" <{if $pkg_del=='true'}>style="background-color: #D8D8D8;" pkg-del='b'<{else}> pkg-del="a"<{/if}>>
|
||||
<td class="goods_bn"><{$obj.bn}></td>
|
||||
<tr class="bindtitle" pkg-type="pkg" g-id="<{$obj.goods_id}>" pkg-id="<{$obj.goods_id}>" <{if $pkg_del=='true'}>style="background-color: #D8D8D8;" pkg-del='b'<{else}> pkg-del="a"<{/if}> <{if !empty($obj.oid) && $obj.oid != '-1'}>data-oid="<{$obj.oid}>"<{/if}>>
|
||||
<td class="goods_bn"><{$obj.bn}><{if !empty($obj.oid) && $obj.oid != '-1'}><input type="hidden" name="pkg[oid][<{$obj.obj_id}>]" value="<{$obj.oid}>" /><{/if}></td>
|
||||
<td class="goods_name"><{$obj.name}></td>
|
||||
<!--
|
||||
<td class="goods_addon">捆绑商品</td>
|
||||
-->
|
||||
|
||||
<td class="goods_num"><input type="text" id="pkgnum_<{$obj.goods_id}>" pkg-id="<{$obj.goods_id}>" aid="<{$obj.goods_id}>" vtype="required&&unsignedint" atype="num_obj" value="<{$obj.quantity}>" name="pkg[num][<{$obj.obj_id}>]" size="4" <{if $pkg_del == 'true'}>disabled="true"<{else}>readonly="readonly" style="color:#666;"<{/if}> /><input type="hidden" value="<{$obj.quantity}>" id="old_pkg_nums_<{$obj.goods_id}>" /></td>
|
||||
<td class="goods_num"><input type="text" id="pkgnum_<{$obj.goods_id}>" pkg-id="<{$obj.goods_id}>" aid="<{$obj.goods_id}>" vtype="required&&unsignedint" atype="num_obj" value="<{$obj.quantity}>" name="pkg[num][<{$obj.obj_id}>]" size="4" <{if $pkg_del == 'true'}>disabled="true"<{else}>readonly="readonly" style="color:#666;"<{/if}> <{if !empty($obj.oid) && $obj.oid != '-1'}>data-original-quantity="<{$obj.quantity}>"<{/if}> /><input type="hidden" value="<{$obj.quantity}>" id="old_pkg_nums_<{$obj.goods_id}>" /></td>
|
||||
|
||||
<td class="pkg_buy_nums">
|
||||
<{if $obj.left_nums <= 0}>
|
||||
@@ -131,12 +133,14 @@
|
||||
<{if $obj.make_nums}><br />(<font color="#f00;">已发货:<{$obj.make_nums}></font>)<input type="hidden" value="<{$obj.make_nums}>" id="split_pkg_send_<{$obj.goods_id}>" /><{/if}>
|
||||
</td>
|
||||
|
||||
<td class="goods_price"><input type="text" id="pkgpr_<{$obj.goods_id}>" atype="price_obj" aid="<{$obj.goods_id}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.price}>" name="pkg[price][<{$obj.obj_id}>]" size="8" <{if $pkg_del == 'true'}>disabled="true"<{elseif $item.make_nums > 0}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalpkg(this);total();"<{/if}> /></td>
|
||||
<td class="goods_price"><input type="text" id="pkgpr_<{$obj.goods_id}>" atype="price_obj" aid="<{$obj.goods_id}>" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.price}>" name="pkg[price][<{$obj.obj_id}>]" size="8" <{if $pkg_del == 'true'}>disabled="true"<{elseif $item.make_nums > 0 || (!empty($obj.oid) && $obj.oid != '-1')}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalpkg(this);total();"<{/if}> /></td>
|
||||
|
||||
<td class="goods_num"><input type="text" id="pkgpmtpr_<{$obj.goods_id}>" pkg-id="" aid="<{$obj.goods_id}>" atype="pmt_price_obj" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" vtype="unsigned" class="goods_pmt_price" name="pkg[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $pkg_del == 'true'}>disabled="true"<{elseif $item.make_nums > 0}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalpkg(this);total();"<{/if}> /></td>
|
||||
<td class="goods_num"><input type="text" id="pkgpmtpr_<{$obj.goods_id}>" pkg-id="" aid="<{$obj.goods_id}>" atype="pmt_price_obj" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" vtype="unsigned" class="goods_pmt_price" name="pkg[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $pkg_del == 'true'}>disabled="true"<{elseif $item.make_nums > 0 || (!empty($obj.oid) && $obj.oid != '-1')}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalpkg(this);total();"<{/if}> /></td>
|
||||
|
||||
<td class="goods_num"><input type="text" class="pkgtotal" style="display:none" id="pkgtotal_<{$obj.goods_id}>" size="2" value="0" <{if $item.delete == 'true'}>disabled="true"<{/if}> /><input type="text" size="5" id="pkgsalepr_<{$obj.goods_id}>" class="none_input pkgsaleprice" readonly="readonly" value="<{$obj.sale_price}>" <{if $item.delete == 'true'}>disabled="true"<{/if}> >
|
||||
<input type="hidden" size="5" id="pkgpmtorderpr_<{$obj.goods_id}>" class="none_input pkgpmtorderprice" readonly="readonly" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="pkgpartmjz_<{$obj.goods_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
<input type="hidden" id="pkgdivideorderfee_<{$obj.goods_id}>" value="<{$obj.divide_order_fee|default:0}>" />
|
||||
</td>
|
||||
|
||||
<td class="goods_op">
|
||||
@@ -181,6 +185,40 @@ $('pkg_list').getElements("input[atype]").each(function(e){
|
||||
changetotalpkg(e);
|
||||
});
|
||||
|
||||
// 初始化oid限制的原始值
|
||||
$('pkg_list').getElements('tr.bindtitle[data-oid]').each(function(tr){
|
||||
var oid = tr.get('data-oid');
|
||||
if(oid && oid != '-1') {
|
||||
var aid = tr.get('pkg-id');
|
||||
var numInput = $('pkgnum_'+aid);
|
||||
var priceInput = $('pkgpr_'+aid);
|
||||
var pmtInput = $('pkgpmtpr_'+aid);
|
||||
var salePriceInput = $('pkgsalepr_'+aid);
|
||||
|
||||
if(numInput && !numInput.get('data-original-quantity')) {
|
||||
numInput.set('data-original-quantity', numInput.value);
|
||||
}
|
||||
if(priceInput && !priceInput.get('data-original-price')) {
|
||||
priceInput.set('data-original-price', priceInput.value);
|
||||
}
|
||||
if(pmtInput && !pmtInput.get('data-original-pmt-price')) {
|
||||
pmtInput.set('data-original-pmt-price', pmtInput.value || 0);
|
||||
}
|
||||
if(salePriceInput && !salePriceInput.get('data-original-sale-price')) {
|
||||
salePriceInput.set('data-original-sale-price', salePriceInput.value);
|
||||
}
|
||||
if($('pkgpmtorderpr_'+aid) && !$('pkgpmtorderpr_'+aid).get('data-original-divide-order-fee')) {
|
||||
var pmtOrderPrice = parseFloat($('pkgpmtorderpr_'+aid).value || 0);
|
||||
var originalSalePrice = parseFloat(salePriceInput.value || 0);
|
||||
// 直接读取obj层的divide_order_fee
|
||||
var originalDivideOrderFee = 0;
|
||||
if($('pkgdivideorderfee_'+aid)) {
|
||||
originalDivideOrderFee = parseFloat($('pkgdivideorderfee_'+aid).value || 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function total_pkg(){
|
||||
var total = 0, amount=0;
|
||||
$('pkg_list').getElements("input.pkgtotal").each(function(item){
|
||||
@@ -196,6 +234,45 @@ function changetotalpkg(e){
|
||||
|
||||
var id = e.get('aid'),l=0,_ca = e.getNext('.error');
|
||||
if(e.disable) return;
|
||||
|
||||
// 检查是否有oid限制
|
||||
var tr = e.getParent('tr');
|
||||
while(tr && !tr.hasClass('bindtitle')) {
|
||||
tr = tr.getPrevious('tr');
|
||||
}
|
||||
var hasOidLimit = tr && tr.get('data-oid') && tr.get('data-oid') != '-1';
|
||||
var originalQuantity = null;
|
||||
var originalSalePrice = null;
|
||||
var originalDivideOrderFee = null;
|
||||
var originalPmtPrice = null;
|
||||
|
||||
if(hasOidLimit) {
|
||||
var numInput = $('pkgnum_'+id);
|
||||
if(numInput && numInput.get('data-original-quantity')) {
|
||||
originalQuantity = parseFloat(numInput.get('data-original-quantity'));
|
||||
}
|
||||
if($('pkgsalepr_'+id)) {
|
||||
originalSalePrice = parseFloat($('pkgsalepr_'+id).get('data-original-sale-price') || $('pkgsalepr_'+id).value);
|
||||
if(!$('pkgsalepr_'+id).get('data-original-sale-price')) {
|
||||
$('pkgsalepr_'+id).set('data-original-sale-price', originalSalePrice);
|
||||
}
|
||||
}
|
||||
if($('pkgpmtorderpr_'+id)) {
|
||||
var pmtOrderPrice = parseFloat($('pkgpmtorderpr_'+id).value || 0);
|
||||
// 直接读取obj层的divide_order_fee
|
||||
if($('pkgdivideorderfee_'+id)) {
|
||||
originalDivideOrderFee = parseFloat($('pkgdivideorderfee_'+id).value || 0);
|
||||
}
|
||||
}
|
||||
// 获取原始的商品优惠价格
|
||||
if($('pkgpmtpr_'+id)) {
|
||||
originalPmtPrice = parseFloat($('pkgpmtpr_'+id).get('data-original-pmt-price') || $('pkgpmtpr_'+id).value || 0);
|
||||
if(!$('pkgpmtpr_'+id).get('data-original-pmt-price')) {
|
||||
$('pkgpmtpr_'+id).set('data-original-pmt-price', originalPmtPrice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (/^\d+(\.\d+)?$/.test(e.value)){
|
||||
if(e.get('atype') == 'num_obj'){
|
||||
if (parseInt(e.value) <= 0){
|
||||
@@ -204,9 +281,55 @@ function changetotalpkg(e){
|
||||
e.set('value', '0');
|
||||
}
|
||||
return;
|
||||
}else{
|
||||
}
|
||||
|
||||
// oid限制:验证数量只能改小
|
||||
if(hasOidLimit && originalQuantity !== null) {
|
||||
var newQuantity = parseFloat(e.value);
|
||||
if(newQuantity > originalQuantity) {
|
||||
if (!_ca){
|
||||
new Element('span',{'class':'error caution notice-inline',html:'数量不能大于原数量 '+originalQuantity}).injectAfter(e);
|
||||
}
|
||||
e.set('value', originalQuantity);
|
||||
return;
|
||||
} else {
|
||||
if (_ca) _ca.remove();
|
||||
}
|
||||
|
||||
// 按比例计算销售价和实付
|
||||
if(originalSalePrice !== null && originalQuantity > 0) {
|
||||
var ratio = newQuantity / originalQuantity;
|
||||
var newSalePrice = (originalSalePrice * ratio).toFixed(2);
|
||||
$('pkgsalepr_'+id).set('value', newSalePrice);
|
||||
|
||||
if(originalDivideOrderFee !== null) {
|
||||
var newDivideOrderFee = (originalDivideOrderFee * ratio).toFixed(2);
|
||||
// newPmtPrice 按比例计算,和 newSalePrice 一样的计算方式
|
||||
var newPmtPrice = (originalPmtPrice * ratio).toFixed(2);
|
||||
$('pkgpmtpr_'+id).set('value', newPmtPrice);
|
||||
|
||||
// 计算并更新part_mjz_discount = sale_price - divide_order_fee
|
||||
var newPartMjzDiscount = (parseFloat(newSalePrice) - parseFloat(newDivideOrderFee)).toFixed(2);
|
||||
if ($('pkgpartmjz_'+id)) {
|
||||
$('pkgpartmjz_'+id).set('value', newPartMjzDiscount);
|
||||
}
|
||||
}
|
||||
|
||||
$('pkgtotal_'+id).value = (parseFloat($('pkgnum_'+id).value) * parseFloat($('pkgpr_'+id).value)).toFixed(3);
|
||||
|
||||
if (e.get('pkg-id') != null || e.get('pkg-id') != ''){
|
||||
$('pkg_list').getElements('input[type=text]').each(function (eee){
|
||||
if (eee.get('pg-id') == e.get('pkg-id')){
|
||||
eee.value = eee.get('js')*e.value;
|
||||
}
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (_ca) _ca.remove();
|
||||
}
|
||||
|
||||
if (e.get('pkg-id') != null || e.get('pkg-id') != ''){
|
||||
$('pkg_list').getElements('input[type=text]').each(function (eee){
|
||||
if (eee.get('pg-id') == e.get('pkg-id')){
|
||||
@@ -216,6 +339,16 @@ function changetotalpkg(e){
|
||||
}
|
||||
$('pkgtotal_'+id).value = parseFloat($('pkgnum_'+id).value).toFixed(3)*parseFloat($('pkgpr_'+id).value).toFixed(3);
|
||||
}else if (e.get('atype') == 'price_obj'){
|
||||
// oid限制:单价不可修改
|
||||
if(hasOidLimit) {
|
||||
var originalPrice = parseFloat($('pkgpr_'+id).get('data-original-price') || $('pkgpr_'+id).value);
|
||||
if(!$('pkgpr_'+id).get('data-original-price')) {
|
||||
$('pkgpr_'+id).set('data-original-price', originalPrice);
|
||||
}
|
||||
e.set('value', originalPrice);
|
||||
return;
|
||||
}
|
||||
|
||||
if (parseInt(e.value) < 0){
|
||||
if (!_ca){
|
||||
new Element('span',{'class':'error caution notice-inline',html:'请录入不小于0的数'}).injectAfter(e);
|
||||
@@ -237,6 +370,16 @@ function changetotalpkg(e){
|
||||
if (_ca) _ca.remove();
|
||||
}
|
||||
}else if (e.get('atype') == 'pmt_price_obj'){
|
||||
// oid限制:优惠价格不可修改
|
||||
if(hasOidLimit) {
|
||||
var originalPmtPrice = parseFloat($('pkgpmtpr_'+id).get('data-original-pmt-price') || $('pkgpmtpr_'+id).value);
|
||||
if(!$('pkgpmtpr_'+id).get('data-original-pmt-price')) {
|
||||
$('pkgpmtpr_'+id).set('data-original-pmt-price', originalPmtPrice);
|
||||
}
|
||||
e.set('value', originalPmtPrice);
|
||||
return;
|
||||
}
|
||||
|
||||
if (parseInt(e.value) < 0){
|
||||
if (!_ca){
|
||||
new Element('span',{'class':'error caution notice-inline',html:'请录入不小于0的数'}).injectAfter(e);
|
||||
|
||||
@@ -32,17 +32,20 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<{foreach from=$conf.objs item=obj}>
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" >
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" <{if !empty($obj.oid) && $obj.oid != '-1'}>data-oid="<{$obj.oid}>"<{/if}>>
|
||||
<td class="obj_bn <{$obj.obj_type}>class">
|
||||
<span class="number"><{$obj.bn}></span>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" /></td>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" />
|
||||
<{if !empty($obj.oid) && $obj.oid != '-1'}><input type="hidden" name="pko[oid][<{$obj.obj_id}>]" value="<{$obj.oid}>" /><{/if}></td>
|
||||
<td class="obj_name"><{$obj.name}><input name="pko_ids[]" id="pko_ids_<{$obj.obj_id}>" type="text" value="<{$obj.goods_id}>" style="display:none;" /></td>
|
||||
<td class="obj_num"><input type="hidden" value="<{$obj.obj_id}>" name="pko[obj][<{$obj.obj_id}>][]" />
|
||||
<input atype="num" aid="<{$obj.obj_id}>" name="pko[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" vtype="required&&unsignedint" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalpko(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_price"><input name="pko[price][<{$obj.obj_id}>]" type="text" size="8" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.price}>" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalpko(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" class="pko_pmt_price" name="pko[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{/if}> onchange="changetotalpko(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<input atype="num" aid="<{$obj.obj_id}>" name="pko[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" vtype="required&&unsignedint" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>data-original-quantity="<{$obj.quantity}>"<{/if}> onchange="changetotalpko(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_price"><input name="pko[price][<{$obj.obj_id}>]" type="text" size="8" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.price}>" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotalpko(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" class="pko_pmt_price" name="pko[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{elseif !empty($obj.oid) && $obj.oid != '-1'}>readonly="readonly" style="color:#666;"<{/if}> onchange="changetotalpko(this);total();" onclick='edit_checked("<{$obj.obj_id}>","<{$obj.bn}>");' /></td>
|
||||
<td class="obj_total"><input type="text" class="pkototal" style="display:none" id="pkototal_<{$obj.obj_id}>" size="2" value="0" <{if $obj.delete == 'true'}>disabled="true"<{/if}> /><input type="text" size="5" id="pkosalepr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> pkosaleprice<{/if}>" value="<{$obj.sale_price}>">
|
||||
<input type="hidden" size="5" id="pkopmtpr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> pkopmtprice<{/if}>" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="pkopartmjz_<{$obj.obj_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
<input type="hidden" id="pkodivideorderfee_<{$obj.obj_id}>" value="<{$obj.divide_order_fee|default:0}>" />
|
||||
</td>
|
||||
<td class="item_op" objid="<{$obj.obj_id}>">
|
||||
<{if $obj.delete == 'false'}>
|
||||
@@ -72,12 +75,13 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<{foreach from=$conf.objs item=obj}>
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" >
|
||||
<tr id="tr_<{$obj.obj_id}>" oid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>style="background-color: #DBDBDB;" g-del="b" class='disabled'<{else}>g-del="a"<{/if}> g-type="<{$obj.obj_type}>" g-pid="<{$obj.goods_id}>" g-shop-pid="<{$obj.shop_goods_id}>" aid="<{$obj.obj_id}>" g-bn="<{$obj.bn}>" g-pname="<{$obj.name}>" <{if !empty($obj.oid) && $obj.oid != '-1'}>data-oid="<{$obj.oid}>"<{/if}>>
|
||||
<td class="obj_bn <{$obj.obj_type}>class">
|
||||
<span class="number"><{$obj.bn}></span>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" /></td>
|
||||
<input type="hidden" value="<{$obj.bn}>" name="bn_list[]" />
|
||||
<{if !empty($obj.oid) && $obj.oid != '-1'}><input type="hidden" name="pko[oid][<{$obj.obj_id}>]" value="<{$obj.oid}>" /><{/if}></td>
|
||||
<td class="obj_name"><{$obj.name}><input name="pko_ids[]" id="pko_ids_<{$obj.obj_id}>" type="text" value="<{$obj.goods_id}>" style="display:none;" /></td>
|
||||
<td class="obj_num"><input type="hidden" value="<{$obj.obj_id}>" name="pko[obj][<{$obj.obj_id}>][]" /><input atype="num" aid="<{$obj.obj_id}>" name="pko[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{else}>readonly="readonly" style="color:#666;"<{/if}> /><input type="hidden" value="<{$obj.quantity}>" id="old_pko_nums_<{$obj.obj_id}>" /></td>
|
||||
<td class="obj_num"><input type="hidden" value="<{$obj.obj_id}>" name="pko[obj][<{$obj.obj_id}>][]" /><input atype="num" aid="<{$obj.obj_id}>" name="pko[num][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.quantity}>" id="num_<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{else}>readonly="readonly" style="color:#666;"<{/if}> <{if !empty($obj.oid) && $obj.oid != '-1'}>data-original-quantity="<{$obj.quantity}>"<{/if}> /><input type="hidden" value="<{$obj.quantity}>" id="old_pko_nums_<{$obj.obj_id}>" /></td>
|
||||
<td class="obj_buy_nums">
|
||||
<{if $obj.left_nums <= 0}>
|
||||
<input aid="<{$obj.obj_id}>" name="pko[item_buy_nums][<{$obj.obj_id}>]" type="text" size="5" value="<{$obj.left_nums}>" id="item_buy_nums_<{$obj.obj_id}>" disabled="true" />
|
||||
@@ -86,10 +90,12 @@
|
||||
<{/if}>
|
||||
<{if $obj.make_nums}><br />(<font color="#f00;">已发货:<{$obj.make_nums}></font>)<input type="hidden" value="<{$obj.make_nums}>" id="split_send_<{$obj.obj_id}>" /><{/if}>
|
||||
</td>
|
||||
<td class="obj_price"><input name="pko[price][<{$obj.obj_id}>]" type="text" size="8" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.price}>" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalpko(this);total();"<{/if}> /></td>
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" class="pko_pmt_price" name="pko[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalpko(this);total();"<{/if}> /></td>
|
||||
<td class="obj_price"><input name="pko[price][<{$obj.obj_id}>]" type="text" size="8" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.price}>" vtype="required&&unsigned" atype="price" id="pr_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0 || (!empty($obj.oid) && $obj.oid != '-1')}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalpko(this);total();"<{/if}> /></td>
|
||||
<td class="obj_pmt"><input type="text" id="pmt_<{$obj.obj_id}>" aid="<{$obj.obj_id}>" vtype="unsigned" atype="pmt_price" oninput="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)" value="<{$obj.pmt_price|default:0}>" class="pko_pmt_price" name="pko[obj_pmt_price][<{$obj.obj_id}>]" size="6" <{if $obj.delete == 'true'}>disabled="true"<{elseif $obj.make_nums > 0 || (!empty($obj.oid) && $obj.oid != '-1')}>readonly="readonly" style="color:#666;"<{else}>onchange="changetotalpko(this);total();"<{/if}> /></td>
|
||||
<td class="obj_total"><input type="text" class="pkototal" style="display:none" id="pkototal_<{$obj.obj_id}>" size="2" value="0" <{if $obj.delete == 'true'}>disabled="true"<{/if}> /><input type="text" size="5" id="pkosalepr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> pkosaleprice<{/if}>" value="<{$obj.sale_price}>">
|
||||
<input type="hidden" size="5" id="pkopmtpr_<{$obj.obj_id}>" readonly="readonly" <{if $obj.delete == 'true'}>disabled="true"<{/if}> class="none_input<{if $obj.obj_type != 'gift' && $obj.order_items|@count == '1'}> pkopmtprice<{/if}>" value="<{$obj.pmt_order_price}>">
|
||||
<input type="hidden" id="pkopartmjz_<{$obj.obj_id}>" value="<{$obj.part_mjz_discount|default:0}>" />
|
||||
<input type="hidden" id="pkodivideorderfee_<{$obj.obj_id}>" value="<{$obj.divide_order_fee|default:0}>" />
|
||||
</td>
|
||||
<td class="item_op" objid="<{$obj.obj_id}>">
|
||||
<{if empty($obj.make_nums)}>
|
||||
@@ -172,6 +178,42 @@ function edit_checked(obj_id,$obj_bn){
|
||||
function changetotalpko(e){
|
||||
var id = e.get('aid'),l=0,_ca = e.getNext('.error');
|
||||
if(e.disable) return;
|
||||
|
||||
// 检查是否有oid限制
|
||||
var tr = e.getParent('tr');
|
||||
var hasOidLimit = tr && tr.get('data-oid') && tr.get('data-oid') != '-1';
|
||||
var originalQuantity = null;
|
||||
var originalSalePrice = null;
|
||||
var originalDivideOrderFee = null;
|
||||
var originalPmtPrice = null;
|
||||
|
||||
if(hasOidLimit) {
|
||||
var numInput = $('num_'+id);
|
||||
if(numInput && numInput.get('data-original-quantity')) {
|
||||
originalQuantity = parseFloat(numInput.get('data-original-quantity'));
|
||||
}
|
||||
if($('pkosalepr_'+id)) {
|
||||
originalSalePrice = parseFloat($('pkosalepr_'+id).get('data-original-sale-price') || $('pkosalepr_'+id).value);
|
||||
if(!$('pkosalepr_'+id).get('data-original-sale-price')) {
|
||||
$('pkosalepr_'+id).set('data-original-sale-price', originalSalePrice);
|
||||
}
|
||||
}
|
||||
if($('pkopmtpr_'+id)) {
|
||||
var pmtOrderPrice = parseFloat($('pkopmtpr_'+id).value || 0);
|
||||
// 直接读取obj层的divide_order_fee
|
||||
if($('pkodivideorderfee_'+id)) {
|
||||
originalDivideOrderFee = parseFloat($('pkodivideorderfee_'+id).value || 0);
|
||||
}
|
||||
}
|
||||
// 获取原始的商品优惠价格
|
||||
if($('pmt_'+id)) {
|
||||
originalPmtPrice = parseFloat($('pmt_'+id).get('data-original-pmt-price') || $('pmt_'+id).value || 0);
|
||||
if(!$('pmt_'+id).get('data-original-pmt-price')) {
|
||||
$('pmt_'+id).set('data-original-pmt-price', originalPmtPrice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (/^\d+(\.\d+)?$/.test(e.value)){
|
||||
if(e.get('atype') == 'num'){
|
||||
if (parseInt(e.value) <= 0){
|
||||
@@ -180,7 +222,44 @@ function changetotalpko(e){
|
||||
e.set('value', '0');
|
||||
}
|
||||
return;
|
||||
}else{
|
||||
}
|
||||
|
||||
// oid限制:验证数量只能改小
|
||||
if(hasOidLimit && originalQuantity !== null) {
|
||||
var newQuantity = parseFloat(e.value);
|
||||
if(newQuantity > originalQuantity) {
|
||||
if (!_ca){
|
||||
new Element('span',{'class':'error caution notice-inline',html:'数量不能大于原数量 '+originalQuantity}).injectAfter(e);
|
||||
}
|
||||
e.set('value', originalQuantity);
|
||||
return;
|
||||
} else {
|
||||
if (_ca) _ca.remove();
|
||||
}
|
||||
|
||||
// 按比例计算销售价和实付
|
||||
if(originalSalePrice !== null && originalQuantity > 0) {
|
||||
var ratio = newQuantity / originalQuantity;
|
||||
var newSalePrice = (originalSalePrice * ratio).toFixed(2);
|
||||
$('pkosalepr_'+id).set('value', newSalePrice);
|
||||
|
||||
if(originalDivideOrderFee !== null) {
|
||||
var newDivideOrderFee = (originalDivideOrderFee * ratio).toFixed(2);
|
||||
// newPmtPrice 按比例计算,和 newSalePrice 一样的计算方式
|
||||
var newPmtPrice = (originalPmtPrice * ratio).toFixed(2);
|
||||
$('pmt_'+id).set('value', newPmtPrice);
|
||||
|
||||
// 计算并更新part_mjz_discount = sale_price - divide_order_fee
|
||||
var newPartMjzDiscount = (parseFloat(newSalePrice) - parseFloat(newDivideOrderFee)).toFixed(2);
|
||||
if ($('pkopartmjz_'+id)) {
|
||||
$('pkopartmjz_'+id).set('value', newPartMjzDiscount);
|
||||
}
|
||||
}
|
||||
|
||||
$('pkototal_'+id).value = (parseFloat($('num_'+id).value) * parseFloat($('pr_'+id).value)).toFixed(3);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (_ca) _ca.remove();
|
||||
}
|
||||
|
||||
@@ -219,6 +298,15 @@ function changetotalpko(e){
|
||||
}
|
||||
|
||||
}else if (e.get('atype') == 'price'){
|
||||
// oid限制:单价不可修改
|
||||
if(hasOidLimit) {
|
||||
var originalPrice = parseFloat($('pr_'+id).get('data-original-price') || $('pr_'+id).value);
|
||||
if(!$('pr_'+id).get('data-original-price')) {
|
||||
$('pr_'+id).set('data-original-price', originalPrice);
|
||||
}
|
||||
e.set('value', originalPrice);
|
||||
return;
|
||||
}
|
||||
|
||||
if (parseInt(e.value) < 0){
|
||||
if (!_ca){
|
||||
@@ -267,6 +355,15 @@ function changetotalpko(e){
|
||||
$('pkototal_'+oid).value = parseFloat(pkototalsub).toFixed(3);
|
||||
}
|
||||
}else if (e.get('atype') == 'pmt_price'){
|
||||
// oid限制:优惠价格不可修改
|
||||
if(hasOidLimit) {
|
||||
var originalPmtPrice = parseFloat($('pmt_'+id).get('data-original-pmt-price') || $('pmt_'+id).value);
|
||||
if(!$('pmt_'+id).get('data-original-pmt-price')) {
|
||||
$('pmt_'+id).set('data-original-pmt-price', originalPmtPrice);
|
||||
}
|
||||
e.set('value', originalPmtPrice);
|
||||
return;
|
||||
}
|
||||
|
||||
if (parseInt(e.value) < 0){
|
||||
if (!_ca){
|
||||
@@ -341,6 +438,40 @@ $('pko_list').getElements("input[atype]").each(function(e){
|
||||
changetotalpko(e);
|
||||
});
|
||||
|
||||
// 初始化oid限制的原始值
|
||||
$('pko_list').getElements('tr[data-oid]').each(function(tr){
|
||||
var oid = tr.get('data-oid');
|
||||
if(oid && oid != '-1') {
|
||||
var aid = tr.get('aid');
|
||||
var numInput = $('num_'+aid);
|
||||
var priceInput = $('pr_'+aid);
|
||||
var pmtInput = $('pmt_'+aid);
|
||||
var salePriceInput = $('pkosalepr_'+aid);
|
||||
|
||||
if(numInput && !numInput.get('data-original-quantity')) {
|
||||
numInput.set('data-original-quantity', numInput.value);
|
||||
}
|
||||
if(priceInput && !priceInput.get('data-original-price')) {
|
||||
priceInput.set('data-original-price', priceInput.value);
|
||||
}
|
||||
if(pmtInput && !pmtInput.get('data-original-pmt-price')) {
|
||||
pmtInput.set('data-original-pmt-price', pmtInput.value || 0);
|
||||
}
|
||||
if(salePriceInput && !salePriceInput.get('data-original-sale-price')) {
|
||||
salePriceInput.set('data-original-sale-price', salePriceInput.value);
|
||||
}
|
||||
if($('pkopmtpr_'+aid) && !$('pkopmtpr_'+aid).get('data-original-divide-order-fee')) {
|
||||
var pmtOrderPrice = parseFloat($('pkopmtpr_'+aid).value || 0);
|
||||
var originalSalePrice = parseFloat(salePriceInput.value || 0);
|
||||
// 直接读取obj层的divide_order_fee
|
||||
var originalDivideOrderFee = 0;
|
||||
if($('pkodivideorderfee_'+aid)) {
|
||||
originalDivideOrderFee = parseFloat($('pkodivideorderfee_'+aid).value || 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function total_pko(){
|
||||
var total = 0,amount = 0;
|
||||
$('pko_list').getElements("input.pkototal").each(function(item,k){
|
||||
|
||||
Reference in New Issue
Block a user