isVariant( 'product_by_territory_split', 'enabled', $userContext ); $wrapperObj = new MysqliWrapper($mysqli); $pdoWrapperObj = getPDOQueryWrapper(); $owsContracts = new OwsContractsServiceClient(logger: $logger); $hideContractDetails = hideContractDetails($vendor_id); $userId = $_SESSION['S_USERID']; switch ($sort_by) { case 'name': $order_by = 'name'; break; case 'ctype': $order_by = 'vc.master'; break; default: $order_by = 'name'; } $activeTermfields = 'vcon.unlimited_roll, vcon.rollover_length_in_months, vcon.payment_interval, '; $serviceDMSMasterArrangements = array(451,549,570,682,705,1277,1351,1505,1594,1608,1609,1611,1613,1614,1621, 1622,1624,1626,1628,1631,1632,1633,1646,1647,1650,1651,1652,1653,1654,1655,1656,1657,1658,1662,1663,1666, 1670,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681); if($vendor_type == "vendor"){ $sql = "select vcon.id as contract_id, vcon.contract_type, vcon.digital_split, vcon.physical_split, " . $activeTermfields . " group_concat(dt.name) as dist_type, vcon.oms_fee_percentage, vcon.sync_admin_commission, vcon.royalty_collection_commission, vcon.sx_royalty_collection_commission, vcon.topspin_rate, vcon.publishing_admin_commission, vcon.cont_start, IF(vcon.contract_type = 'per_release_term', if(vcon.cont_start = '0000-00-00' or vcon.release_term <= 0,'0000-00-00',vcon.cont_start + interval vcon.release_term month),vcon.cont_end) AS contract_end, concat(ou.f_name, ' ', ou.l_name) as orchrep_name, vcc.orchard_compilation_split from vendor_contract vcon left join vendor_contract_distribution_type vcdt on vcdt.vendor_contract_id = vcon.id left join orchadmin_users ou ON ou.id=vcon.orchrep_name inner join distribution_type dt on dt.id = vcdt.distribution_type_id left join vendor_contract_compilation vcc ON vcc.vendor_contract_id = vcon.id where vcon.vendor_id = ? and vcon.cont_start <= '".date("Y-m-d")."' and vcon.vendor_type = 'vendor' group by vcon.id HAVING contract_end >= '".date("Y-m-d")."' OR contract_end = '0000-00-00' OR contract_end IS NULL"; }else{ $sql = "select vcon.id as contract_id, vcon.sync_admin_commission, vcon.royalty_collection_commission, vcon.sx_royalty_collection_commission, vcon.topspin_rate, vcon.publishing_admin_commission, vcon.cont_start, vcon.cont_end AS contract_end, concat(ou.f_name, ' ', ou.l_name) as vcon.orchrep_name from vendor_contract vcon left join orchadmin_users ou ON ou.id=vcon.orchrep_name where vcon.vendor_id = ? and vcon.cont_start <= '".date("Y-m-d")."' and vcon.vendor_type = 'oms_client' group by vcon.id HAVING contract_end >= '".date("Y-m-d")."' OR contract_end = '0000-00-00' OR contract_end IS NULL"; } $dataParams = new QueryData(); $dataParams->addDataParam('i', $vendor_id); $contacts_data = $wrapperObj->executeQuery($sql, $dataParams); if ($contacts_data === false) { showierror($sql); } $contract_arr = array(); $contract_start_arr = array(); $contract_end_arr = array(); foreach ($contacts_data as $contacts_data_row) { $contract_arr[$contacts_data_row['contract_id']]['contract_id'] = $contacts_data_row['contract_id']; $contract_arr[$contacts_data_row['contract_id']]['cont_start'] = $contacts_data_row['cont_start']; $contract_arr[$contacts_data_row['contract_id']]['contract_end'] = $contacts_data_row['contract_end']; $contract_arr[$contacts_data_row['contract_id']]['sync_admin_commission'] = $contacts_data_row['sync_admin_commission']; $contract_arr[$contacts_data_row['contract_id']]['royalty_collection_commission'] = $contacts_data_row['royalty_collection_commission']; $contract_arr[$contacts_data_row['contract_id']]['sx_royalty_collection_commission'] = $contacts_data_row['sx_royalty_collection_commission']; $contract_arr[$contacts_data_row['contract_id']]['topspin_rate'] = $contacts_data_row['topspin_rate']; $contract_arr[$contacts_data_row['contract_id']]['publishing_admin_commission'] = $contacts_data_row['publishing_admin_commission']; $contract_arr[$contacts_data_row['contract_id']]['orchrep_name'] = $contacts_data_row['orchrep_name']; $contract_arr[$contacts_data_row['contract_id']]['unlimited_roll'] = $contacts_data_row['unlimited_roll']; $contract_arr[$contacts_data_row['contract_id']]['rollover_length_in_months'] = $contacts_data_row['rollover_length_in_months']; $contract_arr[$contacts_data_row['contract_id']]['payment_interval'] = $contacts_data_row['payment_interval']; if($vendor_type == "vendor"){ $contract_arr[$contacts_data_row['contract_id']]['contract_type'] = $contacts_data_row['contract_type']; $contract_arr[$contacts_data_row['contract_id']]['digital_split'] = $contacts_data_row['digital_split']; $contract_arr[$contacts_data_row['contract_id']]['physical_split'] = $contacts_data_row['physical_split']; $contract_arr[$contacts_data_row['contract_id']]['dist_type'] = $contacts_data_row['dist_type']; $contract_arr[$contacts_data_row['contract_id']]['oms_fee_percentage'] = $contacts_data_row['oms_fee_percentage']; $orchard_compilation_split = $contacts_data_row['orchard_compilation_split']; $contract_arr[$contacts_data_row['contract_id']]['orchard_compilation_split'] = $orchard_compilation_split; } $contract_start_arr[] = $contacts_data_row['cont_start']; $contract_end_arr[] = $contacts_data_row['contract_end']; } array_multisort($contract_start_arr,SORT_ASC, SORT_STRING, $contract_arr, $contract_end_arr); $lastest_contract = array_pop($contract_arr); if(!empty($lastest_contract)){ $contract_id = $lastest_contract['contract_id']; $sync_admin_commission = $lastest_contract['sync_admin_commission']; $royalty_collection_commission = $lastest_contract['royalty_collection_commission']; $sx_royalty_collection_commission = $lastest_contract['sx_royalty_collection_commission']; $topspin_rate = $lastest_contract['topspin_rate']; $publishing_admin_commission = $lastest_contract['publishing_admin_commission']; $cont_start = $lastest_contract['cont_start']; $cont_end = $lastest_contract['contract_end']; $orchrep_name = $lastest_contract['orchrep_name']; $unlimited_roll = $lastest_contract['unlimited_roll']; $rollover_length_in_months = $lastest_contract['rollover_length_in_months']; $payment_interval = $lastest_contract['payment_interval']; if($vendor_type == "vendor"){ $digital_split = $lastest_contract['digital_split']; $physical_split = $lastest_contract['physical_split']; $dist_type = $lastest_contract['dist_type']; $oms_fee_percentage = $lastest_contract['oms_fee_percentage']; $orchard_compilation_split = $lastest_contract['orchard_compilation_split']; } $owsProductService = new OwsProductServiceClient(logger: $logger); $productTerritorySplitData = $owsContracts->getProductTerritorySplitDataByVendor( $vendor_id, $userId ); $productTerritorySplitHelper = new ProductTerritorySplit($logger); $productTerritorySplits = $productTerritorySplitHelper->fetch($vendor_id, $userId); $productSplitData = $owsContracts->getProductSplitDataByVendor($vendor_id, $userId); $productArrangementData = $productSplitData['items']; if (is_array($productArrangementData) && !empty($productArrangementData)) { foreach ($productArrangementData as $splitData) { $upcs[] = $splitData['upc']; } $productData = $owsProductService->getProductsDataByBulkUpc( array('upcs' => $upcs, 'sort_param' => 'release_name', 'sort_direction' => 'asc') ); } try { $owsTrackService = new OwsTrackServiceClient(logger: $logger); $trackSplitData = $owsContracts->getTrackSplitDataByVendor($vendor_id); $trackArrangementData = $trackSplitData['items']; if (is_array($trackArrangementData) && !empty($trackArrangementData)) { foreach ($trackArrangementData as $splitData) { $track_ids[] = $splitData['track_unique_id']; } $tuids = implode(',', $track_ids); $tracksData = $owsTrackService->getTracksData($tuids); } } catch (\Exception $e) { $logger->error($e->getMessage()); } $colspan = "7"; ?>

addDataParam('i', $contract_id); $rs = $wrapperObj->executeQuery($sql, $dataParams); if ($rs === false) { showierror($sql); } $divStyleTag = $hideContractDetails ? 'style="display:grid;"' : ''; ?>
>
'; echo $table; ?> Special Arrangements % $vendorTransactionDetails) { ?> % % % % Base Distribution Base Split to Label% Track Arrangements % No track arrangements. Product By Territory Arrangements 50) { ?> No product by territory arrangements. Product Arrangements % No product arrangements. Services Sync Admin% %