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

64 lines
1.7 KiB
PHP

<?php
class PaczkomatyPackPeer extends BasePaczkomatyPackPeer {
public static function retrieveByCode($code, $con = null) {
$c = new Criteria();
$c->add(PaczkomatyPackPeer::CODE, $code);
return PaczkomatyPackPeer::doSelectOne($c, $con);
}
public static function retrieveByOrder(Order $order)
{
$c = new Criteria();
$c->add(self::ORDER_ID, $order->getId());
$c->addDescendingOrderByColumn(self::ID);
return self::doSelectOne($c);
}
public static function retrieveByPKsOrder(array $pks)
{
$c = new Criteria();
$c->add(self::ID, $pks, Criteria::IN);
$c->addOrderByField(self::ID, $pks);
return self::doSelect($c);
}
public static function doSelectWithShipX(Criteria $c, $con = null)
{
/**
* @var PaczkomatyPack[]
*/
$results = [];
$ids = [];
foreach (self::doSelectJoinAll($c) as $result)
{
$results[$result->getInpostShipmentId()] = $result;
$ids[] = $result->getInpostShipmentId();
}
$api = stInPostApi::getInstance();
$response = $api->getShipmentsById($ids);
foreach ($response->items as $item)
{
if (isset($results[$item->id]))
{
$pack = $results[$item->id];
$pack->setStatus($item->status);
if (empty($pack->getTrackingNumber()) && !empty($item->tracking_number))
{
$pack->setTrackingNumber($item->tracking_number);
}
$pack->save();
}
}
return $results;
}
}