Afsluiten ritstaten contant werk voor Cabman BCT

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

Met behulp van dit script verwerken wij alle particuliere ritten die op de meter werden gereden voor de contant debiteur. Na verwerking sluiten wij via het script eveneens de ritten af en de ritstaten waar enkel voornoemde ritten op staan.


LET OP: 

vervang VOORAF in het script de waarden van pla_reiziger met de JUISTE waarden van uw database (ID NUMMER).


-- AANVANG SCRIPT--


-- verwerking van particuliere ritstaten contant werk

DECLARE @myLsnID int

DECLARE MyCursor CURSOR FOR

SELECT DISTINCT lsn_id FROM ritstaten 

WHERE lsn_status = 1 

and lsn_aanvang > (getdate()-1)

and not exists(

select *

FROM Planning

where pla_soortvervoer not in ('P') 

and pla_lsn=lsn_id 

and ((pla_reiziger = 1) or (pla_reiziger = 262) or (pla_reiziger=15388)) )


OPEN myCursor

--Read the initial lsn id value from the cursor

FETCH NEXT FROM myCursor

INTO @myLsnID

WHILE @@FETCH_STATUS = 0

BEGIN


-- meterbedragen overnemen 

update planning set pla_bedrag = pla_tx_paid_amount 

where 

(pla_tx_paid_amount > 0) 

and ((pla_reiziger = 1) or (pla_reiziger = 262)) 

and (pla_mut = 1) 

and (pla_soortvervoer = 'P')

and (pla_rc = 0)

and (pla_lsn=@myLsnID);  


-- 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 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_soortvervoer COLLATE Latin1_General_CS_AS = 'P')

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 = 'P')

and (pla_mut = 1)

and (pla_rc = 0)

and (pla_bedrag = 0)

and (pla_lsn=@myLsnID));

-- einde ritten afsluiten 


FETCH NEXT FROM MyCursor

INTO @myLsnID

END

CLOSE MyCursor

DEALLOCATE MyCursor;


-- verwerking ritstaten particulier op rekening

DECLARE MyCursor CURSOR FOR

SELECT DISTINCT lsn_id FROM ritstaten 

WHERE lsn_status = 1 

and lsn_aanvang > (getdate()-1)

and not exists(

select *

FROM Planning

where pla_soortvervoer not in ('P') 

and pla_lsn=lsn_id 

and (pla_reiziger <> 1) 

and (pla_reiziger <> 262) 

and (pla_reiziger <> 15388))


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 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 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_soortvervoer COLLATE Latin1_General_CS_AS = 'P')

and (pla_mut = 1)

and (pla_rc = 1)

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 = 1) 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_soortvervoer COLLATE Latin1_General_CS_AS = 'P')

and (pla_mut = 1)

and (pla_rc = 1)

and (pla_bedrag > 0)

and (pla_lsn=@myLsnID));

-- einde ritten afsluiten 


FETCH NEXT FROM MyCursor

INTO @myLsnID

END

CLOSE MyCursor

DEALLOCATE MyCursor;




-- we gaan de ritstaten afsluiten


DECLARE MyCursor CURSOR FOR

SELECT DISTINCT lsn_id FROM ritstaten 

WHERE lsn_status = 1 

and (lsn_aanvang > (getdate()-1))

and (lsn_bedrag_verschil = 0)

and not exists(

select *

FROM Planning

where pla_soortvervoer not in ('P') 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 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