function search_merge_sort($array) { //if array is but one element, array is sorted, so return as is if (sizeof($array) <= 1) { return $array; } //bifurcate unsorted array $array2 = array_splice($array, sizeof($array) / 2); //recursively merge-sort and return return search_merge(search_merge_sort($array), search_merge_sort($array2)); }
function ordenarPedidosDet4Vencimiento($resumen, $id, $idlocal) { $oProducto = new producto(); if (!$oProducto->Load($id)) { return $resumen; } //Existe el Producto if (!$oProducto->get("FechaVencimiento")) { return $resumen; } //Meneja Vencimiento? //Obtiene resumen por fecha $Vence = getPedidoDet2Kardex('VenceResumen', $resumen, $id, $idlocal); //~pedidodet:fecha $aResumen = explode("~", $resumen); $aVence = explode("~", $Vence); $Fechas = array(); $nResumen = array(); //Resumen ordenado por fecha foreach ($aVence as $pFecha) { $aFecha = explode(":", $pFecha); if (isset($aFecha[1])) { array_push($Fechas, strtotime($aFecha[1])); } } $Fechas = search_merge_sort($Fechas); //Resumen fechas ordenadas foreach ($Fechas as $Fecha) { //Get IdPedido de Resumen fechas desordenadas foreach ($aVence as $pFecha) { $aFecha = explode(":", $pFecha); if (!isset($aFecha[1])) { break; } if ($Fecha == strtotime($aFecha[1])) { //Push Resumen Kardex foreach ($aResumen as $pPedido) { $aPedido = explode(":", $pPedido); if ($aPedido[0] == $aFecha[0]) { if (!in_array($pPedido, $nResumen)) { array_push($nResumen, $pPedido); } break; } } } } } //Resumen ordenado por vencimiento $resumen = implode("~", $nResumen); return $resumen; }