<?php

/*
 * ROMAN DIGITAL - Autor: Américo Patetta
 */

set_include_path("../../");
include_once("server/class/Delivery.php");
include_once("server/class/WebStatusManager.php");
include_once("server/class/Audit/Logger.php");

$jsonParams = file_get_contents('php://input');
$paramObj = json_decode($jsonParams);

if (isset($paramObj->idDelivery) && isset($paramObj->token) && $paramObj->token == TOKEN_BRODEVO) {
    
    $delivery = new Delivery($paramObj->idDelivery);
    if($delivery->retrieve() != -1){
        $pedidosPendientes = $delivery->getPedidosCount();
        if($pedidosPendientes == 0 || (time() - $delivery->getLastPedidoTimestamp()) < TIEMPO_MAXIMO_ENTRE_PICKINGS){
            if(isset($paramObj->pedido)){
                $response['ack'] = $delivery->addPedido($paramObj->pedido);
                //if($paramObj->pedido->lat != 0 && $paramObj->pedido->lng != 0 && $response['ack'] === 0){
                if(($response['ack'] == 0) && $paramObj->pedido->lat != 0 && $paramObj->pedido->lng != 0 ){
                    WebStatusManager::updateStatus($paramObj->pedido->idPedido, "PEN");
                }
            } else {
                $response['ack'] = -3;
                $response['msg'] = "No es posible agregar el pedido";
            }
        } else {
            $response['ack'] = -5;
            $response['msg'] = sprintf("El delivery tiene %d pedido(s) sin entregar",$pedidosPendientes);
        }
    } else {
        $response['ack'] = -4;
        $response['msg'] = sprintf("Delivery no reconocido");
    }
} else {
    $response['ack'] = -5;
    $response['msg'] = "Parámetros incorrectos, o incompletos";
}

header('Content-Type: application/json; charset=utf-8');
echo json_encode($response);
