Commit 510bacaf by 孙亚楠

dd

parents 126153fd 1be53006
{
"editor.tabSize": 2
}
\ No newline at end of file
...@@ -57,29 +57,8 @@ class ActionAPI extends APIBase { ...@@ -57,29 +57,8 @@ class ActionAPI extends APIBase {
case "uploadDetail": // 查询发票详细信息 case "uploadDetail": // 查询发票详细信息
opResult = await this.iinvoiceSve.uploadDetailSve(action_body); opResult = await this.iinvoiceSve.uploadDetailSve(action_body);
break; break;
case "merchantinvoicePage" : //发票列表(商户) case "accumulatedAmount": // 查询累计金额
opResult = await this.saasinvoiceSve.merchantinvoicePage(action_body); opResult = await this.iinvoiceSve.accumulatedAmount(action_body);
break;
case "platforminvoicePage" : //发票列表(平台)
opResult = await this.saasinvoiceSve.platforminvoicePage(action_body);
break;
case "merchantinvoiceapplyPage" : //发票申请列表(商户)
opResult = await this.saasinvoiceapplySve.merchantinvoiceapplyPage(action_body);
break;
case "platforminvoiceapplyPage" : //发票申请列表(平台)
opResult = await this.saasinvoiceapplySve.platforminvoiceapplyPage(action_body);
break;
case "invoiceapplySave" : //发票申请列表(平台)
opResult = await this.saasinvoiceapplySve.save(action_body);
break;
case "invoiceapplyById" : //发票申请列表(平台)
opResult = await this.saasinvoiceapplySve.byId(action_body);
break;
case "invoiceapplyAudit" : //发票申请列表(平台)
opResult = await this.saasinvoiceapplySve.audit(action_body);
break;
case "invoiceapplyMakeOut" : //发票申请列表(平台)
opResult = await this.saasinvoiceapplySve.makeout(action_body);
break; break;
// case "verificationAndCalculation": // 发票试算接口 // case "verificationAndCalculation": // 发票试算接口
......
...@@ -79,6 +79,32 @@ class IInvoiceDao extends Dao { ...@@ -79,6 +79,32 @@ class IInvoiceDao extends Dao {
return counts[0]; return counts[0];
} }
//计算附加税累计
async accumulatedAddValueAmountByTime(businessmen_credit_code,beginTime,endTime){
let sql =`select SUM(t1.additional_tax) AS additional_tax_total,SUM(t1.value_added_tax) AS value_added_tax_total,SUM(t1.invoice_amount) as invoice_amount_total from i_invoice t1
where t1.businessmen_credit_code = :businessmen_credit_code and t1.apply_time>= :beginTime and t1.apply_time <=:endTime`;
let res= await this.customQuery(sql,{businessmen_credit_code:businessmen_credit_code,beginTime:beginTime,endTime:endTime});
if(res.length==0){
return {additional_tax_total:0,value_added_tax_total:0,invoice_amount_total:0};
}
return {additional_tax_total:res[0].additional_tax_total || 0 ,value_added_tax_total:res[0].value_added_tax_total || 0,invoice_amount_total:res[0].invoice_amount_total || 0};
}
/**
* 计算个税累计
* @param {*} beginTime
* @param {*} endTime
*/
async accumulatedTaxAmountByTime(businessmen_credit_code,beginTime,endTime){
let sql =`select SUM(t1.personal_invoice_tax) AS personal_invoice_tax_total,SUM(t1.invoice_amount) as personal_invoice_amount_total from i_invoice t1
where t1.businessmen_credit_code = :businessmen_credit_code and t1.apply_time>= :beginTime and t1.apply_time <= :endTime`;
let res = await this.customQuery(sql,{businessmen_credit_code:businessmen_credit_code,beginTime:beginTime,endTime:endTime});
if(!res || res.length == 0) {
return {personal_invoice_tax_total: 0,personal_invoice_amount_total: 0};
}
return {personal_invoice_tax_total:res[0].personal_invoice_tax_total || 0,personal_invoice_amount_total:res[0].personal_invoice_amount_total || 0};
}
// /** // /**
// * 红冲列表总计 // * 红冲列表总计
// * @param {*} params // * @param {*} params
......
...@@ -106,12 +106,12 @@ class IInvoiceService extends ServiceBase { ...@@ -106,12 +106,12 @@ class IInvoiceService extends ServiceBase {
if (!params.businessmen_mobile) { if (!params.businessmen_mobile) {
return system.getResult(null, `销售方电话不能为空`); return system.getResult(null, `销售方电话不能为空`);
} }
if (!params.businessmen_bank) { // if (!params.businessmen_bank) {
return system.getResult(null, `销售方开户行不能为空`); // return system.getResult(null, `销售方开户行不能为空`);
} // }
if (!params.businessmen_account) { // if (!params.businessmen_account) {
return system.getResult(null, `销售方对公账户不能为空`); // return system.getResult(null, `销售方对公账户不能为空`);
} // }
if (this.RULE_BUSINESSMEN_TYPE.indexOf(this.trim(params.businessmen_type)) == -1) { if (this.RULE_BUSINESSMEN_TYPE.indexOf(this.trim(params.businessmen_type)) == -1) {
return system.getResult(null, `销售方类型错误`); return system.getResult(null, `销售方类型错误`);
} }
...@@ -138,13 +138,19 @@ class IInvoiceService extends ServiceBase { ...@@ -138,13 +138,19 @@ class IInvoiceService extends ServiceBase {
await this.db.transaction(async t => { await this.db.transaction(async t => {
_invoice = await this.dao.create(_invoice, t); _invoice = await this.dao.create(_invoice, t);
await this.iinvoiceinforegDao.create({ id: _invoice.id }, t); await this.iinvoiceinforegDao.create({
await this.iinvoicesummaryinfoDao.create({ id: _invoice.id }, t); id: _invoice.id
}, t);
await this.iinvoicesummaryinfoDao.create({
id: _invoice.id
}, t);
for (let process of processList) { for (let process of processList) {
process.invoice_id = _invoice.id; process.invoice_id = _invoice.id;
} }
await this.iinvoiceprocessDao.model.bulkCreate(processList, { transaction: t }); await this.iinvoiceprocessDao.model.bulkCreate(processList, {
transaction: t
});
}); });
return system.getResult(`success`); return system.getResult(`success`);
} catch (error) { } catch (error) {
...@@ -160,32 +166,38 @@ class IInvoiceService extends ServiceBase { ...@@ -160,32 +166,38 @@ class IInvoiceService extends ServiceBase {
let total = await this.dao.countByParams(params); let total = await this.dao.countByParams(params);
if (total == 0) { if (total == 0) {
return system.getResult({ count: 0, rows: [] }); return system.getResult({
count: 0,
rows: []
});
} }
let list = await this.dao.pageByParams(params); let list = await this.dao.pageByParams(params);
if (list) { if (list) {
for (var item of list) { for (var item of list) {
this.handleDate(item, ['updated_at', 'created_at','invoice_time'], 'YYYY-MM-DD HH:mm:ss'); this.handleDate(item, ['updated_at', 'created_at', 'invoice_time'], 'YYYY-MM-DD HH:mm:ss');
} }
//格式化产品 //格式化产品
await this.setDeliver(list); await this.setDeliver(list);
//格式化业务员 //格式化业务员
await this.setStatus(list); await this.setStatus(list);
for(let item of list){ for (let item of list) {
if(item.red_status==0){ if (item.red_status == 0) {
item.red_status_name = "红冲"; item.red_status_name = "红冲";
}else if(item.red_status==1){ } else if (item.red_status == 1) {
item.red_status_name = '已经红冲'; item.red_status_name = '已经红冲';
}else if(item.red_status==2){ } else if (item.red_status == 2) {
item.red_status_name = "红冲中"; item.red_status_name = "红冲中";
}else{ } else {
item.red_status_name = ""; item.red_status_name = "";
} }
} }
await this.setProduct(list); await this.setProduct(list);
} }
return system.getResultSuccess({ count: total, rows: list }); return system.getResultSuccess({
count: total,
rows: list
});
} }
/** /**
...@@ -291,7 +303,10 @@ class IInvoiceService extends ServiceBase { ...@@ -291,7 +303,10 @@ class IInvoiceService extends ServiceBase {
if (!nextObj) { if (!nextObj) {
continue; continue;
} }
nextStatus.push({ next_status: nextObj.status, next_name: nextObj.name }); nextStatus.push({
next_status: nextObj.status,
next_name: nextObj.name
});
} }
let orderProcess = { let orderProcess = {
...@@ -317,16 +332,16 @@ class IInvoiceService extends ServiceBase { ...@@ -317,16 +332,16 @@ class IInvoiceService extends ServiceBase {
* 根据ID查询发票详细信息 * 根据ID查询发票详细信息
* @param {*} params * @param {*} params
*/ */
async queryInvoice(params){ async queryInvoice(params) {
if(!params.id){ if (!params.id) {
return system.getResult(null,`参数错误 ID不能为空`); return system.getResult(null, `参数错误 ID不能为空`);
} }
try { try {
let _invoice = await this.dao.getById(this.trim(params.id)); let _invoice = await this.dao.getById(this.trim(params.id));
if(!_invoice){ if (!_invoice) {
return system.getResult(null,`发票不存在`); return system.getResult(null, `发票不存在`);
} }
this.handleDate(_invoice, ['invoice_time','apply_time','updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss'); this.handleDate(_invoice, ['invoice_time', 'apply_time', 'updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss');
let _invoiceinforeg = await this.iinvoiceinforegDao.getById(this.trim(params.id)) || {}; let _invoiceinforeg = await this.iinvoiceinforegDao.getById(this.trim(params.id)) || {};
this.handleDate(_invoiceinforeg, ['updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss'); this.handleDate(_invoiceinforeg, ['updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss');
...@@ -335,17 +350,17 @@ class IInvoiceService extends ServiceBase { ...@@ -335,17 +350,17 @@ class IInvoiceService extends ServiceBase {
let _invoicesummaryinfo = await this.iinvoicesummaryinfoDao.getById(this.trim(params.id)); let _invoicesummaryinfo = await this.iinvoicesummaryinfoDao.getById(this.trim(params.id));
_invoicesummaryinfo.summary = JSON.parse(_invoicesummaryinfo.summary); _invoicesummaryinfo.summary = JSON.parse(_invoicesummaryinfo.summary);
this.handleDate(_invoicesummaryinfo, ['invoice_time','updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss'); this.handleDate(_invoicesummaryinfo, ['invoice_time', 'updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss');
_invoice.invoiceinforeg= _invoiceinforeg; _invoice.invoiceinforeg = _invoiceinforeg;
_invoice.invoicedeliver= _invoicedeliver; _invoice.invoicedeliver = _invoicedeliver;
_invoice.invoicesummaryinfo= _invoicesummaryinfo; _invoice.invoicesummaryinfo = _invoicesummaryinfo;
_invoice.status_name = await this.iprocessDao.queryInvoiceStatusName(_invoice.status); _invoice.status_name = await this.iprocessDao.queryInvoiceStatusName(_invoice.status);
return system.getResult(_invoice); return system.getResult(_invoice);
} catch (error) { } catch (error) {
console.log(error); console.log(error);
return system.getResult(null,`系统错误 错误信息${error}`); return system.getResult(null, `系统错误 错误信息${error}`);
} }
} }
...@@ -353,20 +368,20 @@ class IInvoiceService extends ServiceBase { ...@@ -353,20 +368,20 @@ class IInvoiceService extends ServiceBase {
* 更新记账 * 更新记账
* @param {*} params * @param {*} params
*/ */
async uploadDetailSve(params){ async uploadDetailSve(params) {
if(!params.id){ if (!params.id) {
return system.getResult(null,`参数错误 发票ID 不能为空`); return system.getResult(null, `参数错误 发票ID 不能为空`);
} }
try { try {
let _invoice = await this.dao.model.findOne({ let _invoice = await this.dao.model.findOne({
where:{ where: {
id:this.trim(params.id) id: this.trim(params.id)
} }
}); });
if(!_invoice){ if (!_invoice) {
return system.getResult(null,`发票不存在`); return system.getResult(null, `发票不存在`);
} }
_invoice.bookkeeping=1; _invoice.bookkeeping = 1;
_invoice.save(); _invoice.save();
return system.getResultSuccess(); return system.getResultSuccess();
} catch (error) { } catch (error) {
...@@ -375,6 +390,69 @@ class IInvoiceService extends ServiceBase { ...@@ -375,6 +390,69 @@ class IInvoiceService extends ServiceBase {
} }
} }
/**
* 计算累计金额
* @param {*} params
*/
async accumulatedAmount(params) {
if (!params.credit_code) {
return system.getResult(null, `参数错误 统一社会信用代码不能为空`);
}
if (!params.invoiced_time) {
return system.getResult(null, `参数错误 开票时间不能为空`);
}
//计算增值税附加税 的时间
let addValueTime = this.accumulatedTime(params.add_value_up_type, params.invoiced_time);
//计算个税的时间
let taxTime = this.accumulatedTime(params.tax_up_type, params.invoiced_time);
try {
let addValueRes = await this.dao.accumulatedAddValueAmountByTime(params.credit_code,addValueTime.beginTime, addValueTime.endTime) || {};
let taxValueRes = await this.dao.accumulatedTaxAmountByTime(params.credit_code,taxTime.beginTime, taxTime.endTime) || {};
return system.getResult({
addValueRes,
taxValueRes
});
} catch (error) {
console.log(error);
return system.getResult(null, `系统错误`);
}
}
//计算时间 1:月 2:季度
accumulatedTime(type, invoiced_time) {
let currentTime = moment(invoiced_time);
let beginTime = null,
endTime = null,
year = currentTime.year(),
_month = currentTime.month() + 1,
month = _month<10?"0"+_month:_month,
date = null;
if (type == 1) {
date = "01";
let maxDate = moment(`${year}-${month}`, "YYYY-MM").daysInMonth();
beginTime = `${year}-${month}-${date} 00:00:00`;
endTime = `${year}-${month}-${maxDate} 23:59:59`
}
if (type == 2) {
//获取当前是第几季度
let currentQuarter = currentTime.quarter();
//季度开始的时间
beginTime = moment(moment(year + '-01-01').toDate()).quarter(currentQuarter).format('YYYY-MM-DD HH:mm:ss');
let endMonth = 3 * parseInt(currentQuarter) //当季度最后一个月
/* 对月数进行格式化 */
if (endMonth < 10)
endMonth = '0' + endMonth
else
endMonth += ''
let endMonthDays = moment(year + '-' + endMonth).daysInMonth(); // 末尾月天数
endTime = year + '-' + endMonth + '-' + endMonthDays + " 23:59:59"; //完整年月日整合
}
return {
beginTime,
endTime
};
}
} }
module.exports = IInvoiceService; module.exports = IInvoiceService;
\ No newline at end of file
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