public function actionIndex() { Yii::trace('[JOBS][actionIndex] Show jobs page'); //Initial $data = array('knight' => &$this->user_data['knights'], 'spearsMaterial' => SpearsMaterials::model()->findAll(array('index' => 'id')), 'app_rules_level' => AppRulesLevel::model()->findAll(array('index' => 'level')), 'job' => Jobs::model()->find('knights_id=:knights_id AND status = :status', array(':knights_id' => Yii::app()->user->knights_id, ':status' => Jobs::STATUS_WORKING))); //Check if user is not at job and user wants one and his status is enable. if (!$data['job'] && ($this->user_data['knights']->status == Knights::STATUS_ENABLE || $this->user_data['knights']->status == Knights::STATUS_WITHOUT_EQUIPMENT) && isset($_POST['hours']) && is_numeric($_POST['hours']) && $_POST['hours'] > 0 && $_POST['hours'] < 9) { Yii::trace('[JOBS][actionIndex] Inserting a new job'); $data['job'] = new Jobs(); $data['job']->attributes = array('knights_id' => Yii::app()->user->knights_id, 'knight_level' => $this->user_data['knights']->level, 'date' => date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s") . ' +' . $_POST['hours'] . ' hour' . ($_POST['hours'] > 1 ? 's' : ''))), 'hours' => $_POST['hours'], 'status' => Jobs::STATUS_WORKING); //Insert new job if ($data['job']->save()) { //Change status of knight $this->user_data['knights']->status = Knights::STATUS_AT_WORK; if (!$this->user_data['knights']->save()) { Yii::trace('[JOBS][index] No se ha podido poner al caballero en estado trabajando'); } } else { //Upss fail job Yii::trace('[JOBS][index] Jobs save is fail'); $data['job'] = null; } } else { if (isset($_POST['hours'])) { if ($data['job']) { Yii::app()->user->setFlash('error', 'Ya tienes un trabajo. No puedes hacer como los políticos de trabajar en otra cosa mientras estás contratado.'); } if ($this->user_data['knights']->status != Knights::STATUS_ENABLE && $this->user_data['knights']->status != Knights::STATUS_WITHOUT_EQUIPMENT) { Yii::app()->user->setFlash('error', 'No puedes trabajar si ya estás trabajando o en mitad de un combate.'); } if (!is_numeric($_POST['hours']) || $_POST['hours'] <= 0 || $_POST['hours'] > 8) { Yii::app()->user->setFlash('error', 'El número de horas es confuso. ¿Que estás haciendo?' . $_POST['hours']); } } } $this->render('index', $data); }
public function actionIndex() { //Init $data = array('defaultValues' => array('inventory_type' => Inventory::EQUIPMENT_TYPE_ARMOUR, 'spear_name' => null, 'spear_material' => null, 'spear_equipment_size' => null, 'spear_equipment_quality' => null, 'spear_equipment_rarity' => null, 'spear_damage_min' => null, 'spear_damage_max' => null, 'spear_pde_min' => null, 'spear_pde_max' => null, 'spear_prize_min' => null, 'spear_prize_max' => null, 'armour_name' => null, 'armour_material' => null, 'armour_equipment_size' => null, 'armour_equipment_quality' => null, 'armour_equipment_rarity' => null, 'armour_endurance_min' => null, 'armour_endurance_max' => null, 'armour_pde_min' => null, 'armour_pde_max' => null, 'armour_prize_min' => null, 'armour_prize_max' => null, 'armour_type' => null), 'result' => array()); //Check input filter if (isset($_POST['inventory_type']) && is_numeric($_POST['inventory_type'])) { $data['defaultValues']['inventory_type'] = $_POST['inventory_type']; //For search $conditions = '1=1 '; $params = array(); switch ($_POST['inventory_type']) { case Inventory::EQUIPMENT_TYPE_ARMOUR: if (isset($_POST['armour_name']) && $_POST['armour_name'] != '') { $data['defaultValues']['armour_name'] = $_POST['armour_name']; $conditions .= 'AND name like :name '; $params[':name'] = '%' . $_POST['armour_name'] . '%'; } if (isset($_POST['armour_material']) && is_numeric($_POST['armour_material'])) { $data['defaultValues']['armour_material'] = $_POST['armour_material']; $conditions .= 'AND armours_materials_id = :armours_materials_id '; $params[':armours_materials_id'] = $_POST['armour_material']; } if (isset($_POST['armour_equipment_size']) && is_numeric($_POST['armour_equipment_size'])) { $data['defaultValues']['armour_equipment_size'] = $_POST['armour_equipment_size']; $conditions .= 'AND equipment_size_id = :equipment_size_id '; $params[':equipment_size_id'] = $_POST['armour_equipment_size']; } if (isset($_POST['armour_equipment_quality']) && is_numeric($_POST['armour_equipment_quality'])) { $data['defaultValues']['armour_equipment_quality'] = $_POST['armour_equipment_quality']; $conditions .= 'AND armour_equipment_size_id = :armour_equipment_size_id '; $params[':armour_equipment_size_id'] = $_POST['armour_equipment_quality']; } if (isset($_POST['armour_equipment_rarity']) && is_numeric($_POST['armour_equipment_rarity'])) { $data['defaultValues']['armour_equipment_rarity'] = $_POST['armour_equipment_rarity']; $conditions .= 'AND equipment_rarity_id = :equipment_rarity_id '; $params[':equipment_rarity_id'] = $_POST['armour_equipment_quality']; } if (isset($_POST['armour_endurance_min']) && is_numeric($_POST['armour_endurance_min'])) { $data['defaultValues']['armour_endurance_min'] = $_POST['armour_endurance_min']; $conditions .= 'AND endurance >= :endurance_min '; $params[':endurance_min'] = $_POST['armour_endurance_min'] - 1 < 0 ? 0 : $_POST['armour_endurance_min'] - 1; //Calcula min } if (isset($_POST['armour_endurance_max']) && is_numeric($_POST['armour_endurance_max'])) { $data['defaultValues']['armour_endurance_max'] = $_POST['armour_endurance_max']; $conditions .= 'AND endurance <= :endurance_max '; $params[':endurance_max'] = $_POST['armour_endurance_max'] - 10 < 0 ? 0 : $_POST['armour_endurance_max'] - 10; //Calculate max } if (isset($_POST['armour_pde_min']) && is_numeric($_POST['armour_pde_min'])) { $data['defaultValues']['armour_pde_min'] = $_POST['armour_pde_min']; $conditions .= 'AND pde >= :pde_min '; $params[':pde_min'] = $_POST['armour_pde_min']; } if (isset($_POST['armour_pde_max']) && is_numeric($_POST['armour_pde_max'])) { $data['defaultValues']['armour_pde_max'] = $_POST['armour_pde_max']; $conditions .= 'AND pde <= :pde_max '; $params[':pde_max'] = $_POST['armour_pde_max']; } if (isset($_POST['armour_prize_min']) && is_numeric($_POST['armour_prize_min'])) { $data['defaultValues']['armour_prize_min'] = $_POST['armour_prize_min']; $conditions .= 'AND prize >= :prize_min '; $params[':prize_min'] = $_POST['armour_prize_min']; } if (isset($_POST['armour_prize_max']) && is_numeric($_POST['armour_prize_max'])) { $data['defaultValues']['armour_prize_max'] = $_POST['armour_prize_max']; $conditions .= 'AND prize <= :pde_max '; $params[':pde_max'] = $_POST['armour_prize_max']; } if (isset($_POST['armour_type']) && is_numeric($_POST['armour_type'])) { $data['defaultValues']['armour_type'] = $_POST['armour_type']; $conditions .= 'AND type = :type '; $params[':type'] = $_POST['armour_type']; } $data['result'] = Armours::model()->findAll($conditions, $params); break; case Inventory::EQUIPMENT_TYPE_SPEAR: if (isset($_POST['spear_name']) && $_POST['spear_name'] != '') { $data['defaultValues']['spear_name'] = $_POST['spear_name']; $conditions .= 'AND name like :spear_name'; $params[':spear_name'] = '%' . $_POST['spear_name'] . '%'; } if (isset($_POST['spear_material']) && is_numeric($_POST['spear_material'])) { $data['defaultValues']['spear_material'] = $_POST['spear_material']; $conditions .= 'AND spears_materials_id = :spear_material'; $params[':spear_material'] = $_POST['spear_material']; } if (isset($_POST['spear_equipment_size']) && is_numeric($_POST['spear_equipment_size'])) { $data['defaultValues']['spear_equipment_size'] = $_POST['spear_equipment_size']; $conditions .= 'AND equipment_size_id = :equipment_size_id'; $params[':equipment_size_id'] = $_POST['spear_equipment_size']; } if (isset($_POST['spear_equipment_quality']) && is_numeric($_POST['spear_equipment_quality'])) { $data['defaultValues']['spear_equipment_quality'] = $_POST['spear_equipment_quality']; $conditions .= 'AND equipment_qualities_id = :equipment_qualities_id'; $params[':equipment_qualities_id'] = $_POST['spear_equipment_quality']; } if (isset($_POST['spear_equipment_rarity']) && is_numeric($_POST['spear_equipment_rarity'])) { $data['defaultValues']['spear_equipment_rarity'] = $_POST['spear_equipment_rarity']; $conditions .= 'AND equipment_rarity_id = :equipment_rarity_id'; $params[':equipment_rarity_id'] = $_POST['spear_equipment_rarity']; } if (isset($_POST['spear_damage_min']) && is_numeric($_POST['spear_damage_min'])) { $data['defaultValues']['spear_damage_min'] = $_POST['spear_damage_min']; $conditions .= 'AND damage >= :damage_min'; $params[':damage_min'] = $_POST['spear_damage_min']; } if (isset($_POST['spear_damage_max']) && is_numeric($_POST['spear_damage_max'])) { $data['defaultValues']['spear_damage_max'] = $_POST['spear_damage_max']; $conditions .= 'AND damage <= :damage_max'; $params[':damage_max'] = $_POST['spear_damage_max']; } if (isset($_POST['spear_pde_min']) && is_numeric($_POST['spear_pde_min'])) { $data['defaultValues']['spear_pde_min'] = $_POST['spear_pde_min']; $conditions .= 'AND pde >= :pde_min'; $params[':pde_min'] = $_POST['spear_pde_min']; } if (isset($_POST['spear_pde_max']) && is_numeric($_POST['spear_pde_max'])) { $data['defaultValues']['spear_pde_max'] = $_POST['spear_pde_max']; $conditions .= 'AND pde <= :pde_max'; $params[':pde_max'] = $_POST['spear_pde_max']; } if (isset($_POST['spear_prize_min']) && is_numeric($_POST['spear_prize_min'])) { $data['defaultValues']['spear_prize_min'] = $_POST['spear_prize_min']; $conditions .= 'AND prize >= :prize_min'; $params[':prize_min'] = $_POST['spear_prize_min']; } if (isset($_POST['spear_prize_max']) && is_numeric($_POST['spear_prize_max'])) { $data['defaultValues']['spear_prize_max'] = $_POST['spear_prize_max']; $conditions .= 'AND prize <= :prize_min'; $params[':prize_min'] = $_POST['spear_prize_max']; } $data['result'] = Spears::model()->findAll($conditions, $params); break; case Inventory::EQUIPMENT_TYPE_TRICK: break; default: //inventory type is not define } } //Load data filter $data['inventory_type_list'] = array("" . Inventory::EQUIPMENT_TYPE_ARMOUR => 'Armadura', "" . Inventory::EQUIPMENT_TYPE_SPEAR => 'Lanza', "" . Inventory::EQUIPMENT_TYPE_TRICK => 'Trampa'); //Load data for material, qualities, rarity $data['spear_material'] = SpearsMaterials::model()->findAll(); $data['armour_material'] = ArmoursMaterials::model()->findAll(); $data['equipment_size'] = EquipmentSize::model()->findAll(); $data['equipment_quality'] = EquipmentQualities::model()->findAll(); $data['equipment_rarity'] = EquipmentRarity::model()->findAll(); $data['armour_type'] = Constants::model()->findAll('type = :type', array(':type' => Armours::TYPE)); //Load data for select $data['spear_material_list'] = CHtml::listData($data['spear_material'], 'id', 'name'); $data['armour_material_list'] = CHtml::listData(ArmoursMaterials::model()->findAll(), 'id', 'name'); $data['equipment_size_list'] = CHtml::listData(EquipmentSize::model()->findAll(), 'id', 'name'); $data['equipment_quality_list'] = CHtml::listData(EquipmentQualities::model()->findAll(), 'id', 'name'); $data['equipment_rarity_list'] = CHtml::listData(EquipmentRarity::model()->findAll(), 'id', 'name'); $data['armour_type_list'] = CHtml::listData(Constants::model()->findAll('type = :type', array(':type' => Armours::TYPE)), 'id', 'name'); //Render template $this->render('index', $data); }
public function actionGet() { $output = array('errno' => 1, 'message' => ''); if (isset($_GET['id']) && is_numeric($_GET['id'])) { $model = SpearsMaterials::model()->findByPk($_GET['id']); if ($model) { $output['row'] = $model->attributes; $output['errno'] = 0; } else { $output['message'] = 'El identificador no se ha encontrado.'; } } else { $output['message'] = 'El identificador no es válido.'; } //show echo CJavaScript::jsonEncode($output); }
/** * Funciones para devolver el nombre del select elegido. */ public function getSpearsMaterialsText() { $model = SpearsMaterials::model()->findByPk($this->spears_materials_id); return $model->level; }