graphic changes updates

This commit is contained in:
merelendor 2022-08-17 23:52:07 +03:00
parent 4ae5273616
commit 30cf18fff0
12 changed files with 92 additions and 194 deletions

View File

@ -562,10 +562,26 @@ export const getContractGraphicChangeGetCalculated = ({ dispatch, calculation })
});
}
export const signContractGraphicChange = ({ dispatch, number }) =>
export const signContractGraphicChange = (params) =>
{
console.log("ACTION", "signContractGraphicChange", params);
return new Promise((resolve, reject) =>
{
resolve();
axios.post(`${ process.env.NEXT_PUBLIC_SELF_API_HOST }/api/contract/change/graphic/sign`, params,
{
withCredentials: true,
})
.then(async (response) =>
{
console.log("ACTION", "signContractGraphicChange", "response.data", response.data);
resolve(response.data.comment);
})
.catch((error) =>
{
console.error("ACTION", "signContractGraphicChange", "error");
console.error(error);
reject();
});
});
}

View File

@ -0,0 +1,7 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
import CRMRequestPost from '../../../../../lib/CRMRequestPost';
export default async function handler(req, res)
{
await CRMRequestPost(req, res, `${ process.env.CRM_API_HOST }/lk/add-contract/Signing?addcontract_number=${ req.body.addcontract_number }`, req.body);
}

View File

@ -14,10 +14,6 @@ export default class Comparison extends React.Component
super(props);
this.state = {
date: null,
car: null,
contract_date: null,
agreement: null,
rules: null,
loading: false,
calculation: null,
today: moment(),
@ -70,17 +66,24 @@ export default class Comparison extends React.Component
_handle_onOptions = () =>
{
this.props.onOptions();
if(this.props.editable)
{
this.props.onOptions();
}
else
{
this.props.onBack();
}
}
_handle_onSignPaper = () =>
{
this.props.onSign(0);
}
_handle_onSignEDMS = () =>
_handle_onSignEDO = () =>
{
this.props.onSign(1);
}
_handle_onMixedPayment = (index) =>
@ -293,9 +296,11 @@ export default class Comparison extends React.Component
<button className="button button-blue" onClick={ this._handle_onSignPaper }>
Согласовать и подписать в бумажном виде
</button>
<button className="button button-blue" onClick={ this._handle_onSignEDMS }>
{/*}
<button className="button button-blue" onClick={ this._handle_onSignEDO }>
Согласовать и подписать по ЭДО
</button>
{*/}
</div>
</article>
);

View File

@ -12,15 +12,14 @@ export default class Comparison extends React.Component
render()
{
const { number, signer, signatories } = this.props;
const { number, comment } = this.props;
return (
<article className="compare">
<div className="compare_message">
<p>
Дополнительное соглашение отправлено на согласование. После согласования документ появится на странице <br />
<Link href={`/contract/${ number }/agreement`}>«Документы по договору» </Link>
</p>
<p>{ comment }</p>
<br/>
<p>Перейти в раздел <Link href={`/contract/${ number }/agreement`}>«Документы по договору» </Link></p>
</div>
</article>
);

View File

@ -1,5 +1,4 @@
import React from "react";
import * as ReactDOM from 'react-dom';
import Head from "next/head";
import Image from "next/image";
import { connect } from "react-redux";
@ -29,7 +28,8 @@ import {
getContractGraphicChangeGetCurrent,
getContractGraphicChangeGetCalculated,
getContractGraphicChangeSignatories,
getContractGraphicChangeCalculationsList,
getContractGraphicChangeCalculationsList,
signContractGraphicChange,
} from "../../../actions";
import Options from "./components/Options";
import Comparison from "./components/Comparison";
@ -42,9 +42,6 @@ class ChangeGraphicPage extends React.Component
this.state = {
date: null,
car: null,
contract_date: null,
agreement: null,
rules: null,
loading: false,
mode_options: false,
mode_comparison: false,
@ -71,6 +68,8 @@ class ChangeGraphicPage extends React.Component
options: null,
current: null,
calculated: null,
comment: null,
editable: false,
};
}
@ -80,9 +79,6 @@ class ChangeGraphicPage extends React.Component
return {
date: nextProps.date,
car: nextProps.car,
contract_date: nextProps.contract_date,
agreement: nextProps.agreement,
rules: nextProps.rules,
signatories: nextProps.signatories,
calculations: nextProps.calculations,
variants: nextProps.variants,
@ -195,6 +191,11 @@ class ChangeGraphicPage extends React.Component
});
}
_handle_onBack = () =>
{
this.setState({ mode_options: false, mode_comparison: false });
}
_handle_onOptions = () =>
{
this.setState({ mode_options: true, mode_comparison: false });
@ -205,6 +206,30 @@ class ChangeGraphicPage extends React.Component
this.setState({ signer: signer_id });
}
_handle_onSign = (type) =>
{
const { calculation_id, signer, } = this.state;
const { number, } = this.props;
this.setState({ loading: true }, () =>
{
signContractGraphicChange({
contract_number: number,
addcontract_number: calculation_id,
signatoryid: signer,
type
})
.then((comment) =>
{
this.setState({ loading: false, mode_final: true, mode_options: false, mode_comparison: false, comment });
})
.catch(() =>
{
this.setState({ loading: false, });
});
});
}
_handle_onCalculate = (calculation_id) =>
{
const { dispatch, number } = this.props;
@ -214,17 +239,17 @@ class ChangeGraphicPage extends React.Component
{
setTimeout(() =>
{
this._handle_onCalculation(calculation_id);
this._handle_onCalculation(calculation_id, true);
}, 100);
})
.catch(() =>
{
});
});
}
_handle_onCalculation = (calculation_id) =>
_handle_onCalculation = (calculation_id, editable = false) =>
{
this.setState({ loading: true, mode_options: false, calculation_id: calculation_id }, () =>
this.setState({ editable: editable, loading: true, mode_options: false, calculation_id: calculation_id }, () =>
{
const { dispatch, number } = this.props;
@ -241,7 +266,7 @@ class ChangeGraphicPage extends React.Component
render()
{
const { loading, mode_options, mode_comparison, mode_calculation, mode_final, date, car, contract_date, agreement, rules, signer, signatories, calculations, calculation_id, variants, variants_loading, variants_selected, variants_types, variants_unavailable, options, current, calculated, } = this.state;
const { loading, mode_options, mode_comparison, mode_calculation, mode_final, date, car, signer, signatories, calculations, calculation_id, editable, variants, variants_loading, variants_selected, variants_types, variants_unavailable, options, current, calculated, comment } = this.state;
const { number } = this.props;
return (
@ -280,7 +305,7 @@ class ChangeGraphicPage extends React.Component
<>
{ mode_final ? (
<div className="aside_container about">
<Final number={ number }/>
<Final number={ number } comment={ comment }/>
</div>
) : (
<div className="aside_container about">
@ -289,9 +314,13 @@ class ChangeGraphicPage extends React.Component
signatories={ signatories }
calculations={ calculations }
calculation_id={ calculation_id }
editable={ editable }
current={ current }
calculated={ calculated }
onOptions={ this._handle_onOptions } onSigner={ this._handle_onSigner }
onBack={ this._handle_onBack }
onOptions={ this._handle_onOptions }
onSigner={ this._handle_onSigner }
onSign={ this._handle_onSign }
/>
</div>
) }
@ -372,11 +401,8 @@ class ChangeGraphicPage extends React.Component
function mapStateToProps(state, ownProps)
{
return {
contract_date: state.contract.date,
date: state.contract.date,
car: state.contract.car,
agreement: state.contract.agreement,
rules: state.contract.rules,
signatories: state.contract.change.signatories,
calculations: state.contract.change.calculations,
variants: state.contract.change.variants,

View File

@ -1,5 +1,4 @@
import React from "react";
import * as ReactDOM from 'react-dom';
import Head from "next/head";
import Image from "next/image";
@ -186,8 +185,6 @@ class ContractDocumentsPage extends React.Component
_handle_onPeriodDate_end = (date) =>
{
console.log("_handle_onPeriodDate_end", "date", date);
const {
valid_date_start,
valid_date_end,
@ -227,7 +224,6 @@ class ContractDocumentsPage extends React.Component
_handle_onGroup = (group) =>
{
console.log("group", group);
const opened = [...this.state.opened];
if (opened.indexOf(group) < 0)
@ -266,8 +262,6 @@ class ContractDocumentsPage extends React.Component
.slice(0, opened.indexOf(type) > -1 ? documents.length : 3)
.map((doc, index) =>
{
console.log("doc", doc);
return (
<div className="row" key={index}>
<p
@ -337,29 +331,14 @@ class ContractDocumentsPage extends React.Component
_handle_onPenaltiesShow = (date) =>
{
console.log("_handle_onPenaltiesShow", "date", date);
const { number } = this.props;
window.scrollTo(0, 0);
this.setState({ penalties: true, penalties_date: date, penalties_result: undefined }, () =>
{
ReactDOM.findDOMNode(this).parentNode.style.height = "100%";
ReactDOM.findDOMNode(this).parentNode.style.display = "flex";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "column";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "spaceBetween";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "stretch";
document.documentElement.style.height = "100%";
document.documentElement.style.display = "flex";
document.documentElement.style.flexDirection = "column";
document.body.style.height = "100%";
document.body.style.display = "flex";
document.body.style.flexDirection = "column";
getContractPenalties({ number, date })
.then((result) =>
{
console.log("result", result);
this.setState({ penalties_result: result });
})
.catch(() =>
@ -373,18 +352,6 @@ class ContractDocumentsPage extends React.Component
{
this.setState({ penalties: false, penalties_result: undefined }, () =>
{
ReactDOM.findDOMNode(this).parentNode.style.height = "unset";
ReactDOM.findDOMNode(this).parentNode.style.display = "unset";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "unset";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "unset";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "unset";
document.documentElement.style.height = "unset";
document.documentElement.style.display = "unset";
document.documentElement.style.flexDirection = "unset";
document.body.style.height = "unset";
document.body.style.display = "unset";
document.body.style.flexDirection = "unset";
});
}
@ -409,12 +376,6 @@ class ContractDocumentsPage extends React.Component
penalties_result,
} = this.state;
console.log("documentsdocumentsdocumentsdocumentsdocuments");
console.log(documents);
console.log("opened");
console.log(opened);
return (
<React.Fragment>
<Head>
@ -423,7 +384,7 @@ class ContractDocumentsPage extends React.Component
</Head>
<Header { ...this.props }/>
{ penalties ? (
<main style={{ height: "100%", display: "flex", flexDirection: "column" }}>
<main>
<section>
<div className="clear"></div>
<div className="container">

View File

@ -1,5 +1,4 @@
import React from "react";
import * as ReactDOM from 'react-dom';
import Head from 'next/head';
import Image from 'next/image';
import Link from "next/link";
@ -42,19 +41,6 @@ class IndexPage extends React.Component
componentDidMount()
{
ReactDOM.findDOMNode(this).parentNode.style.height = "100%";
ReactDOM.findDOMNode(this).parentNode.style.display = "flex";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "column";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "spaceBetween";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "stretch";
document.documentElement.style.height = "100%";
document.documentElement.style.display = "flex";
document.documentElement.style.flexDirection = "column";
document.body.style.height = "100%";
document.body.style.display = "flex";
document.body.style.flexDirection = "column";
this.setState({ loading: true }, () =>
{
getUsers({ dispatch: this.props.dispatch })
@ -69,22 +55,6 @@ class IndexPage extends React.Component
});
}
componentWillUnmount()
{
ReactDOM.findDOMNode(this).parentNode.style.height = "unset";
ReactDOM.findDOMNode(this).parentNode.style.display = "unset";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "unset";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "unset";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "unset";
document.documentElement.style.height = "unset";
document.documentElement.style.display = "unset";
document.documentElement.style.flexDirection = "unset";
document.body.style.height = "unset";
document.body.style.display = "unset";
document.body.style.flexDirection = "unset";
}
render()
{
const { user, users } = this.state;
@ -99,7 +69,7 @@ class IndexPage extends React.Component
/>
</Head>
<Header { ...this.props }/>
<main style={{ flex: 1, display: "flex", flexDirection: "column" }}>
<main>
<section>
<div className="clear"></div>
<div className="container">

View File

@ -1,5 +1,4 @@
import React from "react";
import * as ReactDOM from 'react-dom';
import Head from 'next/head';
import Image from 'next/image';
import Link from "next/link";
@ -46,34 +45,10 @@ class IndexPage extends React.Component
componentDidMount()
{
ReactDOM.findDOMNode(this).parentNode.style.height = "100%";
ReactDOM.findDOMNode(this).parentNode.style.display = "flex";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "column";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "spaceBetween";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "stretch";
document.documentElement.style.height = "100%";
document.documentElement.style.display = "flex";
document.documentElement.style.flexDirection = "column";
document.body.style.height = "100%";
document.body.style.display = "flex";
document.body.style.flexDirection = "column";
}
componentWillUnmount()
{
ReactDOM.findDOMNode(this).parentNode.style.height = "unset";
ReactDOM.findDOMNode(this).parentNode.style.display = "unset";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "unset";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "unset";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "unset";
document.documentElement.style.height = "unset";
document.documentElement.style.display = "unset";
document.documentElement.style.flexDirection = "unset";
document.body.style.height = "unset";
document.body.style.display = "unset";
document.body.style.flexDirection = "unset";
}
_handle_onPasswordSubmit = (event) =>
@ -163,7 +138,7 @@ class IndexPage extends React.Component
/>
</Head>
<Header { ...this.props }/>
<main style={{ flex: 1, display: "flex", flexDirection: "column" }}>
<main>
<section>
<div className="clear"></div>
<div className="container">

View File

@ -1,5 +1,4 @@
import React from "react";
import * as ReactDOM from 'react-dom';
import Head from 'next/head';
import Image from 'next/image';
import Link from "next/link";
@ -52,34 +51,6 @@ class IndexPage extends React.Component
componentDidMount()
{
ReactDOM.findDOMNode(this).parentNode.style.height = "100%";
ReactDOM.findDOMNode(this).parentNode.style.display = "flex";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "column";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "spaceBetween";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "stretch";
document.documentElement.style.height = "100%";
document.documentElement.style.display = "flex";
document.documentElement.style.flexDirection = "column";
document.body.style.height = "100%";
document.body.style.display = "flex";
document.body.style.flexDirection = "column";
}
componentWillUnmount()
{
ReactDOM.findDOMNode(this).parentNode.style.height = "unset";
ReactDOM.findDOMNode(this).parentNode.style.display = "unset";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "unset";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "unset";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "unset";
document.documentElement.style.height = "unset";
document.documentElement.style.display = "unset";
document.documentElement.style.flexDirection = "unset";
document.body.style.height = "unset";
document.body.style.display = "unset";
document.body.style.flexDirection = "unset";
}
_handle_onPhoneSubmit = (event) =>
@ -194,7 +165,7 @@ class IndexPage extends React.Component
/>
</Head>
<Header { ...this.props }/>
<main style={{ flex: 1, display: "flex", flexDirection: "column" }}>
<main>
<section>
<div className="clear"></div>
<div className="container">

View File

@ -1,5 +1,4 @@
import React from "react";
import * as ReactDOM from 'react-dom';
import Head from "next/head";
import Image from "next/image";
import { connect } from "react-redux";

View File

@ -1,5 +1,4 @@
import React from "react";
import * as ReactDOM from 'react-dom';
import Head from "next/head";
import Image from "next/image";
import { connect } from "react-redux";

View File

@ -1,5 +1,4 @@
import React from "react";
import * as ReactDOM from 'react-dom';
import Head from "next/head";
import Image from "next/image";
import { connect } from "react-redux";
@ -49,19 +48,6 @@ class SupportRequestPage extends React.Component
{
console.log("CDM", "SupportRequestPage", this.state);
ReactDOM.findDOMNode(this).parentNode.style.height = "100%";
ReactDOM.findDOMNode(this).parentNode.style.display = "flex";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "column";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "spaceBetween";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "stretch";
document.documentElement.style.height = "100%";
document.documentElement.style.display = "flex";
document.documentElement.style.flexDirection = "column";
document.body.style.height = "100%";
document.body.style.display = "flex";
document.body.style.flexDirection = "column";
if (!this.state.loading)
{
this.setState({ loading: true }, () =>
@ -79,22 +65,6 @@ class SupportRequestPage extends React.Component
}
}
componentWillUnmount()
{
ReactDOM.findDOMNode(this).parentNode.style.height = "unset";
ReactDOM.findDOMNode(this).parentNode.style.display = "unset";
ReactDOM.findDOMNode(this).parentNode.style.flexDirection = "unset";
ReactDOM.findDOMNode(this).parentNode.style.justifyContent = "unset";
ReactDOM.findDOMNode(this).parentNode.style.alignItems = "unset";
document.documentElement.style.height = "unset";
document.documentElement.style.display = "unset";
document.documentElement.style.flexDirection = "unset";
document.body.style.height = "unset";
document.body.style.display = "unset";
document.body.style.flexDirection = "unset";
}
componentDidUpdate(prevProps, prevState)
{
}
@ -171,7 +141,7 @@ class SupportRequestPage extends React.Component
<meta name="description" content="ЛК Эволюция автолизинга" />
</Head>
<Header { ...this.props } />
<main style={{ flex: 1, display: "flex", flexDirection: "column" }}>
<main>
<section>
<div className="clear"></div>
<div className="container">