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