Commit b07cd6fb authored by 我在何方's avatar 我在何方

拆单应收款bug修复

parent 60ece7c1
......@@ -128,3 +128,12 @@ export function getMergeListByMergeId(params){
params
})
}
// 计价单位的数量参数是否必传
export function quantitycheck(query) {
return request({
url: '/order/split-item/quantity/check',
method: 'get',
params: query
})
}
......@@ -59,7 +59,7 @@ export default {
params.searchKey = keyword
this.loading = true
getCustomerSelect(params)
.then(res => this.list = res.data)
.then(res => this.list = res.data.list)
.finally(() => this.loading = false)
}
}
......
......@@ -112,7 +112,11 @@
</template>
</el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="num" />
<el-table-column :label="$t('体积/重量')" align="center" prop="weight" />
<el-table-column :label="$t('体积/重量')" align="center" prop="weight">
<template slot-scope="scope">
{{ scope.row.volume}}/{{ scope.row.weight}}
</template>
</el-table-column>
<el-table-column :label="$t('收入类型')" align="center" prop="feeType">
<template slot-scope="scope">
<dict-tag
......@@ -510,7 +514,11 @@
</template>
</el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="num" />
<el-table-column :label="$t('体积/重量')" align="center" prop="weight" />
<el-table-column :label="$t('体积/重量')" align="center" prop="weight">
<template slot-scope="scope">
{{ scope.row.volume}}/{{ scope.row.weight}}
</template>
</el-table-column>
<el-table-column :label="$t('发货人')" align="center" prop="consignorName" />
<el-table-column :label="$t('收货人')" align="center" prop="consigneeName" />
<el-table-column :label="$t('订单状态')" align="center" prop="status">
......@@ -571,7 +579,11 @@
</template>
</el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="num" />
<el-table-column :label="$t('体积/重量')" align="center" prop="weight" />
<el-table-column :label="$t('体积/重量')" align="center" prop="weight">
<template slot-scope="scope">
{{ scope.row.volume}}/{{ scope.row.weight}}
</template>
</el-table-column>
<el-table-column :label="$t('收入类型')" align="center" prop="feeType">
<template slot-scope="scope">
<dict-tag
......
<template>
<div class="app-container" >
<div id="print" style="font-size: 18px;">
<div style="text-align: center;font-weight: bold;font-size: 26px;padding: 22px 0;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;">捷道货运收款单</div>
<div style="display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;">
<div style="font-weight: bold;width: 12.5%;text-align: center;border-right: 1px solid #666;height: 36px;line-height: 36px;">部门</div>
<div style="width: 12.5%;text-align: center;border-right: 1px solid #666;height: 36px;line-height: 36px;"><span>{{form?form.departmentName:''}}</span></div>
<div style="font-weight: bold;width: 12.5%;text-align: center;border-right: 1px solid #666;height: 36px;line-height: 36px;">客户名称</div>
<div style="width: 25%;text-align: center;border-right: 1px solid #666;height: 36px;line-height: 36px;"><span>{{form?form.customerName:''}}</span></div>
<div style="font-weight: bold;width: 12.5%;text-align: center;border-right: 1px solid #666;height: 36px;line-height: 36px;">收款日期</div>
<div style="width: 25%;text-align: center;height: 36px;line-height: 36px;"><span>{{form?form.payedAt:''}}</span></div>
</div>
<div style="display: flex;align-items: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;">
<div style="font-weight: bold;width: 12.5%;text-align: center;border-right: 1px solid #666;height: 36px;line-height: 36px;">收款单号</div>
<div style="width: 12.5%;text-align: center;border-right: 1px solid #666;height: 36px;line-height: 36px;"><span>{{form?form.receiptNo:''}}</span></div>
<div style="font-weight: bold;width: 12.5%;text-align: center;border-right: 1px solid #666;height: 36px;line-height: 36px;">备注</div>
<div style="width: 62.5%;text-align: center;height: 36px;line-height: 36px;"><span>{{form?form.remark:''}}</span></div>
</div>
<div style="text-align: center;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;height: 36px;line-height: 36px;">
Form/To:
</div>
<div style="text-align: center;font-weight: bold;font-size: 26px;padding: 22px 0;border-top: 1px solid #666;border-left:1px solid #666;border-right: 1px solid #666;">捷道货运收款单</div>
<table border="1" style="width: 100%;text-align: center;border-collapse: collapse; ">
<tr>
<td style="font-weight: bold;width:12.5%">部门</td>
<td style="width:12.5%">{{form?form.departmentName:''}}</td>
<td style="font-weight: bold;width:12.5%">客户名称</td>
<td colspan="2" style="width: 25%;">{{form?form.customerName:''}}</td>
<td style="font-weight: bold;width:12.5%">收款日期</td>
<td colspan="2" style="width: 25%;">{{form?form.payedAt:''}}</td>
</tr>
<tr>
<td style="font-weight: bold;width:12.5%">收款单号</td>
<td style="width:12.5%">{{form?form.receiptNo:''}}</td>
<td style="font-weight: bold;width:12.5%">备注</td>
<td colspan="4" style="width: 50%;">{{form?form.remark:''}}</td>
</tr>
<tr>
<td colspan="8">Form/To:{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:''}}>{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destAddressZh:''}}</td>
</tr>
</table>
<table border="1" style="width: 100%;text-align: center;border-collapse: collapse; border-top: 0;">
<tr>
<th style="width: 12.5%;">序号</th>
<th style="width: 12.5%;">提单号</th>
......@@ -34,38 +35,21 @@
</tr>
<tr v-for="(item, index) in list" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.receiptNo||''}}</td>
<td>{{ item.orderNo }}</td>
<td>{{ item.orderNo }}</td>
<td>-</td>
<td>{{ item.titleZh }}</td>
<td>{{ item.exchangeRate }}</td>
<td>{{ item.totalAmount }}</td>
<td>{{ item.actualAmount }}</td>
</tr>
<tr>
<td colspan="2">{{ $t('合计(大写)') }}</td>
<td colspan="2">{{ convertCurrency(totalMoney()) }}</td>
<td colspan="2">{{ $t('合计实收') }}</td>
<td>{{ totalMoney() }}</td>
<td>收款金额(人民币)</td>
<td colspan="3">234</td>
<td><dict-tag :value="item.feeType" :type="DICT_TYPE.FEE_TYPE"></dict-tag></td>
<td> {{item.totalAmount}}</td>
<td><dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="item.currencyId" /></td>
<td>{{ item.discountTotal||0 }}</td>
</tr>
<tr>
<td>美元应收合计</td>
<td >{{ convertCurrency(totalMoney()) }}</td>
<td>汇率</td>
<td>{{ totalMoney() }}</td>
<td>收款金额(美元)</td>
<td colspan="3">234</td>
</tr>
<tr>
<td>奈拉应收合计</td>
<td >{{ convertCurrency(totalMoney()) }}</td>
<tr v-for="(items, indexs) in receiptAccountList" :key="indexs">
<td><dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="items.collectionCurrencyId" />应收合计</td>
<td >{{ `${item.receivableAmount - item.discountTotal }(${item.receivableAmount} - ${item.discountTotal})` }}</td>
<td>汇率</td>
<td>{{ totalMoney() }}</td>
<td>收款金额(奈拉)</td>
<td colspan="3">234</td>
<td>{{ items.collectionRate.toFixed(6)}}</td>
<td>收款金额(<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="items.collectionCurrencyId" />)</td>
<td colspan="3">{{ items.collectionAmount.toFixed(6)}}</td>
</tr>
</table>
<div style="text-align: center;border-left:1px solid #666;border-right: 1px solid #666;height: 36px;line-height: 36px;">
......@@ -120,7 +104,9 @@
import { listSimpleDepts } from "@/api/system/dept"
import { getReceipt} from "@/api/ecw/receipt";
import lodop from '@/utils/lodop'
import { getReceiptInfoByIds, getInvoicingItem } from "@/api/ecw/financial";
import NP from 'number-precision'
import {getOrder} from '@/api/ecw/order'
import { getReceiptInfoByIds, getInvoicingItem,getReceiptAccountList } from "@/api/ecw/financial";
export default {
name: "PrintVoucher",
......@@ -140,9 +126,11 @@
page:1,
rows:20,
},
receiptAccountList:[],
deptData:[],
deptArr:[],
id:0
id:0,
orderData:[]
}
},
async created() {
......@@ -173,8 +161,55 @@
that.getCollectionData()
getInvoicingItem({id: this.id}).then(res => {
this.list = res.data
if(this.list.length>0) this.getOrder(this.list[0].orderId)
})
}
getReceiptAccountList({ id: this.id }).then(res => {
if (res.data.length > 0) {
// totalAmount
res.data = [...res.data, {
type: 'total',
writeOffAmount: res.data.reduce((total, currentValue) => NP.plus(total, currentValue.writeOffAmount || 0), 0),
collectionAmount: [0, 0, 0]
}]
}
// 收款总计
const dollarList = res.data.filter(v => v.collectionCurrencyId == 1)
const dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
const rmbList = res.data.filter(v => v.collectionCurrencyId == 2)
const rmb = rmbList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
const nairaList = res.data.filter(v => v.collectionCurrencyId == 3)
const naira = nairaList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount || 0), 0)
res.data[res.data.length -1].collectionAmount = [dollar, rmb, naira]
// this.$set(this.form, 'receiptAccountList', [...this.form.receiptAccountList])
const dollarListByList = this.list.filter(v => v.currencyId === 1)
const discountDollar = dollarListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
const d = res.data.find(v => v.currencyId == 1)
d && (d.discountTotal = discountDollar)
const rmbListByList = this.list.filter(v => v.currencyId === 2)
const discountRmb = rmbListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
const r = res.data.find(v => v.currencyId == 2)
r && (r.discountTotal = discountRmb)
const nairaListByList = this.list.filter(v => v.currencyId === 3)
const discountNaira = nairaListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
const n = res.data.find(v => v.currencyId == 3)
n && (n.discountTotal = discountNaira)
this.$set(this.form, 'receiptAccountList', [...res.data])
this.$nextTick(() => {
// this.form.receiptAccountList.forEach((item, index) => {
// this.rateChange(item, index)
// });
})
})
},
methods: {
getCollectionData(){
......@@ -184,6 +219,11 @@
that.form.departmentName = that.deptData.find(v => v.id == that.form.departmentId).name
})
},
getOrder(orderId){
getOrder(orderId).then(response => {
this.orderData = response.data
});
},
print(){
lodop().then(LODOP => {
LODOP.PRINT_INIT();
......
......@@ -214,26 +214,29 @@
</div>
</el-dialog>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="$t('放入品名')" :visible.sync="shopOpen" width="400px" append-to-body>
<el-form ref="shopForm" :model="shopForm" :rules="shopRules" label-width="80px">
<el-dialog :title="$t('放入品名')" :visible.sync="shopOpen" width="500px" append-to-body>
<el-form ref="shopForm" :model="shopForm" :rules="shopRules" label-width="120px">
<el-row>
<el-form-item :label="$t('中文品名')+':'" v-if="splitData.length>0">
<el-select v-model="shopForm.prodTitleZh" :placeholder="$t('请选择中文品名')" @change="changeProdTitleZh" clearable>
<el-option v-for="item in splitData[0].orderSplitItemBackVOList" :label="item.prodTitleZh" :value="item.prodTitleZh" :key="item.prodTitleZh" ></el-option>
<el-select v-model="shopForm.pordid" :placeholder="$t('请选择中文品名')" @change="changeProdTitleZh" clearable>
<el-option v-for="item in splitData[0].orderSplitItemBackVOList" :label="item.prodTitleZh" :value="item.id" :key="item.prodTitleZh" ></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item :label="$t('英文品名')+':'" v-if="splitData.length>0">
<el-select v-model="shopForm.prodTitleEn" :placeholder="$t('请选择英文品名')" @change="changeProdTitleEn" clearable>
<el-option v-for="item in splitData[0].orderSplitItemBackVOList" :label="item.prodTitleEn" :value="item.prodTitleEn" :key="item.prodTitleEn" ></el-option>
<el-select v-model="shopForm.pordid" :placeholder="$t('请选择英文品名')" @change="changeProdTitleZh" clearable>
<el-option v-for="item in splitData[0].orderSplitItemBackVOList" :label="item.prodTitleEn" :value="item.id" :key="item.prodTitleEn" ></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('剩余箱数')+':'">
{{shopForm.sum||0}}
</el-form-item>
<el-form-item :label="$t('放入箱数')+':'">
<el-input-number v-model="shopForm.num" controls-position="right" :min="1" :max="shopForm.sum"></el-input-number>
<el-input-number v-model="shopForm.num" @change="numChange" controls-position="right" :min="1" :max="shopForm.sum"></el-input-number>
</el-form-item>
<el-form-item v-if="quantityshow" :label="$t('放入数量')+'('+$t('个')+')'+':'">
<el-input-number v-model="shopForm.quantity" controls-position="right" :min="1" :max="quantitySum"></el-input-number>
</el-form-item>
<el-form-item :label="$t('备注信息')+':'">
<el-input v-model="shopForm.remarks"></el-input>
......@@ -265,7 +268,7 @@
<script>
import {getDictData, getDictDatas,DICT_TYPE} from '@/utils/dict'
import {getSplitList,splitApply,createSplit,cancelApply,createSplitItem,deleteSplitItem,deleteSplit} from "@/api/ecw/orderHandle"
import {getSplitList,splitApply,createSplit,cancelApply,createSplitItem,deleteSplitItem,deleteSplit,quantitycheck} from "@/api/ecw/orderHandle"
import {getWarehouseList} from '@/api/ecw/warehouse'
import {getChannelList} from '@/api/ecw/channel'
import WorkFlow from '@/components/WorkFlow'
......@@ -297,7 +300,7 @@ export default {
importCityList:[],
selectedUsers:[],
shopOpen:false,
quantityshow:false,
shopForm:{},
// 表单校验
rules: {
......@@ -318,7 +321,8 @@ export default {
page:1,
rows:20
},
splitItemIndex:0
splitItemIndex:0,
quantitySum:0
};
},
created() {
......@@ -457,6 +461,7 @@ export default {
addShop(index){
this.splitItemIndex = index
this.shopOpen = true
},
addSplit(){
this.form.transportId = this.orderData.transportId
......@@ -466,22 +471,38 @@ export default {
if(this.orderData.logisticsInfoDto&&this.orderData.logisticsInfoDto.channelId){
this.form.channelId = this.orderData.logisticsInfoDto.channelId
}
}
this.open = true
},
changeProdTitleZh(){
changeProdTitleZh(val){
var list = []
list = this.splitData[0].orderSplitItemBackVOList.filter(item=>item.prodTitleZh == this.shopForm.prodTitleZh)
list = this.splitData[0].orderSplitItemBackVOList.filter(item=>item.id == val)
this.shopForm.sum = list[0].num
this.quantitySum = list[0].quantity
this.shopForm.orderItemId = list[0].orderItemId
this.shopForm.prodTitleEn = list[0].prodTitleEn
this.shopForm.prodTitleZh = list[0].prodTitleZh
var params = {
'seaFreightVolume':list[0].seaFreightVolume,
'clearanceFreightVolume':list[0].clearanceFreightVolume
}
console.log(params)
this.numcheck(params)
},
numcheck(params){
quantitycheck(params).then(res=>{
this.quantityshow = res.data
})
},
numChange(){
var sum = parseInt(this.quantitySum/this.shopForm.num)
this.$set(this.shopForm,'quantity',sum)
},
changeProdTitleEn(){
var list = []
list = this.splitData[0].orderSplitItemBackVOList.filter(item=>item.prodTitleEn == this.shopForm.prodTitleEn)
this.shopForm.sum = list[0].num
this.quantitySum = list[0].quantity
this.shopForm.prodTitleZh = list[0].prodTitleZh
},
haddleAdd(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment