Esempio n. 1
0
 public function getSumReport($data, $row)
 {
     $criteria = new CDbCriteria();
     $criteria->select = 'SUM(import_bill_detail_price * import_bill_detail_qty) AS SUM_ALL';
     $criteria->join = 'INNER JOIN tb_bill_import_detail AS c ON c.bill_import_code = t.bill_import_code';
     $criteria->condition = 'bill_import_pay = "credit"';
     $criteria->condition = 'bill_import_pay_status = "wait"';
     $criteria->compare("t.farmer_id", $data->farmer_id);
     $criteria->group = 't.farmer_id';
     $result = BillImport::model()->query($criteria);
     return number_format($result->SUM_ALL, 2);
 }
Esempio n. 2
0
 public function actionBillImportDetail($bill_import_code = null, $id = null)
 {
     $this->checkLogin();
     $configSoftware = ConfigSoftware::model()->find();
     // CHECK $bill_import_code
     if (empty($bill_import_code)) {
         if (!empty($_POST['BillImportDetail'])) {
             $bill_import_code = Util::input($_POST['BillImportDetail']['bill_import_code']);
         }
     }
     // CREATE OBJECT OF BillImport
     $modelBillImport = BillImport::model()->findByPk($bill_import_code);
     $modelBillImportDetail = new BillImportDetail();
     $modelBillImportDetail->bill_import_code = $bill_import_code;
     // SAVE
     if (!empty($_POST)) {
         $pk = (int) Util::input($_POST['BillImportDetail']['bill_import_detail_id']);
         $bill_import_code = Util::input($_POST['BillImportDetail']['bill_import_code']);
         // CREATE OBJECT OF BillImportDetail
         if (!empty($pk)) {
             $model = BillImportDetail::model()->findByPk($pk);
         } else {
             $model = new BillImportDetail();
         }
         // QTY
         $qty = Util::input($_POST['BillImportDetail']['import_bill_detail_product_qty']);
         $qty_before = Util::input($_POST['qty_before']);
         $newQty = 0;
         if (!empty($qty_before)) {
             if ($qty_before > $qty) {
                 // -
                 $newQty = -($qty_before - $qty);
             } else {
                 // +
                 $newQty = $qty - $qty_before;
             }
         }
         // UPDATE STOCK
         $codeProduct = Util::input($_POST['BillImportDetail']['product_id']);
         $product = Product::model()->findByAttributes(array('product_code' => $codeProduct));
         if (empty($product)) {
             $barcodePrice = BarcodePrice::model()->findByAttributes(array('barcode' => $codeProduct));
             if (!empty($barcodePrice)) {
                 $product = $barcodePrice->getProduct();
             }
         }
         if (!empty($product)) {
             if (!empty($pk)) {
                 $product->product_quantity += $newQty;
             } else {
                 if (!empty($qty)) {
                     $product->product_quantity += $qty;
                 }
             }
             // update by barcode_prices
             if (!empty($_POST['qty_sub_stock'])) {
                 $qty_sub_stock = Util::input($_POST['qty_sub_stock']);
                 $qty_input = Util::input($_POST['BillImportDetail']['import_bill_detail_product_qty']);
                 $qty_total = $qty_input * $qty_sub_stock;
                 $qty_add = $product->product_quantity + $qty_total;
                 $qty_add -= $qty_input;
                 $product->product_quantity = $qty_add;
             }
             $product->save();
             // SAVE bill_import_detail
             $model->attributes = Util::input($_POST["BillImportDetail"]);
             $model->import_bill_detail_qty = $qty * $product->product_total_per_pack;
             $model->product_id = $product->product_id;
             $model->import_bill_detail_code = Util::input($_POST['BillImportDetail']['product_id']);
             $model->import_bill_detail_qty_per_pack = $product->product_total_per_pack;
             // add from barcode_prices
             if (!empty($_POST['qty_sub_stock'])) {
                 $model->import_bill_detail_qty = $qty * Util::input($_POST['qty_sub_stock']);
                 $model->import_bill_detail_qty_per_pack = Util::input($_POST['qty_sub_stock']);
             }
             // DEFAULT PRICE
             if (empty($_POST['BillImportDetail']['import_bill_detail_price'])) {
                 $model->import_bill_detail_price = $product->product_price;
             }
             // SAVE
             if ($model->save()) {
                 $this->redirect(array('BillImportDetail', 'bill_import_code' => $bill_import_code));
             }
         }
     }
     // DATA FOR EDIT
     if (!empty($id)) {
         $modelBillImportDetail = BillImportDetail::model()->findByPk($id);
     }
     // sum
     $sumQty = 0;
     $sumPrice = 0;
     // RENDER
     $pagination = new CPagination();
     $pagination->setPageSize($configSoftware->items_per_page);
     $dataProvider = $modelBillImportDetail->search(@$modelBillImport->bill_import_code);
     $dataProvider->setPagination($pagination);
     $this->render('//Basic/BillImportDetail', array('modelBillImport' => $modelBillImport, 'model' => $modelBillImportDetail, 'sumQty' => $sumQty, 'sumPrice' => $sumPrice, 'dataProvider' => $dataProvider));
 }
Esempio n. 3
0
				
				<div>
					<!-- farmer_id -->
					<label for=""><?php 
echo Yii::t('lang', 'purchased_from');
?>
</label>
					<?php 
echo $form->dropdownList($model, 'farmer_id', Farmer::getOptions(), array('class' => 'form-control', 'style' => 'width: 400px'));
?>
				</div>
				
				<div>
					<?php 
$importPay = BillImport::getImportPay();
$payStatus = BillImport::getPayStatus();
?>
					
					<!-- bill_import_pay -->
					<label for=""><?php 
echo Yii::t('lang', 'payment');
?>
</label>
					<?php 
echo $form->dropdownList($model, 'bill_import_pay', $importPay, array('class' => 'form-control', 'style' => 'width: 200px'));
?>
					
					<!-- bill_import_pay_status -->
					<label for=""><?php 
echo Yii::t('lang', 'status');
?>