コード例 #1
0
ファイル: cells.php プロジェクト: 19eugen86/schedro.extjs
if (($cmd == 'getAffStoreCells' || $cmd == 'getAvailableAffStoreCells') && !empty($_REQUEST['aff_store_id'])) {
    $data = $entity->getGroupedBy('aff_store_id', intval($_REQUEST['aff_store_id']));
} else {
    $data = EntityFactory::processRequest($cmd);
}
if ($cmd == 'getGrid' || $cmd == 'getAffStoreCells' || $cmd == 'getAvailableAffStoreCells') {
    if ($data['total'] > 0) {
        $entity = EntityFactory::loadEntity('MeasureRates');
        foreach ($data['data'] as $key => $cell) {
            $data['data'][$key]['free_area'] = $cell['area'];
            $entity = EntityFactory::loadEntity('Cells');
            $cellProducts = $entity->getCellProducts($cell['id']);
            if ($cellProducts['total'] > 0) {
                $entity = EntityFactory::loadEntity('MeasureRates');
                foreach ($cellProducts['data'] as $product) {
                    if ($product['remainder'] > EntityFactory::getSetting('min_reminder')) {
                        // Получаем кол-во поддонов на основании остатков. Остаток всегда в кг
                        $panNum = ceil($entity->getRatedValue(KG_MEASURE, P_MEASURE, $product['product_id'], $product['remainder']));
                        // Получаем текущую занимаемую площадь
                        $usedArea = ceil($entity->getRatedValue(P_MEASURE, M2_MEASURE, 0, $panNum));
                        $data['data'][$key]['free_area'] -= $usedArea;
                    }
                }
            }
        }
        // Убираем полностью занятые камеры из выпадающего списка.
        if ($cmd == 'getAvailableAffStoreCells') {
            $info = $data['data'];
            $data = array();
            foreach ($info as $key => $row) {
                if ($row['free_area'] > 0) {
コード例 #2
0
 public function getRatedValue($originM, $rateM, $product = 0, $value)
 {
     $sql = 'SELECT rate FROM ' . $this->getTable() . ' WHERE measure1_id=' . intval($originM) . ' AND measure2_id=' . intval($rateM);
     if ($product > 0) {
         $sql .= ' AND product_id=' . intval($product);
     }
     $rate = $this->getDb()->getOne($sql);
     if (!empty($rate)) {
         return round($value * $rate, EntityFactory::getSetting('decimal_digits_num'));
     } else {
         $sql = 'SELECT rate FROM ' . $this->getTable() . ' WHERE measure2_id=' . intval($originM) . ' AND measure1_id=' . intval($rateM);
         if ($product > 0) {
             $sql .= ' AND product_id=' . intval($product);
         }
         $rate = $this->getDb()->getOne($sql);
         if (!empty($rate)) {
             return round($value / $rate, EntityFactory::getSetting('decimal_digits_num'));
         }
     }
 }