fix
This commit is contained in:
@@ -13,6 +13,7 @@ long WrenchCanceContractPayment( CVars in, CVars &out );
|
|||||||
long WrenchNewCardPayment( CVars in, CVars &out );
|
long WrenchNewCardPayment( CVars in, CVars &out );
|
||||||
long WrenchCardRechargePayment( CVars in, CVars &out );
|
long WrenchCardRechargePayment( CVars in, CVars &out );
|
||||||
long CheckWallet(long member_id,CVars in);
|
long CheckWallet(long member_id,CVars in);
|
||||||
|
long DeductMemberWallet(long member_id,long wallet_id,long amount, long payment_id);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ enum { PARTNER_STRIPE };
|
|||||||
|
|
||||||
#define WRENCHBOARD_ACCOUNT_WALLETS 11060
|
#define WRENCHBOARD_ACCOUNT_WALLETS 11060
|
||||||
|
|
||||||
|
#define WRENCHBOARD_USER_DELETEACC 11990
|
||||||
#define WRENCHBOARD_ACCOUNT_END 11999
|
#define WRENCHBOARD_ACCOUNT_END 11999
|
||||||
//**************************************************************
|
//**************************************************************
|
||||||
#define WRENCHBOARD_GROUP_START 12000
|
#define WRENCHBOARD_GROUP_START 12000
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ created timestamp without time zone DEFAULT now()
|
|||||||
long WrenchBoardMobileSendMoney(CVars in, CVars &out);
|
long WrenchBoardMobileSendMoney(CVars in, CVars &out);
|
||||||
long WrenchBoardMobileSendJobInterest(CVars in, CVars &out);
|
long WrenchBoardMobileSendJobInterest(CVars in, CVars &out);
|
||||||
long WrenchReturnPendingJobList(CVars in, CVars &out);
|
long WrenchReturnPendingJobList(CVars in, CVars &out);
|
||||||
|
long WrenchBoardMobileSendUserWallet(CVars in, CVars &out);
|
||||||
|
|
||||||
long test() {
|
long test() {
|
||||||
FILE* oldFile = Output2FILE::Stream();
|
FILE* oldFile = Output2FILE::Stream();
|
||||||
@@ -318,6 +319,19 @@ test();
|
|||||||
|
|
||||||
case WRENCHBOARD_ACCOUNT_WALLETS:
|
case WRENCHBOARD_ACCOUNT_WALLETS:
|
||||||
logfmt(logINFO, "/account_calls()");
|
logfmt(logINFO, "/account_calls()");
|
||||||
|
return WrenchBoardMobileSendUserWallet(in, out);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WRENCHBOARD_USER_DELETEACC:
|
||||||
|
REQ_LONG(in, "member_id", 1, -1);
|
||||||
|
REQ_STRING(in, "reason", 2, 149, "(.*)");
|
||||||
|
CVars xx;
|
||||||
|
xx["member_id"] = in["member_id"]; xx["member_id"].set_valid(true);
|
||||||
|
xx["reason"] = in["reason"]; xx["reason"].set_valid(true);
|
||||||
|
out["delete_id"] = insert_db_record(DBS_VALID, "members_delete", "members_delete_id_seq", xx);
|
||||||
|
/*
|
||||||
|
DO THE DELETE HERE NOW
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -327,6 +341,42 @@ test();
|
|||||||
|
|
||||||
#define PHP_API_TRANSFER_COMPLETE 200
|
#define PHP_API_TRANSFER_COMPLETE 200
|
||||||
|
|
||||||
|
long WrenchBoardMobileSendUserWallet(CVars in, CVars &out) {
|
||||||
|
logfmt(logINFO, "WrenchBoardMobileSendUserWallet()");
|
||||||
|
char vname[30];
|
||||||
|
long ret = PHP_API_BAD_PARAM;
|
||||||
|
|
||||||
|
try {
|
||||||
|
REQ_LONG(in, "member_id", 1, -1);
|
||||||
|
out["total_record"] = "0";
|
||||||
|
const PGresult *res;
|
||||||
|
res = pgsql_query(" SELECT * FROM members_wallet WHERE member_id = %lu", in["member_id"].Long());
|
||||||
|
|
||||||
|
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), "amount_%05d", i);
|
||||||
|
out[vname] = rec["amount"];
|
||||||
|
snprintf(vname, sizeof (vname), "currency_%05d", i);
|
||||||
|
out[vname] = rec["currency"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ret = PHP_API_OK;
|
||||||
|
out["status"] = "OK";
|
||||||
|
} catch (bad_parameter) {
|
||||||
|
logfmt(logINFO, "ERROR CALL long WrenchBoardMobileSendUserWallet(CVars in, CVars &out)");
|
||||||
|
}
|
||||||
|
logfmt(logINFO, "/WrenchReturnPendingJobList()");
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
long WrenchBoardMobileSendJobInterest(CVars in, CVars &out) {
|
long WrenchBoardMobileSendJobInterest(CVars in, CVars &out) {
|
||||||
long ret = PHP_API_BAD_PARAM;
|
long ret = PHP_API_BAD_PARAM;
|
||||||
try {
|
try {
|
||||||
@@ -1162,6 +1212,13 @@ long LoginWrenchBoardAccount(CVars in, CVars &out) {
|
|||||||
|
|
||||||
ret = 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 LOWER(username)=LOWER('%s') AND password= md5('%s')", in["username"].c_str(), in["password"].c_str());
|
ret = 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 LOWER(username)=LOWER('%s') AND password= md5('%s')", in["username"].c_str(), in["password"].c_str());
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
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());
|
||||||
|
|
||||||
|
|
||||||
pgsql_exec("DELETE FROM members_session WHERE member_id=%ld ", out["member_id"].Long());
|
pgsql_exec("DELETE FROM members_session WHERE member_id=%ld ", out["member_id"].Long());
|
||||||
// remove all existing session
|
// remove all existing session
|
||||||
|
|||||||
@@ -71,6 +71,27 @@ if ( load_db_record( y, "SELECT * FROM members_wallet WHERE id = %lu AND member_
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long DeductMemberWallet(long member_id,long wallet_id,long amount, long payment_id){
|
||||||
|
logfmt(FLOG_MAX, "DeductMemberWallet ************************" );
|
||||||
|
logfmt(FLOG_MAX, "Review this design so as not to loose money ");
|
||||||
|
logfmt(FLOG_MAX, "DeductMemberWallet ************************" );
|
||||||
|
|
||||||
|
CVars y;
|
||||||
|
if ( load_db_record( y, "SELECT * FROM members_wallet WHERE id = %lu AND member_id =%lu", wallet_id,member_id ) > 0 )
|
||||||
|
{
|
||||||
|
|
||||||
|
CVars x;
|
||||||
|
x["member_id"] = member_id; x["member_id"].set_valid( true ); //
|
||||||
|
x["payment_id"] = payment_id; x["payment_id"].set_valid( true ); //
|
||||||
|
x["amount"] = amount; x["amount"].set_valid( true ); //
|
||||||
|
x["balance"] = y["amount"]; x["balance"].set_valid( true ); //
|
||||||
|
insert_db_record( DBS_VALID, "members_wallet_detail", "members_wallet_detail_id_seq", x );
|
||||||
|
pgsql_exec("UPDATE members_wallet SET amount=amount - %lu,prev_amount=%lu WHERE member_id = %lu AND id=%lu",amount,y["amount"].Long(),member_id , wallet_id); // pay attention to who you pay here
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
long WrenchNewCardPayment( CVars in, CVars &out )
|
long WrenchNewCardPayment( CVars in, CVars &out )
|
||||||
{
|
{
|
||||||
long payment_return = 0; // just return 0 if not okay , payment_id is all okay
|
long payment_return = 0; // just return 0 if not okay , payment_id is all okay
|
||||||
@@ -362,6 +383,10 @@ Foreign-key constraints:
|
|||||||
REQ_LONG( in, "dir", 1, -1 );
|
REQ_LONG( in, "dir", 1, -1 );
|
||||||
REQ_LONG( in, "offer_id", 1, -1 );
|
REQ_LONG( in, "offer_id", 1, -1 );
|
||||||
|
|
||||||
|
CVars vw;
|
||||||
|
vw["currency"] = "NAIRA"; // this might become a variable based on the country
|
||||||
|
vw["currency"].set_valid( true );
|
||||||
|
long wallet_id = CheckWallet(in["member_id"].Long(),vw);
|
||||||
|
|
||||||
|
|
||||||
long retDb = load_db_record( out, "SELECT balance AS curr_balance FROM members WHERE id = %lu", in["member_id"].Long());
|
long retDb = load_db_record( out, "SELECT balance AS curr_balance FROM members WHERE id = %lu", in["member_id"].Long());
|
||||||
@@ -414,6 +439,7 @@ Foreign-key constraints:
|
|||||||
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
||||||
// now generate the confirmation
|
// now generate the confirmation
|
||||||
pgsql_exec("UPDATE members SET balance=balance - %lu WHERE id = %lu",in["amount"].Long() + in["fee"].Long(),in["member_id"].Long() );
|
pgsql_exec("UPDATE members SET balance=balance - %lu WHERE id = %lu",in["amount"].Long() + in["fee"].Long(),in["member_id"].Long() );
|
||||||
|
DeductMemberWallet(in["member_id"].Long(), wallet_id,in["amount"].Long(), payment_id);
|
||||||
char confirmation[15] = "";
|
char confirmation[15] = "";
|
||||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||||
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
||||||
@@ -658,6 +684,11 @@ Foreign-key constraints:
|
|||||||
REQ_LONG( in, "dir", 1, -1 );
|
REQ_LONG( in, "dir", 1, -1 );
|
||||||
REQ_LONG( in, "sendmoney_id", 1, -1 );
|
REQ_LONG( in, "sendmoney_id", 1, -1 );
|
||||||
|
|
||||||
|
CVars vw;
|
||||||
|
vw["currency"] = "NAIRA"; // this might become a variable based on the country
|
||||||
|
vw["currency"].set_valid( true );
|
||||||
|
long wallet_id = CheckWallet(in["member_id"].Long(),vw);
|
||||||
|
|
||||||
|
|
||||||
long retDb = load_db_record( out, "SELECT balance AS curr_balance FROM members WHERE id = %lu", in["member_id"].Long());
|
long retDb = load_db_record( out, "SELECT balance AS curr_balance FROM members WHERE id = %lu", in["member_id"].Long());
|
||||||
|
|
||||||
@@ -716,26 +747,21 @@ Foreign-key constraints:
|
|||||||
return PHP_API_BAD_PARAM;
|
return PHP_API_BAD_PARAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
out["payment_id"] = payment_id; out["payment_id"].set_valid( true );
|
out["payment_id"] = payment_id; out["payment_id"].set_valid( true );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (payment_id) {
|
if (payment_id) {
|
||||||
ret = PHP_CREATED_OK;
|
|
||||||
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
||||||
// now generate the confirmation
|
// now generate the confirmation
|
||||||
pgsql_exec("UPDATE members SET balance=balance - %lu WHERE id = %lu",in["amount"].Long() + in["fee"].Long(),in["member_id"].Long() );
|
//pgsql_exec("UPDATE members SET balance=balance - %lu WHERE id = %lu",in["amount"].Long() + in["fee"].Long(),in["member_id"].Long() );
|
||||||
|
DeductMemberWallet(in["member_id"].Long(), wallet_id,in["amount"].Long() + in["fee"].Long(), payment_id);
|
||||||
char confirmation[15] = "";
|
char confirmation[15] = "";
|
||||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||||
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
||||||
x["payment_id"] = payment_id; x["payment_id"].set_valid( true );
|
x["payment_id"] = payment_id; x["payment_id"].set_valid( true );
|
||||||
pgsql_exec("UPDATE members_payments SET flags = %lu WHERE id = %lu",x["flags"].Long(),payment_id );
|
pgsql_exec("UPDATE members_payments SET flags = %lu WHERE id = %lu",x["flags"].Long(),payment_id );
|
||||||
|
load_db_record( out, "SELECT * FROM members_payments WHERE id = %lu ", payment_id );
|
||||||
|
ret = PHP_CREATED_OK;
|
||||||
|
|
||||||
load_db_record( out, "SELECT * FROM members_payments WHERE id = %lu ", payment_id );
|
|
||||||
} else {
|
} else {
|
||||||
out["status"] = "Uanble to create payment";
|
out["status"] = "Uanble to create payment";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,9 +139,11 @@ long INTW_configure(CVars in, CVars &out) ;
|
|||||||
|
|
||||||
long member_sendmoney(CVars in, CVars &out) {
|
long member_sendmoney(CVars in, CVars &out) {
|
||||||
//plog->SetFileName( PREFIX"/logs/member_sendmoney.log" );
|
//plog->SetFileName( PREFIX"/logs/member_sendmoney.log" );
|
||||||
//return INTW_doServiceTransfer(in, out);
|
long ret = WRB_doServiceTransferComplete(in, out);
|
||||||
return WRB_doServiceTransferComplete(in, out);
|
|
||||||
//return 0;
|
logfmt(logINFO, "************************ E****** member_sendmoney(CVars in, CVars out) =%lu",ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
long member_addrecipient(CVars in, CVars &out) {
|
long member_addrecipient(CVars in, CVars &out) {
|
||||||
@@ -598,7 +600,7 @@ long WRB_doServiceTransferComplete(CVars in, CVars &out) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logfmt(logINFO, "/long INTW_doTransfer(CVars in, CVars &out)");
|
logfmt(logINFO, "/long WRB_doServiceTransferComplete(CVars in, CVars &out)");
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user