Files
WrenchBoradWeb/wrenchboard/src/shared_tool/sel_data.cc
T
CHIEFSOFT\ameye 870766ff19 bank uid
2023-07-21 21:40:25 -04:00

500 lines
18 KiB
C++

// Combo Data
#include "clog.h"
#include "cgi.h"
#include "input.h"
#include "wrenchboard_api.h"
#include "sel_data.h"
#include "email.h"
#include "payments.h"
#include "safestring.h"
#include <string>
#include "pgsql.h"
#include "pgsql_wrapper.h"
#include "cfg.h"
#include <curl/curl.h>
long getJobPriceCombo( CVars in, CVars &out )
{
/* $this->defaultComboMessage ='Select Price...';
$cmbstr ="<option value='0'>". $this->defaultComboMessage ."</option>";
for ($i = 2000; $i <= 10000; $i = $i + 1000) {
// $amountArray[] = [$i,$i,'Naira'];
$selV = '';
if ($curVal == $i) {
$selV = " selected ";
}
$cmbstr .= "<option value='".$i."' ".$selV.">".$i." ".$description."</option>";
}
*/
return 0;
}
long getJobPostDuration( CVars in, CVars &out )
{
/*
$this->defaultComboMessage ='Select duration of post';
$cmbstr ="";
for ($ii = 2; $ii <= 10; $ii++) {
$cmbstr .= "<option value='$ii'>$ii day(s)</option>";
}
for ($ii = 2; $ii <= 5; $ii++) {
$days_c = $ii*7;
$cmbstr .= "<option value='$days_c'>$ii Weeks</option>";
}
*/
return 0;
}
long getUserJobGroupCombo( CVars in, CVars &out )
{
/*
// $sql = "SELECT id,group_name FROM members_job_group WHERE member_id = $member_id AND status = 1 ORDER BY group_name ASC ";
$sql = "SELECT m.id,m.group_name, m.group_name||' ['||count(g.group_id)||' members]' AS member_group_count "
. "FROM members_job_group m "
. "LEFT JOIN members_job_groupmember g ON g.group_id = m.id "
. "WHERE m.member_id = $member_id "
. "AND m.status = 1 GROUP BY m.id,m.group_name ORDER BY m.group_name ASC";
$q = $this->db->query($sql);
$option_value = $this->optionValueObject($q->result(), "id", "member_group_count", $curVal);
*/
return 0;
}
long getUserRecipientCombo( CVars in, CVars &out ){
char vname[30];
long ret = PHP_API_BAD_PARAM;
logfmt( logINFO, "getUserRecipientCombo()" );
out["result"] = "Yes i go to this back end";
try {
long member_id = REQ_LONG( in, "member_id", 1, -1 );
long limit = REQ_LONG( in, "limit", 1, -1 );
REQ_LONG( in, "page", 1, -1 );
REQ_STRING (in, "uid", 10, 100, "(.*)");
out["total_record"] = "0";
const PGresult *res;
res = pgsql_query("SELECT b.id,b.firstname||' '||b.lastname||' '||b.account_no||' '||k.name AS recipient, "
" b.account_no,b.country,b.added,b.uid AS recipient_uid ,b.uid ,k.name AS bank_name,k.uid AS bank_uid "
"FROM sendmoney_recipient b "
"LEFT JOIN bank_entity_codes k ON k.code=b.bank_code "
"WHERE b.member_id = %lu AND b.status=1",member_id);
if (res != NULL && pgsql_num_rows(res) > 0) {
out["total_record"] = pgsql_num_rows(res);
for (int i = 0, n = pgsql_num_rows(res); i < n; i++) {
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
if (f.empty()) continue;
CVars rec;
map_to_cvars(f, rec);
snprintf(vname, sizeof (vname), "recipient_%05d", i);
out[vname] = rec["recipient"];
snprintf(vname, sizeof (vname), "id_%05d", i);
out[vname] = rec["id"];
snprintf(vname, sizeof (vname), "uid_%05d", i);
out[vname] = rec["uid"];
snprintf(vname, sizeof (vname), "account_no_%05d", i);
out[vname] = rec["account_no"];
snprintf(vname, sizeof (vname), "country_%05d", i);
out[vname] = rec["country"];
snprintf(vname, sizeof (vname), "added_%05d", i);
out[vname] = rec["added"];
snprintf(vname, sizeof (vname), "recipient_uid_%05d", i);
out[vname] = rec["recipient_uid"];
snprintf(vname, sizeof (vname), "uid_%05d", i);
out[vname] = rec["uid"];
snprintf(vname, sizeof (vname), "bank_name_%05d", i);
out[vname] = rec["bank_name"];
snprintf(vname, sizeof (vname), "bank_uid_%05d", i);
out[vname] = rec["bank_uid"];
}
}
ret = PHP_API_OK;
out["status"] = "OK";
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long getUserRecipientCombo(CVars in, CVars &out)");
}
logfmt( logINFO, "/getUserRecipientCombo()" );
return ret;
}
long getAccountTypeCombo( CVars in, CVars &out ) {
/* $q = $this
->db
->where('status', 1)
->order_by('type_name', 'ASC')
->get('account_types');
$option_value = $this->optionValueObject($q->result(), "type_value", "type_name", $curVal);
SELECT id,type_name,type_value FROM account_types WHERE status = 1 ORDER BY type_name ASC
*/
char vname[30];
long ret = PHP_API_BAD_PARAM;
logfmt( logINFO, "getAccountTypeCombo()" );
out["result"] = "Yes i go to this back end";
try {
out["total_record"] = "0";
const PGresult *res;
res = pgsql_query("SELECT id,type_name,type_value "
"FROM account_types "
"WHERE status = 1 ORDER BY type_name ASC");
if (res != NULL && pgsql_num_rows(res) > 0) {
out["total_record"] = pgsql_num_rows(res);
for (int i = 0, n = pgsql_num_rows(res); i < n; i++) {
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
if (f.empty()) continue;
CVars rec;
map_to_cvars(f, rec);
snprintf(vname, sizeof (vname), "value_%05d", i);
out[vname] = rec["type_value"];
snprintf(vname, sizeof (vname), "name_%05d", i);
out[vname] = rec["type_name"];
}
}
ret = PHP_API_OK;
out["status"] = "OK";
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long getAccountTypeCombo(CVars in, CVars &out)");
}
logfmt( logINFO, "/getAccountTypeCombo()" );
return ret;
}
long getGeneralSkillCombo( CVars in, CVars &out ) {
/* $this->showDefaultSelect = false;
$q = $this
->db
->where('status', 1)
->order_by('lorder', 'DESC')
->get('skill_category');
$option_value = $this->optionValueObject($q->result(), "id", "category", $curVal);
*/
char vname[30];
long ret = PHP_API_BAD_PARAM;
logfmt( logINFO, "getGeneralSkillCombo()" );
out["result"] = "Yes i go to this back end";
try {
out["total_record"] = "0";
const PGresult *res;
res = pgsql_query("SELECT id,category "
"FROM skill_category "
"WHERE status = 1 ORDER BY lorder DESC");
if (res != NULL && pgsql_num_rows(res) > 0) {
out["total_record"] = pgsql_num_rows(res);
for (int i = 0, n = pgsql_num_rows(res); i < n; i++) {
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
if (f.empty()) continue;
CVars rec;
map_to_cvars(f, rec);
snprintf(vname, sizeof (vname), "id_%05d", i);
out[vname] = rec["id"];
snprintf(vname, sizeof (vname), "category_%05d", i);
out[vname] = rec["category"];
}
}
ret = PHP_API_OK;
out["status"] = "OK";
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long getGeneralSkillCombo(CVars in, CVars &out)");
}
logfmt( logINFO, "/getGeneralSkillCombo()" );
return ret;
}
long getUserNewSkillCombo( CVars in, CVars &out ) {
/* $q = $this
->db
->where('status', 1)
->where('category_id', $category_id)
->order_by('lorder', 'DESC')
->get('skill_types');
$option_value = $this->optionValueObject($q->result(), "id", "skill", $curVal);
*/
char vname[30];
long ret = PHP_API_BAD_PARAM;
logfmt( logINFO, "getUserNewSkillCombo()" );
out["result"] = "Yes i go to this back end";
try {
long category_id = REQ_LONG( in, "category_id", 1, -1 );
out["total_record"] = "0";
const PGresult *res;
res = pgsql_query("SELECT id,skill "
"FROM skill_types "
"WHERE category_id = %lu AND status = 1 ORDER BY lorder DESC", category_id);
if (res != NULL && pgsql_num_rows(res) > 0) {
out["total_record"] = pgsql_num_rows(res);
for (int i = 0, n = pgsql_num_rows(res); i < n; i++) {
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
if (f.empty()) continue;
CVars rec;
map_to_cvars(f, rec);
snprintf(vname, sizeof (vname), "id_%05d", i);
out[vname] = rec["id"];
snprintf(vname, sizeof (vname), "skill_%05d", i);
out[vname] = rec["skill"];
}
}
ret = PHP_API_OK;
out["status"] = "OK";
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long getUserNewSkillCombo(CVars in, CVars &out)");
}
logfmt( logINFO, "/getUserNewSkillCombo()" );
return ret;
}
long getCountryCombo( CVars in, CVars &out ) {
/* $q = $this
->db
->where('status', 1)
->order_by('country', 'ASC')
->get('country');
$option_value = $this->optionValueObject($q->result(), "code", "country", $curVal);
id| code |country| phone_code |allow| status |created|updated|jobs
*/
char vname[30];
long ret = PHP_API_BAD_PARAM;
logfmt( logINFO, "getCountryCombo()" );
out["result"] = "Yes i go to this back end";
try {
out["total_record"] = "0";
const PGresult *res;
res = pgsql_query("SELECT * "
"FROM country "
"WHERE status = 1 ORDER BY country ASC");
if (res != NULL && pgsql_num_rows(res) > 0) {
out["total_record"] = pgsql_num_rows(res);
for (int i = 0, n = pgsql_num_rows(res); i < n; i++) {
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
if (f.empty()) continue;
CVars rec;
map_to_cvars(f, rec);
snprintf(vname, sizeof (vname), "id_%05d", i);
out[vname] = rec["id"];
snprintf(vname, sizeof (vname), "code_%05d", i);
out[vname] = rec["code"];
snprintf(vname, sizeof (vname), "country_%05d", i);
out[vname] = rec["country"];
snprintf(vname, sizeof (vname), "phone_code_%05d", i);
out[vname] = rec["phone_code"];
snprintf(vname, sizeof (vname), "account_no_%05d", i);
out[vname] = rec["account_no"];
snprintf(vname, sizeof (vname), "created_%05d", i);
out[vname] = rec["created"];
}
}
ret = PHP_API_OK;
out["status"] = "OK";
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long getCountryCombo(CVars in, CVars &out)");
}
logfmt( logINFO, "/getCountryCombo()" );
return ret;
return 0;
}
long getCountryJobCombo( CVars in, CVars &out ) {
/* $q = $this
->db
->where('status', 1)
->where('jobs is NOT NULL', NULL, FALSE)
->order_by('country', 'ASC')
->get('country');
$option_value = $this->optionValueObject($q->result(), "code", "country", $curVal);
*/
char vname[30];
long ret = PHP_API_BAD_PARAM;
logfmt( logINFO, "getCountryJobCombo()" );
out["result"] = "Yes i go to this back end";
try {
out["total_record"] = "0";
const PGresult *res;
res = pgsql_query("SELECT * "
"FROM country "
"WHERE jobs IS NOT NULL ORDER BY country ASC");
if (res != NULL && pgsql_num_rows(res) > 0) {
out["total_record"] = pgsql_num_rows(res);
for (int i = 0, n = pgsql_num_rows(res); i < n; i++) {
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
if (f.empty()) continue;
CVars rec;
map_to_cvars(f, rec);
snprintf(vname, sizeof (vname), "id_%05d", i);
out[vname] = rec["id"];
snprintf(vname, sizeof (vname), "code_%05d", i);
out[vname] = rec["code"];
snprintf(vname, sizeof (vname), "country_%05d", i);
out[vname] = rec["country"];
snprintf(vname, sizeof (vname), "phone_code_%05d", i);
out[vname] = rec["phone_code"];
snprintf(vname, sizeof (vname), "account_no_%05d", i);
out[vname] = rec["account_no"];
snprintf(vname, sizeof (vname), "created_%05d", i);
out[vname] = rec["created"];
}
}
ret = PHP_API_OK;
out["status"] = "OK";
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long getCountryCombo(CVars in, CVars &out)");
}
logfmt( logINFO, "/getCountryJobCombo()" );
return ret;
}
long getBankCombo( CVars in, CVars &out ) {
/*
wrenchboard=> Select code,name from bank_entity_codes WHERE country ='NG' ORDER BY name ASC;
code | name
------+------------------------------------------------
044 | Access Bank
014 | Afri Bank
023 | Citi Bank
063 | Diamond Bank
050 | Ecobank
040 | Equitorial Trust Bank
*/
/* $q = $this
->db
->where('status', 1)
->order_by('name', 'ASC')
->get('bank_entity_codes');
$option_value = $this->optionValueObject($q->result(), "code", "name", $curVal);
*/
char vname[30];
char extra_filter[60];
long ret = PHP_API_BAD_PARAM;
logfmt( logINFO, "getBankCombo()" );
out["result"] = "Yes i go to this back end";
try {
OPTIONAL(in, "country") REQ_STRING(in, "country", 2, 5, "(.*)");
if (in["country"]!=""){
snprintf(extra_filter, sizeof (extra_filter), " AND country ='%s' ", in["country"].c_str());
}
else{
snprintf(extra_filter, sizeof (extra_filter), " "); // make empty
}
out["total_record"] = "0";
const PGresult *res;
res = pgsql_query("SELECT code,name,uid,country "
"FROM bank_entity_codes "
"WHERE status = 1 %s ORDER BY name ASC",extra_filter);
if (res != NULL && pgsql_num_rows(res) > 0) {
out["total_record"] = pgsql_num_rows(res);
for (int i = 0, n = pgsql_num_rows(res); i < n; i++) {
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
if (f.empty()) continue;
CVars rec;
map_to_cvars(f, rec);
snprintf(vname, sizeof (vname), "code_%05d", i);
out[vname] = rec["code"];
snprintf(vname, sizeof (vname), "name_%05d", i);
out[vname] = rec["name"];
snprintf(vname, sizeof (vname), "bank_uid_%05d", i);
out[vname] = rec["uid"];
snprintf(vname, sizeof (vname), "country_%05d", i);
out[vname] = rec["country"];
}
}
ret = PHP_API_OK;
out["status"] = "OK";
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long getBankCombo(CVars in, CVars &out)");
}
logfmt( logINFO, "/getBankCombo()" );
return ret;
}
/*
wrenchboard=> SELECT * FROM bank_entity_codes;
country | channel | name | code | gid | status | bank_codes | uid
---------+---------+------------------------------------------------+------+-----+--------+------------+--------------------------------------
NG | INTERSW | Access Bank | 044 | 1 | 1 | ACC044 | a2c6c1a2-5cf2-4396-8630-50c47da15316
NG | INTERSW | Afri Bank | 014 | 2 | 1 | AFR014 | 5526cfce-3395-4375-9c43-7b6e94843701
NG | INTERSW | Citi Bank | 023 | 3 | 1 | CIT023 | a988b775-0fe7-4180-a7d9-d3492efe812d
NG | INTERSW | Diamond Bank | 063 | 4 | 1 | DIA063 | 3c8fc9a2-95d8-4cb9-811b-6eac9cac45c9
*/