Saved cars

This commit is contained in:
dev-chiefworks
2022-04-17 15:01:41 -04:00
parent 5e2a2e0e2c
commit 0046bcb683
2 changed files with 530 additions and 134 deletions
+59 -134
View File
@@ -41,9 +41,10 @@ class userCards extends Model{
}
private function getMember($member){
return [];
private function getMember($member_id){
$in['member_id'] = $member_id;
$in['id'] = $member_id;
return $in;
}
private function getCardBySurvey($member)
@@ -57,7 +58,7 @@ class userCards extends Model{
AND card_id NOT IN (SELECT card_id FROM members_card_assign WHERE member_id =" . $member_id . " AND status=1)
GROUP BY card_id";
$query = $db->query( $q );
$query = $this->db->query( $q );
if ( $query && $query->getNumRows() && $f = $query->getRowArray()) {
return $f;
}
@@ -66,8 +67,9 @@ class userCards extends Model{
private function getCardsByType(&$out, $member, $card_type, $limit = 10)
{
global $pgconn;
$member_id = $member['id'];
$query ='';
switch ($card_type) {
case 33000:
$query = "SELECT ca.id AS assign_id, ca.subscribe, a.*, a.id AS card_id,b.name AS card_action_name,b.type AS card_action_type,b.data AS card_action_data,adr.latitude,adr.longitude,
@@ -107,138 +109,30 @@ class userCards extends Model{
$deal_card_count = 0;
$survey_card_count = 0;
$blog_card_count = 0;
//$r = pg_query($pgconn, $query);
$r = $db->query( $query );
$r = $this->db->query( $query );
$out['total_record_raw'] = $r->getNumRows();
$out['total_record'] = $r->getNumRows();
$out['retval'] = PHP_API_OK;
$out['internal_return'] = PHP_API_OK;
$query = $query . " LIMIT " . $limit . "";
$r = $db->query( $query ); // with limits
$r = $this->db->query( $query ); // with limits
$result = [];
if ($r && $total_record_raw = $r->getNumRows()) {
if ($r) {
$ic = 0;
while ($f = $r->getRowArray()) {
$test_card_allowed = CARD_ADD_ALLOWED;
if ($card_type == 22000) {
$test_card_allowed = $this->verifyMemberCardDescision($f, $member, $out);
}
$card_country_allow = true;
if ($f["card_country"] != "") {
$card_country_allow = false;
if ($f["card_country"] == $member["country"]) {
$card_country_allow = true;
}
}
$count_block = false;
// let see i card expired
$expr_value = $f["expr_val"];
if ($f["card_canexpire"] == 1 && $expr_value < 0) {
$count_block = true;
} else {
if ($card_type == 22000) {
if ($f["button1_action"] == "GOOFFERS") {
if ($deal_card_count > 0) {
$count_block = true;
}
if ($f["card_country"] == "" || $f["card_country"] == $member["country"]) {
$deal_card_count++;
}
}
if ($f["button1_action"] == "SURVEYA") {
if ($fsurvey_card_count > 0) {
$count_block = true;
}
$survey_card_count++;
}
if ($f["button1_action"] == "BLOGCARD") {
if ($blog_card_count > 0) {
$count_block = true;
}
$blog_card_count++;
}
}
} //card is not expired
if (CARD_ADD_ALLOWED == $test_card_allowed && true == $card_country_allow && false == $count_block) {
$suffix = str_pad($ic, 5, '0', STR_PAD_LEFT);
//fillSuffixCard($out, $f, $suffix);
$out['name_' . $suffix] = $f['name'];
$out['assign_id_' . $suffix] = $f['assign_id'];
$out['card_id_' . $suffix] = $f['card_id'];
$out['can_save_' . $suffix] = $f['can_save'];
$out['short_title_' . $suffix] = $f['short_title'];
$out['title_' . $suffix] = $f['short_title'];
$out['background_picture_' . $suffix] = $f['background_picture'];
$out['button1_' . $suffix] = $f['button1'];
$out['button1_text_' . $suffix] = $f['button1_text'];
$out['button1_action_' . $suffix] = $f['button1_action'];
$out['expires_' . $suffix] = $f['card_expiration'];
$out['template_' . $suffix] = $f['template'];
$out['card_canexpire_' . $suffix] = $f['card_canexpire'];
$out['card_action_type_' . $suffix] = $f['card_action_type'];
$out['card_action_data_' . $suffix] = $f['card_action_data'];
$out['titleshow_' . $suffix] = $f['titleshow'];
$out['multiple_answer_' . $suffix] = $f['multiple_answer'];
$out['use_short_title_' . $suffix] = $f['use_short_title'];
$out['target_key_' . $suffix] = $f['target_key'];
$out['target_text_' . $suffix] = $f['target_text'];
$out['description_' . $suffix] = $f['description'];
$out['long_description_' . $suffix] = $f['long_description'];
$out['card_behavior_' . $suffix] = $f['card_behavior'];
$out['card_type_' . $suffix] = $f['card_type'];
$out['card_time_' . $suffix] = $f['card_time'];
$out['card_country_' . $suffix] = $f['card_country'];
$out['card_location_' . $suffix] = $f['card_location'];
$out['latitude_' . $suffix] = $f['latitude'];
$out['longitude_' . $suffix] = $f['longitude'];
$out['card_order_' . $suffix] = $f['card_order'];
$out['background_color_' . $suffix] = $f['background_color'];
$out['blog_id_' . $suffix] = $f['blog_id'];
$out['expiration_' . $suffix] = $f['expiration'];
if ($f["button1_action"] == "CARPOOL") {
$carPool = fetchRow("SELECT * FROM members_carpool_friends WHERE carpool_id IN (select id from members_carpool WHERE member_id = " . $member_id . ") AND status = 1");
if ($carPool && $carPool['added']) {
$out['subscribe_' . $suffix] = $carPool["added"];
} else {
$out['subscribe_' . $suffix] = "";
}
} else {
$out['subscribe_' . $suffix] = $f["subscribe"];
}
$ic++;
}
}
$out['total_record'] = $ic;
}
}
return 0;
}
private function verifyMemberCardDescision($cardData, $memberData, &$out)
{
$permCard = CARD_ADD_ALLOWED;
$behaviour = $cardData["card_behavior"];
if (function_exists("behaviour_" . $behaviour)) {
$permCard = call_user_func("behaviour_" . $behaviour, $memberData, $out);
} else {
$permCard = CARD_ADD_ALLOWED;
}
return $permCard;
}
private function saveDashCard($in, &$out)
{
@@ -258,7 +152,29 @@ class userCards extends Model{
return $ret;
}
function loadSavedCard($in, &$out)
private function logArray2($in){
if (!is_array($in)){
log_message('critical', "NOT ARRAY => $in \n");
return;
}
foreach($in as $key => $value){
$vl='';
if (is_array($value)){
foreach($value as $kk => $vv){
$vl .= "$kk => $vv \n";
}
}
else{
$vl=$value;
}
log_message('critical', "$key=>".$vl);
}
}
public function loadSavedCard($in, &$out)
{
$ret = PHP_API_BAD_PARAM;
@@ -267,12 +183,20 @@ class userCards extends Model{
$out["total_record"] = 0;
$out['session_valid'] = '';
$out['internal_return'] = PHP_API_OK;
$saveCards = selectData("SELECT m.id AS saved_card_id, mc.*,mc.id AS card_id FROM member_saved_cards m LEFT JOIN main_cards mc ON m.card_id = mc.id WHERE m.member_id = " . $member_id . " AND m.status = 1");
$saveCards = $this->db->query("SELECT m.id AS saved_card_id, mc.*,mc.id AS card_id
FROM member_saved_cards m
LEFT JOIN main_cards mc ON m.card_id = mc.id
WHERE m.member_id = " . $member_id . "
AND m.status = 1 LIMIT 10");
// $this->logArray2($saveCards);
if ($saveCards != null) {
$out["total_record"] = pg_num_rows($saveCards);
$out["total_record"] = $saveCards->getNumRows();
$ic = 0;
while ($f = pg_fetch_assoc($saveCards)) {
$this->logArray2("card lines total_record => ".$saveCards->getNumRows());
foreach ($saveCards->getResultArray() as $f) {
$this->logArray2("card lines total => ".$ic);
$suffix = str_pad($ic, 5, '0', STR_PAD_LEFT);
$out['name_' . $suffix] = $f['name'];
$out['short_title_' . $suffix] = $f['short_title'];
@@ -295,6 +219,7 @@ class userCards extends Model{
$out['titleshow_' . $suffix] = $f['titleshow'];
$ic++;
}
}
$ret = PHP_API_OK;
$out["status"] = "OK";
@@ -327,11 +252,11 @@ class userCards extends Model{
$card = fetchRow("SELECT id,button1_action,title,expiration FROM main_cards WHERE id=" . $card_id . "");
if ($card) {
if ($card["button1_action"] == "CARPOOL") {
updateQuery("UPDATE members_card_assign SET status = 0,completed=now(),updated=now() WHERE card_id=" . $card_id . " AND member_id=" . $member_id . "");
$this->db->query("UPDATE members_card_assign SET status = 0,completed=now(),updated=now() WHERE card_id=" . $card_id . " AND member_id=" . $member_id . "");
}
if ($card["expiration"] == 100) {
updateQuery("UPDATE members_card_assign SET status = 0,updated=now() WHERE card_id=" . $card_id . " AND member_id=" . $member_id . "");
$this->db->query("UPDATE members_card_assign SET status = 0,updated=now() WHERE card_id=" . $card_id . " AND member_id=" . $member_id . "");
}
// let us see if this is a dynamic card
@@ -341,7 +266,7 @@ class userCards extends Model{
if ($assignCard) {
if ($assignCard["expiration"] == "EXP00002") {
// rule 1 expire on first contact
updateQuery("UPDATE members_card_assign SET status = 0 WHERE id= " . $assignCard['assign_id'] . " AND member_id=" . $member_id . "");
$this->db->query("UPDATE members_card_assign SET status = 0 WHERE id= " . $assignCard['assign_id'] . " AND member_id=" . $member_id . "");
}
}
@@ -364,7 +289,7 @@ class userCards extends Model{
} else {
$ret = PHP_API_OK;
}
$ret = updateQuery("UPDATE members_card_assign SET status = 1, updated=NOW() WHERE id = " . $assignCard['assign_id'] . " AND member_id = " . $member_id . "");
$ret = $this->db->query("UPDATE members_card_assign SET status = 1, updated=NOW() WHERE id = " . $assignCard['assign_id'] . " AND member_id = " . $member_id . "");
} else {
$out["status"] = "This card was already added";