Esempio n. 1
0
?>
</th>
        </tr>
      </thead>
      <tbody>

      <?php 
if (!empty($_GET['id'])) {
    ?>

      <?php 
    $id = $_GET['id'];
    $product = Product::model()->findByPk($id);
    $productPrices = null;
    if (!empty($product)) {
        $productPrices = ProductPrice::model()->findAll(array('condition' => 'product_barcode = :product_barcode', 'params' => array('product_barcode' => $product->product_code), 'order' => 'order_field ASC'));
        $n = 1;
    }
    ?>
        <!-- Update Record -->
        <?php 
    if (!empty($productPrices)) {
        ?>
        <?php 
        foreach ($productPrices as $productPrice) {
            ?>
        <tr>
          <td><?php 
            echo $n++;
            ?>
</td>
Esempio n. 2
0
 public function actionSale()
 {
     $this->checkLogin();
     $model = new BillSale();
     if (!empty($_POST)) {
         Yii::app()->session['sessionBillSale'] = $_POST;
         // BILL SALE DETAIL
         $arrayBillSaleDetail = Yii::app()->session['billSaleDetail'];
         if (empty($arrayBillSaleDetail)) {
             $arrayBillSaleDetail = array();
         }
         $size = count($arrayBillSaleDetail);
         // ADD bill_sale_detail ITEMS
         $productCode = Util::input($_POST['product_code']);
         $productQty = Util::input($_POST['product_qty']);
         $code = "";
         $price = 0;
         $qty_per_pack = 0;
         $product = Product::model()->findByAttributes(array('product_code' => $productCode));
         $sale_condition = Util::input($_POST['sale_condition']);
         if (empty($product)) {
             $product = Product::model()->findByAttributes(array('product_pack_barcode' => $productCode));
             if (!empty($product)) {
                 $code = $product->product_pack_barcode;
                 $price = $product->product_price_per_pack;
                 $qty_per_pack = $product->product_total_per_pack;
             }
         } else {
             // FIND PRICE OF PRODUCT
             if ($sale_condition == 'many') {
                 // กรณีขายส่ง
                 $price = $product->product_price_send;
                 // ค้นหาราคา ที่กำหนดไว้ใน product_prices
                 $productPrice = ProductPrice::model()->find(array("condition" => "\n              product_barcode = :productCode\n              AND (qty <= :productQty AND qty_end >= :productQty)\n            ", "params" => array("productCode" => $productCode, "productQty" => $productQty)));
                 if (!empty($productPrice)) {
                     $price = $productPrice->price_send;
                 }
             } else {
                 // กรณีขายปลีก
                 $price = $product->product_price;
                 // ค้นหาราคา ที่กำหนดไว้ใน product_prices
                 $productPrice = ProductPrice::model()->find(array("condition" => "\n              product_barcode = :productCode\n              AND (qty <= :productQty AND qty_end >= :productQty)\n            ", "params" => array("productCode" => $productCode, "productQty" => $productQty)));
                 if (!empty($productPrice)) {
                     $price = $productPrice->price;
                 }
             }
             $code = $product->product_code;
             $qty_per_pack = 1;
         }
         // หาราคา ตามตาราง barcode_prices
         $barcodePrice = BarcodePrice::model()->findByAttributes(array('barcode' => $productCode));
         if (!empty($barcodePrice)) {
             $price = $barcodePrice->price;
             $product = $barcodePrice->getProduct();
             $qty_per_pack = $barcodePrice->qty_sub_stock;
             $product->product_name = $product->product_name . ' ( ' . $barcodePrice->name . ' )';
         }
         // FOUND PRODUCT
         if (!empty($product)) {
             if (!empty($_POST['hidden_product_codes'])) {
                 // second item
                 $hidden_product_codes = Util::input($_POST['hidden_product_codes']);
                 $hidden_product_name = Util::input($_POST['hidden_product_name']);
                 $hidden_qty_per_pack = Util::input($_POST['hidden_qty_per_pack']);
                 $serials = Util::input($_POST['serials']);
                 $prices = Util::input($_POST['prices']);
                 $qtys = Util::input($_POST['qtys']);
                 $arr = array();
                 // old item
                 for ($i = 0; $i < count($hidden_product_codes); $i++) {
                     $arr[] = array('product_qty' => $qtys[$i], 'product_code' => $hidden_product_codes[$i], 'product_name' => $hidden_product_name[$i], 'product_price' => $prices[$i], 'product_serial_no' => $serials[$i], 'product_expire_date' => Util::input($_POST['product_expire_date']), 'product_qty_per_pack' => $hidden_qty_per_pack[$i], 'sale_status' => Util::input($_POST['sale_status']), 'sale_condition' => Util::input($_POST['sale_condition']), 'has_bonus' => 'normal', 'bill_sale_created_date' => Util::input($_POST['BillSale']['bill_sale_created_date']));
                 }
                 // add item
                 $arr[] = array('product_qty' => Util::input($_POST['product_qty']), 'product_code' => Util::input($_POST['product_code']), 'product_name' => $product->product_name, 'product_price' => $price, 'product_serial_no' => Util::input($_POST['product_serial_no']), 'product_expire_date' => Util::input($_POST['product_expire_date']), 'product_qty_per_pack' => $qty_per_pack, 'sale_status' => Util::input($_POST['sale_status']), 'sale_condition' => Util::input($_POST['sale_condition']), 'has_bonus' => 'normal', 'bill_sale_created_date' => Util::input($_POST['BillSale']['bill_sale_created_date']));
             } else {
                 // add item
                 $arr[] = array('product_qty' => Util::input($_POST['product_qty']), 'product_code' => Util::input($_POST['product_code']), 'product_name' => $product->product_name, 'product_price' => $price, 'product_serial_no' => Util::input($_POST['product_serial_no']), 'product_expire_date' => Util::input($_POST['product_expire_date']), 'product_qty_per_pack' => $qty_per_pack, 'sale_status' => Util::input($_POST['sale_status']), 'sale_condition' => Util::input($_POST['sale_condition']), 'has_bonus' => 'normal', 'bill_sale_created_date' => Util::input($_POST['BillSale']['bill_sale_created_date']));
             }
             Yii::app()->session['billSaleDetail'] = $arr;
             Yii::app()->session['billSaleCreatedDate'] = Util::input($_POST['BillSale']['bill_sale_created_date']);
             $this->redirect(array('Sale'));
         }
     }
     // RENDER
     $this->render('//Basic/Sale', array('model' => $model));
 }
Esempio n. 3
0
 function actionProductPriceSave()
 {
     $this->checkLogin();
     if (!empty($_POST)) {
         $product_code = Util::input($_POST['product_code']);
         $product_prices = str_replace(",", "", Util::input($_POST['product_price']));
         $product_price_sends = str_replace(",", "", Util::input($_POST['product_price_send']));
         $qtys = Util::input($_POST['qty']);
         $qty_ends = Util::input($_POST['qty_end']);
         $i = 0;
         ProductPrice::model()->deleteAllByAttributes(array("product_barcode" => $product_code));
         foreach ($product_prices as $product_price) {
             $price = $product_price;
             $price_send = $product_price_sends[$i];
             $qty = $qtys[$i];
             $qty_end = $qty_ends[$i];
             if ($qty > 0 && $price > 0) {
                 $productPrice = new ProductPrice();
                 $productPrice->product_barcode = $product_code;
                 $productPrice->price = $price;
                 $productPrice->price_send = $price_send;
                 $productPrice->qty = $qty;
                 $productPrice->qty_end = $qty_end;
                 $productPrice->order_field = $i + 1;
                 $productPrice->save();
             }
             $i++;
         }
         echo 'success';
     }
 }
Esempio n. 4
0
 public function actionSale()
 {
     if (!empty($_POST)) {
         $product_name;
         $qty_sub_stock;
         $old_price;
         // find product
         $product = Product::model()->findByAttributes(array('product_code' => Util::input($_POST['product_code'])));
         // not found find from barcode_price
         if (empty($product)) {
             $barcodePrice = BarcodePrice::model()->findByAttributes(array('barcode' => Util::input($_POST['product_code'])));
             if (!empty($barcodePrice)) {
                 $product = $barcodePrice->getProduct();
                 $product_name = $product->product_name . " ( {$barcodePrice->name} )";
                 $qty_sub_stock = $barcodePrice->qty_sub_stock;
                 $old_price = $barcodePrice->price_before;
             }
         } else {
             $product_name = $product->product_name;
             $qty_sub_stock = $product->product_total_per_pack;
         }
         // found product
         if (!empty($product)) {
             // find price
             $price = $product->product_price;
             $old_price = $product->product_price_buy;
             // find default price and send price
             $sale_condition = Util::input($_POST['sale_condition']);
             if ($sale_condition == 'one') {
                 // ขายปลีก
                 $price = $product->product_price;
             } else {
                 // ขายส่ง
                 $price = $product->product_price_send;
             }
             // find by barcode price
             $barcodePrice = BarcodePrice::model()->findByAttributes(array('barcode' => Util::input($_POST['product_code'])));
             if (!empty($barcodePrice)) {
                 $price = $barcodePrice->price;
                 $old_price = $barcodePrice->price_before;
                 $product_name = $product->product_name . " ( {$barcodePrice->name} )";
                 $qty_sub_stock = $barcodePrice->qty_sub_stock;
             }
             // find between price
             $productPrice = ProductPrice::model()->find(array('condition' => '
         product_barcode = :product_barcode
         AND 
         (qty <= :qty AND :qty <= qty_end)
       ', 'params' => array('qty' => (int) Util::input($_POST['qty']), 'product_barcode' => Util::input($_POST['product_code']))));
             if (!empty($productPrice)) {
                 if ($sale_condition == 'one') {
                     $price = $productPrice->price;
                 } else {
                     $price = $productPrice->price_send;
                 }
             }
             // find qty_sub_stock
             $qty_sub_stock = $product->product_total_per_pack;
             if (!empty($barcodePrice)) {
                 $qty_sub_stock = $barcodePrice->qty_sub_stock;
             }
             // default qty_sub_stock
             if ($qty_sub_stock == 0) {
                 $qty_sub_stock = 1;
             }
             // check condition
             $configSoftware = ConfigSoftware::model()->find();
             $is_sale = false;
             if ($configSoftware->sale_out_of_stock == 'yes') {
                 $is_sale = true;
             } else {
                 if ($product->product_quantity > 0) {
                     $is_sale = true;
                 }
             }
             if ($is_sale) {
                 // save to temp
                 $saleTemp = new SaleTemp();
                 $saleTemp->barcode = Util::input($_POST['product_code']);
                 $saleTemp->name = $product_name;
                 $saleTemp->serial = Util::input($_POST['serial']);
                 $saleTemp->price = str_replace(',', '', $price);
                 $saleTemp->qty = str_replace(',', '', $_POST['qty']);
                 $saleTemp->qty_per_pack = $qty_sub_stock;
                 $saleTemp->user_id = Yii::app()->request->cookies['user_id']->value;
                 $saleTemp->branch_id = (int) Util::input($_POST['branch_id']);
                 $saleTemp->pk_temp = rand(1, 99999);
                 $saleTemp->created_at = new CDbExpression('NOW()');
                 $saleTemp->old_price = $old_price;
                 // save and update stock
                 if ($saleTemp->save()) {
                     Yii::app()->session['branch_id'] = (int) Util::input($_POST['branch_id']);
                     echo 'success';
                 }
             } else {
                 echo Yii::t("lang", "product_out_of_stock");
             }
         }
     }
 }