VirDeliveryHistoryRebuildService
in package
Table of Contents
Properties
- $carrierName : string
- $deliveryCodeToStatus : array<string, string>
- $em : EntityManagerInterface
- $pdfCacheDir : string
- $projectDir : string
- $saleProductShipmentService : SaleProductShipmentService
- $saleProductShipmentTrackingService : SaleProductShipmentTrackingService
Methods
- __construct() : mixed
- rebuildBatch() : array<string|int, mixed>
- rebuildForIncrementId() : array<string|int, mixed>
- buildExpectedVirHistoryRowsFromLogs() : array<string|int, mixed>
- deleteVirHistoryForTracking() : int
- downloadPdfWithCache() : string
- ensureTrackingForSaleProduct() : SaleProductShipmentTracking|null, created_shipment: bool, created_tracking: bool}
- Ensure a SaleProductShipmentTracking exists for the sale product.
- extractFullIncIdFromLogs() : string|null
- Extract the full inc_id from VIR logs.
- extractIdsByPrefix() : array<string|int, mixed>
- Extract numeric ids after a prefix like LD or LC
- extractPossibleSkus() : array<string|int, mixed>
- Extract candidate SKUs.
- extractSaleProductIdsFromPdfUrl() : array<string|int, mixed>
- extractUrlFromComment() : string|null
- extractUrlsFromComment() : array<string|int, mixed>
- guessEventAt() : DateTime|null
- historyExists() : bool
- isVirHistoryAlreadyMatchingExpectedDesc() : bool
- mapSaleProductIdsFromSkuAndIncrement() : array<string|int, mixed>
- mergeTrackLinks() : array<string|int, mixed>
- normalizeIncrementId() : string
- normalizeTrackLinksValue() : array<string|int, mixed>
- pdfToTextWithPoppler() : string
- resolveSaleProductForTracking() : SaleProduct|null
- resolveTrackingForSaleProduct() : mixed
- syncComCfmTrackingLinksToTracking() : array<string|int, mixed>
Properties
$carrierName
private
string
$carrierName
$deliveryCodeToStatus
private
array<string, string>
$deliveryCodeToStatus
$em
private
EntityManagerInterface
$em
$pdfCacheDir
private
string
$pdfCacheDir
$projectDir
private
string
$projectDir
$saleProductShipmentService
private
SaleProductShipmentService
$saleProductShipmentService
$saleProductShipmentTrackingService
private
SaleProductShipmentTrackingService
$saleProductShipmentTrackingService
Methods
__construct()
public
__construct(EntityManagerInterface $em, string $projectDir, SaleProductShipmentService $saleProductShipmentService, SaleProductShipmentTrackingService $saleProductShipmentTrackingService[, array<string|int, mixed> $deliveryCodeToStatus = [] ][, string $carrierName = 'VIR' ][, string|null $pdfCacheDir = null ]) : mixed
Parameters
- $em : EntityManagerInterface
- $projectDir : string
- $saleProductShipmentService : SaleProductShipmentService
- $saleProductShipmentTrackingService : SaleProductShipmentTrackingService
- $deliveryCodeToStatus : array<string|int, mixed> = []
- $carrierName : string = 'VIR'
- $pdfCacheDir : string|null = null
rebuildBatch()
public
rebuildBatch(DateTime|null $since, int $limit, int|null $restrictProductId, bool $dryRun, int $batchSize) : array<string|int, mixed>
Parameters
- $since : DateTime|null
- $limit : int
- $restrictProductId : int|null
- $dryRun : bool
- $batchSize : int
Return values
array<string|int, mixed>rebuildForIncrementId()
public
rebuildForIncrementId(string $incrementId, int|null $restrictProductId, bool $dryRun) : array<string|int, mixed>
Parameters
- $incrementId : string
- $restrictProductId : int|null
- $dryRun : bool
Return values
array<string|int, mixed>buildExpectedVirHistoryRowsFromLogs()
private
buildExpectedVirHistoryRowsFromLogs(array<string|int, mixed> $logs) : array<string|int, mixed>
Parameters
- $logs : array<string|int, mixed>
Return values
array<string|int, mixed>deleteVirHistoryForTracking()
private
deleteVirHistoryForTracking(int $trackingId) : int
Parameters
- $trackingId : int
Return values
intdownloadPdfWithCache()
private
downloadPdfWithCache(string $incrementId, string $url) : string
Parameters
- $incrementId : string
- $url : string
Return values
stringensureTrackingForSaleProduct()
Ensure a SaleProductShipmentTracking exists for the sale product.
private
ensureTrackingForSaleProduct(int $saleProductId, string $incrementId, array<string|int, mixed> $logs, bool $dryRun) : SaleProductShipmentTracking|null, created_shipment: bool, created_tracking: bool}
Creates SaleProductShipment and SaleProductShipmentTracking if missing.
Parameters
- $saleProductId : int
- $incrementId : string
- $logs : array<string|int, mixed>
- $dryRun : bool
Return values
SaleProductShipmentTracking|null, created_shipment: bool, created_tracking: bool}extractFullIncIdFromLogs()
Extract the full inc_id from VIR logs.
private
extractFullIncIdFromLogs(array<string|int, mixed> $logs, string $baseIncrementId) : string|null
Returns the first inc_id found that starts with the base increment_id.
Parameters
- $logs : array<string|int, mixed>
- $baseIncrementId : string
Return values
string|nullextractIdsByPrefix()
Extract numeric ids after a prefix like LD or LC
private
extractIdsByPrefix(string $text, string $prefix) : array<string|int, mixed>
Parameters
- $text : string
- $prefix : string
Return values
array<string|int, mixed>extractPossibleSkus()
Extract candidate SKUs.
private
extractPossibleSkus(string $text) : array<string|int, mixed>
This is conservative: alnum, 6-40 chars, must contain at least one letter.
Parameters
- $text : string
Return values
array<string|int, mixed>extractSaleProductIdsFromPdfUrl()
private
extractSaleProductIdsFromPdfUrl(string $incrementId, string $pdfUrl) : array<string|int, mixed>
Parameters
- $incrementId : string
- $pdfUrl : string
Return values
array<string|int, mixed>extractUrlFromComment()
private
extractUrlFromComment(string $comment) : string|null
Parameters
- $comment : string
Return values
string|nullextractUrlsFromComment()
private
extractUrlsFromComment(string $comment) : array<string|int, mixed>
Parameters
- $comment : string
Return values
array<string|int, mixed>guessEventAt()
private
guessEventAt(array<string|int, mixed> $logRow) : DateTime|null
Parameters
- $logRow : array<string|int, mixed>
Return values
DateTime|nullhistoryExists()
private
historyExists(int $trackingId, string $status, DateTime $eventAt, string|null $reference) : bool
Parameters
- $trackingId : int
- $status : string
- $eventAt : DateTime
- $reference : string|null
Return values
boolisVirHistoryAlreadyMatchingExpectedDesc()
private
isVirHistoryAlreadyMatchingExpectedDesc(int $trackingId, array<string|int, mixed> $expectedRows) : bool
Parameters
- $trackingId : int
- $expectedRows : array<string|int, mixed>
Return values
boolmapSaleProductIdsFromSkuAndIncrement()
private
mapSaleProductIdsFromSkuAndIncrement(array<string|int, mixed> $skus, string $incrementId) : array<string|int, mixed>
Parameters
- $skus : array<string|int, mixed>
- $incrementId : string
Return values
array<string|int, mixed>mergeTrackLinks()
private
mergeTrackLinks(array<string|int, mixed> $existingLinks, array<string|int, mixed> $newLinks) : array<string|int, mixed>
Parameters
- $existingLinks : array<string|int, mixed>
- $newLinks : array<string|int, mixed>
Return values
array<string|int, mixed>normalizeIncrementId()
private
normalizeIncrementId(string $inc) : string
Parameters
- $inc : string
Return values
stringnormalizeTrackLinksValue()
private
normalizeTrackLinksValue(mixed $raw) : array<string|int, mixed>
Parameters
- $raw : mixed
Return values
array<string|int, mixed>pdfToTextWithPoppler()
private
pdfToTextWithPoppler(string $pdfPath) : string
Parameters
- $pdfPath : string
Return values
stringresolveSaleProductForTracking()
private
resolveSaleProductForTracking(SaleProductShipmentTracking $tracking) : SaleProduct|null
Parameters
- $tracking : SaleProductShipmentTracking
Return values
SaleProduct|nullresolveTrackingForSaleProduct()
private
resolveTrackingForSaleProduct(int $saleProductId, string $incrementId) : mixed
Parameters
- $saleProductId : int
- $incrementId : string
syncComCfmTrackingLinksToTracking()
private
syncComCfmTrackingLinksToTracking(SaleProductShipmentTracking $tracking, array<string|int, mixed> $logs[, bool $dryRun = false ]) : array<string|int, mixed>
Parameters
- $tracking : SaleProductShipmentTracking
- $logs : array<string|int, mixed>
- $dryRun : bool = false