/** * Validates district is in the correct province. If false, returns province_name (validateDistrict !== true) */ public static function validateDistrict($district_id, $province_id) { $tableObj = new LocationDistrict(); $select = $tableObj->select()->from(array('d' => 'location_district'), array())->setIntegrityCheck(false)->join(array('p' => 'location_province'), "d.parent_province_id = p.id", array('id', 'province_name'))->where("d.id = {$district_id}"); try { $row = $tableObj->fetchRow($select); } catch (Zend_Exception $e) { error_log($e); } if ($row->id == $province_id) { return true; } else { return $row->province_name; } }
/** * Insert city if not found and has correct district, otherwise return id. Return -1 for incorrect district */ public static function insertIfNotFound($cityName, $province_id, $district_id = null) { if (!$cityName) { return false; } if ($district_id) { // verify district is in correct province require_once 'models/table/LocationDistrict.php'; if (LocationDistrict::validateDistrict($district_id, $province_id) !== true) { return -1; } } $cityTable = new LocationCity(); $select = $cityTable->select()->from($cityTable->_name, "id")->where("city_name = '{$cityName}' AND parent_province_id = {$province_id}"); if ($district_id) { $select->where("parent_district_id = {$district_id}"); } $row = $cityTable->fetchRow($select); if ($row) { return $row->id; } else { // insert $data = array(); $data['city_name'] = $cityName; $data['parent_district_id'] = $district_id; $data['parent_province_id'] = $province_id; return $cityTable->insert($data); } }