Afsluiten ritstaten groepsvervoer Cabman BCT

Gewijzigd op Vr, 22 Jul, 2016 om 9:16 AM

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

Laat ons weten hoe we dit artikel kunnen verbeteren!

Selecteer tenminste een van de redenen
CAPTCHA-verificatie is vereist.

Feedback verzonden

We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren