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' : ($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); } }