false, 'qrCodeHeight' => 75, 'qrCodeWidth' => 75, 'version' => -1, 'quietzoneSize' => 1 ]); $Epi = new Epirent(); if(UseDeliveredForCheckOutCompleted){ $result = $Epi->requestEpiApi('/v1/packingnote/open?isco=False&cl=' . Epirent_Mandant); }else{ $result = $Epi->requestEpiApi('/v1/packingnote/open?isci=False&cl=' . Epirent_Mandant); } $data_output = json_decode($result)->payload; if (SortCheckOut == 2) { // Prüfen, ob $data_output ein Array ist if (is_array($data_output)) { usort($data_output, function ($a, $b) { // Konvertiere time_start von Millisekunden in Sekunden $timeStartA = $a->time_start / 1000; // Zeit in Sekunden $timeStartB = $b->time_start / 1000; // Kombiniere date_start mit time_start $datetimeA = strtotime($a->date_start) + $timeStartA; $datetimeB = strtotime($b->date_start) + $timeStartB; // Vergleich für die Sortierung return $datetimeA <=> $datetimeB; }); // Sortierte Daten ausgeben oder weiterverarbeiten // print_r($data_output); } else { echo "Daten konnten nicht verarbeitet werden."; } } foreach ($data_output as $packingjob) { $PackingNote_data_output; if($packingjob->is_archived != true && UseDeliveredForCheckOutCompleted){ $PackingNoteDetailResult = $Epi->requestEpiApi('/v1/packingnote/' . $packingjob->primary_key . '?cl=' . Epirent_Mandant); $PackingNote_data_output = json_decode($PackingNoteDetailResult)->payload[0]; } if ($packingjob->is_archived != true && (!UseDeliveredForCheckOutCompleted || ($PackingNote_data_output->date_delivered == "0000-00-00" && $PackingNote_data_output->time_delivered == 0))) { //get OrderDetails $result = $Epi->requestEpiApi('/v1/order/' . $packingjob->order_pk . '?cl=' . Epirent_Mandant); $orderdetail_output = json_decode($result)->payload[0]; // get PackingNote Details if(!UseDeliveredForCheckOutCompleted){ $PackingNoteDetailResult = $Epi->requestEpiApi('/v1/packingnote/' . $packingjob->primary_key . '?cl=' . Epirent_Mandant); $PackingNote_data_output = json_decode($PackingNoteDetailResult)->payload[0]; } $VorbereitungsTimeDetail; foreach ($orderdetail_output->order_schedule as $scheduledetail) { if (UsePackingNoteDateForCheckout) { $tempTimeObject = new stdClass(); $tempTimeObject->date_start = $PackingNote_data_output->date_packing; $tempTimeObject->time_start = $PackingNote_data_output->time_packing; $VorbereitungsTimeDetail = $tempTimeObject; } else { if ($scheduledetail->name == Vorbereitungs_Zeitvariable) { $VorbereitungsTimeDetail = $scheduledetail; } } } //End Of get Order Details if (CheckOut_UseDispoStartForRowMarking || ($VorbereitungsTimeDetail->date_start == null)) { $date = new DateTime($packingjob->date_start); } else if(UseDeliveredForCheckOutCompleted ){ { $date = new DateTime($PackingNote_data_output->date_delivery); } }else{ $date = new DateTime($VorbereitungsTimeDetail->date_start); } $date->setTime(0, 0, 0); $today = new DateTime(); $today->setTime(0, 0, 0); $todayFilter = new DateTime(); $todayFilter->setTime(0, 0, 0); if (CheckOut_FutureDays == -1 || $date <= ($todayFilter->modify('+' . CheckOut_FutureDays . ' day'))) { //prüfe, ob entweder unbegrenzte (-1) Anzeige Aktiv ist, oder das Datum kleiner oder Gleich heute + Zukunftsspanne ist if ($date == $today) { echo ""; } else if ($date < $today) { echo ""; } else { echo ""; } if (Enable_QR_Code_CheckOut) { echo "" . '
' . (new QRCode($options))->render($packingjob->packingnote_no) . "
"; } else { echo "" . $packingjob->packingnote_no . ""; } echo "" . $packingjob->contact->name . ""; echo "" . $packingjob->event . ""; if(UseDeliveredForCheckOutCompleted){ if (CheckOut_UseDispoStartForRowMarking || ($VorbereitungsTimeDetail->date_start == null)) { $date = new DateTime($packingjob->date_start); } else { $date = new DateTime($VorbereitungsTimeDetail->date_start); } if ($date == $today) { echo ""; } else if ($date < $today) { echo ""; } else { echo ""; } }else{ echo ""; } if ($VorbereitungsTimeDetail->date_start != null) { if(!HideDispoTimes){ echo "".date_format(new \DateTime($packingjob->date_start), 'd.m.Y') . " " . getTimeFromSeconds($packingjob->time_start) . "
"; } echo "" . date_format(new \DateTime($VorbereitungsTimeDetail->date_start), 'd.m.Y') . " " . getTimeFromSeconds($VorbereitungsTimeDetail->time_start) . ""; } else if(!HideDispoTimes){ date_format(new \DateTime($packingjob->date_start), 'd.m.Y') . " " . getTimeFromSeconds($packingjob->time_start) . ""; } if (!HideCheckInTimeOnCheckout) { if (($VorbereitungsTimeDetail->date_end != null)) { if(!HideDispoTimes){ echo "" . date_format(new \DateTime($packingjob->date_end), 'd.m.Y') . " " . getTimeFromSeconds($packingjob->time_end) . "
"; } echo "" . date_format(new \DateTime($VorbereitungsTimeDetail->date_end), 'd.m.Y') . " " . getTimeFromSeconds($VorbereitungsTimeDetail->time_end) . ""; } else if(!HideDispoTimes){ echo date_format(new \DateTime($packingjob->date_end), 'd.m.Y') . " " . getTimeFromSeconds($packingjob->time_end) . ""; } } echo ""; if ($packingjob->is_all_out == 0) { echo ""; } else { echo '
'; echo ""; } echo ($packingjob->pieces_sum_total - abs($packingjob->is_all_out)) . "/" . $packingjob->pieces_sum_total; echo ""; if(ShowShippingIcons){ if(UseShippingStatus){ if(($PackingNote_data_output->status==ShippingOutOrganizedStatus)||($PackingNote_data_output->status==ShippingOrganizedStatus)){ echo ""; }else{ echo ""; } if($PackingNote_data_output->is_self_pickup){ echo ''; } else{ if(preg_match('/'.KurierContainsText.'/i',$PackingNote_data_output->shipping_out)){ echo ''; } if(preg_match('/'.SpeditionContainsText.'/i',$PackingNote_data_output->shipping_out)){ echo ''; } if(preg_match('/'.DHLContainsText.'/i',$PackingNote_data_output->shipping_out)){ echo ''; } if(preg_match('/'.LKWContainsText.'/i',$PackingNote_data_output->shipping_out)){ echo ''; } if(preg_match('/'.TransporterContainsText.'/i',$PackingNote_data_output->shipping_out)){ echo ''; } if(preg_match('/'.PKWContainsText.'/i',$PackingNote_data_output->shipping_out)){ echo ''; } } echo ""; } echo ""; } echo ""; } } } function getTimeFromSeconds(string $timestring) { $hours = floor($timestring / 3600); $mins = floor($timestring / 60 % 60); $secs = floor($timestring % 60); $timeFormat = sprintf('%02d:%02d', $hours, $mins); return $timeFormat; } ?>