// 定义字段映射
const FieldKeysMap = {
	"LT_STK_StockCount": "FID,FEntity_FEntryID,FBillNo,FIsCheck,FCheckTag,FStockId.fnumber,FStockId.FName,FStockLocId.FF102029.fname,FMaterialId.fnumber,FEnchaseNo,FBoxNo,FCheckNum,FAccountNum"

};

export function getSearchParam(condition) {
	let FilterString = [{ //其他出库
			"Left": "(",
			"FieldName": "FDocumentStatus",
			"Compare": "105",
			"Value": "A",
			"Right": "",
			"Logic": 1
		},
		// {//审核中
		// 	"Left": "",
		// 	"FieldName": "FDocumentStatus",
		// 	"Compare": "105",
		// 	"Value": "B",
		// 	"Right": "",
		// 	"Logic": 1
		// },
		{
			"Left": "",
			"FieldName": "FDocumentStatus",
			"Compare": "105",
			"Value": "D",
			"Right": ")",
			"Logic": 0
		}, {
			"Left": "",
			"FieldName": "FStockOrgId.FNumber",
			"Compare": "67",
			"Value": condition.FStockOrgId,
			"Right": "",
			"Logic": 0
		},
		{
			"FieldName": "FBillNo",
			"Compare": "17",
			"Value": condition.billNo,
			"Left": "",
			"Right": "",
			"Logic": 0
		},
		{
			"Left": "",
			"FieldName": "FStockId.FName",
			"Compare": "17",
			"Value": "面料",
			"Right": "",
			"Logic": 0
		},
		{
			"FieldName": "FDate",
			"Compare": "39",
			"Value": condition.range[0],
			"Left": "(",
			"Right": "",
			"Logic": "0"
		},
		{
			"FieldName": "FDate",
			"Compare": "16",
			"Value": condition.range[1],
			"Left": "",
			"Right": ")",
			"Logic": "0"
		}
	]
	let FieldKeys =
		"FID,FWorkCenterId.fname,FPickingPeople_LT.fname,FSTOCKERID.fname,FBillNo,FDate,FNote,FStockOrgId"
	console.log(condition.FBillType)
	if (condition.FBillType == "d43d7e5b9def82fc11e3e582178e4360") { //领料
		FilterString.push({
			"Left": "",
			"FieldName": "FBillType",
			"Compare": "105",
			"Value": condition.FBillType,
			"Right": "",
			"Logic": 0
		});
		console.log('aaaa')
		FieldKeys =
			"FID,FWorkCenterId_LT.fname,FApplicantId.fname,FSTOCKERID.fname,FBillNo,FDate,FDescription,FStockOrgId"
	}
	if (condition.FormId == "STK_MisDelivery") { //其他出库
		FilterString.push({
			"Left": "",
			"FieldName": "FStockDirect",
			"Compare": "29",
			"Value": "GENERAL",
			"Right": "",
			"Logic": 0
		});
		FieldKeys =
			"FID,FWorkCenterId.fname,FPickingPeople_LT.fname,FSTOCKERID.fname,FBillNo,FDate,FNote,FStockOrgId,FDeptId.FName,FPickerId.FName"
	}
	if (condition.FormId == "SP_PickMtrl" && condition.FBillType !== 'B') { //简单生产领料单
		FilterString.push({
			"Left": "",
			"FieldName": "FCollectStatus_LT",
			"Compare": "106",
			"Value": "B",
			"Right": "",
			"Logic": 0
		});
		FieldKeys =
			"FID,FWorkCenterId.fname,FPickerId.fname,FSTOCKERID.fname,FBillNo,FDate,FDescription,FStockOrgId,FPickingPeople_LT.FName,FCollectStatus_LT"
	}
	if (condition.FormId == "SP_PickMtrl" && condition.FBillType == 'B') { //简单生产领料单(智能)
		FilterString.push({
			"Left": "",
			"FieldName": "FCollectStatus_LT",
			"Compare": "105",
			"Value": "B",
			"Right": "",
			"Logic": 0
		});
		FieldKeys =
			"FID,FWorkCenterId.fname,FPickerId.fname,FSTOCKERID.fname,FBillNo,FDate,FDescription,FStockOrgId,FPickingPeople_LT.FName,FCollectStatus_LT"
	}
	if (condition.FormId == "PUR_MRB") { //采购退料单
		FieldKeys =
			"FID,FSupplierID.fname,FPURCHASERID.fname,FPURCHASEDEPTID.fname,FSTOCKERID.fname,FBillNo,FDate,FStockOrgId"
	}
	if (condition.FormId == "STK_OEMInStockRETURN") {
		FieldKeys =
			"FID,FCustId.FName,FDeptId_LT.FName,FBillNo,FSTOCKERID.fname,FDate,FNote,FStockOrgId"
	}
	if (condition.FormId == "SAL_OUTSTOCK") { //销售出库
		FieldKeys =
			"FID,FBillNo,FCustomerID.FName,FSalesManID.FName,FSaleDeptID.FName,FSTOCKERID.fname,FDate"
	}
	if (condition.FormId == "LT_STK_StockCount" && condition.FBillType == "6764c6f5bb0056") { //仓位盘点
		FilterString.push({
			"Left": "",
			"FieldName": "FBillTypeID",
			"Compare": "105",
			"Value": condition.FBillType,
			"Right": "",
			"Logic": 0
		});
		FieldKeys =
			// "FID,FBillNo,FCustomerID.FName,FSalesManID.FName,FSaleDeptID.FName,FSTOCKERID.fname,FDate"
			"FID,FBillNo,FDate,FCreatorId.FName"
	}
	console.log(FieldKeys)
	console.log(FilterString)

	return {
		"parameters": [{
			"FormId": condition.FormId,
			"FieldKeys": FieldKeys,
			"FilterString": FilterString
		}]
	}
}

export function getBillDetailListParam(condition) {
	console.log(condition)
	let FieldKeys = FieldKeysMap[condition.FormId]
	if (condition.FormId == "SP_PickMtrl" && condition.FBillType == 'B') {
		FieldKeys =
			"FID,FSumEntity_FEntryID,FBillNo,FSTOCKERID.fname,FSumStockLocId.FF102029.fname,FSumMaterialId.fnumber,FSumBoxNo_LT,FSumActualQty,FSumEnchaseNum_LT,FSumAuxPropId.FF101501.FNumber,FSumLot.FNumber,FWorkCenterId.fname,FDate,FPickerId.fname,FWorkShopId.fname,FPickingPeople_LT.FName"
	}

	return {
		"parameters": [{
			"FormId": condition.FormId,
			"FieldKeys": FieldKeys,
			"FilterString": [{
				"Left": "",
				"FieldName": "FID",
				"Compare": "338",
				"Value": condition.selectedFID,
				"Right": "",
				"Logic": 0
			}],
		}]
	}

}
// 定义一个函数来创建库存查询请求数据
export function createInventoryQueryRequest(value) {
	return {
		parameters: [{
			FormId: "STK_Inventory",
			FieldKeys: "fID",
			FilterString: [{
					Left: "",
					FieldName: "FStockLocId.FF102029.FName",
					Compare: "67",
					Value: value,
					Right: "",
					Logic: 0
				},
				{
					Left: "",
					FieldName: "FBaseQty",
					Compare: "21",
					Value: "0",
					Right: "",
					Logic: 0
				}
			]
		}]
	};
}

function createEntityObject(item) {
	return {
		"FEntryID": item["FEntity.FEntryID"],
		"FStockId": {
			"FNumber": item["FStockId.fnumber"]
		},
		"FStockLocId": {
			"FSTOCKLOCID__FF102029": {
				"FNumber": item["FStockLocId.FF102029.fname"]
			}
		},
		"FMaterialId": {
			"FNumber": item["FMaterialId.fnumber"]
		},
		"FEnchaseNo": item["FEnchaseNo"],
		"FAuxPropId": {
			"FAUXPROPID__FF101501": {
				"FNumber": item["FAuxPropId.FF101501.FDATAVALUE"]
			},
		},
		"FLot": {
			"FNumber": item["FLot.FNumber"]
		},
		"FAccountNum": item["FAccountNum"],
		"FCheckTag": item["FCheckTag"],
		"FCheckNum": item["FCheckNum"],
		"FBoxNo": item["FBoxNo"]
		// [actualQtyKey]: item[actualQtyKey] // 使用动态键名
	};
}

// function createEntityObject2(item) {
// 	return {
// 		"FEntryID": item["FSumEntity.FEntryID"],
// 		"FSumAuxPropId": {
// 			"FSUMAUXPROPID__FF101501": {
// 				"FNumber": item["FSumAuxPropId.FF101501.FDATAVALUE"]
// 			}
// 		},
// 		"FSumStockLocId": {
// 			"FSUMSTOCKLOCID__FF102029": {
// 				"FNumber": item["FSumStockLocId.FF102029.fname"]
// 			}
// 		},
// 		"FSumLot": {
// 			"FNumber": item["FSumLot.FNumber"]
// 		},
// 		"FSumEnchaseNum_LT": item["FSumEnchaseNum.LT"],
// 		"FSumActualQty": item["FSumActualQty"]
// 	};
// }

