openerp/src/main/webapp/js/pages/materials/in_out.js

1520 lines
48 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//初始化界面
$(function(){
var depotList = null;
var depotID = null;
var supplierList = null;
var supplierID = null;
var personList = null;
var personID = null;
var ProjectSearch=null;
var userBusinessList=null;
var userdepot=null;
var depotHeadMaxId=null; //获取最大的Id
var accepId=null; //保存的主表id
var url;
var depotHeadID = 0;
var preTotalPrice = 0; //前一次加载的金额
var orgDepotHead = "";
var editIndex = undefined;
var listTitle = ""; //单据标题
var listType = ""; //入库 出库
var listSubType = ""; //采购 销售等
var payTypeTitle = "";//付款 收款
var organUrl = ""; //组织数据接口地址
var amountNum = ""; //单据编号开头字符
var depotString = ""; //店铺列表
var orgDefaultId = 0; //单位默认编号
var orgDefaultList; //存储查询出来的会员列表
//初始化系统基础信息
getType();
initSystemData_UB();
initSelectInfo_UB();
initSystemData_depot();
initSelectInfo_depot();
initSystemData_person();
initSelectInfo_person();
initSystemData_account();
initSelectInfo_account();
initSupplier(); //供应商
initTableData();
ininPager();
initForm();
bindEvent();//绑定操作事件
});
//根据单据名称获取类型
function getType(){
listTitle = $("#tablePanel").prev().text();
depotString = "|";
//改变宽度和高度
$("#searchPanel").panel({width:webW-2});
$("#tablePanel").panel({width:webW-2});
var supUrl = path + "/supplier/findBySelect_sup.action"; //供应商接口
var cusUrl = path + "/supplier/findBySelect_cus.action"; //客户接口
var retailUrl = path + "/supplier/findBySelect_retail.action"; //散户接口
if(listTitle === "采购入库列表"){
listType = "入库";
listSubType = "采购";
payTypeTitle = "付款";
organUrl = supUrl;
amountNum = "CGRK";
}
else if(listTitle === "零售退货列表"){
listType = "入库";
listSubType = "零售退货"; //注:用预付款购买的产品不能退货
payTypeTitle = "付款";
organUrl = retailUrl;
amountNum = "LSTH";
}
else if(listTitle === "销售退货列表"){
listType = "入库";
listSubType = "销售退货";
payTypeTitle = "付款";
organUrl = cusUrl;
amountNum = "XSTH";
}
else if(listTitle === "其它入库列表"){
listType = "入库";
listSubType = "其它";
payTypeTitle = "隐藏";
organUrl = supUrl;
amountNum = "QTRK";
}
else if(listTitle === "零售出库列表"){
listType = "出库";
listSubType = "零售";
payTypeTitle = "收款";
organUrl = retailUrl;
amountNum = "LSCK";
}
else if(listTitle === "销售出库列表"){
listType = "出库";
listSubType = "销售";
payTypeTitle = "收款";
organUrl = cusUrl;
amountNum = "XSCK";
}
else if(listTitle === "采购退货列表"){
listType = "出库";
listSubType = "采购退货";
payTypeTitle = "收款";
organUrl = supUrl;
amountNum = "CGTH";
}
else if(listTitle === "其它出库列表"){
listType = "出库";
listSubType = "其它";
payTypeTitle = "隐藏";
organUrl = cusUrl;
amountNum = "QTCK";
}
else if(listTitle === "调拨出库列表"){
listType = "出库";
listSubType = "调拨";
payTypeTitle = "隐藏";
organUrl = supUrl;
amountNum = "DBCK";
}
}
//初始化系统基础信息
function initSystemData_UB(){
$.ajax({
type:"post",
url: path + "/userBusiness/getBasicData.action",
data: ({
KeyId:kid,
Type:"UserDepot"
}),
//设置为同步
async:false,
dataType: "json",
success: function (systemInfo)
{
if(systemInfo)
{
userBusinessList = systemInfo.showModel.map.userBusinessList;
var msgTip = systemInfo.showModel.msgTip;
if(msgTip == "exceptoin")
{
$.messager.alert('提示','查找UserBusiness异常,请与管理员联系!','error');
return;
}
}
else
{
userBusinessList=null;
}
}
});
}
//初始化页面选项卡
function initSelectInfo_UB(){
if(userBusinessList !=null)
{
if(userBusinessList.length>0)
{
//用户对应的仓库列表 [1][2][3]...
userdepot =userBusinessList[0].value;
}
}
}
//初始化系统基础信息
function initSystemData_depot(){
$.ajax({
type:"post",
url: path + "/depot/getBasicData.action",
//设置为同步
async:false,
dataType: "json",
success: function (systemInfo)
{
depotList = systemInfo.showModel.map.depotList;
var msgTip = systemInfo.showModel.msgTip;
if(msgTip == "exceptoin")
{
$.messager.alert('提示','查找系统基础信息异常,请与管理员联系!','error');
return;
}
}
});
}
//初始化页面选项卡
function initSelectInfo_depot(){
var options = "";
if(depotList !=null)
{
options = "";
for(var i = 0 ;i < depotList.length;i++)
{
var depot = depotList[i];
if(userdepot!=null)
{
if(userdepot.indexOf("["+depot.id+"]")!=-1)
{
options += '<option value="' + depot.id + '">' + depot.name + '</option>';
depotString = depotString + depot.id + ",";
}
}
}
depotString = depotString.substring(1, depotString.length-1);
$("#ProjectId").empty().append(options);
$("#AllocationProjectId").empty().append(options);
$("#searchProjectId").empty().append('<option value="">全部</option>').append(options);
}
}
//初始化供应商、客户、散户信息
function initSupplier(){
$('#OrganId').combobox({
url: organUrl,
valueField:'id',
textField:'supplier',
onLoadSuccess: function(res) {
var data = $(this).combobox('getData');
for(var i = 0; i<= data.length; i++){
if(data && data[i] && data[i].supplier === "非会员"){
orgDefaultId = data[i].id;
}
}
if(listSubType === "零售"){
orgDefaultList = res;
}
},
onSelect: function(rec){
if(listSubType === "零售"){
var option = "";
if(rec.supplier !== "非会员" && rec.advanceIn >0){
option = '<option value="预付款">预付款(' + rec.advanceIn + ')</option>';
option += '<option value="现付">现付</option>';
}
else {
option += '<option value="现付">现付</option>';
}
$("#payType").empty().append(option);
}
}
});
}
//初始化系统基础信息
function initSystemData_person(){
$.ajax({
type:"post",
url: path + "/person/getBasicData.action",
//设置为同步
async:false,
dataType: "json",
success: function (systemInfo)
{
personList = systemInfo.showModel.map.personList;
var msgTip = systemInfo.showModel.msgTip;
if(msgTip == "exceptoin")
{
$.messager.alert('提示','查找系统基础信息异常,请与管理员联系!','error');
return;
}
}
});
}
//初始化页面选项卡
function initSelectInfo_person(){
var options1 = "";
if(personList !=null)
{
for(var i = 0 ;i < personList.length;i++)
{
var person = personList[i];
if(0 == i)
{
personID = person.id;
}
if(person.type=="仓管员")
{
options1 += '<option value="' + person.id + '">' + person.name + '</option>';
}
}
$("#HandsPersonId").empty().append(options1);
}
}
//获取账户信息
function initSystemData_account(){
$.ajax({
type:"post",
url: path + "/account/getAccount.action",
//设置为同步
async:false,
dataType: "json",
success: function (systemInfo)
{
accountList = systemInfo.showModel.map.accountList;
var msgTip = systemInfo.showModel.msgTip;
if(msgTip == "exceptoin")
{
$.messager.alert('提示','查找账户信息异常,请与管理员联系!','error');
return;
}
}
});
}
//获取账户信息
function initSelectInfo_account(){
var options = "";
if(accountList !=null)
{
options = "";
for(var i = 0 ;i < accountList.length;i++)
{
var account = accountList[i];
options += '<option value="' + account.id + '" data-currentAmount="' + account.currentAmount + '">' + account.name + '</option>';
}
$("#AccountId").empty().append(options);
}
}
//防止表单提交重复
function initForm(){
$('#depotHeadFM').form({
onSubmit: function(){
return false;
}
});
}
//初始化表格数据
function initTableData(){
var hideType = undefined;
if(payTypeTitle === "隐藏"){
hideType = true; //隐藏当前列
}
$('#tableData').datagrid({
//iconCls:'icon-save',
//width:700,
height:heightInfo,
rownumbers: false,
//动画效果
animate:false,
//选中单行
singleSelect : true,
collapsible:false,
selectOnCheck:false,
//fitColumns:true,
//单击行是否选中
//checkOnSelect : false,
//url: path + '/depotHead/findBy.action?pageSize=' + initPageSize,
pagination: true,
//交替出现背景
striped : true,
//loadFilter: pagerFilter,
pageSize: 5,
pageList: initPageNum,
columns:[[
{ field: 'Id',width:35,align:"center",checkbox:true},
{field: 'OrganId',width:5, hidden:true},
{ title: '单据编号',field: 'Number',width:100},
{ title: '单据日期 ',field: 'OperTime',width:100},
{ title: '创建时间',field: 'CreateTime',width:100},
{ title: '操作员',field: 'OperPersonName',width:80},
{ title: '合计',field: 'TotalPrice',width:50},
{ title: payTypeTitle,field: 'ChangeAmount',width:50,hidden:hideType},
{ title: '单据备注',field: 'Remark',width:100},
{ title: '操作',field: 'op',align:"center",width:180,formatter:function(value,rec)
{
var str = '';
var rowInfo = rec.Id + 'AaBb' + rec.ProjectId+ 'AaBb' + rec.Number+ 'AaBb' + rec.OperPersonName
+ 'AaBb' + rec.OperTime+ 'AaBb' + rec.OrganId+ 'AaBb' + rec.HandsPersonId
+ 'AaBb' + rec.AccountId+ 'AaBb' + rec.ChangeAmount+ 'AaBb' + rec.Remark
+ 'AaBb' + rec.ProjectName+ 'AaBb' + rec.OrganName+ 'AaBb' + rec.HandsPersonName
+ 'AaBb' + rec.AccountName + 'AaBb' + rec.TotalPrice + 'AaBb' + rec.AllocationProjectId
+ 'AaBb' + rec.AllocationProjectName + 'AaBb' + rec.payType;
if(1 == value)
{
str += '<a onclick="showDepotHead(\'' + rowInfo + '\');" style="text-decoration:none;color:black;" href="javascript:void(0)"><span class="action-show">查看</span></a>';
str += '<a onclick="editDepotHead(\'' + rowInfo + '\');" style="text-decoration:none;color:black;" href="javascript:void(0)"><span class="action-edit">编辑</span></a>';
str += '<a onclick="deleteDepotHead('+ rec.Id +',' + rec.OrganId +',' + rec.TotalPrice+ ');" style="text-decoration:none;color:black;" href="javascript:void(0)"><span class="action-delete">删除</span></a>';
}
return str;
}
}
]],
toolbar:[
{
id:'addDepotHead',
text:'增加',
iconCls:'icon-add',
handler:function()
{
addDepotHead();
}
},
{
id:'deleteDepotHead',
text:'删除',
iconCls:'icon-remove',
handler:function()
{
batDeleteDepotHead();
}
}
],
onLoadError:function()
{
$.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error');
return;
}
});
}
//初始化表格数据-商品列表-编辑状态
function initTableData_material(type,TotalPrice){
$('#materialData').datagrid({
height:300,
rownumbers: false,
//动画效果
animate:false,
//选中单行
singleSelect : true,
collapsible:false,
selectOnCheck:false,
//fitColumns:true,
//单击行是否选中
//checkOnSelect : false,
pagination: true,
//交替出现背景
striped : true,
showFooter: true,
//loadFilter: pagerFilter,
onClickRow: onClickRow,
pageSize: 50,
pageList: [50,100,150],
columns:[[
{ field: 'Id',width:35,align:"center",checkbox:true},
{ title: '商品名称',field: 'MaterialId',width:230,
formatter:function(value,row,index){
return row.MaterialName;
},
editor:{
type:'combobox',
options:{
valueField:'Id',
textField:'MaterialName',
method:'get',
url: path + "/material/findBySelect.action",
onSelect:function(rec){
if(rec) {
$.ajax({
url: path + "/material/findById.action",
type: "get",
dataType: "json",
data: {
"MaterialID": rec.Id
},
success: function (res) {
if(res && res.rows && res.rows[0]) {
var retailPrice = res.rows[0].RetailPrice; //零售价格
var presetPriceOne = res.rows[0].PresetPriceOne; //价格1
var presetPriceTwo = res.rows[0].PresetPriceTwo; //价格2
var TotalPrice = 0;
var allPrice = 0;
var body =$("#depotHeadFM .datagrid-body");
var footer =$("#depotHeadFM .datagrid-footer");
var input = ".datagrid-editable-input";
body.find("[field='OperNumber']").find(input).val(1);
if(listSubType == "零售" || listSubType == "零售退货") {
body.find("[field='UnitPrice']").find(input).val(retailPrice);
body.find("[field='AllPrice']").find(input).val(retailPrice);
allPrice = retailPrice;
}
else if(listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") {
body.find("[field='UnitPrice']").find(input).val(presetPriceOne);
body.find("[field='AllPrice']").find(input).val(presetPriceOne);
allPrice = presetPriceOne;
}
body.find("[field='AllPrice']").each(function(){
if($(this).find("div").text()!==""){
TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString());
}
});
TotalPrice = TotalPrice + allPrice;
footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2));
if(listSubType == "零售" || listSubType == "零售退货") {
$("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2));
$("#backAmount").val(0);
}
}
},
error: function() {
$.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error');
}
});
}
}
}
}
},
{ title: '数量',field: 'OperNumber',editor:'validatebox',width:50},
{ title: '单价',field: 'UnitPrice',editor:'validatebox',width:50},
{ title: '金额',field: 'AllPrice',editor:'validatebox',width:50},
{ title: '备注',field: 'Remark',editor:'validatebox',width:150}
]],
toolbar:[
{
id:'append',
text:'新增',
iconCls:'icon-add',
handler:function()
{
append(); //新增
}
},
{
id:'delete',
text:'删除',
iconCls:'icon-remove',
handler:function()
{
removeit(); //删除
}
},
{
id:'reject',
text:'撤销',
iconCls:'icon-undo',
handler:function()
{
reject(); //撤销
}
}
],
onLoadError:function()
{
$.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error');
return;
}
});
$.ajax({
type:"post",
url: path + '/depotItem/findBy.action?HeaderId=' + depotHeadID,
dataType: "json",
success: function (res) {
var AllPrice = 0
if(type === "edit") {
AllPrice = TotalPrice;
}
var array = [];
array.push({
"AllPrice": AllPrice
});
res.footer = array;
$("#materialData").datagrid('loadData',res);
},
error:function() {
$.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error');
}
});
}
//初始化表格数据-商品列表-查看状态
function initTableData_material_show(TotalPrice){
$('#materialDataShow').datagrid({
height:300,
rownumbers: true,
//动画效果
animate:false,
//选中单行
singleSelect : true,
collapsible:false,
selectOnCheck:false,
//fitColumns:true,
//单击行是否选中
//checkOnSelect : false,
pagination: true,
//交替出现背景
striped : true,
showFooter: true,
//loadFilter: pagerFilter,
onClickRow: onClickRow,
pageSize: 50,
pageList: [50,100,150],
columns:[[
{ title: '商品名称',field: 'MaterialName',width:230},
{ title: '数量',field: 'OperNumber',width:50},
{ title: '单价',field: 'UnitPrice',width:50},
{ title: '金额',field: 'AllPrice',width:50},
{ title: '备注',field: 'Remark',width:150}
]],
onLoadError:function()
{
$.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error');
return;
}
});
$.ajax({
type:"post",
url: path + '/depotItem/findBy.action?HeaderId=' + depotHeadID,
dataType: "json",
success: function (res) {
var AllPrice = TotalPrice;
var array = [];
array.push({
"AllPrice": AllPrice
});
res.footer = array;
$("#materialDataShow").datagrid('loadData',res);
},
error:function() {
$.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error');
}
});
}
//分页信息处理
function ininPager(){
try
{
var opts = $("#tableData").datagrid('options');
var pager = $("#tableData").datagrid('getPager');
pager.pagination({
onSelectPage:function(pageNum, pageSize)
{
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',
{
pageNumber:pageNum,
pageSize:pageSize
});
showDepotHeadDetails(pageNum,pageSize);
}
});
}
catch (e)
{
$.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error');
}
}
//删除单据信息
function deleteDepotHead(depotHeadID, thisOrganId, totalPrice){
$.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r)
{
if (r)
{
$.ajax({
type:"post",
url: path + "/depotHead/delete.action",
dataType: "json",
data: ({
depotHeadID : depotHeadID,
clientIp: clientIp
}),
success: function (tipInfo)
{
var msg = tipInfo.showModel.msgTip;
if(msg == '成功')
{
//加载完以后重新初始化
$("#searchBtn").click();
}
else
$.messager.alert('删除提示','删除单据信息失败,请稍后再试!','error');
},
//此处添加错误处理
error:function()
{
$.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error');
return;
}
});
//更新会员的预收款信息
if(listSubType === "零售") {
$.ajax({
type:"post",
url: path + "/supplier/updateAdvanceIn.action",
dataType: "json",
data:{
SupplierID: thisOrganId, //会员id
AdvanceIn: totalPrice //删除时同时返还用户的预付款
},
success: function(res){
if(res) {
//保存会员预收款成功
}
},
error: function(){
$.messager.alert('提示','保存信息异常,请稍后再试!','error');
return;
}
});
}
}
});
}
//批量删除单据信息
function batDeleteDepotHead(){
var row = $('#tableData').datagrid('getChecked');
if(row.length == 0)
{
$.messager.alert('删除提示','没有记录被选中!','info');
return;
}
if(row.length > 0)
{
$.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r)
{
if (r)
{
var ids = "";
for(var i = 0;i < row.length; i++)
{
if(i == row.length-1)
{
ids += row[i].Id;
break;
}
//alert(row[i].id);
ids += row[i].Id + ",";
}
//批量更新会员的预收款信息
for(var i = 0;i < row.length; i ++) {
if(listSubType === "零售") {
$.ajax({
type:"post",
url: path + "/supplier/updateAdvanceIn.action",
dataType: "json",
data:{
SupplierID: row[i].OrganId, //会员id
AdvanceIn: row[i].TotalPrice //删除时同时返还用户的预付款
},
success: function(res){
if(res) {
//保存会员预收款成功
}
},
error: function(){
$.messager.alert('提示','保存信息异常,请稍后再试!','error');
return;
}
});
}
}
//批量删除
$.ajax({
type:"post",
url: path + "/depotHead/batchDelete.action",
dataType: "json",
async : false,
data: ({
depotHeadIDs : ids,
clientIp: clientIp
}),
success: function (tipInfo)
{
var msg = tipInfo.showModel.msgTip;
if(msg == '成功')
{
//加载完以后重新初始化
$("#searchBtn").click();
$(":checkbox").attr("checked",false);
}
else
$.messager.alert('删除提示','删除单据信息失败,请稍后再试!','error');
},
//此处添加错误处理
error:function()
{
$.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error');
return;
}
});
}
});
}
}
//新增信息
function addDepotHead(){
$("#clientIp").val(clientIp);
$('#depotHeadFM').form('clear');
var thisDate = getNowFormatDate(); //当前日期
$("#OperTime").val(thisDate);
var thisNumber = getNowFormatDateNum(); //根据时间生成编号
$("#Number").val(amountNum + thisNumber).focus();
var addTitle = listTitle.replace("列表","信息");
$('#depotHeadDlg').dialog('open').dialog('setTitle','<img src="' + path + '/js/easyui-1.3.5/themes/icons/edit_add.png"/>&nbsp;增加' + addTitle);
$(".window-mask").css({ width: webW ,height: webH});
orgDepotHead = "";
depotHeadID = 0;
initTableData_material("add"); //商品列表
reject(); //撤销下、刷新商品列表
url = path + '/depotHead/create.action';
//零售单据修改收款时,自动计算找零
if(listSubType == "零售" || listSubType == "零售退货") {
$("#payType").val("现付");
$("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员
//当会员卡号长度超过10位后自动点击下拉框用于兼容刷卡器
$("#OrganId").next().find("input").off("keyup").on("keyup",function(){
var self = this;
if($(this).val().length === 10){
setTimeout(function(){
$(".combo-panel .combobox-item-selected").click();
//更新付款类型,加载会员的预付款的金额
for(var i=0; i<orgDefaultList.length; i++){
var rec = orgDefaultList[i];
if(rec.supplier == $(self).val()){
var option = "";
if(rec.supplier !== "非会员" && rec.advanceIn >0){
option = '<option value="预付款">预付款(' + rec.advanceIn + ')</option>';
option += '<option value="现付">现付</option>';
}
else {
option += '<option value="现付">现付</option>';
}
$("#payType").empty().append(option);
}
}
},500);
}
});
var getAmount = $("#depotHeadFM .get-amount");
var changeAmount = $("#depotHeadFM .change-amount");
var backAmount = $("#depotHeadFM .back-amount");
getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化
getAmount.off("keyup").on("keyup",function() {
if(changeAmount.val()){
backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2));
}
});
}
}
//编辑信息
function editDepotHead(depotHeadTotalInfo){
var depotHeadInfo = depotHeadTotalInfo.split("AaBb");
$("#clientIp").val(clientIp);
$("#ProjectId").focus().val(depotHeadInfo[1]);
var ProjectId=depotHeadInfo[1];
if(ProjectId!='')
{
initSystemData_person(ProjectId);
initSelectInfo_person();
}
$("#Number").val(depotHeadInfo[2]);
$("#OperTime").val(depotHeadInfo[4]);
$('#OrganId').combobox('setValue', depotHeadInfo[5]);
$("#HandsPersonId").val(depotHeadInfo[6]);
$("#AccountId").val(depotHeadInfo[7]);
$("#ChangeAmount").val(depotHeadInfo[8]);
$("#ChangeAmount").attr("data-changeamount", depotHeadInfo[8]);
$("#Remark").val(depotHeadInfo[9]);
var TotalPrice = depotHeadInfo[14];
preTotalPrice = depotHeadInfo[14]; //记录前一次合计金额,用于扣预付款
$("#AllocationProjectId").val(depotHeadInfo[15]);
//orgDepotHead = depotHeadInfo[1];
var editTitle = listTitle.replace("列表","信息");
$('#depotHeadDlg').dialog('open').dialog('setTitle','<img src="' + path + '/js/easyui-1.3.5/themes/icons/pencil.png"/>&nbsp;编辑' + editTitle);
$(".window-mask").css({ width: webW ,height: webH});
depotHeadID = depotHeadInfo[0];
if(listSubType === "零售" ){
var option = "";
if(depotHeadInfo[17] === "预付款"){
option = '<option value="预付款">预付款</option>';
option += '<option value="现付">现付</option>';
}
else {
option += '<option value="现付">现付</option>';
}
$("#payType").empty().append(option);
}
initTableData_material("edit",TotalPrice); //商品列表
reject(); //撤销下、刷新商品列表
url = path + '/depotHead/update.action?depotHeadID=' + depotHeadInfo[0];
}
//查看信息
function showDepotHead(depotHeadTotalInfo){
var depotHeadInfo = depotHeadTotalInfo.split("AaBb");
$("#ProjectIdShow").text(depotHeadInfo[10]);
$("#NumberShow").text(depotHeadInfo[2]);
$("#OperTimeShow").text(depotHeadInfo[4]);
$('#OrganIdShow').text(depotHeadInfo[11]);
$("#HandsPersonIdShow").text(depotHeadInfo[12]);
$("#AccountIdShow").text(depotHeadInfo[13]);
$("#ChangeAmountShow").text(depotHeadInfo[8]);
$("#RemarkShow").text(depotHeadInfo[9]);
$("#payTypeShow").text(depotHeadInfo[17]);
var TotalPrice = depotHeadInfo[14];
$("#AllocationProjectIdShow").text(depotHeadInfo[16]);
var showTitle = listTitle.replace("列表","信息");
$('#depotHeadDlgShow').dialog('open').dialog('setTitle','<img src="' + path + '/js/easyui-1.3.5/themes/icons/list.png"/>&nbsp;查看' + showTitle);
$(".window-mask").css({ width: webW ,height: webH});
depotHeadID = depotHeadInfo[0];
initTableData_material_show(TotalPrice); //商品列表-查看状态
//零售单据修改收款时,自动计算找零
if(listSubType == "零售"){
$("#depotHeadDlgShow .get-amount-show").text($("#depotHeadDlgShow .change-amount-show").text());
$("#depotHeadDlgShow .back-amount-show").text(0);
}
}
//绑定操作事件
function bindEvent(){
showDepotHeadDetails(1,initPageSize); //初始化时自动查询
//搜索处理
$("#searchBtn").off("click").on("click",function(){
showDepotHeadDetails(1,initPageSize);
var opts = $("#tableData").datagrid('options');
var pager = $("#tableData").datagrid('getPager');
opts.pageNumber = 1;
opts.pageSize = initPageSize;
pager.pagination('refresh',
{
pageNumber:1,
pageSize:initPageSize
});
});
//重置按钮
$("#searchResetBtn").unbind().bind({
click:function(){
//$("#searchProjectId").val("");
$("#searchState").val("");
$("#searchBeginTime").val("");
$("#searchEndTime").val("");
//加载完以后重新初始化
$("#searchBtn").click();
}
});
//保存信息
$("#saveDepotHead").unbind().bind({
click:function()
{
if(!$('#depotHeadFM').form('validate'))
return;
else {
//输入框提示
if(listTitle === "采购入库列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择收货仓库!','warning');
return;
}
if(!$('#OrganId').combobox('getValue')){
$.messager.alert('提示','请选择供货单位!','warning');
return;
}
if(!$('#HandsPersonId').val()){
$.messager.alert('提示','请选择经手人!','warning');
return;
}
if(!$('#AccountId').val()){
$.messager.alert('提示','请选择付款账户!','warning');
return;
}
}
else if(listTitle === "零售退货列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择收货仓库!','warning');
return;
}
if(!$('#AccountId').val()){
$.messager.alert('提示','请选择付款账户!','warning');
return;
}
if(!$('#HandsPersonId').val()){
$.messager.alert('提示','请选择经手人!','warning');
return;
}
}
else if(listTitle === "销售退货列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择收货仓库!','warning');
return;
}
if(!$('#OrganId').combobox('getValue')){
$.messager.alert('提示','请选择退货单位!','warning');
return;
}
if(!$('#HandsPersonId').val()){
$.messager.alert('提示','请选择经手人!','warning');
return;
}
if(!$('#AccountId').val()){
$.messager.alert('提示','请选择付款账户!','warning');
return;
}
}
else if(listTitle === "其它入库列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择收货仓库!','warning');
return;
}
if(!$('#OrganId').combobox('getValue')){
$.messager.alert('提示','请选择往来单位!','warning');
return;
}
if(!$('#HandsPersonId').val()){
$.messager.alert('提示','请选择经手人!','warning');
return;
}
}
else if(listTitle === "零售出库列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择发货仓库!','warning');
return;
}
if(!$('#AccountId').val()){
$.messager.alert('提示','请选择收款账户!','warning');
return;
}
if(!$('#HandsPersonId').val()){
$.messager.alert('提示','请选择经手人!','warning');
return;
}
}
else if(listTitle === "销售出库列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择发货仓库!','warning');
return;
}
if(!$('#OrganId').combobox('getValue')){
$.messager.alert('提示','请选择购买单位!','warning');
return;
}
if(!$('#AccountId').val()){
$.messager.alert('提示','请选择收款账户!','warning');
return;
}
}
else if(listTitle === "采购退货列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择发货仓库!','warning');
return;
}
if(!$('#OrganId').combobox('getValue')){
$.messager.alert('提示','请选择收货单位!','warning');
return;
}
if(!$('#HandsPersonId').val()){
$.messager.alert('提示','请选择经手人!','warning');
return;
}
if(!$('#AccountId').val()){
$.messager.alert('提示','请选择收款账户!','warning');
return;
}
}
else if(listTitle === "其它出库列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择发货仓库!','warning');
return;
}
if(!$('#OrganId').combobox('getValue')){
$.messager.alert('提示','请选择往来单位!','warning');
return;
}
if(!$('#HandsPersonId').val()){
$.messager.alert('提示','请选择经手人!','warning');
return;
}
}
else if(listTitle === "调拨出库列表"){
if(!$("#ProjectId").val()){
$.messager.alert('提示','请选择发货仓库!','warning');
return;
}
if(!$('#HandsPersonId').val()){
$.messager.alert('提示','请选择经手人!','warning');
return;
}
if(!$("#AllocationProjectId").val()){
$.messager.alert('提示','请选择收货仓库!','warning');
return;
}
}
var OrganId = null, AllocationProjectId = null;
var ChangeAmount = $.trim($("#ChangeAmount").val());
var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text();
if(listSubType !=="调拨"){
OrganId = $('#OrganId').combobox('getValue');
}
else {
AllocationProjectId = $.trim($("#AllocationProjectId").val()); //收货仓库-对方
}
if(listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){
//付款为负数
ChangeAmount = 0 - ChangeAmount;
TotalPrice = 0 - TotalPrice;
}
//零售时候,可以从会员预付款中扣款
var thisPayType = "现付";
if(listSubType === "零售") {
if($("#payType").val() ==="预付款") {
thisPayType = "预付款";
}
}
$.ajax({
type:"post",
url: url,
dataType: "json",
async : false,
data: ({
Type: listType,
SubType: listSubType,
ProjectId: $.trim($("#ProjectId").val()),
AllocationProjectId: AllocationProjectId,
Number: $.trim($("#Number").val()),
OperTime: $("#OperTime").val(),
OrganId: OrganId,
HandsPersonId: $.trim($("#HandsPersonId").val()),
AccountId: $.trim($("#AccountId").val()),
ChangeAmount: ChangeAmount, //付款/收款
TotalPrice: TotalPrice, //合计
PayType: thisPayType, //现付/预付款
Remark: $.trim($("#Remark").val()),
clientIp: clientIp
}),
success: function (tipInfo)
{
if(tipInfo)
{
function closeDialog(){
$('#depotHeadDlg').dialog('close');
var opts = $("#tableData").datagrid('options');
showDepotHeadDetails(opts.pageNumber,opts.pageSize);
}
if(thisPayType === "预付款") {
//更新用户信息-预付款
var advanceIn = 0; //预付款金额
if(depotHeadID){
advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额
}
else{
advanceIn = TotalPrice; //新增时,预付款=合计金额
}
$.ajax({
type:"post",
url: path + "/supplier/updateAdvanceIn.action",
dataType: "json",
data:{
SupplierID: OrganId, //会员id
AdvanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款
},
success: function(res){
if(res) {
//保存会员预收款成功
}
},
error: function(){
$.messager.alert('提示','保存信息异常,请稍后再试!','error');
return;
}
});
}
//保存明细记录
if(depotHeadID ==0)
{
getMaxId(); //查找最大的Id
accept(depotHeadMaxId); //新增
closeDialog();
}
else
{
accept(depotHeadID); //修改
closeDialog();
}
}
else
{
$.messager.show({
title: '错误提示',
msg: '保存信息失败,请稍后重试!'
});
}
},
//此处添加错误处理
error:function()
{
$.messager.alert('提示','保存信息异常,请稍后再试!','error');
return;
}
});
}
}
});
//初始化键盘enter事件
$(document).keydown(function(event){
//兼容 IE和firefox 事件
var e = window.event || event;
var k = e.keyCode||e.which||e.charCode;
//兼容 IE,firefox 兼容
var obj = e.srcElement ? e.srcElement : e.target;
//绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if(k == "13"&&(obj.id=="State"||obj.id=="Number"))
{
$("#saveDepotHead").click();
}
//搜索按钮添加快捷键
if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"))
{
$("#searchBtn").click();
}
});
}
function showDepotHeadDetails(pageNo,pageSize){
$.ajax({
type:"post",
url: path + "/depotHead/findBy.action",
dataType: "json",
data: ({
ProjectId:$.trim($("#searchProjectId").val()),
DepotIds: depotString,
Type: listType,
SubType:listSubType,
State:$.trim($("#searchState").val()),
Number:$.trim($("#searchNumber").val()),
BeginTime:$("#searchBeginTime").val(),
EndTime:$("#searchEndTime").val(),
pageNo:pageNo,
pageSize:pageSize
}),
success: function (data)
{
$("#tableData").datagrid('loadData',data);
},
//此处添加错误处理
error:function()
{
$.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error');
return;
}
});
}
//自动计算事件
function autoReckon() {
//延时绑定事件
setTimeout(function(){
var body =$("#depotHeadFM .datagrid-body");
var footer =$("#depotHeadFM .datagrid-footer");
var input = ".datagrid-editable-input";
//点击商品下拉框,自动加载数量、单价、金额
//修改单价,自动计算金额和合计
body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){
var UnitPrice =$(this).val()-0; //单价
var TotalPrice = 0;
var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量
body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2));
body.find("[field='AllPrice']").each(function(){
if($(this).find("div").text()!==""){
TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString());
}
});
TotalPrice = TotalPrice + UnitPrice*OperNumber;
footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2));
if(listSubType == "零售" || listSubType == "零售退货") {
$("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2));
$("#backAmount").val(0);
}
});
//点击单价,自动提示参考价格列表
body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){
var self = this;
var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id
if(!mValue) {
return;
}
else {
if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") {
return;
}
$.ajax({
url: path + "/material/findById.action",
type: "get",
dataType: "json",
data: {
"MaterialID": mValue - 0
},
success: function(res){
if(res && res.rows && res.rows[0]) {
var retailPrice = res.rows[0].RetailPrice;
var presetPriceOne = res.rows[0].PresetPriceOne;
var presetPriceTwo = res.rows[0].PresetPriceTwo;
//定义模版
var temp = "<div class='price-list'>";
temp +="<ul>";
temp +="<li>预设售价1" + presetPriceOne + "</li>";
temp +="<li>预设售价2" + presetPriceTwo + "</li>";
temp +="<li>零售价:" + retailPrice + "</li>";
temp +="</ul>";
temp +="</div>";
if($('.price-list').length){
$('.price-list').remove(); //如果存在价格列表先移除
}
else {
$(self).after(temp); //加载列表信息
}
$('.price-list ul li').off("click").on("click",function(){
var price = $(this).text();
price = price.substring(price.indexOf("") + 1);
$(self).val(price);
$(self).keyup(); //模拟键盘操作
$('.price-list').remove(); //移除价格列表
});
//点击空白处移除价格列表
$(".datagrid-body").off("click").on("click",function(){
$('.price-list').remove(); //移除价格列表
});
}
},
error: function(){
$.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error');
return;
}
});
}
});
//修改数量,自动计算金额和合计
body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){
var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价
var TotalPrice = 0;
var OperNumber =$(this).val()-0; //数量
body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2));
body.find("[field='AllPrice']").each(function(){
if($(this).find("div").text()!==""){
TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString());
}
});
TotalPrice = TotalPrice + UnitPrice*OperNumber;
footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2));
if(listSubType == "零售" || listSubType == "零售退货") {
$("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2));
$("#backAmount").val(0);
}
});
//修改金额,自动计算单价和合计
body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){
var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量
var TotalPrice = 0;
var AllPrice =$(this).val()-0; //金额
body.find("[field='UnitPrice']").find(input).val((AllPrice/OperNumber).toFixed(2));
body.find("[field='AllPrice']").each(function(){
if($(this).find("div").text()!==""){
TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString());
}
});
TotalPrice = TotalPrice + AllPrice;
footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2));
if(listSubType == "零售" || listSubType == "零售退货") {
$("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2));
$("#backAmount").val(0);
}
});
},500);
}
//结束编辑
function endEditing() {
if (editIndex == undefined) { return true }
if ($('#materialData').datagrid('validateRow', editIndex)) {
var ed = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'});
var MaterialName = $(ed.target).combobox('getText');
$('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName;
$('#materialData').datagrid('endEdit', editIndex);
editIndex = undefined;
return true;
} else {
return false;
}
}
//单击
function onClickRow(index) {
if (editIndex != index) {
if (endEditing()) {
$('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index);
editIndex = index;
autoReckon();
} else {
$('#materialData').datagrid('selectRow', editIndex);
}
}
}
//新增
function append(){
if (endEditing()) {
$('#materialData').datagrid('appendRow', {});
editIndex = $('#materialData').datagrid('getRows').length - 1;
$('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex);
autoReckon();
}
}
//删除
function removeit(){
if (editIndex == undefined) { return }
$('#materialData').datagrid('cancelEdit', editIndex)
.datagrid('deleteRow', editIndex);
editIndex = undefined;
}
//撤销
function reject() {
$('#materialData').datagrid('rejectChanges');
editIndex = undefined;
}
//判断
function CheckData() {
var row = $('#materialData').datagrid('getRows');
var totalRowNum = "";
for (var i = 0; i < row.length; i++) {
if (row[i].MaterialId == "") {
totalRowNum += (i + 1) + "、";
}
}
if (totalRowNum != "") {
var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1);
$.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info');
return false;
}
return true;
}
//保存
function accept(accepId) {
append();
removeit();
if ($("#materialData").datagrid('getChanges').length) {
if (!CheckData())
return false;
var inserted = $("#materialData").datagrid('getChanges', "inserted");
var deleted = $("#materialData").datagrid('getChanges', "deleted");
var updated = $("#materialData").datagrid('getChanges', "updated");
$.ajax({
type: "post",
url: path + "/depotItem/saveDetials.action",
data: {
Inserted: JSON.stringify(inserted),
Deleted: JSON.stringify(deleted),
Updated: JSON.stringify(updated),
HeaderId:accepId,
clientIp: clientIp
},
success: function (tipInfo)
{
if (tipInfo) {
$.messager.alert('提示','保存成功!','info');
}
else
$.messager.alert('提示','保存失败!','error');
},
error: function (XmlHttpRequest, textStatus, errorThrown)
{
$.messager.alert('提示',XmlHttpRequest.responseText,'error');
}
});
}
if (endEditing()) {
$('#materialData').datagrid('acceptChanges');
}
}
//获取MaxId
function getMaxId(){
var depotHeadMax=null;
$.ajax({
type:"post",
url: path + "/depotHead/getMaxId.action",
//设置为同步
async:false,
dataType: "json",
success: function (systemInfo)
{
if(systemInfo)
{
depotHeadMax = systemInfo.showModel.map.depotHeadMax;
var msgTip = systemInfo.showModel.msgTip;
if(msgTip == "exceptoin")
{
$.messager.alert('提示','查找最大的Id异常,请与管理员联系!','error');
return;
}
}
else
{
depotHeadMax=null;
}
}
});
if(depotHeadMax !=null)
{
if(depotHeadMax.length>0)
{
depotHeadMaxId=depotHeadMax[0];
}
}
}