Commit 6b6ef2a2 authored by Thiago Anders's avatar Thiago Anders

Caso de uso emprestar livro finalizado.

parent 871e43cc
...@@ -442,6 +442,65 @@ ...@@ -442,6 +442,65 @@
<XPD:ATTR name="Name" type="string">XSDs</XPD:ATTR> <XPD:ATTR name="Name" type="string">XSDs</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt; <XPD:ATTR name="DataValue" type="string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
&lt;DATA&gt; &lt;DATA&gt;
&lt;XSD name=&quot;RM_CONCLUIR_EDICAO_EMPRESTIMO_OUT&quot;&gt;
&lt;description&gt;Output de concluir edição de emprestimo.&lt;/description&gt;
&lt;text&gt;&lt;![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
&lt;xs:schema elementFormDefault=&quot;qualified&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
&lt;xs:element name=&quot;SYSMSG&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
&lt;xs:element name=&quot;Cliente&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
&lt;xs:element name=&quot;Emprestimos&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;unbounded&quot;&gt;
&lt;xs:element name=&quot;Emprestimo&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
&lt;xs:element name=&quot;Exemplar&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
&lt;xs:element name=&quot;Livro&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:attribute name=&quot;Titulo&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;Autor&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:attribute name=&quot;Codigo&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:attribute name=&quot;Retirada&quot; type=&quot;xs:date&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;PrevistaDev&quot; type=&quot;xs:date&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:attribute name=&quot;Nome&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;CPF&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:schema&gt;
]]&gt;&lt;/text&gt;
&lt;/XSD&gt;
&lt;XSD name=&quot;RM_ESCOLHER_USUARIO_IN&quot;&gt; &lt;XSD name=&quot;RM_ESCOLHER_USUARIO_IN&quot;&gt;
&lt;description&gt;Input de escolher usuário.&lt;/description&gt; &lt;description&gt;Input de escolher usuário.&lt;/description&gt;
&lt;text&gt;&lt;![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt; &lt;text&gt;&lt;![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
...@@ -616,6 +675,63 @@ ...@@ -616,6 +675,63 @@
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt; &lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt; &lt;/xs:complexType&gt;
&lt;/xs:element&gt; &lt;/xs:element&gt;
&lt;/xs:schema&gt;]]&gt;&lt;/text&gt;
&lt;/XSD&gt;
&lt;XSD name=&quot;RM_REMOVER_EXEMPLAR_IN&quot;&gt;
&lt;description&gt;Input de remover exemplar.&lt;/description&gt;
&lt;text&gt;&lt;![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
&lt;xs:schema elementFormDefault=&quot;qualified&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
&lt;xs:element name=&quot;SYSMSG&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
&lt;xs:element name=&quot;Exemplar&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:schema&gt;]]&gt;&lt;/text&gt;
&lt;/XSD&gt;
&lt;XSD name=&quot;RM_REMOVER_EXEMPLAR_OUT&quot;&gt;
&lt;description&gt;Output de remover usuário.&lt;/description&gt;
&lt;text&gt;&lt;![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
&lt;xs:schema elementFormDefault=&quot;qualified&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
&lt;xs:element name=&quot;SYSMSG&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
&lt;xs:element name=&quot;Exemplares&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;&gt;
&lt;xs:element name=&quot;Exemplar&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
&lt;xs:element name=&quot;Livro&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:attribute name=&quot;Titulo&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;Edicao&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;Autor&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:attribute name=&quot;Codigo&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:schema&gt;]]&gt;&lt;/text&gt; &lt;/xs:schema&gt;]]&gt;&lt;/text&gt;
&lt;/XSD&gt; &lt;/XSD&gt;
&lt;XSD name=&quot;RM_SELECIONAR_EXEMPLAR_IN&quot;&gt; &lt;XSD name=&quot;RM_SELECIONAR_EXEMPLAR_IN&quot;&gt;
...@@ -625,7 +741,7 @@ ...@@ -625,7 +741,7 @@
&lt;xs:schema elementFormDefault=&quot;qualified&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt; &lt;xs:schema elementFormDefault=&quot;qualified&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
&lt;xs:element name=&quot;SYSMSG&quot;&gt; &lt;xs:element name=&quot;SYSMSG&quot;&gt;
&lt;xs:complexType&gt; &lt;xs:complexType&gt;
&lt;xs:sequence&gt; &lt;xs:sequence minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
&lt;xs:element name=&quot;Exemplar&quot;&gt; &lt;xs:element name=&quot;Exemplar&quot;&gt;
&lt;xs:complexType&gt; &lt;xs:complexType&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt; &lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:int&quot; use=&quot;required&quot; /&gt;
...@@ -636,8 +752,7 @@ ...@@ -636,8 +752,7 @@
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt; &lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt; &lt;/xs:complexType&gt;
&lt;/xs:element&gt; &lt;/xs:element&gt;
&lt;/xs:schema&gt; &lt;/xs:schema&gt;]]&gt;&lt;/text&gt;
]]&gt;&lt;/text&gt;
&lt;/XSD&gt; &lt;/XSD&gt;
&lt;XSD name=&quot;RM_SELECIONAR_EXEMPLAR_OUT&quot;&gt; &lt;XSD name=&quot;RM_SELECIONAR_EXEMPLAR_OUT&quot;&gt;
&lt;description&gt;Output de selcionar exemplar.&lt;/description&gt; &lt;description&gt;Output de selcionar exemplar.&lt;/description&gt;
...@@ -676,8 +791,7 @@ ...@@ -676,8 +791,7 @@
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt; &lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt; &lt;/xs:complexType&gt;
&lt;/xs:element&gt; &lt;/xs:element&gt;
&lt;/xs:schema&gt; &lt;/xs:schema&gt;]]&gt;&lt;/text&gt;
]]&gt;&lt;/text&gt;
&lt;/XSD&gt; &lt;/XSD&gt;
&lt;/DATA&gt; &lt;/DATA&gt;
</XPD:ATTR> </XPD:ATTR>
...@@ -957,7 +1071,7 @@ ...@@ -957,7 +1071,7 @@
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJ> </XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="mNDXohuA/UaYD5u7HXoKTgAA"> <XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="mNDXohuA/UaYD5u7HXoKTgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR> <XPD:ATTR name="LineColor" type="string">clGreen</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR> <XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">213,179;620,179</XPD:ATTR> <XPD:ATTR name="Points" type="Points">213,179;620,179</XPD:ATTR>
<XPD:REF name="Model">1Mk/J6lYlU6jImCYHSeZGAAA</XPD:REF> <XPD:REF name="Model">1Mk/J6lYlU6jImCYHSeZGAAA</XPD:REF>
...@@ -984,7 +1098,7 @@ ...@@ -984,7 +1098,7 @@
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJ> </XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="4C754KSEi02Fdcrv3GQRUgAA"> <XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="4C754KSEi02Fdcrv3GQRUgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR> <XPD:ATTR name="LineColor" type="string">clGreen</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR> <XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">669,199;671,332</XPD:ATTR> <XPD:ATTR name="Points" type="Points">669,199;671,332</XPD:ATTR>
<XPD:REF name="Model">pxLZHeEhQk2LZrJoI2nRQwAA</XPD:REF> <XPD:REF name="Model">pxLZHeEhQk2LZrJoI2nRQwAA</XPD:REF>
...@@ -1011,7 +1125,7 @@ ...@@ -1011,7 +1125,7 @@
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJ> </XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="2DNYxpcnFEa0dDnrDzzWAgAA"> <XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="2DNYxpcnFEa0dDnrDzzWAgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR> <XPD:ATTR name="LineColor" type="string">clGreen</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR> <XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR> <XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">669,160;669,140;748,140;748,179;719,179</XPD:ATTR> <XPD:ATTR name="Points" type="Points">669,160;669,140;748,140;748,179;719,179</XPD:ATTR>
...@@ -1039,7 +1153,7 @@ ...@@ -1039,7 +1153,7 @@
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJ> </XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="cThD9nGIgk6td4awinmNNwAA"> <XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="cThD9nGIgk6td4awinmNNwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR> <XPD:ATTR name="LineColor" type="string">clGreen</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR> <XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">193,371;260,412;600,412;648,371</XPD:ATTR> <XPD:ATTR name="Points" type="Points">193,371;260,412;600,412;648,371</XPD:ATTR>
<XPD:REF name="Model">zoz5HQ7prkaPs0hzANkOgAAA</XPD:REF> <XPD:REF name="Model">zoz5HQ7prkaPs0hzANkOgAAA</XPD:REF>
...@@ -1065,7 +1179,7 @@ ...@@ -1065,7 +1179,7 @@
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJ> </XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="cPAXMV4IMUO9eBszeeEu7gAA"> <XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="cPAXMV4IMUO9eBszeeEu7gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR> <XPD:ATTR name="LineColor" type="string">clGreen</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR> <XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR> <XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">616,352;215,352</XPD:ATTR> <XPD:ATTR name="Points" type="Points">616,352;215,352</XPD:ATTR>
...@@ -1150,6 +1264,7 @@ ...@@ -1150,6 +1264,7 @@
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR> <XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR> <XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR> <XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:ATTR name="Text" type="string">{XSD Out = RM_CONCLUIR_EDICAO_E...}</XPD:ATTR>
<XPD:REF name="Model">h04t5W9J9UutmYCtqAx2EAAA</XPD:REF> <XPD:REF name="Model">h04t5W9J9UutmYCtqAx2EAAA</XPD:REF>
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJ> </XPD:OBJ>
...@@ -1203,11 +1318,12 @@ ...@@ -1203,11 +1318,12 @@
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR> <XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR> <XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR> <XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:ATTR name="Text" type="string">{XSD In = RM_REMOVER_EXEMPLAR_..., XSD Out = RM_REMOVER_EXEMPLAR_...}</XPD:ATTR>
<XPD:REF name="Model">CRZju/GF5kC70NZuw14zKQAA</XPD:REF> <XPD:REF name="Model">CRZju/GF5kC70NZuw14zKQAA</XPD:REF>
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJ> </XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="30amSey2V0GMdz/9gki5HgAA"> <XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="30amSey2V0GMdz/9gki5HgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR> <XPD:ATTR name="LineColor" type="string">clGreen</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR> <XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR> <XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">120,371;120,412;172,412;172,371</XPD:ATTR> <XPD:ATTR name="Points" type="Points">120,371;120,412;172,412;172,371</XPD:ATTR>
...@@ -1235,7 +1351,7 @@ ...@@ -1235,7 +1351,7 @@
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJ> </XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="ZSq51dbkp0eB2JNIlgjHfwAA"> <XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="ZSq51dbkp0eB2JNIlgjHfwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR> <XPD:ATTR name="LineColor" type="string">clGreen</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR> <XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">215,335;308,308;528,308;616,334</XPD:ATTR> <XPD:ATTR name="Points" type="Points">215,335;308,308;528,308;616,334</XPD:ATTR>
<XPD:REF name="Model">qk4Fn8uJXUuq/hcTcGWV/wAA</XPD:REF> <XPD:REF name="Model">qk4Fn8uJXUuq/hcTcGWV/wAA</XPD:REF>
...@@ -1506,6 +1622,15 @@ ...@@ -1506,6 +1622,15 @@
<XPD:REF name="Views">Mhr2D9szHkSJZiKSHTvL5wAA</XPD:REF> <XPD:REF name="Views">Mhr2D9szHkSJZiKSHTvL5wAA</XPD:REF>
<XPD:REF name="Views">E7hKjt5hmUqgr+jb+nTQ1gAA</XPD:REF> <XPD:REF name="Views">E7hKjt5hmUqgr+jb+nTQ1gAA</XPD:REF>
</XPD:REFCOLL> </XPD:REFCOLL>
<XPD:OBJCOLL name="TaggedValues">
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="MKQfx2ixZ0udvv4hwazzuwAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">TransitionMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">XSD Out</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">RM_CONCLUIR_EDICAO_EMPRESTIMO_OUT</XPD:ATTR>
<XPD:REF name="TaggedModel">h04t5W9J9UutmYCtqAx2EAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Effects"> <XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="Q0ghi2hvWkGTMIhOd+g+xAAA"> <XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="Q0ghi2hvWkGTMIhOd+g+xAAA">
<XPD:ATTR name="Name" type="string">Effect_ConcluirEdicaoEmprestimo</XPD:ATTR> <XPD:ATTR name="Name" type="string">Effect_ConcluirEdicaoEmprestimo</XPD:ATTR>
...@@ -1552,6 +1677,22 @@ ...@@ -1552,6 +1677,22 @@
<XPD:REF name="Views">l9QDKn8DiESNsn+nwNfwFgAA</XPD:REF> <XPD:REF name="Views">l9QDKn8DiESNsn+nwNfwFgAA</XPD:REF>
<XPD:REF name="Views">J9uO+64mmkKhmhQVmBGQNAAA</XPD:REF> <XPD:REF name="Views">J9uO+64mmkKhmhQVmBGQNAAA</XPD:REF>
</XPD:REFCOLL> </XPD:REFCOLL>
<XPD:OBJCOLL name="TaggedValues">
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="698YF62ca0iFYGSkhszMqAAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">TransitionMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">XSD In</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">RM_REMOVER_EXEMPLAR_IN</XPD:ATTR>
<XPD:REF name="TaggedModel">CRZju/GF5kC70NZuw14zKQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="nTfHZqqKLUGypYrDKxYFIAAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">TransitionMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">XSD Out</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">RM_REMOVER_EXEMPLAR_OUT</XPD:ATTR>
<XPD:REF name="TaggedModel">CRZju/GF5kC70NZuw14zKQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Effects"> <XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="JkfV8QiM+0apS79bNH4YFQAA"> <XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="JkfV8QiM+0apS79bNH4YFQAA">
<XPD:ATTR name="Name" type="string">Effect_RemoverExemplar</XPD:ATTR> <XPD:ATTR name="Name" type="string">Effect_RemoverExemplar</XPD:ATTR>
...@@ -2597,7 +2738,7 @@ ...@@ -2597,7 +2738,7 @@
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR> <XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">DBAttributeMap</XPD:ATTR> <XPD:ATTR name="TagDefinitionSetName" type="string">DBAttributeMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">Mand</XPD:ATTR> <XPD:ATTR name="Name" type="string">Mand</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">True</XPD:ATTR> <XPD:ATTR name="DataValue" type="string">False</XPD:ATTR>
<XPD:REF name="TaggedModel">ScPGpD3tV0SwLDJ5QGeOmwAA</XPD:REF> <XPD:REF name="TaggedModel">ScPGpD3tV0SwLDJ5QGeOmwAA</XPD:REF>
</XPD:OBJ> </XPD:OBJ>
</XPD:OBJCOLL> </XPD:OBJCOLL>
......
...@@ -366,7 +366,7 @@ begin ...@@ -366,7 +366,7 @@ begin
prop := lClassMapTicket.NewAttributeTicket('DataDev', 'acDateTime', pvPersistent, False); prop := lClassMapTicket.NewAttributeTicket('DataDev', 'acDateTime', pvPersistent, False);
prop.FixSize := 0; prop.FixSize := 0;
prop.VarSize := 0; prop.VarSize := 0;
prop.Mandatory := True; prop.Mandatory := False;
prop.DBType := 'DATETIME'; prop.DBType := 'DATETIME';
lClassToDBMapTicket.NewDbColumnMapRegisterTicket(prop).ColumnName := 'DATADEV'; lClassToDBMapTicket.NewDbColumnMapRegisterTicket(prop).ColumnName := 'DATADEV';
...@@ -1502,6 +1502,127 @@ begin ...@@ -1502,6 +1502,127 @@ begin
''; '';
end; 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; function GetXSDIn_3219_smucEmprestarLivro_EscolhendoExemplar_RM_PESQUISAR_EXEMPLAR: String;
begin begin
Result := '<?xml version="1.0"?>' + #13#10 + Result := '<?xml version="1.0"?>' + #13#10 +
...@@ -1597,7 +1718,7 @@ begin ...@@ -1597,7 +1718,7 @@ begin
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 + '<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 + ' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #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:element name="Exemplar">' + #13#10 +
' <xs:complexType>' + #13#10 + ' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" type="xs:int" use="required"/>' + #13#10 + ' <xs:attribute name="OID" type="xs:int" use="required"/>' + #13#10 +
...@@ -2487,11 +2608,14 @@ begin ...@@ -2487,11 +2608,14 @@ begin
lTransition.TargetState := lStateMachine.FindState('Confirmando'); lTransition.TargetState := lStateMachine.FindState('Confirmando');
lTransition.AddTrigger('RM_CONCLUIR_EDICAO_EMPRESTIMO'); lTransition.AddTrigger('RM_CONCLUIR_EDICAO_EMPRESTIMO');
lTransition.AddEffect('Effect_ConcluirEdicaoEmprestimo'); lTransition.AddEffect('Effect_ConcluirEdicaoEmprestimo');
lTransition.XsdOut.XML := GetXSDOut_3219_smucEmprestarLivro_EditandoEmprestimos_RM_CONCLUIR_EDICAO_EMPRESTIMO;
lTransition := lState.NewOutgoingTransition('RM_REMOVER_EXEMPLAR'); lTransition := lState.NewOutgoingTransition('RM_REMOVER_EXEMPLAR');
lTransition.SourceState := lState; lTransition.SourceState := lState;
lTransition.TargetState := lState; lTransition.TargetState := lState;
lTransition.AddTrigger('RM_REMOVER_EXEMPLAR'); lTransition.AddTrigger('RM_REMOVER_EXEMPLAR');
lTransition.AddEffect('Effect_RemoverExemplar'); 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'); lState := lStateMachine.FindState('EscolhendoExemplar');
lTransition := lState.NewOutgoingTransition('RM_CANCELAR_ESCOLHA_EXEMPLAR'); lTransition := lState.NewOutgoingTransition('RM_CANCELAR_ESCOLHA_EXEMPLAR');
......
...@@ -4,7 +4,7 @@ unit nguEmprestimo; ...@@ -4,7 +4,7 @@ unit nguEmprestimo;
interface interface
uses uses
acuframework; acuframework, utuMessage;
type type
ngEmprestimo = class(acPersistentObject) ngEmprestimo = class(acPersistentObject)
...@@ -14,6 +14,8 @@ type ...@@ -14,6 +14,8 @@ type
FDataDev: acDateTime; FDataDev: acDateTime;
fCliente: acRelationPartnerShip; fCliente: acRelationPartnerShip;
fExemplar: acRelationPartnerShip; fExemplar: acRelationPartnerShip;
public
procedure toXML(piField: utField);
published published
property Retirada: acDateTime read FRetirada write FRetirada; property Retirada: acDateTime read FRetirada write FRetirada;
property PrevistaDev: acDateTime read FPrevistaDev write FPrevistaDev; property PrevistaDev: acDateTime read FPrevistaDev write FPrevistaDev;
...@@ -24,6 +26,12 @@ type ...@@ -24,6 +26,12 @@ type
implementation 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 initialization
......
...@@ -12,12 +12,14 @@ type ...@@ -12,12 +12,14 @@ type
procedure Initialize; Override; procedure Initialize; Override;
procedure Finalize; Override; procedure Finalize; Override;
private private
//fCliente : ngCliente; fCliente: ngCliente;
//fListaEmprestimos : acPersistentObjectList; fListaExemplares: acPersistentObjectList;
fSavePoint: acPersistenceSessionSavePoint;
published published
procedure Effect_PesquisarUsuario(piRequest: utRequest; piTransition: utTransition); procedure Effect_PesquisarUsuario(piRequest: utRequest; piTransition: utTransition);
procedure Effect_EscolherUsuario(piRequest: utRequest; piTransition: utTransition); procedure Effect_EscolherUsuario(piRequest: utRequest; piTransition: utTransition);
procedure Effect_PesquisarExemplar(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_CancelarEscolhaExemplar(piRequest: utRequest; piTransition: utTransition);
procedure Effect_ConcluirEdicaoEmprestimo(piRequest: utRequest; piTransition: utTransition); procedure Effect_ConcluirEdicaoEmprestimo(piRequest: utRequest; piTransition: utTransition);
procedure Effect_RemoverExemplar(piRequest: utRequest; piTransition: utTransition); procedure Effect_RemoverExemplar(piRequest: utRequest; piTransition: utTransition);
...@@ -34,16 +36,19 @@ uses ...@@ -34,16 +36,19 @@ uses
acuObject {define acEnumerator}, acuObject {define acEnumerator},
nguExemplar, nguExemplar,
nguLivro, nguLivro,
nguSituacaoExemplar; nguSituacaoExemplar,
nguEmprestimo,
dateUtils;
procedure ucEmprestarLivro.Initialize; procedure ucEmprestarLivro.Initialize;
begin begin
inherited; inherited;
fListaExemplares := acPersistentObjectList.Create(ngExemplar);
end; end;
procedure ucEmprestarLivro.Finalize; procedure ucEmprestarLivro.Finalize;
begin begin
fListaExemplares.Free;
inherited; inherited;
end; end;
...@@ -111,6 +116,9 @@ begin ...@@ -111,6 +116,9 @@ begin
raise EucException.Create('No foi possvel buscar o cliente.'); raise EucException.Create('No foi possvel buscar o cliente.');
end; end;
{Cliente da session marcado}
fCliente := lCliente;
//if not Assigned(lCliente) then raise EucException.Create('Cliente no encontrado.'); //if not Assigned(lCliente) then raise EucException.Create('Cliente no encontrado.');
lCliente.toXML(piRequest.Response.RootField.AddField('Cliente')); lCliente.toXML(piRequest.Response.RootField.AddField('Cliente'));
...@@ -133,8 +141,6 @@ var ...@@ -133,8 +141,6 @@ var
lSituacao: ngSituacaoExemplar; lSituacao: ngSituacaoExemplar;
begin begin
lFieldExemplar := piRequest.Message.RootField.FieldByName('Exemplar'); lFieldExemplar := piRequest.Message.RootField.FieldByName('Exemplar');
//if lFieldExemplar.HasField('Livro')
//then lFieldLivro := lFieldExemplar.FieldByName('Livro');
lOQL := utEmprestimoOQL.ObterExemplares(Self.Session); lOQL := utEmprestimoOQL.ObterExemplares(Self.Session);
...@@ -206,31 +212,210 @@ begin ...@@ -206,31 +212,210 @@ begin
piRequest.Processed := True; piRequest.Processed := True;
end; 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); procedure ucEmprestarLivro.Effect_CancelarEscolhaExemplar(piRequest: utRequest; piTransition: utTransition);
var
lFieldExemplar,
lFieldExemplares,
lFieldLivro: utField;
lEnumExemplares: acEnumerator;
lExemplar: ngExemplar;
lLivro: ngLivro;
begin 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; piRequest.Processed := True;
end; end;
procedure ucEmprestarLivro.Effect_ConcluirEdicaoEmprestimo(piRequest: utRequest; piTransition: utTransition); procedure ucEmprestarLivro.Effect_ConcluirEdicaoEmprestimo(piRequest: utRequest; piTransition: utTransition);
var
lFieldCliente,
lFieldEmprestimos,
lFieldEmprestimo,
lFieldExemplar,
lFieldLivro: utField;
lEmprestimo: ngEmprestimo;
lExemplar: ngExemplar;
lLivro: ngLivro;
lEnumExemplares: acEnumerator;
begin 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; piRequest.Processed := True;
end; end;
procedure ucEmprestarLivro.Effect_RemoverExemplar(piRequest: utRequest; piTransition: utTransition); procedure ucEmprestarLivro.Effect_RemoverExemplar(piRequest: utRequest; piTransition: utTransition);
var
lFieldExemplar,
lFieldExemplares,
lFieldLivro: utField;
lEnumExemplares: acEnumerator;
lExemplar: ngExemplar;
lLivro: ngLivro;
begin 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; piRequest.Processed := True;
end; end;
procedure ucEmprestarLivro.Effect_ConfirmarEmprestimo(piRequest: utRequest; piTransition: utTransition); 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; piRequest.Processed := True;
end; end;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment