Met behulp van dit SQL script is het mogelijk om automatisch de ritstaten en tijdsverantwoording aan te passen op basis van de tijden uit de route informatie. De aanvang- en eindtijden worden gelijk gesteld met de start- en eindtijden van de ritopdrachten uit de ritstaat. Enkel ritstaten uitgevoerd men een Cabman BCT worden binnen dit script afgehandeld.
-- START SCRIPT--
DECLARE @myLsnID int
DECLARE MyCursor CURSOR FOR
SELECT DISTINCT lsn_id FROM ritstaten
WHERE lsn_status = 1
and lsn_aanvang > (getdate()-2)
and not exists(
select *
FROM Planning
where pla_soortvervoer not in ('s') and pla_lsn=lsn_id)
OPEN myCursor
--Read the initial lsn id value from the cursor
FETCH NEXT FROM myCursor
INTO @myLsnID
WHILE @@FETCH_STATUS = 0
BEGIN
-- we gaan de tijdsverantwoording aanvang aanpassen
update Ritstaten set lsn_aanvang =
(select MIN(pla_datumtijd) from planning where pla_status <> 'D' and pla_lsn = lsn_id)
where
lsn_aanvang <> (select MIN(pla_datumtijd) from planning where pla_status <> 'D' and pla_lsn = lsn_id)
and lsn_omschrijving like 'CAB%'
and lsn_status = 1
and lsn_id=@myLsnID;
-- we gaan de tijdsverantwoording einde aanpassen
update Ritstaten set lsn_einde =
(select MAX(pla_tijdstip_locatie) from planning where pla_status <> 'D' and pla_lsn = lsn_id)
where
lsn_einde <> (select MAX(pla_tijdstip_locatie) from planning where pla_status <> 'D' and pla_lsn = lsn_id)
and lsn_omschrijving like 'CAB%'
and lsn_status = 1
and lsn_id=@myLsnID;
-- we gaan de transacties verwerken
insert into transacties (tra_datum, tra_gebruiker, tra_opmerking, tra_ritstaat, tra_code, tra_rit)
select getdate(), 999, 'Script proces', @myLsnID, 501, pla_id from planning where
(((pla_tx_oph_latitude <> pla_tx_best_latitude)
and (pla_tx_oph_longitude <> pla_tx_best_longitude)
and (pla_tx_oph_latitude > 0)
and (pla_tx_oph_longitude > 0)
and (pla_tx_best_latitude > 0)
and (pla_tx_best_longitude > 0)
and ((pla_status = 'V')) OR (pla_status = 'L')))
and (pla_van > 1)
and (pla_soortvervoer COLLATE Latin1_General_CS_AS = 's')
and (pla_mut = 1)
and (pla_rc = 0)
and (pla_bedrag = 0)
and (pla_lsn=@myLsnID);
-- we gaan de ritten sluiten die via BCT werden gereden
update planning set pla_mut=0 where pla_rc=0 and pla_bedrag=0 and pla_lsn=@myLsnID;
insert into transacties (tra_datum, tra_gebruiker, tra_opmerking, tra_ritstaat, tra_code, tra_rit) values(getdate(), 999, 'Script proces', @myLsnID, 23, 0);
-- we gaan de ritten sluiten die via BCT werden gereden
update planning set pla_mut = 0 where pla_id in (
select
pla_id
from planning
where
(((pla_tx_oph_latitude <> pla_tx_best_latitude)
and (pla_tx_oph_longitude <> pla_tx_best_longitude)
and (pla_tx_oph_latitude > 0)
and (pla_tx_oph_longitude > 0)
and (pla_tx_best_latitude > 0)
and (pla_tx_best_longitude > 0)
and ((pla_status = 'V')) OR (pla_status = 'L')))
and (pla_van > 1)
and (pla_soortvervoer COLLATE Latin1_General_CS_AS = 's')
and (pla_mut = 1)
and (pla_rc = 0)
and (pla_bedrag = 0)
and (pla_lsn=@myLsnID));
-- einde ritten afsluiten
-- we gaan de ritstaten uitrekenen
insert into transacties (tra_datum, tra_gebruiker, tra_opmerking, tra_ritstaat, tra_code, tra_rit) values(getdate(), 999, 'Script proces', @myLsnID, 50, 0);
Exec BIJWERKENLSN @myLsnID, 1;
-- we gaan de ritstaat afsluiten
insert into transacties (tra_datum, tra_gebruiker, tra_opmerking, tra_ritstaat, tra_code, tra_rit) values(getdate(), 999, 'Script proces', @myLsnID, 20, 0);
Exec AFSLUITEN @myLsnID, 1;
FETCH NEXT FROM MyCursor
INTO @myLsnID
END
CLOSE MyCursor
DEALLOCATE MyCursor;
-- EINDE SCRIPT --
Was dit artikel nuttig?
Dat is fantastisch!
Hartelijk dank voor uw beoordeling
Sorry dat we u niet konden helpen
Hartelijk dank voor uw beoordeling
Feedback verzonden
We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren