|
|
@@ -39,7 +39,8 @@ Page({
|
|
|
name: 'whName',
|
|
|
title: mixins.$t("warehouseId"), //'仓库',
|
|
|
type: 'drop',
|
|
|
- dropType: 'warehouse'
|
|
|
+ dropType: 'warehouse',
|
|
|
+ required: true
|
|
|
},
|
|
|
{
|
|
|
code: 'skuSpec',
|
|
|
@@ -75,7 +76,7 @@ Page({
|
|
|
contentObj: {
|
|
|
main: [{
|
|
|
code: 'supId',
|
|
|
- name: 'supName',
|
|
|
+ name: 'supplierName',
|
|
|
title: mixins.$t("supplier"), //'供应商',
|
|
|
type: 'choose',
|
|
|
required: true,
|
|
|
@@ -111,18 +112,7 @@ Page({
|
|
|
title: mixins.$t("sourceOrder"), //'关联源单',
|
|
|
urlKey: 'choosePurchaseOrder'
|
|
|
}],
|
|
|
- items: [{
|
|
|
- code: 'collectType',
|
|
|
- name: 'collectName',
|
|
|
- type: 'drop',
|
|
|
- required: true,
|
|
|
- dropType: 'collect'
|
|
|
- }, {
|
|
|
- code: 'collectAmount',
|
|
|
- type: 'number',
|
|
|
- title: mixins.$t("amountCollected"), //'收款金额',
|
|
|
- required: true
|
|
|
- }],
|
|
|
+ items: [ ],
|
|
|
|
|
|
other: [{
|
|
|
code: 'remarks',
|
|
|
@@ -138,7 +128,40 @@ Page({
|
|
|
// 路由
|
|
|
routeObjName: 'inbound',
|
|
|
//接口
|
|
|
- purchaseService: app.globalData['purchaseService'],
|
|
|
+ purchaseService: app.globalData['purchaseService'], //采购订单 路由
|
|
|
+ inboundProcessingService: app.globalData['inboundProcessingService'],
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 选择框右边删除 回调
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ clear(e) {
|
|
|
+ let code = e.detail.code
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
+ if (code == "sourceNo") { //来源单号
|
|
|
+ let contentList_ = this.data.contentList
|
|
|
+ let cardList = this.data.cardList
|
|
|
+ formData.goodsList = []
|
|
|
+ contentList_.forEach(card => {
|
|
|
+ if (card.code === 'amount') {
|
|
|
+ card.content = 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ cardList.forEach(card => {
|
|
|
+ if (card.name === 'items') {
|
|
|
+ card.itemAmt = 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.setData({
|
|
|
+ contentList: contentList_,
|
|
|
+ cardList,
|
|
|
+ chooseVisible: false,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ formData: JSON.stringify(formData)
|
|
|
+ })
|
|
|
},
|
|
|
/**
|
|
|
* @desc : 绑定数据
|
|
|
@@ -152,7 +175,7 @@ Page({
|
|
|
let data = e.detail.data.data
|
|
|
if (code == "supId") { //供应商
|
|
|
formData.supId = data.id
|
|
|
- formData.supName = data.name
|
|
|
+ formData.supplierName = data.name
|
|
|
}
|
|
|
if (code == "staffId") { //员工
|
|
|
formData.staffId = data.id
|
|
|
@@ -165,10 +188,13 @@ Page({
|
|
|
if (code == "whId") { //仓库
|
|
|
formData.whId = data.id
|
|
|
formData.whName = data.name
|
|
|
- formData.goodsList.forEach(element => { //总单的入库仓库 作为一个总开关 直接改变 所以品的仓库
|
|
|
- element.whId = data.id
|
|
|
- element.whName = data.whName
|
|
|
- });
|
|
|
+ if(formData.goodsList){
|
|
|
+ formData.goodsList.forEach(element => { //总单的入库仓库 作为一个总开关 直接改变 所以品的仓库
|
|
|
+ element.whId = data.id
|
|
|
+ element.whName = data.whName
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
if (code == "sourceNo") { //来源单
|
|
|
this.calculateTotal(data.chooosepurchaseItemResponseList)
|
|
|
@@ -179,9 +205,105 @@ Page({
|
|
|
formData: JSON.stringify(formData)
|
|
|
})
|
|
|
},
|
|
|
+ /**
|
|
|
+ * @desc : 给表单赋值
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
+ * @author : 王英杰
|
|
|
+ */
|
|
|
+ setValuesByEdit(data) {
|
|
|
+ { //是否可编辑逻辑
|
|
|
+ if (data.fromId) { //有来源单据
|
|
|
+ this.setData({ //隐藏选商品按钮
|
|
|
+ chooseVisible: true
|
|
|
+ })
|
|
|
+ if (this.data.isSysSetting) { //系统参数为自动办理
|
|
|
+ if (this.data.nopay) { //未付款
|
|
|
+ data.goodsList.forEach(element => {
|
|
|
+ // (添加商品、修改数量不能超出订单商品范围)添加商品TODO(后期改为跳入来源单据让他选择原单数据回来)
|
|
|
+ element['itemQty_max'] = element.purItemQty - element.purItemIntoingQty - element.purItemIntoQty + element.intoQty
|
|
|
+ });
|
|
|
+
|
|
|
+ } else { //已付款 (只可以编辑备注和附件)
|
|
|
+ this.setData({
|
|
|
+ readonly: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else { //系统参数为手动办理
|
|
|
+ if (data.intoStatus = Constants.intoStatus.inBounding) { //入库中 可以编辑修改商品、数量(修改商品、数量不能超出订单商品范围)和备注附件
|
|
|
+ data.goodsList.forEach(element => {
|
|
|
+ // (添加商品、修改数量不能超出订单商品范围)添加商品TODO(后期改为跳入来源单据让他选择原单数据回来)
|
|
|
+ element['itemQty_max'] = element.purItemQty - element.purItemIntoingQty - element.purItemIntoQty + element.intoQty
|
|
|
+ });
|
|
|
+ } else { //已入库(未付款、已付款),只可以编辑备注、附件
|
|
|
+ this.setData({
|
|
|
+ readonly: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else { //无来源单据
|
|
|
+ if (this.data.isSysSetting) { //系统参数为自动办理
|
|
|
+ if (this.data.nopay) { //已入库(未付款),可以编辑修改数量(修改商品、数量不限制,数量改大时要校验库存量)和备注附件;
|
|
|
+ data.goodsList.forEach(element => { // 设置库存量未最大值
|
|
|
+ element['itemQty_max'] = element.invQty
|
|
|
+ });
|
|
|
+ } else { //已付款 (只可以编辑备注和附件)
|
|
|
+ this.setData({
|
|
|
+ readonly: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else { //系统参数为手动办理
|
|
|
+ if (data.intoStatus = Constants.intoStatus.inBounded) { //已入库
|
|
|
+ if(this.data.nopay){ //(未付款),可以编辑修改数量(修改商品、数量不限制,数量改大时要校验库存量)和备注附件
|
|
|
+ data.goodsList.forEach(element => { // 设置库存量未最大值
|
|
|
+ element['itemQty_max'] = element.invQty
|
|
|
+ });
|
|
|
+ }else{//已付款 (只可以编辑备注和附件)
|
|
|
+ this.setData({
|
|
|
+ readonly: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let purIdArray_ = this.data.purIdArray //来源单id
|
|
|
+ let cardList_ = this.data.cardList
|
|
|
+ let contentList_ = this.data.contentList //底部按钮上的合计金额
|
|
|
+
|
|
|
+ // 提取purNo字段为数组,并去重
|
|
|
+ const purNoArray = [...new Set(data.goodsList.map(item => item.purNo))];
|
|
|
+ const purIdArray = [...new Set(data.goodsList.map(item => item.purId))]
|
|
|
+ // 将数组元素转换为逗号分隔的字符串
|
|
|
+ data.fromNo = purNoArray.join(','); //来源单号
|
|
|
+ purIdArray_ = purIdArray.join(',');
|
|
|
+
|
|
|
+ data.goodsList.forEach(element => {
|
|
|
+ element.itemAmt = element.intoingAmt * element.intoingQty
|
|
|
+ element.itemQty = element.intoingQty
|
|
|
+ });
|
|
|
+ cardList_.forEach(card => { //循环出商品总共价格 展示用
|
|
|
+ if (card.name === 'items') {
|
|
|
+ card.itemAmt = data.goodsList.sum("itemAmt")
|
|
|
+ }
|
|
|
+ })
|
|
|
+ contentList_.forEach(card => { //底部按钮 展示价格 用
|
|
|
+ if (card.code === 'amount') {
|
|
|
+ card.content = data.goodsList.sum("itemAmt")
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 刷新商品明细 显示 查看更多
|
|
|
+ let card = this.data.cardList.filter(it => it.name == 'items');
|
|
|
+ this.selectComponent('#'+this.data.formName).handleContentObj(card[0])
|
|
|
|
|
|
+ this.setData({
|
|
|
+ contentList: contentList_,
|
|
|
+ purIdArray: purIdArray_,
|
|
|
+ cardList: cardList_,
|
|
|
+ formData: JSON.stringify(data)
|
|
|
+ })
|
|
|
+ },
|
|
|
/**
|
|
|
- * @desc :处理商品
|
|
|
+ * @desc :处理商品(选择采购订单处理)
|
|
|
* @date : 2024/2/1 15:49
|
|
|
* @author : 王英杰
|
|
|
*/
|
|
|
@@ -201,6 +323,7 @@ Page({
|
|
|
formData.goodsList.forEach(element => {
|
|
|
element.intoingAmt = element.itemAmt
|
|
|
element.intoingQty = element.itemQty
|
|
|
+ element.sumAmt = element.itemQty * element.itemAmt
|
|
|
element.costPrice = element.pricePur
|
|
|
element.costAmt = element.itemAmt
|
|
|
element.fromId = element.purId
|
|
|
@@ -218,12 +341,12 @@ Page({
|
|
|
});
|
|
|
cardList_.forEach(card => { //循环出商品总共价格 展示用
|
|
|
if (card.name === 'items') {
|
|
|
- card.itemAmt = formData.goodsList.sum("itemAmt")
|
|
|
+ card.itemAmt = formData.goodsList.sum("sumAmt")
|
|
|
}
|
|
|
})
|
|
|
contentList_.forEach(card => { //底部按钮 展示价格 用
|
|
|
if (card.code === 'amount') {
|
|
|
- card.content = formData.goodsList.sum("itemAmt")
|
|
|
+ card.content = formData.goodsList.sum("sumAmt")
|
|
|
}
|
|
|
})
|
|
|
this.setData({
|
|
|
@@ -278,7 +401,7 @@ Page({
|
|
|
* @date : 2024/2/1 15:49
|
|
|
* @author : 王英杰
|
|
|
*/
|
|
|
- validData() {
|
|
|
+ validData() {
|
|
|
let formData = JSON.parse(this.data.formData)
|
|
|
let that = this
|
|
|
if (formData.goodsList == null || formData.goodsList.length == 0) {
|
|
|
@@ -286,6 +409,7 @@ Page({
|
|
|
title: "请选择商品明细",
|
|
|
icon: 'none'
|
|
|
})
|
|
|
+
|
|
|
return false
|
|
|
}
|
|
|
// 明细的数量和仓库不能为空
|
|
|
@@ -296,6 +420,7 @@ Page({
|
|
|
title: mixins.$t("chooseWh"),
|
|
|
icon: 'none'
|
|
|
})
|
|
|
+
|
|
|
return false
|
|
|
}
|
|
|
//如果 设置了总单的仓库 然后又进行选品 没设置一样的仓库 那就把总单上的仓库清空
|
|
|
@@ -313,9 +438,10 @@ Page({
|
|
|
title: mixins.$t("inputWords") + "[" + element.skuCode + "]" + mixins.$t("count"),
|
|
|
icon: 'none'
|
|
|
})
|
|
|
+
|
|
|
return false
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
return true
|
|
|
},
|
|
|
/**
|
|
|
@@ -325,13 +451,12 @@ Page({
|
|
|
*/
|
|
|
setParams(params) {
|
|
|
let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
|
|
|
-
|
|
|
let formData = JSON.parse(this.data.formData)
|
|
|
params.intoingAmt = formData.goodsList.sum("intoingAmt") //金额
|
|
|
params.intoingQty = formData.goodsList.sum("intoingQty") //一共的商品数量
|
|
|
params.intoAmt = 0 // 已入库金额
|
|
|
params.intoQty = 0 // 已入库数量
|
|
|
- params.automaticFlg = btnFormData ? btnFormData.flag : false //自动出入库标识
|
|
|
+ params.flgAutoHandle = btnFormData ? btnFormData.flag : false //自动出入库标识
|
|
|
params.fromId = this.data.purIdArray //来源id
|
|
|
params.fromNo = formData.fromNo //来源单号
|
|
|
params.orgId = formData.orgId //组织部门
|
|
|
@@ -351,10 +476,15 @@ Page({
|
|
|
* @author : 王英杰
|
|
|
*/
|
|
|
saveData() {
|
|
|
- return this.excute(this.data.service, this.data.service.purchaseInboundInsert + "/insert", this.data.params)
|
|
|
+ if (this.data.formMode == Constants.formMode.edit) { //编辑保存
|
|
|
+ return this.excute(this.data.inboundProcessingService, this.data.inboundProcessingService.inboundUpdate, this.data.params)
|
|
|
+ } else { //新建保存
|
|
|
+ return this.excute(this.data.inboundProcessingService, this.data.inboundProcessingService.inboundInsert, this.data.params)
|
|
|
+ }
|
|
|
+
|
|
|
},
|
|
|
/**
|
|
|
- * @desc : 查询数据
|
|
|
+ * @desc : 查询数据 (转入库调用)
|
|
|
* @date : 2024/2/1 15:49
|
|
|
* @author : 王英杰
|
|
|
*/
|
|
|
@@ -366,7 +496,17 @@ Page({
|
|
|
let excute = this.excute(this.data.purchaseService, e.id, {});
|
|
|
excute.then(res => {
|
|
|
if (res.data.code === Constants.SUCESS_CODE) {
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
+ formData = res.data.data
|
|
|
+ this.setData({
|
|
|
+ formData:JSON.stringify(formData),
|
|
|
+ chooseVisible: true
|
|
|
+ })
|
|
|
this.calculateTotal(res.data.data.purchaseItemResponseList)
|
|
|
+ // 刷新商品明细 显示 查看更多
|
|
|
+ let card = this.data.cardList.filter(it => it.name == 'items');
|
|
|
+ this.selectComponent('#'+this.data.formName).handleContentObj(card[0])
|
|
|
+
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
@@ -376,15 +516,24 @@ Page({
|
|
|
* @author : 王英杰
|
|
|
*/
|
|
|
loadInit() {
|
|
|
- let isSysSetting = false //true为自动办理 false 为手动办理
|
|
|
+ let isSysSetting = false //true为自动办理 false 为手动办理
|
|
|
let contentList = this.data.contentList
|
|
|
if (isSysSetting) { //系统参数中的自动办理参数
|
|
|
// 使用 filter 方法删除 code 为 flag 的项
|
|
|
contentList = contentList.filter(item => item.code !== 'flag');
|
|
|
this.setData({
|
|
|
- contentList:contentList,
|
|
|
+ contentList: contentList,
|
|
|
isSysSetting
|
|
|
})
|
|
|
}
|
|
|
+ if (this.data.formMode == Constants.formMode.edit) {
|
|
|
+ wx.setNavigationBarTitle({
|
|
|
+ title: mixins.$t('editPurInbound') //"编辑采购入库",
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ wx.setNavigationBarTitle({
|
|
|
+ title: mixins.$t('addPurInbound') //"新建采购入库",
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
})
|