/** * @param unknown_type $message * @param Db $db * @return void|boolean */ function processMessage($message, $db) { //$message = Tools::jsonDecode('{"id_event":5,"date_event":"2012-03-14 13:07:18","reference":"274","id_customer":"10687"}', true); //$message = Tools::jsonDecode($response->body->ReceiveMessageResult->Message->Body, true); $message = Tools::jsonDecode($message, true); $id_event = $message['id_event']; if ($id_event == ONLINE_ORDER) { VBRewards::addRewardPoints($message['id_customer'], $id_event, 0, 100, 'Online payment bonus - Order no ' . $message['reference'], $message['reference'], $message['date_event']); return; } if ($id_event == EVENT_REGISTRATION) { VBRewards::addRewardPoints($message['id_customer'], $id_event, 0, 50, 'Registration/Sign-up', $message['reference'], $message['date_event']); return; } if (isset($message['first_order']) && $message['first_order']) { VBRewards::addRewardPoints($message['id_customer'], $id_event, 7, 50, 'First Order Bonus - Order no ' . $message['reference'], $message['reference'], $message['date_event']); return; } if (isset($message['first_review']) && $message['first_review']) { VBRewards::addRewardPoints($message['id_customer'], $id_event, 9, 50, 'Product Review - First review bonus', $message['reference'], $message['date_event']); return; } $res = $db->ExecuteS("select le.id_event, le.name as 'event_name', r.id_rule, r.name as 'rule_name', re.execute_sequence\n\t\t\t\t\t\t\tfrom vb_rules r\n\t\t\t\t\t\t\tinner join vb_loyalty_rule_events re on (r.id_rule = re.id_rule)\n\t\t\t\t\t\t\tinner join vb_loyalty_events le on le.id_event = re.id_event\n\t\t\t\t\t\t\twhere le.id_event = " . $message['id_event'] . " order by le.id_event, re.execute_sequence"); foreach ($res as $rule_row) { if ($rule_row['id_rule'] == 9 || $rule_row['id_rule'] == 7) { continue; } $rewards_rule = RewardRules::getRule($rule_row['rule_name']); $rewards_rule->init($db); $rewards_rule->processEvent($db, $message); echo PHP_EOL; } return false; }
public function processEvent($db, $message) { echo "processing order_cancelled"; $id_customer = $message['id_customer']; $id_event = $message['id_event']; $date_add = $message['date_event']; $order = new Order((int) $message['reference']); //remove ordervalue reward $valid_order_rule = RewardRules::getRule('valid_order'); $valid_order_rule->init($db); $valid_order_rule->processCancel($db, $message); //remove ordervalue reward $first_order_bonus_rule = RewardRules::getRule('first_order_bonus'); $first_order_bonus_rule->init($db); $first_order_bonus_rule->processCancel($db, $message); //remove ordervalue reward $order_value_bonus_rule = RewardRules::getRule('order_value_bonus'); $order_value_bonus_rule->init($db); $order_value_bonus_rule->processCancel($db, $message); //remove ordervalue reward $referral_order_points_rule = RewardRules::getRule('referral_order_points'); $referral_order_points_rule->init($db); $referral_order_points_rule->processCancel($db, $message); //remove ordervalue reward $referral_order_bonus_rule = RewardRules::getRule('referral_order_bonus'); $referral_order_bonus_rule->init($db); $referral_order_bonus_rule->processCancel($db, $message); }
function processMessage($response, $db) { echo $response->body->ReceiveMessageResult->Message->Body . PHP_EOL; //$message = Tools::jsonDecode('{"id_event":5,"date_event":"2012-03-14 13:07:18","reference":"274","id_customer":"10687"}', true); $message = Tools::jsonDecode($response->body->ReceiveMessageResult->Message->Body, true); $id_event = $message['id_event']; $res = $db->ExecuteS("select le.id_event, le.name as 'event_name', r.id_rule, r.name as 'rule_name', re.execute_sequence\n\t\t\t\t\t\t\tfrom vb_rules r\n\t\t\t\t\t\t\tinner join vb_loyalty_rule_events re on (r.id_rule = re.id_rule)\n\t\t\t\t\t\t\tinner join vb_loyalty_events le on le.id_event = re.id_event\n\t\t\t\t\t\t\twhere le.id_event = " . $message['id_event'] . " order by le.id_event, re.execute_sequence"); foreach ($res as $rule_row) { $rewards_rule = RewardRules::getRule($rule_row['rule_name']); $rewards_rule->init($db); $rewards_rule->processEvent($db, $message); echo PHP_EOL; } return true; }