/** * <Create By Jason> * <TO show list of tenancies detail in tenant user> */ public function actionTenancies_Detail() { try { $this->pageTitle = 'Tenancies Details - ' . Yii::app()->params['title']; $this->layout = 'application.views.layouts.layout_user'; if (!isset(Yii::app()->user->id)) { $this->redirect(Yii::app()->createAbsoluteUrl('/')); } if (!isset($_GET['transaction_id'])) { $_GET['transaction_id'] = 0; } //HTram add: to load call log by role users $role_id = ''; if (isset(Yii::app()->user->id)) { $role_id = Yii::app()->user->roleid; } $calllog = ProCallLog::getListCallLog($_GET['transaction_id'], $role_id); // $document = ProTransactionsPropertyDocument::getListDocument($_GET['transaction_id']); $transaction = ProTransactions::getByPk($_GET['transaction_id']); $report = ProReportDefect::getListReport($_GET['transaction_id']); $landlordInformation = ProTransactionsVendorPurchaserDetail::getTenancyInformation($_GET['transaction_id'], TYPE_LANDLORD); $mAirconService = new ProAirconService(); $mAirconService->transaction_id = $_GET['transaction_id']; MyFormat::CheckValidRequest($transaction); $this->render('tenancies_detail', array('report' => $report, 'transaction' => $transaction, 'document' => $document, 'calllog' => $calllog, 'landlordInformation' => $landlordInformation, 'mAirconService' => $mAirconService)); } catch (Exception $exc) { throw new CHttpException('404', $exc->getMessage()); } }
/** * <Create By Jason> * <TO show list of tenancies detail in tenant user> */ public function actionTenancies_detail() { try { $this->pageTitle = 'Tenencies Details - ' . Yii::app()->params['title']; if (!isset(Yii::app()->user->id)) { $this->redirect(Yii::app()->createAbsoluteUrl('/')); } $transaction = MyFormat::loadModelByClass($_GET['transaction_id'], 'ProTransactions'); MyFormat::CheckValidRequest($transaction); $calllog = ProCallLog::getListCallLog($_GET['transaction_id']); $document = ProTransactionsPropertyDocument::getListDocument($_GET['transaction_id']); $report = ProReportDefect::getListReport($_GET['transaction_id']); $landlordInformation = ProTransactionsVendorPurchaserDetail::getTenancyInformation($_GET['transaction_id'], TYPE_LANDLORD); $tenantInformation = ProTransactionsVendorPurchaserDetail::getTenancyInformation($_GET['transaction_id'], TYPE_TENANT); $this->render('tenancies_detail', array('report' => $report, 'transaction' => $transaction, 'document' => $document, 'calllog' => $calllog, 'landlordInformation' => $landlordInformation, 'tenantInformation' => $tenantInformation)); } catch (Exception $exc) { throw new CHttpException('404', $exc->getMessage()); } }
<!--<h4 class="f-left">Vendor’s Details</h4>--> <div class="f-left w-2 fixErrorSummary"> <h4>Vendor’s Details</h4> <?php echo $form->errorSummary($mTransactions->mVendor); ?> </div> <a data-fancybox-type="iframe" href="<?php echo Yii::app()->createAbsoluteUrl('ajax/agentAddVendor', array('transactions_id' => $mTransactions->id)); ?> " class="btn-1 f-right AddVendorDetails">Add more </a> </div> <div class="content table_scroll padding_0 "> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'vendor-grid', 'dataProvider' => ProTransactionsVendorPurchaserDetail::searchByType($mTransactions->id, Users::USER_VENDOR), 'afterAjaxUpdate' => 'function(id, data){}', 'template' => '{items}{pager}', 'itemsCssClass' => 'tb-1 margin_0', 'htmlOptions' => array('class' => 'grid-view padding_0'), 'enableSorting' => false, 'columns' => array(array('header' => '#', 'type' => 'raw', 'value' => '$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)', 'headerHtmlOptions' => array('width' => '10px', 'style' => 'text-align:center;'), 'htmlOptions' => array('style' => 'text-align:center;'), 'cssClassExpression' => '"first"'), array('name' => 'name', 'value' => '$data->getField("name")'), array('name' => 'nric_passportno_roc', 'value' => '$data->getField("nric_passportno_roc")'), array('name' => 'contact_no', 'value' => '$data->getField("contact_no")', 'htmlOptions' => array('style' => 'text-align:center;'), 'headerHtmlOptions' => array('class' => 'item_c')), 'email', array('name' => 'address', 'value' => '$data->getField("address")'), array('name' => 'postal_code', 'value' => '$data->getField("postal_code")', 'htmlOptions' => array('style' => 'text-align:center;'), 'headerHtmlOptions' => array('class' => 'item_c')), array('header' => 'Actions', 'class' => 'CButtonColumn', 'cssClassExpression' => '"last"', 'template' => '{update_item}{delete_item}', 'buttons' => array('update_item' => array('label' => 'Remove', 'imageUrl' => Yii::app()->theme->baseUrl . '/img/gridview/update.png', 'options' => array('class' => 'update_item', 'data-fancybox-type' => 'iframe'), 'url' => 'Yii::app()->createAbsoluteUrl("ajax/agentUpdateVendor", array("id"=>$data->id))'), 'delete_item' => array('label' => 'Remove', 'imageUrl' => Yii::app()->theme->baseUrl . '/img/gridview/delete.png', 'options' => array('class' => 'delete_item'), 'url' => 'Yii::app()->createAbsoluteUrl("member/member_profile/delete", array("id"=>$data->id))')))))); ?> </div> <!-- end content table_scroll --> </div> <!-- end box-5 --> <script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?> /js/jquery.blockUI.js"></script> <script> $(document).ready(function() {
<div class="box-5"> <div class="title clearfix"> <h4 class="f-left">Purchaser’s Details</h4> </div> <div class="content table_scroll padding_0"> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'purchaser-grid', 'dataProvider' => ProTransactionsVendorPurchaserDetail::searchByType($mTransactions->id, Users::USER_PURCHASER), 'afterAjaxUpdate' => 'function(id, data){}', 'template' => '{items}{pager}', 'itemsCssClass' => 'tb-1 margin_0', 'htmlOptions' => array('class' => 'grid-view padding_0'), 'enableSorting' => false, 'columns' => array(array('header' => '#', 'type' => 'raw', 'value' => '$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)', 'headerHtmlOptions' => array('width' => '10px', 'style' => 'text-align:center;'), 'htmlOptions' => array('style' => 'text-align:center;'), 'cssClassExpression' => '"first"'), array('name' => 'name', 'value' => '$data->getField("name")'), array('name' => 'nric_passportno_roc', 'value' => '$data->getField("nric_passportno_roc")'), array('name' => 'contact_no', 'value' => '$data->getField("contact_no")', 'htmlOptions' => array('style' => 'text-align:center;'), 'headerHtmlOptions' => array('class' => 'item_c')), array('name' => 'address', 'value' => '$data->getField("address")'), array('name' => 'postal_code', 'value' => '$data->getField("postal_code")', 'htmlOptions' => array('style' => 'text-align:center;'), 'headerHtmlOptions' => array('class' => 'item_c'))))); ?> </div> <!-- end content table_scroll --> </div><!-- end box-5 -->
<a data-fancybox-type="iframe" href="<?php echo Yii::app()->createAbsoluteUrl('ajax/agentAddTenant', array('transactions_id' => $mTransactions->id, "from_transactions" => 1, 'listing_id' => isset($_GET['listing_id']) ? $_GET['listing_id'] : '', "add_property" => $mTransactions->add_property)); ?> " class="btn-1 f-right TenantDetails">Add More Tenant</a> </div> </div><!-- end <div class="box_tenant_detail"> --> <div class="tenant_reload"> <?php if (count($mTransactions->rTenantAddMore)) { ?> <?php foreach ($mTransactions->rTenantAddMore as $key => $item) { ?> <?php ProTransactionsVendorPurchaserDetail::OverideModel($item); ?> <?php include '_box_sub_tenant_details_view.php'; ?> <?php } ?> <?php } ?> </div> </div> <!-- end box-5 --> <!--<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl;
public function actionAgentAddInternalCoBroke() { try { $model = new ProTransactionsInternalCoBroke('AgentAddInternalCoBroke'); $model->transactions_id = $_GET['transactions_id']; if (isset($_POST['ProTransactionsInternalCoBroke'])) { $model->attributes = $_POST['ProTransactionsInternalCoBroke']; $model->validate(); if (!$model->hasErrors()) { $model->save(); die('<script type="text/javascript">parent.$.fancybox.close(); parent.fnUpdateGridView("#internal-co-broke-grid"); </script>'); } } $this->render('CreateTransaction/AgentAddInternalCoBroke', array('model' => $model)); } catch (Exception $exc) {
/** * @Author: Jason Apr 16, 2014 * @Todo: search by transactions_id and type 1: vendor,2: purchaser, 3: Landlord, 4: Tenant * @Param: $transactions_id * @Param: $type 1: vendor,2: purchaser, 3: Landlord, 4: Tenant * @Return: CActiveDataProvider */ public static function getTenancyInformation($transactions_id, $type) { $criteria = new CDbCriteria(); $criteria->compare('t.transactions_id', $transactions_id); if ($type == TYPE_TENANT) { $criteria->compare('t.is_default', 1); } $criteria->compare('t.type', $type); if ($type == TYPE_LANDLORD) { // $criteria->compare('t.invoice_bill_to', 1); // không hiểu cái condition này để làm gì } $criteria->limit = 1; $criteria->order = 't.id'; return ProTransactionsVendorPurchaserDetail::model()->find($criteria); }
} /* * --------------------------------------------- * Author : dtoan * Email : ghostkissboy12@gmail.com * Send email to sub admin * --------------------------------------------- */ public static function sendMailEnquiryGlobalToSubAdmin($model) { $aBody = array('{NAME}' => $model->name, '{EMAIL}' => $model->email, '{PHONE}' => $model->phone, '{COUNTRY}' => ActiveRecord::getInfoRecord('AreaCode', $model->country_id, 'area_name'), '{MESSAGE}' => nl2br(MyFormat::replaceNewLineTextArea($model->description))); $aSubject = array('{NAME}' => $model->name, '{EMAIL}' => $model->email); $dataAdmin = CHtml::listData(Users::model()->findAllByAttributes(array('role_id' => ROLE_SUB_ADMIN, 'application_id' => BE)), 'email', 'email'); if (count($dataAdmin) > 0) { foreach ($dataAdmin as $mail) { CmsEmail::sendmail(EMAIL_ENQUIRY_GLOBAL, $aSubject, $aBody, $mail); } } }
/** * @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 } } }
$aActionAllowed = array_map('strtolower', $aActionAllowed); return in_array(strtolower($action), $aActionAllowed); } /** * @Author: ANH DUNG Jul 25, 2014 * @Todo: check some action need ussr login */ public static function CheckRequiredLogin() { if (!isset(Yii::app()->user->id)) { throw new CHttpException(404, 'The requested page does not exist.'); } } // ANH DUNG public static function GetNameUserAdminLogin($uid)
//save ProTransactionsPropertyDocument /*Closed by HTram, because it were uploaded by ajax at the form ProTransactionsPropertyDocument::saveRecord($mTransactions); * */ // 1. email to all new user trong table pro_pro_transactions_vendor_purchaser_detail // Fix Aug 08, 2014 hàm này đã move vào admin (ProTransactions::UpdateAdminStatus) khi admin approve trong backend thì mới send // Dec 01, 2014 Once tenancy is submitted, admin need to approve. // Once admin approved, LL and Tenant account will automatically send an email with Login ID and Password (generated) to Tenant and LL. // ProTransactionsVendorPurchaserDetail::sendMailToNewUser($mTransactions->id, $mTransactions); // ProTransactionsVendorPurchaserDetail::updateRoleUserAfterCreateUpdateTransaction($mTransactions->id); // Fix Aug 08, 2014 // 2. delete all table pro_pro_transactions_vendor_purchaser_detail với transactions_id ko có id nằm trong mảng submit lên // không xử lý kiểu này nữa, khi tạo tenant hoặc landlord ở dưới thì mặc định là tạo mới trên hệ thống rồi // logic này đúng $mTransactions = ProTransactions::LoadModelRelationByPk($mTransactions->id); // Close Dec 01, 2014 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 // Close Dec 01, 2014 $mTransactions = ProTransactions::LoadModelRelationByPk($mTransactions->id); // Close Dec 01, 2014 ProTransactionsSaveCommission::saveOneTransaction($mTransactions); // đoạn này phải find lại model vì bên trên find có with thì // dữ liệu cập nhật ở hàm UpdateBillTo bên trên sẽ ko có trong model này => phải find lại // AutoGenInvoice // Close Dec 01, 2014 ProTransactionsInvoice::AutoGenInvoice($mTransactions); // Close Dec 01, 2014 Listing::SetStatusPastListing($mTransactions->listing_id); Yii::app()->user->setFlash('success', 'Your tenancy has been created successfully');
// 9 //$PropertyName = $mTransactions->rPropertyDetail->rPropertyType?$mTransactions->rPropertyDetail->rPropertyType->name:''; // hình như ko dùng cái $PropertyName bên trên $PropertyName = ProTransactionsInvoice::getPropertyName($model) . " " . $mTransPropertyDetail->unit_no; $LanlordName = ProTransactions::getInvoiceLanlordName($mTransactions); $TenantName = ProTransactions::getInvoiceTenantName($mTransactions); $TransactionNo = $mTransactions->transactions_no; // 8 $ClientType = ProTransactions::$aClientSaleDetail[$mTransactions->client_type_id]; // 10 /** Oct 02, 2014 xu ly cho bill to solicitor is selected - hien tai moi lam invoice normal template 1 */ $VendorsName = ''; $SolicitorName = ""; $SolicitorAddress = ''; if ($mTransactions->invoice_bill_to == ProTransactions::BILL_TO_SOLICITOR) { $VendorsName = ProTransactionsVendorPurchaserDetail::getVendorNameForSolicitor($mTransactions); $SolicitorAddress = $mBillTo->billing_address; $SolicitorName = $mBillTo->attn_to; } /** Oct 02, 2014 xu ly cho bill to solicitor is selected - hien tai moi lam invoice normal template 1 */ // invoice normal $CommissionAmount = $mBillTo->commission_amount_gst; $AttnTo = $mBillTo->attn_to; $CompanyName = $mBillTo->company_name; $BillingAddress = $mBillTo->billing_address; $ContactNo = $mBillTo->contact_no; $PostalCode = $mBillTo->postal_code; // for invoice normal if (in_array($model->invoice_template, ProTransactionsInvoice::$aTemplateInvoiceExCobroke)) { $mExternal = $model->rExternalCobroke; if ($mExternal) {