'0000-00-00 00:00:00') as min_release_date"; $from .= " LEFT JOIN vendor_contract vcc ON vcc.vendor_id = v.vendor_id LEFT JOIN (SELECT vc1.vendor_id, vc1.id, vc1.orchrep_name, vc1.cont_start, vc1.cont_end, vc1.contract_type, vc1.release_term, vc1.advance_payment, vc1.digital_split FROM vendor_contract vc1 WHERE IFNULL(vc1.cont_start,'') IN ( SELECT IFNULL(MAX(vc2.cont_start),'') FROM vendor_contract vc2 WHERE vc2.vendor_id = vc1.vendor_id ) ) vcon on vcon.vendor_id = v.vendor_id "; if($report_type=="new_target"){ $from .= " LEFT JOIN orchadmin_users ou2 ON ou2.id = vpt.orchrep_name "; }else{ $from .= " LEFT JOIN orchadmin_users ou2 ON ou2.id = vcon.orchrep_name "; } $where = ' WHERE 1'; if (!isOwnerInSession('orchard')) { $where .= ownerFilterSubQuery(' AND v.owner'); $dataParams = addSessionOwnerDataParam($dataParams); } if(!empty($type) && ($report_type=="new_target" || $report_type=="signed_label")){ $where .= ' AND vpt.type = ?'; $dataParams[] = $type; } if(!empty($advance) && $advance == '1') { $where .= " AND vpt.budgeted_advance > 0 "; } if(is_array($orchard_rep) && count($orchard_rep)) { if($report_type=="new_target"){ $where .= ' AND vpt.orchrep_name in (' . implode(',', array_fill(0, count($orchard_rep), '?')) . ')'; foreach ($orchard_rep as $val) { $dataParams[] = $val; } }else{ $where .= ' AND vcon.orchrep_name in (' . implode(',', array_fill(0, count($orchard_rep), '?')) . ')'; foreach ($orchard_rep as $val) { $dataParams[] = $val; } } } if(is_array($priority) && count($priority)) { $where .= ' AND v.priority in (' . implode(',', array_fill(0, count($priority), '?')) . ')'; foreach ($priority as $val) { $dataParams[] = $val; } } if(in_array($report_type,array("signed_label","renewal"))){ $where .= " AND v.status = 'signed' "; }elseif(is_array($status) && count($status)){ $where .= ' AND v.status in (' . implode(',', array_fill(0, count($status), '?')) . ')'; foreach ($status as $val) { $dataParams[] = $val; } } if(is_array($territory_restrictions)) { foreach($territory_restrictions as $k => $v) { if (!empty($v) && is_numeric($v)) { $where .= ' AND FIND_IN_SET(?, vpt.proposed_territory_carve_out)'; $dataParams[] = $v; } } } if(is_array($dms_restrictions)) { foreach($dms_restrictions as $k => $v) { if (!empty($v) && is_numeric($v)) { $where .= ' AND FIND_IN_SET(?, vpt.proposed_dms_carve_out)'; $dataParams[] = $v; } } } if(is_array($dms_master_restrictions)) { foreach($dms_master_restrictions as $k => $v) { if (!empty($v) && is_numeric($v)) { $where .= ' AND FIND_IN_SET(?, vpt.proposed_dms_master_carve_out)'; $dataParams[] = $v; } } } if(is_array($genre) && count($genre)) { $where .= ' AND v.primary_genre in (' . implode(',', array_fill(0, count($genre), '?')) . ')'; foreach ($genre as $val) { $dataParams[] = $val; } } if(is_array($closer) && count($closer)) { if($report_type=="new_target"){ $where .= ' AND vpt.orchrep_name in (' . implode(',', array_fill(0, count($closer), '?')) . ')'; foreach ($closer as $val) { $dataParams[] = $val; } }else{ $where .= ' AND vcon.orchrep_name in (' . implode(',', array_fill(0, count($closer), '?')) . ')'; foreach ($closer as $val) { $dataParams[] = $val; } } } if(!empty($date_signed_from)) { $where .= ' AND v.date_signed >= ?'; $dataParams[] = $date_signed_from; } if(!empty($date_signed_to)) { $where .= ' AND v.date_signed <= ?'; $dataParams[] = $date_signed_to; } switch ($report_type) { case 'renewal': $from .= ' AND vpt.type = "renewal"'; if(!empty($expiration_period) && is_numeric($expiration_period)) { $having .= ' HAVING expiration_date <= DATE_ADD("'.date("Y-m-d").'", INTERVAL ? MONTH ) and expiration_date <> "0000-00-00"'; $dataParams[] = $expiration_period; } break; case 'new_target': break; case 'signed_label': break; } $get_labels = $select . $from . $where . $group_by . $having; $get_labels .= " ORDER BY "; switch ($sort_by) { case 'company': $get_labels .= "company"; break; case 'priority': $get_labels .= "priority"; break; /*case 'orch_rep': $get_labels .= "orch_rep"; break;*/ case 'closer': $get_labels .= "closer"; break; case 'est_total_releases': $get_labels .= "est_total_releases"; break; case 'est_total_tracks': $get_labels .= "est_total_tracks"; break; case 'genre': $get_labels .= "genre"; break; case 'label_summary': $get_labels .= "label_summary"; break; case 'comment': $get_labels .= "comment"; break; case 'budgeted_advance': $get_labels .= "budgeted_advance"; break; case 'proposed_territory_carve_out': $get_labels .= "proposed_territory_carve_out"; break; case 'proposed_dms_carve_out': $get_labels .= "proposed_dms_carve_out"; break; case 'proposed_dms_master_carve_out': $get_labels .= "proposed_dms_master_carve_out"; break; case 'proposed_term': $get_labels .= "v"; break; case 'type': $get_labels .= "type"; break; case 'proposed_split': $get_labels .= "proposed_split"; break; case 'chance_to_close': $get_labels .= "chance_to_close"; break; case 'eta_to_close_year': $get_labels .= "eta_to_close_year"; break; case 'advance_payment': $get_labels .= "advance_payment"; break; case 'digital_split': $get_labels .= "digital_split"; break; case 'signed_term': $get_labels .= "signed_term"; break; case 'date_signed': $get_labels .= "date_signed"; break; case 'cont_start': $get_labels .= "cont_start"; break; case 'revenue': $get_labels .= "revenue"; break; case 'net_revenue': $get_labels .= "net_revenue"; break; default: $get_labels .= "company"; $sort_by = 'company'; $sort_desc = 0; } $get_labels .= ($sort_desc) ? ' DESC' : ''; $get_labels_result = $pdoWrapperObj->executeQuery($get_labels, $dataParams); if ($get_labels_result === false) { show_pdo_error($get_labels, $pdoWrapperObj->getLastStatement()); } $total = count($get_labels_result); $pageNum = ceil($total/$pageRecord); $vendor_ids = array(); foreach ($get_labels_result as $labels_row) { $vendor_ids[] = $labels_row["vendor_id"]; } $mainarray = array(); $gross_array = array(); $net_array = array(); if(($report_type == 'renewal' || $report_type == 'signed_label') && count($vendor_ids) > 0 and $view_revenue) { $vendor_id_chunks = array_chunk($vendor_ids, 10); foreach($vendor_id_chunks as $tmp_vendor_ids) { $dig_sales = accounting::get_vendor_accounting_entries($pdoWrapperObj, $tmp_vendor_ids, $last_period, $start_period, array('dig_net_receipt', 'dig_gross')); foreach ($tmp_vendor_ids as $vendor_id) { $gross_array[$vendor_id] = array(); $net_array[$vendor_id] = array(); if(isset($dig_sales[$vendor_id])){ foreach($dig_sales[$vendor_id] as $period_id=>$v){ $tmp_period = quaterly_period::getPeriodFromID($period_id); $period_code = $tmp_period->getPeriodCode(); if(!isset($gross_array[$vendor_id][$period_code])){ $gross_array[$vendor_id][$period_code] = 0; } if(!isset($net_array[$vendor_id][$period_code])){ $net_array[$vendor_id][$period_code] = 0; } $gross_array[$vendor_id][$period_code] += $v['dig_gross']; $net_array[$vendor_id][$period_code] += $v['dig_net_receipt']; } } } } unset($vendor_id_chunks); } $dms_query = "select customer_id, name customer_name from customer_master WHERE physical = 'N' ORDER BY customer_name"; $dms_result = $pdoWrapperObj->executeQuery($dms_query, []); if ($dms_result === false) { show_pdo_error($dms_query, $pdoWrapperObj->getLastStatement()); } $dms_list = array(); foreach ($dms_result as $dms_row) { $dms_list[$dms_row["customer_id"]] = $dms_row["customer_name"]; } $dms_master_query = "select customer_master_master_id, customer_name from customer_master_master ORDER BY customer_name"; $dms_master_result = $pdoWrapperObj->executeQuery($dms_master_query, []); if ($dms_master_result === false) { show_pdo_error($dms_master_query, $pdoWrapperObj->getLastStatement()); } $dms_master_list = array(); foreach ($dms_master_result as $dms_master_row) { $dms_master_list[$dms_master_row["customer_master_master_id"]] = $dms_master_row["customer_name"]; } $terr_query = "SELECT id, name FROM country ORDER BY name"; $terr_result = $pdoWrapperObj->executeQuery($terr_query, []); if ($terr_result === false) { show_pdo_error($terr_query, $pdoWrapperObj->getLastStatement()); } $terr_list = array(); foreach ($terr_result as $terr_row) { $terr_list[$terr_row["id"]] = $terr_row["name"]; } foreach ($get_labels_result as $labels_row) { $vendor_id = $labels_row["vendor_id"]; $subarray = $labels_row; if ($labels_row['contract_id']) { if ($labels_row['contract_type'] == 'per_release_term' and $labels_row['min_release_date']) $cont_start = $labels_row['min_release_date']; else $cont_start = $labels_row['cont_start']; if ($labels_row['expiration_date'] and $labels_row['expiration_date'] != '0000-00-00') $subarray['signed_term'] = round((DateDiff('d', $cont_start, $labels_row['expiration_date'])/365)); else $subarray['signed_term'] = 'No Expiration'; } else { $subarray['signed_term'] = ''; } $subarray['proposed_status'] = $labels_row['proposed_status']; $prop_terr_carve_out = $labels_row["proposed_territory_carve_out"]; $prop_terr_carve_out_arr = explode(",", $prop_terr_carve_out); $tmp = array(); foreach($prop_terr_carve_out_arr as $v) { $tmp[] = $terr_list[$v]; } sort($tmp); $subarray['proposed_territory_carve_out'] = implode(", ", $tmp); $prop_dms_carve_out = $labels_row["proposed_dms_carve_out"]; $prop_dms_carve_out_arr = explode(",", $prop_dms_carve_out); $tmp = array(); foreach($prop_dms_carve_out_arr as $v) { $tmp[] = $dms_list[$v]; } sort($tmp); $subarray['proposed_dms_carve_out'] = implode(", ", $tmp); $prop_dms_master_carve_out = $labels_row["proposed_dms_master_carve_out"]; $prop_dms_master_carve_out_arr = explode(",", $prop_dms_master_carve_out); $tmp = array(); foreach($prop_dms_master_carve_out_arr as $v) { $tmp[] = $dms_master_list[$v]; } sort($tmp); $subarray['proposed_dms_master_carve_out'] = implode(", ", $tmp); if($report_type == 'renewal' or $report_type == 'signed_label') { $subarray['revenue'] = isset($gross_array[$vendor_id])?$gross_array[$vendor_id]:array(); $subarray['net_revenue'] = isset($net_array[$vendor_id])?$net_array[$vendor_id]:array(); } $mainarray[] = $subarray; } $report_data = ' '.($no_url ? 'Label' : sortColumnHeader('Label', 'company', $url)).' '.($no_url ? 'Initial Priority' : sortColumnHeader('Initial Priority', 'priority', $url)).''; /*'.($no_url ? 'Orch Rep' : sortColumnHeader('Orch Rep', 'orch_rep', $url)).'*/ $report_data .= ' '.($no_url ? 'Closer' : sortColumnHeader('Closer', 'closer', $url)).' '.($no_url ? 'Est # of Releases' : sortColumnHeader('Est # of Releases', 'est_total_releases', $url)).' '.($no_url ? 'Est. # of Tracks' : sortColumnHeader('Est. # of Tracks', 'est_total_tracks', $url)).' '.($no_url ? 'Genre' : sortColumnHeader('Genre', 'genre', $url)).' '.($no_url ? 'Label Summary' : sortColumnHeader('Label Summary', 'label_summary', $url)).' '.($no_url ? 'Last Comment' : sortColumnHeader('Last Comment', 'comment', $url)).' '.($no_url ? 'Budgeted Advance' : sortColumnHeader('Budgeted Advance', 'budgeted_advance', $url)).' Proposed Territory Carveout Proposed DMS Carveout Proposed Master Carveout '.($no_url ? 'Proposed Term' : sortColumnHeader('Proposed Term', 'proposed_term', $url)).' '.($report_type ? ''.($no_url ? 'Term Type' : sortColumnHeader('Term Type', 'type', $url)).'' : '').' '.($no_url ? 'Proposed Split' : sortColumnHeader('Proposed Split', 'proposed_split', $url)).' '.($no_url ? 'Chance To close' : sortColumnHeader('Chance To close', 'chance_to_close', $url)).' '.($no_url ? 'ETA to close (quarter/year)' : sortColumnHeader('ETA to close (quarter/year)', 'eta_to_close_year', $url)).' '; if(in_array($report_type, array("new_target"))){ $report_data .= ''.($no_url ? 'Label Status' : sortColumnHeader('Label Status', 'v.status', $url)).''; } if(in_array($report_type, array("renewal", "signed_label"))) { if($report_type=="renewal"){ $report_data .= ''.($no_url ? 'Renewal Status' : sortColumnHeader('Renewal Status', 'proposed_status', $url)).''; } $report_data .= ''.($no_url ? 'Advance Payment' : sortColumnHeader('Advance Payment', 'advance_payment', $url)).' '.($no_url ? 'Digital Split' : sortColumnHeader('Digital Split', 'digital_split', $url)).' '.($no_url ? 'Signed Term (Yr)' : sortColumnHeader('Signed Term (Yr)', 'signed_term', $url)).' '.($no_url ? 'Date Signed' : sortColumnHeader('Date Signed','date_signed',$url)).' '.($no_url ? 'Contract Start Date' : sortColumnHeader('Contract Start Date', 'cont_start', $url)).' '.($no_url ? 'Contract End Date' : sortColumnHeader('Contract End Date', 'expiration_date', $url)).''; } $j=0; if(($report_type == 'renewal' or $report_type == 'signed_label') && $view_revenue) { $report_data .=""; $qy = $syqt; while($qy <= $last_yqt) { $report_data .= "".QY_To_Title($qy).""; $qy = QY_Add_Subtract($qy); $j++; } } if($view_revenue){ $report_data .= ''; for($k=0; $k<$j; $k++){ $report_data.=''.($no_url ? 'Gross Rev' : sortColumnHeader('Gross Rev', 'revenue', $url)).' '.($no_url ? 'Net Rev' : sortColumnHeader('Net Rev', 'net_revenue', $url)).''; } } $report_data .= ' '; if(!$no_url){ $tmp_mainarray = array_slice($mainarray, ($page-1)*$pageRecord, $pageRecord); }else{ $tmp_mainarray = $mainarray; } foreach ($tmp_mainarray as $value){ $row_class = ($row_class == '') ? 'alt' : ''; $report_data .= ' '.(($no_url)?$value["company"]:"{$value["company"]}").' '.$value['priority'].' '; /*'.$value['orch_rep'].'*/ $report_data .= ' '.$value['closer'].' '.$value['est_total_releases'].' '.$value['est_total_tracks'].' '.$value['genre'].' '.$value['label_summary'].' '.$value['comment'].' '.money_format('%.2n',$value['budgeted_advance']).' '.$value['proposed_territory_carve_out'].' '.$value['proposed_dms_carve_out'].' '.$value['proposed_dms_master_carve_out'].' '.$value['proposed_term'].' '.($report_type ? (''.$value['type'].'') : '').' '.($value['vendor_proposed_term_id'] ? number_format($value['proposed_split']*100).'%' : '').' '.($value['vendor_proposed_term_id'] ? $value['chance_to_close'].'%' : '').' '.($value['vendor_proposed_term_id'] ? 'Q'.$value['eta_to_close_quarter'].'/'.$value['eta_to_close_year'] : '').' '; if(in_array($report_type, array("new_target"))){ $report_data .= ''.($value['label_status'] ? ucwords(str_replace('_',' ',$value['label_status'])) : '').''; } if(in_array($report_type, array("renewal", "signed_label"))) { if($report_type=="renewal"){ $report_data .= ''.$value['proposed_status'].''; } $report_data .= ''.$value['advance_payment'].' '.number_format($value['digital_split']*100).'% '.$value['signed_term'].' '.$value['date_signed'].' '.$value['cont_start'].' '.$value['expiration_date'].''; } if(($report_type == 'renewal' or $report_type == 'signed_label') && $view_revenue) { $qy = $syqt; while($qy <= $last_yqt) { $amt = isset($value['revenue'][$qy])?$value['revenue'][$qy]:0; $report_data .= "".money_format('%.2n',$amt).""; $amt = isset($value['net_revenue'][$qy])?$value['net_revenue'][$qy]:0; $report_data .= "".money_format('%.2n',$amt).""; $qy = QY_Add_Subtract($qy); } } $report_data .= ''; } $report_data .= ''; ?>