| | |
| | | <div style="font-size: 14px;margin-left: 5px;color: #a7a7a7"> |
| | | 查询项 |
| | | </div> |
| | | <div v-if="!isPermission" style="font-size: 14px;margin-left: 10px;color: red"> |
| | | 当前用户在ERP系统中不存在或未授权,无法入库提交 |
| | | </div> |
| | | <!-- <div v-if="!isPermission" style="font-size: 14px;margin-left: 10px;color: red">--> |
| | | <!-- 当前用户在ERP系统中不存在或未授权,无法入库提交--> |
| | | <!-- </div>--> |
| | | </div> |
| | | <el-form |
| | | ref="form" |
| | |
| | | v-model="form.saleOrderCode" |
| | | readonly |
| | | style="width: 200px" |
| | | @change="getProductInHouseOrderSearch" |
| | | /> |
| | | <!-- disabled--> |
| | | </el-form-item> |
| | |
| | | |
| | | <div style="display: flex"> |
| | | <el-form-item label="产品编码" style=" display: flex;"> |
| | | <el-input v-model="form.partcode" placeholder="请输入" style="width: 200px" /> |
| | | <el-input v-model="form.partcode" placeholder="请输入" style="width: 200px" @change="getProductInHouseOrderSearch" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品名称" style=" display: flex;"> |
| | | <el-input v-model="form.partname" style="width: 200px" placeholder="请输入" /> |
| | | <el-input v-model="form.partname" style="width: 200px" placeholder="请输入" @change="getProductInHouseOrderSearch" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品规格" style=" display: flex;"> |
| | | <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入" /> |
| | | <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入" @change="getProductInHouseOrderSearch" /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="工单日期" |
| | |
| | | :clearable="false" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | @change="getProductInHouseOrderSearch" |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | |
| | | <el-date-picker |
| | | v-model="form.lm_date" |
| | | style="width: 200px" |
| | | readonly |
| | | type="date" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="单据编号" style=" display: flex;"> |
| | | <el-input v-model="form.OrgName" placeholder="请输入" style="width: 200px" /> |
| | | <el-input |
| | | v-model="form.hbillno" |
| | | readonly |
| | | placeholder="请输入" |
| | | style="width: 200px" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="入库仓库" style=" display: flex;"> |
| | | <el-form-item label="入库仓库" required style=" display: flex;"> |
| | | <el-select |
| | | v-model="form.stockcode" |
| | | :popper-append-to-body="false" |
| | |
| | | class="bodySearchReset" |
| | | :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" |
| | | > |
| | | <el-button v-waves type="primary" icon="el-icon-s-promotion" @click="submit">入库提交</el-button> |
| | | <el-button |
| | | v-waves |
| | | type="primary" |
| | | icon="el-icon-s-promotion" |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | @click="submit" |
| | | >入库提交 |
| | | </el-button> |
| | | <!-- <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">重置</el-button>--> |
| | | </div> |
| | | </el-form> |
| | |
| | | :header-cell-style="this.$headerCellStyle" |
| | | :cell-style="this.$cellStyle" |
| | | @selection-change="handleSelectionChange" |
| | | @cell-dblclick="cellDblclick" |
| | | @cell-click="cellClick" |
| | | > |
| | | <!-- @cell-dblclick="cellDblclick"--> |
| | | <!-- @cell-click="cellClick"--> |
| | | <el-table-column |
| | | type="selection" |
| | | width="50" |
| | |
| | | label="序号" |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="stockcode" |
| | | label="仓库" |
| | | width="160" |
| | | show-tooltip-when-overflow |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div |
| | | v-if="!(row.index === tabClickIndex && tabClickLabel === '仓库')" |
| | | > |
| | | {{ row.stockcode ? stockcodeArr.find(i => i.code === row.stockcode).name : '/' }} |
| | | </div> |
| | | <el-select |
| | | v-if="row.index === tabClickIndex && tabClickLabel === '仓库'" |
| | | v-model="row.stockcode" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in stockcodeArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="stockcode"--> |
| | | <!-- label="仓库"--> |
| | | <!-- width="160"--> |
| | | <!-- show-tooltip-when-overflow--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div>{{ row.stockcode ? stockcodeArr.find(i => i.code === row.stockcode).name : '/' }}</div>--> |
| | | <!-- <!– <div–>--> |
| | | <!-- <!– v-if="!(row.index === tabClickIndex && tabClickLabel === '仓库')"–>--> |
| | | <!-- <!– >–>--> |
| | | <!-- <!– {{ row.stockcode ? stockcodeArr.find(i => i.code === row.stockcode).name : '/' }}–>--> |
| | | <!-- <!– </div>–>--> |
| | | <!-- <!– <el-select–>--> |
| | | <!-- <!– v-if="row.index === tabClickIndex && tabClickLabel === '仓库'"–>--> |
| | | <!-- <!– v-model="row.stockcode"–>--> |
| | | <!-- <!– placeholder="请选择"–>--> |
| | | <!-- <!– >–>--> |
| | | <!-- <!– <el-option–>--> |
| | | <!-- <!– v-for="item in stockcodeArr"–>--> |
| | | <!-- <!– :key="item.code"–>--> |
| | | <!-- <!– :label="item.name"–>--> |
| | | <!-- <!– :value="item.code"–>--> |
| | | <!-- <!– />–>--> |
| | | <!-- <!– </el-select>–>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | prop="inbarcode" |
| | | label="入库条码" |
| | |
| | | label="序号" |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="stockname" |
| | | label="仓库" |
| | | width="110" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.stockname">{{ row.stockname }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="stockname"--> |
| | | <!-- label="仓库"--> |
| | | <!-- width="110"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div v-if="row.stockname">{{ row.stockname }}</div>--> |
| | | <!-- <div v-else>/</div>--> |
| | | <!-- </template>--> |
| | | |
| | | </el-table-column> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | prop="inbarcode" |
| | | label="入库条码" |
| | |
| | | fixed |
| | | label="序号" |
| | | /> |
| | | <el-table-column |
| | | prop="stockcode" |
| | | label="仓库" |
| | | width="110" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div>{{ stockcodeArr.find(i=>i.code===row.stockcode).name }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="stockcode"--> |
| | | <!-- label="仓库"--> |
| | | <!-- width="110"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div>{{ stockcodeArr.find(i => i.code === row.stockcode).name }}</div>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div v-if="row.stockname">{{ row.stockname }}</div>--> |
| | | <!-- <div v-else>/</div>--> |
| | |
| | | ProductInHouseOrderSearch, ProductInHouseOrderSeave, |
| | | ProductInHouseWkshopOrder |
| | | } from '@/api/produceManager' |
| | | import { handleDatetime, handleDatetime2 } from '@/utils/global' |
| | | import { ErpUserSelect, ErpWarehouseSelect, ErpWkshopDepartmentSelect } from '@/api/basicInfo' |
| | | import { getTPlusToken, handleDatetime, handleDatetime2 } from '@/utils/global' |
| | | import { |
| | | ErpUserSelect, |
| | | ErpWarehouseSelect, |
| | | ErpWkshopDepartmentSelect |
| | | } from '@/api/basicInfo' |
| | | import { getCookie } from '@/utils/auth' |
| | | import Vue from 'vue' |
| | | import axios from 'axios' |
| | | |
| | | export default { |
| | | name: 'Zzjg', |
| | |
| | | orderdate: '', // 工单日期 |
| | | |
| | | saleOrderCode: '', // 销售订单 |
| | | lm_date: '', // 单据日期 |
| | | lm_date: new Date(), // 单据日期 |
| | | stockcode: '' // 入库仓库 |
| | | |
| | | }, |
| | |
| | | |
| | | tableDataSummary: [], // 汇总表 |
| | | |
| | | isPermission: true, // 是否有权限可提交 |
| | | // isPermission: true, // 是否有权限可提交 |
| | | |
| | | userArr: [] // ERP人员数组 |
| | | |
| | |
| | | |
| | | this.getWareHouseSelect() |
| | | this.getWorkShopSelect() |
| | | |
| | | this.getProductInHouseOrderCodeSearch() |
| | | |
| | | // this.getProductInHouseOrderSearch() |
| | | }, |
| | | methods: { |
| | | async getProductInHouseOrderCodeSearch() { |
| | |
| | | const { data: res } = await ErpUserSelect() |
| | | this.userArr = res |
| | | |
| | | if (!res.map(i => i.name).includes(getCookie('username'))) { |
| | | this.isPermission = false |
| | | |
| | | await this.$alert('当前用户在ERP系统中不存在或未授权,无法入库提交', '提示', { |
| | | confirmButtonText: '确定' |
| | | // callback: action => { |
| | | // this.$message({ |
| | | // type: 'info', |
| | | // message: `action: ${action}` |
| | | // }) |
| | | // } |
| | | }) |
| | | } |
| | | // if (!res.map(i => i.name).includes(getCookie('username'))) { |
| | | // this.isPermission = false |
| | | // |
| | | // await this.$alert('当前用户在ERP系统中不存在或未授权,无法入库提交', '提示', { |
| | | // confirmButtonText: '确定' |
| | | // }) |
| | | // } |
| | | }, |
| | | |
| | | // 单据类型改变 |
| | | documentTypeChange(val) { |
| | | this.form.erpordercode = '' |
| | | this.form.wkshopcode = '' |
| | | this.reset() |
| | | }, |
| | | // 生产车间改变 |
| | | async wkshopcodeChange(val) { |
| | | this.form.erpordercode = '' |
| | | this.form.mesordercode = '' |
| | | this.form.saleOrderCode = '' |
| | | this.tableDataDetail = [] |
| | | this.tableDataSummary = [] |
| | | this.multipleSelection = [] |
| | | const data = { |
| | | ordertype: this.form.documentType, |
| | | wkshopcode: val |
| | |
| | | this.form.partname = '' |
| | | this.form.partspec = '' |
| | | this.form.orderdate = '' |
| | | this.form.stockcode = '' |
| | | |
| | | this.tableDataDetail = [] |
| | | this.tableDataSummary = [] |
| | | this.multipleSelection = [] |
| | | }, |
| | | |
| | | // 表格单元格双击 |
| | |
| | | this.tabClickIndex = row.index |
| | | this.tabClickLabel = column.label |
| | | break |
| | | // case '判责金额(元)': |
| | | // this.tabClickIndex = row.index |
| | | // this.tabClickLabel = column.label |
| | | // break |
| | | default: |
| | | return |
| | | } |
| | |
| | | |
| | | // tab点击 |
| | | tabClick(val) { |
| | | // this.$nextTick(() => { |
| | | // this.$refs.tableDataRef.doLayout() |
| | | // }) |
| | | |
| | | const stockcodeArr = [...new Set(this.multipleSelection.map(i => i.stockcode))]// 数组去重 |
| | | |
| | | // const partcodeArr = [...new Set(this.multipleSelection.map(i => i.partcode))]// 数组去重 |
| | | const partcodeArr = [...new Set(this.multipleSelection.map(i => i.partcode))]// 数组去重 |
| | | const newData = [] |
| | | |
| | | const Array2D = [] |
| | | |
| | | stockcodeArr.forEach(i => { |
| | | Array2D.push(this.multipleSelection.filter(j => j.stockcode === i)) |
| | | }) |
| | | |
| | | Array2D.forEach(k => { |
| | | const partcodeArr = [...new Set(k.map(j => j.partcode))] |
| | | partcodeArr.forEach(i => { |
| | | const t = k.find(j => j.partcode === i) |
| | | let sum = 0 |
| | | const good_qty = k.filter(j => j.partcode === i).map(j => parseFloat(j.good_qty)).reduce((pre, curr) => { |
| | | sum = pre + curr |
| | | return sum |
| | | }) |
| | | sum = 0 |
| | | const inhouseqty = k.filter(j => j.partcode === i).map(j => parseFloat(j.inhouseqty)).reduce((pre, curr) => { |
| | | sum = pre + curr |
| | | return sum |
| | | }) |
| | | sum = 0 |
| | | const stinhouseqty = k.filter(j => j.partcode === i).map(j => parseFloat(j.stinhouseqty)).reduce((pre, curr) => { |
| | | sum = pre + curr |
| | | return sum |
| | | }) |
| | | newData.push( |
| | | { |
| | | stockcode: t.stockcode, |
| | | partcode: t.partcode, |
| | | partname: t.partname, |
| | | partspec: t.partspec, |
| | | qty: t.qty, |
| | | good_qty, |
| | | inhouseqty, |
| | | stinhouseqty, |
| | | unitid: t.unitid, |
| | | unitname: t.unitname, |
| | | sourceVoucherDetailId: t.sbid, |
| | | saleOrderDetailId: t.saleOrderDetailId, |
| | | ManufactureOrderDetailId: t.sbid, |
| | | stck_id: this.stockcodeArr.find(i => i.code === t.stockcode).id, |
| | | SourceVoucherDetailIdByMergedFlow: t.sbid, |
| | | materiel_code: t.partcode, |
| | | warehouse: t.stockcode, |
| | | materiel_id: t.materiel_id |
| | | } |
| | | ) |
| | | partcodeArr.forEach(i => { |
| | | const t = this.multipleSelection.find(j => j.partcode === i) |
| | | let sum = 0 |
| | | const good_qty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.good_qty)).reduce((pre, curr) => { |
| | | sum = pre + curr |
| | | return sum |
| | | }) |
| | | }) |
| | | // console.log(Array2D, 'Array2D') |
| | | // console.log(newData, 'newData') |
| | | sum = 0 |
| | | const inhouseqty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.inhouseqty)).reduce((pre, curr) => { |
| | | sum = pre + curr |
| | | return sum |
| | | }) |
| | | sum = 0 |
| | | const stinhouseqty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.stinhouseqty)).reduce((pre, curr) => { |
| | | sum = pre + curr |
| | | return sum |
| | | }) |
| | | newData.push( |
| | | { |
| | | stockcode: t.stockcode, |
| | | partcode: t.partcode, |
| | | partname: t.partname, |
| | | partspec: t.partspec, |
| | | qty: t.qty, |
| | | good_qty, |
| | | inhouseqty, |
| | | stinhouseqty, |
| | | unitid: t.unitid, |
| | | unitname: t.unitname, |
| | | sourceVoucherDetailId: t.sbid, |
| | | saleOrderDetailId: t.saleOrderDetailId, |
| | | ManufactureOrderDetailId: t.sbid, |
| | | stck_id: t.stockcode ? this.stockcodeArr.find(i => i.code === t.stockcode).id : '', |
| | | SourceVoucherDetailIdByMergedFlow: t.sbid, |
| | | materiel_code: t.partcode, |
| | | warehouse: t.stockcode, |
| | | materiel_id: t.materiel_id |
| | | |
| | | // partcodeArr.forEach(i => { |
| | | // const t = this.multipleSelection.find(j => j.partcode === i) |
| | | // let sum = 0 |
| | | // const good_qty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.good_qty)).reduce((pre, curr) => { |
| | | // sum = pre + curr |
| | | // return sum |
| | | // }) |
| | | // sum = 0 |
| | | // const inhouseqty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.inhouseqty)).reduce((pre, curr) => { |
| | | // sum = pre + curr |
| | | // return sum |
| | | // }) |
| | | // sum = 0 |
| | | // const stinhouseqty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.stinhouseqty)).reduce((pre, curr) => { |
| | | // sum = pre + curr |
| | | // return sum |
| | | // }) |
| | | // newData.push( |
| | | // { |
| | | // partcode: i, |
| | | // partname: t.partname, |
| | | // partspec: t.partspec, |
| | | // qty: t.qty, |
| | | // good_qty, |
| | | // inhouseqty, |
| | | // stinhouseqty |
| | | // } |
| | | // ) |
| | | // }) |
| | | this.tableDataSummary = newData.flat() |
| | | } |
| | | ) |
| | | }) |
| | | this.tableDataSummary = newData |
| | | }, |
| | | |
| | | // 入库提交 |
| | | async submit() { |
| | | async submit() { |
| | | if (!this.form.stockcode) { |
| | | return this.$message.error('入库仓库不能为空!') |
| | | } |
| | | if (this.multipleSelection.length === 0) { |
| | | return this.$message.error('未选择产品!') |
| | | } |
| | | |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | await this.tabClick() |
| | | if (this.multipleSelection.find(i => !i.stockcode)) { |
| | | return this.$message('明细里面有产品未填写仓库!') |
| | | } |
| | | this.multipleSelection.forEach(i => { |
| | | i.stockname = this.stockcodeArr.find(j => j.code === i.stockcode).name |
| | | i.id = this.stockcodeArr.find(j => j.code === i.stockcode).id |
| | | }) |
| | | const openToken = await getTPlusToken() // 获取TPlus token |
| | | |
| | | const head = { |
| | | rightcode: '2064', |
| | | hbillno: this.form.hbillno, |
| | | incbit: this.form.incbit, |
| | | wkshpcode: this.form.wkshopcode, |
| | | sourceVoucherId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '', |
| | | sourceVoucherCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | saleOrderId: this.tableDataDetail[0].saleOrderid, |
| | | saleOrderCode: this.tableDataDetail[0].saleOrderCode, |
| | | rdDirectionFlag: 1, |
| | | makerid: this.userArr.find(i => i.name === getCookie('username')).id, |
| | | maker: getCookie('username'), |
| | | accountingyear: new Date().getFullYear(), |
| | | VoucherYear: new Date().getFullYear(), |
| | | VoucherPeriod: new Date().getMonth() + 1, |
| | | ManufactureOrderCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | idbusitype: '03', |
| | | iddepartment: this.WorkShopArr.find(i => i.code === this.form.wkshopcode).id, |
| | | idrdstyle: 21, |
| | | idwarehouse: '', |
| | | voucherState: 181, |
| | | idvouchertype: 15, |
| | | voucherdate: handleDatetime(new Date().getTime()), |
| | | madedate: handleDatetime(new Date().getTime()), |
| | | createdtime: handleDatetime2(new Date().getTime()), |
| | | DataSource: '56133', |
| | | idsourcevouchertype: 69 |
| | | } |
| | | |
| | | const subsum = [] |
| | | this.tableDataSummary.forEach((i, index) => { |
| | | subsum.push({ |
| | | code: index.toString().padStart(4, '0'), |
| | | rownumber: index + 1, |
| | | arrivalQuantity: i.qty, |
| | | quantity: i.stinhouseqty, |
| | | compositionQuantity: i.stinhouseqty + i.unitname, |
| | | baseQuantity: i.stinhouseqty, |
| | | sourceVoucherId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '', |
| | | sourceVoucherCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | sourceVoucherDetailId: i.sourceVoucherDetailId, |
| | | idsourcevouchertype: 69, |
| | | saleOrderId: this.tableDataDetail[0].saleOrderid, |
| | | saleOrderCode: this.tableDataDetail[0].saleOrderCode, |
| | | saleOrderDetailId: i.saleOrderDetailId, |
| | | ManufactureOrderId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '', |
| | | ManufactureOrderCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | ManufactureOrderDetailId: i.ManufactureOrderDetailId, |
| | | idbusiTypeByMergedFlow: 3, |
| | | idinventory: i.materiel_id, |
| | | idbaseunit: i.unitid, |
| | | idunit: i.unitid, |
| | | idwarehouse: i.stck_id, |
| | | SourceVoucherIdByMergedFlow: this.tableDataDetail[0].mpoid, |
| | | SourceVoucherCodeByMergedFlow: this.tableDataDetail[0].m_po, |
| | | SourceVoucherDetailIdByMergedFlow: i.SourceVoucherDetailIdByMergedFlow, |
| | | idsourceVoucherTypeByMergedFlow: 69, |
| | | createdtime: handleDatetime2(new Date().getTime()), |
| | | DataSource: '56133', |
| | | materiel_code: i.materiel_code, |
| | | warehouse: i.warehouse |
| | | // 有源单 |
| | | if (this.form.documentType === 'Y') { |
| | | const RDRecordDetails = [] |
| | | this.tableDataSummary.forEach((i, index) => { |
| | | RDRecordDetails.push({ |
| | | Code: index + 1, // 行号,从1开始自增长 |
| | | SourceVoucherId: this.tableDataDetail[0].mpoid, // 来源单据的单据ID |
| | | BaseQuantity: i.stinhouseqty, // 主计量单位数量 |
| | | SourceVoucherDetailId: i.sourceVoucherDetailId, // 来源单据的对应明细ID |
| | | Inventory: { |
| | | Code: i.materiel_code // 存货编码 |
| | | }, |
| | | IdSourceVoucherType: 69 |
| | | }) |
| | | }) |
| | | }) |
| | | const data = { |
| | | 'dto': { |
| | | 'Warehouse': { |
| | | 'Code': this.form.stockcode// 仓库编码 |
| | | }, |
| | | 'Code': this.form.hbillno, // 单据编码 |
| | | 'IsModifiedCode': true, |
| | | 'BusiType': { |
| | | 'Code': '03'// 业务类型编码 |
| | | }, |
| | | 'Department': { |
| | | 'Code': this.form.wkshopcode// 部门编码 |
| | | }, |
| | | 'VoucherDate': handleDatetime(new Date().getTime()), // 单据日期 |
| | | 'RdStyle': { |
| | | 'Code': '21'// 出库类别编码 |
| | | }, |
| | | 'RDRecordDetails': RDRecordDetails, |
| | | // 'Clerk': { |
| | | // 'Code': this.userArr.find(i => i.name === getCookie('username')).code // 业务员code |
| | | // // 'Code': '001' // 业务员code |
| | | // // 'Name': getCookie('username') |
| | | // }, |
| | | 'ExternalCode': this.form.hbillno, |
| | | 'VoucherType': { |
| | | 'Code': 'ST1002' |
| | | } |
| | | } |
| | | } |
| | | const res = await axios.post(Vue.prototype.$chanjetBaseUrl + '/tplus/api/v2/ProductReceiveOpenApi/Create', |
| | | data, { |
| | | headers: { |
| | | 'openToken': openToken, |
| | | 'appKey': Vue.prototype.$AppKey, |
| | | 'appSecret': Vue.prototype.$AppSecret, |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | } |
| | | ) |
| | | if (res.data.code === 0) { |
| | | this.multipleSelection.forEach(i => { |
| | | i.stockname = this.stockcodeArr.find(j => j.code === i.stockcode).name |
| | | i.id = this.stockcodeArr.find(j => j.code === i.stockcode).id |
| | | }) |
| | | |
| | | const data = { |
| | | head, sub: this.multipleSelection, subsum |
| | | const head = { |
| | | rightcode: '2064', |
| | | hbillno: this.form.hbillno, |
| | | incbit: this.form.incbit, |
| | | wkshpcode: this.form.wkshopcode, |
| | | sourceVoucherId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '', |
| | | sourceVoucherCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | saleOrderId: this.tableDataDetail[0].saleOrderid, |
| | | saleOrderCode: this.tableDataDetail[0].saleOrderCode, |
| | | rdDirectionFlag: 1, |
| | | makerid: this.userArr.find(i => i.name === getCookie('username')).id, |
| | | maker: getCookie('username'), |
| | | accountingyear: new Date().getFullYear(), |
| | | VoucherYear: new Date().getFullYear(), |
| | | VoucherPeriod: new Date().getMonth() + 1, |
| | | ManufactureOrderCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | idbusitype: '03', |
| | | iddepartment: this.WorkShopArr.find(i => i.code === this.form.wkshopcode).id, |
| | | idrdstyle: 21, |
| | | idwarehouse: '', |
| | | voucherState: 181, |
| | | idvouchertype: 15, |
| | | voucherdate: handleDatetime(new Date().getTime()), |
| | | madedate: handleDatetime(new Date().getTime()), |
| | | createdtime: handleDatetime2(new Date().getTime()), |
| | | DataSource: '56133', |
| | | idsourcevouchertype: 69 |
| | | } |
| | | |
| | | const subsum = [] |
| | | this.tableDataSummary.forEach((i, index) => { |
| | | subsum.push({ |
| | | code: index.toString().padStart(4, '0'), |
| | | rownumber: index + 1, |
| | | arrivalQuantity: i.qty, |
| | | quantity: i.stinhouseqty, |
| | | compositionQuantity: i.stinhouseqty + i.unitname, |
| | | baseQuantity: i.stinhouseqty, |
| | | sourceVoucherId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '', |
| | | sourceVoucherCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | sourceVoucherDetailId: i.sourceVoucherDetailId, |
| | | idsourcevouchertype: 69, |
| | | saleOrderId: this.tableDataDetail[0].saleOrderid, |
| | | saleOrderCode: this.tableDataDetail[0].saleOrderCode, |
| | | saleOrderDetailId: i.saleOrderDetailId, |
| | | ManufactureOrderId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '', |
| | | ManufactureOrderCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | ManufactureOrderDetailId: i.ManufactureOrderDetailId, |
| | | idbusiTypeByMergedFlow: 3, |
| | | idinventory: i.materiel_id, |
| | | idbaseunit: i.unitid, |
| | | idunit: i.unitid, |
| | | idwarehouse: i.stck_id, |
| | | SourceVoucherIdByMergedFlow: this.tableDataDetail[0].mpoid, |
| | | SourceVoucherCodeByMergedFlow: this.tableDataDetail[0].m_po, |
| | | SourceVoucherDetailIdByMergedFlow: i.SourceVoucherDetailIdByMergedFlow, |
| | | idsourceVoucherTypeByMergedFlow: 69, |
| | | createdtime: handleDatetime2(new Date().getTime()), |
| | | DataSource: '56133', |
| | | materiel_code: i.materiel_code, |
| | | warehouse: i.warehouse |
| | | }) |
| | | }) |
| | | |
| | | const data = { |
| | | head, sub: this.multipleSelection, subsum |
| | | } |
| | | |
| | | const r1 = await ProductInHouseOrderSeave(data) |
| | | if (r1.code === '200') { |
| | | this.$message.success('入库成功!') |
| | | await this.getProductInHouseOrderCodeSearch() |
| | | await this.wkshopcodeChange(this.form.wkshopcode) |
| | | this.tableDataDetail = [] |
| | | this.tableDataSummary = [] |
| | | this.multipleSelection = [] |
| | | this.form.stockcode = '' |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } |
| | | } else { |
| | | this.$message.error('入库失败!') |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } |
| | | } |
| | | |
| | | // console.log(JSON.stringify(data)) |
| | | // 无源单 |
| | | if (this.form.documentType === 'N') { |
| | | const RDRecordDetails = [] |
| | | this.tableDataSummary.forEach((i, index) => { |
| | | RDRecordDetails.push({ |
| | | Code: index + 1, // 行号,从1开始自增长 |
| | | Inventory: { |
| | | Code: i.materiel_code // 存货编码 |
| | | }, |
| | | BaseQuantity: i.stinhouseqty, // 主计量单位数量 |
| | | SNObject: { |
| | | SnAccountDetails: [ |
| | | { |
| | | SNCode: index.toString().padStart(4, '0') |
| | | } |
| | | ] |
| | | } |
| | | }) |
| | | }) |
| | | const data = { |
| | | 'dto': { |
| | | 'IsModifiedCode': true, |
| | | 'ExternalCode': this.form.hbillno, |
| | | 'Code': this.form.hbillno, |
| | | 'VoucherType': { |
| | | 'Code': 'ST1002' |
| | | }, |
| | | 'VoucherDate': handleDatetime(new Date().getTime()), |
| | | 'BusiType': { |
| | | 'Code': '03' |
| | | }, |
| | | 'Warehouse': { |
| | | 'Code': this.form.stockcode |
| | | }, |
| | | 'Department': { |
| | | 'Code': this.form.wkshopcode, |
| | | 'Name': this.WorkShopArr.find(i => i.code === this.form.wkshopcode).name |
| | | }, |
| | | 'RDRecordDetails': RDRecordDetails |
| | | } |
| | | } |
| | | const res = await axios.post(Vue.prototype.$chanjetBaseUrl + '/tplus/api/v2/productReceive/Create', |
| | | data, { |
| | | headers: { |
| | | 'openToken': openToken, |
| | | 'appKey': Vue.prototype.$AppKey, |
| | | 'appSecret': Vue.prototype.$AppSecret, |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | } |
| | | ) |
| | | |
| | | const res = await ProductInHouseOrderSeave(data) |
| | | if (res.code === '200') { |
| | | this.$message.success('入库提交成功!') |
| | | if (res.data === null) { |
| | | this.multipleSelection.forEach(i => { |
| | | i.stockname = this.stockcodeArr.find(j => j.code === i.stockcode).name |
| | | i.id = this.stockcodeArr.find(j => j.code === i.stockcode).id |
| | | }) |
| | | |
| | | const head = { |
| | | rightcode: '2064', |
| | | hbillno: this.form.hbillno, |
| | | incbit: this.form.incbit, |
| | | wkshpcode: this.form.wkshopcode, |
| | | sourceVoucherId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : this.tableDataDetail[0].wo_id, |
| | | sourceVoucherCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | saleOrderId: this.tableDataDetail[0].saleOrderid, |
| | | saleOrderCode: this.tableDataDetail[0].saleOrderCode, |
| | | rdDirectionFlag: 1, |
| | | makerid: this.userArr.find(i => i.name === getCookie('username')).id, |
| | | maker: getCookie('username'), |
| | | accountingyear: new Date().getFullYear(), |
| | | VoucherYear: new Date().getFullYear(), |
| | | VoucherPeriod: new Date().getMonth() + 1, |
| | | ManufactureOrderCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | idbusitype: '03', |
| | | iddepartment: this.WorkShopArr.find(i => i.code === this.form.wkshopcode).id, |
| | | idrdstyle: 21, |
| | | idwarehouse: '', |
| | | voucherState: 181, |
| | | idvouchertype: 15, |
| | | voucherdate: handleDatetime(new Date().getTime()), |
| | | madedate: handleDatetime(new Date().getTime()), |
| | | createdtime: handleDatetime2(new Date().getTime()), |
| | | DataSource: '56133', |
| | | idsourcevouchertype: 69 |
| | | } |
| | | |
| | | const subsum = [] |
| | | this.tableDataSummary.forEach((i, index) => { |
| | | subsum.push({ |
| | | code: index.toString().padStart(4, '0'), |
| | | rownumber: index + 1, |
| | | arrivalQuantity: i.qty, |
| | | quantity: i.stinhouseqty, |
| | | compositionQuantity: i.stinhouseqty + i.unitname, |
| | | baseQuantity: i.stinhouseqty, |
| | | sourceVoucherId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '', |
| | | sourceVoucherCode: '', |
| | | sourceVoucherDetailId: i.sourceVoucherDetailId, |
| | | idsourcevouchertype: 69, |
| | | saleOrderId: this.tableDataDetail[0].saleOrderid, |
| | | saleOrderCode: this.tableDataDetail[0].saleOrderCode, |
| | | saleOrderDetailId: i.saleOrderDetailId, |
| | | ManufactureOrderId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '', |
| | | ManufactureOrderCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | ManufactureOrderDetailId: i.ManufactureOrderDetailId, |
| | | idbusiTypeByMergedFlow: 3, |
| | | idinventory: i.materiel_id, |
| | | idbaseunit: i.unitid, |
| | | idunit: i.unitid, |
| | | idwarehouse: i.stck_id, |
| | | SourceVoucherIdByMergedFlow: this.tableDataDetail[0].mpoid, |
| | | SourceVoucherCodeByMergedFlow: this.tableDataDetail[0].m_po, |
| | | SourceVoucherDetailIdByMergedFlow: i.SourceVoucherDetailIdByMergedFlow, |
| | | idsourceVoucherTypeByMergedFlow: 69, |
| | | createdtime: handleDatetime2(new Date().getTime()), |
| | | DataSource: '56133', |
| | | materiel_code: i.materiel_code, |
| | | warehouse: i.warehouse |
| | | }) |
| | | }) |
| | | |
| | | const data = { |
| | | head, sub: this.multipleSelection, subsum |
| | | } |
| | | console.log(data, 2) |
| | | const r1 = await ProductInHouseOrderSeave(data) |
| | | if (r1.code === '200') { |
| | | this.$message.success('入库成功!') |
| | | await this.getProductInHouseOrderCodeSearch() |
| | | await this.wkshopcodeChange(this.form.wkshopcode) |
| | | this.tableDataDetail = [] |
| | | this.tableDataSummary = [] |
| | | this.multipleSelection = [] |
| | | this.form.stockcode = '' |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } |
| | | } else { |
| | | this.$message.error('入库失败!') |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } |
| | | } |
| | | }, |
| | | // 获取页面高度 |