yxh
13 小时以前 38c26c3049d55ffda598ce0263498448b7c60834
src/views/project/tallage/computingBill/index.vue
@@ -61,21 +61,50 @@
            </el-form-item>
          </el-col>
          <el-col :span="6"
            ><el-form-item label="扣税金额" prop="donateno">
            ><el-form-item label="增值税" prop="donateno">
              <el-input
                v-model="form.vatAmount"
                :disabled="true"
                placeholder="请输入增值税"
              />
            </el-form-item>
          </el-col>
          <el-col :span="6"
            ><el-form-item label="城建税" prop="donateno">
              <el-input
                v-model="form.cityTaxAmount"
                :disabled="true"
                placeholder="请输入城建税"
              />
            </el-form-item>
          </el-col>
          <el-col :span="6"
            ><el-form-item label="劳务税前" prop="donateno">
              <el-input
                v-model="form.laborPretaxAmount"
                :disabled="true"
                placeholder="请输入劳务税前"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="6"
            ><el-form-item label="劳务个税" prop="donateno">
              <el-input
                v-model="form.taxMoney"
                :disabled="true"
                placeholder="请输入扣税金额"
                placeholder="请输入劳务个税"
              />
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="税后金额" prop="donationcategory">
            <el-form-item label="劳务税后" prop="donationcategory">
              <el-input
                v-model="form.taxedamount"
                :disabled="true"
                placeholder="请输入收款行号"
                placeholder="请输入劳务税后"
              />
            </el-form-item>
          </el-col>
@@ -195,23 +224,50 @@
                />
              </template>
            </el-table-column>
            <el-table-column label="扣税金额" align="center" prop="taXmoney">
            <el-table-column prop="vatCost" align="center" label="增值税">
              <template slot-scope="scope">
                <el-input
                  v-model="scope.row.taXmoney"
                  v-model="scope.row.vatCost"
                  :disabled="true"
                  placeholder="扣税金额"
                  placeholder="增值税"
                />
              </template>
            </el-table-column>
            <el-table-column prop="cityTaxCost" align="center" label="城建税">
              <template slot-scope="scope">
                <el-input
                  v-model="scope.row.cityTaxCost"
                  :disabled="true"
                  placeholder="城建税"
                />
              </template>
            </el-table-column>
            <el-table-column prop="laborPretaxCost" align="center" label="劳务税前">
              <template slot-scope="scope">
                <el-input
                  v-model="scope.row.laborPretaxCost"
                  :disabled="true"
                  placeholder="劳务税前"
                />
              </template>
            </el-table-column>
            <el-table-column label="劳务个税" align="center" prop="taxcost">
              <template slot-scope="scope">
                <el-input
                  v-model="scope.row.taxcost"
                  :disabled="true"
                  placeholder="劳务个税"
                />
              </template>
            </el-table-column>
            <el-table-column prop="taxedcost" align="center" label="税后金额">
            <el-table-column prop="taxedcost" align="center" label="劳务税后">
              <template slot-scope="scope">
                <el-input
                  @blur="chargeSum"
                  :disabled="true"
                  v-model="scope.row.taxedcost"
                  placeholder="税后金额"
                  placeholder="劳务税后"
                />
              </template>
            </el-table-column>
@@ -397,14 +453,32 @@
                >
                </el-table-column>
                <el-table-column
                  prop="taXmoney"
                  label="扣税金额"
                  prop="vatCost"
                  label="增值税"
                  show-overflow-tooltip
                >
                </el-table-column>
                <el-table-column
                  prop="cityTaxCost"
                  label="城建税"
                  show-overflow-tooltip
                >
                </el-table-column>
                <el-table-column
                  prop="laborPretaxCost"
                  label="劳务税前"
                  show-overflow-tooltip
                >
                </el-table-column>
                <el-table-column
                  prop="taxcost"
                  label="劳务个税"
                  show-overflow-tooltip
                >
                </el-table-column>
                <el-table-column
                  prop="taxedcost"
                  label="税后金额"
                  label="劳务税后"
                  show-overflow-tooltip
                >
                </el-table-column>
