/** * fourth sequence * Method untuk meload data voucher berdasarkan primary key */ public function loadModel($id) { $model = Voucher::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function actionSave() { if ($_POST) { $trans = Yii::app()->db->beginTransaction(); try { $redeem = new Redeem(); $autonumber = $redeem->autonumber(); $table_length = $_POST['table_length']; $point = 0; $member_name = ''; $voucher_list = array(); if ($table_length < 1) { throw new Exception('Rollback Table Length'); } if (empty($_POST['id_member'])) { throw new Exception('Rollback ID Member'); } $redeem->id_redeem = $autonumber; $redeem->redeem_point = $_POST['redeem_point']; $redeem->username = Yii::app()->user->getId(); $redeem->redeem_date = date('Y-m-d'); $redeem->id_member = $_POST['id_member']; if (!$redeem->validate() or !$redeem->save()) { throw new Exception('Rollback Redeem'); } for ($i = 0; $i < $table_length; $i++) { $detail_redeem = new DetailRedeem(); $detail_redeem->id_redeem = $autonumber; $detail_redeem->id_voucher = $_POST['id_voucher_list'][$i]; $detail_redeem->voucher_number = $_POST['number_voucher_list'][$i]; // mendapatkan nama voucher dan jumlah voucher yang diredeem untuk dicetak distruk $voucher = Voucher::model()->findByPk($_POST['id_voucher_list'][$i]); $voucher_list[] = array($voucher->voucher_name, $_POST['number_voucher_list'][$i]); if ($detail_redeem->validate() and $detail_redeem->save()) { $member = Member::model()->findByPk($_POST['id_member']); $member_name = $member->first_name . ' ' . $member->family_name; $member->point -= $_POST['total_redeem_list'][$i]; if (!$member->update()) { throw new Exception('Rollback Update Point Member'); } $point = $member->point; } else { throw new Exception('Rollback Detail Redeem'); } } $trans->commit(); $get_name = User::model()->findByPk(Yii::app()->user->getId()); $dataRedeem = $this->renderPartial('_receipt', array('id_member' => $_POST['id_member'], 'member_name' => $member_name, 'point' => $point + $redeem->redeem_point, 'redeem_point' => $redeem->redeem_point, 'remaining' => $point, 'vouchers' => $voucher_list, 'name' => $get_name->name), true, false); echo CJSON::encode(array('message' => 'Transaction redeem point has been saved Successfully!', 'receipt' => $dataRedeem)); } catch (CDbException $e) { $trans->rollback(); } } }
public function getVendor($distribution_id) { $distribution = Distribution::model()->findByPk($distribution_id); if (!$distribution) { return 0; } $criteria = "(0"; foreach ($distribution->subdistributions as $subdistribution) { foreach ($subdistribution->distributionVouchers as $distributionVoucher) { $criteria .= "," . $distributionVoucher->id; } } $criteria .= ")"; $voucher = Voucher::model()->find("ben_id = " . $this->id . " and distribution_voucher_id in " . $criteria); if ($voucher->vendor_id == null) { return 0; } return $voucher->vendor_id; }
public function actionPrint($id) { $distributionVouchers = DistributionVoucher::model()->findAll("subdistribution_id = :subdistribution_id", array(":subdistribution_id" => $id)); $criteria = new CDbCriteria(); $criteria_string = "distribution_voucher_id in (0"; foreach ($distributionVouchers as $voucher_type) { $criteria_string = $criteria_string . ", " . $voucher_type->id; } $criteria_string = $criteria_string . ")"; $criteria->addCondition($criteria_string); $vouchers = Voucher::model()->findAll($criteria); Yii::import('application.controllers.VoucherController'); $obj = new VoucherController(""); $html = ''; foreach ($vouchers as $voucher) { $html .= $obj->actionPrint($voucher->id); } return $html; }
echo $form->textField($model, 'deleted_at'); ?> <?php echo $form->error($model, 'deleted_at'); ?> </div><!-- row --> <div class="row"> <?php echo $form->labelEx($model, 'value'); ?> <?php echo $form->textField($model, 'value'); ?> <?php echo $form->error($model, 'value'); ?> </div><!-- row --> <label><?php echo GxHtml::encode($model->getRelationLabel('vouchers')); ?> </label> <?php echo $form->checkBoxList($model, 'vouchers', GxHtml::encodeEx(GxHtml::listDataEx(Voucher::model()->findAllAttributes(null, true)), false, true)); ?> <?php echo GxHtml::submitButton(Yii::t('app', 'Save')); $this->endWidget(); ?> </div><!-- form -->
public function actionsync() { $this->layout = false; $return = []; $error = 0; $lang = 'en'; $error_count = 0; $sync_count = 0; $in_array = array('en', 'ar', 'tr'); $history_intry = new VoucherHistory(); $history_intry->action = VoucherAction::model()->find("name = 'SYNC'")->id; if (isset($_POST) && !empty($_POST)) { // IMPORT MOBILE DATA $post = ""; //foreach ($_POST as $key => $value) { // $post .= $key . " => " . $value . "/"; //} $history_intry->parameters = $post; if (isset($_POST['lang']) && !empty($_POST['lang']) && in_array($_POST['lang'], $in_array)) { $lang = filter_input(INPUT_GET, "lang", FILTER_SANITIZE_STRING); } if (!isset($_POST['redeemed_voucher']) || empty($_POST['redeemed_voucher'])) { $this->respond('ERR_INVALID_REEQUEST', [], $lang, $history_intry); } if (!isset($_POST['imei']) || empty($_POST['imei'])) { $this->respond('ERR_INVALID_REEQUEST', [], $lang, $history_intry); } $voucher_codes = $_POST['redeemed_voucher']; $redeem_redeemed_status = VoucherStatus::model()->find("name = :name", array(":name" => "REDEEMED")); foreach ($voucher_codes as $voucher_code) { $voucher = Voucher::model()->find("code = :code", array(":code" => $voucher_code)); if (!$voucher) { $error_count += 1; $error .= $voucher_code . ", "; } else { $voucher->status_id = $redeem_redeemed_status->id; $voucher->sync_date = new CDbExpression('NOW()'); $voucher->update(); $voucher->save(); $sync_count += 1; } } if ($error_count > 0) { $err_arr = []; $err_arr['count'] = $error_count; $err_arr['vouchers'] = $error; $this->respond("NOT_ALL_SYNCED", $err_arr, $lang, $history_intry); } else { $this->respond(NULL, $sync_count, $lang, $history_intry); } } elseif (isset($_GET) && !empty($_GET)) { // SEND NEW DATA $get = ""; foreach ($_GET as $key => $value) { $get .= $key . " => " . $value . "/"; } $history_intry->parameters = $get; if (!isset($_GET['imei']) || empty($_GET['imei'])) { $this->respond('ERR_INVALID_REEQUEST', [], $lang, $history_intry); } if (isset($_GET['lang']) && !empty($_GET['lang']) && in_array($_GET['lang'], $in_array)) { $lang = filter_input(INPUT_GET, "lang", FILTER_SANITIZE_STRING); } $imei = $_GET['imei']; $phone = Phone::model()->find("imei = :imei", array(":imei" => $imei)); if (!$phone) { $this->respond('ERR_INVALID_REEQUEST', [], $lang, $history_intry); } $vendor_mobiles = VendorMobile::model()->findAll("phone_id = :phone_id", array(":phone_id" => $phone->id)); $export_list = []; $update_list = []; foreach ($vendor_mobiles as $vendor_mobile) { $voucher_status = VoucherStatus::model()->find("name = :name", array(":name" => "PENDING")); $vouchers = Voucher::model()->findAll("status_id = :status_id and vendor_id = :vendor_id", array(":status_id" => $voucher_status->id, ":vendor_id" => $vendor_mobile->vendor_id)); //print_r($vouchers); foreach ($vouchers as $voucher) { $obj = new stdClass(); if ($voucher->distributionVoucher->subdistribution->distribution->id == $vendor_mobile->distribution_id) { foreach ($voucher as $key => $value) { $obj->{$key} = $value; } $beneficiary = Beneficiary::model()->findByPk($voucher->ben_id); if ($beneficiary->registration_code) { $obj->registration_code = $beneficiary->registration_code; } $subdistribution = $voucher->distributionVoucher->subdistribution; $obj->start_date = $subdistribution->start_date; $obj->expiration_date = $subdistribution->end_date; $obj->status_name = $voucher->status->name; array_push($export_list, $obj); array_push($update_list, $voucher); } } } $this->respond(NULL, $export_list, $lang, $history_intry, false); foreach ($update_list as $item) { $in_mobile_status = VoucherStatus::model()->find("name = 'IN_MOBILE'"); $item->status_id = $in_mobile_status->id; $item->update(); $item->save(); } Yii::app()->end(); } else { $this->respond('ERR_INVALID_REEQUEST', [], $lang, NULL); } }