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
Feedback verzonden
We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren