otheroutletsedit.js 9.0 KB
Newer Older
doc_wei's avatar
doc_wei 已提交
1
// 已经选择的客户信息
doc_wei's avatar
doc_wei 已提交
2 3
var customerMation = {};

doc_wei's avatar
doc_wei 已提交
4
// 根据那一列的值进行变化,默认根据数量
doc_wei's avatar
doc_wei 已提交
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
var showTdByEdit = 'rkNum';

// 兼容动态表单
var layedit, form;

layui.config({
	base: basePath,
	version: skyeyeVersion
}).extend({
	window: 'js/winui.window'
}).define(['window', 'jquery', 'winui', 'laydate', 'textool'].concat(dsFormUtil.mastHaveImport), function(exports) {
	winui.renderColor();
	var index = parent.layer.getFrameIndex(window.name);
	var $ = layui.$,
		laydate = layui.laydate,
		textool = layui.textool;

	layedit = layui.layedit,
	form = layui.form;

	var selOption = getFileContent('tpl/template/select-option.tpl');
	//已经选择的商品集合key:表格的行trId,value:商品信息
	var allChooseProduct = {};

	// 获取单据提交类型
	var submitType = "";

W
weizhiqiang 已提交
32 33
	// 单据时间
	laydate.render({elem: '#operTime', type: 'datetime', trigger: 'click'});
doc_wei's avatar
doc_wei 已提交
34 35

	// 初始化账户
W
weizhiqiang 已提交
36
	systemCommonUtil.getSysAccountListByType(function (json) {
doc_wei's avatar
doc_wei 已提交
37 38 39 40 41 42 43 44 45 46 47 48
		$("#accountId").html(getDataUseHandlebars(selOption, json));
	});

	// 初始化仓库
	erpOrderUtil.getDepotList(function (json){
		$("#depotId").html(getDataUseHandlebars(selOption, json));
		// 渲染数据到页面
		initDataToShow();
	});

	//渲染数据到页面
	function initDataToShow(){
doc_wei's avatar
doc_wei 已提交
49
		AjaxPostUtil.request({url: flowableBasePath + "otheroutlets003", params: {rowId: parent.rowId}, type: 'json', method: "GET", callback: function(json) {
50
			submitType = json.bean.submitType;
doc_wei's avatar
doc_wei 已提交
51

52 53 54 55 56
			// 客户信息赋值
			customerMation = {
				id: json.bean.organId,
				customName: json.bean.customName
			}
doc_wei's avatar
doc_wei 已提交
57

58
			$("#customName").val(json.bean.customName);//客户
doc_wei's avatar
doc_wei 已提交
59

60 61 62 63 64 65 66 67 68 69 70
			$("#operTime").val(json.bean.operTime);
			$("#accountId").val(json.bean.accountId);//账户
			$("#payType").val(json.bean.payType);//付款类型
			$("#allPrice").html(json.bean.totalPrice.toFixed(2));
			$("#taxLastMoneyPrice").html(json.bean.taxLastMoneyPrice.toFixed(2));
			$("#remark").val(json.bean.remark);
			$("#discount").val(json.bean.discount.toFixed(2));
			$("#discountMoney").val(json.bean.discountMoney.toFixed(2));
			$("#discountLastMoney").html(json.bean.discountLastMoney.toFixed(2));
			$("#changeAmount").val(json.bean.changeAmount.toFixed(2));
			$("#arrears").html(json.bean.arrears.toFixed(2));
doc_wei's avatar
doc_wei 已提交
71 72 73 74 75 76 77

			initTable();

			// 回显商品列表
			initTableChooseUtil.deleteAllRow('productList');
			$.each(json.bean.norms, function(i, item) {
				if (i == 0) {
78 79
					$("#depotId").val(item.depotId);
				}
doc_wei's avatar
doc_wei 已提交
80
				var params = {
doc_wei's avatar
doc_wei 已提交
81
					"materialId": item.product.materialName + "(" + item.product.materialModel + ")",
doc_wei's avatar
doc_wei 已提交
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
					"mUnitId": {
						"html": getDataUseHandlebars(selOption, {rows: item.product.unitList}),
						"value": item.mUnitId
					},
					"currentTock": item.currentTock,
					"rkNum": item.operNum,
					"unitPrice": item.unitPrice.toFixed(2),
					"amountOfMoney": item.allPrice.toFixed(2),
					"taxRate": item.taxRate.toFixed(2),
					"taxMoney": item.taxMoney.toFixed(2),
					"taxUnitPrice": item.taxUnitPrice.toFixed(2),
					"taxLastMoney": item.taxLastMoney.toFixed(2),
					"remark": item.remark
				};
				var trcusid = initTableChooseUtil.resetData('productList', params);
				// 将规格所属的商品信息加入到对象中存储
				allChooseProduct[trcusid] = item.product;
99
			});
doc_wei's avatar
doc_wei 已提交
100

101
			erpOrderUtil.orderEditPageSetBtnBySubmitType(submitType, json.bean.state);
doc_wei's avatar
doc_wei 已提交
102

103
			textool.init({eleId: 'remark', maxlength: 200});
doc_wei's avatar
doc_wei 已提交
104

105 106
			// 加载动态表单
			dsFormUtil.loadPageToEditByObjectId("dsFormShow", json.bean.id);
doc_wei's avatar
doc_wei 已提交
107

108 109
			matchingLanguage();
			form.render();
doc_wei's avatar
doc_wei 已提交
110 111 112
		}});
	}

doc_wei's avatar
doc_wei 已提交
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
	function initTable() {
		// 商品
		initTableChooseUtil.initTable({
			id: "productList",
			cols: [
				{id: 'materialId', title: '商品(型号)', formType: 'chooseInput', width: '150', iconClassName: 'chooseProductBtn', verify: 'required'},
				{id: 'mUnitId', title: '单位', formType: 'select', width: '50', verify: 'required', layFilter: 'selectUnitProperty'},
				{id: 'currentTock', title: '库存', formType: 'detail', width: '80'},
				{id: 'rkNum', title: '数量', formType: 'input', width: '80', className: 'change-input rkNum', verify: 'required|number', value: '1'},
				{id: 'unitPrice', title: '单价', formType: 'input', width: '80', className: 'change-input unitPrice', verify: 'required|money'},
				{id: 'amountOfMoney', title: '金额', formType: 'input', width: '80', className: 'change-input amountOfMoney', verify: 'required|money'},
				{id: 'taxRate', title: '税率(%)', formType: 'input', width: '80', className: 'change-input taxRate', verify: 'required|double', value: '0.00'},
				{id: 'taxMoney', title: '税额', formType: 'input', width: '80', className: 'change-input taxMoney', verify: 'required|money'},
				{id: 'taxUnitPrice', title: '含税单价', formType: 'input', width: '80', className: 'change-input taxUnitPrice', verify: 'required|money'},
				{id: 'taxLastMoney', title: '合计价税', formType: 'input', width: '80', className: 'change-input taxLastMoney', verify: 'required|money'},
				{id: 'remark', title: '备注', formType: 'input', width: '100'}
			],
			deleteRowCallback: function (trcusid) {
				delete allChooseProduct[trcusid];
				// 计算价格
				calculatedTotalPrice();
			},
			addRowCallback: function (trcusid) {
				// 设置根据某列变化的颜色
				$("." + showTdByEdit).parent().css({'background-color': '#e6e6e6'});
				calculatedTotalPrice();
			},
			form: form,
			minData: 1
		});
	}

	// 商品规格加载变化事件
	mUnitChangeEvent(form, allChooseProduct, "estimatePurchasePrice");
doc_wei's avatar
doc_wei 已提交
147

doc_wei's avatar
doc_wei 已提交
148 149 150
	// 仓库变化事件
	form.on('select(depotId)', function(data) {
		loadMaterialDepotStockByDepotId(data.value);
doc_wei's avatar
doc_wei 已提交
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
	});

	// 保存为草稿
	form.on('submit(formEditBean)', function(data) {
		if(winui.verifyForm(data.elem)) {
			saveData('1', "");
		}
		return false;
	});

	// 走工作流的提交审批
	form.on('submit(formSubOneBean)', function(data) {
		if(winui.verifyForm(data.elem)) {
			activitiUtil.startProcess(sysActivitiModel["outIsOthers"]["key"], function (approvalId) {
				saveData("2", approvalId);
			});
		}
		return false;
	});

	// 不走工作流的提交
	form.on('submit(formSubTwoBean)', function(data) {
		if(winui.verifyForm(data.elem)) {
			saveData('2', "");
		}
		return false;
	});

	// 工作流中保存
	form.on('submit(save)', function(data) {
		if(winui.verifyForm(data.elem)) {
			saveData('3', "");
		}
		return false;
	});

187
	function saveData(subType, approvalId) {
doc_wei's avatar
doc_wei 已提交
188 189
		var result = initTableChooseUtil.getDataList('productList');
		if (!result.checkResult) {
doc_wei's avatar
doc_wei 已提交
190 191
			return false;
		}
doc_wei's avatar
doc_wei 已提交
192 193 194
		var noError = false;
		var tableData = [];
		$.each(result.dataList, function(i, item) {
doc_wei's avatar
doc_wei 已提交
195
			//获取行编号
doc_wei's avatar
doc_wei 已提交
196 197 198 199
			var thisRowKey = item["trcusid"].replace("tr", "");
			if (parseInt(item.rkNum) == 0) {
				$("#rkNum" + thisRowKey).addClass("layui-form-danger");
				$("#rkNum" + thisRowKey).focus();
doc_wei's avatar
doc_wei 已提交
200 201 202 203
				winui.window.msg('数量不能为0', {icon: 2, time: 2000});
				noError = true;
				return false;
			}
doc_wei's avatar
doc_wei 已提交
204 205 206
			if (parseInt(item.rkNum) > parseInt($("#currentTock" + thisRowKey).html())) {
				$("#rkNum" + thisRowKey).addClass("layui-form-danger");
				$("#rkNum" + thisRowKey).focus();
doc_wei's avatar
doc_wei 已提交
207 208 209 210 211
				winui.window.msg('超过库存数量.', {icon: 2, time: 2000});
				noError = true;
				return false;
			}
			//商品对象
doc_wei's avatar
doc_wei 已提交
212 213
			var material = allChooseProduct["tr" + thisRowKey];
			if (inTableDataArrayByAssetarId(material.materialId, item.mUnitId, tableData)) {
doc_wei's avatar
doc_wei 已提交
214 215 216 217
				winui.window.msg('一张单中不允许出现相同单位的商品信息.', {icon: 2, time: 2000});
				noError = true;
				return false;
			}
doc_wei's avatar
doc_wei 已提交
218
			item["materialId"] = material.materialId;
doc_wei's avatar
doc_wei 已提交
219 220
			item["depotId"] = $("#depotId").val();
			tableData.push(item);
doc_wei's avatar
doc_wei 已提交
221
		});
doc_wei's avatar
doc_wei 已提交
222
		if (noError) {
doc_wei's avatar
doc_wei 已提交
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
			return false;
		}

		var params = {
			supplierId: customerMation.id,//客户
			operTime: $("#operTime").val(),
			accountId: $("#accountId").val(),
			payType: $("#payType").val(),
			remark: $("#remark").val(),
			discount: isNull($("#discount").val()) ? "0.00" : $("#discount").val(),
			discountMoney: isNull($("#discountMoney").val()) ? "0.00" : $("#discountMoney").val(),
			changeAmount: isNull($("#changeAmount").val()) ? "0.00" : $("#changeAmount").val(),
			depotheadStr: JSON.stringify(tableData),
			subType: subType,
			submitType: submitType,
			approvalId: approvalId,
			rowId: parent.rowId
		};
doc_wei's avatar
doc_wei 已提交
241
		AjaxPostUtil.request({url: flowableBasePath + "otheroutlets004", params: params, type: 'json', method: "PUT", callback: function(json) {
242 243 244
			dsFormUtil.savePageData("dsFormShow", json.bean.id);
			parent.layer.close(index);
			parent.refreshCode = '0';
doc_wei's avatar
doc_wei 已提交
245 246 247
		}});
	}

doc_wei's avatar
doc_wei 已提交
248
	// 客户选择
W
weizhiqiang 已提交
249
	$("body").on("click", "#customMationSel", function (e) {
doc_wei's avatar
doc_wei 已提交
250 251 252 253 254
		_openNewWindows({
			url: "../../tpl/customermanage/customerChoose.html",
			title: "选择客户",
			pageId: "customerchooselist",
			area: ['90vw', '90vh'],
W
weizhiqiang 已提交
255
			callBack: function (refreshCode) {
256
				$("#customName").val(customerMation.customName);
doc_wei's avatar
doc_wei 已提交
257 258 259
			}});
	});

doc_wei's avatar
doc_wei 已提交
260 261 262 263
	// 加载商品选择事件
	initChooseProductBtnEnent(form, function(trId, chooseProductMation) {
		// 商品赋值
		allChooseProduct[trId] = chooseProductMation;
doc_wei's avatar
doc_wei 已提交
264 265 266 267 268 269
	});

	$("body").on("click", "#cancle", function() {
		parent.layer.close(index);
	});
});