From b3af52ebb05d9fbfc128deddf75031bc38a265d1 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Mon, 30 Oct 2023 08:01:03 -0400 Subject: [PATCH] family wallet --- wrenchboard/src/shared_tool/account.cc | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/wrenchboard/src/shared_tool/account.cc b/wrenchboard/src/shared_tool/account.cc index a29fc2ee..77a7eda9 100644 --- a/wrenchboard/src/shared_tool/account.cc +++ b/wrenchboard/src/shared_tool/account.cc @@ -2027,12 +2027,14 @@ long WrenchBoardCreateFamilyAcc(CVars in, CVars &out){ long LoginWrenchBoardFamilyLogin(CVars in, CVars &out){ long ret = PHP_API_BAD_PARAM; long family_member_id = 0; + long parent_member_id = 0; + long wallet_id = 0; logfmt(logINFO, "********~~~~~~~~ ------LoginWrenchBoardFamilyLogin()"); try { REQ_STRING(in, "username", 5, 49, "(.*)"); REQ_STRING(in, "pin", 4, 10, "(.*)"); - const PGresult *res = pgsql_query(" SELECT id AS family_id,* FROM members_family " + const PGresult *res = pgsql_query(" SELECT member_id AS parent_member_id, id AS family_id,* FROM members_family " " WHERE username='%s' AND pin='%s' ", in["username"].c_str(),in["pin"].c_str()); if (res != NULL && pgsql_num_rows(res) > 0) { mapf = pgsql_fetch_assoc(res, 0); @@ -2044,16 +2046,22 @@ long LoginWrenchBoardFamilyLogin(CVars in, CVars &out){ } else{ family_member_id = rec["family_member_id"].Long(); + parent_member_id = rec["parent_member_id"].Long(); } - if (family_member_id > 0){ + if (family_member_id > 0 && parent_member_id > 0){ + load_db_record(out, "SELECT *,id AS member_id , to_char(last_login, 'Day Mon dd, yyyy HH:MI AM') AS last_login2 " " FROM members WHERE status=1 AND id = %lu",family_member_id); + // default parent wallet based on country CVars vw; - vw["currency"] = "NAIRA"; // this might become a variable based on the country - vw["currency"].set_valid( true ); - long wallet_id = CheckWallet(out["member_id"].Long(),vw); - load_db_record( out, "SELECT amount AS balance FROM members_wallet WHERE member_id = %lu AND currency='%s' ", out["member_id"].Long(), vw["currency"].c_str()); + if( load_db_record(vw, "SELECT c.code AS currency from members m LEFT JOIN currency c ON c.country = m.country WHERE m.id >1 AND m.country IS NOT NULL",parent_member_id)> 0 ){ + // vw["currency"] = "NAIRA"; // this might become a variable based on the country + //vw["currency"].set_valid( true ); + wallet_id = CheckWallet(out["member_id"].Long(),vw); + load_db_record( out, "SELECT amount AS balance FROM members_wallet WHERE member_id = %lu AND currency='%s' ", out["member_id"].Long(), vw["currency"].c_str()); + } + pgsql_exec("DELETE FROM members_session WHERE member_id=%ld ", out["member_id"].Long()); // remove all existing session load_db_record(in, "SELECT upper(md5(now()::text))||''|| upper(md5(now()::date::text)) AS sessionid");