/**
  * @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();
 }
Exemple #2
0
 protected function beforeSave()
 {
     if ($this->isNewRecord) {
         $prefix_code_invoice = "INV" . date('y') . date('m');
         $oldInvoiceNo = MyFormat::getNextId('FiInvoice', $prefix_code_invoice, 'invoice_no', ProTransactions::LENGTH_TRANS_NO);
         $noWithoutPrefix = str_replace($prefix_code_invoice, '', $oldInvoiceNo) + 200000;
         // fix to not duplicated with transaction invoice
         $this->invoice_no = $prefix_code_invoice . $noWithoutPrefix;
         $prefix_code_invoice = "TR" . date('Y') . date('m');
         $this->transactions_no = MyFormat::getNextId('FiInvoice', $prefix_code_invoice, 'transactions_no', ProTransactions::LENGTH_TRANS_NO);
         $this->created_by = Yii::app()->user->id;
     }
     return parent::beforeSave();
 }
 protected function beforeSave()
 {
     if ($this->isNewRecord) {
         $prefix_code_invoice = "REC" . date('y') . date('m');
         $this->receipt_no = MyFormat::getNextId('FiInvoiceReceipt', $prefix_code_invoice, 'receipt_no', ProTransactions::LENGTH_TRANS_NO);
         $this->created_by = Yii::app()->user->id;
     }
     if (!empty($this->receipt_date_paid) && strpos($this->receipt_date_paid, '/')) {
         $this->receipt_date_paid = MyFormat::dateConverDmyToYmd($this->receipt_date_paid);
     }
     return parent::beforeSave();
 }
 protected function beforeSave()
 {
     if ($this->isNewRecord) {
         $this->voucher_no = MyFormat::getNextId('FiPaymentVoucher', 'PV', 'voucher_no', FiPaymentVoucher::LENGTH_TRANS_NO);
         $this->created_by = Yii::app()->user->id;
     }
     if (!empty($this->date_paid) && strpos($this->date_paid, '/')) {
         $this->date_paid = MyFormat::dateConverDmyToYmd($this->date_paid);
     }
     $this->total_amount = str_replace(',', '', trim($this->total_amount));
     return parent::beforeSave();
 }
Exemple #5
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
         }
     }
 }
 //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');