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); }
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)); }