goiintra/public_html/lib/mapper/erpDailyOrderMapper.php

70 lines
2.5 KiB
PHP

<?php
class erpDailyOrderMapper
{
public static function map($payload)
{
$after = $payload['after'];
return [
"cdoOrderDate" => self::date($after['d_orderdate']),
"cdoJobType" => $after['d_jobtype'] ?? null,
"cdoOrderType" => $after['d_ordertype'] ?? null,
"cdoRegionId" => !empty($after['d_regionuid']) ? (int)$after['d_regionuid'] : null,
"cdoExternalDriverId" => $after['d_druid'] ?? null,
"cdoExternalCreatedBy" => $after['d_createruid'] ?? null,
"cdoExternalUpdatedBy" => $after['d_driveruid'] ?? null,
"cdoCustomerNo" => $after['d_accountno'] ?? null,
"cdoPaymentType" => $after['d_paymenttype'] ?? null,
"cdoCycle" => $after['d_cycle'] ?? null,
"cdoRate" => isset($after['d_rate']) ? (float)$after['d_rate'] : null,
"cdoStatus" => $after['d_status'] ?? 'A',
"cdoVisitFlag" => $after['d_visit'] ?? 'N',
"cdoEstimatedQty" => isset($after['d_estquantity']) ? (float)$after['d_estquantity'] : null,
"cdoPickupAt" => ($after['d_status'] ?? '') === 'F' ? self::datetime($after['d_modifydate'] ?? null) : null,
"cdoQuantity" => isset($after['d_quantity']) ? (float)$after['d_quantity'] : null,
"cdoSludge" => isset($after['d_sludge']) ? (int)$after['d_sludge'] : null,
"cdoPayStatus" => self::nullable($after['d_paystatus'] ?? null),
"cdoPayAmount" => isset($after['d_payamount']) ? (float)$after['d_payamount'] : null,
"cdoPayeeName" => self::nullable($after['d_payeename'] ?? null),
"cdoPayeeSign" => $after['d_payeesign'] ?? null,
// "cdoPickupNote" => $after['d_location'] ?? null,
];
}
private static function nullable($value)
{
if ($value === null) {
return null;
}
$value = trim((string)$value);
return ($value === '') ? null : $value;
}
private static function date($yyyymmdd)
{
return substr($yyyymmdd,0,4)."-".
substr($yyyymmdd,4,2)."-".
substr($yyyymmdd,6,2);
}
private static function datetime($yyyymmddhhmiss)
{
if (
empty($yyyymmddhhmiss)
|| strlen($yyyymmddhhmiss) != 14
) {
return null;
}
return substr($yyyymmddhhmiss,0,4)."-".
substr($yyyymmddhhmiss,4,2)."-".
substr($yyyymmddhhmiss,6,2)."T".
substr($yyyymmddhhmiss,8,2).":".
substr($yyyymmddhhmiss,10,2).":".
substr($yyyymmddhhmiss,12,2);
}
}