From fb3a6f36bbc31e07af24b08f6fe9d01e52e782b1 Mon Sep 17 00:00:00 2001 From: sriramv Date: Sat, 3 Jun 2023 16:11:57 +0530 Subject: [PATCH] pack_purchase_flow:GWM --- app/Config/Routes.php | 5 +- app/Controllers/Member_controller.php | 1 + app/Controllers/PaymentController.php | 128 ++++++++++++++++++------ app/Models/Cart_model.php | 2 +- app/Models/Member_model.php | 2 +- app/Models/transaction_model.php | 2 +- app/Views/cart.php | 2 +- app/Views/checkout.php | 107 ++++++++++++++------ app/Views/member_layout/header.php | 4 +- app/Views/payment.php | 138 ++++++++++++++++++++++++++ 10 files changed, 324 insertions(+), 67 deletions(-) create mode 100644 app/Views/payment.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 936c3fb..103b12f 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -50,12 +50,13 @@ $routes->match(['get','post'],'/member_deactivate/(:any)','Member_controller::me $routes->match(['get','post'],'/member_activate/(:any)','Member_controller::member_activate/$1'); $routes->match(['get'],'/scheduler','Member_controller::scheduler'); -$routes->match(['get','post'],'/payment', 'PaymentController::index'); +$routes->get('/payment', 'PaymentController::index'); +$routes->post('/payment/(:any)', 'PaymentController::index/$1'); $routes->get('payment_form', 'PaymentController::payment_form'); $routes->post('processPayment', 'PaymentController::processPayment'); - +$routes->match(['get','post'],'/test/(:any)','Test_controller::index/$1'); diff --git a/app/Controllers/Member_controller.php b/app/Controllers/Member_controller.php index 000b43d..06a2c41 100644 --- a/app/Controllers/Member_controller.php +++ b/app/Controllers/Member_controller.php @@ -53,6 +53,7 @@ class Member_controller extends BaseController { $token = $this->session->get("token"); $this->session->set('logged_user',$memberdata['id']); + $this->session->set('logged_user_name',$memberdata['name']); if ($token) { $tokendata = $this->Cart_token_model->where('md5(token)', $token )->findAll(); diff --git a/app/Controllers/PaymentController.php b/app/Controllers/PaymentController.php index 1a650e1..8f9ed0f 100644 --- a/app/Controllers/PaymentController.php +++ b/app/Controllers/PaymentController.php @@ -16,7 +16,7 @@ use App\Models\Packages_and_pricing_model; use App\Models\Cart_model; use App\Models\Credits_usage_tracking_model; use App\Models\Rule_model; - +use App\Models\Cart_token_model; class PaymentController extends BaseController { @@ -33,31 +33,77 @@ class PaymentController extends BaseController $this->CreditsUsageTrackingModel = new Credits_usage_tracking_model(); $this->TransactionModel = new transaction_model(); $this->RuleModel = new Rule_model(); + $this->Cart_token_model = new Cart_token_model(); } - public function index() + public function index($token = null) { - + if($this->request->getmethod() == 'post') + { + $count = $this->request->getVar('count'); + foreach ($count as $key => $value) + { + $this->Cart_token_model->where('id', $this->request->getVar('cart_token_id')[$key] )->set(array( 'count' => $value ))->update(); + } + if(!session()->has('logged_user')) + { + $this->session->set('token',$token); + return redirect()->to(base_url()); + } + else{ + + $this->payment_form(); + } + + } else { + + return $this->payment_form(); + } + } + + + + + + public function payment_form() + { + if(!session()->has('logged_user')) + { + return redirect()->to(base_url()); + } $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); + $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; + $item_count = 0; + + + if($CartData[0]['order_id'] == null) + { + $orderId = 'EGF'.rand(10,100).rand(10,100).rand(10,100); + }else{ + $orderId = $CartData[0]['order_id']; + } + + $packageArray = []; for($i=0;$i<$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']; @@ -71,37 +117,42 @@ class PaymentController extends BaseController $credits_data['cost_with_tax'] = round( ( $packageData[0]['cost'] + (($packageData[0]['cost'] * ($gst + $pst) ) / 100) ) , 2 ); $single_pack_no_of_count = $CartData[$i]['count']; - for($j=0;$j<$single_pack_no_of_count;$j++) + if($CartData[0]['order_id'] == null) { + for($j=0;$j<$single_pack_no_of_count;$j++) + { $insert_data = $this->creditsModel->save($credits_data); + } + + $this->cartModel->where('id', $CartData[$i]['id'] ) + ->where('member_id', session()->get('logged_user')) + ->set(array( 'order_id' => $orderId ))->update(); } + $amount = $amount + $cost; + $item_count = $item_count + $single_pack_no_of_count; } $data['amount'] = $amount; + $data['item_count'] = $item_count; $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); + // echo '
';
+            //      print_r($data);
+            //      echo '
'; + // die(); + $data['userdata']=$this->dModel->getLoggedInMemberData(session()->get('logged_user')); + + echo view('checkout',$data); + // echo view('payment_form',$data); } else { echo 'cart empty .. !'; } } - + - - - public function payment_form() - { - return view('payment_form'); - } - public function processPayment() { try { @@ -158,15 +209,28 @@ class PaymentController extends BaseController $response = $payments_api->createPayment($create_payment_request); if ($response->isSuccess()) { - echo json_encode($response->getResult()); + + $data = json_encode($response->getResult()); + $result = json_decode( $data ,true); + + + echo $result['payment']['id']; - $TrancactionId = $response->getResult()->payment->id; - $payment_order_id = $response->getResult()->payment->order_id; + $TrancactionId = $result['payment']['id']; + $payment_order_id = $result['payment']['order_id']; $TrancactionData['member_id'] = session()->get('logged_user'); + $TrancactionData['transaction_id'] = $TrancactionId; $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(); + $insert = $this->TransactionModel->save($TrancactionData); + if( $insert) + { + $this->creditsModel->where('order_id', $order_id )->where('member_id', session()->get('logged_user')) + ->set(array( 'is_active' => 1 , 'transaction_id' => $result['payment']['id'] ))->update(); + $this->cartModel->where('order_id', $order_id )->delete(); + } + + echo json_encode($response->getResult()); + } else { echo json_encode(array('errors' => $response->getErrors())); diff --git a/app/Models/Cart_model.php b/app/Models/Cart_model.php index ac09f8d..723ccca 100644 --- a/app/Models/Cart_model.php +++ b/app/Models/Cart_model.php @@ -7,7 +7,7 @@ class Cart_model extends Model protected $table = 'cart'; protected $primaryKey = 'id'; - protected $allowedFields = ['member_id','pack_id','count']; + protected $allowedFields = ['member_id','pack_id','count','order_id']; } \ No newline at end of file diff --git a/app/Models/Member_model.php b/app/Models/Member_model.php index c940801..563bbe4 100644 --- a/app/Models/Member_model.php +++ b/app/Models/Member_model.php @@ -32,7 +32,7 @@ class Member_model extends Model { $builder = $this->db->table('member'); - $builder -> select("id,mobile,email,password,is_email_verified"); + $builder -> select("id,mobile,email,password,is_email_verified,name"); $builder -> where('email',$email); $result = $builder->get(); if(count($result->getResultArray()) ==1) diff --git a/app/Models/transaction_model.php b/app/Models/transaction_model.php index 0bfb9b8..41d5e38 100644 --- a/app/Models/transaction_model.php +++ b/app/Models/transaction_model.php @@ -7,7 +7,7 @@ class transaction_model extends Model protected $table = 'transactions'; protected $primaryKey = 'id'; - protected $allowedFields = ['member_id','transaction']; + protected $allowedFields = ['member_id','transaction_id','transaction']; } \ No newline at end of file diff --git a/app/Views/cart.php b/app/Views/cart.php index 9109546..c6b3ddc 100644 --- a/app/Views/cart.php +++ b/app/Views/cart.php @@ -25,7 +25,7 @@

