Alguien sabe como comenzar un sistema de tracking? O sistema de seguimiento de documentos php?

Y). Esta vez les interrumpo para preguntar si es que alguien tiene o me puede ayudar con un sistema de tracking o sistema de seguimiento de documentos.. Les explico:

Un sistema como los que usan olva courier o serpost que son empresas de envios..

Alguien ya tengo la primera parte donde consta de que el trabajador pueda subir los datos del envio, y la consulta por parte del cliente.. Lo que me falta es de COMO HACER QUE EL SISTEMA LISTA UN PROCESO DE ENVIO EJEMPLO: SALIO DE TAL CIUDAD, Y LUEGO CUANDO ALGUIEN ACTUALICE LOS DATOS EN OTRA CIUDAD APARESCA EL SEGUIMIENTO.

No se si me explique bien.. Ojala me hayan entendido

1 respuesta

Respuesta
2

Bueno esto lo puedes lograr con algo de lógica, a ver:

Si tienes un sistema de envío, el cual cumple varias escalas, en cada escala deben notificar cuando llegó y cuando salió, esta información va contra una base de datos que llevará la ruta hasta su entrega, es un simple UPDATE a la base de datos.

Ejemplo:

1.- Cuando sale el envío, se crea el registro con sus datos y un número de identificación (ID) único asociado a un número de cupón o de envío.

2.- Al llegar a una escala, se actualizan los datos de posición geográfica, indicando que está en cierto lugar, con fecha y hora de llegada

3.- Al salir de una escala, se actualizan los datos de salida del sitio con fecha y hora.

Para cumplir esto debes contar con el personal que interactúa con el software, dado que estos datos no se llenarán solos, en caso contrario, debes contar con acceso a algún sistema de seguimiento que tenga el paquete enviado (Empresa de envío, Sistema GPS, Rastreo de vehículo de entregas, entre muchos otros).

claro la logica ya lo se.pero algo de codigo¿? tienen¿? es que ando con otras cosas y ya comence un poco pero no hice como para que liste el proceso..osea.. ya hice el formulario de ingreso y de actualizacion y de cliente (consulta) pero me puedes explicar como hacer la relacion de lugares donde llego¿?

Ok, ¿pero qué es lo que tienes? Recuerda que cada programador aplica la misma lógica de forma diferente, dependiendo del conocimiento y los recursos que cuenten, yo podría enviarte un código implementado en MVC, con Front-End Bootsatrap 3, optimizado para servidores Apache bajo Linux y a lo mejor no entenderías ni papa de lo que te estoy enviando.

Con respecto a la relación de los lugares donde llega, esta información debe estar contenida en otra tabla diferente del registro del envío, que contenga los campos siguientes:

1.- ID del envío => Identificador del envío

2.- Lugar de llegada => Lugar donde está siendo recibido, puede ser llegada final o escala

3.- Fecha de llegada => la fecha en que es recibido en el destino final o en la escala

4.- Entregado => bandera que indica si fue o no entregado a su destinatario (tipo booleano)

Con esto puedes listar fácilmente todas las escalas o interacciones con el envío.

Para manejar la tabla, es sencillo, solo añadir información siempre y cuando no se haya realizado la entrega final.

Pon algo de código para ver en que puedo ayudarte.

este es mi codigo que actualiza desde el segundo formulario:

<?php include_once("data/connect.php"); ?>
<?php
//proceso de almacenamiento
$remito = $_POST["remito"];
$ubicacion = $_POST["ubicacion"];
$estado = $_POST["estado"];
$observacion = $_POST["observacion"];
$fecha = date("Y-m-d");
$hora = date("H:i");
$link = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error($link));
mysql_select_db($db_database, $link) or die(mysql_error($link));

$sql = "UPDATE datos set ubicacion=".$ubicacion.", estado=".$estado.", observacion=".$observacion.", fecha=".$fecha.", hora=".$hora." where remito=".$remito;
mysql_query($sql, $link) or die(mysql_error($link));
echo " Archivos Guardados, correctamente ";
?>

solo estoy usando una sola tabla para el ingreso y la actualizacion.

Ok, muy bien, alguna recomendaciones:

Desde el año 2004 está disponible una mejora para las conexiones con bases de datos MySQL, la cual es mysqli, en la actualidad utilizar mysql_connect() o mysql_query(), no está siendo soportado por PHP, devolviendo una excepción deprecated.

http://php.net/manual/es/book.mysqli.php 

tu conexión la deberías hacer así:

$link = new mysqli($db_host, $db_user, $db_pass, $db_database);

las consultas deberían ser así:

$sql = "UPDATE datos set ubicacion=".$ubicacion.", estado=".$estado.", observacion=".$observacion.", fecha=".$fecha.", hora=".$hora." where remito=".$remito;

$query = $mysqli->query($sql);

Al poseer una sola tabla para la ruta seguida, estás limitando el alcance de tu software. Suponte que el envío hace 3 escalas y a la final debe ser devuelto y recorre la misma ruta, como sabes en que fecha llegó a la escala 2 de ida y a la escala 3 de vuelta, por ejemplo.

Entonces en una tabla guardas la información de tus envíos y en una tabla, rutas por ejemplo, las actualizaciones asociándolas con un identificador único del envío.

¿Cuál es la estructura de la tabla en la base de datos?

Así es la estructura.. amigo si puedes corregir ese detalle que "no se como hacerlo" por favor te lo agradecería muchísimo

Ok, muy bien, déjame hacer algo y te lo envío para ver si entra en tus expectativas.

Te lo agradecería mucho amigo mio

Mi estimado.. no es por fregado.. pero necesito esas correcciones lo más pronto posible... espero respuesta

Disculpa la demora, pero estaba full trabajo.

Te indico:

Tu código modificado

¿
<?php 
require_once("data/connect.php"); 
/*Como te había comentado este código te funcionará a la pefección
pero separa en dos tablas tu base de datos, una para la info y otra
para la ubicación actual del paquete y en vez de un update haces un
insert para ir añadiendo nuevos registros*/
//proceso de almacenamiento
$remito = $_POST["remito"];
$ubicacion = $_POST["ubicacion"];
$estado = $_POST["estado"];
$observacion = $_POST["observacion"];
$fecha = date("Y-m-d");
$hora = date("H:i");
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_database);
$sql = "UPDATE datos set ubicacion=".$ubicacion.", estado=".$estado.", observacion=".$observacion.", fecha=".$fecha.", hora=".$hora." where remito=".$remito;
if($query = $mysqli->query($sql)){
    echo " Archivos Guardados, correctamente ";
}else{
    echo "Error al procesar petición";
}
?>

Un ejemplo de código separando las tablas

<?php
require_once "data/conectar.php";
/*Supongamos que la nueva tabla es rast (de rastreo)
con los campos id, registro, ubicacion, fecha, hora, observacion, remito
donde registro es el id de la tabla datos correspondiente al envío*/
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_database);
/*Ten en cuenta que si vas a agregar campos tipo cadena conserva las comillas simples antes y despues de cada
variable, si son campos numéricos, quitalas*/
$sql = "INSERT INTO rast(id, registro, ubicacion, fecha, hora, observacion, remito) ".
            "VALUES('','$_POST['id_de_la_tabla_datos']', '$_POST['ubicacion']', '".date("Y-m-d")."', '".date("H:i")."', '$_POST['observacion']', '$_POST['remito']')";
if($query = $mysqli->query($sql);){echo " Archivos Guardados, correctamente ";}else{echo "Error al procesar petición";}
?>

En el segundo código se me fue un ";" de más en la sentencia if

if($query = $mysqli->query($sql);) -> este punto y coma no va

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas