import { request } from '@eciol/request'; import { replaceVariables } from '@eciol/shared'; import { useUserStoreWithOut } from '@/store/modules/user'; import type { ReceiptInvoiceService } from './typing'; enum Api { GetReceiptInvoiceList = '/api/InvoiceAuditing/QueryPage', GetReceiptInvoiceDetail = '/api/InvoicePublic/{orgId}/{id}', ApproveReceiptInvoice = '/api/InvoiceAuditing/Approve', ReturnReceiptInvoice = '/api/InvoiceAuditing/Reject', GetInvoiceMergeList = '/api/InvoiceMerge/QueryPage', GetInvoiceMergeDetail = '/api/InvoicePublic/{orgId}/{id}', ReturnInvoiceMerge = '/api/InvoiceMerge/ReturnPrevious', InvoiceMergeFinish = '/api/InvoiceMerge/MergeFinish', SplitMergeInvoice = '/api/InvoiceMerge/SplitMergeInvoice', InvoiceMergeMerge = '/api/InvoiceMerge/Merge', InvoiceMergeGetListById = '/api/InvoiceMerge/GetListByid', InvoiceMergeGetListByClient = '/api/InvoiceMerge/GetListByClient', InvoiceChangeAttach = '/api/InvoicePublic/ChangeAttach', } /** * 审核发票列表 * @param data */ function getReceiptInvoiceList(data: ReceiptInvoiceService.GetReceiptInvoiceListParams) { const { getCompanyId } = useUserStoreWithOut(); return request.post( { url: Api.GetReceiptInvoiceList, data: { ...data, orgId: getCompanyId }, }, { showLoading: true, }, ); } /** * 获取审核发票详情 */ function getReceiptInvoiceDetail(id: number) { const { getCompanyId } = useUserStoreWithOut(); return request.get( { url: replaceVariables(Api.GetReceiptInvoiceDetail, { id, orgId: getCompanyId }), }, { showLoading: true, }, ); } /** * 审核发票通过 * @param ids */ function approveReceiptInvoice(ids: number[]) { const empID = useUserStoreWithOut().getUserInfo.id; return request.post( { url: Api.ApproveReceiptInvoice, data: { ids, empID }, }, { showLoading: true, loadingTip: 'EMPTY', successMessage: '通过成功', successMessageMode: 'message', }, ); } /** * 审核发票打回 * @param Id * @param RejectRemark */ function returnReceiptInvoice(Id: number, RejectRemark: string) { const EmpID = useUserStoreWithOut().getUserInfo.id; return request.post( { url: Api.ReturnReceiptInvoice, data: { Id, EmpID, RejectRemark }, }, { showLoading: true, loadingTip: 'EMPTY', successMessage: '打回成功', successMessageMode: 'message', }, ); } /** * 合并发票列表 * @param data */ function getInvoiceMergeList(data: ReceiptInvoiceService.GetInvoiceMergeListResult) { const { getCompanyId } = useUserStoreWithOut(); return request.post( { url: Api.GetInvoiceMergeList, data: { ...data, orgId: getCompanyId }, }, { showLoading: true, }, ); } /** * 获取合并发票详情 * @param id */ function getMergeInvoiceDetail(id: number) { const { getCompanyId } = useUserStoreWithOut(); return request.get( { url: replaceVariables(Api.GetInvoiceMergeDetail, { id, orgId: getCompanyId }), }, { showLoading: true, }, ); } /** * 合并发票返回 * @param InvId */ function returnInvoiceMerge(InvId: number) { const EmpID = useUserStoreWithOut().getUserInfo.id; return request.post( { url: Api.ReturnInvoiceMerge, data: { InvId, EmpID }, }, { showLoading: true, loadingTip: 'EMPTY', successMessage: '返回成功', successMessageMode: 'message', }, ); } /** * 整合完成 * @param ids */ function invoiceMergeFinish(ids: number[]) { const empID = useUserStoreWithOut().getUserInfo.id; return request.post( { url: Api.InvoiceMergeFinish, data: { ids, empID }, }, { showLoading: true, loadingTip: 'EMPTY', successMessage: '整合成功', successMessageMode: 'message', }, ); } /** * 拆分发票 * @param invId */ function splitMergeInvoice(invId: number) { const EmpID = useUserStoreWithOut().getUserInfo.id; return request.post( { url: Api.SplitMergeInvoice, data: { invId, EmpID }, }, { showLoading: true, loadingTip: 'EMPTY', successMessage: '拆分成功', successMessageMode: 'message', }, ); } /** * 发票合并 * @param ids * @param remark */ function invoiceMergeMerge(ids: number[], remark: string) { const { getCompanyId } = useUserStoreWithOut(); return request.post( { url: Api.InvoiceMergeMerge, data: { orgId: getCompanyId, ids, remark }, }, { showLoading: true, loadingTip: 'EMPTY', successMessage: '合并成功', successMessageMode: 'message', }, ); } /** * 合并发票返根据一级列表选择ID返回二级列表数据 * @param ids */ function getInvoiceMergeGetListById(ids: number[]) { const { getCompanyId } = useUserStoreWithOut(); return request.post( { url: Api.InvoiceMergeGetListById, data: { orgId: getCompanyId, ids }, }, { showLoading: true, }, ); } /** * 合并发票返根据二级列表请求参数查询 * @param data */ function getInvoiceMergeGetListByClient(data: ReceiptInvoiceService.GetMergeListClientParams) { const { getCompanyId } = useUserStoreWithOut(); return request.post( { url: Api.InvoiceMergeGetListByClient, data: { orgId: getCompanyId, ...data }, }, { showLoading: true, }, ); } /** * 替换发票文件 * @param invoiceId * @param attach */ function changeAttach(invoiceId: number, attach: string) { return request.post( { url: Api.InvoiceChangeAttach, data: { invoiceId, attach }, }, { showLoading: true, loadingTip: 'EMPTY', successMessage: '上传成功', successMessageMode: 'message', }, ); } export { approveReceiptInvoice, changeAttach, getInvoiceMergeGetListByClient, getInvoiceMergeGetListById, getInvoiceMergeList, getMergeInvoiceDetail, getReceiptInvoiceDetail, getReceiptInvoiceList, invoiceMergeFinish, invoiceMergeMerge, returnInvoiceMerge, returnReceiptInvoice, splitMergeInvoice, }; export type { ReceiptInvoiceService } from './typing';