public function getArmoursMaterialsText()
 {
     $model = ArmoursMaterials::model()->findByPk($this->armours_materials_id);
     return $model->name;
 }
 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);
 }
 /**
  * Return data for armours material
  */
 public function actionGet()
 {
     $output = array('errno' => 1, 'message' => '', 'row' => array('endurance' => null, 'prize' => null));
     if (isset($_GET['id']) && is_numeric($_GET['id'])) {
         $model = ArmoursMaterials::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 output
     echo CJavaScript::jsonEncode($output);
 }