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