tk2312-web/src/arap/public/components/pubUtils/billPubUtil.js

760 lines
24 KiB
JavaScript
Raw Normal View History

2025-03-09 11:34:19 +08:00
/*ouLcoi1o54i4viyT4Abk/3uKWvaH9AVr7IBBFay3lPM=*/
import { ajax, base, toast, cacheTools, cardCache, sum} from 'nc-lightapp-front';
let { getDefData, setDefData, updateCache } = cardCache;
//复制行
let copyLine = function (e, dataSource) {
let copyData = e.props.cardTable.getCheckedRows(e.tableId);
if (copyData.length == 0) {
toast({ color: 'warning', content: e.state.json['public-000042'] });/* 国际化处理: 请至少选择一行数据进行复制!*/
return false;
}
let i = 0;
let arr = [];
copyData.forEach((val) => {
if (val.data.status != '3') {
arr.push(copyData[i].data);
i++;
}
});
setDefData("CopyLine", dataSource, arr);
return true;
};
//粘贴行到末行
let pasteToEndLine = function (e, dataSource) {
e.props.beforeUpdatePage(); //打开开关
let rowNum = e.props.cardTable.getNumberOfRows(e.tableId);
let pasteData = getDefData("CopyLine", dataSource);
e.props.cardTable.insertRowsAfterIndex(e.tableId, pasteData, rowNum - 1);
let i = 0;
for (; i < pasteData.length; i++) {
//清空表体主键
resetBodyPk(e, rowNum + i);
// 清空top_bill, src_bill
// clearTopInfos(e, rowNum + i);
let index = rowNum + i;
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'rowno', { value: index.toString() ,display:null,scale:-1 });
}
//计算单据表头金额
calculateHeadMoney(e);
if (e.props.getUrlParam('type') == 'transfer') {
e.synTransferData();
}
e.props.updatePage(e.formId, e.tableId); //关闭开关
};
//删除行
let delLine = function (e) {
let delData = e.props.cardTable.getCheckedRows(e.tableId);
if (delData.length == 0) {
toast({ color: 'warning', content: e.state.json['public-000041'] });/* 国际化处理: 请至少选择一行数据!*/
return;
}
let delIndexs = [];
delData.forEach((val) => {
if (val.data.status != '3') {
delIndexs.push(val.index);
}
});
e.props.cardTable.delRowsByIndex(e.tableId, delIndexs);
//应收单合并计算税
if(e.billType == 'F0'){
F0DeleteAfterEditCalculate(e,delData);
}
//计算单据表头金额
calculateHeadMoney(e);
if (e.props.getUrlParam('type') == 'transfer') {
e.synTransferData();
}
};
//应收单删行的合并计算税功能
let F0DeleteAfterEditCalculate =function(that,delData){
if(that.billType == 'F0'){//应收单合并计算税额
let flag = false;
let tradeType =that.props.form.getFormItemsValue(that.formId, 'pk_tradetype') ? (
that.props.form.getFormItemsValue(that.formId, 'pk_tradetype').value
) : null;
ajax({
url: '/nccloud/arap/arappub/isConsolidatedTax.do',
data: {
tradeType:tradeType
},
async: false,
success: (res) => {
flag = res.data;
}
});
if(!flag){
return;
}
let GROUP_KEYS_LIST =['customer','taxcodeid','taxrate','taxtype','buysellflag','money_de',
'local_money_de','notax_de','local_notax_de','local_tax_de',];
let colValues =getColvalues(that.props, that.tableId, GROUP_KEYS_LIST);
//对整单中客户、税码、税率、扣税类别、购销类型相同的,作为一组,合计计算税基,再计算税额。
let bodys = [];//找到当前删除行的同一组的最后一行customer, taxcodeid, taxrate, taxtype, buysellflag
let allRows = that.props.cardTable.getAllRows(that.tableId);//获取所有显示的行
let rowidIndex ={};//每一行对应的实际行主键为rowId ,value为index
//key = 对整单中客户、税码、税率、扣税类别、购销类型 字段拼接而成value =当前行数据
let groupRow ={}//保存当前分组的最后一行,如果可以一样,前面的将会被后面的覆盖
allRows.forEach((val,index) => {
if(val.status != '3'){
let key = val.values.customer.value+"_"+
val.values.taxcodeid.value+"_"+
val.values.taxrate.value+"_"+
val.values.taxtype.value+"_"+
val.values.buysellflag.value;
groupRow[key] = val;
rowidIndex[val.rowid] = index;
}
});
let delDataKey =[];//删除行对应的key
delData.forEach((val) => {
//if (val.data.status != '3') {
let key = val.data.values.customer.value+"_"+
val.data.values.taxcodeid.value+"_"+
val.data.values.taxrate.value+"_"+
val.data.values.taxtype.value+"_"+
val.data.values.buysellflag.value;
delDataKey.push(key);
//}
});
for(let i =0; i< delDataKey.length ;i++){
if(groupRow[delDataKey[i]]){
bodys.push(groupRow[delDataKey[i]]);
}
}
if(bodys.length == 0){//如果不存在合并计算税的表体行直接return;
return;
}
let cardData = that.props.createMasterChildData(that.getPagecode(), that.formId, that.tableId);
//清空cardData的表体直流表头
cardData.body[that.tableId].rows = bodys;
ajax({
url: '/nccloud/arap/arappub/deleteAfterEditCalculate.do',
data: {
cardData:cardData,
colValues:colValues,
rowidIndex:rowidIndex
},
success: (res) => {
that.props.cardTable.updateDataByRowId(that.tableId, res.data.body[that.tableId]);//只需要更新表体行
},
});
}
}
/**
* 判断应收单是否已经开票申请
* @param {*} pk
* @param {*} billtype
*/
export const RecBillIsExistsIvApplication = function(pk, billtype){
let flag = false;
ajax({
url: '/nccloud/arap/arappub/checkRecItemIsEnableDel.do',
data:{
pk_bill: pk,
billType: billtype
},
async:false,
success: (res) =>{
flag = res.data;
}
});
return flag;
}
/**
* 获取应收单税务发票启用时机 true:审批后开票或不开票 false:审批完成前必须开票
* @param {*} props
* @param {*} formId
*/
export const RecBillGenerateInvoiceTime = function(tradeType){
let flag = false;
let tradetype = tradeType;
ajax({
url: '/nccloud/arap/arappub/checkGenerateInvoiceTime.do',
data: {
tradeType:tradetype
},
async: false,
success: (res) => {
flag = res.data;
}
});
return flag;
}
//表体行复制
let copyInner = function (record, dataSource, that) {
let copyIndexs = [];
copyIndexs.push(record);
setDefData("CopyLine", dataSource, copyIndexs);
if (copyIndexs.length >= 1) {
toast({ color: 'success', content: that.state.json['public-000162'] });/* 国际化处理: 复制成功!*/
return;
}
}
//粘贴至此
let pasteInner = function (that, props, dataSource, tableId, index) {
that.props.beforeUpdatePage(); //打开开关
let pasteData = getDefData("CopyLine", dataSource);
props.cardTable.insertRowsAfterIndex(tableId, pasteData, index);
let i = 0;
for (; i < pasteData.length; i++) {
//清空表体主键
resetBodyPk(that, index + 1 + i);
// 清空top_bill, src_bill
// clearTopInfos(that, index + 1 + i);
}
//计算单据表头金额
calculateHeadMoney(that);
if (that.props.getUrlParam('type') == 'transfer') {
that.synTransferData();
}
that.props.updatePage(that.formId, that.tableId); //关闭开关
};
//删行
let deleteInner = function (that, props, tableId, index) {
that.props.beforeUpdatePage(); //打开开关
props.cardTable.delRowsByIndex(tableId, index);
if(that.billType == 'F0'){
let delData = that.props.cardTable.getRowsByIndexs(that.tableId,[index]);
//删行之后进行合并计算税
let newdata =[{
data : delData[0],
index: index
}];
F0DeleteAfterEditCalculate(that,newdata);
}
//计算单据表头金额
calculateHeadMoney(that);
if (that.props.getUrlParam('type') == 'transfer') {
that.synTransferData();
}
that.props.updatePage(that.formId, that.tableId); //关闭开关
};
//计算单据表头金额
let calculateHeadMoney = function (e) {
let billclass = e.props.form.getFormItemsValue(e.formId, 'billclass').value;
let data = e.props.createMasterChildData(e.props.pageId, e.formId, e.tableId);
let money = null;
let local_money = null;
let grouplocal = null;
let globallocal = null;
if (billclass == 'yf' || billclass == 'sk') {
money = getBodyAmountValue(e.formId, e.tableId, data, 'money_cr');
local_money = getBodyAmountValue(e.formId, e.tableId, data, 'local_money_cr');
grouplocal = getBodyAmountValue(e.formId, e.tableId, data, 'groupcrebit');
globallocal = getBodyAmountValue(e.formId, e.tableId, data, 'globalcrebit');
} else if (billclass == 'ys' || billclass == 'fk') {
money = getBodyAmountValue(e.formId, e.tableId, data, 'money_de');
local_money = getBodyAmountValue(e.formId, e.tableId, data, 'local_money_de');
grouplocal = getBodyAmountValue(e.formId, e.tableId, data, 'groupdebit');
globallocal = getBodyAmountValue(e.formId, e.tableId, data, 'globaldebit');
}
//获取表头金额精度,重新设值时,需要重设精度
let moneyScale = e.props.form.getFormItemsValue(e.formId, 'money').scale;
let local_moneyScale = e.props.form.getFormItemsValue(e.formId, 'local_money').scale;
let grouplocalScale = e.props.form.getFormItemsValue(e.formId, 'money').scale;
let globallocalScale = e.props.form.getFormItemsValue(e.formId, 'money').scale;
e.props.form.setFormItemsValue(e.formId, { money: { value: money, scale: moneyScale }, local_money: { value: local_money, scale: local_moneyScale }, grouplocal: { value: grouplocal, scale: grouplocalScale }, globallocal: { value: globallocal, scale: globallocalScale } });
};
//获取单据表体行某个字段金额合计值
let getBodyAmountValue = function (formId, tableId, data, fieldcode) {
if (data && data.head[formId] && data.body[tableId]) {
var amount = 0;
let scale = 0;
for (let i = 0; i < data.body[tableId].rows.length; i++) {
if (data.body[tableId].rows[i].status != "3") {
let val = data.body[tableId].rows[i].values[fieldcode].value;
scale = data.body[tableId].rows[i].values[fieldcode].scale * 1;
val = parseFloat(val);
if (!isNaN(val)) {
amount = parseFloat(sum(...[amount,val]).replace(/,/g, ''));
}
}else{
scale = data.body[tableId].rows[i].values[fieldcode].scale * 1;//删除行后精度问题
}
}
scale =scale==-1?0:scale
amount = amount.toFixed(scale);
return amount;
}
};
//清空表体主键pk
let resetBodyPk = function (e, index) {
let billclass = e.props.form.getFormItemsValue(e.formId, 'billclass').value;
if (billclass == null) {
return;
}
let top = e.props.cardTable.getValByKeyAndIndex(e.tableId, index, 'top_billtype');
if (billclass == 'ys') {
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'pk_recbill', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'pk_recitem', { value: null });
} else if (billclass == 'sk') {
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'pk_gatheritem', { value: null });
// e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'checktype', { value: null, display: null }); //复制行时不清空票据类型 测试要求
//e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'checkno', { value: null, display: null });
//e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'checkno_display', { value: null, display: null });
if(!top||!top.value){
e.props.cardTable.setValByKeyAndIndex(e.tableId, index,'bankrelated_code', { value: null, display: null });//=清空对账标识码
}
} else if (billclass == 'yf') {
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'pk_payableitem', { value: null });
} else if (billclass == 'fk') {
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'pk_payitem', { value: null });
// e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'checktype', { value: null, display: null }); //复制行时不清空票据类型 测试要求
//e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'checkno', { value: null, display: null });
//e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'checkno_display', { value: null, display: null });
if(!top||!top.value){
e.props.cardTable.setValByKeyAndIndex(e.tableId, index,'bankrelated_code', { value: null, display: null });//=清空对账标识码
}
}
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'rowno', { value: null });
};
//清空top_bill, src_bill
let clearTopInfos = function (e, index) {
let billType = e.props.cardTable.getValByKeyAndIndex(e.tableId, index, 'top_billtype');
let topBillType = billType.value;
if (topBillType == 'F0' || topBillType == 'F1' || topBillType == 'F2' || topBillType == 'F3') {
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'src_billid', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'src_billtype', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'src_itemid', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'src_tradetype', { value: null });
} else {
/*付款申请因为要分行录入付款单的金额,所以不清空来源单据的信息,以便回写上游单据的合同付款金额*/
// 36D7 计划执行 ;收付款合同: FCT2 收款合同 FCT1 付款合同
if (
topBillType != null &&
(topBillType == '36D1' || topBillType == '36D7' || topBillType == 'FCT2' || topBillType == 'FCT1')
) {
} else {
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'src_billid', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'src_billtype', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'src_itemid', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'src_tradetype', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'top_billid', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'top_billtype', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'top_itemid', { value: null });
e.props.cardTable.setValByKeyAndIndex(e.tableId, index, 'top_tradetype', { value: null });
}
}
};
//收付单据联查时解析路径参数工具类
let getLinkconferQuery = function (query) {
let theRequest = {};
if (query.indexOf('#') != -1) {
let strArr = query.split('#');
if (strArr && strArr.length > 0) {
let str = strArr[1];
if (str.indexOf('&') != -1) {
let strs = str.split('&');
for (let i = 0; i < strs.length; i++) {
theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1];
}
} else {
theRequest[str.split('=')[0]] = str.split('=')[1];
}
}
}
return theRequest;
};
/**
* 设置整个表单区域编辑性
* @param {*} props
* @param {*} moduleId
* @param {*} flag
*/
function setFormEditable(props, mainId, moduleId, flag) {
// if (props.form.getAllFormValue(moduleId)) {
let meta = props.meta.getMeta();
let items = meta[moduleId].items;
for (let i = 0; i < items.length; i++) {
let item = items[i];
props.form.setFormItemsDisabled(mainId, { [item.attrcode]: !flag });
}
// }
}
//单据删除最后一行空行
function delBlankLine(that, tableId, billType, cardData,modelIndex) {
let rows = cardData.body[tableId].rows;
if (!rows || rows.length == 0) {
toast({ color: 'danger', content: that.state.json['public-000163'] });/* 国际化处理: 子表行不能为空*/
}
if (rows.length == 1) {
return
}
let deleteIndex = [];
for (let i = 0; i < rows.length; i++) {
let row = rows[i];
if (row.status == '3') {
continue;
}
if ('F3' == billType) {
//金额承付场景可以为0
let commpaytype = '0';
let valueAt = row.values.commpaytype ? row.values.commpaytype.value : null;
if (valueAt && valueAt == commpaytype) {
return;
}
}
let money;
let money2;
if ('F3' == billType || 'F0' == billType) {
money = row.values.money_de.value;
money2 = row.values.local_tax_de.value;
} else {
money = row.values.money_cr.value;
money2 = row.values.local_tax_cr.value;
}
if ((Number(money) == Number(0)) && (Number(money2) == Number(0))) {
deleteIndex.push(i);
}
}
if (deleteIndex.length > 0) {
that.props.cardTable.delRowsByIndex(tableId, deleteIndex);
//删除行之后如果表体为空了关闭模态框
if(modelIndex && deleteIndex.indexOf(modelIndex)!=-1 && that.Info.isModelSave){
that.Info.isModelSave = false;
that.props.cardTable.closeModel(that.tableId);
}
// let allVisibleRows=that.props.cardTable.getVisibleRows(that.tableId);
// if((!allVisibleRows || allVisibleRows.length == 0) && that.Info.isModelSave){
// that.Info.isModelSave = false;
// that.props.cardTable.closeModel(that.tableId);
// }
}
}
/**
* 获取表格fields列的数据
* @param {*} props
* @param {*} tableId
* @param {*} fields
*/
function getColvalues(props, tableId, fields) {
let col = {}
for (var i = 0; i < fields.length; i++) {
let key = fields[i]
let value = props.cardTable.getColValue(tableId, key, false, false)
if (value) {
col[key] = value
}
}
return col
}
/**
* 获取选中行指定字段的值
* @param {*} props
* @param {*} tableId
* @param {*} fields
*/
function getCheckedRowColvalues(props, tableId, fields) {
let col = {}
let rows = props.cardTable.getCheckedRows(tableId)
for (var i = 0; i < fields.length; i++) {
let key = fields[i]
let value = []
for (var j = 0; j < rows.length; j++) {
value.push(rows[j].data.values[key])
}
if (value) {
col[key] = value
}
}
return col
}
/**
* 获取表格所有行的rowid
* @param {*} props
* @param {*} tableId
*/
function getRowIds(props, tableId) {
let rows = props.cardTable.getVisibleRows(tableId)
let ids = []
for (var i = 0; i < rows.length; i++) {
ids.push(rows[i].rowid)
}
return ids
}
/**
* 设置表体第一行的一些field数值 到表头显示
* @param {*} props
* @param {*} formId
* @param {*} tableId
*/
function refreshChildVO2HeadVO(props, formId, tableId) {
let arr = ["pk_tradetype", "billdate", "pk_group", "pk_fiorg", "pk_pcorg", "sett_org_v", "sett_org", "pk_billtype", "pk_tradetype", "billclass",
"rate", "grouprate", "globalrate", "payaccount", "recaccount", "cashaccount", "objtype", "payman", "pk_rescenter", "pk_group", "checkelement", "pk_deptid",
"pk_deptid_v", "pk_psndoc", "customer", "supplier", "pu_org", "pu_org_v", "pk_balatype","pk_fiorg_v", "pk_pcorg_v", "so_org", "so_org_v", "cashitem", "bankrollprojet",
"pk_subjcode", "so_psndoc", "pu_psndoc", "so_deptid", "pu_deptid", "so_deptid_v", "pu_deptid_v", "busidate", "ordercubasdoc", "costcenter", "payreason", "invoiceno", "pk_currtype"]
let row = props.cardTable.getRowsByIndexs(tableId, 0)
if (row) {
let col = {}
for (var i = 0; i < arr.length; i++) {
let key = arr[i]
if(Array.isArray(row)){
col[key] = row[0].values[key]
}else{
col[key] = row.values[key]
}
}
props.form.setFormItemsValue(formId, col)
}
}
/**
* 生成功能
* @param {*} that
*/
function generate(that){
ajax({
url: '/nccloud/arap/arappub/generate.do',
data: Object.assign({
pk_bill: that.props.getUrlParam('id'),
pageId: that.getPagecode(),
billType: that.billType
},that.dataInSaga),
success: (result) => {
toast({ color: 'success', title: that.state.json['public-000256'] });
refreshBill(that,result)
}
});
}
/**
* 传结算取消传结算公共方法
* @param {*} that
* @param {*} type 1传结算2取消传结算
*/
function sendSpAndCancelSenSPPubFun(that,type){
let url = '/nccloud/arap/arappub/billsendsp.do';
if(type ==2){
url = '/nccloud/arap/arappub/billcancelsendsp.do';
}
ajax({
url: url,
data: Object.assign({
pk_bill: that.props.getUrlParam('id'),
pageId: that.getPagecode(),
billType: that.billType,
ts: that.props.form.getFormItemsValue(that.formId, 'ts').value ,
},that.dataInSaga),
success: (result) => {
toast({ color: 'success', title: that.state.json['public-000256'] });
refreshBill(that,result)
}
});
}
/**
* 批量传结算批量取消传结算公共方法
* @param {*} that
* @param {*} type 1传结算2取消传结算
*/
function batchSendSpAndCancelSenSPPubFun(that,type){
let url = '/nccloud/arap/arappub/billbatchsendsp.do';
if(type ==2){
url = '/nccloud/arap/arappub/billbatchcancelsendsp.do';
}
let selData = getAllCheckedData(that, that.props, that.tableId, that.billType);//选中表体行数据信息
if (selData.length == 0) {
toast({ color: 'warning', content: "请选中至少一行数据!" });
return;
}
ajax({
url: url,
data:selData,
success: (result) => {
let { success, data } = result;
//toast({ color: 'success', title: that.state.json['public-000256'] });
if (success) {
if (data.grid) {
let grid = data.grid;
let updateValue = [];
for (let key in grid) {
updateValue.push({ index: key, data: { values: grid[key].values } });
}
that.props.table.updateDataByIndexs(that.tableId, updateValue);
}
if (data.message) {
toast({
duration: 'infinity',
color: data.PopupWindowStyle,
content: data.message
});
that.onSelected();
}
}
}
});
}
/**
* 批量生成功能
* @param {*} that
*/
function batchGenerate(that){
let selData = getAllCheckedData(that, that.props, that.tableId, that.billType);//选中表体行数据信息
if (selData.length == 0) {
toast({ color: 'warning', content: "请选中至少一行数据!" });
return;
}
ajax({
url: '/nccloud/arap/arappub/listgenerate.do',
data: selData,
success: (res) => {
let { success, data } = res;
if (success) {
if (data.grid) {
let grid = data.grid;
let updateValue = [];
for (let key in grid) {
updateValue.push({ index: key, data: { values: grid[key].values } });
}
that.props.table.updateDataByIndexs(that.tableId, updateValue);
}
if (data.message) {
toast({
duration: 'infinity',
color: data.PopupWindowStyle,
content: data.message
});
that.onSelected();
}
}
}
});
}
function refreshBill(that,res){
if (res.data) {
updateCache(that.pkname, that.props.getUrlParam('id'), res.data, that.formId, that.dataSource);
if (res.data.head) {
that.props.form.setAllFormValue({ [that.formId]: res.data.head[that.formId] });
}
if (res.data.body) {
that.props.cardTable.setTableData(that.tableId, res.data.body[that.tableId]);
}
} else {
that.props.form.EmptyAllFormValue(that.formId);
that.props.cardTable.setTableData(that.tableId, { rows: [] });
}
that.toggleShow('',res);
}
//获取选中数据的id和billType
let getAllCheckedData = function (that, props, tableId, billType) {
let checkedData = props.table.getCheckedRows(tableId);
let checkedObj = [];
checkedData.forEach((val) => {
checkedObj.push(Object.assign({
pk_bill: val.data.values?val.data.values[that.pkname].value:val.data.pk,
ts: val.data.values?val.data.values.ts.value:val.data.ts,
billType: billType,
index: val.index,
pageId: props.getSearchParam('p')
},that.dataInSaga));
});
return checkedObj;
};
function isExistsTopBill (that){
let bodyrows = that.props.createMasterChildData(that.getPagecode(), that.formId, that.tableId).body[that.tableId].rows;
for (let i = 0; i < bodyrows.length; i++) {
let top_billid = bodyrows[i].values.top_billid.value
let top_itemid = bodyrows[i].values.top_itemid.value
if (top_billid || top_itemid) {
return true
}
}
}
/**
* 按单据号和日期排序 key1 为单据日期key2为单据号数据格式为后台返回的格式慎用目前适合收付内部拉单查询
* V2111
* @param {*} key1
* @param {*} key2
*/
function sortFunction(key1, key2,moduleID) {
return function (a, b) {
let key1value1 = a.head[moduleID].rows[0].values[key1].value;
let key1value2 = b.head[moduleID].rows[0].values[key1].value;
let date1 = new Date(key1value1);
let date2 = new Date(key1value2);
let key2value1 = a.head[moduleID].rows[0].values[key2].value;
let key2value2 = b.head[moduleID].rows[0].values[key2].value;
if (date1.getTime() == date2.getTime()) {
return key2value1 - key2value2;
} else {
if(date1.getTime() < date2.getTime()){
return -1;
}else if(date1.getTime() > date2.getTime()){
return 1;
}
}
}}
export {
setFormEditable,
calculateHeadMoney,
getBodyAmountValue,
clearTopInfos,
resetBodyPk,
getLinkconferQuery,
delLine,
copyLine,
pasteToEndLine,
copyInner,
deleteInner,
pasteInner,
delBlankLine,
getColvalues,
getCheckedRowColvalues,
getRowIds,
refreshChildVO2HeadVO,
F0DeleteAfterEditCalculate,
generate,
batchGenerate,
refreshBill,
isExistsTopBill,
sortFunction,
sendSpAndCancelSenSPPubFun,
batchSendSpAndCancelSenSPPubFun
};
/*ouLcoi1o54i4viyT4Abk/3uKWvaH9AVr7IBBFay3lPM=*/