销售发票开票匹配

This commit is contained in:
lihao 2025-12-08 12:25:45 +08:00
parent 9c2c4f7484
commit 4da3db42c1
4 changed files with 153 additions and 8 deletions

View File

@ -13,9 +13,19 @@ import { BTNCODE } from '../../const';
import cancelCopy_BtnClick from '../init/cancelCopy_BtnClick';
import copyLine_BtnClick from '../init/copyLine_BtnClick';
import refAddLine_BtnClick from './refAddLine_BtnClick';
import { ajax } from 'nc-lightapp-front';
import PasteLineToTail_BtnClick from '../init/PasteLineToTail_BtnClick';
const { ADDLINE, COPYLINE, DELETELINE } = BTNCODE;
import {
createBodyAfterEventData,
processBillCardBodyEditResult
} from '../../../../../scmpub/scmpub/pub/tool/afterEditUtil';const { ADDLINE, COPYLINE, DELETELINE } = BTNCODE;
import { processCardTableAutoAddRow } from '../../../../../scmpub/scmpub/pub/tool/autoAddRowUtil';
import { PAGEAREA, URL, PAGEID, KEY } from '../../const';
import { addRowBtnClick } from '../btnClicks';
const { CARD } = PAGEID;
const { FORMID, TABLEID } = PAGEAREA;
import headTotalCalRule from '../../../pub/pubrule/headTotalCalRule';
const { BODYAFTERURL } = URL;
export default function(type, props, key) {
switch (key) {
// 参照增行
@ -46,7 +56,62 @@ export default function(type, props, key) {
case 'PasteLineToTail':
PasteLineToTail_BtnClick.call(this, props);
break;
// 开票匹配
case 'changeRow':
document.querySelector('#fileInfo').click();
break;
// 匹配确认
case 'updateRow':
let olddate = this.props.cardTable.getAllData(this.tableId)
let delrow=[];
for(let i=0;i<olddate.rows.length;i++){
//数量
let nnum = olddate.rows[i].values.nnum.value;
// 匹配数量
let vbdef18 = olddate.rows[i].values.vbdef18.value;
if(vbdef18 != "" && vbdef18 != undefined ){
this.props.cardTable.setValByKeyAndIndex("saleinvoice_b", i, "nnum", { value: vbdef18 })
// this.props.cardTable.setValByKeyAndIndex("saleinvoice_b", i, "nastnum", { value: vbdef18 })
let row1 ={};
row1.newvalue={value:vbdef18}
row1.oldvalue={value:nnum}
// bodyAfterEvent(this.props,"saleinvoice_b","nnum",vbdef18,[row1],i,olddate.rows[i])
let data = createBodyAfterEventData(this.props, CARD, FORMID, TABLEID, "saleinvoice_b", "nnum", [row1], i);
ajax({
url: BODYAFTERURL,
data: data,
async: false,
success: (res) => {
if (res.data && res.data.billCard) {
props.form.setAllFormValue({ [FORMID]: res.data.billCard.head[FORMID] }, false);
processBillCardBodyEditResult(this.props, TABLEID, res.data, i);
// 如果编辑字段影响单价金额算法,则触发表头合计
if (KEY.NEEDCALKEY.includes(key)) {
let keymaps = new Map();
keymaps.set('nastnum', 'ntotalastnum');
keymaps.set('norigtaxmny', 'ntotalorigmny');
keymaps.set('norigsubmny', 'ntotalorigsubmny');
keymaps.set('norigdiscount', 'nhvoicedismny');
headTotalCalRule(this.props, CARD, FORMID, TABLEID, keymaps);
}
processCardTableAutoAddRow(props, TABLEID, i, {
isMuli: [row1].length > 1 ? true : false,
isAutoAddFunc: isAutoAdd.bind(this, this.props),
autoAddFunc: addRowBtnClick.bind(this, this.props, true)
});
}
}
});
}else{
delrow.push(i);
}
}
this.props.cardTable.delRowsByIndex("saleinvoice_b",delrow);
break;
}
}
function isAutoAdd(props) {
return true;
}
/*QxQxIdC7hL9eZPhKtSQCz0n/IxFd/FalDCgPsuoRiIE=*/

View File

@ -30,7 +30,30 @@ export default async function(props, moduleId, key, value, index, record) {
return false;
}
// 20251125 校验是否能修改价税合计
if(key == 'nqtorigtaxprice' || key == 'norigtaxmny'){
let csrcbid = record.values.csrcbid.value;
let pk_org = record.values.pk_org.value;
let data = {
pk_org:pk_org,
csrcbid:csrcbid
}
ajax({
url: '/nccloud/so/saleinvoice/checkinvoice.do',
data: data,
success: (res) => {
if (res.success) {
debugger
if (res.data=='success') {
return true;
}else{
showErrorInfo(res.data);
return false;
}
}
}
});
}
if (
key.includes('price') ||
key.includes('mny') ||

View File

@ -1,7 +1,7 @@
/*YInZLc9/kvMC1mGq3o4LwAszAXwVlsNyvp/9X8WPLW8=*/
import React, { Component } from 'react';
import { createPage, base, high } from 'nc-lightapp-front';
import { ajax, createPage, base, high } from 'nc-lightapp-front';
import backBtnClick from './btnClicks/back_BtnClick';
import checkAddLine from './btnClicks/checkAddline';
import checkDeleteLine from './btnClicks/checkDeleteLine';
@ -12,7 +12,6 @@ import buttonController from './viewController/buttonController';
import rowButtonController from './viewController/rowButtonController';
import { buttonClick, body_BtnClick, pageInfoClick, commit_BtnClick, saveAndCommit_BtnClick } from './btnClicks';
import { afterEvent, beforeEvent, batchEvents } from './events';
import { setEditEnable } from './viewController/cardEditController';
const { BillTrack } = high;
import NCUploader from 'uap/common/components/NCUploader';
@ -154,7 +153,58 @@ class SaleInvoiceCard extends Component {
this.payer = payer;
this.checker = checker;
};
upload(v, states) {
console.log("导入");
window.hh = this
if (!v) {
return;
}
let formData = new FormData();
let dome = document.querySelector("#fileInfo");
let olddate = this.props.cardTable.getAllData(this.tableId)
formData.append('imgFile', dome.files[0]);
// headers['Content-Type'] = 'multipart/form-data'
formData.append('states', states);
ajax({
url: '/nccloud/so/saleinvoice/SaleInvoiceNumImport.do',
data: formData,
headers: { "Content-Type": "multipart/form-data" },
success: (res) => {
console.log("成功")
if (res.data.isSuccess == "Y") {
for(let row of res.data.data){
let taxPrice=row.taxPrice;
let materialCode=row.materialCode;
for(let i=0;i<olddate.rows.length;i++){
//物料编码
let cmaterialvid = olddate.rows[i].values.cmaterialvid.display;
// 含税单价
let nqtorigtaxprice = olddate.rows[i].values.nqtorigtaxprice.value;
if(cmaterialvid == materialCode && parseFloat(taxPrice)==parseFloat(nqtorigtaxprice)){
this.props.cardTable.setValByKeyAndIndex("saleinvoice_b", i, "vbdef18", { value: row.matchQuantity })
}
}
// for (let bvo of olddate.rows) {
// //物料编码
// let cmaterialvid = bvo.values.cmaterialvid.display;
// // 含税单价
// let nqtorigtaxprice = bvo.values.nqtorigtaxprice.value;
// if(cmaterialvid == materialCode && parseFloat(taxPrice)==parseFloat(nqtorigtaxprice)){
// this.props.cardTable.setValByKeyAndIndex("saleinvoice_b", 1, "vbdef18", { value: row.matchQuantity })
// }
// }
}
}
// let id = this.props.getUrlParam(PRIMARY_KEY.id);
// this.onRefresh();
}
})
// 置空,不然重复导入同名不会执行
document.querySelector("#fileInfo").value = "";
}
//获取列表肩部信息
getTableHead = (type) => {
return (
@ -526,6 +576,7 @@ class SaleInvoiceCard extends Component {
<iframe id="printServiceframe" name="printServiceframe" style={{ display: 'none' }} />
{/* 打印次数查询模态框 */}
{createModal('code-config')}
</div>
);
};
@ -559,6 +610,8 @@ class SaleInvoiceCard extends Component {
{createModal('MessageDlg', {
size: 'xlg'
})}
<input style={{display: 'none'}} type= 'file' id='fileInfo' onChange= {(value) => this.upload(value)} />
</div>
);
}

View File

@ -138,7 +138,9 @@ const BTN = {
// 卡片
BTNCARD: {
BODY: {
EDIT: [ ADDLINE, DELETELINE, COPYLINE, REFLINE, REARRANGEROWNO ]
EDIT: [ ADDLINE, DELETELINE, COPYLINE, REFLINE, REARRANGEROWNO,
"changeRow",
"updateRow" ]
},
// 操作列按钮
ROW: {
@ -197,7 +199,9 @@ const BTN = {
CREDITQUERY,
OFFSETINFO,
VATSUBTOTAL,
CROSSPROFITRPT
CROSSPROFITRPT,
"changeRow",
"updateRow"
]
}
// ,