executeQuery($sql, $type, $values); if($res->num_rows) { $i = 0; $pannel_comparation = []; $response['pannel']['active'] = 0; while($row = $res->fetch_assoc()) { $i++; $response['cars'][$i]['codigo'] = $row['CODIGO']; $response['cars'][$i]['mostrar'] = $row['MOSTRAR']; $response['cars'][$i]['stock'] = $row['STOCK']; $response['cars'][$i]['inicio'] = $row['INICIO'] ? date('d/m/Y', strtotime($row['INICIO'])) : false; $response['cars'][$i]['checked'] = $row['VEHICULO']; $pannel_comparation['date'][$i] = $row['INICIO']; $response['pannel']['date'] = max($pannel_comparation['date']) ? date('d/m/Y', strtotime(max($pannel_comparation['date']))) : 'NaN'; $response['pannel']['active'] += $row['VEHICULO'] ? 1 : 0; $response['pannel']['total'] = $i; } $limit = $Schema->executeQuery('SELECT LIMITE FROM VEHICULOS_PORTALES WHERE CODIGO = ?', 'i', [$portal])->fetch_assoc();//Si el portal tiene limite de publicaciones $response['pannel']['limit'] = $limit['LIMITE'] ? $limit['LIMITE'] : 'NaN'; } $response['stock_active'] = $stock_active; break; case 2://Publicar vehiculo por vehiculo con el click $onOFF = Statics::SafeInput($con, $_POST['onOFF']); $car = Statics::SafeInput($con, $_POST['car']); $portal = Statics::SafeInput($con, Crypt::decryptURL($_POST['portal'])); $portal_limit = $Schema->executeQuery('SELECT LIMITE FROM VEHICULOS_PORTALES WHERE CODIGO = ?', 'i', [$portal])->fetch_assoc();//Si el portal tiene limite de publicaciones $count_cars = $Schema->executeQuery('SELECT COUNT(VEHICULO) AS TOTALS FROM VEHICULOS_PUBLICACIONES WHERE PORTAL = ? AND ACTIVO = ?', 'ii', [$portal, 1])->fetch_assoc(); if($onOFF) { $limit = $portal_limit['LIMITE'] ? $portal_limit['LIMITE'] : 9999999999; if($count_cars['TOTALS'] > $limit) {//Si supera el limite devuelve un error $response['status'] = false; $response['request'] = 'Request limit'; $response['pannel']['active'] = $count_cars['TOTALS']; } else { $Schema->executeQuery('INSERT INTO VEHICULOS_PUBLICACIONES(VEHICULO, PORTAL, INICIO) VALUES(?, ?, ?)', 'iis', [$car, $portal, date('Y-m-d H:i:s')]); $response['pannel']['active'] = $count_cars['TOTALS'] + 1; } } else { $Schema->executeQuery('UPDATE VEHICULOS_PUBLICACIONES SET ACTIVO = ?, FIN = ? WHERE PORTAL = ? AND VEHICULO = ? AND ACTIVO = ?', 'isiii', [0, date('Y-m-d H:i:s'), $portal, $car, 1]); $response['pannel']['active'] = $count_cars['TOTALS'] - 1; } break; case 3://Publicar todo el stock $checked = Statics::SafeInput($con, $_POST['checked']); $stock = Statics::SafeInput($con, $_POST['stock']); $portal = Statics::SafeInput($con, Crypt::decryptURL($_POST['portal'])); $portal_limit = $Schema->executeQuery('SELECT LIMITE FROM VEHICULOS_PORTALES WHERE CODIGO = ?', 'i', [$portal])->fetch_assoc(); if($stock) { //Solo si se recibe un stock if($checked) { //True signidica que publica todo $sql = 'SELECT DISTINCT V.CODIGO, V.MOSTRAR, V.STOCK, NULL AS PORTAL, NULL AS INICIO, NULL AS VEHICULO FROM VEHICULOS V WHERE V.ACTIVO = ? AND V.PAPELERA = ? AND V.CODIGO NOT IN (SELECT VEHICULO FROM VEHICULOS_PUBLICACIONES WHERE FIN IS NULL AND PORTAL = ?) AND V.STOCK = ?'; $type = 'iiii'; $values = [1, 0, $portal, $stock]; $res = $Schema->executeQuery($sql, $type, $values); if($res->num_rows) { $count_cars = $Schema->executeQuery('SELECT COUNT(VEHICULO) AS TOTALS FROM VEHICULOS_PUBLICACIONES WHERE PORTAL = ? AND ACTIVO = ?', 'ii', [$portal, 1])->fetch_assoc(); $limit = $portal_limit['LIMITE'] ? $portal_limit['LIMITE'] : 9999999999; if($count_cars['TOTALS'] > $limit) { $response['status'] = false; $response['request'] = 'Request limit'; } else { while($row = $res->fetch_assoc()) { $Schema->executeQuery('INSERT INTO VEHICULOS_PUBLICACIONES(VEHICULO, PORTAL, INICIO) VALUES(?, ?, ?)', 'iis', [$row['CODIGO'], $portal, date('Y-m-d H:i:s')]); } } } else { $response['status'] = false; $response['request'] = 'No result'; } } else { // significa que elimina todo $Schema->executeQuery('UPDATE VEHICULOS_PUBLICACIONES P INNER JOIN VEHICULOS V ON P.VEHICULO = V.CODIGO AND V.STOCK = ? SET P.ACTIVO = ?, P.FIN = ? WHERE P.PORTAL = ?', 'iisi', [$stock, 0, date('Y-m-d H:i:s'), $portal]); } } else { $response['status'] = false; $response['request'] = 'Invalid stock'; } break; default: $response['status'] = false; $response['request'] = 'Invalid'; } echo json_encode($response);