Add package addons and options
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user