Exemplo n.º 1
0
 public function checkoutAction()
 {
     $auth = new FrontEndAuth();
     if (!$auth->hasIdentity(3)) {
         return $this->redirect()->toUrl('/login');
     }
     $id = $this->params()->fromRoute('id');
     if ($id == '') {
         $this->redirect()->toRoute('membership');
     }
     $subscriptionsession = new Container('subscriptionsession');
     $session = new Container('frontend');
     $api = new Api();
     $api_url = $this->getServiceLocator()->get('Config')['api_url']['value'];
     $model_practitioner = new Practitioners();
     $common = new Common();
     $selected_subscription = $model_practitioner->getSubscription($api_url, $id);
     $ongoing_subscription = $common->getSubscriptiondetails($api_url);
     //echo "<pre>";print_r($ongoing_subscription);die;
     /* check if there is a saved card : start */
     $savedCard_details = $common->getUserCardDetails($api_url, array('user_id' => $session->userid));
     /* check if there is a saved card : end */
     $subscription_id = $this->getSubscriptionid($api_url);
     if ($id == '1') {
         if ($common->addSubscription($api_url, array('user_id' => $session->userid, 'id' => $ongoing_subscription[0]['id']))) {
             $this->flashMessenger()->addSuccessMessage("Basic subscription activated on your account..!!");
             return $this->redirect()->toRoute('practitioner', array('action' => 'dashboard'));
         } else {
             $this->flashMessenger()->addErrorMessage("Failed to activate basic subscription..!!");
             return $this->redirect()->toRoute('membership');
         }
     }
     $ongoingSubs_endDate = 'NA';
     $ongoingsubs_name = 'NA';
     $total_amount = 'NA';
     $new_expireDate = 'NA';
     $selectedSubs_name = 'NA';
     $subscription_duration_id = 'NA';
     $selectedCurrency = $model_practitioner->getcurrency($api_url, $this->getRequest()->getServer('REMOTE_ADDR'));
     if ($id == $subscription_id) {
         /* same subscription now renew */
         $checkout_type = "renew";
         if (count($selected_subscription) > 0) {
             if (count($ongoing_subscription) > 0) {
                 !empty($ongoing_subscription[0]['subscription_end_date']) ? $ongoingSubs_endDate = $ongoing_subscription[0]['subscription_end_date'] : '';
                 $ongoing_duration = json_decode($ongoing_subscription[0]['subscription_duration'], true);
                 if (count($ongoing_duration) > 0) {
                     $ongoingsubs_name = $ongoing_duration['subscription_name'];
                 }
             } else {
                 $ongoingSubs_endDate = date('Y-m-d');
             }
             $selected = json_decode($selected_subscription['duration'][0], true);
             if (count($selected) > 0) {
                 $total_amount = $selected['price'];
                 $selectedSubs_name = $selected['subscription_name'];
                 $subscription_duration_id = $selected['id'];
                 if (isset($selected['duration_in'])) {
                     if ($selected['duration_in'] == "1") {
                         // move subs date $selected['duration'] year ahed
                         $new_expireDate = date('Y-m-d', strtotime("+" . $selected['duration'] . " year", strtotime($ongoingSubs_endDate)));
                     } else {
                         if ($selected['duration_in'] == "2") {
                             // move subs date $selected['duration'] month ahed
                             $new_expireDate = date('Y-m-d', strtotime("+" . $selected['duration'] . " month", strtotime($ongoingSubs_endDate)));
                         } else {
                             if ($selected['duration_in'] == "3") {
                                 // move subs date $selected['duration'] month ahed
                                 $new_expireDate = date('Y-m-d', strtotime("+" . $selected['duration'] . " days", strtotime($ongoingSubs_endDate)));
                             } else {
                                 // do nothing
                             }
                         }
                     }
                 }
             }
         }
     } else {
         /* new subscription */
         $checkout_type = "new";
         if (count($selected_subscription) > 0) {
             if (count($ongoing_subscription) > 0) {
                 !empty($ongoing_subscription[0]['subscription_end_date']) ? $ongoingSubs_endDate = $ongoing_subscription[0]['subscription_end_date'] : '';
                 $ongoing_duration = json_decode($ongoing_subscription[0]['subscription_duration'], true);
                 if (count($ongoing_duration) > 0) {
                     $ongoingsubs_name = $ongoing_duration['subscription_name'];
                 }
             }
             $selected = json_decode($selected_subscription['duration'][0], true);
             if (count($selected) > 0) {
                 $total_amount = $selected['price'];
                 $selectedSubs_name = $selected['subscription_name'];
                 $subscription_duration_id = $selected['id'];
                 if (isset($selected['duration_in'])) {
                     if ($selected['duration_in'] == "1") {
                         // move subs date $selected['duration'] year ahed
                         $new_expireDate = date('Y-m-d', strtotime("+" . $selected['duration'] . " year", strtotime(date('Y-m-d'))));
                     } else {
                         if ($selected['duration_in'] == "2") {
                             // move subs date $selected['duration'] month ahed
                             $new_expireDate = date('Y-m-d', strtotime("+" . $selected['duration'] . " month", strtotime(date('Y-m-d'))));
                         } else {
                             if ($selected['duration_in'] == "3") {
                                 // move subs date $selected['duration'] month ahed
                                 $new_expireDate = date('Y-m-d', strtotime("+" . $selected['duration'] . " days", strtotime(date('Y-m-d'))));
                             } else {
                                 // do nothing
                             }
                         }
                     }
                 }
             }
         }
     }
     //echo $new_expireDate;die;
     $subscriptionsession->serviceprice = $total_amount;
     $subscriptionsession->subscription_duration_id = $subscription_duration_id;
     $subscriptionsession->currency = $selectedCurrency;
     $subscriptionsession->subscription_end_date = $new_expireDate;
     $form = new CheckoutForm($this->getServiceLocator()->get('config')['payment_methods']);
     $session = new Container('frontend');
     $form->get('name_on_card')->setValue($session->first_name . ' ' . $session->last_name);
     $form->get('emailid')->setValue($session->email);
     $banners = $common->getBanner($api_url, 14);
     return new ViewModel(array('form' => $form, 'errorMsgs' => $this->flashMessenger()->getCurrentErrorMessages(), 'checkout_type' => $checkout_type, 'ongoingSubs_endDate' => $ongoingSubs_endDate, 'ongoingsubs_name' => $ongoingsubs_name, 'total_amount' => $total_amount, 'new_expireDate' => $new_expireDate, 'selectedSubs_name' => $selectedSubs_name, 'selectedCurrency' => $selectedCurrency, 'banners' => $banners, 'savedCard_details' => end($savedCard_details), 'merchant_id' => $this->getServiceLocator()->get('Config')['payment_gateway']['merchant_id']));
 }