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 @@
Items (2):
$1550.00
Items (= $item_count; ?>):
$= $amount; ?>
PST (7%):
$108.50
PST (= $pst; ?>%):
$= round($amount * $pst / 100); ?>
GST (5%):
$77.50
GST (= $gst; ?>%):
$= round($amount * $gst / 100); ?>
+ The order confirmation has been sent to your registered mail id
+