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
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;
W
weizhiqiang 已提交
23
	var serviceClassName = sysServiceMation["outIsOthers"]["key"];
doc_wei's avatar
doc_wei 已提交
24 25 26 27 28 29 30 31

	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
					"mUnitId": {
						"html": getDataUseHandlebars(selOption, {rows: item.product.unitList}),
						"value": item.mUnitId
					},
86
					"allStock": item.allStock,
doc_wei's avatar
doc_wei 已提交
87 88 89 90 91 92 93 94 95 96 97 98
					"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
	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'},
120
				{id: 'allStock', title: '库存', formType: 'detail', width: '80'},
doc_wei's avatar
doc_wei 已提交
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
				{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
		});
	}

	// 商品规格加载变化事件
W
weizhiqiang 已提交
146
	mUnitChangeEvent(form, allChooseProduct, "normsEstimatePurchasePrice");
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
	});

	// 保存为草稿
	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)) {
W
weizhiqiang 已提交
164
			activitiUtil.startProcess(serviceClassName, null, function (approvalId) {
doc_wei's avatar
doc_wei 已提交
165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
				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;
			}
204
			if (parseInt(item.rkNum) > parseInt($("#allStock" + thisRowKey).html())) {
doc_wei's avatar
doc_wei 已提交
205 206
				$("#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);
	});
});