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])) {
/** * @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)); }
/** * @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(); }
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'])))); }
/** * @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)); } }
/** * @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)); } }
} } } $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;