public function actionEndSaleMobile() { $user_id = (int) Yii::app()->request->cookies['user_id']->value; $user = User::model()->findByPk($user_id); $saleTemps = SaleTemp::model()->findAllByAttributes(array('user_id' => $user_id, 'sale_type' => 'mobile')); // find total money $total_money = 0; foreach ($saleTemps as $saleTemp) { $total_money += $saleTemp->price; } // bill sale $billSale = new BillSale(); $billSale->bill_sale_created_date = new CDbExpression('NOW()'); $billSale->bill_sale_status = 'pay'; $billSale->member_id = 0; $billSale->bill_sale_vat = 'no'; $billSale->user_id = $user_id; $billSale->branch_id = $user->branch_id; $billSale->bill_sale_pay_date = new CDbExpression('NOW()'); $billSale->vat_type = 'in'; $billSale->bonus_price = 0; $billSale->out_vat = 0; $billSale->input_money = 0; $billSale->return_money = 0; $billSale->total_money = $total_money; $billSale->sale_type = 'mobile'; if ($billSale->save()) { // bill sale detail foreach ($saleTemps as $saleTemp) { $info = Product::getInfoByBarcode($saleTemp->barcode); $billSaleDetail = new BillSaleDetail(); $billSaleDetail->bill_id = $billSale->bill_sale_id; $billSaleDetail->bill_sale_detail_barcode = $saleTemp->barcode; $billSaleDetail->bill_sale_detail_price = $saleTemp->price; $billSaleDetail->bill_sale_detail_price_vat = 0; $billSaleDetail->bill_sale_detail_qty = 1; $billSaleDetail->bill_sale_detail_has_bonus = 'no'; $billSaleDetail->bill_sale_detail_type = 'one'; $billSaleDetail->old_price = $info['old_price']; $billSaleDetail->save(); } // clear sale temp SaleTemp::model()->deleteAllByAttributes(array('user_id' => $user_id, 'sale_type' => 'mobile')); // success echo 'success'; } }
public function actionSendFromQuotationBillToBillSale() { $this->checkLogin(); $quotation_id = (int) $_POST['quotation_id']; $vat_price = $_POST['vat_price']; $quotation = Quotation::model()->findByPk((int) $quotation_id); if (!empty($quotation)) { $billSale = BillSale::model()->findByAttributes(array('quotation_id' => $quotation_id)); if (empty($billSale)) { $user_id = Yii::app()->request->cookies['user_id']->value; $user = User::model()->findByPk($user_id); // // create bill_sale // $billSale = new BillSale(); $billSale->quotation_id = $quotation_id; $billSale->sale_type = 'sale'; $billSale->bill_sale_pay_date = new CDbExpression('NOW()'); $billSale->branch_id = $user->branch_id; $billSale->user_id = $user_id; $billSale->member_id = 0; $billSale->bill_sale_status = 'pay'; $billSale->bill_sale_created_date = new CDbExpression('NOW()'); if ($quotation->vat > 0) { $vat_price = str_replace(',', '', $vat_price); $billSale->vat_type = 'out'; $billSale->out_vat = $vat_price; $billSale->bill_sale_vat = 'vat'; $billSale->vat_percen = $quotation->vat; } if ($billSale->save()) { // // read from quotation and transfer to tb_bill_sale_detail // $quotationDetails = QuotationDetail::model()->findAllByAttributes(array('quotation_id' => $quotation_id)); foreach ($quotationDetails as $quotationDetail) { $billSaleDetail = new BillSaleDetail(); $billSaleDetail->bill_id = $billSale->bill_sale_id; $billSaleDetail->bill_sale_detail_barcode = $quotationDetail->barcode; $billSaleDetail->bill_sale_detail_price = $quotationDetail->old_price; $billSaleDetail->bill_sale_detail_qty = $quotationDetail->qty; $billSaleDetail->sub = $quotationDetail->sub; $billSaleDetail->quotation_detail_id = $quotationDetail->id; $billSaleDetail->save(); } echo $billSale->bill_sale_id; } } else { echo $billSale->bill_sale_id; } } }
public function actionEndSale() { $this->checkLogin(); $saleTemps = SaleTemp::model()->findAllByAttributes(array('user_id' => (int) Yii::app()->request->cookies['user_id']->value)); if (!empty($saleTemps)) { // find member_id $member_code = Util::input($_POST['txt_member_code']); $member_id = 0; if (!empty($member_code)) { $member = Member::model()->findByAttributes(array('member_code' => $member_code)); if (!empty($member)) { $member_id = $member->member_id; } } // sale_status if ($_POST['sale_status'] == 'cash') { $saleStatus = 'pay'; } else { $saleStatus = 'credit'; } $created_date = Util::input($_POST['BillSale']['bill_sale_created_date']); $created_date = Util::thaiToMySQLDate($created_date); // bill sale $modelBillSale = new BillSale(); $modelBillSale->bill_sale_created_date = $created_date; $modelBillSale->bill_sale_status = $saleStatus; $modelBillSale->member_id = $member_id; $modelBillSale->bill_sale_vat = Util::input($_POST['bill_sale_vat']); $modelBillSale->user_id = (int) Yii::app()->request->cookies['user_id']->value; $modelBillSale->branch_id = Util::input($_POST['BillSale']['branch_id']); $modelBillSale->bonus_price = Util::input($_POST['bonus_price']); $modelBillSale->out_vat = Util::input($_POST['out_vat']); $modelBillSale->vat_type = Util::input($_POST['hidden_vat_type']); $modelBillSale->input_money = Util::input($_POST['hidden_input']); $modelBillSale->return_money = Util::input($_POST['hidden_return_money']); $modelBillSale->total_money = Util::input($_POST['hidden_total']); if ($_POST['sale_status'] == 'cash') { $_time = date("h:i:s"); $modelBillSale->bill_sale_pay_date = $created_date . " " . $_time; } if ($modelBillSale->save()) { // store data bill_sale_detail from session to database $i = 0; $qtys = $_POST['qtys']; foreach ($saleTemps as $saleTemp) { $qty_for_sub_stock = $qtys[$i]; $model = new BillSaleDetail(); $model->bill_id = $modelBillSale->bill_sale_id; $model->bill_sale_detail_barcode = $saleTemp->barcode; $model->bill_sale_detail_price = $saleTemp->price; $model->bill_sale_detail_qty = $saleTemp->qty; $model->bill_sale_detail_price_vat = $saleTemp->price * 0.07000000000000001; $model->old_price = $saleTemp->old_price; $model->save(); // sub stock $product_code = $saleTemp->barcode; // find by barcode $product = Product::model()->findByAttributes(array('product_code' => $product_code)); if (empty($product)) { // find by pack barcode $product = Product::model()->findByAttributes(array('product_pack_barcode' => $product_code)); } if (empty($product)) { // find by barcode_price $barcodePrice = BarcodePrice::model()->findByAttributes(array('barcode' => $product_code)); $product = $barcodePrice->getProduct(); } if (!empty($saleTemp->qty_per_pack)) { $qty_for_sub_stock = $saleTemp->qty_per_pack * $qty_for_sub_stock; } $qty = $product->product_quantity - $qty_for_sub_stock; $product->product_quantity = $qty; $product->save(); $i++; } // save to tb_product_serial $serials = $_POST['serials']; $hidden_product_codes = $_POST['hidden_product_codes']; if (!empty($serials)) { $i = 0; foreach ($serials as $serial) { $product_code = $hidden_product_codes[$i]; $productSerial = new ProductSerial(); $productSerial->product_code = $product_code; $productSerial->serial_no = $serial; $productSerial->product_start_date = new CDbExpression('NOW()'); $productSerial->bill_sale_id = $modelBillSale->bill_sale_id; // expire date if (!empty($r['product_expire_date'])) { $expire_date = Util::thaiToMySQLDate($r['product_expire_date']); $productSerial->product_expire_date = $expire_date; } $productSerial->save(); } } // keep last bill_id $output = array('last_bill_id' => $modelBillSale->bill_sale_id, 'message' => 'success'); echo CJSON::encode($output); } else { echo 'can not save modal bill sale'; } } else { echo 'saleTemp is a empty'; } }