Files
OMS/app/console/view/admin/vop/stockout_edit.html
chenping 61783b7d01 1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数

3. 【优化】盘点申请单确认

4. 【修复】采购退货单模拟出库失败问题

5. 【新增】订单金额客户实付与结算金额

6. 【优化】仓库发货统计报表物料名称显示

7. 【优化】自有仓储虚拟发货逻辑

8. 【修复】基础物料分类管理问题
2026-04-01 11:59:17 +08:00

402 lines
16 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--
Copyright 2012-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.
-->
<{capture name="header"}>
<{css app="ome" src="ome.css"}>
<{css app="ome" src="style.css"}>
<{script src="coms/modedialog.js" app="desktop"}>
<{script src="coms/pager.js" app="desktop"}>
<{/capture}>
<style type="text/css">
.gridlist tbody td, .gridlist tbody th {
height: 30px;
line-height: 30px;
}
</style>
<form id="fm1" name="form1" action="index.php?app=console&ctl=admin_vopstockout&act=doEdit" method="POST">
<input type="hidden" name="stockout_id" value="<{$data.stockout_id}>" />
<div class="tableform">
<h3>编辑出库单</h3>
<div class="division">
<h5>基础信息</h5>
<table border="0" cellspacing="0" cellpadding="0" class="gridlist">
<thead>
<tr>
<td align="right">出库单号:</td>
<td width="40%"><{$data.stockout_no}></td>
<td align="right">拣货单号:</td>
<td><{$pickInfo.pick_no}></td>
</tr>
<tr>
<td width="10%" align="right">出库数量:</td>
<td><{$data.pick_num}></td>
<td align="right" nowrap="nowrap">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right">出库仓:</td>
<td width="40%"><{$data.branch_name}></td>
<td align="right">入库仓:</td>
<td><{$pickInfo.to_branch_name}></td>
</tr>
<tr>
<td align="right">配送方式:</td>
<td width="40%">
<select name="dly_mode" id="dly_mode" onchange="get_delivery_time(this)">
<option value="">请选择</option>
<{foreach from=$dly_mode key=key item=val}>
<option value="<{$key}>" <{if $data.dly_mode == $key}>selected<{/if}> ><{$val}></option>
<{/foreach}>
</select>
</td>
<td align="right">承运商:</td>
<td>
<select name="carrier_code" id="carrier_code">
<option value="">请选择</option>
<{foreach from=$carrier_code key=key item=val}>
<option value="<{$key}>" <{if $data.carrier_code == $key}>selected<{/if}> ><{$val}></option>
<{/foreach}>
</select>
</td>
</tr>
<tr>
<td align="right">送货批次:</td>
<td>
<div id="set_delivery_date" style="width:100px; float:left;">
<{input id="set_data_id" type="date" vtype="date" name="delivery_date" class="load_delivery_date" style="width:66px; font-family:arial;background-color: white;background-position: 2px -1510px;border-width: 1px;padding-left: 18px;" value=$data.delivery_date}>
<input type="hidden" name="hide_delivery_time" id="hide_delivery_time" value="<{$data.delivery_date}>" />
</div>
<div id="set_delivery_hour" style="width:150px; float:left;">
<select name="delivery_hour" id="delivery_hour" onchange="reckonArrivalTime()">
<option value="">请选择</option>
<{foreach from=$sel_delivery_hour key=key item=val}>
<option value="<{$val}>" <{if $data.delivery_hour == $val}>selected<{/if}> ><{$val}></option>
<{/foreach}>
</select>
</div>
</td>
<td align="right" nowrap="nowrap">要求到货时间:</td>
<td>
<div id="set_arrival_time">
<select name="arrival_time" id="arrival_time">
<{if $arrival_time_list}>
<{foreach from=$arrival_time_list key=key item=val}>
<option value="<{$val}>" <{if $data.arrival_time == $val}>selected<{/if}> ><{$val}></option>
<{/foreach}>
<{/if}>
</select>
</div>
</td>
</tr>
<tr>
<td align="right">是否航空禁运:</td>
<td width="40%">
<select name="is_air_embargo">
<option value="0" <{if $data.is_air_embargo != 1}>selected<{/if}>>不禁运</option>
<option value="1" <{if $data.is_air_embargo == 1}>selected<{/if}>>禁运</option>
</select>
</td>
</tr>
</thead>
</table>
</div>
<div class="division">
<h5>出库单明细</h5>
<table border="0" cellspacing="0" cellpadding="0" class="gridlist">
<thead>
<tr>
<th style='text-align:left;padding-left:5px;'>采购单号</th>
<th style='text-align:left;padding-left:5px;'>拣货单号</th>
<th style='text-align:left;padding-left:5px;'>基础物料编码</th>
<th style='text-align:left;padding-left:5px;'>条形码</th>
<th style='text-align:left;padding-left:5px;'>基础物料名称</th>
<th style='text-align:left;padding-left:5px;'>尺寸</th>
<th style='text-align:left;padding-left:5px;'>数量</th>
<th style='text-align:left;padding-left:5px;'>申请数量</th>
<th style='text-align:left;padding-left:5px;'>可用库存</th>
<th style='text-align:left;padding-left:5px;'>成本价</th>
<th style='text-align:left;padding-left:5px;'>市场价</th>
<th style='text-align:left;padding-left:5px;'>标记</th>
<th style='text-align:left;padding-left:5px;'>操作</th>
</tr>
</thead>
<tbody>
<{foreach from=$dataList item=item}>
<tr id="tr_<{$item.stockout_item_id}>" <{if $item.is_del == 'true'}>g-del="b" class="disabled"<{else}>g-del="a"<{/if}> >
<td style='text-align:left;padding-left:5px;'><{$item.po_bn}></td>
<td style='text-align:left;padding-left:5px;'><{$item.pick_no}></td>
<td style='text-align:left;padding-left:5px;'><{$item.bn}></td>
<td style='text-align:left;padding-left:5px;'><{$item.barcode}></td>
<td style='text-align:left;padding-left:5px;'><{$item.product_name}></td>
<td style='text-align:left;padding-left:5px;'><{$item.size}></td>
<td style='text-align:left;padding-left:5px;'><{$item.item_num}></td>
<td style='text-align:left;padding-left:5px;'>
<input name="item_num[<{$item.stockout_item_id}>]" type="text" onchange="change_num(this)" value="<{$item.num}>" size="6" maxlength="8" aid="<{$item.stockout_item_id}>" <{if $item.is_del == 'true'}>disabled="disabled"<{/if}> />
</td>
<td style='text-align:left;padding-left:5px;'><{$item.store}></td>
<td style='text-align:left;padding-left:5px;'><{$item.price}></td>
<td style='text-align:left;padding-left:5px;'><{$item.market_price}></td>
<td style='text-align:left;padding-left:5px;'><{$item.order_label}></td>
<td style='text-align:left;padding-left:5px;'>
<{if $item.is_del == 'false'}>
<{button type="button" label="删除" id="del_{$item.stockout_item_id}" onclick="del_item('{$item.stockout_item_id}');" }></td>
<{else}>
<{button type="button" label="恢复" id="del_{$item.stockout_item_id}" onclick="del_item('{$item.stockout_item_id}');" }></td>
<{/if}>
</td>
</tr>
<{/foreach}>
</tbody>
</table>
</div>
<div id="cc" class="noprint table-action"> <{button type="button" class="btn" id="purchase-save-btn" label="保 存"}> &nbsp; <{button type="button" class="btn" id="return-btn" label="关 闭" onclick="javascript:void(window.close());"}></div>
</div>
</form>
<script>
function change_num(e){
var id = e.get('aid'),l=0,_ca = e.getNext('.error');
if(e.disable) return;
if (/^\d+(\.\d+)?$/.test(e.value)){
if (parseInt(e.value) <= 0){
if (!_ca){
new Element('span',{'class':'error caution notice-inline',html:' 请录入不小于0的数'}).injectAfter(e);
e.set('value', '0');
}
return;
}else{
if (_ca) _ca.remove();
}
}else{
if (!_ca){
new Element('span',{'class':"error caution notice-inline",html:" 请录入数值"}).injectAfter(e);
e.set('value', '0');
}
}
}
function del_item(id)
{
var e = $('tr_'+id);
if(e.get('g-del') == 'a')
{
e.addClass('disabled').set('g-del','b');
e.getElements('input').length && e.getElements('input[type=text]').set('disabled',true);
e.getElement('button') && e.getElement('button').getElement('span span').set('text','恢复');
}
else
{
e.removeClass('disabled').set('g-del','a');
e.getElements('input').length && e.getElements('input[type=text]').set('disabled',false);
e.getElement('button') && e.getElement('button').show().getElement('span span').set('text','删除');
}
}
(function(){
var pag;
$('purchase-save-btn').addEvent('click',function(e)
{
var _this=this;
var form=this.getParent('form');
var dly_mode = $("dly_mode").value;
var carrier_code = $("carrier_code").value;
var arrival_time = $("arrival_time").value;
var delivery_hour = $("delivery_hour").value;
var delivery_date = $ES('input[name=delivery_date]').get('value');
if(dly_mode == "")
{
alert("请选择配送方式");
return false;
}
if(carrier_code == "")
{
alert("请选择承运商");
return false;
}
if(delivery_date == "")
{
alert("请选择送货批次日期");
return false;
}
if(delivery_hour == "")
{
alert("请选择送货批次时间段");
return false;
}
if(arrival_time == "")
{
alert("请选择到货时间段");
return false;
}
form.store('target',{
onRequest:function(){
_this.disabled=true;
},
onComplete:function(jsontext){
try{
var json = JSON.decode(jsontext);
if (typeof(json.error)!='undefined'){
_this.disabled=false;
}else{
_this.disabled=true;
if(opener.finderGroup['<{$env.get.finder_id}>']) opener.finderGroup['<{$env.get.finder_id}>'].refresh.delay(100,opener.finderGroup['<{$env.get.finder_id}>']);
setTimeout('window.close()',200);
}
}catch(e){}
}
});
form.fireEvent('submit',e);
});
})();
function get_delivery_time(e)
{
var dly_mode = e.value;
if(dly_mode == "")
{
return false;
}
var deliveryTime = new Array();
var json = <{$json_delivery_time}>;
if(json)
{
for (var i in json)
{
deliveryTime[i] = new Array();
for(var k in json[i])
{
deliveryTime[i][k] = json[i][k];
}
}
var html = '<select name="delivery_hour" id="delivery_hour" onchange="reckonArrivalTime()"><option value="">请选择</option>';
var sel_deliveryTime = new Array();
sel_deliveryTime = deliveryTime[dly_mode];
for(i=1; i<sel_deliveryTime.length; i++)
{
html += '<option value="'+ sel_deliveryTime[i] +'">'+ sel_deliveryTime[i] +'</option>';
}
html += '</select>';
$("set_delivery_hour").set('html', html);
}
//初始化要求到货时间
$("set_arrival_time").set('html', '<select name="arrival_time" id="arrival_time"></select>');
}
function reckonArrivalTime()
{
var delivery_date = $ES('input[name=delivery_date]').get('value');
var delivery_hour = $("delivery_hour").value;
var dly_mode = $("dly_mode").value;
var html = '<select name="arrival_time" id="arrival_time"></select>';
temp_delivery_date = delivery_date.toString();
if(temp_delivery_date == ""){
alert("请先选择送货批次的日期");
return false;
}
if(delivery_date && delivery_hour && dly_mode)
{
new Request(
{
url: "index.php?app=console&ctl=admin_vopstockout&act=ajax_arrival_time",
async:false,
method:'post',
data:{delivery_date:delivery_date, delivery_hour:delivery_hour, dly_mode:dly_mode},
onComplete: function(json)
{
json = JSON.decode(json);
if(json.res == 'succ')
{
if(json['arrival_time'].length > 0){
arrival_date = json['arrival_time'];
html = '<select name="arrival_time" id="arrival_time">';
arrival_date.each(function(arrival_time){
html += '<option value="'+ arrival_time +'">'+ arrival_time +'</option>';
});
html += '</select>';
$("set_arrival_time").set('html', html);
}
else
{
alert("没有获取到要求到货时间!");
}
}
else
{
$("set_arrival_time").set('html', html);
alert("获取到货时间失败!");
}
}
}).send();
}
}
function loadDeliveryDate(){
var delivery_date = $ES('input[name=delivery_date]').get('value');
var hide_delivery_time = $ES('input[name=hide_delivery_time]').get('value');
var delivery_hour = $("delivery_hour").value;
delivery_date = delivery_date.toString();
hide_delivery_time = hide_delivery_time.toString();
if(delivery_date){
$ES('input[name=hide_delivery_time]').set('value', delivery_date);
}
//初始化未选择送货批次日期时,先选择了时间点,重新加载时间
if(hide_delivery_time == "" && delivery_date)
{
if(delivery_hour)
{
get_delivery_time($("dly_mode"));
}
}
//送货批次日期发生变化,重新加载时间
if((hide_delivery_time != "") && (delivery_date != hide_delivery_time)){
get_delivery_time($("dly_mode"));
}
}
var intervalName ='';
clearInterval(intervalName);
intervalName = setInterval("loadDeliveryDate();", 3000);
</script>