Jump to content

Mostrar en la ficha del producto la próxima fecha de entrega


kitesurfer76

Recommended Posts

Buenos días,

 

He conseguido via el gestor de .sql exportar las próximas fechas de entrega de cada artículo:

SELECT pso.date_delivery_expected, pso.supplier_name, pso.id_supply_order_state, pso.id_supply_order, psod.id_product

FROM ps_supply_order pso
LEFT JOIN ps_supply_order_detail psod ON (pso.id_supply_order = psod.id_supply_order)

WHERE id_supply_order_state  = '3' 

Ahora tengo para cada id de producto, su fecha de entrega (solo para los pedidos de compra en espera de entrega).

 

Lo que me gsutaría es mostrar esa información directamente en la ficha del producto en el Front de forma automática.

 

Me imagino que habría que modificar el fichero product.tpl, pero estoy un poco perdido. 

{/if}
			{if ($display_qties == 1 && !$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && $product->available_for_order)}
				<!-- number of item in stock -->
				<p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
					<span id="quantityAvailable">{$product->quantity|intval}</span>
					<span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>
					<span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items'}</span>
				</p>
			{/if}
			<!-- availability or doesntExist -->
			<p id="availability_statut"{if !$PS_STOCK_MANAGEMENT || ($product->quantity <= 0 && !$product->d && $allow_oosp) || ($product->quantity > 0 && !$product->available_now) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
				{*<span id="availability_label">{l s='Availability:'}</span>*}
				<span id="availability_value" class="label{if $product->quantity <= 0 && !$allow_oosp} label-danger{elseif $product->quantity <= 0} label-warning{else} label-success{/if}">{if $product->quantity <= 0}{if $PS_STOCK_MANAGEMENT && $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{elseif $PS_STOCK_MANAGEMENT}{$product->available_now}{/if}</span>
			</p>
			{if $PS_STOCK_MANAGEMENT}
				{if !$product->is_virtual}{hook h="displayProductDeliveryTime" product=$product}{/if}
				<p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity <= 0) || $allow_oosp || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
			{/if}
			<p id="availability_date"{if ($product->quantity > 0) || !$product->available_for_order || $PS_CATALOG_MODE || !isset($product->available_date) || $product->available_date < $smarty.now|date_format:'%Y-%m-%d'} style="display: none;"{/if}>
				<span id="availability_date_label">{l s='Availability date:'}</span>
				<span id="availability_date_value">{if Validate::isDate($product->available_date)}{dateFormat date=$product->available_date full=false}{/if}</span>
			</p>

Gracias.

Gilles

Link to comment
Share on other sites

Tienes que incluir (override) esa consulta en una funcion publica en el classes/ Product.php .

Algo asi por ejemplo, que tendras que formatear con los prefijos y nombres de los campos. Lo fundamental es que asocies el id del producto con el campo equivalente de la tabla que quieres incluir


public function getDateDeliveryExpected()
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
'SELECT `pso.date_delivery_expected`, `pso.supplier_name`, `pso.id_supply_order_state`, `pso.id_supply_order`, `psod.id_product`
 FROM `'._DB_PREFIX_.'supply_order pso` 
 WHERE `psod.id_product` = '.(int)$this->id
 AND `psod.id_product`= 3
');
}

Luego ya podras acceder al array desde el tpl con

$product->getDateDeliveryExpected()
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...