diff --git a/app/Controllers/PaymentController.php b/app/Controllers/PaymentController.php index 862e194..1dbedd7 100644 --- a/app/Controllers/PaymentController.php +++ b/app/Controllers/PaymentController.php @@ -15,6 +15,7 @@ use App\Models\Member_credits_model; use App\Models\Packages_and_pricing_model; use App\Models\Cart_model; use App\Models\Credits_usage_tracking_model; +use App\Models\Rule_model; class PaymentController extends BaseController { @@ -31,40 +32,45 @@ class PaymentController extends BaseController $this->cartModel = new Cart_model(); $this->CreditsUsageTrackingModel = new Credits_usage_tracking_model(); $this->TransactionModel = new transaction_model(); - + $this->RuleModel = new Rule_model(); } public function index() { - - if($this->request->getmethod() == 'get') - { - echo 'EGF'.rand(10,100).rand(10,100).rand(10,100); - } else if($this->request->getmethod() == 'post') { - - $count = count($this->request->getVar('pack_id')); - + + $CartData = $this->cartModel->where('member_id',session()->get('logged_user'))->findAll(); + $count = count($CartData); + if($count) + { + $credit_pack_expiry_duration = $this->RuleModel->select('value')->where('rule_key', 1 )->get()->getRow()->value; + $gst = $this->RuleModel->select('value')->where('rule_key', 3 )->get()->getRow()->value; + $pst = $this->RuleModel->select('value')->where('rule_key', 4 )->get()->getRow()->value; + $today = date("Y-m-d"); + $days = "+".$credit_pack_expiry_duration." days"; $amount = 0; + $orderId = 'EGF'.rand(10,100).rand(10,100).rand(10,100); + $packageArray = []; for($i=0;$i<$count;$i++) { - - $packageData = $this->PackagesModel->where('id',$this->request->getVar('pack_id')[$i])->find(); - - $today = date("Y-m-d"); - $cost = $packageData[0]['cost'] * $this->request->getVar('count')[$i]; - + $packageData = $this->PackagesModel->where('id',$CartData[$i]['pack_id'])->find(); + $packageData[0]['count'] = $CartData[$i]['count']; + array_push($packageArray , $packageData[0]); + $cost = $packageData[0]['cost'] * $CartData[$i]['count']; + // $this->RuleModel->where('rule_key', 1 )->find()->value; $credits_data['member_id'] = session()->get('logged_user'); $credits_data['package_name'] = $packageData[0]['package_name']; $credits_data['package_type'] = $packageData[0]['package_type']; $credits_data['credit_points'] = $packageData[0]['credit']; $credits_data['running_balance'] = $packageData[0]['credit']; $credits_data['expired_points'] = 0; - $credits_data['expiring_date'] = date('Y-m-d', strtotime('+1 month', strtotime($today))); + $credits_data['expiring_date'] = date('Y-m-d', strtotime($days, strtotime($today))); $credits_data['cost'] = $packageData[0]['cost']; $credits_data['is_active'] = 0; + $credits_data['order_id'] = $orderId; + $credits_data['cost_with_tax'] = round( ( $packageData[0]['cost'] + (($packageData[0]['cost'] * ($gst + $pst) ) / 100) ) , 2 ); - $single_pack_no_of_count = $this->request->getVar('count')[$i]; + $single_pack_no_of_count = $CartData[$i]['count']; for($j=0;$j<$single_pack_no_of_count;$j++) { $insert_data = $this->creditsModel->save($credits_data); @@ -72,13 +78,25 @@ class PaymentController extends BaseController $amount = $amount + $cost; } + $data['amount'] = $amount; - - echo view('payment_form',$data); - } - - + $data['order_id'] = $orderId; + $data['gst'] = $gst; + $data['pst'] = $pst; + $data['packageArray'] = $packageArray; + $data['userdata']=$this->dModel->getLoggedInUserData(session()->get('logged_user')); + // echo '
'; + // print_r($data); + // echo ''; + // die(); + echo view('payment_form',$data); + } else { echo 'cart empty .. !'; } } + + + + + public function payment_form() { return view('payment_form'); @@ -99,11 +117,13 @@ class PaymentController extends BaseController $json = file_get_contents('php://input'); $data = json_decode($json); - + $gst = $this->RuleModel->select('value')->where('rule_key', 3 )->get()->getRow()->value; + $pst = $this->RuleModel->select('value')->where('rule_key', 4 )->get()->getRow()->value; $token = $data->token; $idempotencyKey = $data->idempotencyKey; $amount = $data->amount; - + $order_id = $data->order_id; + $Final_amount = round( ( $amount + (($amount * ($gst + $pst) ) / 100) ) , 2 ); $square_client = new SquareClient([ 'accessToken' => getenv('SQUARE_ACCESS_TOKEN'), @@ -120,7 +140,7 @@ class PaymentController extends BaseController $money = new Money(); // Monetary amounts are specified in the smallest unit of the applicable currency. // This amount is in cents. It's also hard-coded for $1.00, which isn't very useful. - $money->setAmount($amount); + $money->setAmount($Final_amount); // Set currency to the currency for the location $money->setCurrency($location_info->getCurrency()); @@ -140,11 +160,12 @@ class PaymentController extends BaseController if ($response->isSuccess()) { echo json_encode($response->getResult()); - - $TrancactionData['member_id'] = 0; + $TrancactionId = $response->getResult()->payment->id; + $TrancactionData['member_id'] = session()->get('logged_user'); $TrancactionData['transaction'] = json_encode($response->getResult()); $this->TransactionModel->save($TrancactionData); - + $this->creditsModel->where('order_id', $order_id )->where('member_id', session()->get('logged_user')) + ->set(array( 'is_active' => 1 , 'transaction_id' => $TrancactionId ))->update(); } else { echo json_encode(array('errors' => $response->getErrors())); diff --git a/app/Models/Member_credits_model.php b/app/Models/Member_credits_model.php index e16be44..28ec76b 100644 --- a/app/Models/Member_credits_model.php +++ b/app/Models/Member_credits_model.php @@ -7,7 +7,7 @@ class Member_credits_model extends Model protected $table = 'member_credits'; protected $primaryKey = 'id'; - protected $allowedFields = ['member_id','package_name','package_type','credit_points','running_balance','used_points', 'expired_points','expiring_date', 'cost' ,'is_active']; + protected $allowedFields = ['member_id','package_name','package_type','credit_points','running_balance','used_points', 'expired_points','expiring_date', 'cost' ,'is_active', 'order_id','transaction_id' ,'cost_with_tax']; } \ No newline at end of file diff --git a/app/Views/payment_form.php b/app/Views/payment_form.php index 85d90df..cf5607e 100644 --- a/app/Views/payment_form.php +++ b/app/Views/payment_form.php @@ -62,6 +62,7 @@ $web_payment_sdk_url = $_ENV["ENVIRONMENT"] === Environment::PRODUCTION ? "https + diff --git a/index.php b/index.php index 3089b50..7f95b56 100644 --- a/index.php +++ b/index.php @@ -65,3 +65,4 @@ $app->setContext($context); */ $app->run(); +