Пример #1
0
 public function formatTransOverridingAmount($model)
 {
     if (!$model->admin_approved) {
         return ProTransactions::$WAIT_APPROVE_TEXT;
     }
     $cmsFormater = new CmsFormatter();
     return $cmsFormater->formatPrice($model->overriding_amount);
 }
 public function formatListingCompanyStatus($model)
 {
     if (isset(Listing::$STATUS_COMPANY_[$model->company_listing_status])) {
Пример #2
0
 /**
  * @Author: ANH DUNG Jul 29, 2014
  * @Todo: TENANCIES MANAGEMENT
  */
 public function actionApproveTransaction($id)
 {
     $model = $this->loadModel($id);
     $model->scenario = "ApproveTransaction";
     $this->layout = 'ajax';
     if (isset($_POST['ProTransactions'])) {
         $model->attributes = $_POST['ProTransactions'];
         $model->validate();
         if (!$model->hasErrors()) {
             if ($model->admin_approved) {
                 ProTransactions::UpdateAdminStatus($model, $model->admin_approved);
                 ProTransactionsInvoice::AutoGenInvoice($model);
             }
             die('<script type="text/javascript">parent.$.fn.colorbox.close(); parent.$.fn.yiiGridView.update("pro-transactions-grid");</script>');
         }
     }
     $this->render('ApproveTransaction', array('model' => $model, 'actions' => $this->listActionsCanAccess));
 }
Пример #3
0
 /**
  * @Author: ANH DUNG Jul 15, 2014
  * @Todo: display full name of user
  * @Param: $mTransaction model transaction 
  * @Param: $invoice_type type invoice
  * @Param: $invoice_template template print
  * @Param: $mTransBillTo model transaction bill to với những invoice có External Co-broke
  * @Return: full name with salution of user
  */
 public static function SaveOneInvoice($mTransaction, $invoice_type, $invoice_template, $mTransBillTo)
 {
     //invoice_number sẽ gen ra dựa vào invoice_type
     $prefix_code = self::getPrefix($invoice_type);
     $model = new ProTransactionsInvoice();
     $model->transactions_id = $mTransaction->id;
     $model->invoice_number = MyFormat::getNextId('ProTransactionsInvoice', $prefix_code, 'invoice_number', self::getLengthInvoiceNo());
     $model->invoice_type = $invoice_type;
     $model->invoice_template = $invoice_template;
     $model->type = $mTransaction->type;
     if ($mTransBillTo) {
         $model->trans_bill_to_id = $mTransBillTo->id;
         // primary key model bill to
         $model->client_type_id = $mTransBillTo->client_type_id;
         $model->invoice_bill_to = $mTransBillTo->bill_to_id;
     }
     $model->save();
 }
Пример #4
0
 public function searchMixed()
 {
     $criteria = new CDbCriteria();
     $criteria->compare('t.id', $this->id, true);
     $criteria->compare('t.invoice_no', trim($this->invoice_no), true);
     $criteria->compare('t.transactions_no', trim($this->transactions_no), true);
     $criteria->compare('t.bill_to', $this->bill_to);
     $criteria->compare('t.user_id', $this->user_id, true);
     $criteria->compare('t.user_name', $this->user_name, true);
     $criteria->compare('t.user_billing_address', $this->user_billing_address, true);
     $criteria->compare('t.user_postal_code', $this->user_postal_code, true);
     $criteria->compare('t.total_amount_due', $this->total_amount_due, true);
     $criteria->compare('t.status', $this->status);
     $date_from = '';
     $date_to = '';
     if (!empty($this->date_from)) {
         $date_from = MyFormat::dateConverDmyToYmdForSeach($this->date_from) . " 00:00:00";
     }
     if (!empty($this->date_to)) {
         $date_to = MyFormat::dateConverDmyToYmdForSeach($this->date_to) . " 23:59:00";
     }
     if (!empty($date_from) && empty($date_to)) {
         $criteria->addCondition("t.created_date>='{$date_from}'");
     }
     if (empty($date_from) && !empty($date_to)) {
         $criteria->addCondition("t.created_date<='{$date_to}'");
     }
     if (!empty($date_from) && !empty($date_to)) {
         $criteria->addBetweenCondition("t.created_date", $date_from, $date_to);
     }
     if (!empty($this->keyword)) {
         $criteria->compare('rDetail.description', $this->keyword, true);
         $criteria->with = array('rDetail');
         $criteria->together = true;
     }
     $criteria->order = "t.created_date desc";
     $fiInvoices = static::model()->findAll($criteria);
     $c2 = new CDbCriteria();
     $c2->compare('invoice_number', trim($this->invoice_no), true);
     $c2->compare('invoice_type', ProTransactionsInvoice::TYPE_INVOICE);
     $c2->order = 'created_date desc';
     $invoices = ProTransactionsInvoice::model()->findAll($c2);
     $mixedInvoice = array();
     $f = Yii::app()->format;
     foreach ($fiInvoices as $invoice) {
         $data = array('id' => $invoice->id, 'invoice_no' => $invoice->invoice_no, 'created_date' => $invoice->created_date, 'transactions_no' => $invoice->transactions_no, 'property_address' => $f->formatInvoicePropertyAddress($invoice), 'total_amount_due_gst' => $f->formatPrice($invoice->total_amount_due_gst), 'status' => FiInvoice::$STA_STATUS[$invoice->status], 'receipt' => $f->formatInvoiceGenReceipt($invoice), 'viewUrl' => Yii::app()->createAbsoluteUrl('admin/fiInvoice/view', array('id' => $invoice->id)), 'deleteUrl' => Yii::app()->createAbsoluteUrl('admin/fiInvoice/delete', array('id' => $invoice->id)));
         if (FiInvoice::CanUpdate($invoice)) {
             $data['updateUrl'] = Yii::app()->createAbsoluteUrl('admin/fiInvoice/update', array('id' => $invoice->id));
         }
         $mixedInvoice[] = $data;
     }
     foreach ($invoices as $invoice) {
         $mixedInvoice[] = array('id' => $invoice->id + 200000, 'invoice_no' => $invoice->invoice_number, 'created_date' => $invoice->created_date, 'transactions_no' => $invoice->rTransaction->transactions_no, 'property_address' => $invoice->rTransaction->rPropertyDetail->property_name_or_address, 'total_amount_due_gst' => $f->formatTransactionPropertyPrice($invoice->rTransaction), 'viewUrl' => Yii::app()->createAbsoluteUrl('admin/transactions/viewInvoice', array('id' => $invoice->id)));
     }
     return new CArrayDataProvider($mixedInvoice, array('sort' => array('defaultOrder' => 'created_date DESC', 'attributes' => array('created_date', 'invoice_no')), 'pagination' => array('pageSize' => Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']))));
 }
Пример #5
0
 /**
  * @Author: ANH DUNG Oct 22, 2014
  */
 public function actionTransactionInvoice()
 {
     try {
         $model = new ProTransactionsInvoice();
         $model->unsetAttributes();
         // clear any default values
         if (isset($_GET['ProTransactionsInvoice'])) {
             $model->attributes = $_GET['ProTransactionsInvoice'];
         }
         $model->invoice_type = ProTransactionsInvoice::TYPE_INVOICE;
         $this->render('TransactionInvoice', array('model' => $model, 'actions' => $this->listActionsCanAccess));
     } catch (Exception $e) {
         Yii::log("Exception " . print_r($e, true), 'error');
         throw new CHttpException("Exception " . print_r($e, true));
     }
 }
Пример #6
0
 /**
  * @Author: ANH DUNG Dec 01, 2014
  * @Todo: handle POST for create tenancy without create transaction
  * @belongto: actionCreateTenancy
  */
 public static function HandlePost($mTransactions)
 {
     if (isset($_POST['ProTransactionsPropertyDetail'])) {
         ProTransactions::HandleSaveAsDraft($mTransactions);
         ProTransactions::GetPostAndValidateTenancy($mTransactions);
         if (!$mTransactions->hasErrors() && !$mTransactions->mPropertyDetail->hasErrors() && !$mTransactions->mTenatDefault->hasErrors() && !$mTransactions->mTenatDefault->hasErrors() && !$mTransactions->mTenant->hasErrors() && !$mTransactions->mPropertyDocument->hasErrors() && !$mTransactions->mBillTo->hasErrors() && !$mTransactions->mVendor->hasErrors() && !$mTransactions->mPurchaser->hasErrors()) {
             ProTransactions::convertToDbDate($mTransactions);
             $prefix_code = "T" . date('Y') . date('m');
             //                if(!isset($_GET['update_transactions'])){
             if (!strlen($mTransactions->transactions_no)) {
                 // Fix Feb 03, 2015 for update tenancy and trans
                 $mTransactions->transactions_no = MyFormat::getNextId('ProTransactions', $prefix_code, 'transactions_no', ProTransactions::LENGTH_TRANS_NO);
             }
             $link = Yii::app()->createAbsoluteUrl('admin/tenancy/view', array('id' => $mTransactions->id));
             $cController = strtolower(Yii::app()->controller->id);
             if ($cController == "transactions") {
                 // Feb 03, 2015 , fix for update transaction
                 $link = Yii::app()->createAbsoluteUrl('admin/transactions/view', array('id' => $mTransactions->id));
             }
             //                $mTransactions->status = STATUS_TENANCY_NEW;
             // Feb 02, 2015 , fix for update transaction
             $cAction = Yii::app()->controller->action->id;
             if ($cAction != 'update') {
                 $mTransactions->status = STATUS_TENANCY_APPROVE;
             }
             // Feb 02, 2015 , fix for update transaction
             $mTransactions->save();
             // save transaction
             // save  mPropertyDetail
             $mTransactions->mPropertyDetail->transactions_id = $mTransactions->id;
             $mTransactions->mPropertyDetail->listing_id = $mTransactions->listing_id;
             $mTransactions->mPropertyDetail->save();
             //save mBillTo
             $mTransactions->mBillTo->transactions_id = $mTransactions->id;
             $mTransactions->mBillTo->client_type_id = $mTransactions->client_type_id;
             $mTransactions->mBillTo->type = ProTransactionsBillTo::TYPE_VENDOR_PURCHASER;
             $mUserBillTo = Users::saveUserExternalCoBroke($mTransactions->mBillTo, ROLE_EXTERNAL_CO_BROKE);
             $mTransactions->mBillTo->user_id = $mUserBillTo->id;
             if ($cAction == 'update' && ProTransactions::IsTenancyTransaction($mTransactions)) {
                 $mTransactions->mBillTo->save();
                 // save mBillTo
             }
             // save tenant
             if ($mTransactions->type == ProTransactions::FOR_RENT) {
                 $mTransactions->mTenatDefault->transactions_id = $mTransactions->id;
                 ProTransactionsVendorPurchaserDetail::saveOneTenant($mTransactions->mTenatDefault, 1);
                 // update new expiration date for tenant to check login
                 ProTransactionsVendorPurchaserDetail::updateExpirationTenant($mTransactions);
             }
             // end save tenant
             //save ProTransactionsPropertyDocument
             ProTransactionsPropertyDocument::saveRecord($mTransactions);
             $mTransactions = ProTransactions::LoadModelRelationByPk($mTransactions->id);
             // Mar 05, 2015 create landlord and send mail to new user if not yet send
             ProTransactions::CreateNewTenantLandlordAndSendMail($mTransactions);
             // Mar 05, 2015  create landlord and send mail to new user if not yet send
             // Feb 02, 2015 , fix for update transaction need for save Comm
             if ($cAction == 'update' && ProTransactions::IsTenancyTransaction($mTransactions)) {
                 // comm here
                 ProTransactionsBillTo::UpdateBillTo($mTransactions);
                 // Jun 16, 2014 đưa bill to lên trên save commission thì mới có đc rExternalCoBrokeCommission
                 // chỗ này find lại model của transaction để lấy hết relation - single query
                 $mTransactions = ProTransactions::LoadModelRelationByPk($mTransactions->id);
                 ProTransactionsSaveCommission::saveOneTransaction($mTransactions);
                 ProTransactionsInvoice::AutoGenInvoice($mTransactions);
             }
             // Feb 02, 2015 , fix for update transaction need for save Comm
             Yii::app()->controller->redirect($link);
             // may be redirect to view
         }
     }
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the ID of the model to be loaded
  */
 public function loadModel($id)
 {
     try {
         $model = ProTransactionsInvoice::model()->findByPk($id);
         if ($model === null) {
             Yii::log("The requested page does not exist.");
             throw new CHttpException(404, 'The requested page does not exist.');
         }
         return $model;
     } catch (Exception $e) {
         Yii::log("Exception " . print_r($e, true), 'error');
         throw new CHttpException("Exception " . print_r($e, true));
     }
 }
Пример #8
0
         }
     }
 }
 $voucher_no = $model->voucher_no;
 // 6
 $ExternalCoBrokeCommission = ProTransactionsSaveCommission::calcClientCommission($mTransactions);
 $InternalCoBrokeCommission = ProTransactionsSaveCommission::calcCommissionInternalCobroke($mTransactions);
 $MA_Gross = $model->voucher_ma_gross_comm;
 $MA_GrossText = $cmsFormater->formatPriceSign($model->voucher_ma_gross_comm);
 // 14
 $PrimaySalespersonComm = $mTransComm->received_commission;
 $voucher_number_11 = $PrimaySalespersonComm + $MA_Gross + $ExternalCoBrokeCommission + $InternalCoBrokeCommission;
 $voucher_number_11_text = $cmsFormater->formatPriceSign($voucher_number_11);
 $SalespersonCommissionScheme_12 = $cmsFormater->formatPrice($mTransComm->percent_of_tier) . " %";
 //   tam dong lai $voucher_number_13 = $voucher_number_11-$ExternalCoBrokeCommission-$InternalCoBrokeCommission;
 $voucher_number_13 = ProTransactionsInvoice::calcTotalNetComm($model, $mTransactions);
 $voucher_number_13_text = $cmsFormater->formatPriceSign($voucher_number_13);
 $ExternalCoBrokeCommissionText = $cmsFormater->formatPriceSign($ExternalCoBrokeCommission);
 // 15
 $InternalCoBrokeCommissionText = $cmsFormater->formatPriceSign($InternalCoBrokeCommission);
 // 16
 if ($template == ProTransactionsInvoice::TEMPLATE_5_VOUCHER_COBROKE) {
     if ($mUser = $model->rPayToUser) {
         $CompanyName = 'Property Infologic';
         // 1
         $BillingAddress = '10 Ubi Crescent #03-52 Lobby C, Ubi Techpark, Singapore';
         // 2
         $PostalCode = '408564';
         // 3
         if ($mUser->role_id == ROLE_EXTERNAL_CO_BROKE) {
             $CompanyName = $mUser->agent_company_name;