|
|
@@ -600,6 +600,208 @@
|
|
|
|
|
|
<!--报表组件-->
|
|
|
<reportContainer ref="reportContainer"></reportContainer>
|
|
|
+ <!--辅助核算-->
|
|
|
+ <el-dialog title="核算项目维护" append-to-body :visible.sync="auxiliaryVisible" class="el-dialogDeep" width="40%" :before-close="handleClose">
|
|
|
+ <div>科目名称: {{ subjectRow.accountFullName }}</div>
|
|
|
+ <div style="margin-top: 10px">
|
|
|
+ <el-form :model="subjectRow" ref="subjectRow" label-width="70px" class="demo-ruleForm">
|
|
|
+ <!--#region-->
|
|
|
+ <!--<div>外币核算:</div>-->
|
|
|
+ <!--<el-row>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="币种:" prop="curCode">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.curCode"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入币种" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="汇率:" prop="exrate">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.exrate"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入汇率" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="借方金额:" prop="amountDrUsd">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.amountDrUsd"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入借方金额" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="贷方金额:" prop="amountCrUsd">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.amountCrUsd"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入贷方金额" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="本币借方:" prop="amountDr">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.amountDr"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入本币借方" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="本币贷方:" prop="amountCr">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.amountCr"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入本币贷方" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!--</el-row>-->
|
|
|
+ <!--#endregion-->
|
|
|
+ <!--#region-->
|
|
|
+ <!--<div>数量核算:</div>-->
|
|
|
+ <!--<el-row>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="单位:" prop="unitNo">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.unitNo"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入单位" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="规格:" prop="voucherNo">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入规格" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="借方数量:" prop="quantityDr">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.quantityDr"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入借方数量" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="借方单价:" prop="voucherNo">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入借方单价" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="贷方数量:" prop="quantityCr">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.quantityCr"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入贷方数量" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="贷方单价:" prop="voucherNo">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入贷方单价" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!--</el-row>-->
|
|
|
+ <!--#endregion-->
|
|
|
+ <el-row :gutter="40">
|
|
|
+ <el-col :span="12" v-if="subjectAccount.isCorp">
|
|
|
+ <!--<div>客户核算:</div>-->
|
|
|
+ <el-form-item label="客户名称:" prop="corpCnName">
|
|
|
+ <search-query
|
|
|
+ style="width: 100%"
|
|
|
+ ref="searchQueryRef"
|
|
|
+ :datalist="corpCnNameData"
|
|
|
+ :selectValue="subjectRow.corpCnName"
|
|
|
+ :filterable="true"
|
|
|
+ :clearable="true"
|
|
|
+ :remote="true"
|
|
|
+ :buttonIf="true"
|
|
|
+ placeholder="请选择客户名称"
|
|
|
+ :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
|
|
|
+ @corpFocus="getBcorpsListfun"
|
|
|
+ @remoteMethod="getBcorpsListfun"
|
|
|
+ @corpChange="corpChange2($event, 'corpCnName')"
|
|
|
+ @eldialogConfirm="eldialogConfirm('bcorps')"
|
|
|
+ @bottonSearchfun="bottonSearchfun('bcorps')"
|
|
|
+ >
|
|
|
+ <bcorps ref="bcorps" :eldialog="true" @selectionChange="eldialogMultipleChoice($event, 'bcorps')"></bcorps>
|
|
|
+ </search-query>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" v-if="subjectAccount.isDept">
|
|
|
+ <!--<div>部门核算:</div>-->
|
|
|
+ <el-form-item label="部门名称:" prop="deptName">
|
|
|
+ <tree-select
|
|
|
+ v-model="subjectRow.deptName"
|
|
|
+ filterable
|
|
|
+ :data="deptData"
|
|
|
+ :props="{ label: 'title', children: 'children' }"
|
|
|
+ nodeKey="title"
|
|
|
+ size="small"
|
|
|
+ :multiple="false"
|
|
|
+ placeholder="请选择部门名称"
|
|
|
+ @focus="getDeptTreefun"
|
|
|
+ @input="corpChange2($event, 'deptName')"
|
|
|
+ >
|
|
|
+ </tree-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" v-if="subjectAccount.isEmpl">
|
|
|
+ <!--<div>职员核算:</div>-->
|
|
|
+ <el-form-item label="职员名称:" prop="emplName">
|
|
|
+ <search-query
|
|
|
+ :datalist="emplData"
|
|
|
+ :selectValue="subjectRow.emplName"
|
|
|
+ :clearable="true"
|
|
|
+ :buttonIf="false"
|
|
|
+ :filterable="true"
|
|
|
+ :remote="true"
|
|
|
+ placeholder="请选择职员名称"
|
|
|
+ :forParameter="{ key: 'id', label: 'name', value: 'name' }"
|
|
|
+ @corpFocus="userGetListfun"
|
|
|
+ @corpChange="corpChange2($event, 'emplName')"
|
|
|
+ @remoteMethod="userGetListfun"
|
|
|
+ >
|
|
|
+ </search-query>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <!--<el-col :span="12" v-if="subjectAccount.isItem">-->
|
|
|
+ <!-- <div>项目核算:</div>-->
|
|
|
+ <!-- <el-form-item label="项目名称:" prop="itemName">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.itemName"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入项目名称" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- <search-query :datalist="itemData"-->
|
|
|
+ <!-- :selectValue="subjectRow.itemName"-->
|
|
|
+ <!-- :clearable="true"-->
|
|
|
+ <!-- :buttonIf="false"-->
|
|
|
+ <!-- :filterable="true"-->
|
|
|
+ <!-- :remote="true"-->
|
|
|
+ <!-- placeholder="请选择项目名称"-->
|
|
|
+ <!-- :forParameter="{ key:'id', label:'cnName', value:'cnName'}"-->
|
|
|
+ <!-- @corpFocus="baccitemstypeListfun"-->
|
|
|
+ <!-- @corpChange="corpChange($event,'itemName')"-->
|
|
|
+ <!-- @remoteMethod="baccitemstypeListfun" >-->
|
|
|
+ <!-- </search-query>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!--</el-col>-->
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="auxiliaryVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="auxiliaryDeterminefun">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
<!--预收预付核销-->
|
|
|
<el-dialog
|
|
|
title="预收预付核销管理"
|
|
|
@@ -869,6 +1071,7 @@ import {
|
|
|
finstlbillsGenerateVoucher,
|
|
|
voucherRemove
|
|
|
} from "@/api/iosBasicData/finstlbills";
|
|
|
+import { getDeptLazyTree } from "@/api/system/dept";
|
|
|
import expand from "@/components/basic-container/expand.vue";
|
|
|
import queryFinstlbillsitems from "@/views/iosBasicData/PaymentApplication/assembly/finstlbillsitems.vue";
|
|
|
import finstlbillsitems from "@/views/iosBasicData/PaymentApplication/assembly/finstlbillsitems2.vue";
|
|
|
@@ -884,6 +1087,10 @@ import fromtableDetails from "./components/fromtableDetails.vue";
|
|
|
import { getCurrentDate } from "@/util/date";
|
|
|
import { accountsDetail } from "@/api/iosBasicData/accounts";
|
|
|
import { getOffVoucherItems } from "@/api/iosBasicData/finvouchers";
|
|
|
+import TreeSelect from "@/components/iosbasic-data/TreeSelect.vue";
|
|
|
+import { selectEmpls } from "@/api/approval/processConfig";
|
|
|
+import { getBcorpsList } from "@/api/iosBasicData/bcorps";
|
|
|
+import bcorps from "@/views/iosBasicData/bcorps/index.vue";
|
|
|
export default {
|
|
|
components: {
|
|
|
reportContainer,
|
|
|
@@ -894,7 +1101,9 @@ export default {
|
|
|
finstlbillsitems,
|
|
|
dicSelect,
|
|
|
queryFinstlbillsitems,
|
|
|
- fromtableDetails
|
|
|
+ fromtableDetails,
|
|
|
+ TreeSelect,
|
|
|
+ bcorps
|
|
|
},
|
|
|
props: {
|
|
|
// 编辑还是保存
|
|
|
@@ -1079,6 +1288,82 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
methods: {
|
|
|
+ corpChange2(value, name) {
|
|
|
+ let found = false;
|
|
|
+ // 客户名称客户名称
|
|
|
+ if (name == "corpCnName") {
|
|
|
+ for (let item of this.corpCnNameData) {
|
|
|
+ if (item.cnName == value) {
|
|
|
+ found = true;
|
|
|
+ this.$set(this.subjectRow, "corpEnName", item.enName);
|
|
|
+ this.$set(this.subjectRow, "corpCnName", item.cnName);
|
|
|
+ this.$set(this.subjectRow, "corpShortName", item.shortName);
|
|
|
+ this.$set(this.subjectRow, "corpId", item.id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!found) {
|
|
|
+ this.$set(this.subjectRow, "corpEnName", "");
|
|
|
+ this.$set(this.subjectRow, "corpCnName", "");
|
|
|
+ this.$set(this.subjectRow, "corpShortName", "");
|
|
|
+ this.$set(this.subjectRow, "corpId", 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 核算
|
|
|
+ else if (name == "deptName") {
|
|
|
+ for (let item of this.deptData) {
|
|
|
+ if (item.title == value) {
|
|
|
+ found = true;
|
|
|
+ this.$set(this.subjectRow, "deptName", item.title);
|
|
|
+ this.$set(this.subjectRow, "deptId", item.id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!found) {
|
|
|
+ this.$set(this.subjectRow, "deptName", "");
|
|
|
+ this.$set(this.subjectRow, "deptId", 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 职员
|
|
|
+ else if (name == "emplName") {
|
|
|
+ for (let item of this.emplData) {
|
|
|
+ if (item.name == value) {
|
|
|
+ found = true;
|
|
|
+ this.$set(this.subjectRow, "emplName", item.name);
|
|
|
+ this.$set(this.subjectRow, "emplId", item.id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!found) {
|
|
|
+ this.$set(this.subjectRow, "emplName", "");
|
|
|
+ this.$set(this.subjectRow, "emplId", 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 项目核算
|
|
|
+ else if (name == "itemName") {
|
|
|
+ for (let item of this.itemData) {
|
|
|
+ if (item.cnName == value) {
|
|
|
+ found = true;
|
|
|
+ this.$set(this.subjectRow, "itemName", item.cnName);
|
|
|
+ this.$set(this.subjectRow, "itemId", item.id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!found) {
|
|
|
+ this.$set(this.subjectRow, "itemName", "");
|
|
|
+ this.$set(this.subjectRow, "itemId", 0);
|
|
|
+ }
|
|
|
+ } else if (name == "voucherType") {
|
|
|
+ this.$set(this.form, name, value);
|
|
|
+ for (let item of this.voucherTypeData) {
|
|
|
+ if (item.dictKey == value) {
|
|
|
+ found = true;
|
|
|
+ this.$set(this.form, "voucherTypeName", item.dictValue + "凭证");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!found) {
|
|
|
+ this.$set(this.subjectRow, "voucherTypeName", "");
|
|
|
+ }
|
|
|
+ } else if (name == "voucherSource") {
|
|
|
+ this.$set(this.form, name, value);
|
|
|
+ }
|
|
|
+ },
|
|
|
corpChangeOff(value, name) {
|
|
|
let found = false;
|
|
|
// 客户名称
|
|
|
@@ -1155,6 +1440,48 @@ export default {
|
|
|
this.$set(this.form, name, value);
|
|
|
}
|
|
|
},
|
|
|
+ bottonSearchfun(name) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.$refs.bcorps.selectionList.length == 0) return;
|
|
|
+ this.$refs.bcorps.$refs.crud.toggleSelection(); // 先清空所以选择的数据
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 下拉多选弹窗数据多选回调
|
|
|
+ eldialogMultipleChoice(list, name) {
|
|
|
+ if (name == "bcorps") {
|
|
|
+ let arr = [];
|
|
|
+ if (list.length > 1) {
|
|
|
+ this.$refs.bcorps.$refs.crud.toggleSelection(); // 先清空所以选择的数据
|
|
|
+ arr = [list[list.length - 1]]; // 获取最新点击的数组
|
|
|
+ this.$refs.bcorps.$refs.crud.toggleSelection(arr, true); // 把刚点击的数组变成选择状态
|
|
|
+ } else {
|
|
|
+ arr = list;
|
|
|
+ }
|
|
|
+ this.$refs.bcorps.selectionList = arr;
|
|
|
+ } else {
|
|
|
+ console.log("其他的组件");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 下拉多选弹窗的确认
|
|
|
+ eldialogConfirm(name) {
|
|
|
+ if (name == "bcorps") {
|
|
|
+ if (this.$refs.bcorps.isShow) {
|
|
|
+ console.log("列表确认");
|
|
|
+ this.$set(this.subjectRow, "corpCnName", this.$refs.bcorps.selectionList[0].cnName);
|
|
|
+ this.$set(this.subjectRow, "corpEnName", this.$refs.bcorps.selectionList[0].enName);
|
|
|
+ this.$set(this.subjectRow, "corpId", this.$refs.bcorps.selectionList[0].id);
|
|
|
+ } else {
|
|
|
+ console.log("详情确认");
|
|
|
+ this.$refs.bcorps.$refs.detail.submitForm();
|
|
|
+ this.$set(this.subjectRow, "corpCnName", this.$refs.bcorps.$refs.detail.formData.cnName);
|
|
|
+ this.$set(this.subjectRow, "corpEnName", this.$refs.bcorps.$refs.detail.formData.enName);
|
|
|
+ this.$set(this.subjectRow, "corpId", this.$refs.bcorps.$refs.detail.formData.id);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ console.log("其他的组件");
|
|
|
+ }
|
|
|
+ this.$refs.searchQueryRef.corpVisible = false;
|
|
|
+ },
|
|
|
// 下拉多选弹窗的确认
|
|
|
eldialogConfirmOff(name) {
|
|
|
if (name == "bcorps") {
|
|
|
@@ -1236,6 +1563,9 @@ export default {
|
|
|
handleOffRecordsSelectionChange(list) {
|
|
|
this.offRecordsSelectionData = list;
|
|
|
},
|
|
|
+ handleClose(done) {
|
|
|
+ done();
|
|
|
+ },
|
|
|
newGuid() {
|
|
|
let vd = "0123456789abcdefghijklmnopqrstuvwxyz".split("");
|
|
|
var i = vd,
|
|
|
@@ -1352,7 +1682,6 @@ export default {
|
|
|
this.$message.success("删除成功");
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
offVouItems.forEach(item => {
|
|
|
let rowIdx = this.form.finStlBillsVoucherItemsList.indexOf(item);
|
|
|
if (rowIdx >= 0) {
|
|
|
@@ -1365,6 +1694,69 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ // 借方/贷方 本币的计算
|
|
|
+ offAmountBlur(row, name) {
|
|
|
+ if (name === "D") {
|
|
|
+ this.$set(row, "amountCrOffCurrent", 0);
|
|
|
+ }
|
|
|
+ if (name === "C") {
|
|
|
+ this.$set(row, "amountDrOffCurrent", 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ let a = row.amountCrOffCurrent ? Number(row.amountCrOffCurrent) : 0;
|
|
|
+ this.$set(row, "amountCrOffCurrent", a > Number(row.amountCrBlc) ? Number(row.amountCrBlc) : a);
|
|
|
+ a = row.amountDrOff ? Number(row.amountDrOff) : 0;
|
|
|
+ this.$set(row, "amountDrOffCurrent", a > Number(row.amountDrBlc) ? Number(row.amountDrBlc) : a);
|
|
|
+
|
|
|
+ if (row.curCode === "USD") {
|
|
|
+ this.$set(row, "exrate", row.exrate ? Number(row.exrate) : 1);
|
|
|
+ this.$set(row, "amountCrUsdOffCurrent", (row.amountCrOffCurrent / row.exrate).toFixed(2));
|
|
|
+ this.$set(row, "amountDrUsdOffCurrent", (row.amountDrOffCurrent / row.exrate).toFixed(2));
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 外币的计算
|
|
|
+ offAmountUSDBlur(row, name) {
|
|
|
+ if (name === "Dusd") {
|
|
|
+ this.$set(row, "amountCrUsdOffCurrent", 0);
|
|
|
+ }
|
|
|
+ if (name === "Cusd") {
|
|
|
+ this.$set(row, "amountDrUsdOffCurrent", 0);
|
|
|
+ }
|
|
|
+ let a = row.amountCrUsdOffCurrent ? Number(row.amountCrUsdOffCurrent) : 0;
|
|
|
+ this.$set(row, "amountCrUsdOffCurrent", a > Number(row.amountCrUsdBlc) ? Number(row.amountCrUsdBlc) : a);
|
|
|
+ a = row.amountDrUsdOffCurrent ? Number(row.amountDrUsdOffCurrent) : 0;
|
|
|
+ this.$set(row, "amountDrUsdOffCurrent", a > Number(row.amountDrUsdBlc) ? Number(row.amountDrUsdBlc) : a);
|
|
|
+
|
|
|
+ this.$set(row, "exrate", row.exrate ? Number(row.exrate) : 1);
|
|
|
+ this.$set(row, "amountCrOffCurrent", (row.amountCrUsdOffCurrent * row.exrate).toFixed(2));
|
|
|
+ this.$set(row, "amountDrOffCurrent", (row.amountDrUsdOffCurrent * row.exrate).toFixed(2));
|
|
|
+ },
|
|
|
+ // 客户
|
|
|
+ getBcorpsListfun(cnName) {
|
|
|
+ getBcorpsList(1, 10, { cnName }).then(res => {
|
|
|
+ this.corpCnNameData = res.data.data.records;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 部门
|
|
|
+ getDeptTreefun() {
|
|
|
+ getDeptLazyTree(JSON.parse(localStorage.getItem("saber-userInfo")).content.dept_pid.split(",")[0]).then(res => {
|
|
|
+ this.deptData = res.data.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 职员
|
|
|
+ userGetListfun(account = undefined, type = false) {
|
|
|
+ // userGetList(1, 10, { account }, JSON.parse(localStorage.getItem('saber-userInfo')).content.dept_pid.split(',')[0]).then(res => {
|
|
|
+ // this.emplData = res.data.data.records
|
|
|
+ // })
|
|
|
+ selectEmpls(1, 10, { cname: account, whetherEmployedOrNot: 1 }).then(res => {
|
|
|
+ if (Array.isArray(res.data.data.records)) {
|
|
|
+ res.data.data.records.forEach(item => {
|
|
|
+ item.name = item.cname;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.emplData = res.data.data.records;
|
|
|
+ });
|
|
|
+ },
|
|
|
handleSelectionChange2(list) {
|
|
|
this.handleSelectionData2 = list;
|
|
|
},
|
|
|
@@ -1380,6 +1772,98 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ regetOffVoucherItems() {
|
|
|
+ getOffVoucherItems(this.subjectRowOff).then(res => {
|
|
|
+ let list = Array.isArray(res.data.data) ? res.data.data : [];
|
|
|
+ list.forEach(item => {
|
|
|
+ if (this.offRecordsData.findIndex(i => i.id === item.id) === -1) {
|
|
|
+ this.offRecordsData.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ offRecordsDeterminefun() {
|
|
|
+ if (!Array.isArray(this.offRecordsData)) {
|
|
|
+ this.offRecordsVisible = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.offRecordsSelectionData.length === 0) {
|
|
|
+ return this.$message.warning("请选择至少一条数据");
|
|
|
+ }
|
|
|
+
|
|
|
+ let row = this.subjectRow;
|
|
|
+ let amt = row.dc === "D" ? Number(row.amountCr) : Number(row.amountDr);
|
|
|
+ let usd = row.dc === "D" ? Number(row.amountCrUsd) : Number(row.amountDrUsd);
|
|
|
+ let amtOff = 0.0,
|
|
|
+ usdOff = 0;
|
|
|
+ let rows = [];
|
|
|
+ this.offRecordsSelectionData.forEach(item => {
|
|
|
+ let currAmt = 0;
|
|
|
+ if (row.dc === "D") {
|
|
|
+ currAmt = Number(item.amountCrOffCurrent);
|
|
|
+ amtOff = amtOff + currAmt;
|
|
|
+ if (item.curCode === "USD") {
|
|
|
+ usdOff = usdOff + Number(item.amountCrUsdOffCurrent);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ currAmt = Number(item.amountDrOffCurrent);
|
|
|
+ amtOff = amtOff + currAmt;
|
|
|
+ if (item.curCode === "USD") {
|
|
|
+ usdOff = usdOff + Number(item.amountDrUsdOffCurrent);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ currAmt = currAmt > 0.0 ? currAmt.toFixed(2) : "0.00";
|
|
|
+ if (currAmt !== "0.00") {
|
|
|
+ rows.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (amt.toFixed(2) !== amtOff.toFixed(2)) {
|
|
|
+ return this.$message({
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
+ message: "<div>选定核销金额与应核销金额不一致!</div>",
|
|
|
+ type: "warning"
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ rows.forEach(item => {
|
|
|
+ let obj = {
|
|
|
+ dynUID: this.newGuid().replace(/-/g, "")
|
|
|
+ };
|
|
|
+ let flds = "accountId,accountCode,accountCnName,accountEnName,accountFullName,accountLevel,accountProperty,dc,";
|
|
|
+ flds += "isArAp,isCorp,isDc,isDept,isEmpl,isForeign,curCode,isQuantity,unitNo,isItem,itemClassify,itemClassifyId,itemId,itemName,";
|
|
|
+ flds += "corpId,corpShortName,corpCnName,corpEnName,deptId,deptName,emplId,emplName,exrate";
|
|
|
+ flds.split(",").forEach(name => {
|
|
|
+ obj[name] = item[name];
|
|
|
+ });
|
|
|
+ obj.descr = row.descr;
|
|
|
+ if (row.dc === "D") {
|
|
|
+ obj.amountDr = item.amountCrOffCurrent;
|
|
|
+ obj.amountCr = 0.0;
|
|
|
+ if (item.curCode === "USD") {
|
|
|
+ obj.amountDrUsd = item.amountCrUsdOffCurrent;
|
|
|
+ obj.amountCrUsd = 0.0;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ obj.amountCr = item.amountDrOffCurrent;
|
|
|
+ obj.amountDr = 0.0;
|
|
|
+ if (item.curCode === "USD") {
|
|
|
+ obj.amountCrUsd = item.amountDrUsdOffCurrent;
|
|
|
+ obj.amountDrUsd = 0.0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ obj.isOff = 1;
|
|
|
+ obj.offSrcItemId = item.id;
|
|
|
+ obj.offVouItemId = row.id;
|
|
|
+ if (!Array.isArray(row.offVouItems)) row.offVouItems = [];
|
|
|
+ row.offVouItems.push(obj);
|
|
|
+
|
|
|
+ this.form.finStlBillsVoucherItemsList.push(obj);
|
|
|
+ });
|
|
|
+
|
|
|
+ this.offRecordsVisible = false;
|
|
|
+ },
|
|
|
// 辅助核算弹窗确认按钮
|
|
|
auxiliaryDeterminefun() {
|
|
|
this.auxiliaryVisible = false;
|
|
|
@@ -1701,9 +2185,9 @@ export default {
|
|
|
if (item.isEmpl === 1 && !item.emplId) {
|
|
|
msgs.push(`第 ${index} 行分录科目 ${item.accountCode} ${item.accountFullName} 核算职员,请选择职员名称!`);
|
|
|
}
|
|
|
- if (item.isItem === 1 && !item.itemId) {
|
|
|
- msgs.push(`第 ${index} 行分录科目 ${item.accountCode} ${item.accountFullName} 核算项目,请选择项目名称!`);
|
|
|
- }
|
|
|
+ // if (item.isItem === 1 && !item.itemId) {
|
|
|
+ // msgs.push(`第 ${index} 行分录科目 ${item.accountCode} ${item.accountFullName} 核算项目,请选择项目名称!`);
|
|
|
+ // }
|
|
|
if (amtDr.toFixed(2) === "0.00" && amtCr.toFixed(2) === "0.00") {
|
|
|
msgs.push(`第 ${index} 行分录科目 ${item.accountCode} ${item.accountFullName} 请填写金额!`);
|
|
|
}
|