Implemented auto-generated fixed-term and freelance contracts
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
xml/PenText.xpr
|
||||
1141
xml/RELEASE_NOTES.html
Normal file
1141
xml/RELEASE_NOTES.html
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,20 @@
|
||||
RELEASE NOTES
|
||||
=============
|
||||
|
||||
August 19th, 2016
|
||||
-----------------
|
||||
|
||||
### Contracts
|
||||
|
||||
Added a contract document type; it works as follows:
|
||||
|
||||
1. fill out the fields (elements) in contract_info.xml
|
||||
2. Create contract.xml from contract_info.xml using info2contract.xsl
|
||||
3. contract.xml --> contract.pdf (using generate_contract.xsl + fop)
|
||||
|
||||
In general there shoudl be no need to edit contract.xml, it is an intermediate document. The idea is to go straight from contract_info.xml to contract.pdf (in two steps)
|
||||
|
||||
|
||||
July 30, 2016
|
||||
-------------
|
||||
|
||||
@@ -17,6 +31,7 @@ The `<finding>` element now has an optional `@status` attribute. Possible values
|
||||
|
||||
The `<generate_findings/>` element now likewise has this optional `@status` attribute with the same possible values. You can add it to generate a finding summary table containing only the findings with a specific status.
|
||||
|
||||
|
||||
June 15, 2016
|
||||
-------------
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
<xs:element ref="iban"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute ref="xml:base"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
@@ -220,6 +221,15 @@
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
|
||||
<xs:complexType name="block" mixed="true">
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:group ref="inline-all"/>
|
||||
<xs:group ref="placeholders"/>
|
||||
</xs:choice>
|
||||
<xs:attribute ref="xml:base"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:element name="version_history">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
|
||||
140
xml/dtd/contract_info.xsd
Normal file
140
xml/dtd/contract_info.xsd
Normal file
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
||||
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
<xs:import namespace="http://www.w3.org/2001/XInclude"
|
||||
schemaLocation="http://www.w3.org/2001/XInclude/XInclude.xsd"/>
|
||||
<xs:include schemaLocation="common.xsd"/>
|
||||
<xs:element name="contract_info">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="company"/>
|
||||
<xs:element ref="scope"/>
|
||||
<xs:element ref="contractor"/>
|
||||
<xs:element ref="work"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="scope">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="contract_type"/>
|
||||
<xs:element ref="engagement_description"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="contract_type">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="single_engagement"/>
|
||||
<xs:enumeration value="fixed_term"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="engagement_description" type="xs:string"/>
|
||||
<xs:element name="contractor">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="name"/>
|
||||
<xs:element ref="address"/>
|
||||
<xs:element ref="postal_code"/>
|
||||
<xs:element ref="city"/>
|
||||
<xs:element ref="country"/>
|
||||
<xs:element ref="email"/>
|
||||
<xs:element ref="hourly_fee"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="sex" use="required">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="F"/>
|
||||
<xs:enumeration value="M"/>
|
||||
<xs:enumeration value="O"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="work">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="activities"/>
|
||||
<xs:element ref="start_date"/>
|
||||
<xs:element ref="end_date"/>
|
||||
<xs:element ref="planning"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="activities">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" ref="activity"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="activity" type="xs:string"/>
|
||||
<xs:element name="start_date" type="xs:date"/>
|
||||
<xs:element name="end_date" type="xs:date"/>
|
||||
<xs:element name="planning">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="hours"/>
|
||||
<xs:element ref="per"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="hours" type="xs:integer"/>
|
||||
<xs:element name="per">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="week"/>
|
||||
<xs:enumeration value="month"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="hourly_fee">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="denomination" use="required">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="eur"/>
|
||||
<xs:enumeration value="gbp"/>
|
||||
<xs:enumeration value="usd"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:group name="placeholders">
|
||||
<xs:choice>
|
||||
<xs:element name="company_long"/>
|
||||
<xs:element name="company_short"/>
|
||||
<xs:element name="company_address"/>
|
||||
<xs:element name="company_postalcode"/>
|
||||
<xs:element name="company_city"/>
|
||||
<xs:element name="company_country"/>
|
||||
<xs:element name="company_poc1"/>
|
||||
<xs:element name="company_email"/>
|
||||
<xs:element name="engagement_description"/>
|
||||
<xs:element name="contract_start_date"/>
|
||||
<xs:element name="contract_end_date"/>
|
||||
<xs:element name="contract_period"/>
|
||||
<xs:element name="contract_total_fee"/>
|
||||
<xs:element name="contract_planned_hours"/>
|
||||
<xs:element name="contract_period_unit"/>
|
||||
<xs:element name="contract_activities"/>
|
||||
<xs:element name="contractor_name"/>
|
||||
<xs:element name="contractor_address"/>
|
||||
<xs:element name="contractor_postalcode"/>
|
||||
<xs:element name="contractor_city"/>
|
||||
<xs:element name="contractor_country"/>
|
||||
<xs:element name="contractor_email"/>
|
||||
<xs:element name="contractor_hourly_fee"/>
|
||||
</xs:choice>
|
||||
</xs:group>
|
||||
</xs:schema>
|
||||
@@ -335,14 +335,6 @@
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:complexType name="block" mixed="true">
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:group ref="inline-all"/>
|
||||
<xs:group ref="placeholders"/>
|
||||
</xs:choice>
|
||||
<xs:attribute ref="xml:base"/>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- Placeholders -->
|
||||
<xs:group name="placeholders">
|
||||
<xs:choice>
|
||||
|
||||
76
xml/source/contract.xml
Normal file
76
xml/source/contract.xml
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<contract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xsi:noNamespaceSchemaLocation="../dtd/contract.xsd"
|
||||
xml:lang="en">
|
||||
<meta>
|
||||
<xi:include href="snippets/company_info.xml"/>
|
||||
<scope>
|
||||
<contract_type>fixed_term</contract_type>
|
||||
<!-- single_engagement or fixed_term -->
|
||||
<engagement_description>battle the pirates</engagement_description>
|
||||
<!-- [NOTE: only needed for SINGLE ENGAGEMENT type contract, value is ignored otherwise] -->
|
||||
</scope>
|
||||
<contractor sex="M"><!-- (M|F|O) (O for other) --> <!-- this info is used to select the correct pronoun, not for profiling :) -->
|
||||
<name>Peter Pan</name>
|
||||
<address>Cloud 9</address>
|
||||
<postal_code>1234 XX</postal_code>
|
||||
<city>Treehouse City</city>
|
||||
<country>Neverland</country>
|
||||
<email>peter@pan.tech</email>
|
||||
<hourly_fee denomination="eur">50</hourly_fee>
|
||||
<!-- (eur|gbp|usd) -->
|
||||
</contractor>
|
||||
<work>
|
||||
<activities>
|
||||
<activity>Taunting Captain Hook</activity>
|
||||
<activity>Feeding crocodiles</activity>
|
||||
<activity>Flying to and fro ('to' and 'fro' to be specified at takeoff)</activity>
|
||||
</activities>
|
||||
<start_date>2015-08-18</start_date>
|
||||
<end_date>2016-10-14</end_date>
|
||||
<planning><!-- planned amount of work during the period mentioned above -->
|
||||
<hours>30</hours>
|
||||
<!-- non-negative integer, used for planned working hours over total engagement (for SINGLE ENGAGEMENT contract) or over each period in <per> (for FIXED TIME contract) -->
|
||||
<per>month</per>
|
||||
<!-- (month|week) [NOTE: only used for FIXED TIME contract, value is ignored otherwise] -->
|
||||
</planning>
|
||||
</work>
|
||||
</meta>
|
||||
<section>
|
||||
<title>security consulting agreement</title>
|
||||
<!--Whereas section-->
|
||||
<xi:include href="snippets/contract/en/parties.xml"/>
|
||||
<p>WHEREAS:</p>
|
||||
<ol type="A">
|
||||
<xi:include href="snippets/contract/en/wa_contractorcan.xml"/>
|
||||
<xi:include href="snippets/contract/en/wa_noemploymentintention.xml"/>
|
||||
</ol>
|
||||
<!--Agreement section-->
|
||||
<section>
|
||||
<title>AGREE AS FOLLOWS</title>
|
||||
<ol type="1">
|
||||
<xi:include href="snippets/contract/en/ag_period.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_noemployment.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_companyinstructs.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_ownrisk.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_workinghours.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_payment_fixed_term.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_propertyrights.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_retainrights.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_nondisclosure.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_responsibilities.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_thirdparty.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_liability.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_provisions.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_generaltermsandconditions.xml"/>
|
||||
<xi:include href="snippets/contract/en/ag_law.xml"/>
|
||||
</ol>
|
||||
</section>
|
||||
<section>
|
||||
<title>Signed in duplicate on August 18, 2016 in</title>
|
||||
<generate_contract_signature_box/>
|
||||
</section>
|
||||
</section>
|
||||
</contract>
|
||||
34
xml/source/contract_info.xml
Normal file
34
xml/source/contract_info.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<contract_info xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:noNamespaceSchemaLocation="../dtd/contract_info.xsd" xml:lang="en">
|
||||
<!-- WARNING:
|
||||
Please note that the PenText creators make no claims regarding the validity of the contract generated by filling in the elements below and generating the pdf using the PenText system.
|
||||
The contract snippets in this repo are provided as an example and should not be used for official contracts. It is the responsibility of the end user to edit the contract snippets and code so that the resulting contract is valid and watertight in the context of their own business operations and legal system. -->
|
||||
<xi:include href="snippets/company_info.xml"/>
|
||||
<scope>
|
||||
<contract_type>fixed_term</contract_type><!-- single_engagement or fixed_term -->
|
||||
<engagement_description>battle the pirates</engagement_description><!-- [NOTE: only needed for SINGLE ENGAGEMENT type contract, value is ignored otherwise] -->
|
||||
</scope>
|
||||
<contractor sex="M"><!-- (M|F|O) (O for other) --> <!-- this info is used to select the correct pronoun, not for profiling :) -->
|
||||
<name>Peter Pan</name>
|
||||
<address>Cloud 9</address>
|
||||
<postal_code>1234 XX</postal_code>
|
||||
<city>Treehouse City</city>
|
||||
<country>Neverland</country>
|
||||
<email>peter@pan.tech</email>
|
||||
<hourly_fee denomination="eur">50</hourly_fee><!-- (eur|gbp|usd) -->
|
||||
</contractor>
|
||||
<work>
|
||||
<activities><!-- add/delete activity elements as necessary -->
|
||||
<activity>Taunting Captain Hook</activity>
|
||||
<activity>Feeding crocodiles</activity>
|
||||
<activity>Flying to and fro ('to' and 'fro' to be specified at takeoff)</activity>
|
||||
</activities>
|
||||
<start_date>2016-08-18</start_date>
|
||||
<end_date>2016-09-15</end_date>
|
||||
<planning><!-- amount of work to be done between the start and end date -->
|
||||
<hours>30</hours><!-- non-negative integer, used for planned working hours over total engagement (for SINGLE ENGAGEMENT contract) or over each period in <per> (for FIXED TIME contract) -->
|
||||
<per>month</per><!-- (month|week) [NOTE: only used for FIXED TIME contract, value is ignored otherwise] -->
|
||||
</planning>
|
||||
</work>
|
||||
</contract_info>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>If during the course of the Activities, there is a risk that the scope of the assignment is bigger than expected, the Consultant will let <company_short/> know without delay.</li>
|
||||
2
xml/source/snippets/contract/en/ag_companyinstructs.xml
Normal file
2
xml/source/snippets/contract/en/ag_companyinstructs.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> instructs (in Dutch: "<i>wijst aan</i>"; not "<i>instrueert</i>") the Consultant – and the Consultant agrees to perform the following activities (the “<b>Activities</b>”): <contract_activities/></li>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The general terms and conditions of <company_short/> apply to this agreement. <company_short/> rejects any general terms and conditions used by the Consultant.</li>
|
||||
2
xml/source/snippets/contract/en/ag_law.xml
Normal file
2
xml/source/snippets/contract/en/ag_law.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>Dutch law applies to this agreement. Any dispute between <company_short/> and Consultant will be resolved in the first instance exclusively by the District Court (in Dutch: “<i>rechtbank</i>”) of Amsterdam, the Netherlands.</li>
|
||||
2
xml/source/snippets/contract/en/ag_liability.xml
Normal file
2
xml/source/snippets/contract/en/ag_liability.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>Unless a result of gross negligence or willful misconduct, the liability of either party to the other for any type of damages is limited to the amount of Consultant's total fees under Article 5 of this agreement.</li>
|
||||
3
xml/source/snippets/contract/en/ag_noemployment.xml
Normal file
3
xml/source/snippets/contract/en/ag_noemployment.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> and the Consultant explicitly do not intend to enter into an employment agreement (in Dutch: “<i>arbeidsovereenkomst</i>”) as in Article 7:610 Burgerlijk Wetboek. The Consultant guarantees he shall never claim an employment agreement exists.
|
||||
</li>
|
||||
2
xml/source/snippets/contract/en/ag_nondisclosure.xml
Normal file
2
xml/source/snippets/contract/en/ag_nondisclosure.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant will not disclose confidential information and personal data <contractor_personal_pronoun/> receives from <company_short/>, or gains access to in the course of the Activities. The Consultant will only use this information or data for the purposes of carrying out this agreement. The Consultant will take reasonable measures to maintain the confidentiality of this information and data. The Consultant may disclose this information and data on a need-to-know basis, and only to persons associated with <company_short/> as employee, freelancer or volunteer and only if the Consultant knows that they are bound by the same confidentiality obligations.</li>
|
||||
2
xml/source/snippets/contract/en/ag_ownrisk.xml
Normal file
2
xml/source/snippets/contract/en/ag_ownrisk.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant is working at his or her own risk (in Dutch: “<i>voor eigen rekening en risico</i>”). The Consultant is free to perform the Activities at his or her own discretion (in Dutch: “<i>naar eigen inzicht</i>”) and independently. The Consultant will use his own resources and tools to perform the Activities for <company_short/>.</li>
|
||||
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><p><company_short/> will pay the Consultant <contractor_hourly_fee/> per hour excluding VAT. It will do so after <company_short/> has received an invoice from the Consultant. The Consultant will send an invoice within 14 days after the end of each calendar month for the Activities performed during that month.</p>
|
||||
<p><company_short/> will then pay the agreed amount within 30 days of receipt of the invoice. <company_short/> will also pay reasonable travel expenses of the Consultant, to the extent that <company_short/> has given prior written approval for such costs and the Consultant provides <company_short/> with an invoice or other documentation for these expenses. <company_short/> will not reimburse any other costs the Consultant incurs in the course of the Activities, unless <company_short/> has given prior written approval for such costs. For the avoidance of doubt, <company_short/> shall pay no wages (in Dutch: "<i>salaris</i>") to the Consultant and therefore, <company_short/> shall not provide payslips to the Consultant, nor pay to the Consultant any money or allowance in the event of a holiday or illness of the Consultant.</p></li>
|
||||
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><p><company_short/> will pay the Consultant for a <contract_planned_hours/>-hour engagement: <contractor_hourly_fee/> per hour excluding VAT, therefore totaling <contract_total_fee/> excluding VAT. It will do so after <company_short/> has been paid for the assignment in the context of which the Activities took place and has received an invoice from the Consultant. The Consultant will send an invoice within 14 days after the end of each calendar month for the Activities performed during that month.</p>
|
||||
<p><company_short/> will then pay the agreed amount within 30 days of receipt of the invoice. <company_short/> will also pay reasonable travel expenses of the Consultant, to the extent that <company_short/> has given prior written approval for such costs and the Consultant provides <company_short/> with an invoice or other documentation for these expenses. <company_short/> will not reimburse any other costs the Consultant incurs in the course of the Activities, unless <company_short/> has given prior written approval for such costs. For the avoidance of doubt, <company_short/> shall pay no wages (in Dutch: "<i>salaris</i>") to the Consultant and therefore, <company_short/> shall not provide payslips to the Consultant, nor pay to the Consultant any money or allowance in the event of a holiday or illness of the Consultant.</p></li>
|
||||
4
xml/source/snippets/contract/en/ag_period.xml
Normal file
4
xml/source/snippets/contract/en/ag_period.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><p>This contract shall be effective as of <contract_start_date/> for the period of <contract_period/>. This contract will end by operation of law on <contract_end_date/> without any notice being required.</p>
|
||||
<p>In case of tacit extension of this contract, the parties agree to do so for the same term and on the same conditions. Either party is entitled to give notice of termination of the contract with immediate effect. Notice of termination should be given by email. (To <company_short/>: <company_email/>; to the Consultant: <contractor_email/>) The other party will confirm the termination by return.</p>
|
||||
<p>Premature termination shall not give rise to liability or financial compensation for either party.</p></li>
|
||||
2
xml/source/snippets/contract/en/ag_propertyrights.xml
Normal file
2
xml/source/snippets/contract/en/ag_propertyrights.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant transfers to <company_short/> all intellectual property rights created as a result of the Activities. To the extent that it is not possible to transfer these rights, <contractor_personal_pronoun/> grants to <company_short/> a perpetual, exclusive transferable, sub-licensable, world-wide license to such rights, and agrees to co-operate with the transfer of these rights to <company_short/>. To the extent that the Consultant has transferred these rights to <company_short/>, <company_short/> grants a perpetual, non-exclusive, non-transferable, not-sub-licensable, world-wide license to such rights to the Consultant, unless <company_short/> considers this impossible, due to obligations <company_short/> might have vis-à-vis others. In that case, <company_short/> will explore whether it is possible to grant to the Consultant a license on the rights with a narrower scope. For the avoidance of doubt, any rights of the Consultant vested in software or services developed prior to the Activities are not affected by this agreement.</li>
|
||||
2
xml/source/snippets/contract/en/ag_provisions.xml
Normal file
2
xml/source/snippets/contract/en/ag_provisions.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>If any of the provisions of this agreement is annulled or void, the other provisions remain in effect. To the extent possible, the annulled or void provision will be replaced by a similar provision that has the same effect.</li>
|
||||
12
xml/source/snippets/contract/en/ag_responsibilities.xml
Normal file
12
xml/source/snippets/contract/en/ag_responsibilities.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant is responsible: <ul><li>for ensuring that any work performed in the course of
|
||||
this agreement is lawful (in Dutch: “<i>rechtmatig</i>”) and not illegal (in Dutch: “<i>niet
|
||||
strafbaar</i>”);</li>
|
||||
<li>for ensuring that by performing the Activities, <contractor_personal_pronoun/> does not act contrary to a
|
||||
non-compete- or a confidentiality obligation <contractor_personal_pronoun/> may have. If there is a risk that
|
||||
the Consultant will act contrary to such an obligation, <contractor_personal_pronoun/> will inform <company_short/>
|
||||
without delay. <company_short/> then has the right to terminate the agreement without
|
||||
compensation;</li>
|
||||
<li>and for paying any applicable taxes and social security premiums following from the
|
||||
Activities. Should <company_short/> have to pay any of these, the Consultant will indemnify
|
||||
<company_short/>.</li></ul></li>
|
||||
2
xml/source/snippets/contract/en/ag_retainrights.xml
Normal file
2
xml/source/snippets/contract/en/ag_retainrights.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant retains all intellectual property rights <contractor_personal_pronoun/> owns prior to this agreement.</li>
|
||||
2
xml/source/snippets/contract/en/ag_thirdparty.xml
Normal file
2
xml/source/snippets/contract/en/ag_thirdparty.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>Should a third party lodge a claim against <company_short/> or any of its employees, freelancers or volunteers, or the public prosecutor initiate an investigation or criminal proceedings against any of these parties, as a result of activities performed by the Consultant under this agreement, then the Consultant will co-operate fully with <company_short/> in defending against this claim, investigation or these proceedings, including by providing any evidence he or she has which may be relevant to this defense.</li>
|
||||
2
xml/source/snippets/contract/en/ag_workinghours.xml
Normal file
2
xml/source/snippets/contract/en/ag_workinghours.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The agreed working hours shall amount to <contract_planned_hours/> hours per <contract_period_unit/>. The Consultant may be expected to perform overtime outside the established working hours whenever this is necessary for the proper performance of the Activites.</li>
|
||||
2
xml/source/snippets/contract/en/ag_worktime.xml
Normal file
2
xml/source/snippets/contract/en/ag_worktime.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant will perform the Activities from <contract_start_date/> up to and including <contract_end_date/>.</li>
|
||||
6
xml/source/snippets/contract/en/parties.xml
Normal file
6
xml/source/snippets/contract/en/parties.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<div><p><u><b><company_long/></b></u>, located at <company_address/>, <company_postalcode/>, <company_city/>, represented by <company_poc1/> (“<b><company_short/></b>”);</p>
|
||||
|
||||
<p>AND</p>
|
||||
|
||||
<p><u><b><contractor_name/></b></u>, with <contractor_possessive_pronoun/> address at <contractor_address/>, <contractor_postalcode/>, <contractor_city/>, <contractor_country/> (the “<b>Consultant</b>”);</p></div>
|
||||
2
xml/source/snippets/contract/en/wa_companyhasasked.xml
Normal file
2
xml/source/snippets/contract/en/wa_companyhasasked.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> has asked the Consultant to assist with this.</li>
|
||||
2
xml/source/snippets/contract/en/wa_companywants.xml
Normal file
2
xml/source/snippets/contract/en/wa_companywants.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> wants to <engagement_description/>.</li>
|
||||
2
xml/source/snippets/contract/en/wa_contractorcan.xml
Normal file
2
xml/source/snippets/contract/en/wa_contractorcan.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant is willing and able to perform the activities mentioned hereafter.</li>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> and the Consultant have no intention whatsoever to agree upon an employment agreement and this agreement is only drafted to enable the Consultant to perform incidental activities for <company_short/>. <company_short/> and the Consultant explicitly confirm that this agreement does not qualify as an employment agreement. The Consultant is free to perform work for other parties, and in fact does so on a regular basis.</li>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>If during the course of the Activities, there is a risk that the scope of the assignment is bigger than expected, the Consultant will let <company_short/> know without delay.</li>
|
||||
2
xml/source/snippets/contract/nl/ag_companyinstructs.xml
Normal file
2
xml/source/snippets/contract/nl/ag_companyinstructs.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> instructs (in Dutch: "<i>wijst aan</i>"; not "<i>instrueert</i>") the Consultant – and the Consultant agrees to perform the following activities (the “<b>Activities</b>”): <contract_activities/></li>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The general terms and conditions of <company_short/> apply to this agreement. <company_short/> rejects any general terms and conditions used by the Consultant.</li>
|
||||
2
xml/source/snippets/contract/nl/ag_law.xml
Normal file
2
xml/source/snippets/contract/nl/ag_law.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>Dutch law applies to this agreement. Any dispute between <company_short/> and Consultant will be resolved in the first instance exclusively by the District Court (in Dutch: “<i>rechtbank</i>”) of Amsterdam, the Netherlands.</li>
|
||||
2
xml/source/snippets/contract/nl/ag_liability.xml
Normal file
2
xml/source/snippets/contract/nl/ag_liability.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>Unless a result of gross negligence or willful misconduct, the liability of either party to the other for any type of damages is limited to the amount of Consultant's total fees under Article 5 of this agreement.</li>
|
||||
3
xml/source/snippets/contract/nl/ag_noemployment.xml
Normal file
3
xml/source/snippets/contract/nl/ag_noemployment.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> and the Consultant explicitly do not intend to enter into an employment agreement (in Dutch: “<i>arbeidsovereenkomst</i>”) as in Article 7:610 Burgerlijk Wetboek. The Consultant guarantees he shall never claim an employment agreement exists.
|
||||
</li>
|
||||
2
xml/source/snippets/contract/nl/ag_nondisclosure.xml
Normal file
2
xml/source/snippets/contract/nl/ag_nondisclosure.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant will not disclose confidential information and personal data <contractor_personal_pronoun/> receives from <company_short/>, or gains access to in the course of the Activities. The Consultant will only use this information or data for the purposes of carrying out this agreement. The Consultant will take reasonable measures to maintain the confidentiality of this information and data. The Consultant may disclose this information and data on a need-to-know basis, and only to persons associated with <company_short/> as employee, freelancer or volunteer and only if the Consultant knows that they are bound by the same confidentiality obligations.</li>
|
||||
2
xml/source/snippets/contract/nl/ag_ownrisk.xml
Normal file
2
xml/source/snippets/contract/nl/ag_ownrisk.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant is working at his or her own risk (in Dutch: “<i>voor eigen rekening en risico</i>”). The Consultant is free to perform the Activities at his or her own discretion (in Dutch: “<i>naar eigen inzicht</i>”) and independently. The Consultant will use his own resources and tools to perform the Activities for <company_short/>.</li>
|
||||
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><p><company_short/> will pay the Consultant <contractor_hourly_fee/> per hour excluding VAT. It will do so after <company_short/> has received an invoice from the Consultant. The Consultant will send an invoice within 14 days after the end of each calendar month for the Activities performed during that month.</p>
|
||||
<p><company_short/> will then pay the agreed amount within 30 days of receipt of the invoice. <company_short/> will also pay reasonable travel expenses of the Consultant, to the extent that <company_short/> has given prior written approval for such costs and the Consultant provides <company_short/> with an invoice or other documentation for these expenses. <company_short/> will not reimburse any other costs the Consultant incurs in the course of the Activities, unless <company_short/> has given prior written approval for such costs. For the avoidance of doubt, <company_short/> shall pay no wages (in Dutch: "<i>salaris</i>") to the Consultant and therefore, <company_short/> shall not provide payslips to the Consultant, nor pay to the Consultant any money or allowance in the event of a holiday or illness of the Consultant.</p></li>
|
||||
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><p><company_short/> will pay the Consultant for a <contract_planned_hours/>-hour engagement: <contractor_hourly_fee/> per hour excluding VAT, therefore totaling <contract_total_fee/> excluding VAT. It will do so after <company_short/> has been paid for the assignment in the context of which the Activities took place and has received an invoice from the Consultant. The Consultant will send an invoice within 14 days after the end of each calendar month for the Activities performed during that month.</p>
|
||||
<p><company_short/> will then pay the agreed amount within 30 days of receipt of the invoice. <company_short/> will also pay reasonable travel expenses of the Consultant, to the extent that <company_short/> has given prior written approval for such costs and the Consultant provides <company_short/> with an invoice or other documentation for these expenses. <company_short/> will not reimburse any other costs the Consultant incurs in the course of the Activities, unless <company_short/> has given prior written approval for such costs. For the avoidance of doubt, <company_short/> shall pay no wages (in Dutch: "<i>salaris</i>") to the Consultant and therefore, <company_short/> shall not provide payslips to the Consultant, nor pay to the Consultant any money or allowance in the event of a holiday or illness of the Consultant.</p></li>
|
||||
4
xml/source/snippets/contract/nl/ag_period.xml
Normal file
4
xml/source/snippets/contract/nl/ag_period.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><p>This contract shall be effective as of <contract_start_date/> for the period of <contract_period/><!-- note: period can only be computed in years/months (for periods longer than a month) or days (for periods shorter than a month). If the period is e.g. 1 month and 14 days, this value will NOT be correct and must be added manually -->. This contract will end by operation of law on <contract_end_date/> without any notice being required.</p>
|
||||
<p>In case of tacit extension of this contract, the parties agree to do so for the same term and on the same conditions. Either party is entitled to give notice of termination of the contract with immediate effect. Notice of termination should be given by email. (To <company_short/>: <company_email/>; to the Consultant: <contractor_email/>) The other party will confirm the termination by return.</p>
|
||||
<p>Premature termination shall not give rise to liability or financial compensation for either party.</p></li>
|
||||
2
xml/source/snippets/contract/nl/ag_propertyrights.xml
Normal file
2
xml/source/snippets/contract/nl/ag_propertyrights.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant transfers to <company_short/> all intellectual property rights created as a result of the Activities. To the extent that it is not possible to transfer these rights, <contractor_personal_pronoun/> grants to <company_short/> a perpetual, exclusive transferable, sub-licensable, world-wide license to such rights, and agrees to co-operate with the transfer of these rights to <company_short/>. To the extent that the Consultant has transferred these rights to <company_short/>, <company_short/> grants a perpetual, non-exclusive, non-transferable, not-sub-licensable, world-wide license to such rights to the Consultant, unless <company_short/> considers this impossible, due to obligations <company_short/> might have vis-à-vis others. In that case, <company_short/> will explore whether it is possible to grant to the Consultant a license on the rights with a narrower scope. For the avoidance of doubt, any rights of the Consultant vested in software or services developed prior to the Activities are not affected by this agreement.</li>
|
||||
2
xml/source/snippets/contract/nl/ag_provisions.xml
Normal file
2
xml/source/snippets/contract/nl/ag_provisions.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>If any of the provisions of this agreement is annulled or void, the other provisions remain in effect. To the extent possible, the annulled or void provision will be replaced by a similar provision that has the same effect.</li>
|
||||
12
xml/source/snippets/contract/nl/ag_responsibilities.xml
Normal file
12
xml/source/snippets/contract/nl/ag_responsibilities.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant is responsible: <ul><li>for ensuring that any work performed in the course of
|
||||
this agreement is lawful (in Dutch: “<i>rechtmatig</i>”) and not illegal (in Dutch: “<i>niet
|
||||
strafbaar</i>”);</li>
|
||||
<li>for ensuring that by performing the Activities, <contractor_personal_pronoun/> does not act contrary to a
|
||||
non-compete- or a confidentiality obligation <contractor_personal_pronoun/> may have. If there is a risk that
|
||||
the Consultant will act contrary to such an obligation, <contractor_personal_pronoun/> will inform <company_short/>
|
||||
without delay. <company_short/> then has the right to terminate the agreement without
|
||||
compensation;</li>
|
||||
<li>and for paying any applicable taxes and social security premiums following from the
|
||||
Activities. Should <company_short/> have to pay any of these, the Consultant will indemnify
|
||||
<company_short/>.</li></ul></li>
|
||||
2
xml/source/snippets/contract/nl/ag_retainrights.xml
Normal file
2
xml/source/snippets/contract/nl/ag_retainrights.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant retains all intellectual property rights <contractor_personal_pronoun/> owns prior to this agreement.</li>
|
||||
2
xml/source/snippets/contract/nl/ag_thirdparty.xml
Normal file
2
xml/source/snippets/contract/nl/ag_thirdparty.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>Should a third party lodge a claim against <company_short/> or any of its employees, freelancers or volunteers, or the public prosecutor initiate an investigation or criminal proceedings against any of these parties, as a result of activities performed by the Consultant under this agreement, then the Consultant will co-operate fully with <company_short/> in defending against this claim, investigation or these proceedings, including by providing any evidence he or she has which may be relevant to this defense.</li>
|
||||
2
xml/source/snippets/contract/nl/ag_workinghours.xml
Normal file
2
xml/source/snippets/contract/nl/ag_workinghours.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The agreed working hours shall amount to <contract_planned_hours/> hours per <contract_period_unit/>. The Consultant may be expected to perform overtime outside the established working hours whenever this is necessary for the proper performance of the Activites.</li>
|
||||
2
xml/source/snippets/contract/nl/ag_worktime.xml
Normal file
2
xml/source/snippets/contract/nl/ag_worktime.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant will perform the Activities from <contract_start_date/> up to and including <contract_end_date/>.</li>
|
||||
6
xml/source/snippets/contract/nl/parties.xml
Normal file
6
xml/source/snippets/contract/nl/parties.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<div><p><u><b><company_long/></b></u>, met adres <company_address/>, <company_postalcode/>, <company_city/>, vertegenwoordigd door <company_poc1/> (“<b><company_short/></b>”);</p>
|
||||
|
||||
<p>EN</p>
|
||||
|
||||
<p><u><b><contractor_name/></b></u>, met <contractor_possessive_pronoun/> adres op <contractor_address/>, <contractor_postalcode/>, <contractor_city/>, <contractor_country/> (de “<b>Consultant</b>”);</p></div>
|
||||
2
xml/source/snippets/contract/nl/wa_companyhasasked.xml
Normal file
2
xml/source/snippets/contract/nl/wa_companyhasasked.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> has asked the Consultant to assist with this.</li>
|
||||
2
xml/source/snippets/contract/nl/wa_companywants.xml
Normal file
2
xml/source/snippets/contract/nl/wa_companywants.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> wants to <engagement_description/>.</li>
|
||||
2
xml/source/snippets/contract/nl/wa_contractorcan.xml
Normal file
2
xml/source/snippets/contract/nl/wa_contractorcan.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li>The Consultant is willing and able to perform the activities mentioned hereafter.</li>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<li><company_short/> and the Consultant have no intention whatsoever to agree upon an employment agreement and this agreement is only drafted to enable the Consultant to perform incidental activities for <company_short/>. <company_short/> and the Consultant explicitly confirm that this agreement does not qualify as an employment agreement. The Consultant is free to perform work for other parties, and in fact does so on a regular basis.</li>
|
||||
@@ -63,5 +63,37 @@
|
||||
<translation xml:lang="nl">namens</translation>
|
||||
<translation xml:lang="en">for</translation>
|
||||
</string>
|
||||
<string id="signed_dupe">
|
||||
<translation xml:lang="nl">In duplicaat getekend</translation>
|
||||
<translation xml:lang="en">Signed in duplicate</translation>
|
||||
</string>
|
||||
<string id="contract_title">
|
||||
<translation xml:lang="nl">security consulting agreement</translation>
|
||||
<translation xml:lang="en">security consulting agreement</translation>
|
||||
</string>
|
||||
<string id="personal_m">
|
||||
<translation xml:lang="nl">hij</translation>
|
||||
<translation xml:lang="en">he</translation>
|
||||
</string>
|
||||
<string id="personal_f">
|
||||
<translation xml:lang="nl">ze</translation>
|
||||
<translation xml:lang="en">she</translation>
|
||||
</string>
|
||||
<string id="personal_o">
|
||||
<translation xml:lang="nl">hen</translation>
|
||||
<translation xml:lang="en">they</translation>
|
||||
</string>
|
||||
<string id="possessive_m">
|
||||
<translation xml:lang="nl">zijn</translation>
|
||||
<translation xml:lang="en">his</translation>
|
||||
</string>
|
||||
<string id="possessive_f">
|
||||
<translation xml:lang="nl">haar</translation>
|
||||
<translation xml:lang="en">her</translation>
|
||||
</string>
|
||||
<string id="possessive_o">
|
||||
<translation xml:lang="nl">hun</translation>
|
||||
<translation xml:lang="en">their</translation>
|
||||
</string>
|
||||
</localised_strings>
|
||||
|
||||
|
||||
30
xml/source/snippets/snippetselection.xml
Normal file
30
xml/source/snippets/snippetselection.xml
Normal file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<snippet_selection>
|
||||
<document root_node="offerte">
|
||||
<selection type="pentest">
|
||||
<snippet>introandscope</snippet>
|
||||
<snippet>projectoverview</snippet>
|
||||
</selection>
|
||||
<selection type="basic-scan">
|
||||
<snippet>introandscope</snippet>
|
||||
<snippet>projectoverview</snippet>
|
||||
</selection>
|
||||
</document>
|
||||
<document root_node="contract">
|
||||
<selection type="single_engagement">
|
||||
<snippet_group number="1">
|
||||
<snippet>parties</snippet>
|
||||
</snippet_group>
|
||||
<snippet_group number="2">
|
||||
<snippet>wa_companywants</snippet>
|
||||
<snippet>wa_companyhasasked</snippet>
|
||||
<snippet>wa_contractorcan</snippet>
|
||||
<snippet>wa_noemploymentintention</snippet>
|
||||
</snippet_group>
|
||||
</selection>
|
||||
<selection type="fixed_term">
|
||||
<snippet>parties</snippet>
|
||||
<snippet>projectoverview</snippet>
|
||||
</selection>
|
||||
</document>
|
||||
</snippet_selection>
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master margin-top="2cm" margin-bottom="1.8cm" margin-left="2cm" margin-right="2cm" page-height="29.7cm" page-width="21.0cm" master-name="Cover"><fo:region-body margin-top="1cm" margin-bottom="1cm" region-name="region-body"/><fo:region-before precedence="true" extent="0.6cm" region-name="region-before"/><fo:region-after precedence="true" extent="0.6cm" padding="0" region-name="region-after"/></fo:simple-page-master><fo:simple-page-master margin-top="2cm" margin-bottom="1.8cm" margin-left="2cm" margin-right="2cm" page-height="29.7cm" page-width="21.0cm" master-name="Content"><fo:region-body margin-top="1cm" margin-bottom="1cm" region-name="region-body"/><fo:region-before precedence="true" extent="0.6cm" region-name="region-before"/><fo:region-after precedence="true" extent="0.6cm" padding="0" region-name="region-after"/></fo:simple-page-master><fo:page-sequence-master master-name="Report"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="Cover" blank-or-not-blank="not-blank" page-position="first"/><fo:conditional-page-master-reference master-reference="Content" blank-or-not-blank="not-blank"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master></fo:layout-master-set><fo:page-sequence master-reference="Report"><fo:static-content font-family="LiberationSansNarrow" font-size="12pt" color="black" flow-name="region-before"><fo:block text-align="right" font-weight="bold"/></fo:static-content><fo:static-content font-family="LiberationSansNarrow" font-size="12pt" color="black" flow-name="region-after"><fo:block text-align-last="justify"><fo:page-number/>/<fo:page-number-citation ref-id="EndOfDoc"/><fo:leader leader-pattern="space"/><fo:inline font-family="LiberationSansNarrow" font-size="8pt" color="black">Chamber of Commerce
|
||||
60628081</fo:inline></fo:block></fo:static-content><fo:flow font-family="LiberationSansNarrow" font-size="12pt" color="black" flow-name="region-body"><fo:block><fo:block margin-bottom="1.5cm"><fo:block font-weight="bold" keep-with-next.within-page="always" text-align="center" color="white" font-size="18pt" margin-bottom="1cm" background-color="#FF5C00">PENETRATION TESTING WAIVER</fo:block><fo:block margin-bottom="10pt" line-height="18pt"><fo:inline font-weight="bold"><fo:inline text-decoration="underline">...</fo:inline> (“...”)</fo:inline>, with its registered office at ..., ..., ...
|
||||
and duly represented by ....</fo:block><fo:block margin-bottom="10pt" line-height="18pt"><fo:inline font-weight="bold">WHEREAS:</fo:inline></fo:block><fo:block margin-bottom="10pt" line-height="18pt">A. ... wants some of its systems to be tested, Radically Open Security B.V. (“ROS”) has offered to perform such testing for and has accepted this offer. The assignment will be performed by ROS' core-team members, external freelancers, and/or volunteers (the “Consultants”).</fo:block><fo:block margin-bottom="10pt" line-height="18pt">B. Some of the activities performed by ROS and the Consultants during the course of this assignment could be considered illegal, unless ... has given permission for these activities. ROS and the Consultant will only perform such activities if they have received the required permission.</fo:block><fo:block margin-bottom="10pt" line-height="18pt">C. ... is willing to give such permission to ROS, the Consultants and any other person ROS might employ or engage for the assignment.</fo:block><fo:block margin-bottom="10pt" line-height="18pt"><fo:inline font-weight="bold">DECLARES AS FOLLOWS:</fo:inline></fo:block><fo:block margin-bottom="10pt" line-height="18pt">1. ... is aware that ROS will perform penetration testing services of the following systems of ..., as described below. The services are intended to gain insight in the security of these systems. To do so, ROS will access these systems, attempt to find vulnerabilities and gain further access and elevated privileges by exploiting any vulnerabilities found. ROS will test the following targets (the “<fo:inline font-weight="bold">Targets</fo:inline>”):</fo:block><fo:list-block margin-bottom="10pt" line-height="18pt" provisional-distance-between-starts="0.75cm" provisional-label-separation="2.5mm" space-after="12pt" start-indent="1cm"><fo:list-item><fo:list-item-label end-indent="label-end()"><fo:block><fo:inline>•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>...</fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block margin-bottom="10pt" line-height="18pt">2. ... hereby grants ROS and the Consultants on a date to be confirmed by email the broadest permission
|
||||
possible to perform the assignment, including the permission to:</fo:block><fo:block margin-bottom="10pt" line-height="18pt">a. enter and use the Targets;</fo:block><fo:block margin-bottom="10pt" line-height="18pt">b. circumvent, breach, remove and turn off any security measures protecting the Targets;</fo:block><fo:block margin-bottom="10pt" line-height="18pt">c. copy, intercept, record, amend, delete, render unusable or inaccessible any data stored on, processed by or transferred via the Targets; and</fo:block><fo:block margin-bottom="10pt" line-height="18pt">d. hinder the access or use of the Targets,</fo:block><fo:block margin-bottom="10pt" line-height="18pt">but ... only grants the permission for these activities to the extent that (i) such activities are necessary to perform the assignment and (ii) such activities do not disrupt the normal business operations of ....</fo:block><fo:block margin-bottom="10pt" line-height="18pt">3. The permission under Article 1 extends to all systems on which the Targets run, or which ROS or the Consultant might encounter while performing the assignment, regardless of whether these systems are owned by third parties.</fo:block><fo:block margin-bottom="10pt" line-height="18pt">4. ... warrants that it has the legal authority to give the permission set out under Articles 1 and 2. It also warrants it has obtained the necessary permissions from any third parties referred to under Article 3.</fo:block><fo:block margin-bottom="10pt" line-height="18pt">5. Should the public prosecutor initiate an investigation or criminal proceedings against ROS or any of the consultants it engaged or employed as a result of the performance of the assignment for the customer, then ... will co-operate fully with ROS in defending against this investigation or proceedings, including by providing any evidence it has which relates to this investigation or these proceedings.</fo:block><fo:block margin-top="1.5cm" keep-together.within-page="always"><fo:table width="100%" table-layout="fixed"><fo:table-column column-width="proportional-column-width(10)"/><fo:table-column column-width="proportional-column-width(90)"/><fo:table-body><fo:table-row><fo:table-cell padding="2pt" number-rows-spanned="4"><fo:block>Signed</fo:block></fo:table-cell><fo:table-cell padding="2pt"><fo:block margin-bottom="10pt" line-height="18pt">on June 8, 2015</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding="2pt"><fo:block margin-bottom="10pt" line-height="18pt">in ...</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding="2pt"><fo:block margin-bottom="10pt" line-height="18pt">by ...</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding="2pt"><fo:block margin-bottom="10pt" line-height="18pt">for ...</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="EndOfDoc"/></fo:flow></fo:page-sequence></fo:root>
|
||||
37
xml/target/contract.fo
Normal file
37
xml/target/contract.fo
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><fo:root xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:layout-master-set><fo:simple-page-master margin-top="0.5cm" margin-bottom="1.5cm" margin-left="1.5cm" margin-right="1.5cm" page-height="29.7cm" page-width="21.0cm" master-name="Cover"><fo:region-body margin-top="3.6cm" margin-bottom="1cm" region-name="region-body"/><fo:region-before precedence="true" extent="2.7cm" region-name="region-before-cover"/><fo:region-after precedence="true" extent="0.6cm" padding="0" region-name="region-after-cover"/></fo:simple-page-master><fo:simple-page-master margin-top="0.5cm" margin-bottom="1.5cm" margin-left="1.5cm" margin-right="1.5cm" page-height="29.7cm" page-width="21.0cm" master-name="Content"><fo:region-body margin-top="2cm" margin-bottom="1cm" region-name="region-body"/><fo:region-before precedence="true" extent="0.6cm" region-name="region-before-content"/><fo:region-after precedence="true" extent="0.6cm" padding="0" region-name="region-after-content"/></fo:simple-page-master><fo:page-sequence-master master-name="Report"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="Cover" blank-or-not-blank="not-blank" page-position="first"/><fo:conditional-page-master-reference master-reference="Content" blank-or-not-blank="not-blank"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master></fo:layout-master-set><fo:page-sequence master-reference="Report"><fo:static-content font-family="LiberationSansNarrow" font-size="12pt" color="black" flow-name="region-before-cover"><fo:block><fo:table width="100%" table-layout="fixed"><fo:table-column column-width="proportional-column-width(40)"/><fo:table-column column-width="proportional-column-width(20)"/><fo:table-column column-width="proportional-column-width(40)"/><fo:table-body><fo:table-row><fo:table-cell text-align="right" display-align="after" padding-bottom="5mm"><fo:block font-family="LiberationSansNarrow" font-size="8pt" color="black"><fo:block font-weight="bold" color="#FF5C00">Radically Open Security B.V.</fo:block><fo:block>Overdiemerweg 28</fo:block><fo:block>1111 PP Diemen</fo:block><fo:block>The Netherlands</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center"><fo:block><fo:external-graphic padding-top="0cm" padding-bottom="0cm" src="url(../graphics/logo_alt.png)" width="30mm" content-width="scale-to-fit" content-height="scale-to-fit" scaling="uniform"/></fo:block></fo:table-cell><fo:table-cell display-align="after" padding-bottom="5mm"><fo:block font-family="LiberationSansNarrow" font-size="8pt" color="black"><fo:block font-weight="bold" color="#FF5C00">www.radicallyopensecurity.com</fo:block><fo:block>info@radicallyopensecurity.com</fo:block><fo:block>Chamber of Commerce 60628081</fo:block><fo:block>VAT number 853989655B01</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content font-family="LiberationSansNarrow" font-size="12pt" color="black" flow-name="region-before-content"><fo:block text-align="right" font-weight="normal"/></fo:static-content><fo:static-content font-family="LiberationSansNarrow" font-size="12pt" color="black" flow-name="region-after-cover"><fo:block text-align-last="justify" text-align="center"><fo:page-number/>/<fo:page-number-citation ref-id="EndOfDoc"/><fo:leader leader-pattern="space"/><fo:inline font-family="LiberationSansNarrow" font-size="8pt" color="black">Radically Open Security B.V. - Chamber of Commerce
|
||||
60628081</fo:inline></fo:block></fo:static-content><fo:static-content font-family="LiberationSansNarrow" font-size="12pt" color="black" flow-name="region-after-content"><fo:block text-align-last="justify" text-align="center"><fo:page-number/>/<fo:page-number-citation ref-id="EndOfDoc"/><fo:leader leader-pattern="space"/><fo:inline font-family="LiberationSansNarrow" font-size="8pt" color="black">Radically Open Security B.V. - Chamber of Commerce
|
||||
60628081</fo:inline></fo:block></fo:static-content><fo:flow font-family="LiberationSansNarrow" font-size="12pt" color="black" flow-name="region-body"><fo:block>
|
||||
|
||||
<fo:block margin-bottom="1.5cm">
|
||||
<fo:block keep-with-next.within-page="always" text-align="center" color="white" font-weight="bold" text-transform="uppercase" font-size="18pt" margin-bottom="1cm" background-color="#FF5C00">SECURITY CONSULTING AGREEMENT</fo:block>
|
||||
|
||||
<fo:block><fo:block margin-bottom="10pt" line-height="18pt"><fo:inline text-decoration="underline"><fo:inline font-weight="bold">Radically Open Security B.V.</fo:inline></fo:inline>, located at Overdiemerweg 28, 1111 PP, Diemen, represented by Melanie Rieback (“<fo:inline font-weight="bold">ROS</fo:inline>”);</fo:block>
|
||||
|
||||
<fo:block margin-bottom="10pt" line-height="18pt">AND</fo:block>
|
||||
|
||||
<fo:block margin-bottom="10pt" line-height="18pt"><fo:inline text-decoration="underline"><fo:inline font-weight="bold">Peter Pan</fo:inline></fo:inline>, with his address at Cloud 9, 1234 XX, Treehouse City, Neverland (the “<fo:inline font-weight="bold">Consultant</fo:inline>”);</fo:block></fo:block>
|
||||
<fo:block margin-bottom="10pt" line-height="18pt">WHEREAS:</fo:block>
|
||||
<fo:list-block provisional-distance-between-starts="0.75cm" provisional-label-separation="2.5mm" margin-bottom="1.5cm" space-after="12pt" start-indent="1cm"><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>A. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The Consultant is willing and able to perform the activities mentioned hereafter.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>B. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>ROS and the Consultant have no intention whatsoever to agree upon an employment agreement and this agreement is only drafted to enable the Consultant to perform incidental activities for ROS. ROS and the Consultant explicitly confirm that this agreement does not qualify as an employment agreement. The Consultant is free to perform work for other parties, and in fact does so on a regular basis.</fo:block></fo:list-item-body></fo:list-item></fo:list-block>
|
||||
|
||||
<fo:block margin-bottom="1.5cm">
|
||||
<fo:block keep-with-next.within-page="always" text-align="center" color="white" font-weight="bold" text-transform="uppercase" font-style="italic" font-size="14pt" margin-bottom="0.8cm" background-color="#999999">AGREE AS FOLLOWS</fo:block>
|
||||
<fo:list-block provisional-distance-between-starts="0.75cm" provisional-label-separation="2.5mm" margin-bottom="1.5cm" space-after="12pt" start-indent="1cm"><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>1. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block margin-bottom="5pt">This contract shall be effective as of August 18, 2016 for the period of 28 days. This contract will end by operation of law on September 15, 2016 without any notice being required.</fo:block>
|
||||
<fo:block margin-bottom="5pt">In case of tacit extension of this contract, the parties agree to do so for the same term and on the same conditions. Either party is entitled to give notice of termination of the contract with immediate effect. Notice of termination should be given by email. (To ROS: info@radicallyopensecurity.com; to the Consultant: peter@pan.tech) The other party will confirm the termination by return.</fo:block>
|
||||
<fo:block margin-bottom="5pt">Premature termination shall not give rise to liability or financial compensation for either party.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>2. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>ROS and the Consultant explicitly do not intend to enter into an employment agreement (in Dutch: “<fo:inline font-style="italic">arbeidsovereenkomst</fo:inline>”) as in Article 7:610 Burgerlijk Wetboek. The Consultant guarantees he shall never claim an employment agreement exists.
|
||||
</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>3. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>ROS instructs (in Dutch: "<fo:inline font-style="italic">wijst aan</fo:inline>"; not "<fo:inline font-style="italic">instrueert</fo:inline>") the Consultant – and the Consultant agrees to perform the following activities (the “<fo:inline font-weight="bold">Activities</fo:inline>”): <fo:list-block xmlns:my="http://radical.sexy" margin-bottom="10pt" line-height="18pt"><fo:list-item><fo:list-item-label end-indent="label-end()"><fo:block><fo:inline>•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Taunting Captain Hook</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label end-indent="label-end()"><fo:block><fo:inline>•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Feeding crocodiles</fo:block></fo:list-item-body></fo:list-item><fo:list-item><fo:list-item-label end-indent="label-end()"><fo:block><fo:inline>•</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Flying to and fro ('to' and 'fro' to be specified at takeoff)</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>4. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The Consultant is working at his or her own risk (in Dutch: “<fo:inline font-style="italic">voor eigen rekening en risico</fo:inline>”). The Consultant is free to perform the Activities at his or her own discretion (in Dutch: “<fo:inline font-style="italic">naar eigen inzicht</fo:inline>”) and independently. The Consultant will use his own resources and tools to perform the Activities for ROS.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>5. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The agreed working hours shall amount to 30 hours per month. The Consultant may be expected to perform overtime outside the established working hours whenever this is necessary for the proper performance of the Activites.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>6. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block margin-bottom="5pt">ROS will pay the Consultant € 50 per hour excluding VAT. It will do so after ROS has received an invoice from the Consultant. The Consultant will send an invoice within 14 days after the end of each calendar month for the Activities performed during that month.</fo:block>
|
||||
<fo:block margin-bottom="5pt">ROS will then pay the agreed amount within 30 days of receipt of the invoice. ROS will also pay reasonable travel expenses of the Consultant, to the extent that ROS has given prior written approval for such costs and the Consultant provides ROS with an invoice or other documentation for these expenses. ROS will not reimburse any other costs the Consultant incurs in the course of the Activities, unless ROS has given prior written approval for such costs. For the avoidance of doubt, ROS shall pay no wages (in Dutch: "<fo:inline font-style="italic">salaris</fo:inline>") to the Consultant and therefore, ROS shall not provide payslips to the Consultant, nor pay to the Consultant any money or allowance in the event of a holiday or illness of the Consultant.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>7. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The Consultant transfers to ROS all intellectual property rights created as a result of the Activities. To the extent that it is not possible to transfer these rights, he grants to ROS a perpetual, exclusive transferable, sub-licensable, world-wide license to such rights, and agrees to co-operate with the transfer of these rights to ROS. To the extent that the Consultant has transferred these rights to ROS, ROS grants a perpetual, non-exclusive, non-transferable, not-sub-licensable, world-wide license to such rights to the Consultant, unless ROS considers this impossible, due to obligations ROS might have vis-à-vis others. In that case, ROS will explore whether it is possible to grant to the Consultant a license on the rights with a narrower scope. For the avoidance of doubt, any rights of the Consultant vested in software or services developed prior to the Activities are not affected by this agreement.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>8. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The Consultant retains all intellectual property rights he owns prior to this agreement.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>9. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The Consultant will not disclose confidential information and personal data he receives from ROS, or gains access to in the course of the Activities. The Consultant will only use this information or data for the purposes of carrying out this agreement. The Consultant will take reasonable measures to maintain the confidentiality of this information and data. The Consultant may disclose this information and data on a need-to-know basis, and only to persons associated with ROS as employee, freelancer or volunteer and only if the Consultant knows that they are bound by the same confidentiality obligations.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>10. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The Consultant is responsible: <fo:list-block provisional-distance-between-starts="0.75cm" provisional-label-separation="2.5mm" space-after="0pt" start-indent="2.25cm"><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>for ensuring that any work performed in the course of
|
||||
this agreement is lawful (in Dutch: “<fo:inline font-style="italic">rechtmatig</fo:inline>”) and not illegal (in Dutch: “<fo:inline font-style="italic">niet
|
||||
strafbaar</fo:inline>”);</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>for ensuring that by performing the Activities, he does not act contrary to a
|
||||
non-compete- or a confidentiality obligation he may have. If there is a risk that
|
||||
the Consultant will act contrary to such an obligation, he will inform ROS
|
||||
without delay. ROS then has the right to terminate the agreement without
|
||||
compensation;</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>and for paying any applicable taxes and social security premiums following from the
|
||||
Activities. Should ROS have to pay any of these, the Consultant will indemnify
|
||||
ROS.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>11. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Should a third party lodge a claim against ROS or any of its employees, freelancers or volunteers, or the public prosecutor initiate an investigation or criminal proceedings against any of these parties, as a result of activities performed by the Consultant under this agreement, then the Consultant will co-operate fully with ROS in defending against this claim, investigation or these proceedings, including by providing any evidence he or she has which may be relevant to this defense.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>12. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Unless a result of gross negligence or willful misconduct, the liability of either party to the other for any type of damages is limited to the amount of Consultant's total fees under Article 5 of this agreement.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>13. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>If any of the provisions of this agreement is annulled or void, the other provisions remain in effect. To the extent possible, the annulled or void provision will be replaced by a similar provision that has the same effect.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>14. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The general terms and conditions of ROS apply to this agreement. ROS rejects any general terms and conditions used by the Consultant.</fo:block></fo:list-item-body></fo:list-item><fo:list-item margin-bottom="5pt"><fo:list-item-label end-indent="label-end()"><fo:block>15. </fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Dutch law applies to this agreement. Any dispute between ROS and Consultant will be resolved in the first instance exclusively by the District Court (in Dutch: “<fo:inline font-style="italic">rechtbank</fo:inline>”) of Amsterdam, the Netherlands.</fo:block></fo:list-item-body></fo:list-item></fo:list-block>
|
||||
</fo:block>
|
||||
<fo:block margin-bottom="1.5cm">
|
||||
<fo:block keep-with-next.within-page="always" text-align="center" color="white" font-weight="bold" text-transform="uppercase" font-style="italic" font-size="14pt" margin-bottom="0.8cm" background-color="#999999">SIGNED IN DUPLICATE ON AUGUST 18, 2016 IN</fo:block>
|
||||
<fo:block margin-top="1.5cm" keep-together.within-page="always"><fo:block><fo:table border-width="1pt" border-style="solid" border-color="black" width="100%" table-layout="fixed"><fo:table-column border-width="1pt" border-style="solid" border-color="black" column-width="proportional-column-width(50)"/><fo:table-column border-width="1pt" border-style="solid" border-color="black" column-width="proportional-column-width(50)"/><fo:table-body><fo:table-row><fo:table-cell padding="2pt"><fo:block>Treehouse City</fo:block></fo:table-cell><fo:table-cell padding="2pt"><fo:block>Diemen</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding="2pt"><fo:block> </fo:block><fo:block> </fo:block></fo:table-cell><fo:table-cell padding="2pt"><fo:block> </fo:block><fo:block> </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding="2pt"><fo:block>Peter Pan</fo:block></fo:table-cell><fo:table-cell padding="2pt"><fo:block>Melanie Rieback</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding="2pt"><fo:block/></fo:table-cell><fo:table-cell padding="2pt"><fo:block font-weight="bold">Radically Open Security B.V.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block>
|
||||
</fo:block>
|
||||
</fo:block>
|
||||
</fo:block><fo:block id="EndOfDoc"/></fo:flow></fo:page-sequence></fo:root>
|
||||
BIN
xml/target/contract.pdf
Normal file
BIN
xml/target/contract.pdf
Normal file
Binary file not shown.
BIN
xml/target/contract_single.pdf
Normal file
BIN
xml/target/contract_single.pdf
Normal file
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format" version="2.0">
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:my="http://radical.sexy" version="2.0">
|
||||
|
||||
<xsl:variable name="denomination">
|
||||
<xsl:choose>
|
||||
@@ -271,7 +271,9 @@
|
||||
<xsl:template name="generateSignatureBox">
|
||||
<xsl:param name="latestVersionDate"/>
|
||||
<fo:block keep-together.within-page="always" xsl:use-attribute-sets="signaturebox">
|
||||
<fo:block xsl:use-attribute-sets="title-client">SIGNED IN DUPLICATE</fo:block>
|
||||
<fo:block xsl:use-attribute-sets="title-client"><xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'signed_dupe'"/>
|
||||
</xsl:call-template></fo:block>
|
||||
<fo:block>
|
||||
<fo:table width="100%" table-layout="fixed" xsl:use-attribute-sets="borders">
|
||||
<fo:table-column column-width="proportional-column-width(50)"
|
||||
@@ -293,25 +295,11 @@
|
||||
</fo:table-row>
|
||||
<fo:table-row>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block>
|
||||
<xsl:choose>
|
||||
<xsl:when test="/offerte">
|
||||
|
||||
<xsl:value-of
|
||||
select="/*/meta/permission_parties/client/city"/>
|
||||
|
||||
</xsl:when>
|
||||
<xsl:when test="/quickscope">
|
||||
|
||||
<xsl:value-of select="/*/customer/city"/>
|
||||
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</fo:block>
|
||||
<fo:block><xsl:value-of select="/*/customer/city"/></fo:block>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block>
|
||||
<xsl:text>Amsterdam</xsl:text>
|
||||
<fo:block><xsl:value-of
|
||||
select="/*/meta/company/city"/>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
</fo:table-row>
|
||||
@@ -481,14 +469,40 @@
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="company_address">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/company/address"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="company_city">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/company/city"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="company_postalcode">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/company/postal_code"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="company_country">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/company/country"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="company_svc_long">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/offered_service_long"/>
|
||||
<xsl:param name="placeholderElement"
|
||||
select="/offerte/meta/offered_service_long | /pentest_report/meta/offered_service_long"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="company_svc_short">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/offered_service_short"/>
|
||||
<xsl:param name="placeholderElement"
|
||||
select="/offerte/meta/offered_service_short | /pentest_report/meta/offered_service_short"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
@@ -505,15 +519,22 @@
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="company_email">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/company/email"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="t_app">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/pentestinfo/target_application"/>
|
||||
<xsl:param name="placeholderElement"
|
||||
select="/offerte/meta/pentestinfo/target_application | /pentest_report/meta/pentestinfo/target_application"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="t_app_producer">
|
||||
<xsl:param name="placeholderElement"
|
||||
select="/*/meta/pentestinfo/target_application_producer"/>
|
||||
select="/offerte/meta/pentestinfo/target_application_producer | /pentest_report/meta/pentestinfo/target_application_producer"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
@@ -556,6 +577,121 @@
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="p_reportdue">
|
||||
<xsl:param name="placeholderElement" select="/*/meta/pentestinfo/report_due"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="engagement_description">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/scope/engagement_description"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contract_start_date">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/work/start_date"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contract_end_date">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/work/end_date"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contract_period">
|
||||
<xsl:variable name="startDate" select="xs:date(/contract/meta/work/start_date)"/>
|
||||
<xsl:variable name="endDate" select="xs:date(/contract/meta/work/end_date)"/>
|
||||
<!--<xsl:variable name="startDay" as="xs:integer" select="day-from-date($startDate)"/>
|
||||
<xsl:variable name="endDay" as="xs:integer" select="day-from-date($endDate)"/>-->
|
||||
<xsl:value-of select="my:calculatePeriod($endDate, $startDate)"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="contract_total_fee">
|
||||
<xsl:value-of select="$denomination"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="$total_fee"/>
|
||||
<!-- no need to check for existence as it's a calculation of two checked values below -->
|
||||
</xsl:template>
|
||||
<xsl:template match="contract_planned_hours">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/work/planning/hours"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contract_period_unit">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/work/planning/per"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contract_activities">
|
||||
<xsl:choose>
|
||||
<xsl:when test="/contract/meta/work/activities/activity">
|
||||
<xsl:call-template name="generate_activities_xslt"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<fo:inline xsl:use-attribute-sets="errortext">XXXXXX</fo:inline>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_name">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/name"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_address">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/address"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_city">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/city"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_postalcode">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/postal_code"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_country">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/country"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_hourly_fee">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/hourly_fee"/>
|
||||
<xsl:value-of select="$denomination"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_email">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/email"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_possessive_pronoun">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/@sex"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="contractor_personal_pronoun">
|
||||
<xsl:param name="placeholderElement" select="/contract/meta/contractor/@sex"/>
|
||||
<xsl:call-template name="checkPlaceholder">
|
||||
<xsl:with-param name="placeholderElement" select="$placeholderElement"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="checkPlaceholder">
|
||||
<xsl:param name="placeholderElement" select="/"/>
|
||||
@@ -563,11 +699,58 @@
|
||||
<xsl:when test="normalize-space($placeholderElement)">
|
||||
<!-- placeholder exists and contains text -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="self::p_fee">
|
||||
<xsl:when test="self::p_fee or self::contractor_hourly_fee">
|
||||
<!-- pretty numbering for fee -->
|
||||
<xsl:variable name="fee" select="$placeholderElement * 1"/>
|
||||
<xsl:number value="$fee" grouping-separator="," grouping-size="3"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="self::contract_end_date">
|
||||
<!-- pretty printing for date -->
|
||||
<xsl:value-of
|
||||
select="format-date(/contract/meta/work/end_date, '[MNn] [D1], [Y]', 'en', (), ())"
|
||||
/>
|
||||
</xsl:when>
|
||||
<xsl:when test="self::contract_start_date">
|
||||
<!-- pretty printing for date -->
|
||||
<xsl:value-of
|
||||
select="format-date(/contract/meta/work/start_date, '[MNn] [D1], [Y]', 'en', (), ())"
|
||||
/>
|
||||
</xsl:when>
|
||||
<xsl:when
|
||||
test="self::contract_period_unit and /contract/meta/scope/contract_type = 'single_engagement'">
|
||||
<!-- only use value for fixed term contracts; use 'engagement' for single engagement contract -->
|
||||
<xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'contract_engagement'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="self::contractor_possessive_pronoun">
|
||||
<!-- some sexy logic -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="//contractor/@sex = 'M'"><xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'possessive_m'"/>
|
||||
</xsl:call-template></xsl:when>
|
||||
<xsl:when test="//contractor/@sex = 'F'"><xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'possessive_f'"/>
|
||||
</xsl:call-template></xsl:when>
|
||||
<xsl:when test="//contractor/@sex = 'O'"><xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'possessive_o'"/>
|
||||
</xsl:call-template></xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:when test="self::contractor_personal_pronoun">
|
||||
<!-- some sexy logic -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="//contractor/@sex = 'M'"><xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'personal_m'"/>
|
||||
</xsl:call-template></xsl:when>
|
||||
<xsl:when test="//contractor/@sex = 'F'"><xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'personal_f'"/>
|
||||
</xsl:call-template></xsl:when>
|
||||
<xsl:when test="//contractor/@sex = 'O'"><xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'personal_o'"/>
|
||||
</xsl:call-template></xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$placeholderElement"/>
|
||||
</xsl:otherwise>
|
||||
@@ -578,4 +761,138 @@
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="generate_activities_xslt">
|
||||
<fo:list-block xsl:use-attribute-sets="list">
|
||||
<xsl:for-each select="/contract/meta/work/activities/activity">
|
||||
<fo:list-item>
|
||||
<!-- insert a bullet -->
|
||||
<fo:list-item-label end-indent="label-end()">
|
||||
<fo:block>
|
||||
<fo:inline>•</fo:inline>
|
||||
</fo:block>
|
||||
</fo:list-item-label>
|
||||
<!-- list text -->
|
||||
<fo:list-item-body start-indent="body-start()">
|
||||
<fo:block>
|
||||
<xsl:value-of select="."/>
|
||||
</fo:block>
|
||||
</fo:list-item-body>
|
||||
</fo:list-item>
|
||||
</xsl:for-each>
|
||||
</fo:list-block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:function name="my:calculatePeriod">
|
||||
<xsl:param name="enddate"/>
|
||||
<xsl:param name="startdate"/>
|
||||
<xsl:variable name="startYear" as="xs:integer" select="year-from-date($startdate)"/>
|
||||
<xsl:variable name="startMonth" as="xs:integer" select="month-from-date($startdate)"/>
|
||||
<xsl:variable name="startDay" as="xs:integer" select="day-from-date($startdate)"/>
|
||||
<xsl:variable name="endYear" as="xs:integer" select="year-from-date($enddate)"/>
|
||||
<xsl:variable name="endMonth" as="xs:integer" select="month-from-date($enddate)"/>
|
||||
<xsl:variable name="endDay" as="xs:integer" select="day-from-date($enddate)"/>
|
||||
<xsl:variable name="startMonthNumberOfDays">
|
||||
<xsl:choose>
|
||||
<xsl:when test="xs:string($startMonth) = '1'">31</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '2'">
|
||||
<!-- I hate february -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$startYear mod 4 != 0">28</xsl:when>
|
||||
<xsl:when test="$startYear mod 100 != 0">29</xsl:when>
|
||||
<xsl:when test="$startYear mod 400 != 0">28</xsl:when>
|
||||
<xsl:otherwise>29</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '3'">31</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '4'">30</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '5'">31</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '6'">30</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '7'">31</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '8'">31</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '9'">30</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '10'">31</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '11'">30</xsl:when>
|
||||
<xsl:when test="xs:string($startMonth) = '12'">31</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="numYears">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$endMonth > $startMonth">
|
||||
<xsl:sequence select="$endYear - $startYear"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$endMonth < $startMonth">
|
||||
<xsl:sequence select="$endYear - $startYear - 1"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$endDay >= $startDay">
|
||||
<xsl:sequence select="$endYear - $startYear"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- $endDay < $startDay -->
|
||||
<xsl:sequence select="$endYear - $startYear - 1"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="numMonths">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$endDay < $startDay">
|
||||
<xsl:sequence select="$endMonth - $startMonth - 1"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- $endDay >= $startDay -->
|
||||
<xsl:sequence select="$endMonth - $startMonth"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="numDays">
|
||||
<!--<xsl:choose>
|
||||
<xsl:when test="$numMonths < 1 and $numYears < 1">
|
||||
<!-\- only displaying days if contract is for less than a month -\->
|
||||
<xsl:sequence select="($enddate - $startdate) div xs:dayTimeDuration('P1D')"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-\- if contract is longer than a month, don't count days -\->
|
||||
<xsl:sequence select="0"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>-->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$endDay - $startDay < 0"><xsl:value-of select="$startMonthNumberOfDays - $startDay + $endDay"/></xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="$endDay - $startDay"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:if test="$numYears > 0">
|
||||
<xsl:sequence select="$numYears"/>
|
||||
<xsl:text>year</xsl:text>
|
||||
<xsl:if test="$numYears > 1">
|
||||
<xsl:text>s</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:choose><xsl:when test="($numMonths > 0 and $numDays = 0) or ($numMonths = 0 and $numDays > 0)">
|
||||
<xsl:text> and</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$numMonths > 0 and $numDays > 0">
|
||||
<xsl:text>,</xsl:text>
|
||||
</xsl:when></xsl:choose>
|
||||
</xsl:if>
|
||||
<xsl:if test="$numMonths > 0">
|
||||
<xsl:sequence select="$numMonths"/>
|
||||
<xsl:text>month</xsl:text>
|
||||
<xsl:if test="$numMonths > 1">
|
||||
<xsl:text>s</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="$numDays > 0">
|
||||
<xsl:text> and</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:if test="$numDays > 0">
|
||||
<xsl:sequence select="$numDays"/>
|
||||
<xsl:text>day</xsl:text>
|
||||
<xsl:if test="$numDays > 1">
|
||||
<xsl:text>s</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
</xsl:function>
|
||||
</xsl:stylesheet>
|
||||
@@ -33,6 +33,12 @@
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="li/p">
|
||||
<fo:block xsl:use-attribute-sets="li">
|
||||
<xsl:apply-templates/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="p" mode="summarytable">
|
||||
<xsl:apply-templates mode="summarytable"/>
|
||||
</xsl:template>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<xsl:import href="att-set.xslt"/>
|
||||
<xsl:import href="block.xslt"/>
|
||||
<xsl:import href="findings.xslt"/>
|
||||
<xsl:import href="auto.xsl"/>
|
||||
<xsl:import href="auto.xslt"/>
|
||||
<xsl:import href="table.xslt"/>
|
||||
<xsl:import href="lists.xslt"/>
|
||||
<xsl:import href="inline.xslt"/>
|
||||
|
||||
189
xml/xslt/generate_contract.xsl
Normal file
189
xml/xslt/generate_contract.xsl
Normal file
@@ -0,0 +1,189 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="xs" version="2.0">
|
||||
|
||||
|
||||
<xsl:import href="pages.xslt"/>
|
||||
<xsl:import href="toc.xslt"/>
|
||||
<xsl:import href="structure.xslt"/>
|
||||
<xsl:import href="att-set.xslt"/>
|
||||
<xsl:import href="block.xslt"/>
|
||||
<xsl:import href="findings.xslt"/>
|
||||
<xsl:import href="auto.xslt"/>
|
||||
<xsl:import href="table.xslt"/>
|
||||
<xsl:import href="lists.xslt"/>
|
||||
<xsl:import href="inline.xslt"/>
|
||||
<xsl:import href="graphics.xslt"/>
|
||||
<xsl:import href="generic.xslt"/>
|
||||
<xsl:import href="numbering.xslt"/>
|
||||
<xsl:import href="localisation.xslt"/>
|
||||
|
||||
<xsl:include href="styles_con.xslt"/>
|
||||
|
||||
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
|
||||
|
||||
|
||||
<!-- ****** AUTO_NUMBERING_FORMAT: value of the <xsl:number> element used for auto numbering -->
|
||||
<xsl:param name="AUTO_NUMBERING_FORMAT" select="'1.1.1'"/>
|
||||
|
||||
|
||||
<xsl:key name="rosid" match="section | finding | appendix | non-finding" use="@id"/>
|
||||
|
||||
|
||||
<xsl:variable name="CLASSES" select="document('../xslt/styles_con.xslt')/*/xsl:attribute-set"/>
|
||||
|
||||
<xsl:variable name="lang" select="/contract/@xml:lang"/>
|
||||
<xsl:variable name="localDateFormat" select="$strdoc/date/format[lang($lang)]"/>
|
||||
<xsl:variable name="fee" select="/contract/meta/contractor/hourly_fee * 1"/>
|
||||
<xsl:variable name="plannedHours" select="/contract/meta/work/planning/hours * 1"/>
|
||||
<xsl:variable name="total_fee" select="$fee * $plannedHours"/>
|
||||
<xsl:variable name="denomination">
|
||||
<xsl:choose>
|
||||
<xsl:when test="/contract/meta/contractor/hourly_fee/@denomination = 'eur'">€</xsl:when>
|
||||
<xsl:when test="/contract/meta/contractor/hourly_fee/@denomination = 'gbp'">£</xsl:when>
|
||||
<xsl:when test="/contract/meta/contractor/hourly_fee/@denomination = 'usd'">$</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:param name="latestVersionDate"><!-- we're not using versions for contracts, but the contract date will do just fine -->
|
||||
<xsl:value-of select="format-date(/contract/meta/work/start_date, '[MNn] [D1], [Y]', 'en', (), ())"/>
|
||||
</xsl:param>
|
||||
|
||||
<!-- ROOT -->
|
||||
<xsl:template match="/">
|
||||
|
||||
<fo:root>
|
||||
|
||||
<xsl:call-template name="layout-master-set"/>
|
||||
<xsl:call-template name="Content"/>
|
||||
|
||||
</fo:root>
|
||||
</xsl:template>
|
||||
|
||||
<!-- OVERRIDES -->
|
||||
|
||||
|
||||
<!-- NO FRONT PAGE FOR META, JUST A HEADER -->
|
||||
<xsl:template match="meta"/>
|
||||
|
||||
|
||||
<!-- TITLES (NO NUMBERING) -->
|
||||
<xsl:template match="title">
|
||||
<xsl:variable name="LEVEL" select="count(ancestor::*) - 1"/>
|
||||
<xsl:variable name="CLASS">
|
||||
<!-- use title-x for all levels -->
|
||||
<xsl:text>title-</xsl:text>
|
||||
<xsl:value-of select="$LEVEL"/>
|
||||
</xsl:variable>
|
||||
|
||||
<fo:block>
|
||||
<xsl:call-template name="use-att-set">
|
||||
<xsl:with-param name="CLASS" select="$CLASS"/>
|
||||
</xsl:call-template>
|
||||
<xsl:apply-templates/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- TITLES (ALL CAPS) -->
|
||||
<xsl:template match="title/text()">
|
||||
<xsl:value-of select="upper-case(.)"/>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template match="generate_contract_signature_box">
|
||||
<fo:block keep-together.within-page="always" xsl:use-attribute-sets="signaturebox">
|
||||
<fo:block>
|
||||
<fo:table width="100%" table-layout="fixed" xsl:use-attribute-sets="borders">
|
||||
<fo:table-column column-width="proportional-column-width(50)"
|
||||
xsl:use-attribute-sets="borders"/>
|
||||
<fo:table-column column-width="proportional-column-width(50)"
|
||||
xsl:use-attribute-sets="borders"/>
|
||||
<fo:table-body>
|
||||
<fo:table-row>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block><xsl:value-of
|
||||
select="/contract/meta/contractor/city"/>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block><xsl:value-of
|
||||
select="/*/meta/company/city"/>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
</fo:table-row>
|
||||
<fo:table-row>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block> </fo:block>
|
||||
<fo:block> </fo:block>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block> </fo:block>
|
||||
<fo:block> </fo:block>
|
||||
</fo:table-cell>
|
||||
</fo:table-row>
|
||||
<fo:table-row>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block><xsl:value-of
|
||||
select="/*/meta/contractor/name"/></fo:block>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block><xsl:value-of select="/*/meta/company/legal_rep"/></fo:block>
|
||||
</fo:table-cell>
|
||||
</fo:table-row>
|
||||
<fo:table-row>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block/>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell xsl:use-attribute-sets="td">
|
||||
<fo:block xsl:use-attribute-sets="bold"><xsl:value-of select="/*/meta/company/full_name"/>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
</fo:table-row>
|
||||
</fo:table-body>
|
||||
</fo:table>
|
||||
</fo:block>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="page_header">
|
||||
<fo:static-content flow-name="region-before-cover" xsl:use-attribute-sets="HeaderFont">
|
||||
<fo:block>
|
||||
<fo:table width="100%" table-layout="fixed">
|
||||
<fo:table-column column-width="proportional-column-width(40)"/>
|
||||
<fo:table-column column-width="proportional-column-width(20)"/>
|
||||
<fo:table-column column-width="proportional-column-width(40)"/>
|
||||
<fo:table-body>
|
||||
<fo:table-row>
|
||||
<fo:table-cell text-align="right" display-align="after" padding-bottom="5mm">
|
||||
<fo:block xsl:use-attribute-sets="TinyFont">
|
||||
<fo:block xsl:use-attribute-sets="bold orange-text"><xsl:value-of select="/*/meta/company/full_name"/></fo:block>
|
||||
<fo:block><xsl:value-of select="/*/meta/company/address"/></fo:block>
|
||||
<fo:block><xsl:value-of select="/*/meta/company/postal_code"/> <xsl:value-of select="/*/meta/company/city"/></fo:block>
|
||||
<fo:block><xsl:value-of select="/*/meta/company/country"/></fo:block>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell text-align="center">
|
||||
<fo:block><fo:external-graphic xsl:use-attribute-sets="logo"/></fo:block>
|
||||
</fo:table-cell>
|
||||
<fo:table-cell display-align="after" padding-bottom="5mm">
|
||||
<fo:block xsl:use-attribute-sets="TinyFont">
|
||||
<fo:block xsl:use-attribute-sets="bold orange-text"><xsl:value-of select="/*/meta/company/website"/></fo:block>
|
||||
<fo:block><xsl:value-of select="/*/meta/company/email"/></fo:block>
|
||||
<fo:block>Chamber of Commerce <xsl:value-of select="/*/meta/company/coc"/></fo:block>
|
||||
<fo:block>VAT number <xsl:value-of select="/*/meta/company/vat_no"/></fo:block>
|
||||
</fo:block>
|
||||
</fo:table-cell>
|
||||
</fo:table-row>
|
||||
</fo:table-body>
|
||||
</fo:table>
|
||||
</fo:block>
|
||||
</fo:static-content>
|
||||
<fo:static-content flow-name="region-before-content" xsl:use-attribute-sets="HeaderFont">
|
||||
<fo:block xsl:use-attribute-sets="header">
|
||||
<xsl:value-of select="/pentest_report/meta/classification"/>
|
||||
</fo:block>
|
||||
</fo:static-content>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -11,7 +11,7 @@
|
||||
<xsl:import href="att-set.xslt"/>
|
||||
<xsl:import href="block.xslt"/>
|
||||
<xsl:import href="findings.xslt"/>
|
||||
<xsl:import href="auto.xsl"/>
|
||||
<xsl:import href="auto.xslt"/>
|
||||
<xsl:import href="table.xslt"/>
|
||||
<xsl:import href="lists.xslt"/>
|
||||
<xsl:import href="inline.xslt"/>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<xsl:import href="att-set.xslt"/>
|
||||
<xsl:import href="block.xslt"/>
|
||||
<xsl:import href="findings.xslt"/>
|
||||
<xsl:import href="auto.xsl"/>
|
||||
<xsl:import href="auto.xslt"/>
|
||||
<xsl:import href="table.xslt"/>
|
||||
<xsl:import href="lists.xslt"/>
|
||||
<xsl:import href="inline.xslt"/>
|
||||
@@ -270,7 +270,7 @@
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="page_header">
|
||||
<fo:static-content flow-name="region-before" xsl:use-attribute-sets="HeaderFont">
|
||||
<fo:static-content flow-name="region-before-content" xsl:use-attribute-sets="HeaderFont">
|
||||
<fo:block>
|
||||
<fo:table width="100%" table-layout="fixed">
|
||||
<fo:table-column column-width="proportional-column-width(40)"/>
|
||||
@@ -305,7 +305,7 @@
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="page_footer">
|
||||
<fo:static-content flow-name="region-after" xsl:use-attribute-sets="FooterFont">
|
||||
<fo:static-content flow-name="region-after-content" xsl:use-attribute-sets="FooterFont">
|
||||
<fo:block xsl:use-attribute-sets="footer">
|
||||
<fo:inline xsl:use-attribute-sets="TinyFont orange-text">Please keep digital unless absolutely required. Read the (unique) terms and conditions of Radically Open Security at: https://radicallyopensecurity.com/TermsandConditions.pdf</fo:inline>
|
||||
</fo:block>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<xsl:import href="att-set.xslt"/>
|
||||
<xsl:import href="block.xslt"/>
|
||||
<xsl:import href="findings.xslt"/>
|
||||
<xsl:import href="auto.xsl"/>
|
||||
<xsl:import href="auto.xslt"/>
|
||||
<xsl:import href="table.xslt"/>
|
||||
<xsl:import href="lists.xslt"/>
|
||||
<xsl:import href="inline.xslt"/>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<xsl:import href="att-set.xslt"/>
|
||||
<xsl:import href="block.xslt"/>
|
||||
<xsl:import href="findings.xslt"/>
|
||||
<xsl:import href="auto.xsl"/>
|
||||
<xsl:import href="auto.xslt"/>
|
||||
<xsl:import href="table.xslt"/>
|
||||
<xsl:import href="lists.xslt"/>
|
||||
<xsl:import href="inline.xslt"/>
|
||||
|
||||
280
xml/xslt/info2contract.xsl
Normal file
280
xml/xslt/info2contract.xsl
Normal file
@@ -0,0 +1,280 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
|
||||
|
||||
<xsl:import href="localisation.xslt"/>
|
||||
|
||||
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
|
||||
|
||||
<xsl:variable name="lang" select="/contract_info/@xml:lang"/>
|
||||
<xsl:param name="latestVersionDate"><!-- we're not using versions for contracts, but the contract date will do just fine -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="normalize-space(/contract_info/work/start_date)">
|
||||
<!-- we have a start date element and it contains information -->
|
||||
<xsl:value-of
|
||||
select="format-date(/contract_info/work/start_date, '[MNn] [D1], [Y]', 'en', (), ())"
|
||||
/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="format-date(current-date(), '[MNn] [D1], [Y]', 'en', (), ())"/>
|
||||
<!-- no start date, using today's date -->
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:param>
|
||||
|
||||
<!-- ROOT -->
|
||||
<xsl:template match="/">
|
||||
|
||||
<contract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="../dtd/contract.xsd"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<xsl:attribute name="xml:lang" select="/contract_info/@xml:lang"/>
|
||||
<meta>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">snippets/company_info.xml</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:copy-of select="contract_info/company/following-sibling::node()"/>
|
||||
</meta>
|
||||
|
||||
|
||||
<section>
|
||||
<title>
|
||||
<xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'contract_title'"/>
|
||||
</xsl:call-template>
|
||||
</title>
|
||||
<xsl:comment>Whereas section</xsl:comment>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart">parties</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<p>WHEREAS:</p>
|
||||
<ol type="A">
|
||||
<xsl:if test="/contract_info/scope/contract_type = 'single_engagement'">
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>wa_companywants</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>wa_companyhasasked</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>wa_contractorcan</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>wa_noemploymentintention</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</ol>
|
||||
<xsl:comment>Agreement section</xsl:comment>
|
||||
<section>
|
||||
<title>AGREE AS FOLLOWS</title>
|
||||
<ol type="1">
|
||||
<xsl:if test="/contract_info/scope/contract_type = 'fixed_term'">
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_period</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_noemployment</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_companyinstructs</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:if test="/contract_info/scope/contract_type = 'single_engagement'">
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_worktime</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart">ag_ownrisk</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:if test="/contract_info/scope/contract_type = 'fixed_term'">
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_workinghours</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart">ag_payment</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:if test="/contract_info/scope/contract_type = 'single_engagement'">
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_biggerscopewarning</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_propertyrights</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_retainrights</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_nondisclosure</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_responsibilities</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_thirdparty</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_liability</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_provisions</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart"
|
||||
>ag_generaltermsandconditions</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name="xi:include">
|
||||
<xsl:attribute name="href">
|
||||
<xsl:call-template name="docCheck">
|
||||
<xsl:with-param name="fileNamePart">ag_law</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</ol>
|
||||
</section>
|
||||
<section>
|
||||
<title>
|
||||
<xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'signed_dupe'"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'waiver_signed_on'"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="$latestVersionDate"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="getString">
|
||||
<xsl:with-param name="stringID" select="'waiver_signed_in'"/>
|
||||
</xsl:call-template>
|
||||
</title>
|
||||
<generate_contract_signature_box/>
|
||||
</section>
|
||||
</section>
|
||||
</contract>
|
||||
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="docCheck">
|
||||
<xsl:param name="fileNamePart" select="'none'"/>
|
||||
<xsl:param name="typeSuffix">
|
||||
<xsl:value-of select="/contract_info/scope/contract_type"/>
|
||||
</xsl:param>
|
||||
<xsl:param name="fileNameStandard"
|
||||
select="concat('snippets/contract/', $lang, '/', $fileNamePart, '.xml')"/>
|
||||
<xsl:param name="fileNameExtended"
|
||||
select="concat('snippets/contract/', $lang, '/', $fileNamePart, '_', $typeSuffix, '.xml')"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="doc-available(concat('../source/', $fileNameExtended))">
|
||||
<xsl:value-of select="$fileNameExtended"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$fileNameStandard"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
@@ -9,15 +9,15 @@
|
||||
<fo:layout-master-set>
|
||||
<!-- first page -->
|
||||
<fo:simple-page-master master-name="Cover" xsl:use-attribute-sets="PortraitPage">
|
||||
<fo:region-body region-name="region-body" xsl:use-attribute-sets="region-body"/>
|
||||
<fo:region-before region-name="region-before" xsl:use-attribute-sets="region-before"/>
|
||||
<fo:region-after region-name="region-after" xsl:use-attribute-sets="region-after"/>
|
||||
<fo:region-body region-name="region-body" xsl:use-attribute-sets="region-body-cover"/>
|
||||
<fo:region-before region-name="region-before-cover" xsl:use-attribute-sets="region-before-cover"/>
|
||||
<fo:region-after region-name="region-after-cover" xsl:use-attribute-sets="region-after-cover"/>
|
||||
</fo:simple-page-master>
|
||||
<!-- all other pages -->
|
||||
<fo:simple-page-master master-name="Content" xsl:use-attribute-sets="PortraitPage">
|
||||
<fo:region-body region-name="region-body" xsl:use-attribute-sets="region-body"/>
|
||||
<fo:region-before region-name="region-before" xsl:use-attribute-sets="region-before"/>
|
||||
<fo:region-after region-name="region-after" xsl:use-attribute-sets="region-after"/>
|
||||
<fo:region-body region-name="region-body" xsl:use-attribute-sets="region-body-content"/>
|
||||
<fo:region-before region-name="region-before-content" xsl:use-attribute-sets="region-before-content"/>
|
||||
<fo:region-after region-name="region-after-content" xsl:use-attribute-sets="region-after-content"/>
|
||||
</fo:simple-page-master>
|
||||
<!-- sequence master -->
|
||||
<fo:page-sequence-master master-name="Report">
|
||||
@@ -35,9 +35,9 @@
|
||||
<!-- Main Page layout structure -->
|
||||
<fo:layout-master-set>
|
||||
<fo:simple-page-master master-name="Content" xsl:use-attribute-sets="PortraitPage">
|
||||
<fo:region-body region-name="region-body" xsl:use-attribute-sets="region-body"/>
|
||||
<fo:region-before region-name="region-before" xsl:use-attribute-sets="region-before"/>
|
||||
<fo:region-after region-name="region-after" xsl:use-attribute-sets="region-after"/>
|
||||
<fo:region-body region-name="region-body-content" xsl:use-attribute-sets="region-body-content"/>
|
||||
<fo:region-before region-name="region-before" xsl:use-attribute-sets="region-before-content"/>
|
||||
<fo:region-after region-name="region-after-content" xsl:use-attribute-sets="region-after-content"/>
|
||||
</fo:simple-page-master>
|
||||
<!-- sequence master -->
|
||||
<fo:page-sequence-master master-name="Invoice">
|
||||
@@ -50,7 +50,12 @@
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="page_header">
|
||||
<fo:static-content flow-name="region-before" xsl:use-attribute-sets="HeaderFont">
|
||||
<fo:static-content flow-name="region-before-cover" xsl:use-attribute-sets="HeaderFont">
|
||||
<fo:block xsl:use-attribute-sets="header">
|
||||
<xsl:value-of select="/pentest_report/meta/classification"/>
|
||||
</fo:block>
|
||||
</fo:static-content>
|
||||
<fo:static-content flow-name="region-before-content" xsl:use-attribute-sets="HeaderFont">
|
||||
<fo:block xsl:use-attribute-sets="header">
|
||||
<xsl:value-of select="/pentest_report/meta/classification"/>
|
||||
</fo:block>
|
||||
@@ -58,7 +63,16 @@
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="page_footer">
|
||||
<fo:static-content flow-name="region-after" xsl:use-attribute-sets="FooterFont">
|
||||
<fo:static-content flow-name="region-after-cover" xsl:use-attribute-sets="FooterFont">
|
||||
<fo:block xsl:use-attribute-sets="footer">
|
||||
<fo:page-number/>/<fo:page-number-citation ref-id="EndOfDoc"/>
|
||||
<fo:leader leader-pattern="space"/>
|
||||
<fo:inline xsl:use-attribute-sets="TinyFont"><xsl:value-of
|
||||
select="*/meta/company/full_name"/> - Chamber of Commerce
|
||||
<xsl:value-of select="*/meta/company/coc"/></fo:inline>
|
||||
</fo:block>
|
||||
</fo:static-content>
|
||||
<fo:static-content flow-name="region-after-content" xsl:use-attribute-sets="FooterFont">
|
||||
<fo:block xsl:use-attribute-sets="footer">
|
||||
<fo:page-number/>/<fo:page-number-citation ref-id="EndOfDoc"/>
|
||||
<fo:leader leader-pattern="space"/>
|
||||
@@ -75,7 +89,7 @@
|
||||
<xsl:call-template name="page_footer"/>
|
||||
<fo:flow flow-name="region-body" xsl:use-attribute-sets="DefaultFont">
|
||||
<fo:block>
|
||||
<xsl:apply-templates select="pentest_report|offerte|quickscope|generic_document"/>
|
||||
<xsl:apply-templates select="pentest_report|offerte|quickscope|generic_document|contract"/>
|
||||
</fo:block>
|
||||
<fo:block id="EndOfDoc"/>
|
||||
</fo:flow>
|
||||
|
||||
@@ -162,15 +162,28 @@
|
||||
<xsl:attribute name="page-height">29.7cm</xsl:attribute>
|
||||
<xsl:attribute name="page-width">21.0cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-body">
|
||||
<xsl:attribute-set name="region-body-cover">
|
||||
<xsl:attribute name="margin-top">1cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-before">
|
||||
<xsl:attribute-set name="region-before-cover">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-after">
|
||||
<xsl:attribute-set name="region-after-cover">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
<xsl:attribute name="padding">0</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-body-content">
|
||||
<xsl:attribute name="margin-top">1cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-before-content">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-after-content">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
<xsl:attribute name="padding">0</xsl:attribute>
|
||||
@@ -193,15 +206,6 @@
|
||||
<xsl:attribute name="text-align">center</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom" select="$small-space"/>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="logo">
|
||||
<xsl:attribute name="padding-top">2cm</xsl:attribute>
|
||||
<xsl:attribute name="padding-bottom">3cm</xsl:attribute>
|
||||
<xsl:attribute name="src">url(../graphics/logo.png)</xsl:attribute>
|
||||
<xsl:attribute name="width">70mm</xsl:attribute>
|
||||
<xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
|
||||
<xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
|
||||
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- tables -->
|
||||
<xsl:attribute-set name="borders">
|
||||
|
||||
195
xml/xslt/styles_con.xslt
Normal file
195
xml/xslt/styles_con.xslt
Normal file
@@ -0,0 +1,195 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
exclude-result-prefixes="xs" xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="2.0">
|
||||
|
||||
<xsl:import href="styles.xslt"/>
|
||||
|
||||
<!-- variables -->
|
||||
|
||||
<xsl:variable name="medium-space">10pt</xsl:variable>
|
||||
|
||||
|
||||
|
||||
<!-- Text -->
|
||||
|
||||
<xsl:attribute-set name="title" use-attribute-sets="bold">
|
||||
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
|
||||
<xsl:attribute name="text-align">center</xsl:attribute>
|
||||
<xsl:attribute name="color">white</xsl:attribute>
|
||||
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
||||
<xsl:attribute name="text-transform">uppercase</xsl:attribute>
|
||||
<!-- letter spacing is dodgy in fop when there are certain characters in the string (e.g. a 'V'); commenting this out until that is fixed -->
|
||||
<!-- it's also dodgy in combination with centered text, btw -->
|
||||
<!--<xsl:attribute name="letter-spacing.precedence">0</xsl:attribute>
|
||||
<xsl:attribute name="letter-spacing.optimum">3mm</xsl:attribute>
|
||||
<xsl:attribute name="letter-spacing.minimum">3mm</xsl:attribute>
|
||||
<xsl:attribute name="letter-spacing.maximum">3mm</xsl:attribute>-->
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="title-0" use-attribute-sets="title">
|
||||
<xsl:attribute name="font-size">18pt</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
<xsl:attribute name="background-color">#FF5C00</xsl:attribute>
|
||||
<xsl:attribute name="text-transform">uppercase</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="title-1" use-attribute-sets="title">
|
||||
<xsl:attribute name="font-size">18pt</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
<xsl:attribute name="background-color">#FF5C00</xsl:attribute>
|
||||
<xsl:attribute name="text-transform">uppercase</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="title-2" use-attribute-sets="title">
|
||||
<xsl:attribute name="font-style">italic</xsl:attribute>
|
||||
<xsl:attribute name="font-size">14pt</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">0.8cm</xsl:attribute>
|
||||
<xsl:attribute name="background-color">#999999</xsl:attribute>
|
||||
<xsl:attribute name="text-transform">uppercase</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="title-3" use-attribute-sets="title">
|
||||
<xsl:attribute name="font-size">14pt</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">0.8cm</xsl:attribute>
|
||||
<xsl:attribute name="background-color">#999999</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="title-4" use-attribute-sets="title">
|
||||
<xsl:attribute name="margin-bottom">5pt</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="title-client" use-attribute-sets="title-0">
|
||||
<xsl:attribute name="background-color">#999999</xsl:attribute>
|
||||
<xsl:attribute name="text-transform">uppercase</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="for">
|
||||
<xsl:attribute name="font-size">16pt</xsl:attribute>
|
||||
<xsl:attribute name="text-align">center</xsl:attribute>
|
||||
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="p">
|
||||
<xsl:attribute name="margin-bottom">
|
||||
<xsl:value-of select="$medium-space"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="line-height">18pt</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="list" use-attribute-sets="p"/>
|
||||
<xsl:attribute-set name="last">
|
||||
<xsl:attribute name="margin-bottom">
|
||||
<xsl:value-of select="$very-large-space"/>
|
||||
</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="pre" use-attribute-sets="borders TableFont">
|
||||
<xsl:attribute name="border-style">double</xsl:attribute>
|
||||
<xsl:attribute name="border-width">2pt</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">
|
||||
<xsl:value-of select="$medium-space"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="white-space-collapse">false</xsl:attribute>
|
||||
<xsl:attribute name="linefeed-treatment">preserve</xsl:attribute>
|
||||
<xsl:attribute name="white-space-treatment">preserve</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="code" use-attribute-sets="borders pre">
|
||||
<xsl:attribute name="font-family">LiberationMono</xsl:attribute>
|
||||
<xsl:attribute name="font-size">9pt</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="finding-meta">
|
||||
<xsl:attribute name="margin-bottom" select="$small-space"/>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Pages -->
|
||||
<xsl:attribute-set name="PortraitPage">
|
||||
<xsl:attribute name="margin-top">0.5cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1.5cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-left">1.5cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-right">1.5cm</xsl:attribute>
|
||||
<xsl:attribute name="page-height">29.7cm</xsl:attribute>
|
||||
<xsl:attribute name="page-width">21.0cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-body-cover">
|
||||
<xsl:attribute name="margin-top">3.6cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-before-cover">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">2.7cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-after-cover">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
<xsl:attribute name="padding">0</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-body-content">
|
||||
<xsl:attribute name="margin-top">2cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-before-content">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-after-content">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
<xsl:attribute name="padding">0</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="header">
|
||||
<xsl:attribute name="text-align">right</xsl:attribute>
|
||||
<xsl:attribute name="font-weight">normal</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="footer">
|
||||
<xsl:attribute name="text-align">center</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="logo">
|
||||
<xsl:attribute name="padding-top">0cm</xsl:attribute>
|
||||
<xsl:attribute name="padding-bottom">0cm</xsl:attribute>
|
||||
<xsl:attribute name="src">url(../graphics/logo_alt.png)</xsl:attribute>
|
||||
<xsl:attribute name="width">30mm</xsl:attribute>
|
||||
<xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
|
||||
<xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
|
||||
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- colors -->
|
||||
<xsl:attribute-set name="bg-orange">
|
||||
<xsl:attribute name="background-color">#FF5C00</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- graphics -->
|
||||
<xsl:attribute-set name="graphics-block">
|
||||
<xsl:attribute name="text-align">center</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom" select="$small-space"/>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- tables -->
|
||||
<xsl:attribute-set name="borders">
|
||||
<xsl:attribute name="border-width">
|
||||
<xsl:value-of select="$border-width"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="border-style">
|
||||
<xsl:value-of select="$border-style"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="border-color">
|
||||
<xsl:value-of select="$border-color"/>
|
||||
</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="th" use-attribute-sets="td bg-orange"/>
|
||||
<xsl:attribute-set name="td">
|
||||
<xsl:attribute name="padding">2pt</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="table">
|
||||
<xsl:attribute name="margin-bottom" select="$small-space"/>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- lists -->
|
||||
<xsl:attribute-set name="li">
|
||||
<xsl:attribute name="margin-bottom" select="$small-space"/>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- ToC -->
|
||||
<xsl:attribute-set name="index" use-attribute-sets="break-after"/>
|
||||
|
||||
<!-- Breaks -->
|
||||
<xsl:attribute-set name="break-before">
|
||||
<xsl:attribute name="break-before">page</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="break-after">
|
||||
<xsl:attribute name="break-after">page</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
</xsl:stylesheet>
|
||||
@@ -61,6 +61,15 @@
|
||||
<xsl:attribute-set name="toc-block">
|
||||
<xsl:attribute name="background-color">orange</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="logo">
|
||||
<xsl:attribute name="padding-top">2cm</xsl:attribute>
|
||||
<xsl:attribute name="padding-bottom">3cm</xsl:attribute>
|
||||
<xsl:attribute name="src">url(../graphics/logo.png)</xsl:attribute>
|
||||
<xsl:attribute name="width">70mm</xsl:attribute>
|
||||
<xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
|
||||
<xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
|
||||
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
|
||||
<!-- colors -->
|
||||
|
||||
@@ -103,15 +103,28 @@
|
||||
<xsl:attribute name="page-height">29.7cm</xsl:attribute>
|
||||
<xsl:attribute name="page-width">21.0cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-body">
|
||||
<xsl:attribute-set name="region-body-cover">
|
||||
<xsl:attribute name="margin-top">1cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-before">
|
||||
<xsl:attribute-set name="region-before-cover">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-after">
|
||||
<xsl:attribute-set name="region-after-cover">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
<xsl:attribute name="padding">0</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-body-content">
|
||||
<xsl:attribute name="margin-top">1cm</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-before-content">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="region-after-content">
|
||||
<xsl:attribute name="precedence">true</xsl:attribute>
|
||||
<xsl:attribute name="extent">0.6cm</xsl:attribute>
|
||||
<xsl:attribute name="padding">0</xsl:attribute>
|
||||
|
||||
@@ -61,6 +61,15 @@
|
||||
<xsl:attribute-set name="toc-block">
|
||||
<xsl:attribute name="background-color">orange</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="logo">
|
||||
<xsl:attribute name="padding-top">2cm</xsl:attribute>
|
||||
<xsl:attribute name="padding-bottom">3cm</xsl:attribute>
|
||||
<xsl:attribute name="src">url(../graphics/logo.png)</xsl:attribute>
|
||||
<xsl:attribute name="width">70mm</xsl:attribute>
|
||||
<xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
|
||||
<xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
|
||||
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
|
||||
<!-- colors -->
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<xsl:import href="att-set.xslt"/>
|
||||
<xsl:import href="block.xslt"/>
|
||||
<xsl:import href="findings.xslt"/>
|
||||
<xsl:import href="auto.xsl"/>
|
||||
<xsl:import href="auto.xslt"/>
|
||||
<xsl:import href="table.xslt"/>
|
||||
<xsl:import href="lists.xslt"/>
|
||||
<xsl:import href="inline.xslt"/>
|
||||
|
||||
Reference in New Issue
Block a user