update for contract invoices

This commit is contained in:
merelendor 2023-11-03 17:14:01 +03:00
parent 43e9a22697
commit 387295b357
9 changed files with 136 additions and 61 deletions

View File

@ -33,6 +33,8 @@ export const getDeals = ({ dispatch, update = false }) =>
return new Promise((resolve, reject) =>
{
let last = 0;
axios.post(url, {}, {
withCredentials: true,
})
@ -40,23 +42,21 @@ export const getDeals = ({ dispatch, update = false }) =>
{
console.log("ACTION", "deals", "getDeals()", "response", response.data);
/*
if(update)
for(let i in response.data)
{
for(let i in response.data)
const n = parseInt(response.data[i].opp_number, 10);
if(n > last)
{
if(response.data[i].opp_number == "20325")
{
response.data[i].statuscode_id = 101;
}
last = n;
}
}
*/
dispatch({
type: actionTypes.DEALS_LIST,
data: {
list: response.data
list: response.data,
last,
}
});
@ -73,7 +73,8 @@ export const getDeals = ({ dispatch, update = false }) =>
dispatch({
type: actionTypes.DEALS_LIST,
data: {
list: []
list: [],
last,
}
});

View File

@ -71,36 +71,42 @@ export const downloadInvoiceFile = ({ payload, filename }) =>
export const getInvoiceKASKO = ({ number }) =>
{
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/invoice/kasko`, { number },
return new Promise((resolve, reject) =>
{
withCredentials: true,
})
.then(async (response) =>
{
console.log("getInvoiceKASKO", { response: response.data });
resolve();
})
.catch((error) =>
{
console.error(error);
reject();
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/invoice/kasko`, { number },
{
withCredentials: true,
})
.then(async (response) =>
{
console.log("getInvoiceKASKO", { response: response.data });
resolve(response.data);
})
.catch((error) =>
{
console.error(error);
reject();
});
});
}
export const getInvoiceFinGap = ({ number }) =>
{
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/invoice/fingap`, { number },
return new Promise((resolve, reject) =>
{
withCredentials: true,
})
.then(async (response) =>
{
console.log("getInvoiceFinGap", { response: response.data });
resolve();
})
.catch((error) =>
{
console.error(error);
reject();
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/invoice/fingap`, { number },
{
withCredentials: true,
})
.then(async (response) =>
{
console.log("getInvoiceFinGap", { response: response.data });
resolve(response.data);
})
.catch((error) =>
{
console.error(error);
reject();
});
});
}

View File

@ -30,11 +30,11 @@ class QuestionnaireForm extends React.Component
_handle_onCreateQuestionnaire = (event) =>
{
event.preventDefault();
const { onQuestionnaire, deal_id } = this.props;
const { onQuestionnaire, deal_id, last_deal_id } = this.props;
this.setState({ loading: true, }, () =>
{
createQuestionnaire(deal_id)
createQuestionnaire(last_deal_id)
.then(() =>
{
onQuestionnaire();
@ -315,6 +315,8 @@ export default class DocumentsForm extends Step
const { index, statuscode_id, dealSelected, documents, questionnaire_status, onQuestionnaire, } = this.props;
const { open, uploaded, uploading, loading, completed } = this.state;
console.log("DocumentsForm", "render", { props: this.props });
return (
<div className={`${ this.status === statuscode_id ? "current" : statuscode_id > this.status ? "done" : "" }`}>
<p> { dealSelected }</p>
@ -337,6 +339,7 @@ export default class DocumentsForm extends Step
questionnaire_status={ questionnaire_status }
onQuestionnaire={ onQuestionnaire }
deal_id={ dealSelected }
last_deal_id={ this.props.deals.last }
/>
</div>
</div>

View File

@ -16,6 +16,7 @@ class DealsStatus extends React.Component
currentSelected: null,
dealSelected: undefined,
deals: undefined,
lastDealNumber: 0,
}
}
@ -32,7 +33,17 @@ class DealsStatus extends React.Component
getDeals({ dispatch });
}
componentDidUpdate(prevProps, prevState) { }
componentDidUpdate(prevProps, prevState)
{
if(prevState.deals.list === null && this.state.deals.list !== null)
{
let lastDealNumber = 0;
for(let i in this.state.deals.list)
{
console.log("DealsStatus", this.state.deals.list[i]);
}
}
}
_onDealsUpdate = () =>
{
@ -102,6 +113,8 @@ class DealsStatus extends React.Component
const { currentContractModalOpened, allContractModalOpened, currentSelected, dealSelected, deals, status, } = this.state
const { questionnaire_status, onQuestionnaire, } = this.props;
console.log("render", { deals });
return (
<>
{ deals.list !== undefined && deals.list !== null && deals.list.length > 0 && (

View File

@ -7155,14 +7155,11 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
display: flex;
gap: 40px 20px;
flex-wrap: wrap;
padding-bottom: 40px;
}
.contract_invoices_list .invoice {
max-width: 23%;
width: 23%;
min-height: 90px;
border-bottom: solid 1px var(--gray-light);
border-left: solid 1px var(--gray-light);
min-height: 85px;
padding-bottom: 10px;
align-items: flex-start;
justify-content: space-between;
@ -7189,7 +7186,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
}
.contract_invoices_list .invoice p {
line-height: 15px;
color: var(--text_not_active);
color: var(--gray);
}
@media all and (max-width: 1280px) {
.contract_invoices_list .invoice p {
@ -7202,7 +7199,6 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
align-items: flex-start;
justify-content: flex-start;
width: 100%;
padding-left: 10px;
}
.contract_invoices_list .invoice .actions .icon {
margin-top: 5px;
@ -7219,6 +7215,9 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block .block_body .fines_
padding: 0;
zoom: 0.65;
}
.contract_invoices_list .invoice .actions .icon.formal {
background-image: url("data:image/svg+xml,%3Csvg width='26' height='28' viewBox='0 0 26 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 3.5C2 1.84315 3.34315 0.5 5 0.5H18.3701L20.7774 4L23.1848 7.06354V24.5C23.1848 26.1569 21.8417 27.5 20.1848 27.5H5C3.34314 27.5 2 26.1569 2 24.5V3.5Z' fill='%231C01A9'/%3E%3Cpath opacity='0.4' d='M23.1858 11.5V7L19.334 6.5L23.1858 11.5Z' fill='%230C0C0C'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 7.50098)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 12.501)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 17.501)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 22.501)' stroke='%23F0F0F0'/%3E%3Cpath d='M23.1858 7H19.3711C18.8188 7 18.3711 6.55228 18.3711 6V3.5V0.5L23.1858 7Z' fill='%232F80ED'/%3E%3C/svg%3E");
}
.contract_invoices_list .invoice .actions .icon .extension {
font-weight: 600;
font-size: 12px;

View File

@ -8189,14 +8189,14 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block {
display: flex;
gap: 40px 20px;
flex-wrap: wrap;
padding-bottom: 40px;
// padding-bottom: 40px;
.invoice {
max-width: 23%;
width: 23%;
min-height: 90px;
border-bottom: solid 1px var(--gray-light);
border-left: solid 1px var(--gray-light);
min-height: 85px;
//border-bottom: solid 1px var(--gray-light);
//border-left: solid 1px var(--gray-light);
padding-bottom: 10px;
align-items: flex-start;
@ -8221,7 +8221,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block {
p {
line-height: 15px;
color: var(--text_not_active);
color: var(--gray);
@media all and (max-width: 1280px) {
font-size: 13px;
@ -8234,7 +8234,7 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block {
align-items: flex-start;
justify-content: flex-start;
width: 100%;
padding-left: 10px;
//padding-left: 10px;
.icon {
margin-top: 5px;
@ -8251,6 +8251,10 @@ main .dropdown_blocks_list.zero-margin.gibdd .dropdown_block {
padding: 0;
zoom: 0.65;
&.formal {
background-image: url("data:image/svg+xml,%3Csvg width='26' height='28' viewBox='0 0 26 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 3.5C2 1.84315 3.34315 0.5 5 0.5H18.3701L20.7774 4L23.1848 7.06354V24.5C23.1848 26.1569 21.8417 27.5 20.1848 27.5H5C3.34314 27.5 2 26.1569 2 24.5V3.5Z' fill='%231C01A9'/%3E%3Cpath opacity='0.4' d='M23.1858 11.5V7L19.334 6.5L23.1858 11.5Z' fill='%230C0C0C'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 7.50098)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 12.501)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 17.501)' stroke='%23F0F0F0'/%3E%3Cline y1='-0.5' x2='11.5553' y2='-0.5' transform='matrix(1 -9.89866e-05 0.000132759 1 6.81445 22.501)' stroke='%23F0F0F0'/%3E%3Cpath d='M23.1858 7H19.3711C18.8188 7 18.3711 6.55228 18.3711 6V3.5V0.5L23.1858 7Z' fill='%232F80ED'/%3E%3C/svg%3E");
}
.extension {
font-weight: 600;
font-size: 12px;

View File

@ -14,7 +14,7 @@ import Footer from '../components/Footer';
import Company from "../components/Company";
import InnerMenu from "./components/InnerMenu";
import { downloadInvoiceFile, getContract, getContractDebtInvoiceFile, getContractInfo, getContractInvoices, getContractPenaltyInvoiceFile, signGetGUIDEntity, signGetWMDoc } from './../../actions';
import { downloadInvoiceFile, getContract, getContractDebtInvoiceFile, getContractInfo, getContractInvoices, getContractPenaltyInvoiceFile, getFile, getInvoiceFinGap, getInvoiceKASKO, signGetGUIDEntity, signGetWMDoc } from './../../actions';
import AccountLayout from "../components/Layout/Account";
import ContractHeader from "./components/ContractHeader";
@ -38,12 +38,64 @@ class Invoice extends React.Component
{
case "kaskoProlong":
{
getInvoiceKASKO({ number: contract_number })
.then(async (document_result) =>
{
let document = undefined;
console.log({ document_result });
for(let i in document_result)
{
if(document_result[i].period_type === "prolong")
{
document = document_result[i];
break;
}
}
if(document !== undefined)
{
await getFile({ id: document.invoice_url, filename: `ЛК ЭВОЛЮЦИЯ - договор ${ contract_number } - ${ group.title }.${ document.invoice_extension }` });
}
this.setState({ loading: false });
})
.catch((document_result_error) =>
{
console.error({ document_result_error });
this.setState({ loading: false });
});
}
break;
case "fingapProlong":
{
getInvoiceFinGap({ number: contract_number })
.then(async (document_result) =>
{
let document = undefined;
console.log({ document_result });
for(let i in document_result)
{
if(document_result[i].period_type === "prolong")
{
document = document_result[i];
break;
}
}
console.log({ document });
if(document !== undefined)
{
await getFile({ id: document.invoice_url, filename: `ЛК ЭВОЛЮЦИЯ - договор ${ contract_number } - ${ group.title }.${ document.invoice_extension }` });
}
this.setState({ loading: false });
})
.catch((document_result_error) =>
{
console.error({ document_result_error });
this.setState({ loading: false });
});
}
break;
@ -51,12 +103,12 @@ class Invoice extends React.Component
{
const guid_result = await signGetGUIDEntity({ contract_number });
console.log({ guid_result, code: group.code });
await downloadInvoiceFile({ payload: { entity_id: guid_result.entityid, code: group.code }, filename: `ЛК Эволюция - договор ${ contract_number } - ${ group.title }.pdf` });
await downloadInvoiceFile({ payload: { entity_id: guid_result.entityid, code: group.code }, filename: `ЛК ЭВОЛЮЦИЯ - договор ${ contract_number } - ${ group.title }.pdf` });
this.setState({ loading: false });
}
break;
}
this.setState({ loading: false });
});
}
@ -73,8 +125,7 @@ class Invoice extends React.Component
<div className="invoice">
<p>{ group.title }</p>
<div className="actions">
<div className="icon">
<span className="extension">PDF</span>
<div className="icon formal">
</div>
<div className="download">
{ loading ? (

View File

@ -18,14 +18,11 @@ const dealsReducer = (state = initialState.deals, action) =>
case actionTypes.DEALS_LIST:
{
console.log("actionTypes.DEALS_LIST", actionTypes.DEALS_LIST, { action });
console.log({
...state,
list: action.data.list,
});
return {
...state,
list: action.data.list,
last: action.data.last,
};
}

View File

@ -239,6 +239,7 @@ export const defaultState = {
{
loaded: false,
list: null,
last: 0,
details: {},
/*{
loaded: false,