Cart

-
+ $value) { ?> diff --git a/app/Views/checkout.php b/app/Views/checkout.php index 856b58a..01c4e0a 100644 --- a/app/Views/checkout.php +++ b/app/Views/checkout.php @@ -1,6 +1,50 @@ + + + + + + + + Checkout - Golf Evolution @@ -44,10 +88,10 @@
- Tom Holland + name; ?>
-
2544 Enterprise Way kelowna,V1X7X5
+
address; ?>
Edit @@ -101,65 +145,72 @@
- +
+

Payment Method

+ + +
+ +
+
- Google Pay
-
+
+
- +
+

Order Summary

-
+
+
-
Evo Pack 1
-
$550.00
-
-
-
Evo Pack2
-
$1000.00
+
+
$
+
-

Items (2):

-

$1550.00

+

Items ():

+

$

-

PST (7%):

-

$108.50

+

PST (%):

+

$

-

GST (5%):

-

$77.50

+

GST (%):

+

$

Order Total:
-
$1736.00
+
$

By placing your order, you agree to our company privacy policy and condition of use.

- + +
@@ -172,13 +223,13 @@
-
-
- -
-
+ - + + + + diff --git a/app/Views/member_layout/header.php b/app/Views/member_layout/header.php index b9dcfcd..36de6e2 100644 --- a/app/Views/member_layout/header.php +++ b/app/Views/member_layout/header.php @@ -9,7 +9,8 @@
  • Pre-Sales Offer
  • About Us
  • -
  • /assets/member_images/button-logo.png" width="20" height="20">MEMBER ACCESS
  • +
  • /assets/member_images/button-logo.png" width="20" height="20"> + has('logged_user')) { echo session()->get('logged_user_name'); }else{ ?>MEMBER ACCESS
  • @@ -23,6 +24,7 @@
    diff --git a/app/Views/payment.php b/app/Views/payment.php new file mode 100644 index 0000000..0dca9c6 --- /dev/null +++ b/app/Views/payment.php @@ -0,0 +1,138 @@ + + + + Payment Successful - Golf Evolution + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +

    Payment Successful!

    +

    The order confirmation has been sent to your registered mail id

    +
    +
    +
    + +
    +
    +
    +
    Transactions ID
    +
    V2SwTL5GN1Ha61R7OHSCiBOv1YUZY
    +
    +
    +
    Transactions Date
    +
    Friday, September 8, 2023
    +
    +
    +
    Payment Method
    +
    Visa card ending with 7413
    +
    +
    +
    + +
    +
    +
    Your Order
    +
    +
    +
    +
    + +
    +
    +
    Evo Pack 1
    +
    24 Credits
    +
    20+4 Credits Extra*
    +
    1 Credit at $22.90
    +
    +
    +
    +
    +
    +
    $1100.00
    +
    +
    + +
    + +
    +
    +
    Subtotal
    +
    +
    +
    $1100.00
    +
    +
    + +
    +
    +
    Taxes
    +
    +
    +
    +
    PST(7%)
    +
    +
    +
    $77.00
    +
    +
    +
    +
    +
    +
    GST(5%)
    +
    +
    +
    $55.00
    +
    +
    + +
    +
    +
    Total
    +
    +
    +
    $1232.00
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + +