initial docker setup
This commit is contained in:
152
frontend/src/containers/orders/components/OrderInfo.jsx
Normal file
152
frontend/src/containers/orders/components/OrderInfo.jsx
Normal file
@@ -0,0 +1,152 @@
|
||||
import React, {Component} from 'react';
|
||||
import {connect} from 'react-redux';
|
||||
import moment from 'moment';
|
||||
import {Container, Row, Col} from 'reactstrap';
|
||||
import TermsContainer from '../../terms/TermsContainer.jsx';
|
||||
import {orderTexts} from '../../../constants/ordersConstants';
|
||||
|
||||
class OrderInfo extends Component {
|
||||
constructor(props){
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
acceptedDate: {},
|
||||
proposedDate: {},
|
||||
isPreliminaryInstallationDate: true
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.setInstallationData(this.props);
|
||||
}
|
||||
|
||||
componentWillReceiveProps(nextProps) {
|
||||
this.setInstallationData(nextProps);
|
||||
}
|
||||
|
||||
setInstallationData(props) {
|
||||
const acceptedDate = {};
|
||||
const proposedDate = {};
|
||||
const idOrder = props.orderDetails.info.id;
|
||||
const {isInstallationInPackage} = props.installationData;
|
||||
const {confirmationDates, areAllShippingDatesConfirmed} = props;
|
||||
const isPreliminaryInstallationDate = areAllShippingDatesConfirmed && idOrder in areAllShippingDatesConfirmed ? !areAllShippingDatesConfirmed[idOrder] : true;
|
||||
const isInstallationInOrder = Object.keys(isInstallationInPackage).some(idOrderPackage => {return isInstallationInPackage[idOrderPackage] === true;});
|
||||
|
||||
props.orderDetails.packages.forEach(orderPackage => {
|
||||
const idOrderPackagePair = idOrder + '-' + orderPackage.idPackage;
|
||||
|
||||
if(confirmationDates && confirmationDates[idOrderPackagePair]) {
|
||||
const packageDates = confirmationDates[idOrderPackagePair];
|
||||
const accepted = Object.keys(packageDates).find(installDate => {return packageDates[installDate].lastStatus === 'accepted'});
|
||||
acceptedDate[idOrderPackagePair] = accepted ? moment(accepted).format('Do MMM, YYYY') : '';
|
||||
const proposed = Object.keys(packageDates).find(installDate => {return packageDates[installDate].lastStatus === 'proposed'});
|
||||
proposedDate[idOrderPackagePair] = proposed ? moment(proposed).format('Do MMM, YYYY') : '';
|
||||
}
|
||||
});
|
||||
|
||||
this.setState({acceptedDate, proposedDate, isPreliminaryInstallationDate, isInstallationInOrder});
|
||||
}
|
||||
|
||||
render() {
|
||||
const {totalPrice, installationData} = this.props;
|
||||
const {acceptedDate, proposedDate, isPreliminaryInstallationDate, isInstallationInOrder} = this.state;
|
||||
const orderPackages = installationData.packages;
|
||||
const isInstallationInPackage = installationData.isInstallationInPackage;
|
||||
const orderInfo = this.props.orderInfo.info;
|
||||
|
||||
return (
|
||||
<Container fluid={true} id="order-info-description">
|
||||
<Row>
|
||||
<Col xl="2">
|
||||
<div className="subtitle"><h6>{orderTexts.labels.ORDER_DATE}:</h6></div>
|
||||
<span>{orderInfo.orderDate}</span>
|
||||
<div className="subtitle"><h6>{orderTexts.labels.SOLD_BY}:</h6></div>
|
||||
<span>{orderInfo.commercialLead}</span>
|
||||
|
||||
</Col>
|
||||
<Col xl="2">
|
||||
<div>
|
||||
<div className="subtitle"><h6>{orderTexts.labels.REFERENCE}:</h6></div>
|
||||
<span>{orderInfo.reference || '-'}</span>
|
||||
</div>
|
||||
<div>
|
||||
<div className="subtitle"><h6>{orderTexts.labels.BID}:</h6></div>
|
||||
<span>{orderInfo.tender || '-'}</span>
|
||||
</div>
|
||||
</Col>
|
||||
{ isInstallationInOrder &&
|
||||
<Col xl="3">
|
||||
<div>
|
||||
<div className="subtitle">
|
||||
{ isPreliminaryInstallationDate
|
||||
? <h6>{orderTexts.labels.PRELIMINARY_INSTALLATION_DATE_LABEL}:</h6>
|
||||
: <h6>{orderTexts.labels.INSTALLATION_DATE}:</h6>
|
||||
}
|
||||
</div>
|
||||
{ orderPackages &&
|
||||
orderPackages.map(orderPackage =>
|
||||
<div key={'package-install-date-' + orderPackage.idOrderPackagePair}>
|
||||
{ isInstallationInPackage[orderPackage.idOrderPackagePair] &&
|
||||
<div>
|
||||
{ orderPackages.length > 1 &&
|
||||
<span>{orderPackage.packageName}: </span>
|
||||
}
|
||||
<span className="installation-date-per-package">
|
||||
{ acceptedDate && acceptedDate[orderPackage.idOrderPackagePair]
|
||||
? acceptedDate[orderPackage.idOrderPackagePair]
|
||||
: proposedDate && proposedDate[orderPackage.idOrderPackagePair]
|
||||
? proposedDate[orderPackage.idOrderPackagePair]
|
||||
: orderTexts.labels.NOT_SET
|
||||
}
|
||||
|
||||
</span>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
</Col>
|
||||
}
|
||||
|
||||
<Col xl="2">
|
||||
<div className="subtitle"><h6>{orderTexts.labels.TOTAL_DELVIERY_PRICE}:</h6></div>
|
||||
<span>{totalPrice.fixedPrice.toLocaleString()} {totalPrice.currency}</span>
|
||||
|
||||
{
|
||||
totalPrice.recurrentPrice > 0 &&
|
||||
<div>
|
||||
<div className="subtitle"><h6>{orderTexts.labels.TOTAL_RECURRENT_PRICE}:</h6></div>
|
||||
<span>
|
||||
{totalPrice.recurrentPrice.toLocaleString() + ' ' + totalPrice.currency}
|
||||
</span>
|
||||
</div>
|
||||
}
|
||||
|
||||
</Col>
|
||||
<Col xl="2">
|
||||
<div>
|
||||
<div className="subtitle"><h6>{orderTexts.labels.PROJECT}:</h6></div>
|
||||
<span>{orderInfo.projectName || '-'}</span>
|
||||
</div>
|
||||
|
||||
<div className="terms-link">
|
||||
<i className="fa fa-link"></i>
|
||||
<span className="terms-label">
|
||||
<TermsContainer idTerms={orderInfo.idTerms}/>
|
||||
</span>
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const mapStateToProps = (state) => ({
|
||||
orderInfo: state.processReducer.orderInfo,
|
||||
confirmationDates: state.processReducer.confirmationDates,
|
||||
areAllShippingDatesConfirmed: state.processReducer.areAllShippingDatesConfirmed
|
||||
});
|
||||
export default connect(mapStateToProps)(OrderInfo);
|
||||
Reference in New Issue
Block a user