Add package addons and options

This commit is contained in:
Almira Krdzic
2018-09-06 23:29:29 +02:00
parent 5bef0b9e5e
commit cd5f09487d
25 changed files with 1302 additions and 482 deletions

View File

@@ -71,16 +71,18 @@ export const fetchPackageDetails = (params) => {
}
}
const generateOptions = (selectedOptions, selectedAdditionals, selectedAgreement) => {
const extraPackages = [];
const collectPackageOptionsAndAdditionals = (selectedOptions, selectedAdditionals, selectedAgreement) => {
const optionPackages = [];
const additionalPackages = [];
const unavailablePackages = [];
if(selectedAdditionals && selectedAdditionals.length){
selectedAdditionals.forEach(additional => {
const selectedPrice = priceHelper.getSelectedPrice(additional, selectedAgreement);
if(!selectedPrice){
unavailablePackages.push(additional);
}else{
extraPackages.push(additional.idAdditionalPackage);
additionalPackages.push(additional.idAdditionalPackage);
}
});
}
@@ -91,12 +93,12 @@ const generateOptions = (selectedOptions, selectedAdditionals, selectedAgreement
if(!selectedPrice){
unavailablePackages.push(selectedOptions[idGroup]);
}else{
extraPackages.push(selectedOptions[idGroup].idOptionPackage);
optionPackages.push(selectedOptions[idGroup].idOptionPackage);
}
});
}
return {extraPackages, unavailablePackages};
return {optionPackages, additionalPackages, unavailablePackages};
};
const requestAddToCart = () => ({
@@ -104,20 +106,24 @@ const requestAddToCart = () => ({
});
export const addToCart = (addParams) => {
// const options = generateOptions(addParams.selectedOptions, addParams.selectedAdditionals, addParams.selectedAgreement);
const result = collectPackageOptionsAndAdditionals(
addParams.selectedOptions,
addParams.selectedAdditionals,
addParams.selectedAgreement);
const params = {
'package_id': addParams.selectedPackage.id,
'price_id': addParams.selectedAgreement.idPrice,
//options: options.extraPackages
'addons': result.additionalPackages,
'options': result.optionPackages
};
// if(options.unavailablePackages.length){
// const unavailable = options.unavailablePackages.map((unavailable) =>{return unavailable.optionName || unavailable.packageName;});
// const message = coMarketMessages.UNAVAILABLE_PACKAGES + ' ' + unavailable.join();
//
// return dispatch => {dispatch(updateMessages([{code: 'warning', message}], coMarketMessages))};
// }
if(result.unavailablePackages.length){
const unavailable = result.unavailablePackages.map((unavailable) =>{return unavailable.optionName || unavailable.packageName;});
const message = coMarketMessages.UNAVAILABLE_PACKAGES + ' ' + unavailable.join();
return dispatch => {dispatch(updateMessages([{code: 'warning', message}], coMarketMessages))};
}
return dispatch => {
dispatch(requestAddToCart());