prepare($sqlProductPhysical);
$productPhysicalQuery->bind_param('i', $release_id);
if ($productPhysicalQuery->execute()) {
$productPhysicalResult = $productPhysicalQuery->get_result();
$productPhysicalData = $productPhysicalResult->fetch_assoc();
} else {
showierror($productPhysicalQuery);
}
$sqlPhysicalOrderTarget = 'SELECT pt.type, pt.target
FROM physical_order_targets pt
INNER JOIN product_physical pp ON pp.id = pt.product_id
WHERE pp.release_id = ?';
$physicalOrderTargetQuery = $mysqli->prepare($sqlPhysicalOrderTarget);
$physicalOrderTargetQuery->bind_param('i', $release_id);
if ($physicalOrderTargetQuery->execute()) {
$physicalOrderTargetResult = $physicalOrderTargetQuery->get_result();
$physicalOrderTargetData = $physicalOrderTargetResult->fetch_all(MYSQLI_ASSOC);
} else {
showierror($physicalOrderQuery);
}
$USSupplyChainInfo = array();
$canadaSupplyChainInfo = array();
$sqlSupplyChainReturnInfo = 'SELECT returnability, return_disposition, store_id FROM product_physical_supply_chain_info WHERE product_id = ?';
$supplyChainReturnInfoQuery = $mysqli->prepare($sqlSupplyChainReturnInfo);
$supplyChainReturnInfoQuery->bind_param('i', $release_id);
if ($supplyChainReturnInfoQuery->execute()) {
$supplyChainReturnInfoResult = $supplyChainReturnInfoQuery->get_result();
$supplyChainReturnData = $supplyChainReturnInfoResult->fetch_all(MYSQLI_ASSOC);
if ($supplyChainReturnInfoResult->num_rows > 0) {
foreach ($supplyChainReturnData as $value) {
if ($value['store_id'] == STORE_ID_FOR_US) {
$USSupplyChainInfo = $value;
} elseif ($value['store_id'] == STORE_ID_FOR_CANADA) {
$canadaSupplyChainInfo = $value;
}
}
}
} else {
showierror($supplyChainReturnInfoQuery);
}
if ($oaPhysicalSupplyChainCarvedInEnabled) {
$supplyChainMetadata = $owsProductPhysicalServiceClient->getSupplyChainMetadataByProduct($release_id, $_SESSION['S_USERID']);
$supplyChainDatesData = $supplyChainMetadata['items'];
} else {
$is_deleted = 0;
$store_id_for_canada = STORE_ID_FOR_CANADA;
$store_id_for_us = STORE_ID_FOR_US;
$sqlSupplyChainDatesInfo = "SELECT ppscd.id, ppscd.returnability, ppscd.return_disposition, ppscd.store_id, ppscd.embargo_date, ppscd.release_date, ppscd.sale_start_date
FROM (
(SELECT ppscm.id, ppsci.returnability, ppsci.return_disposition, cmm.customer_master_master_id AS store_id,
IF(ppscm.embargo_date, ppscm.embargo_date, '') AS embargo_date, IF(ppscm.release_date, ppscm.release_date, '') AS release_date, IF(ppscm.sale_start_date, ppscm.sale_start_date, '') AS sale_start_date
FROM customer_master_master cmm
LEFT JOIN product_physical_supply_chain_info ppsci ON ppsci.store_id = cmm.customer_master_master_id AND ppsci.product_id = ?
LEFT JOIN product_physical_supply_chain_metadata ppscm ON ppscm.product_id = ppsci.product_id AND ppscm.store_id = ppsci.store_id
WHERE cmm.customer_master_master_id IN (?, ?)
)
UNION
(SELECT ppscmd.id, '' AS returnability, '' AS return_disposition , ppscmd.store_id, IF(ppscmd.embargo_date, ppscmd.embargo_date, '') AS embargo_date, IF(ppscmd.release_date, ppscmd.release_date, '') AS release_date, IF(ppscmd.sale_start_date, ppscmd.sale_start_date, '') AS sale_start_date
FROM product_physical_supply_chain_metadata ppscmd
WHERE product_id = ? AND is_deleted = ?
)
) As ppscd
GROUP BY ppscd.store_id
ORDER BY FIELD(ppscd.store_id, ? ,?) DESC, ppscd.id";
$supplyChainDatesInfoQuery = $mysqli->prepare($sqlSupplyChainDatesInfo);
$supplyChainDatesInfoQuery->bind_param('iiiiiii', $release_id, $store_id_for_canada, $store_id_for_us, $release_id, $is_deleted, $store_id_for_canada, $store_id_for_us);
if ($supplyChainDatesInfoQuery->execute()) {
$supplyChainDatesInfoResults = $supplyChainDatesInfoQuery->get_result();
$supplyChainDatesData = $supplyChainDatesInfoResults->fetch_all(MYSQLI_ASSOC);
}
}
if ($isCCMPhysicalSupplyChainInfoOaEnabled) {
$storeResults = $carveoutsClient->getPhysicalStores();
$productPhysicalSupplyChainMetadataInfo = getProductPhysicalSupplyChainInfo($wrapperObj, $release_id);
foreach ($storeResults as $id => $name) {
$storeResults[$id] = [
'name' => $name,
'sale_start_date' => '',
'initial_stock' => ''
];
}
if (!empty($productPhysicalSupplyChainMetadataInfo)) {
foreach ($productPhysicalSupplyChainMetadataInfo as $row) {
$id = $row['store_id'];
if (isset($storeResults[$id])) {
$storeResults[$id]['sale_start_date'] = $row['sale_start_date'];
$storeResults[$id]['initial_stock'] = $row['initial_stock'];
}
}
}
$carveoutResults = $carveoutsClient->getReleaseCarveoutResult($upc);
$restrictedDms = array();
foreach ($carveoutResults['store'] as $key => $dmsProperties) {
$restrictedDms[$key] = $dmsProperties["dms_name"];
}
foreach ($storeResults as $key => &$value) {
$value['restricted'] = isset($restrictedDms[$key]);
if ($value['restricted']) {
$value['sale_start_date'] = '';
$value['initial_stock'] = '';
}
}
}
if ($isOaJapanPhysicalFieldsEnabled) {
$phoneticTranslationsSql = 'SELECT field_name, phonetic_translation FROM release_phonetic_translations WHERE release_id = ? AND language_id = 24';
$phoneticTranslationsQuery = $mysqli->prepare($phoneticTranslationsSql);
$phoneticTranslationsQuery->bind_param('i', $release_id);
$phoneticTranslationsData = array();
if ($phoneticTranslationsQuery->execute()) {
$phoneticTranslationsResult = $phoneticTranslationsQuery->get_result();
$phoneticTranslationsData = $phoneticTranslationsResult->fetch_all(MYSQLI_ASSOC);
foreach ($phoneticTranslationsData as $item) {
if ($item['field_name'] == 'release_name') {
$japaneseReleaseName = $item['phonetic_translation'];
} elseif ($item['field_name'] == 'artist_name') {
$japaneseArtistName = $item['phonetic_translation'];
}
}
} else {
showierror($phoneticTranslationsQuery);
}
}
$countryOfOriginSql = 'SELECT r.country_of_origin, c.`name` FROM releases r
LEFT JOIN country c ON c.id = r.country_of_origin
WHERE r.release_id = ?';
$countryOfOriginQuery = $mysqli->prepare($countryOfOriginSql);
$countryOfOriginQuery->bind_param('i', $release_id);
$countryOfOriginQuery->execute();
$countryOfOriginResult = $countryOfOriginQuery->get_result();
$countryOfOriginData = $countryOfOriginResult->fetch_assoc();
?>
Physical Product Metadata