2025-03-11 09:45:29 +08:00

314 lines
9.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view>
<u-navbar back-text="返回" title="PO入库" :background="background"></u-navbar>
<view v-show="loadding"
style="width: 100%; height: 900rpx; display: flex; justify-content: center; align-items: center;">
<u-loading mode="circle" :size="70" color="#00aaff"></u-loading>
</view>
<view class='content' v-show="!loadding">
<view style="display: flex; justify-content: space-between; margin-top: 40rpx;">
<!-- <view style="width: 15%;margin-right:10rpx; height: 10rpx;">扫描PO</view> -->
<u-input v-model="receiveRequestName" :border="true" style="background: #FFFFFF; margin-right: 10rpx;"
@confirm="queryPOInfo" :trim="true" placeholder="扫描PO"></u-input>
<u-button style="width: 15%;margin-left:10rpx;" @click="clearPOInfo">清空</u-button>
</view>
<view style="margin-top: 20rpx; height: 120rpx;">
<u-table class="main-table">
<u-tr class="u-tr">
<u-th class="u-th">PO号</u-th>
<u-th class="u-th">供应商</u-th>
<u-th class="u-th">PO类型</u-th>
<u-th class="u-th">申请人</u-th>
</u-tr>
<u-tr class="u-tr" v-for="(item,index) in poDisplaySource" :key="index">
<u-td class="u-td">{{ item.RECEIVEREQUESTNAME }}</u-td>
<u-td class="u-td">{{ item.SUPPLIERNAME }}</u-td>
<u-td class="u-td">{{ item.POGROUP }}</u-td>
<u-td class="u-td">{{ item.APPLICANT }}</u-td>
</u-tr>
</u-table>
</view>
<view style="margin-top: 20rpx; height: 5rpx; background: #E0E3DA; width: 100%;"> </view>
<!-- <u-divider>大漠孤烟直</u-divider> -->
<view class="card-body" style="display: flex; justify-content: space-between; margin-top: 20rpx;">
<view style="margin-right:10rpx; ">扫描<br />标签</view>
<u-input v-model="qrCode" :border="true" style="background: #FFFFFF; margin-right: 10rpx;"
@confirm="createBoxM(qrCode)" :trim="true" :disabled="qrCOdeDisable" placeholder="扫描标签二维码">
</u-input>
</view>
<view style="margin-top: 20rpx;">
<u-card style="border: 1rpx solid #0081FF;" :show-head="false" :full="true"
:body-style="{height: '200rpx'}">
<view class="card-body" slot="body">
<u-row gutter="12" justify="between">
<u-col :span="4">
<view class="info-label">BoxID</view>
<view></view>
</u-col>
<u-col :span="4">
<view class="info-label">物料号</view>
<view>{{createBox.materialSpecName}}</view>
</u-col>
<u-col :span="4">
<view class="info-label">库位</view>
<view></view>
</u-col>
</u-row>
<u-row justify="between" style="margin-top: 10rpx;">
<u-col :span="4">
<view class="info-label">本次<br />数量</view>
<view>{{createBox.materialQty}}</view>
</u-col>
<u-col :span="4">
<view class="info-label">已收<br />总数</view>
<view></view>
</u-col>
<u-col :span="4">
<view class="info-label">剩余<br />数量</view>
<view></view>
</u-col>
</u-row>
</view>
</u-card>
<view class="card-body" style="display: flex; justify-content: space-between; margin-top: 20rpx;">
<view style="margin-right:10rpx; ">抬头<br />文本</view>
<u-input v-model="ACTNO" :border="true" style="background: #FFFFFF; margin-right: 10rpx;"
:trim="true" :disabled="true"></u-input>
<u-button style="width: 15%;margin-left:10rpx;" @click="getStockInInfo">刷新</u-button>
</view>
<view style="margin-top: 20rpx;">
<u-table class="main-table">
<u-tr class="u-tr">
<u-th class="u-th">物料号</u-th>
<u-th class="u-th">ERP库位</u-th>
<u-th class="u-th" width="140rpx">接收数量</u-th>
<u-th class="u-th">行项目</u-th>
<u-th class="u-th">可关单数量</u-th>
</u-tr>
<u-tr class="u-tr" v-for="(item,index) in POStockInfo" :key="index">
<u-td class="u-td">{{ item.MATERIALPSECNAME }}</u-td>
<u-td class="u-td">{{ item.ERPLOCATION }}</u-td>
<u-td class="u-td" width="140rpx">{{ item.MATERIALQUANTITY }}</u-td>
<u-td class="u-td">{{ item.RECEIVEREQUESTDETAILNAME }}</u-td>
<u-td class="u-td">{{ item.RELEASEDQTY }}</u-td>
</u-tr>
</u-table>
</view>
<u-button style="width: 100%; margin-top: 50rpx; background-color:#0081FF; color: white;"
@click="submit">过账提交</u-button>
</view>
</view>
<u-toast ref="uTakeOverToast" />
</view>
</template>
<script>
import {
QueryInfo,
CreateBoxID_PO
} from '../../../common/api.js'
export default {
data() {
return {
loadding: false,
background: {
backgroundImage: 'linear-gradient(60deg, rgb(124, 187, 180), rgb(141, 198, 63))'
},
qrCOdeDisable: false,
// data
createBox: {},
receiveRequestName: '',
qrCode: '',
ACTNO: ' ',
poDisplaySource: [],
POStockInfo: [],
poQueryaram: {
queryID: "GetPOInvoiceInfo",
version: "00001",
BINDV: {
SITENAME: "BADT",
RECEIVEREQUESTNAME: "",
}
},
}
},
methods: {
// 查询PO明细
queryPOInfo() {
let _param = this.poQueryaram;
_param.queryID = "GetPOInvoiceInfo";
_param.version = "00001";
_param.BINDV.SITENAME = uni.getStorageSync("SITENAME");
_param.BINDV.RECEIVEREQUESTNAME = this.receiveRequestName.trim();
if (this.receiveRequestName == null || "" == (this.receiveRequestName.trim())) {
this.showToast('PO不能为空请确认', 'error');
return;
}
QueryInfo({
param: JSON.stringify(_param)
}).then(res => {
console.log(uni.getStorageSync("SITENAME"));
this.poDisplaySource = res.DATA;
this.qrCOdeDisable = false;
}).catch(err => {
this.showToast(err, 'error')
})
},
showToast(text, type) {
this.$refs.uTakeOverToast.show({
title: text,
type: type,
position: "bottom"
})
},
clearPOInfo() {
this.poDisplaySource = null;
this.receiveRequestName = "";
},
//查看待入库信息
getStockInInfo() {
},
//点击收货行明细跳转收货
createBoxM(item) {
let boxIdStr = item.trim();
if (boxIdStr.length > 0) {
let count = boxIdStr.split("|").length;
//标准标签格式中 | 出现次数为5
//SN|物料号|数量|供应商|制造日期|过期日
if (count != 6) {
this.showToast('标签不符合规范请确认', 'error');
return;
}
let qrCodeArr = boxIdStr.split("|");
let boxId = qrCodeArr[0];
let materialSpecName = qrCodeArr[1];
let materialQty = qrCodeArr[2];
let supplierNo = qrCodeArr[3];
let makeDate = new Date(qrCodeArr[4].substr(0, 4), parseInt(qrCodeArr[4].substr(4, 2)) - 1,
qrCodeArr[4].substr(6, 2));
let expiringDate = new Date(qrCodeArr[5].substr(0, 4), parseInt(qrCodeArr[5].substr(4, 2)) - 1,
qrCodeArr[5].substr(6, 2));
let dtNow = new Date();
dtNow.setHours(0);
dtNow.setMinutes(0);
dtNow.setSeconds(0);
this.createBox.materialSpecName = materialSpecName;
this.createBox.materialQty = materialQty;
expiringDate.setDate(expiringDate.getDate() + 1);
if (makeDate > dtNow) {
this.showToast('生产日期大于今天,不能入库!', 'error');
return;
}
if (expiringDate < dtNow) {
this.showToast('BOX已过期不能入库', 'error');
return;
}
// 1.判断box是否已经创建
let _param = this.poQueryaram;
_param.queryID = "GetBoxInfo";
_param.version = "WP005";
_param.BINDV.SITENAME = uni.getStorageSync("SITENAME");
_param.BINDV.NPFLAG = "N";
_param.BINDV.MATERIALPACKINGNAME = boxId;
QueryInfo({
param: JSON.stringify(_param)
}).then(res => {
console.log("查询box状态" + res.DATA[0]['PACKINGSTATE'])
if (res) {
this.showToast('失败BOXId' + boxId + res.DATA[0]['PACKINGSTATE'], 'error');
return ;
} else {
let createBoxParam = {};
createBoxParam.Labelstr = boxIdStr;
createBoxParam.SITENAME = uni.getStorageSync("SITENAME");
createBoxParam.MATERIALSPECNAME = qrCodeArr[1];
let a = qrCodeArr[4].substr(0, 4);
let b = qrCodeArr[4].substr(4, 2);
let c = qrCodeArr[4].substr(6, 2);
let e = qrCodeArr[3];
createBoxParam.MAKEDATE = a + "-" + b + "-" + c;
a = qrCodeArr[5].substr(0, 4);
b = qrCodeArr[5].substr(4, 2);
c = qrCodeArr[5].substr(6, 2);
createBoxParam.EXPIRINGDATE = a + "-" + b + "-" + c;
createBoxParam.RECEIVEQTY = qrCodeArr[2];
createBoxParam.SUPPLIERNAME = qrCodeArr[3];
createBoxParam.RECEIVEREQUESTNAME = this.receiveRequestName;
createBoxParam.REASONCODETYPE = "101";
createBoxParam.SUPERMATERIALPACKINGNAME = "";
createBoxParam.GROUPNO = "";
createBoxParam.NPFLAG = "N";
createBoxParam.MATERIALPACKINGNAME = qrCodeArr[0];
debugger
CreateBoxID_PO({
param: JSON.stringify(createBoxParam)
}).then(res => {
}).catch(err => {
//this.showToast(err, 'error')
this.qrCOdeDisable = false;
})
}
}).catch(err => {
this.showToast(err, 'error')
});
}
this.qrCOdeDisable = false;
}
}
}
</script>
<style lang="scss" scoped>
.content {
margin: 5rpx 18rpx;
}
.main-table {
::v-deep .u-th {
background: #0081FF !important;
color: #ffffff;
}
::v-deep .u-td {
overflow: hidden;
word-break: keep-all;
text-overflow: ellipsis
}
}
.u-tr {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis
}
view {
color: #068bff;
text-align: center;
}
</style>