export function getSaveParam(FormId, targetFID, indexList) {
	// const targetFID = data;
	// const actualQtyKey = getActualQtyKey(FormId);
	// const InventoryQtyKey = getFInventoryQtyKey(FormId);
	// const entityKey = getEntityKey(FormId);
	// const StockLocIdKey = getStockLocIdKey(FormId);
	const FEntityObjects = indexList
		.filter(item => item.FID === targetFID)
		.map(item => createEntityObject(item));

	const needUpdateFields = [
		// InventoryQtyKey,
		// "FAuxPropId",
		"FIsCheck",
		"FStockId",
		"FStockLocId",
		"FMaterialId",
		"FEnchaseNo",
		"FAuxPropId", //等级
		"FLot", //批号
		"FAccountNum",
		"FCheckTag",
		"FCheckNum",
		"FBoxNo"
	];

	return {
		"parameters": [
			FormId,
			{
				"NeedUpDateFields": needUpdateFields,
				"NeedReturnFields": ["FID"],
				"IsDeleteEntry": "true",
				"SubSystemId": "",
				"IsVerifyBaseDataField": "false",
				"IsEntryBatchFill": "true",
				"ValidateFlag": "true",
				"NumberSearch": "true",
				"IsAutoAdjustField": "false",
				"InterationFlags": "",
				"IgnoreInterationFlag": "",
				"IsControlPrecision": "false",
				"ValidateRepeatJson": "false",
				"Model": {
					"FID": targetFID,
					"FIsCheck": indexList[0]["FIsCheck"],
					// "FIsScanFabric": true,
					"FEntity": FEntityObjects
				}
			}
		]
	};
}
export function createSubmitCondition() {
	return {
		FormId: uni.getStorageSync('formId'),
		selectedFID: this.selected,
		FBillType: uni.getStorageSync('fbillType')
	};
}
export function getCreateParam(FormId) {
	const BillType = uni.getStorageSync('fbillType')
	let FBillTypeIDFNUMBER
	if (BillType == "6764c6f5bb0056") {
		FBillTypeIDFNUMBER = "CWPD"
	} else if (BillType == "6764c7a4bb007d") {
		FBillTypeIDFNUMBER = "RKPD"
	} else {
		FBillTypeIDFNUMBER = "CKPD"
	}

	return {
		"parameters": [
			FormId,
			{
				"NeedUpDateFields": [],
				"NeedReturnFields": [],
				"IsDeleteEntry": "true",
				"SubSystemId": "",
				"IsVerifyBaseDataField": "false",
				"IsEntryBatchFill": "true",
				"ValidateFlag": "true",
				"NumberSearch": "true",
				"IsAutoAdjustField": "false",
				"InterationFlags": "",
				"IgnoreInterationFlag": "",
				"IsControlPrecision": "false",
				"ValidateRepeatJson": "false",
				"Model": {
					"FID": 0,
					"FBillTypeID": {
						"FNUMBER": FBillTypeIDFNUMBER
					},
					"FStockOrgId": {
						"FNumber": uni.getStorageSync('FStockOrgId')
					},
					"FIsCheck": "A"
				}
			}
		]
	};
}
export function getSubmitParam(FormId, data) {
	const params = {
		"parameters": [
			FormId,
			{
				"CreateOrgId": 0,
				"Numbers": [],
				"Ids": data.toString(),
				"SelectedPostId": 0,
				"UseOrgId": 0,
				"NetworkCtrl": "",
				"IgnoreInterationFlag": ""
			}
		]
	};
	console.log(params);
	return params;
}
export function getQueryStockParam(Id, selectedFID,date) {
	const BillType = uni.getStorageSync('fbillType')
	let queryType
	if (BillType == "6764c6f5bb0056") {
		queryType = "StockQuery"
	} else if (BillType == "6764c7a4bb007d") {
		queryType = "InLocQuery"
	} else {
		queryType = "OutLocQuery"
	}
	const params = {
		usertoken: "99302b4923aa42298c5922b7b68bcff9",
		billId: Id,
		queryType: queryType,
		stockLocs: selectedFID,
		date: date
	}
	console.log(params);
	return params;
}
export function getAuditParam(FormId, data) {
	const params = {
		"parameters": [
			FormId,
			{
				"CreateOrgId": 0,
				"Numbers": [],
				"Ids": data.toString(),
				"InterationFlags": "",
				"UseOrgId": 0,
				"NetworkCtrl": "",
				"IsVerifyProcInst": "true",
				"IgnoreInterationFlag": "",
				"UseBatControlTimes": "false"
			}
		]
	}
	console.log(params)
	return params
}
// export function getAuditParam(FormId, data) {
// 	const params = {
// 		"parameters": [
// 			FormId,
// 			{
// 				"CreateOrgId": 0,
// 				"Numbers": [],
// 				"Ids": data.toString(),
// 				"InterationFlags": "",
// 				"UseOrgId": 0,
// 				"NetworkCtrl": "",
// 				"IsVerifyProcInst": "true",
// 				"IgnoreInterationFlag": "",
// 				"UseBatControlTimes": "false"
// 			}
// 		]
// 	}
// 	console.log(params)
// 	return params
// }
export function createSearchCondition(range, billNo) {
	return {
		"FormId": uni.getStorageSync('formId'),
		"FBillType": uni.getStorageSync('fbillType'),
		"FStockOrgId": uni.getStorageSync('FStockOrgId'),
		"billNo": billNo,
		"range": range
	};
}