| | |
| | | <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> |
| | | <el-form |
| | | ref="form" |
| | |
| | | v-if="form.documentType==='Y'" |
| | | label="生产订单" |
| | | :required="form.documentType==='Y'" |
| | | style=" display: flex;" |
| | | style="display: flex;" |
| | | > |
| | | |
| | | <el-select |
| | |
| | | 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="入库条码" |
| | |
| | | min-width="130" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-input-number v-model="row.stinhouseqty" :max="row.good_qty" size="small" /> |
| | | |
| | | <!-- <div--> |
| | | <!-- v-if="!(row.index === tabClickIndex && tabClickLabel === '可入库数量')"--> |
| | | <!-- >--> |
| | | <!-- {{ row.stinhouseqty }}--> |
| | | <!-- </div>--> |
| | | <!-- <el-input--> |
| | | <!-- v-if="row.index === tabClickIndex && tabClickLabel === '可入库数量'"--> |
| | | <!-- v-model="row.stinhouseqty"--> |
| | | <!-- oninput="value=value.replace(/[^0-9]/g,'')"--> |
| | | <!-- />--> |
| | | |
| | | </template> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <el-input-number v-model="row.stinhouseqty" :min="0" :max="row.good_qty" size="small" />--> |
| | | <!-- </template>--> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-table |
| | |
| | | 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="入库条码" |
| | |
| | | label="序号" |
| | | /> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="stockname"--> |
| | | <!-- 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>--> |
| | |
| | | <script> |
| | | import elDragDialog from '@/directive/el-drag-dialog' |
| | | import waves from '@/directive/waves' |
| | | import { WareHouseSelect } from '@/api/materialManager' |
| | | import { ProductInHouseOrderSearch, ProductInHouseWkshopOrder } from '@/api/produceManager' |
| | | import { handleDatetime } from '@/utils/global' |
| | | import { WorkShopSelect } from '@/api/deviceManager' |
| | | import $ from 'jquery' |
| | | import { |
| | | ProductInHouseOrderCodeSearch, |
| | | ProductInHouseOrderSearch, ProductInHouseOrderSeave, |
| | | ProductInHouseWkshopOrder |
| | | } from '@/api/produceManager' |
| | | 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', |
| | |
| | | mainHeight: 0, |
| | | tableHeight: 0, |
| | | form: { |
| | | hbillno: '', // 入库单号 |
| | | incbit: '', // 流水号 |
| | | documentType: 'Y', // 单据类型 |
| | | |
| | | wkshopcode: '', // 生产车间 |
| | |
| | | orderdate: '', // 工单日期 |
| | | |
| | | saleOrderCode: '', // 销售订单 |
| | | lm_date: '', // 单据日期 |
| | | lm_date: new Date(), // 单据日期 |
| | | stockcode: '' // 入库仓库 |
| | | |
| | | }, |
| | |
| | | |
| | | tableDataSummary: [], // 汇总表 |
| | | |
| | | xxx: '' |
| | | isPermission: true, // 是否有权限可提交 |
| | | |
| | | userArr: [] // ERP人员数组 |
| | | |
| | | } |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | this.getWareHouseSelect() |
| | | this.getWorkShopSelect() |
| | | this.getErpUserSelect() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | |
| | | this.getWareHouseSelect() |
| | | this.getWorkShopSelect() |
| | | |
| | | this.getProductInHouseOrderCodeSearch() |
| | | |
| | | // this.getProductInHouseOrderSearch() |
| | | }, |
| | | methods: { |
| | | async getProductInHouseOrderCodeSearch() { |
| | | const { data: res } = await ProductInHouseOrderCodeSearch({ rightcode: '2064' }) |
| | | this.form.hbillno = res[0] |
| | | this.form.incbit = res[1] |
| | | }, |
| | | async getErpUserSelect() { |
| | | 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}` |
| | | // }) |
| | | // } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 单据类型改变 |
| | | 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 |
| | |
| | | }, |
| | | // 获取仓库接口 |
| | | async getWareHouseSelect() { |
| | | const { data: res } = await WareHouseSelect() |
| | | const { data: res } = await ErpWarehouseSelect() |
| | | this.stockcodeArr = res |
| | | }, |
| | | // 获取所属车间 |
| | | async getWorkShopSelect() { |
| | | const { data: res } = await WorkShopSelect() |
| | | const { data: res } = await ErpWkshopDepartmentSelect() |
| | | this.WorkShopArr = res |
| | | }, |
| | | |
| | |
| | | this.form.partname = '' |
| | | this.form.partspec = '' |
| | | this.form.orderdate = '' |
| | | this.form.stockcode = '' |
| | | |
| | | this.tableDataDetail = [] |
| | | this.tableDataSummary = [] |
| | | this.multipleSelection = [] |
| | | }, |
| | | |
| | | // 表格单元格双击 |
| | |
| | | |
| | | // tab点击 |
| | | tabClick(val) { |
| | | console.log(val.label) |
| | | // this.$nextTick(() => { |
| | | // this.$refs.tableDataRef.doLayout() |
| | | // }) |
| | | |
| | | const data = [ |
| | | { |
| | | 'inbarcode': 'IN23053150', |
| | | 'saleOrderid': 13, |
| | | 'saleOrderCode': 'SO-2023-05-0009', |
| | | 'saleOrderDetailId': 19, |
| | | 'mpoid': 19, |
| | | 'm_po': 'MO-2023-05-0007', |
| | | 'sbid': 30, |
| | | 'wo_code': 'MO-2023-05-0007_4', |
| | | 'materiel_id': 11, |
| | | 'partcode': '301', |
| | | 'partname': '电脑', |
| | | 'partspec': '', |
| | | 'step_code': 'Step08', |
| | | 'wkshp_id': 1, |
| | | 'wkshp_code': 'CJ001', |
| | | 'stck_id': 3, |
| | | 'stockcode': '03', |
| | | 'stockname': '成品仓库', |
| | | 'qty': 80.00, |
| | | 'plan_qty': 40.0, |
| | | 'good_qty': 20.00, |
| | | 'inhouseqty': 0.00, |
| | | 'stinhouseqty': 20.00, |
| | | 'lm_date': '2023-05-31 09:52:24', |
| | | 'style': 'S' |
| | | }, |
| | | { |
| | | 'inbarcode': 'IN23053148', |
| | | 'saleOrderid': 13, |
| | | 'saleOrderCode': 'SO-2023-05-0009', |
| | | 'saleOrderDetailId': 19, |
| | | 'mpoid': 19, |
| | | 'm_po': 'MO-2023-05-0007', |
| | | 'sbid': 30, |
| | | 'wo_code': 'MO-2023-05-0007_3', |
| | | 'materiel_id': 11, |
| | | 'partcode': '301', |
| | | 'partname': '电脑', |
| | | 'partspec': '', |
| | | 'step_code': 'Step08', |
| | | 'wkshp_id': 1, |
| | | 'wkshp_code': 'CJ001', |
| | | 'stck_id': 3, |
| | | 'stockcode': '03', |
| | | 'stockname': '成品仓库', |
| | | 'qty': 80.00, |
| | | 'plan_qty': 40.0, |
| | | 'good_qty': 1.00, |
| | | 'inhouseqty': 0.00, |
| | | 'stinhouseqty': 1.00, |
| | | 'lm_date': '2023-05-31 09:52:31', |
| | | 'style': 'S' |
| | | }, |
| | | { |
| | | 'inbarcode': 'IN23053149', |
| | | 'saleOrderid': 13, |
| | | 'saleOrderCode': 'SO-2023-05-0009', |
| | | 'saleOrderDetailId': 19, |
| | | 'mpoid': 19, |
| | | 'm_po': 'MO-2023-05-0007', |
| | | 'sbid': 30, |
| | | 'wo_code': 'MO-2023-05-0007_3', |
| | | 'materiel_id': 11, |
| | | 'partcode': '301', |
| | | 'partname': '电脑', |
| | | 'partspec': '', |
| | | 'step_code': 'Step08', |
| | | 'wkshp_id': 1, |
| | | 'wkshp_code': 'CJ001', |
| | | 'stck_id': 3, |
| | | 'stockcode': '03', |
| | | 'stockname': '成品仓库', |
| | | 'qty': 80.00, |
| | | 'plan_qty': 40.0, |
| | | 'good_qty': 9.00, |
| | | 'inhouseqty': 0.00, |
| | | 'stinhouseqty': 9.00, |
| | | 'lm_date': '2023-05-31 09:52:31', |
| | | 'style': 'S' |
| | | }, |
| | | { |
| | | 'inbarcode': 'IN23053145', |
| | | 'saleOrderid': 13, |
| | | 'saleOrderCode': 'SO-2023-05-0009', |
| | | 'saleOrderDetailId': 20, |
| | | 'mpoid': 19, |
| | | 'm_po': 'MO-2023-05-0007', |
| | | 'sbid': 31, |
| | | 'wo_code': 'MO-2023-05-0007_5', |
| | | 'materiel_id': 24, |
| | | 'partcode': '308', |
| | | 'partname': '电池包', |
| | | 'partspec': '', |
| | | 'step_code': 'Step08', |
| | | 'wkshp_id': 1, |
| | | 'wkshp_code': 'CJ001', |
| | | 'stck_id': 2, |
| | | 'stockcode': '02', |
| | | 'stockname': '半成品库', |
| | | 'qty': 70.00, |
| | | 'plan_qty': 70.0, |
| | | 'good_qty': 5.00, |
| | | 'inhouseqty': 0.00, |
| | | 'stinhouseqty': 5.00, |
| | | 'lm_date': '2023-05-31 09:52:40', |
| | | 'style': 'S' |
| | | }, |
| | | { |
| | | 'inbarcode': 'IN23053147', |
| | | 'saleOrderid': 13, |
| | | 'saleOrderCode': 'SO-2023-05-0009', |
| | | 'saleOrderDetailId': 20, |
| | | 'mpoid': 19, |
| | | 'm_po': 'MO-2023-05-0007', |
| | | 'sbid': 31, |
| | | 'wo_code': 'MO-2023-05-0007_5', |
| | | 'materiel_id': 24, |
| | | 'partcode': '308', |
| | | 'partname': '电池包', |
| | | 'partspec': '', |
| | | 'step_code': 'Step08', |
| | | 'wkshp_id': 1, |
| | | 'wkshp_code': 'CJ001', |
| | | 'stck_id': 2, |
| | | 'stockcode': '02', |
| | | 'stockname': '半成品库', |
| | | 'qty': 70.00, |
| | | 'plan_qty': 70.0, |
| | | 'good_qty': 10.00, |
| | | 'inhouseqty': 0.00, |
| | | 'stinhouseqty': 10.00, |
| | | 'lm_date': '2023-05-31 09:52:40', |
| | | 'style': 'S' |
| | | } |
| | | ] |
| | | // const stockcodeArr = [...new Set(this.multipleSelection.map(i => i.stockcode))]// 数组去重 |
| | | |
| | | const partcodeArr = data.map(i => i.partcode) |
| | | const partcodeArr = [...new Set(this.multipleSelection.map(i => i.partcode))]// 数组去重 |
| | | const newData = [] |
| | | if (val.label === '汇总') { |
| | | data.forEach(i => { |
| | | // if () |
| | | |
| | | // 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 |
| | | // } |
| | | // ) |
| | | // }) |
| | | // }) |
| | | // console.log(Array2D, 'Array2D') |
| | | // console.log(newData, 'newData') |
| | | |
| | | 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 |
| | | |
| | | 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 |
| | | |
| | | } |
| | | ) |
| | | }) |
| | | // this.tableDataSummary = newData.flat() |
| | | this.tableDataSummary = newData |
| | | }, |
| | | |
| | | // 提交 |
| | | 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() |
| | | const openToken = await getTPlusToken() // 获取TPlus token |
| | | |
| | | // const openToken = |
| | | |
| | | // 有源单 |
| | | 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 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('入库成功!') |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | await this.getProductInHouseOrderCodeSearch() |
| | | await this.wkshopcodeChange(this.form.wkshopcode) |
| | | this.tableDataDetail = [] |
| | | this.tableDataSummary = [] |
| | | this.multipleSelection = [] |
| | | this.form.stockcode = '' |
| | | } |
| | | } else { |
| | | this.$message.error('入库失败!') |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } |
| | | } |
| | | |
| | | // 无源单 |
| | | 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' |
| | | } |
| | | } |
| | | ) |
| | | |
| | | 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: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code, |
| | | 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('入库成功!') |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | 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 |
| | | } |
| | | } |
| | | }, |
| | | // 入库提交 |
| | | submit2() { |
| | | this.tabClick() |
| | | |
| | | this.$confirm('是否确认提交?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | if (this.multipleSelection.length === 0) { |
| | | return this.$message.error('未选择产品!') |
| | | } |
| | | if (this.multipleSelection.find(i => !i.stockcode)) { |
| | | return this.$message.error('明细里面有产品未填写仓库!') |
| | | } |
| | | 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 : '', |
| | | 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 |
| | | } |
| | | |
| | | ProductInHouseOrderSeave(data).then(res => { |
| | | if (res.code === '200') { |
| | | this.$message.success('入库提交成功!') |
| | | this.getProductInHouseOrderCodeSearch() |
| | | this.wkshopcodeChange(this.form.wkshopcode) |
| | | this.tableDataDetail = [] |
| | | this.tableDataSummary = [] |
| | | this.multipleSelection = [] |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | // 获取页面高度 |
| | | getHeight() { |