You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
GHHub/src/stores/Invoice.js

276 lines
8.9 KiB
JavaScript

import { makeAutoObservable,runInAction } from "mobx";
import { fetchJSON,postForm} from "@/utils/request";
import { prepareUrl,isNotEmpty } from '@/utils/commons';
import { HT_HOST } from "@/config";
import { json } from "react-router-dom";
import * as config from "@/config";
import dayjs from "dayjs";
class Invoice {
constructor(root) {
makeAutoObservable(this, { rootStore: false });
this.root = root;
}
invoiceList = []; //账单列表
invoicekImages = []; //图片列表
invoiceGroupInfo= {}; //账单详细
invoiceProductList=[];//账单细项
invoiceZDDetail = []; //报账信息
invoiceCurrencyList=[];//币种
2 years ago
invoicePicList = [] //多账单图片列表数组
invoiceFormData = {'info_money':0,'info_Currency':'','info_date':''}; //存储form数据
fetchInvoiceList(current,OrderType,GroupNo,DateStart,DateEnd,Orderbytype){
this.invoicePage.current=current;
const totalNum = current == 1 ? 0 : this.invoicePage.total;
//组合param
const fetchUrl = prepareUrl(HT_HOST + '/service-cusservice/PTSearchGMBPageList')
.append('VEI_SN', this.root.authStore.login.travelAgencyId) //
.append('OrderType',OrderType)
.append('GroupNo',GroupNo)
.append('DateStart',DateStart)
.append('DateEnd',DateEnd)
.append('Orderbytype',Orderbytype)
.append('TimeType',0)
.append('limitmarket',"")
.append('mddgroup',"")
.append('SecuryGroup',"")
.append('TotalNum', totalNum)
.append('PageSize', this.invoicePage.size)
.append('PageIndex', this.invoicePage.current)
.build();
return fetchJSON(fetchUrl)
.then(json => {
runInAction(()=>{
if (json.errcode==0){
if (isNotEmpty(json.Result)){
this.invoiceList = json.Result.map((data,index)=>{
return{
key:data.GMDSN,
gmd_gri_sn : data.gmd_gri_sn,
gmd_vei_sn : data.gmd_vei_sn,
GetGDate : data.GetGDate,
GMD_FillWorkers_SN : data.GMD_FillWorkers_SN,
GMD_FWks_LastEditTime : data.GMD_FWks_LastEditTime,
GMD_VerifyUser_SN : data.GMD_VerifyUser_SN,
GMD_Dealed : data.GMD_Dealed,
GMD_VRequestVerify : data.GMD_VRequestVerify,
LeftGDate : data.LeftGDate,
GMD_FillWorkers_Name : data.GMD_FillWorkers_Name,
GroupName : data.GroupName,
AllMoney : data.AllMoney,
PersonNum : data.PersonNum,
VName : data.VName,
FKState:data.FKState
}
});
this.invoicePage.total = json.Result[0].TotalCount;
}
// else{
// this.invoiceList=[];
// this.invoicePage.total=0;
// }
}else{
throw new Error(json.errmsg + ': ' + json.errcode);
}
});
});
}
fetchInvoiceDetail(GMDSN,GSN){
const fetchUrl = prepareUrl(HT_HOST + '/service-cusservice/PTGetZDDetail')
.append('VEI_SN', this.root.authStore.login.travelAgencyId) //
.append('GRI_SN',GSN)
.append('GMD_SN',GMDSN)
.append('LGC',1)
.append('Bill',1)
.build();
return fetchJSON(fetchUrl)
.then(json=>{
runInAction(()=>{
if(json.errcode==0){
this.invoiceGroupInfo = json.GroupInfo[0];
this.invoiceProductList = json.ProductList;
this.invoiceCurrencyList = json.CurrencyList;
2 years ago
this.invoiceZDDetail = json.ZDDetail;
}else{
throw new Error(json.errmsg + ': ' + json.errcode);
}
})
2 years ago
return json;
});
}
//获取供应商提交的图片
getInvoicekImages(VEI_SN, GRI_SN) {
let url = `/service-fileServer/ListFile`;
url += `?GRI_SN=${GRI_SN}&VEI_SN=${VEI_SN}&FilePathName=invoice`;
fetch(config.HT_HOST + url)
.then(response => response.json())
.then(json => {
console.log(json);
runInAction(() => {
this.invoicekImages = json.result.map((data, index) => {
return {
uid: -index, //用负数,防止添加删除的时候错误
name: data.file_name,
status: "done",
url: data.file_url,
};
});
});
})
.catch(error => {
console.log("fetch data failed", error);
});
}
//从数据库获取图片列表
getInvoicekImages_fromData(jsonData){
let arrLen = jsonData.length;
2 years ago
let arrPicList = jsonData.map((data,index)=>{
const GMD_Pic = data.GMD_Pic;
let picList = [];
if (isNotEmpty(GMD_Pic)){
let js_Pic = JSON.parse(GMD_Pic)
picList = js_Pic.map((picData,pic_Index)=>{
return {
uid: -pic_Index, //用负数,防止添加删除的时候错误
name: '',
status: "done",
url: picData.url,
}
});
}
if (data.GMD_Dealed == false && arrLen == (index+1)){
2 years ago
this.invoicekImages = picList;
}
return picList;
})
2 years ago
runInAction(()=>{
this.invoicePicList = arrPicList;
});
}
//获取数据库的表单默认数据回填。
getFormData(jsonData){
let arrLen = jsonData.length;
return jsonData.map((data,index)=>{
if (data.GMD_Dealed == false && arrLen == (index+1)){ //只有最后一条账单未审核通过才显示
2 years ago
runInAction(() => {
this.invoiceFormData = {'info_money':data.GMD_Cost,'info_Currency':data.GMD_Currency,'info_date':isNotEmpty(data.GMD_PayDate)?dayjs(data.GMD_PayDate):''};
});
}
});
}
removeFeedbackImages(fileurl) {
let url = `/service-fileServer/FileDelete`;
url += `?fileurl=${fileurl}`;
return fetch(config.HT_HOST + url)
.then(response => response.json())
.then(json => {
console.log(json);
return json.Result;
})
.catch(error => {
console.log("fetch data failed", error);
});
}
postEditInvoiceDetail(GMD_SN,Currency,Cost,PayDate,Pic,Memo){
let postUrl = HT_HOST + '/service-cusservice/EditSupplierFK';
let formData = new FormData();
formData.append('LMI_SN', this.root.authStore.login.userId);
formData.append('GMD_SN', GMD_SN);
formData.append('Currency', Currency);
formData.append('Cost', Cost);
formData.append('PayDate', isNotEmpty(PayDate)?PayDate:'' );
formData.append('Pic', Pic);
formData.append('Memo', Memo);
return postForm(postUrl,formData)
.then(json=>{
console.info(json);
return json;
});
}
2 years ago
postAddInvoice(GRI_SN,Currency,Cost,PayDate,Pic,Memo){
let postUrl = HT_HOST + '/service-cusservice/AddSupplierFK';
let formData = new FormData();
formData.append('LMI_SN', this.root.authStore.login.userId);
formData.append('VEI_SN', this.root.authStore.login.travelAgencyId);
formData.append('GRI_SN', GRI_SN);
formData.append('Currency', Currency);
formData.append('Cost', Cost);
formData.append('PayDate', isNotEmpty(PayDate)?PayDate:'' );
formData.append('Pic', Pic);
formData.append('Memo', Memo);
return postForm(postUrl,formData)
.then(json=>{
console.info(json);
return json;
});
}
invoicePage = {
current:1,
size:10,
total:0
}
/* 测试数据 */
//账单列表范例数据
testData=
[
{
"GSMSN":449865,
"gmd_gri_sn":334233,
"gmd_vei_sn":628,
"GetDate":"2023-04-2 00:33:33",
"GMD_FillWorkers_SN":8617,
"GMD_FWks_LastEditTime":"2023-04-26 12:33:33",
"GMD_VerifyUser_SN":8928,
"GMD_Dealed":1,
"GMD_VRequestVerify":1,
"TotalCount":22,
"LeftGDate":"2023-03-30 00:00:00",
"GMD_FillWorkers_Name":"",
"GroupName":" 中华游230501-CA230402033",
"AllMoney":3539,
"PersonNum":"1大1小",
"VName":""
}
]
}
export default Invoice;