盤點單組織js數據提交(json2)

/*
盤點單,組織不同的list提交數據到action
*/
var stockCheck={
	init:{
		initEvent:function(){
			stockCheck.pFunction.queryList();
			//綁定檢測輸入框
			$("input[name='ssqty']").die("blur");
			$("input[name='ssqty']").live("blur",function(){
				stockCheck.pFunction.estimate.call(this);
			});
			
			$("#subBtn").die("click");
			$("#subBtn").live("click",function(){
				var remark=$("#remark").val();
				var date=stockCheck.pFunction.getDate();
				stockCheck.data.otherInputItem.remark=remark;
				stockCheck.data.otherInputItem.billDate=date;
				stockCheck.data.otherOutItem.remark=remark;
				stockCheck.data.otherOutItem.billDate=date;
				$.post("stockCheckAction_generateBills.php",{otherInputInfo:JSON.stringify(stockCheck.data.otherInputItem),otherOutInfo:JSON.stringify(stockCheck.data.otherOutItem)},function(data){
					if(data=="true"){
						showDialog("alert", "生成單據成功!", "信息", 300);
							var parameter = {
							wareHouseId: stockCheck.data.product.warehouseId,
							'category.id': stockCheck.data.product.categoryId,
							isNull: stockCheck.data.product.isNull,
							name: stockCheck.data.product.name
						};
						$("#tbContainer").load("stockCheckAction_dynamicQuery.php", parameter);
					}else{
						showDialog("alert", "生成單據失敗!", "信息", 300);
					}
				});
			});
		},
		initData:function(){
			var warehouseId=$('#warehouseId option:selected').val();
			var categoryId=$("#categoryId").val();
			var isNull=$("input[name='isNull']").is(':checked')?"1":"0";
			var name=$("input[name='name']").val();
			stockCheck.data.product.warehouseId=warehouseId;
			stockCheck.data.product.categoryId=categoryId;
			stockCheck.data.product.isNull=isNull;
			stockCheck.data.product.name=name;
			
		}
	},
	pFunction: {
		queryList: function(){
			var container = $("#tbContainer");
			$("#No4 a").each(function(){
				if ($(this).text() == "查詢") {
					$(this).unbind("click");
					$(this).bind("click", function(){
						stockCheck.init.initData();
						var parameter = {
							wareHouseId: stockCheck.data.product.warehouseId,
							'category.id': stockCheck.data.product.categoryId,
							isNull: stockCheck.data.product.isNull,
							name: stockCheck.data.product.name
						};
						container.load("stockCheckAction_dynamicQuery.php", parameter);
					});
				}
			});
		},
		//輸入的庫存
		estimate: function(){
					var wareHouseId = $(this).parent().next().find("input[id='warehouseId']").val();
					var productId = $(this).parent().next().find("input[id='productId']").val();
					var identify = wareHouseId + productId;//鑑別列,倉庫id+商品id
					var parax = $(this).val();
					var qty = $(this).parent().next().find("input[name='qty']").val();
			//輸入框爲空時,清空並刪除數組中的記錄
			if ($.trim(parax) == "") {
				//正數清除otherInputItem
					if(qty<0){
							for (var i = 0; i < stockCheck.data.otherOutItem["otherOutputWareHouseItemList"].length; i++) {
							if (stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['wareHouse.id'] + stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['product.id'] == identify) {
								 break;
							}
						}
						stockCheck.data.otherOutItem["otherOutputWareHouseItemList"].splice(i, 1);
					}else{
						for (var i = 0; i < stockCheck.data.otherInputItem["otherInputWareHouseItemList"].length; i++) {
						if (stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['wareHouse.id'] + stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['product.id'] == identify) {
							 break;
						}
					}
					stockCheck.data.otherInputItem["otherInputWareHouseItemList"].splice(i, 1);
				}
				$(this).parent().next().find("input[name='qty']").removeAttr("style").val("");
				return;
			}
			//輸入框爲非數字時
			if (isNaN(parax)) {
				showDialog("alert", "請輸入數字!", "信息", 300);
					if(qty<0){
						for (var i = 0; i < stockCheck.data.otherOutItem["otherOutputWareHouseItemList"].length; i++) {
							if (stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['wareHouse.id'] + stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['product.id'] == identify) {
								 break;
							}
						}
						stockCheck.data.otherOutItem["otherOutputWareHouseItemList"].splice(i, 1);
					}else{
						for (var i = 0; i < stockCheck.data.otherInputItem["otherInputWareHouseItemList"].length; i++) {
						if (stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['wareHouse.id'] + stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['product.id'] == identify) {
							 break;
						}
					}
					stockCheck.data.otherInputItem["otherInputWareHouseItemList"].splice(i, 1);
				}
				$(this).val("");
				$(this).parent().next().find("input[name='qty']").val("");
				return;
			}
			var paray = $(this).parent().prev().text();
			var paraz = parax - paray;
			//平
			if(paraz==0){
					$(this).parent().next().find("input[name='qty']").val(paraz);
					return false;
			}
			if ((paraz) > 0) {
				//盤點多了,入庫TODO
				$(this).parent().next().find("input[name='qty']").removeAttr("style").val(paraz);
				stockCheck.pFunction.addInputItem.call(this);
			}
			else {
				//盤點少了,出庫
				$(this).parent().next().find("input[name='qty']").css("color", "red").val(paraz);
				stockCheck.pFunction.addOutputItem.call(this);
			}
		},
		//入庫list添加
		addInputItem: function(){
			var productId = $(this).parent().next().find("input[id='productId']").val();
			var unit = $(this).parent().siblings().eq(5).text();
			var qty = $(this).parent().next().find("input[name='qty']").val();
			var unitprice = $(this).parent().next().find("input[id='avgCost']").val();
			var wareHouseId = $(this).parent().next().find("input[id='warehouseId']").val();
			var inputAmount = stockCheck.pFunction.floatMul(unitprice, qty);
			var identify = wareHouseId + productId;//鑑別列,倉庫id+商品id
			//校驗,重複離開焦點,修改並計算
			for (var i = 0; i < stockCheck.data.otherInputItem["otherInputWareHouseItemList"].length; i++) {
				if (stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['wareHouse']['id'] + stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['product']['id'] == identify) {
					stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['qty']=qty;
					stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['inputPrice']=unitprice;
					stockCheck.data.otherInputItem["otherInputWareHouseItemList"][i]['inputAmount']=stockCheck.pFunction.floatMul(unitprice,qty);
//					window.alert("這個類別已經填加!");
					return false;
				}
			}
			//組裝入庫單的item,提交時加入remark
			var item = {
				'id': "",
				'product':{'id':productId,'unit':unit},
				'qty': qty,
				'inputPrice': unitprice,
				'inputAmount': inputAmount,
				'wareHouse':{'id':wareHouseId},
				'billId': ""
			}
			stockCheck.data.otherInputItem["otherInputWareHouseItemList"].push(item);
		},
		//出庫list添加
		addOutputItem:function(){
			var productId = $(this).parent().next().find("input[id='productId']").val();
			var unit = $(this).parent().siblings().eq(5).text();
			var qty = Math.abs($(this).parent().next().find("input[name='qty']").val());
			var unitprice = $(this).parent().next().find("input[id='avgCost']").val();
			var wareHouseId = $(this).parent().next().find("input[id='warehouseId']").val();
			var inputAmount = stockCheck.pFunction.floatMul(unitprice, qty);
			var identify = wareHouseId + productId;//鑑別列,倉庫id+商品id
			//校驗,重複離開焦點,修改並計算
			for (var i = 0; i < stockCheck.data.otherOutItem["otherOutputWareHouseItemList"].length; i++) {
				if (stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['wareHouse']['id'] + stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['product']['id'] == identify) {
					stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['qty']=qty;
					stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['unitCost']=unitprice;
					stockCheck.data.otherOutItem["otherOutputWareHouseItemList"][i]['cost']=stockCheck.pFunction.floatMul(unitprice,qty);
//					window.alert("這個類別已經填加!");
					return false;
				}
			}
			//組裝入庫單的item,提交時加入remark 
			var item = {
				'id': "",
				'product':{'id':productId,'unit':unit},
				'qty': qty,
				'unitCost': unitprice,
				'cost': inputAmount,
				'wareHouse':{'id':wareHouseId},
				'billId': ""
			}
			stockCheck.data.otherOutItem["otherOutputWareHouseItemList"].push(item);
		},
		//浮點乘法
		floatMul: function(arg1, arg2){
			var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
			try {
				m += s1.split(".")[1].length
			} 
			catch (e) {
			}
			try {
				m += s2.split(".")[1].length
			} 
			catch (e) {
			}
			return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
		},
		//浮點數加法運算  
		floatAdd: function(arg1, arg2){
			var r1, r2, m;
			try {
				r1 = arg1.toString().split(".")[1].length
			} 
			catch (e) {
				r1 = 0
			}
			try {
				r2 = arg2.toString().split(".")[1].length
			} 
			catch (e) {
				r2 = 0
			}
			m = Math.pow(10, Math.max(r1, r2))
			return (arg1 * m + arg2 * m) / m
		},
		//浮點數減法運算  
		floatSub: function(arg1, arg2){
			var r1, r2, m, n;
			try {
				r1 = arg1.toString().split(".")[1].length
			} 
			catch (e) {
				r1 = 0
			}
			try {
				r2 = arg2.toString().split(".")[1].length
			} 
			catch (e) {
				r2 = 0
			}
			m = Math.pow(10, Math.max(r1, r2));
			//動態控制精度長度  
			n = (r1 >= r2) ? r1 : r2;
			return ((arg1 * m - arg2 * m) / m).toFixed(n);
		},
		//浮點數除法運算  
		floatDiv: function(arg1, arg2){
			var t1 = 0, t2 = 0, r1, r2;
			try {
				t1 = arg1.toString().split(".")[1].length
			} 
			catch (e) {
			}
			try {
				t2 = arg2.toString().split(".")[1].length
			} 
			catch (e) {
			}
			with (Math) {
				r1 = Number(arg1.toString().replace(".", ""))
				r2 = Number(arg2.toString().replace(".", ""))
				return (r1 / r2) * pow(10, t2 - t1);
			}
		},
		getDate:function(){
			 	var today = new Date();
                var weekday=new Array(7)
                weekday[0]="星期一"
                weekday[1]="星期二"
                weekday[2]="星期三"
                weekday[3]="星期四"
                weekday[4]="星期五"
                weekday[5]="星期六"
                weekday[6]="星期日"                                        
                var y=today.getFullYear()+"年";
                var month=today.getMonth()+"月";
                var td=today.getDate()+"日";
                var d=weekday[today.getDay()];
                var h=today.getHours();
                var m=today.getMinutes();
                var s=today.getSeconds();      
				return	today;
		}
},		
		
		data: {
			product: {
				warehouseId: '',
				categoryId: '',
				name: '',
				isNull: ''
			},
			//入庫實體
			otherInputItem: {
				'id': "",
				'provider':{id:''},
				'billDate': "",
				'billNo': "",
				'bizType': "inventory_profit",
				'otherInputWareHouseItemList': [],
				'remark': "",
				'totalAmount': "",
				'creator': "",
				'belongToBillNo': "",
				'bizCategory': "inventory_profit"
			},
			//出庫實體
			otherOutItem: {
				'id': "",
				'customer':{id:''},
				'billDate': "",
				'billNo': "",
				'bizType': "inventory_losses",
				'otherOutputWareHouseItemList': [],
				'remark': "",
				'totalAmount': "",
				'creator': "",
				'belongToBillNo': "",
				'bizCategory': "inventory_losses"
			}
		}
};
$(function(){
	stockCheck.init.initEvent();

});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章