• Nenhum resultado encontrado

>> Relatório Projeto EU-Rent >> >> >>

N/A
N/A
Protected

Academic year: 2021

Share ">> Relatório Projeto EU-Rent >> >> >>"

Copied!
6
0
0

Texto

(1)

Relatório gerado pelo RAPDIS 1.0 versão gratuita. 20/10/2009

>> Relatório Projeto EU-Rent >> >> >>

Processos

• Car Rental Mini

• Atividades • Select car

(2)

var aCar: Car; begin

aCar:= [Car.allInstances->select(c | c.status = 'available' ->asSequence->first()]; [aCar].status:= ['reserved'];

[process].car:=[aCar]; end;

post SelectCar_post01: self.car.isDefined

post SelectCar_post02: self.car = Car.allInstances->select(c | c.status = 'available' ->asSequence->first() post SelectCar_post03: self.car.status = 'reserved'

• Identify client procedure identifyClient(process: Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumbe Process,aName:String,aSocSecNumber:String,aDLNumber:String,aPhone:String,anAddress:String,aBirthDate:Integer,aLicensingDate:Integer) var aClient: Client, aDrivingLicense: DrivingLicense;

begin aClient:= Create(Client); [aClient].name:= [aName]; [aClient].socSecNumber:= [aSocSecNumber]; aDrivingLicense := Create(DrivingLicense); [aDrivingLicense].number := [aDLNumber]; aDrivingLicense.licensingDate:= [aLicensingDate];

(3)

[aClient].phone:= [aPhone]; [aClient].address:= [anAddress]; [aClient].birthDate:= [aBirthDate]; [process].client:=[aClient];

end;

post IdentifyClient_post01: (Client.allInstances->select(c | c.socSecNumber = aSocSecNumber)->size() = 1) and (self.client.licensingDate.duration(self.client.licensingDate.now()) > 365*2)

post IdentifyClient_post02: client.name = aName

post IdentifyClient_post03: client.socSecNumber = aSocSecNumber post IdentifyClient_post04: client.drivingLicense.number = aDLNumber

post IdentifyClient_post05: client.drivingLicense.licensingDate = aLicensingDate post IdentifyClient_post06: client.phone = aPhone

post IdentifyClient_post07: client.address = anAddress post IdentifyClient_post08: client.birthDate = aBirthDate

• Check credit

procedure checkCredit(process:

Process,aClient:Client,aNumber:String,aFlag:String,aSegCode:String,aValid:Integer, anApCode: String) var aCard: CreditCard;

begin aCard:= Create(CreditCard); [aCard].number:= [aNumber]; [aCard].flag:= [aFlag]; [aCard].segCode:= [aSegCode]; [aCard].valid:= [aValid]; [aCard].approvalCode:= [anApCode]; Insert(Client_CreditCard, [aClient], [aCard]); [process].creditCard:=[aCard];

[process].client:=[aClient]; end;

post Check_Credit01: card.number = aNumber post Check_Credit02: card.flag = aFlag

post Check_Credit03: card.segCode = aSegCode post Check_Credit04: card.valid = aValid

post Check_Credit05: card.approvalCode = anApCode post Check_Credit06: client.card->includes(card)

• Prepare contract

procedure prepareContract(process: Process,aClient:Client,aCar:Car,aPeriod:Period) var aRent: Rent;

begin

aRent := Create(Rent);

Insert(Rent_Car, [aRent], [aCar]); Insert(Rent_Client, [aRent], [aClient]); Insert(Period_Rent, [aRent], [aPeriod]); [aCar].status:= ['rented'];

[process].rent:=[aRent]; [process].car:=[aCar]; end;

post PrepareContract_post01: (Rent.allInstances->select(r | r.client = aClient and r.car = aCar)->size() = 1) post PrepareContract_post02: aCar.status = 'rented';

• Notify aditional driver

procedure notifyAdditionalDriver(process:

Process,aName:String,aSocSecNumber:String,aDLNumber:String,aLicensingDate:Integer, aRent: Rent) var aDriver: Driver, aDrivingLicense: CrivingLicense;

(4)

begin aDriver:= Create(Driver); [aDriver].name:= [aName]; [aDriver].socSecNumber:= [aSocSecNumber]; aDrivingLicense := Create(DrivingLicense); [aDrivingLicense].number := [aDLNumber]; [aDrivingLicense].licensingDate:= [aLicensingDate];

Insert(DrivingLicensing_Driver, [aDriver]. [aDriverLicensing]); Insert(Driver_Rent, [aRent], [aDriver]);

return aRent, aDriver; end;

post NotifyAdditionalDriver_post01:

Process.allInstances.asSequence.first.driver.drivingLicense.licensingDate.duration(process.date.now())>= 730

post NotifyAdditionalDriver_post02:

let rent: Rent = Process.allInstances.asSequence.first.rent in

rent.price = rent.period.startDate.duration(rent.period.endDate) * rent.car.price * 1,25

post NotifyAdditionalDriver_post03: Process.allInstances.asSequence.first.rent.driver->size() <= 2

• Sign contract

procedure signContract(process: Process,aRent:Rent, aRentalClerk: String) begin

[aRent].rentalClerk:= [aRentalClerk]; return aRent;

end;

post SignContract_post01: aRent.signature = true

• Select period

procedure selectPeriod(process: Process,aStartDate:Integer,anEndDate:Integer) var aPeriod: Period, aRent: Rent;

begin aPeriod:= Create(Period); [aPeriod].startDate:= [aStartDate]; [aPeriod].endDate:= [anEndDate]; [process].period:=[aPeriod]; end;

post SelectPeriod01: self.period.startDate:= aStartDate; post SelectPeriod02: self.period..endDate:= anEndDate;

• Desvios/Merges

1. name=d2

[Identify Client] process.car.mileage <= 50000 [dr2] process.car.mileage > 50000 name = m2 name=d3 [m3] process.client.drivingLicense.licensingDate.duration(process.date.now())>= 730 and process.client.status <> 'barrado' [End] process.client.drivingLicense.licensingDate.duration(process.date.now()) < 730 or process.client.status = 'barrado' name=m3 name=d4

[Prepare Contract] process.creditCard.approvalCode.isDefined() [dr5] process.creditCard.approvalCode.isUndefined()

name=m4 name=dr3 random=true name=dr4

(5)

random = true name=m5 name = m1 name = d1 [dr1] teste 1 apenas [m2] teste 1 concluindo name = dr1 random=true name = dr2 random = true name=dr5 random = true • Teste caminhos • Desvios/Merges 1. name=m1 name=d1 [2] a [3]b [4]c name=d2 random=true name=m2 name=df random=true name=mf

(6)

Classes

• Domínio

Referências

Documentos relacionados

Fica garantido pelos EMPREGADORES o fornecimento de VALE ALIMENTAÇÃO OU VALE REFEIÇÃO a todos os EMPREGADOS em atividade das categorias albergadas por esta CONVENÇÃO COLETIVA

a Medalha Militar de Prata com Passador de Prata, nos termos do Decreto nº 4.238, de 15 de novembro de 1901, regulamentado pelo Decreto nº 39.207, de 22 de maio de 1956 e com a

Eventuais descumprimentos encontram-se dispostos no presente relatório. 15º da Resolução CVM 17/2021 - existência de outras emissões de valores mobiliários,

[r]

□ Se o documento não está assinado na base de dados e tem um número atribuído, numa série de documentos tipificada como não assinada, será impresso &#34;CÓPIA DO

funcao reparativa que se consubstancia na obrigacao de devolver a vitima ao statu quo ante, seja diante da restituicao da coisa, seja atraves de um valor pecuniario que a

Os seguintes efeitos secundários são muito raros (afectam menos de 1 em cada 10.000 pessoas):. Alterações na análise sanguínea (diminuição de glóbulos vermelhos ou brancos e das

Morgado, como era chamado pelos seus colegas, Ana Cristina Pereira Morgado, sua filha, assumiu a presidéncia da Associacao no ano de 2017.Atualmente, a Associacao tem sede propria