71 lines
2.6 KiB
PHP
71 lines
2.6 KiB
PHP
<?php
|
|
class erpDailyOrderMapper
|
|
{
|
|
public static function map($payload)
|
|
{
|
|
$data = $payload['after'] ?? $payload['before'] ?? [];
|
|
$isDelete = strtoupper($payload['action'] ?? '') === 'DELETED';
|
|
|
|
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" => $isDelete ? 'D' : ($data['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);
|
|
}
|
|
}
|