public function packageAction() { // trigger_error('In ' . __METHOD__ . '', E_USER_NOTICE); $oRequest = App_Request::getInstance(); if (0 == $oRequest->getParam('package_id', 0)) { header('Location: ' . App_Request::getReferer()); trigger_error('Missing package_id :: redirecting to: ' . App_Request::getReferer(), E_USER_NOTICE); } $oPackageModel = new Model_Package(); $oPackageModel->setOption('package_id', $oRequest->getParam('package_id')); if ($oRequest->getParam('assign_pick', false)) { $oPackageModel->setOption('package_id', $oRequest->getParam('package_id'))->setOption('courier_pick_id', $oRequest->getParam('assign_pick')); $oPackageModel->update(); header('Location: ' . App_Request::getReferer()); trigger_error('assign_pick completed :: redirecting to: ' . App_Request::getReferer(), E_USER_NOTICE); return; } if ($oRequest->getParam('assign_deliver', false)) { $oPackageModel->setOption('package_id', $oRequest->getParam('package_id'))->setOption('courier_deliver_id', $oRequest->getParam('assign_deliver')); $oPackageModel->update(); header('Location: ' . App_Request::getReferer()); trigger_error('assign_deliver completed :: redirecting to: ' . App_Request::getReferer(), E_USER_NOTICE); return; } if ('' != $oRequest->getParam('set_status', '')) { $this->view->status_form = true; $this->view->package_log_type = $oRequest->getParam('set_status'); $this->view->package_id = $oRequest->getParam('package_id'); $this->view->referer = $oRequest->getPost('referer', App_Request::getReferer()); $oPackage = $oPackageModel->getById(); if ('pick' == $oPackage->package_payment_method && 'picked' == $oRequest->getParam('set_status', '')) { $this->view->show_payment = true; } if ('deliver' == $oPackage->package_payment_method && 'delivered' == $oRequest->getParam('set_status', '')) { $this->view->show_payment = true; } if (0 != $oRequest->getPost('package_id', 0)) { try { if (('pick_error' == $oRequest->getPost('package_log_type') || 'deliver_error' == $oRequest->getPost('package_log_type') || 'other_error' == $oRequest->getPost('package_log_type')) && '' == $oRequest->getPost('package_log_info', '')) { throw new Exception('Missing `package_log_info` with problem description'); } if ('pick' == $oPackage->package_payment_method && 'picked' == $oRequest->getParam('set_status', '') || 'deliver' == $oPackage->package_payment_method && 'delivered' == $oRequest->getParam('set_status', '')) { if (0 == $oRequest->getPost('package_payment', 0)) { throw new Exception('Payment is required for this action'); } $oPackageModel->setOption('user_id', App_Auth::getInstance()->getIdentity()->user_id)->setOption('package_log_type', 'payment')->setOption('package_log_info', '')->updateLog(); $oPackageModel->setOption('package_payment_received', 1)->update(); } $oPackageModel->setOption('user_id', App_Auth::getInstance()->getIdentity()->user_id)->setOption('package_log_type', $oRequest->getPost('package_log_type'))->setOption('package_log_info', $oRequest->getPost('package_log_info', ''))->updateLog(); header('Location: ' . $oRequest->getPost('referer')); } catch (Exception $e) { trigger_error('Error while updating package log: ' . $e->getMessage(), E_USER_WARNING); $this->view->update_error = true; } } } }
public function payAction() { $oRequest = App_Request::getInstance(); if (0 != $oRequest->getParam('tracking_code', 0)) { $oPackageModel = new Model_Package(); $oPackageModel->setOption('package_tracking_code', (int) $oRequest->getParam('tracking_code')); $oPackage = $oPackageModel->getByTrackingCode(); if ('instant' == $oPackage->package_payment_method) { $oPackageModel->setOption('package_id', $oPackage->package_id); $oPackageModel->setOption('package_payment_received', 1); try { if ($oPackageModel->update()) { $this->view->success = true; } else { $this->view->success = false; } } catch (Exception $e) { $this->view->success = false; trigger_error('Error while paying: ' . $e->getMessage(), E_USER_WARNING); } $this->view->payment_type_mismatch = false; } else { $this->view->payment_type_mismatch = true; } } }