user_id = $user_id; $this->saved_query_id = $saved_query_id; $this->wrapper_obj = $wrapperObj; $this->isPDO = $wrapperObj instanceof QueryWrapper ? true : false; $criteria = $this->get_settings(); $this->criteria = $criteria; } public function get_settings(){ if(!$this->saved_query_id){ $sql = 'SELECT saved_query_id FROM orchadmin_user_saved_query WHERE orchadmin_user_id = ? AND orchadmin_sub_type = "Release Schedule Dashboard" ORDER BY date_created DESC LIMIT 1'; if ($this->isPDO) { $dataParams = [$this->user_id]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $this->user_id); } $row = $this->wrapper_obj->executeQuery($sql, $dataParams); if ($row === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } if (count($row)) { $this->saved_query_id = $row[0]['saved_query_id']; } } if(!empty($this->saved_query_id) && is_numeric($this->saved_query_id)){ $check_saved_search = 'SELECT saved_query_id, orchadmin_user_id, query_type, orchadmin_sub_type, query_name, description FROM orchadmin_user_saved_query WHERE saved_query_id = ? AND orchadmin_user_id = ? AND query_type = "search" AND orchadmin_sub_type = "Release Schedule Dashboard"'; if ($this->isPDO) { $dataParams = [$this->saved_query_id, $this->user_id]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $this->saved_query_id); $dataParams->addDataParam('i', $this->user_id); } $check_saved_search = $this->wrapper_obj->executeQuery($check_saved_search, $dataParams); if ($check_saved_search === false) { $this->isPDO ? show_pdo_error($check_saved_search, $this->wrapper_obj->getLastStatement()) : showierror($check_saved_search); } if (count($check_saved_search) <= 0) { $fatal_error = true; $fatal_error_msg = 'Invalid Saved Search ID provided.'; }else{ $saved_search_query = 'SELECT saved_query_criteria_id, saved_query_id, criteria_name, criteria_value FROM orchadmin_user_saved_query_criteria WHERE saved_query_id = ?'; if ($this->isPDO) { $dataParams = [$this->saved_query_id]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $this->saved_query_id); } $saved_search_result = $this->wrapper_obj->executeQuery($saved_search_query, $dataParams); if ($saved_search_result === false) { $this->isPDO ? show_pdo_error($saved_search_query, $this->wrapper_obj->getLastStatement()) : showierror($saved_search_query); } $saved_search_variables = array(); foreach ($saved_search_result as $saved_row) { $pattern = "/\[\]$/"; if(preg_match($pattern, $saved_row["criteria_name"])) { $temp_var_name = preg_replace($pattern, "", $saved_row["criteria_name"]); $$temp_var_name = explode(",",$saved_row["criteria_value"]); $saved_search_variables[$temp_var_name] = $$temp_var_name; } else { $$saved_row["criteria_name"] = $saved_row["criteria_value"]; $saved_search_variables[$saved_row["criteria_name"]] = $$saved_row["criteria_name"]; } } $sql = 'UPDATE orchadmin_user_saved_query SET last_run = NOW() WHERE saved_query_id = ?'; if ($this->isPDO) { $dataParams = [$this->saved_query_id]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $this->saved_query_id); } $return_type = $this->isPDO ? QueryWrapper::RETURN_AFFECTED_ROWS : MysqliWrapper::RETURN_AFFECTED_ROWS; if ($this->wrapper_obj->executeQuery($sql, $dataParams, $return_type) === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } } } if(isset($saved_search_variables) && count($saved_search_variables)){ $all_empty = 1; foreach($saved_search_variables as $k=>$v){ if($v){ $all_empty = 0; } } if($all_empty){ return false; } return $saved_search_variables; }else{ return false; } } public function set_settings($search_criteria, $description = "Release Schedule Dashboard"){ $act = "save_search"; $orchadmin_user_id = $this->user_id; if(!$this->saved_query_id){ $dataParams = new QueryData(); $insert_search = 'INSERT INTO orchadmin_user_saved_query (orchadmin_user_id, query_type, orchadmin_sub_type, query_name, description, date_created) VALUES (?, "search", "Release Schedule Dashboard", "Release Schedule Dashboard", ?, NOW())'; if ($this->isPDO) { $dataParams = [$orchadmin_user_id ,$description]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $orchadmin_user_id); $dataParams->addDataParam('s', $description); } $return_type = $this->isPDO ? QueryWrapper::RETURN_INSERT_ID : MysqliWrapper::RETURN_INSERT_ID; $insertId = $this->wrapper_obj->executeQuery($insert_search, $dataParams, $return_type); if ($insertId === false) { $this->isPDO ? show_pdo_error($insert_search, $this->wrapper_obj->getLastStatement()) : showierror($insert_search); } $this->saved_query_id = $insertId; }else{ $sql = 'UPDATE orchadmin_user_saved_query SET orchadmin_user_id = ?, query_type = "search", orchadmin_sub_type = "Release Schedule Dashboard", query_name = "Release Schedule Dashboard", description = ? WHERE saved_query_id = ?'; if ($this->isPDO) { $dataParams = [$orchadmin_user_id ,$description, $this->saved_query_id]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $orchadmin_user_id); $dataParams->addDataParam('s', $description); $dataParams->addDataParam('i', $this->saved_query_id); } $return_type = $this->isPDO ? QueryWrapper::RETURN_AFFECTED_ROWS : MysqliWrapper::RETURN_AFFECTED_ROWS; if ($this->wrapper_obj->executeQuery($sql, $dataParams, $return_type) === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } } if(sizeof($search_criteria) > 0 && is_array($search_criteria)){ if($this->saved_query_id){ $sql = 'DELETE FROM orchadmin_user_saved_query_criteria WHERE saved_query_id = ?'; if ($this->isPDO) { $dataParams = [$this->saved_query_id]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $this->saved_query_id); } $return_type = $this->isPDO ? QueryWrapper::RETURN_AFFECTED_ROWS : MysqliWrapper::RETURN_AFFECTED_ROWS; if ($this->wrapper_obj->executeQuery($sql, $dataParams, $return_type) === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } } $insert_search_criteria = ""; $dataParams = $this->isPDO ? [] : new QueryData(); foreach($search_criteria as $i => $v){ $vv = is_array($v) ? implode(',',$v) : $v; $ii = is_array($v) ? ($i."[]") : $i; $insert_search_criteria .= ', (?, ?, ?) '; $this->isPDO ? $dataParams[] = $this->saved_query_id : $dataParams->addDataParam('i', $this->saved_query_id); $this->isPDO ? $dataParams[] = $ii : $dataParams->addDataParam('s', $ii); $this->isPDO ? $dataParams[] = $vv : $dataParams->addDataParam('s', $vv); } $insert_search_criteria = trim($insert_search_criteria, ","); $insert_search_criteria = "insert into orchadmin_user_saved_query_criteria (saved_query_id, criteria_name, criteria_value) values" . $insert_search_criteria; $return_type = $this->isPDO ? QueryWrapper::RETURN_INSERT_ID : MysqliWrapper::RETURN_INSERT_ID; if ($this->wrapper_obj->executeQuery($insert_search_criteria, $dataParams, $return_type) === false) { $this->isPDO ? show_pdo_error($insert_search_criteria, $this->wrapper_obj->getLastStatement()) : showierror($insert_search_criteria); } } } public function generate_rsd_release($page = NULL, $pageRecord = NULL) { $RSD_Release = array(); $tmp_RSD_Release = array(); $where_clause = ''; $date_clause = ''; $from_release_date = ''; $to_release_date = ''; $from_sale_start_date = ''; $to_sale_start_date = ''; $label_ids = array(); $new_catalog = ""; $oa_users = array(); $whereClauseDataParamsValues = array(); $dateClauseDataParamsValues = array(); $on_clause = ''; $sql3 = "select ou.id, concat(ou.f_name, ' ',ou.l_name) as name from orchadmin_users ou inner join releases r on r.int_mkt_manager = ou.id union all select ou.id, concat(ou.f_name, ' ',ou.l_name) as name from orchadmin_users ou inner join releases r on r.int_mkt_manager = ou.id "; $dataParams = $this->isPDO ? [] : new QueryData(); $rs3 = $this->wrapper_obj->executeQuery($sql3, $dataParams); if ($rs3 === false) { $this->isPDO ? show_pdo_error($sql3, $this->wrapper_obj->getLastStatement()) : showerror($sql3); } foreach ($rs3 as $row3) { $oa_users[$row3['id']] = $row3['name']; } if($this->criteria['offset_or_range']=="offset"){ if($this->criteria['release_date_date_unit1'] && $this->criteria['release_date_date_unit2'] && ($this->criteria['release_date_offset1']!='') && ($this->criteria['release_date_offset2']!='')){ $from_release_date = fnc_date_calc(date("Y-m-d H:i:s"),$this->criteria['release_date_date_unit1'],$this->criteria['release_date_offset1'],"sub"); $to_release_date = fnc_date_calc(date("Y-m-d H:i:s"),$this->criteria['release_date_date_unit2'],$this->criteria['release_date_offset2'],"add"); } if($this->criteria['sale_start_date_date_unit1'] && $this->criteria['sale_start_date_date_unit2'] && ($this->criteria['sale_start_date_offset1']!='') && ($this->criteria['sale_start_date_offset2']!='')){ $from_sale_start_date = fnc_date_calc(date("Y-m-d H:i:s"),$this->criteria['sale_start_date_date_unit1'],$this->criteria['sale_start_date_offset1'],"sub"); $to_sale_start_date = fnc_date_calc(date("Y-m-d H:i:s"),$this->criteria['sale_start_date_date_unit2'],$this->criteria['sale_start_date_offset2'],"add"); } }else{ $from_release_date = $this->criteria['from_release_date']; $to_release_date = $this->criteria['to_release_date']; $from_sale_start_date = $this->criteria['from_sale_start_date']; $to_sale_start_date = $this->criteria['to_sale_start_date']; } if(!empty($this->criteria['company'])){ $tmp_company = explode('(',$this->criteria['company']); $where_clause .= ' AND company like (?)'; $whereClauseDataParamsValues[]['s'] = trim('%' . $tmp_company[0] . '%'); } $date_clause .= ' and ((1 '; if(!empty($from_release_date) || !empty($to_release_date)){ if(!empty($from_release_date)){ $date_clause .= ' AND release_date >= ?'; $dateClauseDataParamsValues[]['s'] = date('Y-m-d', strtotime($from_release_date)); } if(!empty($to_release_date)){ $date_clause .= ' AND release_date <= ?'; $dateClauseDataParamsValues[]['s'] = date('Y-m-d', strtotime($to_release_date)); } } if(!empty($from_sale_start_date) || !empty($to_sale_start_date)){ if(!empty($from_sale_start_date)){ $date_clause .= ' AND sale_start_date >= ?'; $dateClauseDataParamsValues[]['s'] = date('Y-m-d', strtotime($from_sale_start_date)); } if(!empty($to_sale_start_date)){ $date_clause .= ' AND sale_start_date <= ?'; $dateClauseDataParamsValues[]['s'] = date('Y-m-d', strtotime($to_sale_start_date)); } } $date_clause .= ' ) '; if(($from_release_date && !$to_release_date)){ $date_clause .= ' or (release_date is null or release_date = "") '; } if(($from_sale_start_date && !$to_sale_start_date)){ $date_clause .= ' or (sale_start_date is null or sale_start_date = "") '; } if(isset($this->criteria['ignore_datetime'])){ $date_clause .= ' or (sale_start_date is null or sale_start_date = "") '; $date_clause .= ' or (release_date is null or release_date = "") '; } $date_clause .= ' ) '; if(!empty($this->criteria['assigned_to'])){ if(count($this->criteria['assigned_to'])){ $pms = $this->criteria['assigned_to']; $where_clause .= ' AND assigned_to IN ( ' . implode(',', array_fill(0, count($pms), '?')) . ')'; foreach ($pms as $val) { $whereClauseDataParamsValues[]['i'] = $val; } } } if(!empty($this->criteria['int_mkt_manager'])){ if(count($this->criteria['int_mkt_manager'])){ $imm = $this->criteria['int_mkt_manager']; $where_clause .= ' AND int_mkt_manager IN ( ' . implode(',', array_fill(0, count($imm), '?')) . ')'; foreach ($imm as $val) { $whereClauseDataParamsValues[]['i'] = $val; } } } if(isset($this->criteria['priority']) && count($this->criteria['priority'])){ $where_clause .= ' AND v.priority IN (' . implode(',', array_fill(0, count($this->criteria['priority']), '?')) . ')'; foreach ($this->criteria['priority'] as $val) { $whereClauseDataParamsValues[]['i'] = $val; } } if(!empty($this->criteria['mkt_priority'])){ $where_clause .= ' AND mp.priority IN (' . implode(',', array_fill(0, count($this->criteria['mkt_priority']), '?')) . ')'; foreach ($this->criteria['mkt_priority'] as $val) { $whereClauseDataParamsValues[]['s'] = $val; } } if(!empty($this->criteria['new_release'])){ $where_clause .= ' AND r.new_release IN (' . implode(',', array_fill(0, count($this->criteria['new_release']), '?')) . ')'; foreach ($this->criteria['new_release'] as $val) { $whereClauseDataParamsValues[]['s'] = $val; } } if(!empty($this->criteria['int_mkt_priority'])){ $on_clause.= " AND imp.priority in('".implode("','",$this->criteria['int_mkt_priority'])."') "; } if (!empty($this->criteria['owner'])) { $owner = $this->criteria['owner']; $where_clause .= ' AND v.owner IN ( ' . implode(',', array_fill(0, count($owner), '?')) . ')'; foreach ($owner as $val) { $whereClauseDataParamsValues[]['s'] = $val; } } if (!empty($this->criteria['label_ids'])) { $labelIdArray = explode("\n", trim(preg_replace('/[\r\n]+/', "\n", $this->criteria['label_ids']))); if (count($labelIdArray)) { $where_clause .= ' AND v.vendor_id IN ( ' . implode(',', array_fill(0, count($labelIdArray), '?')) . ')'; foreach ($labelIdArray as $val) { $whereClauseDataParamsValues[]['i'] = $val; } } } $restricted_release_ids = array(); $restricted_upcs = array(); $restricted_labels = array(); if(!empty($this->criteria['preferred_country'])){ //LABEL LEVEL $sql = "SELECT v.vendor_id FROM vendor v LEFT JOIN (SELECT vc1.vendor_id, vc1.cont_start, vc1.cont_end, vc1.contract_type, vc1.release_term, vc1.id, vc1.territory_carve_out FROM vendor_contract vc1 WHERE vc1.cont_start IN ( SELECT MAX(vc2.cont_start) FROM vendor_contract vc2 WHERE vc2.vendor_id = vc1.vendor_id ) ) vcon on vcon.vendor_id = v.vendor_id where find_in_set(vcon.territory_carve_out, ?)"; if ($this->isPDO) { $dataParams = [implode(',', $this->criteria['preferred_country'])]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('s', implode(',', $this->criteria['preferred_country'])); } $rs = $this->wrapper_obj->executeQuery($sql, $dataParams); if ($rs === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } foreach ($rs as $row) { $restricted_labels[$row['vendor_id']] = $row['vendor_id']; } } if(!empty($this->criteria['upcs'])){ $upcs_arr = array(); $upcs = trim($this->criteria['upcs'], "\n"); $upcs = str_replace("\r", '', $upcs); $upcs_arr = explode ("\n", $upcs); $k=0; foreach($upcs_arr as $v){ if(!checkUPC($v)){ unset($upcs_arr[$k]); } $k++; } if(count($upcs_arr)){ $where_clause .= ' AND r.upc IN ( ' . implode(',', array_fill(0, count($upcs_arr), '?')) . ')'; foreach ($upcs_arr as $val) { $whereClauseDataParamsValues[]['i'] = $val; } } } $dataParams = $this->isPDO ? [] : new QueryData(); $where_clause .= " AND df.context_type != 'physical' "; $sql = "SELECT SQL_CALC_FOUND_ROWS r.release_id, (IF (r.release_status = 'in_content', 1, 0)) as isCatalog, r.release_date, r.sale_start_date, r.preorder_date, a.name as artist_name, r.release_name, r.label, r.upc, r.display_upc, r.manufacturer_upc, r.format, r.new_release, v.vendor_id, if(v.company is null or v.company = '', v.name, v.company) as account, v.priority as label_priority, r.int_mkt_manager, r.release_status, v.owner, g.genre, r.genre_id, concat(ou.f_name,' ',ou.l_name) as assigned_to FROM releases r LEFT JOIN genre g ON g.genre_id = r.genre_id INNER JOIN artist_info a ON a.artist_id = r.artist_id INNER JOIN vendor v ON v.vendor_id = a.vendor_id LEFT JOIN orchadmin_users ou on ou.id = v.assigned_to LEFT JOIN distribution_format df ON r.distribution_format_id = df.distribution_format_id "; if (!empty($this->criteria['preferred_country']) && count($this->criteria['preferred_country']) > 0) { $sql .= ' LEFT JOIN release_territory_restriction rtr ON rtr.release_id = r.release_id AND rtr.country_id IN (' . implode(',', array_fill(0, count($this->criteria['preferred_country']), '?')) .')'; foreach ($this->criteria['preferred_country'] as $val) { $this->isPDO ? $dataParams[] = $val : $dataParams->addDataParam('i', $val); } $where_clause .= ' AND rtr.release_id IS NULL'; } if (isset($this->criteria["asset_type"]) && count($this->criteria["asset_type"])) { $sql .= ' INNER JOIN cd_receive cr ON cr.upc = r.upc AND v.vendor_id = cr.vendor_id AND cr.asset_type IN (' . implode(',', array_fill(0, count($this->criteria['asset_type']), '?')) . ')'; foreach ($this->criteria['asset_type'] as $val) { $this->isPDO ? $dataParams[] = $val : $dataParams->addDataParam('s', $val); } } if (isset($this->criteria['mkt_priority']) && count($this->criteria['mkt_priority'])) { $sql .= ' INNER JOIN mkt_priority mp ON mp.release_id = r.release_id'; if (!empty($this->criteria['preferred_country']) && count($this->criteria['preferred_country'])) { $sql .= ' AND mp.country_id IN (' . implode(',', array_fill(0, count($this->criteria['preferred_country']), '?')) . ')'; foreach ($this->criteria['preferred_country'] as $val) { $this->isPDO ? $dataParams[] = $val : $dataParams->addDataParam('i', $val); } } } if (isset($this->criteria['int_mkt_priority']) && count($this->criteria['int_mkt_priority'])) { $sql .= ' INNER JOIN int_mkt_priority imp ON imp.release_id = r.release_id'; if (!empty($this->criteria['preferred_country']) && count($this->criteria['preferred_country'])) { $sql .= ' AND imp.country_id IN (' . implode(',', array_fill(0, count($this->criteria['preferred_country']), '?')) . ')'; foreach ($this->criteria['preferred_country'] as $val) { $this->isPDO ? $dataParams[] = $val : $dataParams->addDataParam('i', $val); } } } $where_clause .= " AND r.not_for_distribution != 'SMEAnalyticsDummy' "; $sql .= ' WHERE 1 ' . $where_clause . $date_clause . ' GROUP BY r.release_id'; if ($page && $pageRecord) { $sql .= ' LIMIT ' . ($page-1) * $pageRecord . ',' . $pageRecord; } foreach ($whereClauseDataParamsValues as $key => $val) { $this->isPDO ? $dataParams[] = current($val) : $dataParams->addDataParam(key($val), current($val)); } foreach ($dateClauseDataParamsValues as $key => $val) { $this->isPDO ? $dataParams[] = current($val) : $dataParams->addDataParam(key($val), current($val)); } $rs = $this->wrapper_obj->executeQuery($sql, $dataParams); $dataParams = $this->isPDO ? [] : new QueryData(); $sql = 'SELECT FOUND_ROWS() AS total'; $count = $this->wrapper_obj->executeQuery($sql, $dataParams); $this->dataCount = $count[0]['total']; foreach ($rs as $row) { if(isset($restricted_labels[$row['vendor_id']])) continue; if( isset($this->criteria['status']) && count($this->criteria['status'])){ if($row['isCatalog']==1){ if(!in_array("catalog",$this->criteria['status'])) continue; }else{ if(!in_array($row['release_status'],$this->criteria['status'])) continue; } } $int_mkt_manager = ($row['int_mkt_manager'] ? $oa_users[$row['int_mkt_manager']] : 0); $uid = $row['isCatalog']?$row['upc']:$row['release_id']; $tmp_arr = array( "isCatalog"=>$row['isCatalog'], "uid"=>$uid, "release_id"=>$row['release_id'], "release_date"=>$row['release_date'], "sale_start_date"=>$row['sale_start_date'], "preorder_date"=>$row['preorder_date'], "artist_name"=>$row['artist_name'], "release_name"=>$row['release_name'], "label_imprint"=>$row['label'], "upc"=>$row['upc'], "display_upc"=>$row['display_upc'], "manufacturer_upc"=>$row['manufacturer_upc'], "format"=>$row['format'], "new_release"=>$row['new_release'], "account"=>$row['account'], "label_priority"=>$row['label_priority'], "account_id"=>$row['vendor_id'], "account"=>$row['account'], "int_mkt_manager"=>$int_mkt_manager, "owner"=>$row['owner'], "genre" => $row['genre'], "genre_id" => $row['genre_id'], "assigned_to" => $row['assigned_to'] ); $tmp_RSD_Release[$uid."_".$row['isCatalog']] = $tmp_arr; $label_ids[] = $row["vendor_id"]; } $territory_carveouts = array(); $dms_carve_out = array(); if(in_array('Territory',$this->criteria['display_columns']) && count($label_ids)){ $label_ids = array_unique($label_ids); $today = date("Y-m-d"); $sql5 = "SELECT v.vendor_id, vcc.id, vcc.cont_start, vcc.territory_carve_out, vcc.dms_carve_out FROM vendor v INNER JOIN vendor_contract vcc ON v.vendor_id=vcc.vendor_id LEFT JOIN vendor_contract vcc2 ON vcc.vendor_id = vcc2.vendor_id AND vcc2.cont_start <= CURDATE() AND ( vcc2.contract_type = 'per_release_term' AND ( vcc2.cont_start = '0000-00-00' OR vcc2.release_term <=0 OR ( vcc2.cont_start + interval vcc2.release_term month) > CURDATE() ) OR ( (vcc2.contract_type <> 'per_release_term' OR vcc2.contract_type IS NULL) AND (vcc2.cont_end >= CURDATE() OR vcc2.cont_end IS NULL OR vcc2.cont_end = '0000-00-00') ) ) AND vcc.cont_start < vcc2.cont_start where vcc2.id IS NULL AND vcc.cont_start <= CURDATE() AND ( vcc.contract_type = 'per_release_term' AND ( vcc.cont_start = '0000-00-00' OR vcc.release_term <=0 OR ( vcc.cont_start + interval vcc.release_term month) > CURDATE() ) OR ( (vcc.contract_type <> 'per_release_term' OR vcc.contract_type IS NULL) AND (vcc.cont_end >= CURDATE() OR vcc.cont_end IS NULL OR vcc.cont_end = '0000-00-00') ) ) AND v.vendor_id IN (" . implode(',', array_fill(0, count($label_ids), '?')) . ") ORDER BY v.vendor_id "; $dataParams = $this->isPDO ? [] : new QueryData(); foreach ($label_ids as $key => $val) { $this->isPDO ? $dataParams[] = $val : $dataParams->addDataParam('i', $val); } $rs = $this->wrapper_obj->executeQuery($sql5, $dataParams); if ($rs === false) { $this->isPDO ? show_pdo_error($sql5, $this->wrapper_obj->getLastStatement()) : showierror($sql5); } foreach ($rs as $row) { if(trim($row['territory_carve_out']) || trim($row['dms_carve_out'])){ $territory_carveouts[$row['vendor_id']] = explode(',',trim($row['territory_carve_out'])); $dms_carve_out[$row['vendor_id']] = explode(',',trim($row['dms_carve_out'])); }else{ $territory_carveouts[$row['vendor_id']] = array(); $dms_carve_out[$row['vendor_id']] = array(); } } foreach($tmp_RSD_Release as $uid_isCatalog=>$eachRelease){ if(array_key_exists($eachRelease['account_id'],$territory_carveouts)){ $tmp_RSD_Release[$uid_isCatalog]['territory_carve_out'] = $territory_carveouts[$eachRelease['account_id']]; $tmp_RSD_Release[$uid_isCatalog]['territory_carve_out_display'] = get_name_from_country($this->wrapper_obj, $territory_carveouts[$eachRelease['account_id']]); } if(array_key_exists($eachRelease['account_id'],$dms_carve_out)){ $tmp_dms_carveout = RSD_Release::get_customer_master_name_by_ids( $this->wrapper_obj, implode(',',$dms_carve_out[$eachRelease['account_id']])); $tmp_RSD_Release[$uid_isCatalog]['dms_carve_out'] = $tmp_dms_carveout ? explode(',',$tmp_dms_carveout) : array(); } } } foreach($tmp_RSD_Release as $k=>$tmp_arr){ $tmp_release = RSD_Release::getReleaseObject($tmp_arr, $this->wrapper_obj); $RSD_Release[] = $tmp_release; } if(count($RSD_Release)){ $this->total = count($RSD_Release); return $RSD_Release; } return false; } public function getDataCount() { return $this->dataCount; } public function remove_setting(){ if($this->saved_query_id){ if ($this->isPDO) { $dataParams = [$this->saved_query_id]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $this->saved_query_id); } $sql = 'DELETE FROM orchadmin_user_saved_query_criteria WHERE saved_query_id = ?'; $return_type = $this->isPDO ? QueryWrapper::RETURN_AFFECTED_ROWS : MysqliWrapper::RETURN_AFFECTED_ROWS; if ($this->wrapper_obj->executeQuery($sql, $dataParams, $return_type) === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } $sql = 'DELETE FROM orchadmin_user_saved_query WHERE saved_query_id = ?'; if ($this->wrapper_obj->executeQuery($sql, $dataParams, $return_type) === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } } } public function add_setting($search_criteria, $description){ $this->saved_query_id = 0; $this->set_settings($search_criteria,$description); } public function get_total_releases(){ return $this->total; } public function get_columns(){ $criteria = $this->criteria; return $criteria['display_columns']; } public function get_criteria(){ return $this->criteria; } public function get_profile(){ $profile_details = array(); $sql = 'SELECT * FROM orchadmin_user_saved_query WHERE orchadmin_user_id = ? AND saved_query_id = ?'; if ($this->isPDO) { $dataParams = [$this->user_id, $this->saved_query_id]; } else { $dataParams = new QueryData(); $dataParams->addDataParam('i', $this->user_id); $dataParams->addDataParam('i', $this->saved_query_id); } $rs = $this->wrapper_obj->executeQuery($sql, $dataParams); if ($rs === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } if (count($rs)) { $profile_details = $rs[0]; } return $profile_details; } public static function populate_dms($customer_master_master_ids, $wrapperObj) { if($customer_master_master_ids){ $isPDO = $wrapperObj instanceof QueryWrapper; $dataParams = $isPDO ? [] : new QueryData(); $cmsIds = explode(',', $customer_master_master_ids); $sql = 'SELECT customer_id, name FROM customer_master WHERE customer_master_master_id IN (' . implode(',', array_fill(0, count($cmsIds), '?')) . ')'; foreach ($cmsIds as $key => $val) { $isPDO ? $dataParams[] = $val : $dataParams->addDataParam('i', $val); } $rs = $wrapperObj->executeQuery($sql, $dataParams); if ($rs === false) { $isPDO ? show_pdo_error($sql, $wrapperObj->getLastStatement()) : showierror($sql); } $dsp = array(); foreach($rs as $row) { $dsp[] = array("name"=>$row['name'],"id"=>$row['customer_id']); } echo json_encode($dsp); } } public function getArtists($releases) { $dataParams = $this->isPDO ? [] : new QueryData(); $sql = 'select a.name, r.release_id from artist_info a inner join releases r on r.artist_id = a.artist_id where r.release_id IN ' . '(' . implode(',', array_fill(0, count($releases), '?')) . ')'; foreach ($releases as $val) { $this->isPDO ? $dataParams[] = $val : $dataParams->addDataParam('i', $val); } $rs = $this->wrapper_obj->executeQuery($sql, $dataParams); if ($rs === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } $artists = array(); foreach ($rs as $row) { $artists[$row['release_id']] = $row['name']; } return $artists; } public function isHighlightedV2($uids) { $dataParams = $this->isPDO ? [] : new QueryData(); $sql = 'SELECT * FROM release_schedule_dashboard_change_history where criteria = "Highlighted" AND uid IN ' . '(' . implode(',', array_fill(0, count($uids), '?')) . ')'; foreach ($uids as $key => $val) { $this->isPDO ? $dataParams[] = $val : $dataParams->addDataParam('i', $key); } $rs = $this->wrapper_obj->executeQuery($sql, $dataParams); if ($rs === false) { $this->isPDO ? show_pdo_error($sql, $this->wrapper_obj->getLastStatement()) : showierror($sql); } $releases = array(); foreach ($rs as $row) { $releases[$row['uid']] = $row['isCatalog']; } return $releases; } } ?>