Files
grzanieplus.pl/plugins/stAllegroPlugin/lib/model/AllegroAuctionPeer.php
2025-03-12 17:06:23 +01:00

113 lines
3.1 KiB
PHP

<?php
class AllegroAuctionPeer extends BaseAllegroAuctionPeer {
public static function doSelectByProduct($productId, $environment) {
$c = new Criteria();
$c->add(self::PRODUCT_ID, $productId);
$c->add(self::SITE, $environment);
$c->addAscendingOrderByColumn(self::ID);
$c->setIgnoreCase(false);
return self::doSelect($c);
}
public static function getAuctionByOrder($order) {
$c = new Criteria();
$c->add(AllegroAuctionHasOrderPeer::ORDER_ID, $order->getId());
$auctionHasOrder = AllegroAuctionHasOrderPeer::doSelectOne($c);
if (is_object($auctionHasOrder)) {
$c = new Criteria();
$c->add(self::AUCTION_ID, $auctionHasOrder->getAllegroAuctionId());
return self::doSelectOne($c);
}
return null;
}
/**
* Pobiera aukcje dla danego zamówienia
*
* @param Order $order
* @return AllegroAuction[]
*/
public static function getAuctionsByOrder(Order $order) {
$c = new Criteria();
$c->add(AllegroAuctionHasOrderPeer::ORDER_ID, $order->getId());
$c->addJoin(self::AUCTION_ID, AllegroAuctionHasOrderPeer::ALLEGRO_AUCTION_ID);
return self::doSelect($c);
}
/**
* Pobiera aukcje po id/numerze oferty Allegro
*
* @param string $number
* @return AllegroAuction
*/
public static function retrieveByAuctionNumber($number)
{
$c = new Criteria();
$c->add(self::AUCTION_ID, $number);
return self::doSelectOne($c);
}
/**
* Pobiera aukcje po id
*
* @param Order $order
* @return AllegroAuction[]
*/
public static function doSelectByAuctionIds(array $ids)
{
$c = new Criteria();
$c->add(self::AUCTION_ID, $ids, Criteria::IN);
$offers = array();
foreach (self::doSelectJoinProduct($c) as $offer)
{
$offers[$offer->getAuctionId()] = $offer;
}
return $offers;
}
public static function doSelectAuctionIdsByOrder(Order $order)
{
$c = new Criteria();
$c->addSelectColumn(OrderProductPeer::ALLEGRO_AUCTION_ID);
$c->add(OrderProductPeer::ORDER_ID, $order->getId());
$rs = OrderProductPeer::doSelectRS($c);
$ids = array();
while($rs->next())
{
$ids[] = $rs->getInt(1);
}
return $ids;
}
public static function updateRequiresSync($productId = null, $optionId = null)
{
$selCriteria = new Criteria();
$selCriteria->add(AllegroAuctionPeer::ID, null, Criteria::ISNOTNULL);
if (null !== $productId)
{
$selCriteria->add(AllegroAuctionPeer::PRODUCT_ID, $productId);
}
if ($optionId)
{
$selCriteria->add(AllegroAuctionPeer::PRODUCT_OPTIONS, sprintf('(%1$s = \'%2$d\' OR %1$s LIKE \'%%,%2$d\')', AllegroAuctionPeer::PRODUCT_OPTIONS, $optionId), Criteria::CUSTOM);
}
$upCriteria = new Criteria();
$upCriteria->add(AllegroAuctionPeer::REQUIRES_SYNC, true);
BasePeer::doUpdate($selCriteria, $upCriteria, Propel::getConnection());
}
}