@@ -812,8 +886,6 @@
        });
      }
      this.donorchargeorgans.forEach(item => {
        item.taXmoney = item.pretaxcost - item.taxedcost;
        item.taXmoney = item.taXmoney.toFixed(2);
        this.accumulation();
      });
      if (this.form.id) {
@@ -828,47 +900,81 @@
      this.dialogVisiblepatient = false;
    },
    // 计算个税
    // 计算个税(先保存当前单据,保存成功后再算税;算税成功后从后端重新加载,不再用页面旧金额回写)
    calculateFn() {
      if (this.form.id >= this.MaxFundTaxId) {
        this.$modal.loading("正在提交,请稍候!");
        this.$modal
          .confirm("即将进行算税是否已保存全部数据?")
          .then(res => {
          .confirm("算税前会先保存当前单据,是否继续?")
          .then(() => {
            this.form.serviceFunds = this.donorchargeorgans;
            this.$refs["form"].validate(valid => {
              if (!valid) {
                this.$modal.msgError("单据校验未通过,请检查后重试");
                return;
              }
              this.$modal.loading("正在提交,请稍候!");
              updateFundtax(this.form).then(res0 => {
                if (res0.code != 200) {
                  this.$modal.closeLoading();
                  this.$modal.msgError(res0.msg);
                  return;
                }
            listbxiaostatistics({
              fundTaxId: Number(this.form.id),
              addOrupdate: 1
            }).then(res1 => {
              if (res1.code == 200) {
                this.$modal.msgSuccess("计算成功");
                    // 后端已回写 service_fund / service_fundtax,这里只做重新加载
                    this.refreshFundtax().then(() => {
                this.$modal.closeLoading();
                this.form.istax = 1;
                this.form.taxedtime = this.$moment().format(
                  "YYYY-MM-DD HH:mm:ss"
                );
                this.submitForm();
                      this.$modal.msgSuccess("计算成功");
                    });
              } else {
                this.$modal.closeLoading();
                this.$modal.msgError(res1.msg);
              }
            });
              });
            });
          })
          .catch(() => {});
      } else {
        this.$modal.msgError("当前单据不为最新申请单");
      }
    },
    // 金额合计
    // 从后端重新加载汇总单(含明细单据行)并重算合计
    refreshFundtax() {
      return getFundtax(this.form.id).then(response => {
        this.form = response.data;
        if (this.form.serviceFunds && this.form.serviceFunds[0]) {
          this.donorchargeorgans = this.form.serviceFunds;
          this.donorchargeorgans.forEach((item, index) => {
            item.index = index + 1;
          });
        }
        this.accumulation();
        return response;
      });
    },
    // 金额合计(6 个金额全部取自单据上的后端金额,不再用“税前-税后”倒算)
    accumulation() {
      this.form.pretaxamount = this.donorchargeorgans
        .reduce((acc, obj) => acc + Number(obj.pretaxcost), 0)
        .reduce((acc, obj) => acc + Number(obj.pretaxcost || 0), 0)
        .toFixed(2);
      this.form.vatAmount = this.donorchargeorgans
        .reduce((acc, obj) => acc + Number(obj.vatCost || 0), 0)
        .toFixed(2);
      this.form.cityTaxAmount = this.donorchargeorgans
        .reduce((acc, obj) => acc + Number(obj.cityTaxCost || 0), 0)
        .toFixed(2);
      this.form.laborPretaxAmount = this.donorchargeorgans
        .reduce((acc, obj) => acc + Number(obj.laborPretaxCost || 0), 0)
        .toFixed(2);
      this.form.taxMoney = this.donorchargeorgans
        .reduce((acc, obj) => acc + Number(obj.taXmoney), 0)
        .reduce((acc, obj) => acc + Number(obj.taxcost || 0), 0)
        .toFixed(2);
      this.form.taxedamount = this.donorchargeorgans
        .reduce((acc, obj) => acc + Number(obj.taxedcost), 0)
        .reduce((acc, obj) => acc + Number(obj.taxedcost || 0), 0)
        .toFixed(2);
    },
    // 多选框选中数据
@@ -1011,14 +1117,12 @@
      this.title = "专家费汇总单编辑";
      getFundtax(this.curId).then(response => {
        this.form = response.data;
        if (this.form.serviceFunds[0]) {
        if (this.form.serviceFunds && this.form.serviceFunds[0]) {
          this.donorchargeorgans = this.form.serviceFunds;
          this.donorchargeorgans.forEach((item, index) => {
            item.taXmoney = item.pretaxcost - item.taxedcost;
            item.taXmoney = item.taXmoney.toFixed(2);
            item.index = index + 1;
            this.accumulation();
          });
          this.accumulation();
        }
      });
    },
@@ -1028,14 +1132,12 @@
      this.title = "查看专家费汇总单";
      getFundtax(this.curId).then(response => {
        this.form = response.data;
        if (this.form.serviceFunds[0]) {
        if (this.form.serviceFunds && this.form.serviceFunds[0]) {
          this.donorchargeorgans = this.form.serviceFunds;
          this.donorchargeorgans.forEach((item, index) => {
            item.taXmoney = item.pretaxcost - item.taxedcost;
            item.taXmoney = item.taXmoney.toFixed(2);
            item.index = index + 1;
            this.accumulation();
          });
          this.accumulation();
        }
      });
    },
@@ -1053,21 +1155,10 @@
          if (this.form.id != null) {
            updateFundtax(this.form).then(res1 => {
              if (res1.code == 200) {
                console.log(3);
                this.$modal.msgSuccess("保存成功!");
                getFundtax(this.form.id).then(response => {
                  this.form = response.data;
                  if (this.form.serviceFunds[0]) {
                    this.donorchargeorgans = this.form.serviceFunds;
                    this.donorchargeorgans.forEach((item, index) => {
                      item.taXmoney = item.pretaxcost - item.taxedcost;
                      item.taXmoney = item.taXmoney.toFixed(2);
                      item.index = index + 1;
                      this.accumulation();
                    });
                  }
                });
                this.refreshFundtax().then(() => {
                this.$modal.closeLoading();
                });
              } else {
                this.$modal.closeLoading();
                this.$modal.msgError(res1.msg);
@@ -1077,20 +1168,10 @@
            addFundtax(this.form).then(response => {
              if (response.code == 200) {
                this.$modal.msgSuccess("新增成功!");
                getFundtax(response.data.fundTaxId).then(res => {
                  this.form = res.data;
                  if (this.form.serviceFunds[0]) {
                    this.donorchargeorgans = this.form.serviceFunds;
                    this.donorchargeorgans.forEach((item, index) => {
                      item.taXmoney = item.pretaxcost - item.taxedcost;
                      item.taXmoney = item.taXmoney.toFixed(2);
                      item.index = index + 1;
                      this.accumulation();
                    });
                  }
                });
                this.form.id = response.data.fundTaxId;
                this.refreshFundtax().then(() => {
                this.$modal.closeLoading();
                });
              } else {
                this.$modal.msgError(response.msg);
                this.$modal.closeLoading();