WrenchZeroRefundOffer

This commit is contained in:
CHIEFSOFT\ameye
2024-09-23 12:13:08 -04:00
parent eeed3bb32a
commit cc725eea28
3 changed files with 79 additions and 1 deletions
+1
View File
@@ -6,6 +6,7 @@
long WrenchOfferPayment( CVars in, CVars &out );
long WrenchSendMoneyPayment( CVars in, CVars &out );
long WrenchRefundoffer( CVars in, CVars &out );
long WrenchZeroRefundOffer( CVars in, CVars &out );
long WrenchContractPayment( CVars in, CVars &out );
long WrenchCanceContractPayment( CVars in, CVars &out );
+3
View File
@@ -1218,8 +1218,11 @@ long WrenchConcludeJobsOffer(CVars in, CVars &out) {
}
}
if ( offer_result == OFFER_NOREFU){
if (WrenchZeroRefundOffer(y, out) == PHP_CREATED_OK) {
logfmt(logINFO, "********* NO REFUND ************* NO REFUND WrenchConcludeJobsOffer() rc=FOUND");
pgsql_exec("UPDATE members_jobs_offer SET status = 4 WHERE id = %lu AND offer_code='%s' ", offer_id, in["offer_code"].c_str());
}
}
+75 -1
View File
@@ -930,12 +930,86 @@ Foreign-key constraints:
return ret;
}
long WrenchZeroRefundOffer( CVars in, CVars &out )
{
logfmt( logINFO, "WrenchZeroRefundOffer" );
long ret = PHP_API_BAD_PARAM;
//ULONG payment_id = 0;
const char * loc = getenv("REMOTE_ADDR");
in["loc"] = loc; in["loc"].set_valid(true);
long member_id = REQ_LONG( in, "member_id", 1, -1 );
REQ_STRING (in, "code", 4, 5, "(.*)");
REQ_LONG( in, "dir", 1, -1 );
long offer_id = REQ_LONG( in, "offer_id", 1, -1 );
long payment_id = REQ_LONG( in, "payment_id", 1, -1 );
long retDb2 = load_db_record( out, "SELECT id AS current_payment_id, * FROM members_payments WHERE id =%lu AND what_offer = %lu AND member_id=%lu AND code = 'OFDPS' AND status = 1 AND flags = 4 AND confirmation IS NOT NULL",payment_id,offer_id,member_id);
if (retDb2)
{
long current_payment_id = out["current_payment_id"].Long();
CVars vw;
vw["currency"] = out["currency"]; // 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 amount AS curr_balance FROM members_wallet WHERE member_id = %lu AND id = %lu", in["member_id"].Long(),wallet_id);
if (retDb > 0)
{ in["curr_balance"] =out["curr_balance"]; in["curr_balance"].set_valid( true ); // get this one LIVE
}
else
{ out["status"] = "Invalid user";
return PHP_API_BAD_PARAM;
}
CVars x;
x["member_id"] = in["member_id"]; x["member_id"].set_valid( true );
x["code"] = in["code"]; x["code"].set_valid( true );
x["dir"] = in["dir"]; x["dir"].set_valid( true );
x["loc"] = in["loc"]; x["loc"].set_valid( true );
x["curr_balance"] = in["curr_balance"]; x["curr_balance"].set_valid( true );
x["amount"] = out["amount"]; x["amount"].set_valid( true );
x["fee"] = out["fee"]; x["fee"].set_valid( true );
x["what_offer"] = out["what_offer"]; x["what_offer"].set_valid( true );
x["flags"] = FLAG_INIT; x["flags"].set_valid( true ); // starting the pprocess
payment_id = insert_db_record( DBS_VALID, "members_payments", "members_payments_id_seq", x );
if (payment_id) {
ret = PHP_CREATED_OK;
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
// now generate the confirmation
char confirmation[15] = "";
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
// DO NOT UPDATE WALLET UpdateMemberWallet( member_id, wallet_id,x["amount"].Long(), payment_id); // correct this dont send amount
x["flags"] = FLAG_OK; x["flags"].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 = 7 WHERE id = %lu",current_payment_id );
//pgsql_exec("UPDATE members_jobs_offer SET payment_id = %lu WHERE id = %lu",x["payment_id"].Long(),x["what_offer"].Long() );
load_db_record( out, "SELECT * FROM members_payments WHERE id = %lu ", payment_id );
} else {
out["status"] = "Unable to Refund Payment";
}
}
logfmt( logINFO, "/WrenchZeroRefundOffer" );
return ret;
}
long WrenchRefundoffer( CVars in, CVars &out )
{
logfmt( logINFO, "WrenchRefundoffer" );
long ret = PHP_API_BAD_PARAM;
//ULONG payment_id = 0;
const char * loc = getenv("REMOTE_ADDR");
in["loc"] = loc; in["loc"].set_valid(true);