begin
try
vDespDatoRec := AContext.Connection.IOHandler.ReadLn();
except
Exit;
end;
if vDespDatoRec.Length < 5 then
begin
Exit;
end;
logInt(vDespDatoRec,1);
vDespTipoDato := 0;
vDespMsgError := '';
vDespJSONDato := TlkJSON.ParseText(vDespDatoRec) as TlkJSONobject;
try
try
vDespUsuario := vartostr(vDespJSONDato.Field['login'].Field['user'].Value);
vDespTipoDato := 1; except
end;
try
vDespLoginVersion := vartostr(vDespJSONDato.Field['login'].Field['version'].Value);
except
vDespLoginVersion := '1';
end;
try
vDespMovil := StrToInt(vartostr(vDespJSONDato.Field['posicion'].Field['movil'].Value));
vDespTipoDato := 2; except
end;
try
vDespMovil := StrToInt(vartostr(vDespJSONDato.Field['viajeaceptado'].Field['movil'].Value));
vDespIdViaje := StrToInt(vartostr(vDespJSONDato.Field['viajeaceptado'].Field['idviaje'].Value));
vDespTipoDato := 3; except
end;
try
vDespMovil := StrToInt(vartostr(vDespJSONDato.Field['viajerechazado'].Field['movil'].Value));
vDespIdViaje := StrToInt(vartostr(vDespJSONDato.Field['viajerechazado'].Field['idviaje'].Value));
vDespTipoDato := 4; except
end;
try
vDespMovil := StrToInt(vartostr(vDespJSONDato.Field['viajetimeout'].Field['movil'].Value));
vDespIdViaje := StrToInt(vartostr(vDespJSONDato.Field['viajetimeout'].Field['idviaje'].Value));
vDespTipoDato := 5; except
end;
try
vDespMovil := StrToInt(vartostr(vDespJSONDato.Field['historialviajes'].Field['movil'].Value));
vDespTipoDato := 6; except
end;
try
vDespMovil := StrToInt(vartostr(vDespJSONDato.Field['estadoqapqrx'].Field['movil'].Value));
vDespTipoDato := 7; except
end;
finally
vDespJSONDato.Free;
end;
if vDespTipoDato = 0 then
begin
Exit;
end;
case vDespTipoDato of
1: begin vDespJSONRespuestaLogin := TlkJSONobject.Create;
try
vDespRespLogin := LoginInt(vDespDatoRec);
if vDespConfig_ControlVersion then
begin
try
if StrToFloat(vDespLoginVersion) < vDespConfig_VersionActual then
begin
vDespRespLogin := 9;
vDespMsgError := 'Esta utilizando una version obsoleta. Debe Actualizar la App...';
end;
except
vDespRespLogin := 0;
end;
end;
vDespJSONRespuestaLogin.Add('permiso' , IntToStr(vDespRespLogin) );
vDespJSONRespuestaLogin.Add('segTimeOut' , IntToStr(vDespConfig_AutoTimeOut) ); vDespJSONRespuestaLogin.Add('movil' , IntToStr(UsuarioMovilInt(vDespUsuario)) ); vDespJSONRespuestaLogin.Add('intervaloreporte' , IntToStr(vDespConfig_IntervaloReporte) ); vDespJSONRespuestaLogin.Add('segfinalizarviaje', IntToStr(vDespConfig_FinalizarViaje) ); vDespJSONRespuestaLogin.Add('msgerror' , vDespMsgError); AContext.Connection.IOHandler.WriteLn(TlkJSON.GenerateText(vDespJSONRespuestaLogin));
Log('->'+vDespUsuario+' '+TlkJSON.GenerateText(vDespJSONRespuestaLogin),1);
finally
FreeAndNil(vDespJSONRespuestaLogin);
end;
end;
2: begin if vDespConfig_GuardarPosicion then
begin
if not PosicionInt(vDespDatoRec) then
begin
logInt('Error en Guardar Posicion ',0);
end;
end;
vDespAuxS := '';
if vDespConfig_EnviarViajes then
begin
vDespAuxS := ControlInt(vDespMovil); if Length(vDespAuxS) = 0 then
begin
vDespAuxS := ControlQTAInt(vDespMovil); end;
end;
if Length(vDespAuxS) = 0 then
begin
vDespAuxS := '{}';
end;
AContext.Connection.IOHandler.WriteLn(vDespAuxS);
if vDespAuxS.Length > 2 then
Log('Viaje -> '+IntToStr(vDespMovil)+' -> '+vDespAuxS,2);
end;
3: begin vDespJSONRespuestaFinal := TlkJSONobject.Create;
try
vDespIdViajeEnUso := idviajeenusoInt(vDespIdViaje);
if vDespIdViajeEnUso > 0 then
begin
vDespDomicilio := ArmarDomicilioInt(vDespIdViajeEnUso);
vDespObservaciones := Trim(PendienteInfoTmpInt(vDespIdViajeEnUso))+' '+trim(PendienteObservacionesInt(vDespIdViajeEnUso));
vDespViajeLat := Trim(PendienteLatInt(vDespIdViajeEnUso));
vDespViajeLng := Trim(PendienteLngInt(vDespIdViajeEnUso));
end
else
begin
vDespDomicilio := 'VIAJE CANCELADO';
vDespObservaciones := '';
vDespViajeLat := '';
vDespViajeLng := '';
end;
vDespJSONRespuestaFinal.Add('domicilio' , vDespDomicilio);
vDespJSONRespuestaFinal.Add('observaciones', vDespObservaciones);
vDespJSONRespuestaFinal.Add('lat', vDespViajeLat);
vDespJSONRespuestaFinal.Add('lng', vDespViajeLng);
vDespJSONRespuestaFinal.Add('idviaje', IntToStr(vDespIdViaje));
AContext.Connection.IOHandler.WriteLn(TlkJSON.GenerateText(vDespJSONRespuestaFinal));
logInt('Viaje Aceptado -> '+IntToStr(vDespMovil)+' -> '+TlkJSON.GenerateText(vDespJSONRespuestaFinal),2);
DatoViajesInt(True,1, vDespIdViaje); finally
FreeAndnil(vDespJSONRespuestaFinal);
end;
end;
4: begin vDespIdViajeEnUso := idviajeenusoInt(vDespIdViaje);
DatoViajesInt(True,2, vDespIdViaje);
logInt('Viaje Rechazado -> '+IntToStr(vDespMovil) ,2);
end;
5: begin vDespIdViajeEnUso := idviajeenusoInt(vDespIdViaje);
DatoViajesInt(True,3, vDespIdViaje);
logInt('Viaje TimeOut -> '+IntToStr(vDespMovil) ,2);
end;
6: begin vDespRespS := ViajesInt(vDespMovil);
AContext.Connection.IOHandler.WriteLn(vDespRespS);
end;
7: begin vDespRespS := ValidarMovilQRXInt(vDespMovil);
AContext.Connection.IOHandler.WriteLn(vDespRespS)
end;
else
begin
LogInt('No trajo dato alguno... ',0)
end;
end;
end;