Ejemplo n.º 1
0
 /**
  * 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();
         }
     }
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
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 -->
Ejemplo n.º 6
0
 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);
     }
 }