diff --git a/www/application/models/Combo_model.php b/www/application/models/Combo_model.php
new file mode 100644
index 0000000..c92903e
--- /dev/null
+++ b/www/application/models/Combo_model.php
@@ -0,0 +1,409 @@
+db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "id", "description", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+
+
+
+
+
+
+
+ public function getSurvelListGroupCombo($option_name, $curVal) {
+ $sql = "SELECT id,title,status FROM main_cards WHERE button1_action = 'SURVEYA' AND status = 1 ORDER BY title";
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "id", "title", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getfindMemberType($option_name, $curVal) {
+ $yesno_array = [
+ 'email' => 'Email',
+ 'firstname' => 'Firstname',
+ 'lastname' => 'Lastname'
+ ];
+ $option_value = $this->optionValueArray($yesno_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getDescisionGroupCombo($option_name, $curVal) {
+ $sql = "SELECT dkey,description FROM decision_group where status =1 ORDER by lorder ASC";
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "dkey", "description", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardBehaveCombo($option_name, $curVal) {
+ $sql = "SELECT * FROM card_behavior WHERE status=1 ";
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "key", "name", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardTargetActionCombo($option_name, $curVal) {
+ $sql = "SELECT * FROM card_action_target WHERE status=1 ";
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "target_key", "description", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardCategoryCombo($option_name, $curVal, $fixCat = '') {
+ if (trim($fixCat) == '') {
+ $sql = "SELECT * FROM card_category WHERE status=1 AND special =0 ";
+ } else {
+ $sql = "SELECT * FROM card_category WHERE status=1 AND cat='$fixCat' ";
+ }
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "cat", "name", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getStatusCombo($option_name, $curVal) {
+ $yesno_array = [
+ '0' => 'Not-Active',
+ '1' => 'Active'
+ ];
+ $option_value = $this->optionValueArray($yesno_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getTitleShowCombo($option_name, $curVal) {
+ $yesno_array = [
+ '1' => 'Show Title',
+ '0' => 'Hide Title'
+ ];
+ $option_value = $this->optionValueArray($yesno_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardTemplateCombo($option_name, $curVal) {
+ $yesno_array = [
+ '0' => 'Default Layout 600x600 Text+image',
+ '1' => 'Short Layout 600x300 Text+image',
+ '2' => 'Short Layout 600x300 Image only',
+ '3' => 'Tall Layout 600x800 image only',
+ '5' => 'Tall Layout 600x800 image + text',
+ '4' => 'Short Layout 600x300 Solid Color 1',
+ '6' => 'Default Layout 600x600 Image only',
+ '7' => 'Active Tip 600 x 200'
+ ];
+ $option_value = $this->optionValueArray($yesno_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getSurveyCardTemplateCombo($option_name, $curVal) {
+ $yesno_array = [
+ '9901' => 'Default Survey',
+ '9902' => 'Swipe Survey 600 x 600'
+
+ ];
+ $option_value = $this->optionValueArray($yesno_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardCategoryType($option_name, $curVal) {
+ $yesno_array = [
+ '' => 'No Type',
+ 'A' => 'Type A',
+ 'B' => 'Type B',
+ 'C' => 'Type C'
+ ];
+ $option_value = $this->optionValueArray($yesno_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardLocation($option_name, $curVal) {
+
+ $sql = "SELECT id,description FROM address WHERE description != ''";
+ /*
+ $yesno_array = [
+ '0' => 'No Location',
+ '1' => '4201 Defoors Farm trail, ga 30127',
+ '2' => 'Location B',
+ '3' => 'Location C'
+
+ ];
+ $option_value = $this->optionValueArray($yesno_array, $curVal);
+ */ $this->defaultComboMessage = "No Location Attached";
+ $this->defaultComboValue = '0';
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "id", "description", $curVal);
+
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getReciept($option_name, $curVal) {
+
+ $sql = "SELECT id,name,active FROM transport_providers WHERE active =1 ORDER BY name";
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "id", "name", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardPoint($option_name, $curVal) {
+ $cardtime_array = [
+ '0' => 'No Points Applicable'
+ ];
+ for ($i = 1; $i < 24; $i++) {
+ $points = $i * 50;
+ $cardtime_array = array_merge($cardtime_array, array($points => "$points Points"));
+ }
+
+ $option_value = $this->optionValueArray($cardtime_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardTime($option_name, $curVal) {
+ $cardtime_array = [
+ '' => 'No Specific Time',
+ '12 AM' => '12 AM'
+ ];
+ for ($i = 1; $i < 12; $i++) {
+ $cardtime_array = array_merge($cardtime_array, array("$i: AM" => "$i: AM"));
+ }
+ $cardtime_array = array_merge($cardtime_array, array("12: PM" => "12: PM"));
+ for ($i = 1; $i < 12; $i++) {
+ $cardtime_array = array_merge($cardtime_array, array("$i: PM" => "$i: PM"));
+ }
+
+ $option_value = $this->optionValueArray($cardtime_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getYesNoCombo($option_name, $curVal) {
+ $yesno_array = [
+ '0' => 'No',
+ '1' => 'Yes'
+ ];
+ $option_value = $this->optionValueArray($yesno_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getCardPicturesCombo($option_name, $curVal) {
+ $sql = "SELECT 'https://resources.float.sg/cards/'||uniqueid||'.'||format AS id,"
+ . " id||'-https://resources.float.sg/cards/'||uniqueid||'.'||format AS val FROM card_images";
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "id", "val", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getJobPostDuration($option_name, $duration) {
+ $this->defaultComboMessage = 'Select duration of post';
+ $cmbstr = "";
+ for ($ii = 2; $ii <= 10; $ii++) {
+
+ $cmbstr .= "";
+ }
+
+ for ($ii = 2; $ii <= 5; $ii++) {
+ $days_c = $ii * 7;
+ $cmbstr .= "";
+ }
+ return $this->comboFrame($option_name, $cmbstr);
+ }
+
+ public function getUserJobGroupCombo($option_name, $member_id, $curVal) {
+
+ // $sql = "SELECT id,group_name FROM members_job_group WHERE member_id = $member_id AND status = 1 ORDER BY group_name ASC ";
+ $sql = "SELECT m.id,m.group_name, m.group_name||' ['||count(g.group_id)||' members]' AS member_group_count "
+ . "FROM members_job_group m "
+ . "LEFT JOIN members_job_groupmember g ON g.group_id = m.id "
+ . "WHERE m.member_id = $member_id "
+ . "AND m.status = 1 GROUP BY m.id,m.group_name ORDER BY m.group_name ASC";
+
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "id", "member_group_count", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getUserRecipientCombo($option_name, $member_id, $curVal) {
+
+ $sql = "SELECT b.id,b.firstname||' '||b.lastname||' '||b.account_no||' '||k.name AS recipient "
+ . "FROM sendmoney_recipient b "
+ . "LEFT JOIN bank_entity_codes k ON k.code=b.bank_code "
+ . "WHERE b.member_id = $member_id AND b.status=1";
+
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "id", "recipient", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getAccountTypeCombo($option_name, $curVal) {
+ $q = $this
+ ->db
+ ->where('status', 1)
+ ->order_by('type_name', 'ASC')
+ ->get('account_types');
+
+ $option_value = $this->optionValueObject($q->result(), "type_value", "type_name", $curVal);
+
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getGeneralSkillCombo($option_name, $curVal) {
+ $this->showDefaultSelect = false;
+ $q = $this
+ ->db
+ ->where('status', 1)
+ ->order_by('lorder', 'DESC')
+ ->get('skill_category');
+ $option_value = $this->optionValueObject($q->result(), "id", "category", $curVal);
+
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getUserNewSkillCombo($option_name, $curVal, $category_id, $member_id) {
+ $q = $this
+ ->db
+ ->where('status', 1)
+ ->where('category_id', $category_id)
+ ->order_by('lorder', 'DESC')
+ ->get('skill_types');
+ $option_value = $this->optionValueObject($q->result(), "id", "skill", $curVal);
+
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function setReadOnly($bl) {
+ $this->readOnlyMode = $bl;
+ }
+
+ public function getCountryCombo($option_name, $curVal) {
+ $q = $this
+ ->db
+ ->where('status', 1)
+ ->order_by('country', 'ASC')
+ ->get('country');
+
+ $option_value = $this->optionValueObject($q->result(), "code", "country", $curVal);
+
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getTransportProvidersCombo($option_name, $curVal) {
+ $q = $this
+ ->db
+ ->where('active', 1)
+ ->order_by('name', 'ASC')
+ ->get('transport_providers');
+
+ $option_value = $this->optionValueObject($q->result(), "id", "name", $curVal);
+
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ private function optionValueArray($sdStd, $val) {
+ $this->optCons = '';
+ foreach ($sdStd as $key => $value) {
+ $selV = '';
+ if ($key == $val) {
+ $selV = " selected ";
+ }
+ $this->optCons .= "";
+ }
+ return $this->optCons;
+ }
+
+ private function optionValueObject($sdStd, $val, $valname, $curVal) {
+ $this->optCons = '';
+ if ($this->showDefaultSelect == true) {
+ $this->optCons .= "";
+ }
+
+
+ foreach ($sdStd as $row) {
+ $selV = '';
+ if ($curVal == $row->$val) {
+ $selV = " selected ";
+ }
+ $this->optCons .= "";
+ }
+ return $this->optCons;
+ }
+
+ private function comboFrame($option_name, $option_value) {
+ $addReaOnly = "";
+ if ($this->readOnlyMode == true) {
+ $addReaOnly = " disabled ";
+ }
+
+
+
+ $combo_to_return = $cmb = "";
+ $this->defaultComboMessage = "Select"; // house cleaning
+ $this->defaultComboValue = '';
+ return $combo_to_return;
+ }
+
+ public function getCardActionTypeCombo($option_name, $curVal) {
+ $options_array = [
+ 'alert' => 'Show Alert',
+ 'browser' => 'Open Browser',
+ 'deeplink' => 'Open App via Deeplink',
+ 'callback' => 'Call API'
+ ];
+ $option_value = $this->optionValueArray($options_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getTimezoneCombo($option_name) {
+ $q = $this->db->get('address_timezone');
+
+ $option_value = $this->optionValueObject($q->result(), "id", "timezone", "");
+
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ // put this function in the model and use for now for the Neighborhood combo
+ public function getCountryNeighborhoodCombo($option_name, $country, $cState, $curVal) {
+ $hood_array = [
+ '0' => 'Neighborhood 100',
+ '1' => 'Neighborhood 200',
+ '2' => 'Neighborhood 300',
+ '3' => 'Neighborhood 400',
+ '5' => 'Neighborhood 500',
+ '4' => 'Neighborhood 600',
+ '6' => 'Neighborhood 700'
+ ];
+ $option_value = $this->optionValueArray($hood_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getControllerCombo($option_name, $options_array, $curVal) {
+ $option_value = $this->optionValueArray($options_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getPermissionLevel($option_name, $curVal) {
+ $sql = "SELECT * FROM bko_permission_level WHERE status=1 ";
+ $q = $this->db->query($sql);
+ $option_value = $this->optionValueObject($q->result(), "plevel", "name", $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+
+ public function getControllerAndMethodCombo($option_name, $options_array, $curVal) {
+ $option_value = $this->optionValueArray($options_array, $curVal);
+ return $this->comboFrame($option_name, $option_value);
+ }
+}