1574 lines
39 KiB
PHP
1574 lines
39 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: root
|
|
* Date: 10/16/18
|
|
* Time: 8:45 AM
|
|
*/
|
|
|
|
namespace App\Libraries;
|
|
|
|
use Carbon\Carbon;
|
|
use GuzzleHttp\Client;
|
|
use GuzzleHttp\Psr7\Uri;
|
|
use Illuminate\Support\Facades\Config;
|
|
use App\Helpers\StringHelper;
|
|
|
|
class CywareLibrary
|
|
{
|
|
|
|
public function __construct() {
|
|
$this->random_key = rand(1001,5000);
|
|
$this->date = Carbon::now()->format('Ymd');
|
|
$this->uri = new Uri(Config::get('app.cyware'));
|
|
$this->url = Config::get('app.cyware');
|
|
}
|
|
|
|
protected $url;
|
|
|
|
protected $user = "APP";
|
|
protected $branch = "APP";
|
|
protected $cashier = "APP";
|
|
protected $entry_type = "APP";
|
|
protected $payment_type = "CC";
|
|
protected $item_code = "PREPAID";
|
|
|
|
protected $register_num = "1";
|
|
protected $dummy_transactions = false;
|
|
protected $dummy_id_entry = false;
|
|
protected $dummy_app_entry = false;
|
|
protected $dummy_data_success = false;
|
|
|
|
public $response;
|
|
public $status_code;
|
|
|
|
// generated
|
|
private $random_key;
|
|
private $date;
|
|
private $card_number;
|
|
private $uri;
|
|
|
|
// user inputs
|
|
private $called_function = "";
|
|
private $dummy_data = "";
|
|
private $first_name;
|
|
private $last_name;
|
|
private $birthday;
|
|
private $mobile;
|
|
private $email;
|
|
private $address;
|
|
|
|
private $pin;
|
|
private $start_date;
|
|
private $end_date;
|
|
private $si_num;
|
|
private $total_amount;
|
|
private $civil_status_code;
|
|
private $gender_code;
|
|
private $occupation_code;
|
|
private $number_cars;
|
|
private $is_petron;
|
|
private $is_phoenix;
|
|
private $is_shell;
|
|
private $is_flyingv;
|
|
private $is_caltex;
|
|
private $is_ptt;
|
|
private $is_total;
|
|
private $is_jetti;
|
|
private $is_seaoil;
|
|
private $is_sm;
|
|
private $is_robinson;
|
|
private $is_cebupacific;
|
|
private $is_petronv;
|
|
private $is_bdo;
|
|
private $is_mabuhay;
|
|
private $is_starbucks;
|
|
// private $is_s&r; // this is to be checked r only
|
|
private $snr;
|
|
private $is_national;
|
|
private $is_happy;
|
|
private $is_mercury;
|
|
private $fuel_type;
|
|
private $vehicle_own;
|
|
private $city_code;
|
|
private $card_type_code;
|
|
private $id_number;
|
|
private $lcard_id;
|
|
private $user_id;
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getOccupationCode()
|
|
{
|
|
return $this->occupation_code;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $occupation_code
|
|
*/
|
|
public function setOccupationCode($occupation_code): void
|
|
{
|
|
$this->occupation_code = $occupation_code;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getNumberCars()
|
|
{
|
|
return $this->number_cars;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $number_cars
|
|
*/
|
|
public function setNumberCars($number_cars): void
|
|
{
|
|
$this->number_cars = $number_cars;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisPetron()
|
|
{
|
|
return $this->is_petron;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_petron
|
|
*/
|
|
public function setIsPetron($is_petron): void
|
|
{
|
|
$this->is_petron = $is_petron;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisPhoenix()
|
|
{
|
|
return $this->is_phoenix;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_phoenix
|
|
*/
|
|
public function setIsPhoenix($is_phoenix): void
|
|
{
|
|
$this->is_phoenix = $is_phoenix;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisShell()
|
|
{
|
|
return $this->is_shell;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_shell
|
|
*/
|
|
public function setIsShell($is_shell): void
|
|
{
|
|
$this->is_shell = $is_shell;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisFlyingv()
|
|
{
|
|
return $this->is_flyingv;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_flyingv
|
|
*/
|
|
public function setIsFlyingv($is_flyingv): void
|
|
{
|
|
$this->is_flyingv = $is_flyingv;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisCaltex()
|
|
{
|
|
return $this->is_caltex;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_caltex
|
|
*/
|
|
public function setIsCaltex($is_caltex): void
|
|
{
|
|
$this->is_caltex = $is_caltex;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisPtt()
|
|
{
|
|
return $this->is_ptt;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_ptt
|
|
*/
|
|
public function setIsPtt($is_ptt): void
|
|
{
|
|
$this->is_ptt = $is_ptt;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisTotal()
|
|
{
|
|
return $this->is_total;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_total
|
|
*/
|
|
public function setIsTotal($is_total): void
|
|
{
|
|
$this->is_total = $is_total;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisJetti()
|
|
{
|
|
return $this->is_jetti;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_jetti
|
|
*/
|
|
public function setIsJetti($is_jetti): void
|
|
{
|
|
$this->is_jetti = $is_jetti;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisSeaoil()
|
|
{
|
|
return $this->is_seaoil;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_seaoil
|
|
*/
|
|
public function setIsSeaoil($is_seaoil): void
|
|
{
|
|
$this->is_seaoil = $is_seaoil;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisSm()
|
|
{
|
|
return $this->is_sm;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_sm
|
|
*/
|
|
public function setIsSm($is_sm): void
|
|
{
|
|
$this->is_sm = $is_sm;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisRobinson()
|
|
{
|
|
return $this->is_robinson;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_robinson
|
|
*/
|
|
public function setIsRobinson($is_robinson): void
|
|
{
|
|
$this->is_robinson = $is_robinson;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisCebupacific()
|
|
{
|
|
return $this->is_cebupacific;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_cebupacific
|
|
*/
|
|
public function setIsCebupacific($is_cebupacific): void
|
|
{
|
|
$this->is_cebupacific = $is_cebupacific;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisPetronv()
|
|
{
|
|
return $this->is_petronv;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_petronv
|
|
*/
|
|
public function setIsPetronv($is_petronv): void
|
|
{
|
|
$this->is_petronv = $is_petronv;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisBdo()
|
|
{
|
|
return $this->is_bdo;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_bdo
|
|
*/
|
|
public function setIsBdo($is_bdo): void
|
|
{
|
|
$this->is_bdo = $is_bdo;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisMabuhay()
|
|
{
|
|
return $this->is_mabuhay;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_mabuhay
|
|
*/
|
|
public function setIsMabuhay($is_mabuhay): void
|
|
{
|
|
$this->is_mabuhay = $is_mabuhay;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisStarbucks()
|
|
{
|
|
return $this->is_starbucks;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_starbucks
|
|
*/
|
|
public function setIsStarbucks($is_starbucks): void
|
|
{
|
|
$this->is_starbucks = $is_starbucks;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getSnr()
|
|
{
|
|
return $this->snr;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $r
|
|
*/
|
|
public function setR($snr): void
|
|
{
|
|
$this->snr = $snr;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisNational()
|
|
{
|
|
return $this->is_national;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_national
|
|
*/
|
|
public function setIsNational($is_national): void
|
|
{
|
|
$this->is_national = $is_national;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisHappy()
|
|
{
|
|
return $this->is_happy;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_happy
|
|
*/
|
|
public function setIsHappy($is_happy): void
|
|
{
|
|
$this->is_happy = $is_happy;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getisMercury()
|
|
{
|
|
return $this->is_mercury;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $is_mercury
|
|
*/
|
|
public function setIsMercury($is_mercury): void
|
|
{
|
|
$this->is_mercury = $is_mercury;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getFuelType()
|
|
{
|
|
return $this->fuel_type;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $fuel_type
|
|
*/
|
|
public function setFuelType($fuel_type): void
|
|
{
|
|
$this->fuel_type = $fuel_type;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getVehicleOwn()
|
|
{
|
|
return $this->vehicle_own;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $vehicle_own
|
|
*/
|
|
public function setVehicleOwn($vehicle_own): void
|
|
{
|
|
$this->vehicle_own = $vehicle_own;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getGenderCode()
|
|
{
|
|
return $this->gender_code;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $gender_code
|
|
*/
|
|
public function setGenderCode($gender_code): void
|
|
{
|
|
$this->gender_code = $gender_code;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getCivilStatusCode()
|
|
{
|
|
return $this->civil_status_code;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $civil_status_code
|
|
*/
|
|
public function setCivilStatusCode($civil_status_code): void
|
|
{
|
|
$this->civil_status_code = $civil_status_code;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getAddress()
|
|
{
|
|
return $this->address;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $address
|
|
*/
|
|
public function setAddress($address): void
|
|
{
|
|
$this->address = $address;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getPaymentType(): string
|
|
{
|
|
return $this->payment_type;
|
|
}
|
|
|
|
/**
|
|
* @param string $payment_type
|
|
*/
|
|
public function setPaymentType(string $payment_type): void
|
|
{
|
|
$this->payment_type = $payment_type;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getItemCode(): string
|
|
{
|
|
return $this->item_code;
|
|
}
|
|
|
|
/**
|
|
* @param string $item_code
|
|
*/
|
|
public function setItemCode(string $item_code): void
|
|
{
|
|
$this->item_code = $item_code;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getTotalAmount()
|
|
{
|
|
return $this->total_amount;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $total_amount
|
|
*/
|
|
public function setTotalAmount($total_amount): void
|
|
{
|
|
$this->total_amount = $total_amount;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getSiNum()
|
|
{
|
|
return $this->si_num;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $si_num
|
|
*/
|
|
public function setSiNum($si_num): void
|
|
{
|
|
$this->si_num = $si_num;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getRegisterNum(): string
|
|
{
|
|
return $this->register_num;
|
|
}
|
|
|
|
/**
|
|
* @param string $register_num
|
|
*/
|
|
public function setRegisterNum(string $register_num): void
|
|
{
|
|
$this->register_num = $register_num;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getCashier(): string
|
|
{
|
|
return $this->cashier;
|
|
}
|
|
|
|
/**
|
|
* @param string $cashier
|
|
*/
|
|
public function setCashier(string $cashier): void
|
|
{
|
|
$this->cashier = $cashier;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getEntryType(): string
|
|
{
|
|
return $this->entry_type;
|
|
}
|
|
|
|
/**
|
|
* @param string $entry_type
|
|
*/
|
|
public function setEntryType(string $entry_type): void
|
|
{
|
|
$this->entry_type = $entry_type;
|
|
}
|
|
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
function setCardNumber($card_number)
|
|
{
|
|
$this->card_number = $card_number;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
function getCardNumber()
|
|
{
|
|
return $this->card_number;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
function setBirthday($birthday)
|
|
{
|
|
$this->birthday = $birthday;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
function getBirthday()
|
|
{
|
|
return $this->birthday;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getStartDate()
|
|
{
|
|
return $this->start_date;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $start_date
|
|
*/
|
|
|
|
public function setStartDate($start_date): void
|
|
{
|
|
$this->start_date = $start_date;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getEndDate()
|
|
{
|
|
return $this->end_date;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $end_date
|
|
*/
|
|
|
|
public function setEndDate($end_date): void
|
|
{
|
|
$this->end_date = $end_date;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getBranch()
|
|
{
|
|
return $this->branch ?? 'APP';
|
|
}
|
|
|
|
/**
|
|
* @param mixed $branch
|
|
*/
|
|
|
|
public function setBranch($branch): void
|
|
{
|
|
$this->branch = $branch;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getPin()
|
|
{
|
|
return $this->pin;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $pin
|
|
*/
|
|
|
|
public function setPin($pin): void
|
|
{
|
|
$this->pin = $pin;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getFirstName()
|
|
{
|
|
return $this->first_name;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $first_name
|
|
*/
|
|
|
|
public function setFirstName($first_name): void
|
|
{
|
|
$this->first_name = $first_name;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getLastName()
|
|
{
|
|
return $this->last_name;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $last_name
|
|
*/
|
|
|
|
public function setLastName($last_name): void
|
|
{
|
|
$this->last_name = $last_name;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getMobile()
|
|
{
|
|
return $this->mobile;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $mobile
|
|
*/
|
|
|
|
public function setMobile($mobile): void
|
|
{
|
|
$this->mobile = $mobile;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getEmail()
|
|
{
|
|
return $this->email;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $email
|
|
*/
|
|
|
|
public function setEmail($email): void
|
|
{
|
|
$this->email = $email;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getCardTypeCode()
|
|
{
|
|
return $this->card_type_code;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $card_type_code
|
|
*/
|
|
|
|
public function setCardTypeCode($card_type_code): void
|
|
{
|
|
$this->card_type_code = $card_type_code;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getIDNumber()
|
|
{
|
|
return $this->id_number;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $id_number
|
|
*/
|
|
|
|
public function setIDNumber($id_number): void
|
|
{
|
|
$this->id_number = $id_number;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getLcardID()
|
|
{
|
|
return $this->lcard_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $id_number
|
|
*/
|
|
|
|
public function setLcardID($lcard_id): void
|
|
{
|
|
$this->lcard_id = $lcard_id;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getUserID()
|
|
{
|
|
return $this->user_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $id_number
|
|
*/
|
|
|
|
public function setUserID($user_id): void
|
|
{
|
|
$this->user_id = $user_id;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
|
|
public function getCityCode()
|
|
{
|
|
return $this->city_code;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $mobile
|
|
*/
|
|
|
|
public function setCityCode($city_code): void
|
|
{
|
|
$this->city_code = $city_code;
|
|
}
|
|
|
|
public function create_request($params)
|
|
{
|
|
$client = new Client();
|
|
try{
|
|
$response = $client->request('GET', $this->url, [
|
|
'query' => $params,
|
|
'http_errors' => false
|
|
]);
|
|
$this->setResponse($response);
|
|
|
|
// $request = $client->get($this->uri->withQuery(http_build_query($params)));
|
|
// $this->setResponse($request);
|
|
}
|
|
catch (RequestException $e)
|
|
{
|
|
if ($e->hasResponse())
|
|
{
|
|
$this->response = $e->getResponse()->getBody()->getContents();
|
|
}
|
|
}
|
|
}
|
|
|
|
function setResponse($var)
|
|
{
|
|
// for dummy data
|
|
$bypass = false;
|
|
if(
|
|
($this->called_function == "state_trans" && $this->dummy_transactions == true) ||
|
|
($this->called_function == "state_id_entry" && $this->dummy_id_entry == true) ||
|
|
($this->called_function == "state_app_entry" && $this->dummy_app_entry == true)
|
|
)
|
|
{
|
|
$bypass = true;
|
|
}
|
|
|
|
$return = [];
|
|
if($bypass == true || $var->getStatusCode() == '200')
|
|
{
|
|
if($bypass == true)
|
|
$result = $this->dummy_data;
|
|
else
|
|
$result = json_decode($var->getBody()->getContents());
|
|
|
|
$return['data'] = null;
|
|
if (isset($result->loyalty->status->sql))
|
|
{
|
|
if ($result->loyalty->status->sql == 'success' )
|
|
{
|
|
if ( isset($result->loyalty->data) )
|
|
{
|
|
// dd($result->loyalty->data);
|
|
if ( count($result->loyalty->data) == 1 )
|
|
{
|
|
$return['data'] = $result->loyalty->data[0];
|
|
|
|
}
|
|
else
|
|
{
|
|
$return['data'] = isset($result->loyalty->data) ? $result->loyalty->data : null;
|
|
}
|
|
|
|
$return['message'] = $result->loyalty->status->sql == 'success' ? 'Success' : $result->loyalty->status->result ;
|
|
|
|
}
|
|
else
|
|
{
|
|
// $return['message'] = $result->loyalty->status->sql == 'success' ? $result->loyalty->status->success : $result->loyalty->status->result ;
|
|
$return['message'] = $result->loyalty->status->sql == 'success' ? $result->loyalty->status->sql : $result->loyalty->status->result ;
|
|
|
|
|
|
// include other arrays in $result->loyalty->status
|
|
$other = collect($result->loyalty->status);
|
|
if(count($other) > 0)
|
|
{
|
|
foreach ($other as $k => $v) {
|
|
if($k != 'sql')
|
|
$return[$k] = $v;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$return['message'] = isset($result) ? $result->loyalty->status->result : null;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$return['message'] = "Cyware Internal Server Error";
|
|
}
|
|
|
|
$return['status_code'] = $bypass == true ? 200 : $var->getStatusCode();
|
|
$this->response = $return;
|
|
}
|
|
|
|
function setBadResponse($message)
|
|
{
|
|
$return['data'] = null;
|
|
$return['message'] = $message;
|
|
$return['status_code'] = "500";
|
|
$this->response = $return;
|
|
}
|
|
|
|
function getResponse()
|
|
{
|
|
return $this->response ?? null;
|
|
}
|
|
|
|
function validate_card_number($card_number){
|
|
if(strlen($card_number) == 0 ){
|
|
return false;
|
|
}
|
|
|
|
if(strlen($card_number) > 16 ){
|
|
return false;
|
|
}
|
|
if(!is_numeric($card_number) ){
|
|
return false;
|
|
}
|
|
return $card_number;
|
|
}
|
|
|
|
private function vendor_key(){
|
|
return md5('UPPI'.$this->card_number.$this->random_key.$this->date);
|
|
}
|
|
|
|
private function vendor_key_mobile(){
|
|
return md5('UPPI'.$this->mobile.$this->random_key.$this->date);
|
|
}
|
|
|
|
private function vendor_key_id_number(){
|
|
return md5('UPPI'.$this->id_number.$this->random_key.$this->date);
|
|
}
|
|
|
|
private function vendor_key_sign_up(){
|
|
return md5('UPPI'.$this->user_id.$this->random_key.$this->date);
|
|
}
|
|
|
|
public function state_validate()
|
|
{
|
|
if (!$this->validate_card_number($this->getCardNumber())){
|
|
$this->setBadResponse("Card Number is not valid");
|
|
return false;
|
|
}
|
|
|
|
// if (!$this->getBirthday()){
|
|
// $this->setBadResponse("Birthday is not valid");
|
|
// return false;
|
|
// }
|
|
|
|
$params = array(
|
|
'birthdate' => $this->getBirthday(),
|
|
'yyyymmdd' => $this->date,
|
|
'card_number'=> $this->getCardNumber(),
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key(),
|
|
'state' => 'state_validate'
|
|
);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
|
|
public function state_mobilevalidate()
|
|
{
|
|
$params = array(
|
|
'yyyymmdd' => $this->date,
|
|
'mobile_number' => $this->getMobile(),
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key_mobile(),
|
|
'state' => 'state_mobile'
|
|
);
|
|
$this->create_request($params);
|
|
}
|
|
|
|
public function state_entry()
|
|
{
|
|
if (!$this->validate_card_number($this->getCardNumber())){
|
|
$this->setBadResponse("Card Number is not valid");
|
|
return false;
|
|
}
|
|
|
|
$params = array(
|
|
'first_name' => $this->getFirstName(),
|
|
'last_name' => $this->getLastName(),
|
|
'birthdate' => $this->getBirthday(),
|
|
'mobile' => $this->getMobile(),
|
|
'email' => $this->getEmail(),
|
|
'user' => $this->user,
|
|
'branch' => $this->getBranch(),
|
|
'card_number' => $this->getCardNumber(),
|
|
'pin' => $this->getPin(),
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key(),
|
|
'state' => 'state_entry'
|
|
);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
|
|
public function state_trans()
|
|
{
|
|
$this->called_function = "state_trans";
|
|
if(!$this->dummy_transactions)
|
|
{
|
|
if (!$this->validate_card_number($this->getCardNumber())){
|
|
$this->setBadResponse("Card Number is not valid");
|
|
return false;
|
|
}
|
|
|
|
if ($this->getStartDate() > $this->getEndDate() ){
|
|
$this->setBadResponse("Start Date is Greater than End Date");
|
|
return false;
|
|
}
|
|
|
|
$params = array(
|
|
'card_number' => $this->getCardNumber(),
|
|
'user' => $this->user,
|
|
'branch' => $this->getBranch(),
|
|
'start_date' => $this->getStartDate(),
|
|
'end_date' => $this->getEndDate(),
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key(),
|
|
'state' => 'state_trans'
|
|
);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
else
|
|
{
|
|
$this->dummy_data = $this->_get_state_trans_dummy($this->dummy_data_success);
|
|
$this->setResponse([]);
|
|
}
|
|
}
|
|
|
|
public function state_promo()
|
|
{
|
|
if (!$this->validate_card_number($this->getCardNumber())){
|
|
$this->setBadResponse("Card Number is not valid");
|
|
return false;
|
|
}
|
|
|
|
$params = array(
|
|
'card_number' => $this->getCardNumber(),
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key(),
|
|
'state' => 'state_promo'
|
|
);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
|
|
public function state_retrieve()
|
|
{
|
|
if (!$this->validate_card_number($this->getCardNumber())){
|
|
$this->setBadResponse("Card Number is not valid");
|
|
return false;
|
|
}
|
|
|
|
$params = array(
|
|
'card_number' => $this->getCardNumber(),
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key(),
|
|
'state' => 'state_retrieve'
|
|
);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
|
|
public function state_update()
|
|
{
|
|
if (!$this->validate_card_number($this->getCardNumber())){
|
|
$this->setBadResponse("Card Number is not valid");
|
|
return false;
|
|
}
|
|
|
|
if (!$this->validate_civil_status_code($this->getCivilStatusCode())){
|
|
$this->setBadResponse("Civil Status Code is not valid");
|
|
return false;
|
|
}
|
|
|
|
if (!$this->validate_gender_code($this->getGenderCode())){
|
|
$this->setBadResponse("Gender Code is not valid");
|
|
return false;
|
|
}
|
|
|
|
$params = array(
|
|
'card_number' => $this->getCardNumber(),
|
|
'user' => $this->user,
|
|
'branch' => $this->branch,
|
|
|
|
'first_name' => $this->getFirstName(),
|
|
'last_name' => $this->getLastName(),
|
|
'address' => $this->getAddress() . ($this->getCityCode() != '' ? $this->getCityCode() : ''),
|
|
'mobile' => $this->getMobile(),
|
|
'email' => $this->getEmail(),
|
|
|
|
'vehicle_own' => $this->getVehicleOwn(),
|
|
'fuel_type' => $this->getFuelType(),
|
|
|
|
'civil_status_code' => $this->getCivilStatusCode(),
|
|
'gender_code' => $this->getGenderCode(),
|
|
'occupation_code' => $this->getOccupationCode(),
|
|
'number_cars' => $this->getNumberCars(),
|
|
'is_petron' => $this->getisPetron(),
|
|
'is_phoenix' => $this->getisPhoenix(),
|
|
'is_shell' => $this->getisShell(),
|
|
'is_flyingv' => $this->getisFlyingv(),
|
|
'is_caltex' => $this->getisCaltex(),
|
|
'is_ptt' => $this->getisPtt(),
|
|
'is_total' => $this->getisTotal(),
|
|
'is_jetti' => $this->getisJetti(),
|
|
'is_seaoil' => $this->getisSeaoil(),
|
|
'is_sm' => $this->getisSm(),
|
|
'is_robinson' => $this->getisRobinson(),
|
|
'is_cebupacific' => $this->getisCebupacific(),
|
|
'is_petronv' => $this->getisPetronv(),
|
|
'is_bdo' => $this->getisBdo(),
|
|
'is_mabuhay' => $this->getisMabuhay(),
|
|
'is_starbucks' => $this->getisStarbucks(),
|
|
'is_s&r' => $this->getSnr(),
|
|
'is_national' => $this->getisNational(),
|
|
'is_happy' => $this->getisHappy(),
|
|
'is_mercury' => $this->getisMercury(),
|
|
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key(),
|
|
'state' => 'state_update'
|
|
);
|
|
|
|
|
|
$this->create_request($params);
|
|
}
|
|
|
|
|
|
public function state_points()
|
|
{
|
|
if (!$this->validate_card_number($this->getCardNumber())){
|
|
$this->setBadResponse("Card Number is not valid");
|
|
return false;
|
|
}
|
|
|
|
$params = array(
|
|
'card_number' => $this->getCardNumber(),
|
|
'cashier' => $this->getCashier(),
|
|
'branch' => $this->getBranch(),
|
|
'entry_type' => $this->getEntryType(),
|
|
'register_num' => $this->getRegisterNum(),
|
|
'si_num' => $this->getSiNum(),
|
|
'total_amount' => $this->getTotalAmount(),
|
|
'payment_type' => $this->getPaymentType(),
|
|
'item_code' => $this->getItemCode(),
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key(),
|
|
'state' => 'state_points'
|
|
);
|
|
|
|
// $client = new Client();
|
|
// $request = $client->get($this->uri->withQuery(http_build_query($params)));
|
|
// $result = json_decode($request->getBody()->getContents());
|
|
//
|
|
// dd($result);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
|
|
public function state_redeemed()
|
|
{
|
|
if (!$this->validate_card_number($this->getCardNumber())){
|
|
$this->setBadResponse("Card Number is not valid");
|
|
return false;
|
|
}
|
|
|
|
if ($this->getStartDate() > $this->getEndDate() ){
|
|
$this->setBadResponse("Start Date is Greater than End Date");
|
|
return false;
|
|
}
|
|
|
|
$params = array(
|
|
'card_number' => $this->getCardNumber(),
|
|
'start_date' => $this->getStartDate(),
|
|
'end_date' => $this->getEndDate(),
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key(),
|
|
'state' => 'state_redeemed'
|
|
);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
|
|
public function state_id_entry()
|
|
{
|
|
$this->called_function = "state_id_entry";
|
|
if(!$this->dummy_id_entry)
|
|
{
|
|
$params = array(
|
|
'card_type_code'=> $this->getCardTypeCode(),
|
|
'id_number' => $this->getIDNumber(),
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key_id_number(),
|
|
'state' => 'state_id_entry'
|
|
);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
else
|
|
{
|
|
$this->dummy_data = $this->_get_state_id_entry_dummy($this->dummy_data_success);
|
|
$this->setResponse([]);
|
|
}
|
|
}
|
|
|
|
public function state_app_entry()
|
|
{
|
|
$this->called_function = "state_app_entry";
|
|
if(!$this->dummy_app_entry)
|
|
{
|
|
$params = array(
|
|
'user' => $this->user,
|
|
'branch' => $this->getBranch(),
|
|
'card_type_code' => $this->getCardTypeCode(),
|
|
'user_id' => $this->getUserID(), // for confirmation
|
|
'first_name' => $this->getFirstName(),
|
|
'last_name' => $this->getLastName(),
|
|
'birthdate' => $this->getBirthday(),
|
|
'mobile' => $this->getMobile(),
|
|
'email' => $this->getEmail(),
|
|
'id_number' => $this->getIDNumber(),
|
|
'yyyymmdd' => $this->date,
|
|
'random_key' => $this->random_key,
|
|
'vendor_key' => $this->vendor_key_sign_up(),
|
|
'state' => 'state_app_entry'
|
|
);
|
|
|
|
$this->create_request($params);
|
|
}
|
|
else
|
|
{
|
|
$this->dummy_data = $this->_get_state_app_entry_dummy($this->dummy_data_success);
|
|
$this->setResponse([]);
|
|
}
|
|
}
|
|
|
|
private function validate_civil_status_code($getCivilStatusCode)
|
|
{
|
|
$array = array(
|
|
"S" => "SINGLE",
|
|
"M" => "MARRIED",
|
|
"0" => "NO DATA ENTERED",
|
|
"W" => "WIDOW",
|
|
"SE" => "SEPARATED",
|
|
);
|
|
return $array[$getCivilStatusCode] ? true : false;
|
|
}
|
|
|
|
private function validate_gender_code($gender_code)
|
|
{
|
|
$array = array(
|
|
"0"=>"NO DATA ENTERED",
|
|
"M"=>"MALE",
|
|
"F"=>"FEMALE",
|
|
);
|
|
return $array[$gender_code] ? true : false;
|
|
}
|
|
|
|
//todo please remove validation on library.
|
|
|
|
|
|
/*
|
|
|=======================================================================================
|
|
| DUMMY DATA
|
|
|=======================================================================================
|
|
*/
|
|
|
|
private function _get_state_trans_dummy($success = true)
|
|
{
|
|
if($success)
|
|
{
|
|
$data = '{
|
|
"loyalty": {
|
|
"status": {
|
|
"rows": "0",
|
|
"sql": "success",
|
|
"result": "ok"
|
|
},
|
|
"data": [
|
|
{
|
|
"ref_num": "APP-190329000001.00",
|
|
"store_id": "APP",
|
|
"store_name": "APP",
|
|
"date": "2019-03-03",
|
|
"time": "0624",
|
|
"trans_num": "'.$this->getLcardID().'0329000001.00",
|
|
"reward_code": "SHARED",
|
|
"reward_desc": "SHARED",
|
|
"total_amount": "1.00",
|
|
"total_points": "1.00",
|
|
"items": [
|
|
{
|
|
"item_code": "G00000001012",
|
|
"item_desc": "Beef Bowl",
|
|
"qty": "1.00",
|
|
"price": "1.00"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"ref_num": "1032-310838",
|
|
"store_id": "1032",
|
|
"store_name": "UNIOIL MINDANAO AVENUE 1",
|
|
"date": "2019-03-02",
|
|
"time": "1029",
|
|
"entry_type_code": "BP2",
|
|
"entry_type_desc": "BONUS POINTS LEVEL 2",
|
|
"trans_num": "'.$this->getLcardID().'310838",
|
|
"total_amount": "1000000",
|
|
"total_points": "100.00",
|
|
"items": [
|
|
{
|
|
"item_code": "SAMPLE",
|
|
"item_desc": "sample",
|
|
"qty": "1",
|
|
"price": "1000000"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"ref_num": "1032-255345",
|
|
"store_id": "1032",
|
|
"store_name": "UNIOIL MINDANAO AVENUE 1",
|
|
"date": "2019-03-04",
|
|
"time": "1431",
|
|
"entry_type_code": "1",
|
|
"entry_type_desc": "POS",
|
|
"trans_num": "'.$this->getLcardID().'255345",
|
|
"total_amount": "2600.01",
|
|
"total_points": "13.00",
|
|
"items": [
|
|
{
|
|
"item_code": "ID944070",
|
|
"item_desc": "ID SN/CF 5W-40 FS (24X1)",
|
|
"qty": "1.00",
|
|
"price": "650.00"
|
|
},
|
|
{
|
|
"item_code": "ID944070",
|
|
"item_desc": "ID SN/CF 5W-40 FS (24X1)",
|
|
"qty": "1.00",
|
|
"price": "650.00"
|
|
},
|
|
{
|
|
"item_code": "ID944070",
|
|
"item_desc": "ID SN/CF 5W-40 FS (24X1)",
|
|
"qty": "1.00",
|
|
"price": "650.00"
|
|
},
|
|
{
|
|
"item_code": "ID944070",
|
|
"item_desc": "ID SN/CF 5W-40 FS (24X1)",
|
|
"qty": "1.00",
|
|
"price": "650.00"
|
|
},
|
|
{
|
|
"item_code": "FAD 17LOTUSEVORAS",
|
|
"item_desc": "(FREE) LOTUS EVORA S",
|
|
"qty": "1.00",
|
|
"price": "0.01"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}';
|
|
}
|
|
else
|
|
{
|
|
$data = '{
|
|
"loyalty": {
|
|
"status": {
|
|
"rows": "0",
|
|
"No Records Found": "No Records Found",
|
|
"result": "No Records Found"
|
|
}
|
|
}
|
|
}';
|
|
}
|
|
|
|
return json_decode($data);
|
|
}
|
|
|
|
private function _get_state_id_entry_dummy($success = true)
|
|
{
|
|
if($success)
|
|
{
|
|
$data = '{
|
|
"loyalty": {
|
|
"status": {
|
|
"rows": "1",
|
|
"sql": "success",
|
|
"result ": "Valid ID Number"
|
|
}
|
|
}
|
|
}';
|
|
}
|
|
else
|
|
{
|
|
$data = '{
|
|
"loyalty": {
|
|
"status": {
|
|
"rows": "0",
|
|
" card_type_code": "card_type_code ",
|
|
"result": "Invalid Card Type "
|
|
}
|
|
}
|
|
}';
|
|
}
|
|
|
|
return json_decode($data);
|
|
}
|
|
|
|
private function _get_state_app_entry_dummy($success = true)
|
|
{
|
|
if($success)
|
|
{
|
|
$data = '{
|
|
"loyalty": {
|
|
"status": {
|
|
"rows": "1",
|
|
"sql": "success",
|
|
"card_number": "11000000000'.StringHelper::random_num(5).'",
|
|
"pin": "'.StringHelper::random_num(8).'"
|
|
}
|
|
}
|
|
}';
|
|
}
|
|
else
|
|
{
|
|
$data = '{
|
|
"loyalty": {
|
|
"status": {
|
|
"rows": "0",
|
|
" birthdate": " birthdate ",
|
|
"result": "Invalid birthdate"
|
|
}
|
|
}
|
|
}';
|
|
}
|
|
|
|
return json_decode($data);
|
|
}
|
|
|
|
}
|