aa
This commit is contained in:
@@ -970,89 +970,190 @@ function findInsideProduct(array $prodotto, string $miocampo): ?string
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRigaArticoloByArt($article, $ind, $sep)
|
class ArticleFormatter
|
||||||
{
|
{
|
||||||
|
private const QTA_MINIMA_PER_PREVENDITA = 5; // Assuming this was defined elsewhere
|
||||||
|
private const CAMPO_PREORDINE = 'preorder'; // Assuming this was defined elsewhere
|
||||||
|
|
||||||
try {
|
public static function getArticleRow($article, $index, $separator)
|
||||||
$str = "";
|
{
|
||||||
|
try {
|
||||||
|
$product = self::getProduct($article->IdArticolo);
|
||||||
|
$stockInfo = self::getStockInfo($product);
|
||||||
|
$preorderInfo = self::getPreorderInfo($product);
|
||||||
|
|
||||||
$mydatestr = $article->DataPubblicazione;
|
return self::formatArticleRow(
|
||||||
|
$article,
|
||||||
$sku = $article->IdArticolo;
|
$index,
|
||||||
|
$separator,
|
||||||
$prodotto = Product::where('sku', $sku)->first();
|
$product,
|
||||||
|
$stockInfo,
|
||||||
$permalink = "";
|
$preorderInfo
|
||||||
|
);
|
||||||
$qtyinstock = '';
|
} catch (\Exception $e) {
|
||||||
$colore = 'black';
|
return "Errore getRigaArticoloByArt: " . $e->getMessage();
|
||||||
$prezzo = '';
|
|
||||||
|
|
||||||
if ($prodotto) {
|
|
||||||
try {
|
|
||||||
$qtyinstock = intval($prodotto['stock_quantity']);
|
|
||||||
$prezzo = $prodotto['sale_price'];
|
|
||||||
if (!$prezzo) {
|
|
||||||
$prezzo = $prodotto['price'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($qtyinstock <= 0) {
|
|
||||||
$colore = 'red';
|
|
||||||
} else {
|
|
||||||
$colore = 'green';
|
|
||||||
}
|
|
||||||
|
|
||||||
$permalink = $prodotto['permalink'];
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
// ...
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($prodotto) {
|
|
||||||
|
|
||||||
$preorder = findInsideProduct($prodotto, CAMPO_PREORDINE);
|
|
||||||
$preorder_attivato = $preorder === 'yes';
|
|
||||||
}
|
|
||||||
|
|
||||||
// echo '[' . $ind . ']' . $sep . $mydatestr . $sep . $article->IdArticolo . $sep . $article->Titolo . $sep . $article->DescrizioneStatoProdotto . $sep . $article->DescrizioneFormato . ' [Quantita = ' . $article->QtaDisponibile . ']';
|
|
||||||
$myview = '[' . $ind . ']' . $sep .
|
|
||||||
'<a href="' . $article->permalink . '?id=' . $article->IdArticolo . '" target="_blank">' . $article->IdArticolo . '</a>' . $sep .
|
|
||||||
'<a href="' . $permalink . '" target="_blank"><span style="color:' . $colore . '; font-weight: bold;"> ' . $article->Titolo . '</span></a>' . $sep .
|
|
||||||
' Pubb:' . formatDateToItalian($article->DataPubblicazione) . $sep .
|
|
||||||
$article->DescrizioneCollana . $sep .
|
|
||||||
$article->DescrizioneStatoProdotto . ' (' . $article->DescrizioneFormato . ')' . $sep .
|
|
||||||
'[Qta = <span style="">' . $article->QtaDisponibile . '</span>]' . $sep .
|
|
||||||
' [' . showprice($prezzo) . ' ]' . $sep .
|
|
||||||
'[In Stock = <span style="color:' . $colore . '; font-weight: bold;">' . $qtyinstock . '</span>]' . $sep;
|
|
||||||
|
|
||||||
if (!$preorder_attivato || $qtyinstock < QTA_MINIMA_PER_PREVENDITA) {
|
|
||||||
$myview .= '<a href="' . $article->permalink . '/apimacro/public/aggiornapreorder/' . $article->IdArticolo . '/1/" target="_blank">Imposta in PRE-ORDINE!</a>' . $sep;
|
|
||||||
} else {
|
|
||||||
$myview .= '<a href="' . $article->permalink . '/apimacro/public/aggiornapreorder/' . $article->IdArticolo . '/-1/" target="_blank">Impostalo Non Disponibile</a>' . $sep;
|
|
||||||
}
|
|
||||||
$myview .= '<a href="' . $article->permalink . '/apimacro/public/aggiornadatapubblicazione/' . $article->IdArticolo . '/" target="_blank">Aggiorna Data Pubb</a>' . $sep;
|
|
||||||
|
|
||||||
$str .= $myview;
|
|
||||||
|
|
||||||
if ($prodotto) {
|
|
||||||
|
|
||||||
$datepreorder = findInsideProduct($prodotto, '_ywpo_for_sale_date');
|
|
||||||
|
|
||||||
if ($preorder_attivato) {
|
|
||||||
$str .= ' <span style="color:green">PREORDINE ATTIVO! </span>';
|
|
||||||
if ($datepreorder) {
|
|
||||||
$str .= ' <span style="">Data PreOrdine: ' . $datepreorder . '</span>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$str .= '<br>';
|
|
||||||
}
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
return "Errore getRigaArticoloByArt: " . $e->getMessage();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $str;
|
private static function getProduct($sku)
|
||||||
|
{
|
||||||
|
return Product::where('sku', $sku)->first();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function getStockInfo($product)
|
||||||
|
{
|
||||||
|
if (!$product) {
|
||||||
|
return [
|
||||||
|
'quantity' => 0,
|
||||||
|
'price' => '',
|
||||||
|
'color' => 'black',
|
||||||
|
'permalink' => ''
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$quantity = intval($product['stock_quantity']);
|
||||||
|
$price = $product['sale_price'] ?: $product['price'];
|
||||||
|
|
||||||
|
return [
|
||||||
|
'quantity' => $quantity,
|
||||||
|
'price' => $price,
|
||||||
|
'color' => $quantity <= 0 ? 'red' : 'green',
|
||||||
|
'permalink' => $product['permalink']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function getPreorderInfo($product)
|
||||||
|
{
|
||||||
|
if (!$product) {
|
||||||
|
return ['active' => false, 'date' => null];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'active' => self::findInsideProduct($product, self::CAMPO_PREORDINE) === 'yes',
|
||||||
|
'date' => self::findInsideProduct($product, '_ywpo_for_sale_date')
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function formatArticleRow($article, $index, $separator, $product, $stockInfo, $preorderInfo)
|
||||||
|
{
|
||||||
|
$elements = [
|
||||||
|
self::formatIndexAndId($index, $article, $separator),
|
||||||
|
self::formatTitleLink($article, $stockInfo, $separator),
|
||||||
|
self::formatPublicationInfo($article, $separator),
|
||||||
|
self::formatStockInfo($article, $stockInfo, $separator),
|
||||||
|
self::formatPreorderActions($article, $preorderInfo, $stockInfo, $separator),
|
||||||
|
self::formatUpdateDateLink($article, $separator)
|
||||||
|
];
|
||||||
|
|
||||||
|
$output = implode('', $elements);
|
||||||
|
|
||||||
|
if ($product && $preorderInfo['active']) {
|
||||||
|
$output .= self::formatPreorderStatus($preorderInfo['date']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output . '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function formatIndexAndId($index, $article, $separator)
|
||||||
|
{
|
||||||
|
return sprintf(
|
||||||
|
'[%d]%s<a href="%s?id=%s" target="_blank">%s</a>%s',
|
||||||
|
$index,
|
||||||
|
$separator,
|
||||||
|
$article->permalink,
|
||||||
|
$article->IdArticolo,
|
||||||
|
$article->IdArticolo,
|
||||||
|
$separator
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function formatTitleLink($article, $stockInfo, $separator)
|
||||||
|
{
|
||||||
|
return sprintf(
|
||||||
|
'<a href="%s" target="_blank"><span style="color:%s; font-weight: bold;"> %s</span></a>%s',
|
||||||
|
$stockInfo['permalink'],
|
||||||
|
$stockInfo['color'],
|
||||||
|
$article->Titolo,
|
||||||
|
$separator
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function formatPublicationInfo($article, $separator)
|
||||||
|
{
|
||||||
|
return sprintf(
|
||||||
|
'Pubb:%s%s%s%s%s (%s)%s',
|
||||||
|
formatDateToItalian($article->DataPubblicazione),
|
||||||
|
$separator,
|
||||||
|
$article->DescrizioneCollana,
|
||||||
|
$separator,
|
||||||
|
$article->DescrizioneStatoProdotto,
|
||||||
|
$article->DescrizioneFormato,
|
||||||
|
$separator
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function formatStockInfo($article, $stockInfo, $separator)
|
||||||
|
{
|
||||||
|
return sprintf(
|
||||||
|
'[Qta = <span>%s</span>]%s[%s]%s[In Stock = <span style="color:%s; font-weight: bold;">%s</span>]%s',
|
||||||
|
$article->QtaDisponibile,
|
||||||
|
$separator,
|
||||||
|
showprice($stockInfo['price']),
|
||||||
|
$separator,
|
||||||
|
$stockInfo['color'],
|
||||||
|
$stockInfo['quantity'],
|
||||||
|
$separator
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function formatPreorderActions($article, $preorderInfo, $stockInfo, $separator)
|
||||||
|
{
|
||||||
|
$baseUrl = $article->permalink . '/apimacro/public/aggiornapreorder/' . $article->IdArticolo;
|
||||||
|
|
||||||
|
if (!$preorderInfo['active'] || $stockInfo['quantity'] < self::QTA_MINIMA_PER_PREVENDITA) {
|
||||||
|
return sprintf(
|
||||||
|
'<a href="%s/1/" target="_blank">Imposta in PRE-ORDINE!</a>%s',
|
||||||
|
$baseUrl,
|
||||||
|
$separator
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return sprintf(
|
||||||
|
'<a href="%s/-1/" target="_blank">Impostalo Non Disponibile</a>%s',
|
||||||
|
$baseUrl,
|
||||||
|
$separator
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function formatUpdateDateLink($article, $separator)
|
||||||
|
{
|
||||||
|
return sprintf(
|
||||||
|
'<a href="%s/apimacro/public/aggiornadatapubblicazione/%s/" target="_blank">Aggiorna Data Pubb</a>%s',
|
||||||
|
$article->permalink,
|
||||||
|
$article->IdArticolo,
|
||||||
|
$separator
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function formatPreorderStatus($preorderDate)
|
||||||
|
{
|
||||||
|
$status = ' <span style="color:green">PREORDINE ATTIVO!</span>';
|
||||||
|
if ($preorderDate) {
|
||||||
|
$status .= sprintf(' <span>Data PreOrdine: %s</span>', $preorderDate);
|
||||||
|
}
|
||||||
|
return $status;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function findInsideProduct($product, $field)
|
||||||
|
{
|
||||||
|
// Implementation needed - this was referenced but not shown in original code
|
||||||
|
return $product[$field] ?? null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getRigaArticoloByArt($article, $index, $separator) {
|
||||||
|
return ArticleFormatter::getArticleRow($article, $index, $separator);
|
||||||
|
}
|
||||||
|
|
||||||
function showCartolibri()
|
function showCartolibri()
|
||||||
{
|
{
|
||||||
@@ -1077,6 +1178,7 @@ function showCartolibri()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function showRiviste()
|
function showRiviste()
|
||||||
{
|
{
|
||||||
$articles = getArticoliRiviste();
|
$articles = getArticoliRiviste();
|
||||||
|
|||||||
Reference in New Issue
Block a user