Ejemplo n.º 1
0
Archivo: Bin.php Proyecto: sete-pw/test
 function add($params)
 {
     if (!isset($params['id_set'])) {
         return [ApiConstants::$STATUS => ApiConstants::$ERROR, ApiConstants::$ERROR_MESSAGE => ApiConstants::$ERROR_PARAMS_STRING, ApiConstants::$ERROR_CODE => ApiConstants::$ERROR_PARAMS_CODE];
     }
     if (\CO::AUTH()->user()) {
         // Корзина
         $bin = new \Application\Test\Model\Bin();
         // Проверяем, есть ли корзина у пользователя
         $binId = $bin->QUERY("SELECT id_order\nfrom orders\nwhere\n    user_id = ?\n    and\n    state = 'bin'\nlimit 1;\n            ", [['i', \CO::AUTH()->who()->ID()]]);
         if (count($binId)) {
             //Если есть, то забираем ее
             $bin->findBy_id_order($binId[0]['id_order']);
         } else {
             //Если нет, то создаем
             $bin->user_id = \CO::AUTH()->who()->ID();
             $bin->state = 'bin';
             $bin->price = 0;
             $bin->CREATE();
         }
         //Позиция
         $set = new \Application\Test\Model\OrderSet();
         //Проверка существования стола и его статуса
         $setId = $set->QUERY("\nSELECT id_set\nFROM sets\nWHERE id_set = ? and id_set not in (SELECt set_id FROM order_sets WHERE state <> 'delete')\n            ", [['i', (int) $params['id_set']]]);
         if (!count($setId)) {
             return [ApiConstants::$STATUS => ApiConstants::$ERROR, ApiConstants::$ERROR_MESSAGE => ApiConstants::$ERROR_BUSY_SET_STRING, ApiConstants::$ERROR_CODE => ApiConstants::$ERROR_BUSY_SET_CODE];
         }
         $setId = $set->QUERY("\nSELECT id_order_set\nFROM order_sets\nWHERE set_id = ?  and state <> 'delete'\n            ", [['i', $params['id_set']]]);
         if (count($setId)) {
             return [ApiConstants::$STATUS => ApiConstants::$ERROR, ApiConstants::$ERROR_MESSAGE => ApiConstants::$ERROR_BUSY_SET_STRING, ApiConstants::$ERROR_CODE => ApiConstants::$ERROR_BUSY_SET_CODE];
         }
         //Пытаемся добавить позицию
         $set->QUERY("INSERT INTO order_sets(\n    order_id,\n    set_id,\n    state\n)values(\n    ?, ?, 'add'\n);\n            ", [['i', $bin->ID()], ['i', (int) $params['id_set']]]);
         $set->findBy_id_order_set(\CO::SQL()->iid());
         if (isset($set->id_order_set)) {
             $returnRequest = ['id_order_set' => $set->ID()];
             $bin->price += $this->QUERY("\nSELECT price\nFROM tables inner join sets on tables.id_table = sets.table_id\nWHERE id_set=?", [['i', $set->set_id]])[0]['price'];
             $bin->UPDATE();
             return $returnRequest;
         }
         return null;
         /**
                                ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ (insert id)
         */
     }
     if (\CO::AUTH()->unknown()) {
         return [ApiConstants::$STATUS => ApiConstants::$ERROR, ApiConstants::$ERROR_MESSAGE => ApiConstants::$ERROR_AUTH__STRING, ApiConstants::$ERROR_CODE => ApiConstants::$ERROR_AUTH_CODE];
     }
 }
Ejemplo n.º 2
0
 function edit($params)
 {
     if (!isset($params['id_order_set']) || !isset($params['id_set'])) {
         return [ApiConstants::$STATUS => ApiConstants::$ERROR, ApiConstants::$ERROR_MESSAGE => ApiConstants::$ERROR_PARAMS_STRING, ApiConstants::$ERROR_CODE => ApiConstants::$ERROR_PARAMS_CODE];
     }
     if (\CO::AUTH()->admin()) {
         $order = new \Application\Test\Model\OrderSet();
         $set = new \Application\Test\Model\Set();
         $orderId = $order->QUERY("\nSELECT *\nFROM order_sets\nINNER JOIN sets ON order_sets.set_id = sets.id_set\nWHERE state = 'pay'\nAND sort_id >0\nAND id_order_set = ?\n\t\t\t\t", [['i', $params['id_order_set']]]);
         $orderId2 = $order->QUERY("\nSELECT *\nFROM `sets`\nWHERE id_set = ? and id_set not in (SELECT set_id FROM order_sets WHERE state in ('pay','bin'))\n\t\t\t\t", [['i', $params['id_set']]]);
         if (count($orderId) == 0) {
             if (count($orderId2) == 0) {
                 return [ApiConstants::$STATUS => ApiConstants::$ERROR, ApiConstants::$ERROR_MESSAGE => ApiConstants::$ERROR_NOT_FOUND_RECORD_STRING, ApiConstants::$ERROR_CODE => ApiConstants::$ERROR_NOT_FOUND_RECORD_CODE];
             }
         } else {
             if (count($orderId2) == 0) {
                 return [ApiConstants::$STATUS => ApiConstants::$ERROR, ApiConstants::$ERROR_MESSAGE => ApiConstants::$ERROR_NOT_FOUND_SET_STRING, ApiConstants::$ERROR_CODE => ApiConstants::$ERROR_NOT_FOUND_SET_CODE];
             }
         }
         $orderId = $order->findBy_id_order_set($params['id_order_set']);
         $orderId->set_id = $params['id_set'];
         $orderId->UPDATE();
         return [ApiConstants::$STATUS => ApiConstants::$SUCCESS];
     }
     if (\CO::AUTH()->unknown() || \CO::AUTH()->user()) {
         return [ApiConstants::$STATUS => ApiConstants::$ERROR, ApiConstants::$ERROR_MESSAGE => ApiConstants::$ERROR_AUTH__STRING, ApiConstants::$ERROR_CODE => ApiConstants::$ERROR_AUTH_CODE];
     }
 }