Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
curio-biblio
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Thiago Anders
curio-biblio
Commits
6b6ef2a2
Commit
6b6ef2a2
authored
Oct 27, 2017
by
Thiago Anders
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Caso de uso emprestar livro finalizado.
parent
871e43cc
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
487 additions
and
29 deletions
+487
-29
model.uml
mdl/model.uml
+154
-13
acuRegisterModelMappings.pas
srv/src/lib/acuRegisterModelMappings.pas
+126
-2
nguEmprestimo.pas
srv/src/ngu/nguEmprestimo.pas
+9
-1
ucuEmprestarLivro.pas
srv/src/ucu/ucuEmprestarLivro.pas
+198
-13
No files found.
mdl/model.uml
View file @
6b6ef2a2
This diff is collapsed.
Click to expand it.
srv/src/lib/acuRegisterModelMappings.pas
View file @
6b6ef2a2
...
...
@@ -366,7 +366,7 @@ begin
prop
:=
lClassMapTicket
.
NewAttributeTicket
(
'DataDev'
,
'acDateTime'
,
pvPersistent
,
False
);
prop
.
FixSize
:=
0
;
prop
.
VarSize
:=
0
;
prop
.
Mandatory
:=
Tru
e
;
prop
.
Mandatory
:=
Fals
e
;
prop
.
DBType
:=
'DATETIME'
;
lClassToDBMapTicket
.
NewDbColumnMapRegisterTicket
(
prop
).
ColumnName
:=
'DATADEV'
;
...
...
@@ -1502,6 +1502,127 @@ begin
''
;
end
;
function
GetXSDOut_3219_smucEmprestarLivro_EditandoEmprestimos_RM_CONCLUIR_EDICAO_EMPRESTIMO
:
String
;
begin
Result
:=
'<?xml version="1.0"?>'
+
#
13
#
10
+
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->'
+
#
13
#
10
+
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">'
+
#
13
#
10
+
' <xs:element name="SYSMSG">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="1" maxOccurs="1">'
+
#
13
#
10
+
' <xs:element name="Cliente">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="1" maxOccurs="1">'
+
#
13
#
10
+
' <xs:element name="Emprestimos">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="1" maxOccurs="unbounded">'
+
#
13
#
10
+
' <xs:element name="Emprestimo">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="1" maxOccurs="1">'
+
#
13
#
10
+
' <xs:element name="Exemplar">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="1" maxOccurs="1">'
+
#
13
#
10
+
' <xs:element name="Livro">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:attribute name="Titulo" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="Autor" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="OID" type="xs:int" use="required"/>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:attribute name="Codigo" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="OID" type="xs:int" use="required"/>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:attribute name="Retirada" type="xs:date" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="PrevistaDev" type="xs:date" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="OID" type="xs:int" use="required"/>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:attribute name="Nome" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="CPF" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="OID" type="xs:int" use="required"/>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
'</xs:schema>'
+
#
13
#
10
+
''
;
end
;
function
GetXSDIn_3219_smucEmprestarLivro_EditandoEmprestimos_RM_REMOVER_EXEMPLAR
:
String
;
begin
Result
:=
'<?xml version="1.0"?>'
+
#
13
#
10
+
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->'
+
#
13
#
10
+
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">'
+
#
13
#
10
+
' <xs:element name="SYSMSG">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="1" maxOccurs="1">'
+
#
13
#
10
+
' <xs:element name="Exemplar">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:attribute name="OID" type="xs:int" use="required"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
'</xs:schema>'
+
#
13
#
10
+
''
;
end
;
function
GetXSDOut_3219_smucEmprestarLivro_EditandoEmprestimos_RM_REMOVER_EXEMPLAR
:
String
;
begin
Result
:=
'<?xml version="1.0"?>'
+
#
13
#
10
+
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->'
+
#
13
#
10
+
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">'
+
#
13
#
10
+
' <xs:element name="SYSMSG">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="1" maxOccurs="1">'
+
#
13
#
10
+
' <xs:element name="Exemplares">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="0" maxOccurs="unbounded">'
+
#
13
#
10
+
' <xs:element name="Exemplar">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence minOccurs="1" maxOccurs="1">'
+
#
13
#
10
+
' <xs:element name="Livro">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:attribute name="Titulo" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="Edicao" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="Autor" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="OID" type="xs:int" use="required"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:attribute name="Codigo" type="xs:string" use="required"/>'
+
#
13
#
10
+
' <xs:attribute name="OID" type="xs:int" use="required"/>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
' </xs:sequence>'
+
#
13
#
10
+
' <xs:anyAttribute processContents="skip"/>'
+
#
13
#
10
+
' </xs:complexType>'
+
#
13
#
10
+
' </xs:element>'
+
#
13
#
10
+
'</xs:schema>'
+
#
13
#
10
+
''
;
end
;
function
GetXSDIn_3219_smucEmprestarLivro_EscolhendoExemplar_RM_PESQUISAR_EXEMPLAR
:
String
;
begin
Result
:=
'<?xml version="1.0"?>'
+
#
13
#
10
+
...
...
@@ -1597,7 +1718,7 @@ begin
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">'
+
#
13
#
10
+
' <xs:element name="SYSMSG">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:sequence>'
+
#
13
#
10
+
' <xs:sequence
minOccurs="1" maxOccurs="1"
>'
+
#
13
#
10
+
' <xs:element name="Exemplar">'
+
#
13
#
10
+
' <xs:complexType>'
+
#
13
#
10
+
' <xs:attribute name="OID" type="xs:int" use="required"/>'
+
#
13
#
10
+
...
...
@@ -2487,11 +2608,14 @@ begin
lTransition
.
TargetState
:=
lStateMachine
.
FindState
(
'Confirmando'
);
lTransition
.
AddTrigger
(
'RM_CONCLUIR_EDICAO_EMPRESTIMO'
);
lTransition
.
AddEffect
(
'Effect_ConcluirEdicaoEmprestimo'
);
lTransition
.
XsdOut
.
XML
:=
GetXSDOut_3219_smucEmprestarLivro_EditandoEmprestimos_RM_CONCLUIR_EDICAO_EMPRESTIMO
;
lTransition
:=
lState
.
NewOutgoingTransition
(
'RM_REMOVER_EXEMPLAR'
);
lTransition
.
SourceState
:=
lState
;
lTransition
.
TargetState
:=
lState
;
lTransition
.
AddTrigger
(
'RM_REMOVER_EXEMPLAR'
);
lTransition
.
AddEffect
(
'Effect_RemoverExemplar'
);
lTransition
.
XsdIn
.
XML
:=
GetXSDIn_3219_smucEmprestarLivro_EditandoEmprestimos_RM_REMOVER_EXEMPLAR
;
lTransition
.
XsdOut
.
XML
:=
GetXSDOut_3219_smucEmprestarLivro_EditandoEmprestimos_RM_REMOVER_EXEMPLAR
;
lState
:=
lStateMachine
.
FindState
(
'EscolhendoExemplar'
);
lTransition
:=
lState
.
NewOutgoingTransition
(
'RM_CANCELAR_ESCOLHA_EXEMPLAR'
);
...
...
srv/src/ngu/nguEmprestimo.pas
View file @
6b6ef2a2
...
...
@@ -4,7 +4,7 @@ unit nguEmprestimo;
interface
uses
acuframework
;
acuframework
,
utuMessage
;
type
ngEmprestimo
=
class
(
acPersistentObject
)
...
...
@@ -14,6 +14,8 @@ type
FDataDev
:
acDateTime
;
fCliente
:
acRelationPartnerShip
;
fExemplar
:
acRelationPartnerShip
;
public
procedure
toXML
(
piField
:
utField
);
published
property
Retirada
:
acDateTime
read
FRetirada
write
FRetirada
;
property
PrevistaDev
:
acDateTime
read
FPrevistaDev
write
FPrevistaDev
;
...
...
@@ -24,6 +26,12 @@ type
implementation
procedure
ngEmprestimo
.
toXML
(
piField
:
utField
);
begin
piField
.
AddAttribute
(
'OID'
).
AsString
:=
Self
.
IDO
.
AsString
;
piField
.
AddAttribute
(
'Retirada'
).
AsDate
:=
Self
.
Retirada
.
Value
;
piField
.
AddAttribute
(
'PrevistaDev'
).
AsDate
:=
Self
.
PrevistaDev
.
Value
;
end
;
initialization
...
...
srv/src/ucu/ucuEmprestarLivro.pas
View file @
6b6ef2a2
...
...
@@ -12,12 +12,14 @@ type
procedure
Initialize
;
Override
;
procedure
Finalize
;
Override
;
private
//fCliente : ngCliente;
//fListaEmprestimos : acPersistentObjectList;
fCliente
:
ngCliente
;
fListaExemplares
:
acPersistentObjectList
;
fSavePoint
:
acPersistenceSessionSavePoint
;
published
procedure
Effect_PesquisarUsuario
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
procedure
Effect_EscolherUsuario
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
procedure
Effect_PesquisarExemplar
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
procedure
Effect_SelecionarExemplar
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
procedure
Effect_CancelarEscolhaExemplar
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
procedure
Effect_ConcluirEdicaoEmprestimo
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
procedure
Effect_RemoverExemplar
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
...
...
@@ -34,16 +36,19 @@ uses
acuObject
{define acEnumerator}
,
nguExemplar
,
nguLivro
,
nguSituacaoExemplar
;
nguSituacaoExemplar
,
nguEmprestimo
,
dateUtils
;
procedure
ucEmprestarLivro
.
Initialize
;
begin
inherited
;
fListaExemplares
:=
acPersistentObjectList
.
Create
(
ngExemplar
);
end
;
procedure
ucEmprestarLivro
.
Finalize
;
begin
fListaExemplares
.
Free
;
inherited
;
end
;
...
...
@@ -111,6 +116,9 @@ begin
raise
EucException
.
Create
(
'No foi possvel buscar o cliente.'
);
end
;
{Cliente da session marcado}
fCliente
:=
lCliente
;
//if not Assigned(lCliente) then raise EucException.Create('Cliente no encontrado.');
lCliente
.
toXML
(
piRequest
.
Response
.
RootField
.
AddField
(
'Cliente'
));
...
...
@@ -133,8 +141,6 @@ var
lSituacao
:
ngSituacaoExemplar
;
begin
lFieldExemplar
:=
piRequest
.
Message
.
RootField
.
FieldByName
(
'Exemplar'
);
//if lFieldExemplar.HasField('Livro')
//then lFieldLivro := lFieldExemplar.FieldByName('Livro');
lOQL
:=
utEmprestimoOQL
.
ObterExemplares
(
Self
.
Session
);
...
...
@@ -206,31 +212,210 @@ begin
piRequest
.
Processed
:=
True
;
end
;
procedure
ucEmprestarLivro
.
Effect_SelecionarExemplar
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
var
lFieldExemplar
,
lFieldExemplares
,
lFieldLivro
:
utField
;
lEnumExemplares
:
acEnumerator
;
lExemplar
:
ngExemplar
;
lLivro
:
ngLivro
;
begin
lFieldExemplar
:=
piRequest
.
Message
.
RootField
.
FieldByName
(
'Exemplar'
);
LFieldExemplares
:=
piRequest
.
Response
.
RootField
.
AddField
(
'Exemplares'
);
try
lExemplar
:=
Self
.
Session
.
LoadObject
(
ngExemplar
,
acOIDInt
.
Create
(
lFieldExemplar
.
AttributeByName
(
'OID'
).
AsInteger
))
as
ngExemplar
;
except
on
e
:
acObjectNotFoundException
do
raise
EucException
.
Create
(
'Exemplar no encontrado.'
);
else
raise
EucException
.
Create
(
'No foi possvel buscar o exemplar.'
);
end
;
{Acrescentamos o exemplar a lista de selecionados}
if
fListaExemplares
.
IndexOf
(
lExemplar
)
=
-
1
then
fListaExemplares
.
Add
(
lExemplar
)
else
raise
EucException
.
Create
(
'Exemplar j est selecionado na lista.'
);
lEnumExemplares
:=
acEnumerator
.
Create
(
fListaExemplares
);
{Criamos o xml de resposta}
try
while
not
lEnumExemplares
.
EOL
do
begin
lExemplar
:=
lEnumExemplares
.
Current
as
ngExemplar
;
lFieldExemplar
:=
lFieldExemplares
.
AddField
(
'Exemplar'
);
lExemplar
.
toXML
(
lFieldExemplar
);
lFieldLivro
:=
lFieldExemplar
.
AddField
(
'Livro'
);
lLivro
:=
lExemplar
.
Livro
.
Partner
as
ngLivro
;
lLivro
.
toXML
(
lFieldLivro
);
lEnumExemplares
.
MoveNext
;
end
;
finally
lEnumExemplares
.
Free
;
end
;
piRequest
.
Processed
:=
True
;
end
;
procedure
ucEmprestarLivro
.
Effect_CancelarEscolhaExemplar
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
var
lFieldExemplar
,
lFieldExemplares
,
lFieldLivro
:
utField
;
lEnumExemplares
:
acEnumerator
;
lExemplar
:
ngExemplar
;
lLivro
:
ngLivro
;
begin
lFieldExemplares
:=
piRequest
.
Response
.
RootField
.
AddField
(
'Exemplares'
);
lEnumExemplares
:=
acEnumerator
.
Create
(
fListaExemplares
);
{Criamos o xml de resposta}
try
while
not
lEnumExemplares
.
EOL
do
begin
lExemplar
:=
lEnumExemplares
.
Current
as
ngExemplar
;
lFieldExemplar
:=
lFieldExemplares
.
AddField
(
'Exemplar'
);
lExemplar
.
toXML
(
lFieldExemplar
);
lFieldLivro
:=
lFieldExemplar
.
AddField
(
'Livro'
);
lLivro
:=
lExemplar
.
Livro
.
Partner
as
ngLivro
;
lLivro
.
toXML
(
lFieldLivro
);
lEnumExemplares
.
MoveNext
;
end
;
finally
lEnumExemplares
.
Free
;
end
;
piRequest
.
Processed
:=
True
;
end
;
procedure
ucEmprestarLivro
.
Effect_ConcluirEdicaoEmprestimo
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
var
lFieldCliente
,
lFieldEmprestimos
,
lFieldEmprestimo
,
lFieldExemplar
,
lFieldLivro
:
utField
;
lEmprestimo
:
ngEmprestimo
;
lExemplar
:
ngExemplar
;
lLivro
:
ngLivro
;
lEnumExemplares
:
acEnumerator
;
begin
fSavePoint
:=
Self
.
Session
.
AddSavePoint
;
try
lFieldCliente
:=
piRequest
.
Response
.
RootField
.
AddField
(
'Cliente'
);
fCliente
.
toXML
(
lFieldCliente
);
lFieldEmprestimos
:=
lFieldCliente
.
AddField
(
'Emprestimos'
);
lEnumExemplares
:=
acEnumerator
.
Create
(
fListaExemplares
);
try
while
not
lEnumExemplares
.
EOL
do
begin
lEmprestimo
:=
ngEmprestimo
.
CreateNew
(
Self
.
Session
);
lExemplar
:=
lEnumExemplares
.
Current
as
ngExemplar
;
lLivro
:=
lExemplar
.
Livro
.
Partner
as
ngLivro
;
lEmprestimo
.
Cliente
.
Partner
:=
fCliente
;
lEmprestimo
.
Exemplar
.
Partner
:=
lExemplar
;
lEmprestimo
.
Retirada
.
Value
:=
dateUtils
.
Today
;
lEmprestimo
.
PrevistaDev
.
Value
:=
dateUtils
.
IncWeek
(
lEmprestimo
.
Retirada
.
Value
,
3
);
lFieldEmprestimo
:=
lFieldEmprestimos
.
AddField
(
'Emprestimo'
);
lEmprestimo
.
toXML
(
lFieldEmprestimo
);
lFieldExemplar
:=
lFieldEmprestimo
.
AddField
(
'Exemplar'
);
lExemplar
.
toXML
(
lFieldExemplar
);
lFieldLivro
:=
lFieldExemplar
.
AddField
(
'Livro'
);
lLivro
.
toXML
(
lFieldLivro
);
lEnumExemplares
.
MoveNext
;
end
;
finally
lEnumExemplares
.
Free
;
end
;
except
Self
.
Session
.
RollBackToSavePoint
(
fSavePoint
);
raise
;
end
;
piRequest
.
Processed
:=
True
;
end
;
procedure
ucEmprestarLivro
.
Effect_RemoverExemplar
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
var
lFieldExemplar
,
lFieldExemplares
,
lFieldLivro
:
utField
;
lEnumExemplares
:
acEnumerator
;
lExemplar
:
ngExemplar
;
lLivro
:
ngLivro
;
begin
lFieldExemplar
:=
piRequest
.
Message
.
RootField
.
FieldByName
(
'Exemplar'
);
LFieldExemplares
:=
piRequest
.
Response
.
RootField
.
AddField
(
'Exemplares'
);
try
lExemplar
:=
Self
.
Session
.
LoadObject
(
ngExemplar
,
acOIDInt
.
Create
(
lFieldExemplar
.
AttributeByName
(
'OID'
).
AsInteger
))
as
ngExemplar
;
except
on
e
:
acObjectNotFoundException
do
raise
EucException
.
Create
(
'Exemplar a ser removido no pode ser encontrado.'
);
else
raise
EucException
.
Create
(
'No foi possvel remover o exemplar.'
);
end
;
{Removemos de fato da lista}
if
fListaExemplares
.
IndexOf
(
lExemplar
)
<>
-
1
then
fListaExemplares
.
Extract
(
lExemplar
)
else
raise
EucException
.
Create
(
'Exemplar no est na lista de exemplares do cliente.'
);
{Criamos o xml de resposta}
try
lEnumExemplares
:=
acEnumerator
.
Create
(
fListaExemplares
);
while
not
lEnumExemplares
.
EOL
do
begin
lExemplar
:=
lEnumExemplares
.
Current
as
ngExemplar
;
lFieldExemplar
:=
lFieldExemplares
.
AddField
(
'Exemplar'
);
lExemplar
.
toXML
(
lFieldExemplar
);
lFieldLivro
:=
lFieldExemplar
.
AddField
(
'Livro'
);
lLivro
:=
lExemplar
.
Livro
.
Partner
as
ngLivro
;
lLivro
.
toXML
(
lFieldLivro
);
lEnumExemplares
.
MoveNext
;
end
;
finally
lEnumExemplares
.
Free
;
end
;
piRequest
.
Processed
:=
True
;
end
;
procedure
ucEmprestarLivro
.
Effect_ConfirmarEmprestimo
(
piRequest
:
utRequest
;
piTransition
:
utTransition
);
begin
var
lSavePoint
:
acPersistenceSessionSavePoint
;
begin
lSavePoint
:=
Self
.
Session
.
AddSavePoint
;
try
Self
.
Session
.
Save
;
except
Self
.
Session
.
RollBackToSavePoint
(
lSavePoint
);
raise
;
end
;
piRequest
.
Processed
:=
True
;
end
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment