@@ -8,7 +8,6 @@
|
|||||||
"Atomics": "readonly",
|
"Atomics": "readonly",
|
||||||
"SharedArrayBuffer": "readonly"
|
"SharedArrayBuffer": "readonly"
|
||||||
},
|
},
|
||||||
|
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 2018,
|
"ecmaVersion": 2018,
|
||||||
"sourceType": "module"
|
"sourceType": "module"
|
||||||
|
|||||||
1
.vscode/launch.json
vendored
@@ -8,7 +8,6 @@
|
|||||||
"type": "pwa-chrome",
|
"type": "pwa-chrome",
|
||||||
"webRoot": "${workspaceFolder}/client/src"
|
"webRoot": "${workspaceFolder}/client/src"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "Chrome",
|
"name": "Chrome",
|
||||||
"type": "chrome",
|
"type": "chrome",
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ npx deadfile ./src/index.js --exclude build templates
|
|||||||
|
|
||||||
#Crushing all hasura migrations by creating a new initialization from the server.
|
#Crushing all hasura migrations by creating a new initialization from the server.
|
||||||
hasura migrate create "Init" --from-server --endpoint https://db.imex.online/ --admin-secret 'Production-ImEXOnline!@#'
|
hasura migrate create "Init" --from-server --endpoint https://db.imex.online/ --admin-secret 'Production-ImEXOnline!@#'
|
||||||
hasura migrate apply --version "1620771761757" --skip-execution --endpoint https://db.imex.online/ --admin-secret 'Production-ImEXOnline!@#'
|
hasura migrate apply --version "1620771761757" --skip-execution --endpoint https://db.imex.online/ --admin-secret '
|
||||||
|
Production-ImEXOnline!@#'
|
||||||
hasura migrate status --endpoint https://db.imex.online/ --admin-secret 'Production-ImEXOnline!@#'
|
hasura migrate status --endpoint https://db.imex.online/ --admin-secret 'Production-ImEXOnline!@#'
|
||||||
|
|
||||||
Generate the license file:
|
Generate the license file:
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
Ensure following environment variables are set:
|
Ensure following environment variables are set:
|
||||||
|
|
||||||
__S3 Related__
|
__S3 Related__
|
||||||
|
|||||||
@@ -16,9 +16,11 @@ jsreport configure
|
|||||||
|
|
||||||
sudo apt-get install -y libgconf-2-4
|
sudo apt-get install -y libgconf-2-4
|
||||||
sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
|
sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
|
||||||
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
|
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >>
|
||||||
|
/etc/apt/sources.list.d/google.list'
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst --no-install-recommends
|
sudo apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst
|
||||||
|
--no-install-recommends
|
||||||
|
|
||||||
# on ubuntu 20 run also
|
# on ubuntu 20 run also
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,9 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
_I recommend [Mrm](https://github.com/sapegin/mrm-tasks/tree/master/packages/mrm-task-jest) and [jest-codemods](https://github.com/skovhus/jest-codemods) for single-command Jest installation and easy migration from other frameworks._
|
_I recommend [Mrm](https://github.com/sapegin/mrm-tasks/tree/master/packages/mrm-task-jest)
|
||||||
|
and [jest-codemods](https://github.com/skovhus/jest-codemods) for single-command Jest installation and easy migration
|
||||||
|
from other frameworks._
|
||||||
|
|
||||||
<!-- To reformat run: npx prettier --print-width 100 --single-quote --no-semi --prose-wrap never --write Readme.md -->
|
<!-- To reformat run: npx prettier --print-width 100 --single-quote --no-semi --prose-wrap never --write Readme.md -->
|
||||||
|
|
||||||
@@ -205,8 +207,8 @@ expect(fn.mock.calls[0][0]).toBe(2) // fn.mock.calls[0][0] — the first argumen
|
|||||||
- `nthCalledWith` → `toHaveBeenNthCalledWith`
|
- `nthCalledWith` → `toHaveBeenNthCalledWith`
|
||||||
- `toReturnTimes` → `toHaveReturnedTimes`
|
- `toReturnTimes` → `toHaveReturnedTimes`
|
||||||
- `toReturnWith` → `toHaveReturnedWith`
|
- `toReturnWith` → `toHaveReturnedWith`
|
||||||
- `lastReturnedWith` → `toHaveLastReturnedWith`
|
- `lastReturnedWith`→ `toHaveLastReturnedWith`
|
||||||
- `nthReturnedWith` → `toHaveNthReturnedWith`
|
- `nthReturnedWith` →`toHaveNthReturnedWith`
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### Misc
|
### Misc
|
||||||
@@ -244,7 +246,8 @@ test('resolve to lemon', async () => {
|
|||||||
|
|
||||||
See [more examples](https://facebook.github.io/jest/docs/en/tutorial-async.html) in Jest docs.
|
See [more examples](https://facebook.github.io/jest/docs/en/tutorial-async.html) in Jest docs.
|
||||||
|
|
||||||
It’s a good practice to specify a number of expected assertions in async tests, so the test will fail if your assertions weren’t called at all.
|
It’s a good practice to specify a number of expected assertions in async tests, so the test will fail if your assertions
|
||||||
|
weren’t called at all.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
test('async test', () => {
|
test('async test', () => {
|
||||||
@@ -343,7 +346,8 @@ jest.mock('lodash/memoize', () => a => a, { virtual: true }) // The original lod
|
|||||||
|
|
||||||
[jest.mock docs](https://facebook.github.io/jest/docs/jest-object.html#jestmockmodulename-factory-options)
|
[jest.mock docs](https://facebook.github.io/jest/docs/jest-object.html#jestmockmodulename-factory-options)
|
||||||
|
|
||||||
> Note: When using `babel-jest`, calls to `jest.mock` will automatically be hoisted to the top of the code block. Use `jest.doMock` if you want to explicitly avoid this behavior.
|
> Note: When using `babel-jest`, calls to `jest.mock` will automatically be hoisted to the top of the code block.
|
||||||
|
> Use `jest.doMock` if you want to explicitly avoid this behavior.
|
||||||
|
|
||||||
### Mock modules using a mock file
|
### Mock modules using a mock file
|
||||||
|
|
||||||
@@ -359,7 +363,8 @@ jest.mock('lodash/memoize', () => a => a, { virtual: true }) // The original lod
|
|||||||
jest.mock('lodash/memoize')
|
jest.mock('lodash/memoize')
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note: When using `babel-jest`, calls to `jest.mock` will automatically be hoisted to the top of the code block. Use `jest.doMock` if you want to explicitly avoid this behavior.
|
> Note: When using `babel-jest`, calls to `jest.mock` will automatically be hoisted to the top of the code block.
|
||||||
|
> Use `jest.doMock` if you want to explicitly avoid this behavior.
|
||||||
|
|
||||||
[Manual mocks docs](https://facebook.github.io/jest/docs/manual-mocks.html)
|
[Manual mocks docs](https://facebook.github.io/jest/docs/manual-mocks.html)
|
||||||
|
|
||||||
@@ -407,7 +412,7 @@ fn.mockReset() // Clears and removes any mocked return values or implementations
|
|||||||
fn.mockRestore() // Resets and restores the initial implementation
|
fn.mockRestore() // Resets and restores the initial implementation
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note: `mockRestore` works only with mocks created by `jest.spyOn`.
|
> Note: `mockRestore`works only with mocks created by `jest.spyOn`.
|
||||||
|
|
||||||
For all mocks:
|
For all mocks:
|
||||||
|
|
||||||
@@ -427,7 +432,8 @@ const fs = require.requireActual('fs') // Original module
|
|||||||
|
|
||||||
### Timer mocks
|
### Timer mocks
|
||||||
|
|
||||||
Write synchronous test for code that uses native timer functions (`setTimeout`, `setInterval`, `clearTimeout`, `clearInterval`).
|
Write synchronous test for code that uses native timer
|
||||||
|
functions (`setTimeout`, `setInterval`, `clearTimeout`, `clearInterval`).
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// Enable fake timers
|
// Enable fake timers
|
||||||
@@ -501,7 +507,8 @@ tests.only('make each pony pink'...
|
|||||||
|
|
||||||
## Testing modules with side effects
|
## Testing modules with side effects
|
||||||
|
|
||||||
Node.js and Jest will cache modules you `require`. To test modules with side effects you’ll need to reset the module registry between tests:
|
Node.js and Jest will cache modules you `require`. To test modules with side effects you’ll need to reset the module
|
||||||
|
registry between tests:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const modulePath = '../module-to-test'
|
const modulePath = '../module-to-test'
|
||||||
@@ -525,7 +532,8 @@ test('second text', () => {
|
|||||||
|
|
||||||
## Usage with Babel and TypeScript
|
## Usage with Babel and TypeScript
|
||||||
|
|
||||||
Add [babel-jest](https://github.com/facebook/jest/tree/master/packages/babel-jest) or [ts-jest](https://github.com/kulshekhar/ts-jest). Check their docs for installation instructions.
|
Add [babel-jest](https://github.com/facebook/jest/tree/master/packages/babel-jest)
|
||||||
|
or [ts-jest](https://github.com/kulshekhar/ts-jest). Check their docs for installation instructions.
|
||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
@@ -536,10 +544,14 @@ Add [babel-jest](https://github.com/facebook/jest/tree/master/packages/babel-jes
|
|||||||
- [Effective Snapshot Testing](https://blog.kentcdodds.com/effective-snapshot-testing-e0d1a2c28eca) by Kent C. Dodds
|
- [Effective Snapshot Testing](https://blog.kentcdodds.com/effective-snapshot-testing-e0d1a2c28eca) by Kent C. Dodds
|
||||||
- [Migrating to Jest](https://medium.com/@kentcdodds/migrating-to-jest-881f75366e7e#.pc4s5ut6z) by Kent C. Dodds
|
- [Migrating to Jest](https://medium.com/@kentcdodds/migrating-to-jest-881f75366e7e#.pc4s5ut6z) by Kent C. Dodds
|
||||||
- [Migrating AVA to Jest](http://browniefed.com/blog/migrating-ava-to-jest/) by Jason Brown
|
- [Migrating AVA to Jest](http://browniefed.com/blog/migrating-ava-to-jest/) by Jason Brown
|
||||||
- [How to Test React and MobX with Jest](https://semaphoreci.com/community/tutorials/how-to-test-react-and-mobx-with-jest) by Will Stern
|
- [How to Test React and MobX with Jest](https://semaphoreci.com/community/tutorials/how-to-test-react-and-mobx-with-jest)
|
||||||
- [Testing React Intl components with Jest and Enzyme](https://medium.com/@sapegin/testing-react-intl-components-with-jest-and-enzyme-f9d43d9c923e) by Artem Sapegin
|
by Will Stern
|
||||||
- [Testing with Jest: 15 Awesome Tips and Tricks](https://medium.com/@stipsan/testing-with-jest-15-awesome-tips-and-tricks-42150ec4c262) by Stian Didriksen
|
- [Testing React Intl components with Jest and Enzyme](https://medium.com/@sapegin/testing-react-intl-components-with-jest-and-enzyme-f9d43d9c923e)
|
||||||
- Taking Advantage of Jest Matchers by Ben McCormick: [Part 1](https://benmccormick.org/2017/08/15/jest-matchers-1/), [Part 2](https://benmccormick.org/2017/09/04/jest-matchers-2/)
|
by Artem Sapegin
|
||||||
|
- [Testing with Jest: 15 Awesome Tips and Tricks](https://medium.com/@stipsan/testing-with-jest-15-awesome-tips-and-tricks-42150ec4c262)
|
||||||
|
by Stian Didriksen
|
||||||
|
- Taking Advantage of Jest Matchers by Ben
|
||||||
|
McCormick: [Part 1](https://benmccormick.org/2017/08/15/jest-matchers-1/), [Part 2](https://benmccormick.org/2017/09/04/jest-matchers-2/)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -559,6 +571,8 @@ This software has been developed with lots of coffee, buy me one more cup to kee
|
|||||||
|
|
||||||
## Author and license
|
## Author and license
|
||||||
|
|
||||||
[Artem Sapegin](http://sapegin.me/), a frontend engineer at [Omio](https://omio.com/) and the creator of [React Styleguidist](https://react-styleguidist.js.org/). I also write about frontend at [my blog](https://blog.sapegin.me/).
|
[Artem Sapegin](http://sapegin.me/), a frontend engineer at [Omio](https://omio.com/) and the creator
|
||||||
|
of [React Styleguidist](https://react-styleguidist.js.org/). I also write about frontend
|
||||||
|
at [my blog](https://blog.sapegin.me/).
|
||||||
|
|
||||||
CC0 1.0 Universal license, see the included [License.md](/License.md) file.
|
CC0 1.0 Universal license, see the included [License.md](/License.md) file.
|
||||||
|
|||||||
@@ -46,7 +46,8 @@ $ hasura migrate create "init" --from-server
|
|||||||
## mark the migration as applied on this server
|
## mark the migration as applied on this server
|
||||||
|
|
||||||
$ hasura migrate apply --version "<version>" --skip-execution
|
$ hasura migrate apply --version "<version>" --skip-execution
|
||||||
If you are using schemas other than public, use --schema "schema_name" flag to indicate each one of them in the create command. This flag can be used multiple times. See more details about the usage in the docs.
|
If you are using schemas other than public, use --schema "schema_name" flag to indicate each one of them in the create
|
||||||
|
command. This flag can be used multiple times. See more details about the usage in the docs.
|
||||||
|
|
||||||
Step 4: Verify the status
|
Step 4: Verify the status
|
||||||
Execute the following command to verify status of migration:
|
Execute the following command to verify status of migration:
|
||||||
@@ -54,4 +55,5 @@ Execute the following command to verify status of migration:
|
|||||||
$ hasura migrate status
|
$ hasura migrate status
|
||||||
You have brand new migrations now!
|
You have brand new migrations now!
|
||||||
|
|
||||||
This can also be used to combine (kind of squash) all of your migration files into a single one. You're snapshotting the state of a server and adding it as a new migration.
|
This can also be used to combine (kind of squash) all of your migration files into a single one. You're snapshotting the
|
||||||
|
state of a server and adding it as a new migration.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||||
<xsl:template match="/">
|
<xsl:template match="/">
|
||||||
<xsl:for-each select="//TranslatedData">
|
<xsl:for-each select="//TranslatedData">
|
||||||
<xsl:element name="TranslatedData">
|
<xsl:element name="TranslatedData">
|
||||||
@@ -8,23 +8,23 @@
|
|||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="Details/@PrgID">
|
<xsl:when test="Details/@PrgID">
|
||||||
<xsl:copy-of select="Details" />
|
<xsl:copy-of select="Details"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:element name="Details">
|
<xsl:element name="Details">
|
||||||
<xsl:attribute name="PrgID">OECTrans.ImportTrans</xsl:attribute>
|
<xsl:attribute name="PrgID">OECTrans.ImportTrans</xsl:attribute>
|
||||||
<xsl:for-each select="Details/@*">
|
<xsl:for-each select="Details/@*">
|
||||||
<xsl:copy-of select="." />
|
<xsl:copy-of select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
<xsl:for-each select="Details/*">
|
<xsl:for-each select="Details/*">
|
||||||
<xsl:copy-of select="." />
|
<xsl:copy-of select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
<xsl:element name="Header">
|
<xsl:element name="Header">
|
||||||
<xsl:attribute name="RONum">
|
<xsl:attribute name="RONum">
|
||||||
<xsl:value-of select="//Envelope/@RONum" />
|
<xsl:value-of select="//Envelope/@RONum"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="OwnerFName">
|
<xsl:attribute name="OwnerFName">
|
||||||
<xsl:value-of select="//Admin/@OwnerF"/>
|
<xsl:value-of select="//Admin/@OwnerF"/>
|
||||||
@@ -33,49 +33,49 @@
|
|||||||
<xsl:value-of select="//Admin/@OwnerL"/>
|
<xsl:value-of select="//Admin/@OwnerL"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="VIN">
|
<xsl:attribute name="VIN">
|
||||||
<xsl:value-of select="//Vehicle/@TransVIN" />
|
<xsl:value-of select="//Vehicle/@TransVIN"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Mileage">
|
<xsl:attribute name="Mileage">
|
||||||
<xsl:value-of select="//Vehicle/@TransMileage" />
|
<xsl:value-of select="//Vehicle/@TransMileage"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Year">
|
<xsl:attribute name="Year">
|
||||||
<xsl:value-of select="//Vehicle/@TransYear" />
|
<xsl:value-of select="//Vehicle/@TransYear"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Make">
|
<xsl:attribute name="Make">
|
||||||
<xsl:if test="//Vehicle/@ManufName[. != '']" >
|
<xsl:if test="//Vehicle/@ManufName[. != '']">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Vehicle/@ManufName[. = 'Geo']">CHEV</xsl:when>
|
<xsl:when test="//Vehicle/@ManufName[. = 'Geo']">CHEV</xsl:when>
|
||||||
<xsl:when test="//Vehicle/@ManufName[. = 'Chev-GMC Truck']">CHEV</xsl:when>
|
<xsl:when test="//Vehicle/@ManufName[. = 'Chev-GMC Truck']">CHEV</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Vehicle/@ManufName" />
|
<xsl:value-of select="//Vehicle/@ManufName"/>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="//Vehicle/@ManufName[. = '']" >
|
<xsl:if test="//Vehicle/@ManufName[. = '']">
|
||||||
<xsl:value-of select="//Vehicle/@ManufCode" />
|
<xsl:value-of select="//Vehicle/@ManufCode"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Model">
|
<xsl:attribute name="Model">
|
||||||
<xsl:value-of select="//Vehicle/@TransModel" />
|
<xsl:value-of select="//Vehicle/@TransModel"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Description">
|
<xsl:attribute name="Description">
|
||||||
<xsl:value-of select="//Vehicle/@TransYear" />
|
<xsl:value-of select="//Vehicle/@TransYear"/>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text></xsl:text>
|
||||||
<xsl:value-of select="//Vehicle/@ManufName" />
|
<xsl:value-of select="//Vehicle/@ManufName"/>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text></xsl:text>
|
||||||
<xsl:value-of select="//Vehicle/@TransModel" />
|
<xsl:value-of select="//Vehicle/@TransModel"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LastSupplLevel">
|
<xsl:attribute name="LastSupplLevel">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Envelope/@TransactionType = 'E'">0</xsl:when>
|
<xsl:when test="//Envelope/@TransactionType = 'E'">0</xsl:when>
|
||||||
<xsl:when test="substring(//Envelope/@SupplementNum, 1, 1) = 'S'">
|
<xsl:when test="substring(//Envelope/@SupplementNum, 1, 1) = 'S'">
|
||||||
<xsl:value-of select="substring(//Envelope/@SupplementNum, 2)" />
|
<xsl:value-of select="substring(//Envelope/@SupplementNum, 2)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>0</xsl:otherwise>
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
<xsl:apply-templates select="PartsList" />
|
<xsl:apply-templates select="PartsList"/>
|
||||||
<xsl:element name="Envelope">
|
<xsl:element name="Envelope">
|
||||||
<xsl:element name="Software">
|
<xsl:element name="Software">
|
||||||
<xsl:attribute name="Manifest">Audatex.xml</xsl:attribute>
|
<xsl:attribute name="Manifest">Audatex.xml</xsl:attribute>
|
||||||
@@ -96,10 +96,13 @@
|
|||||||
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateID">
|
<xsl:attribute name="EstimateID">
|
||||||
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of select="//Envelope/@SoftwareVersion"/>-<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of
|
||||||
|
select="//Envelope/@SoftwareVersion"/>-
|
||||||
|
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateIDv2">
|
<xsl:attribute name="EstimateIDv2">
|
||||||
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-
|
||||||
|
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateFormatVersion">
|
<xsl:attribute name="EstimateFormatVersion">
|
||||||
<xsl:value-of select="//Envelope/@EMSVersion"/>
|
<xsl:value-of select="//Envelope/@EMSVersion"/>
|
||||||
@@ -220,7 +223,8 @@
|
|||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-before(//Admin/@InsuranceZip, '-'))=5">
|
<xsl:when test="string-length(substring-before(//Admin/@InsuranceZip, '-'))=5">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-after(//Admin/@InsuranceZip, '-'))=4">
|
<xsl:when
|
||||||
|
test="string-length(substring-after(//Admin/@InsuranceZip, '-'))=4">
|
||||||
<xsl:value-of select="//Admin/@InsuranceZip"/>
|
<xsl:value-of select="//Admin/@InsuranceZip"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
@@ -231,7 +235,8 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin/@InsuranceZip)=9">
|
<xsl:when test="string-length(//Admin/@InsuranceZip)=9">
|
||||||
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>-<xsl:value-of select="substring(//Admin/@InsuranceZip, 6, 4)"/>
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>-
|
||||||
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 6, 4)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin/@InsuranceZip)>4">
|
<xsl:when test="string-length(//Admin/@InsuranceZip)>4">
|
||||||
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>
|
||||||
@@ -244,7 +249,8 @@
|
|||||||
<xsl:attribute name="Phone">
|
<xsl:attribute name="Phone">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsurancePhone1Ext[. != '']">
|
<xsl:when test="//Admin/@InsurancePhone1Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone1"/> x<xsl:value-of select="//Admin/@InsurancePhone1Ext"/>
|
<xsl:value-of select="//Admin/@InsurancePhone1"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsurancePhone1Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone1"/>
|
<xsl:value-of select="//Admin/@InsurancePhone1"/>
|
||||||
@@ -254,7 +260,8 @@
|
|||||||
<xsl:attribute name="Phone2">
|
<xsl:attribute name="Phone2">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsurancePhone2Ext[. != '']">
|
<xsl:when test="//Admin/@InsurancePhone2Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone2"/> x<xsl:value-of select="//Admin/@InsurancePhone2Ext"/>
|
<xsl:value-of select="//Admin/@InsurancePhone2"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsurancePhone2Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone2"/>
|
<xsl:value-of select="//Admin/@InsurancePhone2"/>
|
||||||
@@ -264,7 +271,8 @@
|
|||||||
<xsl:attribute name="Fax">
|
<xsl:attribute name="Fax">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsuranceFaxExt[. != '']">
|
<xsl:when test="//Admin/@InsuranceFaxExt[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsuranceFax"/> x<xsl:value-of select="//Admin/@InsuranceFaxExt"/>
|
<xsl:value-of select="//Admin/@InsuranceFax"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsuranceFaxExt"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsuranceFax"/>
|
<xsl:value-of select="//Admin/@InsuranceFax"/>
|
||||||
@@ -277,7 +285,7 @@
|
|||||||
</xsl:element>
|
</xsl:element>
|
||||||
<xsl:element name="Insured">
|
<xsl:element name="Insured">
|
||||||
<xsl:attribute name="LastName">
|
<xsl:attribute name="LastName">
|
||||||
<xsl:value-of select="//Admin/@InsuranceLName" />
|
<xsl:value-of select="//Admin/@InsuranceLName"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
<xsl:element name="Claim">
|
<xsl:element name="Claim">
|
||||||
@@ -319,7 +327,8 @@
|
|||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-before(//Admin2/@EstimatorZip, '-'))=5">
|
<xsl:when test="string-length(substring-before(//Admin2/@EstimatorZip, '-'))=5">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-after(//Admin2/@EstimatorZip, '-'))=4">
|
<xsl:when
|
||||||
|
test="string-length(substring-after(//Admin2/@EstimatorZip, '-'))=4">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorZip"/>
|
<xsl:value-of select="//Admin2/@EstimatorZip"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
@@ -330,7 +339,8 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin2/@EstimatorZip)=9">
|
<xsl:when test="string-length(//Admin2/@EstimatorZip)=9">
|
||||||
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>-<xsl:value-of select="substring(//Admin2/@EstimatorZip, 6, 4)"/>
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>-
|
||||||
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 6, 4)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin2/@EstimatorZip)>4">
|
<xsl:when test="string-length(//Admin2/@EstimatorZip)>4">
|
||||||
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>
|
||||||
@@ -343,7 +353,8 @@
|
|||||||
<xsl:attribute name="Phone">
|
<xsl:attribute name="Phone">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorPhone1Ext[. != '']">
|
<xsl:when test="//Admin2/@EstimatorPhone1Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone1"/> x<xsl:value-of select="//Admin2/@EstimatorPhone1Ext"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone1"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorPhone1Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone1"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone1"/>
|
||||||
@@ -353,7 +364,8 @@
|
|||||||
<xsl:attribute name="Phone2">
|
<xsl:attribute name="Phone2">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorPhone2Ext[. != '']">
|
<xsl:when test="//Admin2/@EstimatorPhone2Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone2"/> x<xsl:value-of select="//Admin2/@EstimatorPhone2Ext"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone2"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorPhone2Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone2"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone2"/>
|
||||||
@@ -363,7 +375,8 @@
|
|||||||
<xsl:attribute name="Fax">
|
<xsl:attribute name="Fax">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorFaxExt[. != '']">
|
<xsl:when test="//Admin2/@EstimatorFaxExt[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorFax"/> x<xsl:value-of select="//Admin2/@EstimatorFaxExt"/>
|
<xsl:value-of select="//Admin2/@EstimatorFax"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorFaxExt"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorFax"/>
|
<xsl:value-of select="//Admin2/@EstimatorFax"/>
|
||||||
@@ -379,7 +392,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@VehicleInDate)>6">
|
<xsl:if test="string-length(//Admin2/@VehicleInDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@VehicleInDate, ' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@VehicleInDate, ' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@VehicleInTime)=4">
|
<xsl:if test="string-length(//Admin2/@VehicleInTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@VehicleInTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@VehicleInTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@VehicleInTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@VehicleInTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -387,7 +401,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@TargetVehicleOutDate)>6">
|
<xsl:if test="string-length(//Admin2/@TargetVehicleOutDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@TargetVehicleOutDate,' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@TargetVehicleOutDate,' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@TargetVehicleOutTime)=4">
|
<xsl:if test="string-length(//Admin2/@TargetVehicleOutTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -395,7 +410,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@VehicleOutDate)>6">
|
<xsl:if test="string-length(//Admin2/@VehicleOutDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@VehicleOutDate, ' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@VehicleOutDate, ' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@VehicleOutTime)=4">
|
<xsl:if test="string-length(//Admin2/@VehicleOutTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@VehicleOutTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@VehicleOutTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@VehicleOutTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@VehicleOutTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -405,16 +421,16 @@
|
|||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
<xsl:template match="PartsList">
|
<xsl:template match="PartsList">
|
||||||
<xsl:element name="PartsList" >
|
<xsl:element name="PartsList">
|
||||||
<xsl:for-each select="Part">
|
<xsl:for-each select="Part">
|
||||||
<xsl:element name="Part" >
|
<xsl:element name="Part">
|
||||||
<!-- Part number translation rules -->
|
<!-- Part number translation rules -->
|
||||||
<xsl:variable name="OEMPartNumber">
|
<xsl:variable name="OEMPartNumber">
|
||||||
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) != ' GM PART'">
|
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) != ' GM PART'">
|
||||||
<xsl:value-of select="@TDPartNum" />
|
<xsl:value-of select="@TDPartNum"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) = ' GM PART'">
|
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) = ' GM PART'">
|
||||||
<xsl:value-of select="substring-before(@TDPartNum,' GM PART')" />
|
<xsl:value-of select="substring-before(@TDPartNum,' GM PART')"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<xsl:variable name="AltPartNumber">
|
<xsl:variable name="AltPartNumber">
|
||||||
@@ -457,20 +473,22 @@
|
|||||||
<xsl:value-of select="$PrimaryPartNumber"/>
|
<xsl:value-of select="$PrimaryPartNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="AltPartNum">
|
<xsl:attribute name="AltPartNum">
|
||||||
<xsl:value-of select="$SecondaryPartNumber" />
|
<xsl:value-of select="$SecondaryPartNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="ExternalPartType">
|
<xsl:attribute name="ExternalPartType">
|
||||||
<xsl:value-of select="$PrimaryPartType" />
|
<xsl:value-of select="$PrimaryPartType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="ExternalAltPartType">
|
<xsl:attribute name="ExternalAltPartType">
|
||||||
<xsl:value-of select="$SecondaryPartType" />
|
<xsl:value-of select="$SecondaryPartType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartType">
|
<xsl:attribute name="TDPartType">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="$PrimaryPartType='PAN' or $PrimaryPartType='PAP'">1</xsl:when>
|
<xsl:when test="$PrimaryPartType='PAN' or $PrimaryPartType='PAP'">1</xsl:when>
|
||||||
<xsl:when test="$PrimaryPartType='PAA' or $PrimaryPartType='PATR'">2</xsl:when>
|
<xsl:when test="$PrimaryPartType='PAA' or $PrimaryPartType='PATR'">2</xsl:when>
|
||||||
<xsl:when test="$PrimaryPartType='PAL'">3</xsl:when>
|
<xsl:when test="$PrimaryPartType='PAL'">3</xsl:when>
|
||||||
<xsl:when test="$PrimaryPartType='PAM' or $PrimaryPartType='PAC' or $PrimaryPartType='PAR'">4</xsl:when>
|
<xsl:when test="$PrimaryPartType='PAM' or $PrimaryPartType='PAC' or $PrimaryPartType='PAR'">
|
||||||
|
4
|
||||||
|
</xsl:when>
|
||||||
<xsl:otherwise>0</xsl:otherwise>
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -479,64 +497,67 @@
|
|||||||
<xsl:when test="$SecondaryPartType='PAN'">1</xsl:when>
|
<xsl:when test="$SecondaryPartType='PAN'">1</xsl:when>
|
||||||
<xsl:when test="$SecondaryPartType='PAA' or $SecondaryPartType='PATR'">2</xsl:when>
|
<xsl:when test="$SecondaryPartType='PAA' or $SecondaryPartType='PATR'">2</xsl:when>
|
||||||
<xsl:when test="$SecondaryPartType='PAL'">3</xsl:when>
|
<xsl:when test="$SecondaryPartType='PAL'">3</xsl:when>
|
||||||
<xsl:when test="$SecondaryPartType='PAM' or $SecondaryPartType='PAC' or $SecondaryPartType='PAR'">4</xsl:when>
|
<xsl:when
|
||||||
|
test="$SecondaryPartType='PAM' or $SecondaryPartType='PAC' or $SecondaryPartType='PAR'">
|
||||||
|
4
|
||||||
|
</xsl:when>
|
||||||
<xsl:otherwise>0</xsl:otherwise>
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartDesc">
|
<xsl:attribute name="TDPartDesc">
|
||||||
<xsl:value-of select="@TDPartDesc" />
|
<xsl:value-of select="@TDPartDesc"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDEstimate">
|
<xsl:attribute name="TDEstimate">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@PartType='PAN'">
|
<xsl:when test="@PartType='PAN'">
|
||||||
<xsl:value-of select="@TDEstimate" />
|
<xsl:value-of select="@TDEstimate"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAM'">
|
<xsl:when test="@PartType='PAM'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAA'">
|
<xsl:when test="@PartType='PAA'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAL'">
|
<xsl:when test="@PartType='PAL'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartQty">
|
<xsl:attribute name="TDPartQty">
|
||||||
<xsl:value-of select="@TDPartQty" />
|
<xsl:value-of select="@TDPartQty"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LineNumber">
|
<xsl:attribute name="LineNumber">
|
||||||
<xsl:value-of select="@LineNumber" />
|
<xsl:value-of select="@LineNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="SequenceNumber">
|
<xsl:attribute name="SequenceNumber">
|
||||||
<xsl:value-of select="@SequenceNumber" />
|
<xsl:value-of select="@SequenceNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="SupplLevel">
|
<xsl:attribute name="SupplLevel">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@SupplementLevel = 'E'">0</xsl:when>
|
<xsl:when test="@SupplementLevel = 'E'">0</xsl:when>
|
||||||
<xsl:when test="substring(@SupplementLevel, 1, 1) = 'S'">
|
<xsl:when test="substring(@SupplementLevel, 1, 1) = 'S'">
|
||||||
<xsl:value-of select="substring(@SupplementLevel, 2)" />
|
<xsl:value-of select="substring(@SupplementLevel, 2)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>0</xsl:otherwise>
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LaborType">
|
<xsl:attribute name="LaborType">
|
||||||
<xsl:value-of select="@LaborType" />
|
<xsl:value-of select="@LaborType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LaborHours">
|
<xsl:attribute name="LaborHours">
|
||||||
<xsl:value-of select="@LaborHours" />
|
<xsl:value-of select="@LaborHours"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="OperationCode">
|
<xsl:attribute name="OperationCode">
|
||||||
<xsl:value-of select="@LaborOp" />
|
<xsl:value-of select="@LaborOp"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="PriceIncluded">
|
<xsl:attribute name="PriceIncluded">
|
||||||
<xsl:value-of select="@PriceIncluded" />
|
<xsl:value-of select="@PriceIncluded"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="MarkUp">
|
<xsl:attribute name="MarkUp">
|
||||||
<xsl:value-of select="@MarkUp" />
|
<xsl:value-of select="@MarkUp"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="CLPart">
|
<xsl:attribute name="CLPart">
|
||||||
<!-- CLPart is false if TRAN_CODE == 2 or TRAN_CODE == 3 -->
|
<!-- CLPart is false if TRAN_CODE == 2 or TRAN_CODE == 3 -->
|
||||||
@@ -546,11 +567,16 @@
|
|||||||
<!-- If LaborOp is OP1, then allow the part to import CP 12/28/08 for Shop Client Release 4.1.4 -->
|
<!-- If LaborOp is OP1, then allow the part to import CP 12/28/08 for Shop Client Release 4.1.4 -->
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@TransactionCode='3'">False</xsl:when>
|
<xsl:when test="@TransactionCode='3'">False</xsl:when>
|
||||||
<xsl:when test="@TransactionCode='1' or @TransactionCode=' ' or @TransactionCode='' or @TransactionCode='2'">
|
<xsl:when
|
||||||
|
test="@TransactionCode='1' or @TransactionCode=' ' or @TransactionCode='' or @TransactionCode='2'">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@PartType='PAN' or @PartType='PAG' or @PartType='PAM' or @PartType='PAP' or @PartType='PAL' or @PartType='PAA' or @PartType='PAC' or @PartType='PATR'">
|
<xsl:when
|
||||||
|
test="@PartType='PAN' or @PartType='PAG' or @PartType='PAM' or @PartType='PAP' or @PartType='PAL' or @PartType='PAA' or @PartType='PAC' or @PartType='PATR'">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@LaborType='LAD' or @LaborType='LAE' or @LaborType='LAU' or @LaborType='LAT'">False</xsl:when>
|
<xsl:when
|
||||||
|
test="@LaborType='LAD' or @LaborType='LAE' or @LaborType='LAU' or @LaborType='LAT'">
|
||||||
|
False
|
||||||
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<!--xsl:when test="@LaborOp='OP0'">False</xsl:when -->
|
<!--xsl:when test="@LaborOp='OP0'">False</xsl:when -->
|
||||||
|
|||||||
@@ -1,127 +1,222 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<TranslationDescriptor>
|
<TranslationDescriptor>
|
||||||
<FileTranslations FormatName="ADP EMS" ElementName="Estimate" Description="Translation Descriptor for a ADP ShopLink Estimate, Version EMS 2.0">
|
<FileTranslations FormatName="ADP EMS" ElementName="Estimate"
|
||||||
|
Description="Translation Descriptor for a ADP ShopLink Estimate, Version EMS 2.0">
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.env">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.env">
|
||||||
<DBFFileTranslation ID="ID1" ElementName="Envelope" Description="Envelope Table">
|
<DBFFileTranslation ID="ID1" ElementName="Envelope" Description="Envelope Table">
|
||||||
<DBFFieldSpec FieldName="RO_ID" Form="attribute" Name="RONum" FieldType="" Description="RO Number"/>
|
<DBFFieldSpec FieldName="RO_ID" Form="attribute" Name="RONum" FieldType="" Description="RO Number"/>
|
||||||
<DBFFieldSpec FieldName="UNQFILE_ID" Form="attribute" Name="UniqueFileID" FieldType="" Description="Unique File Identifier"/>
|
<DBFFieldSpec FieldName="UNQFILE_ID" Form="attribute" Name="UniqueFileID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="ESTFILE_ID" Form="attribute" Name="EstimateFileID" FieldType="" Description="Estimate File Identifier"/>
|
Description="Unique File Identifier"/>
|
||||||
<DBFFieldSpec FieldName="INCL_ADMIN" Form="attribute" Name="IncludesAdminInfo" FieldType="Boolean" Description="Includes Admin Info Flag"/>
|
<DBFFieldSpec FieldName="ESTFILE_ID" Form="attribute" Name="EstimateFileID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INCL_VEH" Form="attribute" Name="IncludesVehicleInfo" FieldType="Boolean" Description="Includes Vehicle Info Flag"/>
|
Description="Estimate File Identifier"/>
|
||||||
<DBFFieldSpec FieldName="INCL_EST" Form="attribute" Name="IncludesEstimateInfo" FieldType="Boolean" Description="Includes Estimate Info Flag"/>
|
<DBFFieldSpec FieldName="INCL_ADMIN" Form="attribute" Name="IncludesAdminInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="INCL_PROFL" Form="attribute" Name="IncludesProfileInfo" FieldType="Boolean" Description="Includes Profile Info Flag"/>
|
Description="Includes Admin Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="INCL_TOTAL" Form="attribute" Name="IncludesTotalsInfo" FieldType="Boolean" Description="Includes Totals Info Flag"/>
|
<DBFFieldSpec FieldName="INCL_VEH" Form="attribute" Name="IncludesVehicleInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="INCL_VENDR" Form="attribute" Name="IncludesVendorInfo" FieldType="Boolean" Description="Includes Vendor Info Flag"/>
|
Description="Includes Vehicle Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="EMS_VER" Form="attribute" Name="EMSVersion" FieldType="" Description="EMS Version Number"/>
|
<DBFFieldSpec FieldName="INCL_EST" Form="attribute" Name="IncludesEstimateInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="SUPP_NO" Form="attribute" Name="SupplementNum" FieldType="" Description="Supplement Number"/>
|
Description="Includes Estimate Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="TRANS_TYPE" Form="attribute" Name="TransactionType" FieldType="" Description="Transaction Type"/>
|
<DBFFieldSpec FieldName="INCL_PROFL" Form="attribute" Name="IncludesProfileInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="EST_SYSTEM" Form="attribute" Name="EstimatingSystem" FieldType="" Description="Estimating System Software"/>
|
Description="Includes Profile Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="SW_VERSION" Form="attribute" Name="SoftwareVersion" FieldType="" Description="Software Version Identifier"/>
|
<DBFFieldSpec FieldName="INCL_TOTAL" Form="attribute" Name="IncludesTotalsInfo" FieldType="Boolean"
|
||||||
|
Description="Includes Totals Info Flag"/>
|
||||||
|
<DBFFieldSpec FieldName="INCL_VENDR" Form="attribute" Name="IncludesVendorInfo" FieldType="Boolean"
|
||||||
|
Description="Includes Vendor Info Flag"/>
|
||||||
|
<DBFFieldSpec FieldName="EMS_VER" Form="attribute" Name="EMSVersion" FieldType=""
|
||||||
|
Description="EMS Version Number"/>
|
||||||
|
<DBFFieldSpec FieldName="SUPP_NO" Form="attribute" Name="SupplementNum" FieldType=""
|
||||||
|
Description="Supplement Number"/>
|
||||||
|
<DBFFieldSpec FieldName="TRANS_TYPE" Form="attribute" Name="TransactionType" FieldType=""
|
||||||
|
Description="Transaction Type"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_SYSTEM" Form="attribute" Name="EstimatingSystem" FieldType=""
|
||||||
|
Description="Estimating System Software"/>
|
||||||
|
<DBFFieldSpec FieldName="SW_VERSION" Form="attribute" Name="SoftwareVersion" FieldType=""
|
||||||
|
Description="Software Version Identifier"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.LIN">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.LIN">
|
||||||
<DBFFileTranslation ID="ID2" ElementSetName="PartsList" ElementName="Part" Description="Parts List Table">
|
<DBFFileTranslation ID="ID2" ElementSetName="PartsList" ElementName="Part" Description="Parts List Table">
|
||||||
<DBFFieldSpec FieldName="OEM_PARTNO" Form="attribute" Name="TDPartNum" FieldType="" Description="Part Number"/>
|
<DBFFieldSpec FieldName="OEM_PARTNO" Form="attribute" Name="TDPartNum" FieldType=""
|
||||||
<DBFFieldSpec FieldName="ALT_PARTNO" Form="attribute" Name="AltPartNum" FieldType="" Description="Alternate Part Number"/>
|
Description="Part Number"/>
|
||||||
<DBFFieldSpec FieldName="ACT_PRICE" Form="attribute" Name="ActPrice" FieldType="" Description="Actual Part Price"/>
|
<DBFFieldSpec FieldName="ALT_PARTNO" Form="attribute" Name="AltPartNum" FieldType=""
|
||||||
<DBFFieldSpec FieldName="LINE_DESC" Form="attribute" Name="TDPartDesc" FieldType="" Description="Part Description"/>
|
Description="Alternate Part Number"/>
|
||||||
<DBFFieldSpec FieldName="DB_PRICE" Form="attribute" Name="TDEstimate" FieldType="" Description="DB_Price"/>
|
<DBFFieldSpec FieldName="ACT_PRICE" Form="attribute" Name="ActPrice" FieldType=""
|
||||||
<DBFFieldSpec FieldName="PART_QTY" Form="attribute" Name="TDPartQty" FieldType="" Description="Part Quantity"/>
|
Description="Actual Part Price"/>
|
||||||
<DBFFieldSpec FieldName="PART_TYPE" Form="attribute" Name="PartType" FieldType="" Description="Part Type"/>
|
<DBFFieldSpec FieldName="LINE_DESC" Form="attribute" Name="TDPartDesc" FieldType=""
|
||||||
<DBFFieldSpec FieldName="MOD_LBR_TY" Form="attribute" Name="LaborType" FieldType="" Description="Labor Type"/>
|
Description="Part Description"/>
|
||||||
<DBFFieldSpec FieldName="MOD_LB_HRS" Form="attribute" Name="LaborHours" FieldType="" Description="Labor Hours"/>
|
<DBFFieldSpec FieldName="DB_PRICE" Form="attribute" Name="TDEstimate" FieldType=""
|
||||||
|
Description="DB_Price"/>
|
||||||
|
<DBFFieldSpec FieldName="PART_QTY" Form="attribute" Name="TDPartQty" FieldType=""
|
||||||
|
Description="Part Quantity"/>
|
||||||
|
<DBFFieldSpec FieldName="PART_TYPE" Form="attribute" Name="PartType" FieldType=""
|
||||||
|
Description="Part Type"/>
|
||||||
|
<DBFFieldSpec FieldName="MOD_LBR_TY" Form="attribute" Name="LaborType" FieldType=""
|
||||||
|
Description="Labor Type"/>
|
||||||
|
<DBFFieldSpec FieldName="MOD_LB_HRS" Form="attribute" Name="LaborHours" FieldType=""
|
||||||
|
Description="Labor Hours"/>
|
||||||
<DBFFieldSpec FieldName="LBR_OP" Form="attribute" Name="LaborOp" FieldType="" Description="Labor Op"/>
|
<DBFFieldSpec FieldName="LBR_OP" Form="attribute" Name="LaborOp" FieldType="" Description="Labor Op"/>
|
||||||
<DBFFieldSpec FieldName="LINE_NO" Form="attribute" Name="LineNumber" FieldType="" Description="Line number"/>
|
<DBFFieldSpec FieldName="LINE_NO" Form="attribute" Name="LineNumber" FieldType=""
|
||||||
|
Description="Line number"/>
|
||||||
<DBFFieldSpec FieldName="UNQ_SEQ" Form="attribute" Name="SequenceNumber" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="UNQ_SEQ" Form="attribute" Name="SequenceNumber" FieldType="" Description=""/>
|
||||||
<DBFFieldSpec FieldName="LINE_IND" Form="attribute" Name="SupplementLevel" FieldType="" Description="Supplement Level"/>
|
<DBFFieldSpec FieldName="LINE_IND" Form="attribute" Name="SupplementLevel" FieldType=""
|
||||||
<DBFFieldSpec FieldName="TRAN_CODE" Form="attribute" Name="TransactionCode" FieldType="" Description="Transaction Code"/>
|
Description="Supplement Level"/>
|
||||||
<DBFFieldSpec FieldName="PRICE_INC" Form="attribute" Name="PriceIncluded" FieldType="" Description="Price Included"/>
|
<DBFFieldSpec FieldName="TRAN_CODE" Form="attribute" Name="TransactionCode" FieldType=""
|
||||||
<DBFFieldSpec FieldName="PRT_DSMK_P" Form="attribute" Name="MarkUp" FieldType="" Description="Price Mark up for non OEM parts"/>
|
Description="Transaction Code"/>
|
||||||
|
<DBFFieldSpec FieldName="PRICE_INC" Form="attribute" Name="PriceIncluded" FieldType=""
|
||||||
|
Description="Price Included"/>
|
||||||
|
<DBFFieldSpec FieldName="PRT_DSMK_P" Form="attribute" Name="MarkUp" FieldType=""
|
||||||
|
Description="Price Mark up for non OEM parts"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.VEH">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.VEH">
|
||||||
<DBFFileTranslation ID="ID3" ElementName="Vehicle" Description="Vehicle Table">
|
<DBFFileTranslation ID="ID3" ElementName="Vehicle" Description="Vehicle Table">
|
||||||
<DBFFieldSpec FieldName="V_VIN" Form="attribute" Name="TransVIN" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="V_VIN" Form="attribute" Name="TransVIN" FieldType="" Description=""/>
|
||||||
<DBFFieldSpec FieldName="V_MODEL_YR" Form="attribute" Name="TransYear" FieldType="" Description="V_MODEL_YR"/>
|
<DBFFieldSpec FieldName="V_MODEL_YR" Form="attribute" Name="TransYear" FieldType=""
|
||||||
<DBFFieldSpec FieldName="V_MAKEDESC" Form="attribute" Name="ManufName" FieldType="" Description="V_MAKEDESC"/>
|
Description="V_MODEL_YR"/>
|
||||||
<DBFFieldSpec FieldName="V_MAKECODE" Form="attribute" Name="ManufCode" FieldType="" Description="V_MAKECODE"/>
|
<DBFFieldSpec FieldName="V_MAKEDESC" Form="attribute" Name="ManufName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="V_MODEL" Form="attribute" Name="TransModel" FieldType="" Description="V_MODEL"/>
|
Description="V_MAKEDESC"/>
|
||||||
<DBFFieldSpec FieldName="V_MILEAGE" Form="attribute" Name="TransMileage" FieldType="" Description="V_MILEAGE"/>
|
<DBFFieldSpec FieldName="V_MAKECODE" Form="attribute" Name="ManufCode" FieldType=""
|
||||||
|
Description="V_MAKECODE"/>
|
||||||
|
<DBFFieldSpec FieldName="V_MODEL" Form="attribute" Name="TransModel" FieldType=""
|
||||||
|
Description="V_MODEL"/>
|
||||||
|
<DBFFieldSpec FieldName="V_MILEAGE" Form="attribute" Name="TransMileage" FieldType=""
|
||||||
|
Description="V_MILEAGE"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD1">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD1">
|
||||||
<DBFFileTranslation ID="ID4" ElementName="Admin" Description="Administrative information">
|
<DBFFileTranslation ID="ID4" ElementName="Admin" Description="Administrative information">
|
||||||
<DBFFieldSpec FieldName="OWNR_LN" Form="attribute" Name="OwnerL" FieldType="" Description="Owner Lastname"/>
|
<DBFFieldSpec FieldName="OWNR_LN" Form="attribute" Name="OwnerL" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_FN" Form="attribute" Name="OwnerF" FieldType="" Description="Owner Firstname"/>
|
Description="Owner Lastname"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_CO_NM" Form="attribute" Name="OwnerCompanyName" FieldType="" Description="Owner Company Name"/>
|
<DBFFieldSpec FieldName="OWNR_FN" Form="attribute" Name="OwnerF" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_TITLE" Form="attribute" Name="OwnerTitle" FieldType="" Description="Owner Title"/>
|
Description="Owner Firstname"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_ADDR1" Form="attribute" Name="OwnerAddr1" FieldType="" Description="Owner Address Line 1"/>
|
<DBFFieldSpec FieldName="OWNR_CO_NM" Form="attribute" Name="OwnerCompanyName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_ADDR2" Form="attribute" Name="OwnerAddr2" FieldType="" Description="Owner Address Line 2"/>
|
Description="Owner Company Name"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_CITY" Form="attribute" Name="OwnerCity" FieldType="" Description="Owner City"/>
|
<DBFFieldSpec FieldName="OWNR_TITLE" Form="attribute" Name="OwnerTitle" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_ST" Form="attribute" Name="OwnerState" FieldType="" Description="Owner State"/>
|
Description="Owner Title"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_ZIP" Form="attribute" Name="OwnerZip" FieldType="" Description="Owner Zip"/>
|
<DBFFieldSpec FieldName="OWNR_ADDR1" Form="attribute" Name="OwnerAddr1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_CTRY" Form="attribute" Name="OwnerCountry" FieldType="" Description="Owner Country"/>
|
Description="Owner Address Line 1"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_PH1" Form="attribute" Name="OwnerPhone1" FieldType="" Description="Owner Primary Phone"/>
|
<DBFFieldSpec FieldName="OWNR_ADDR2" Form="attribute" Name="OwnerAddr2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_PH1X" Form="attribute" Name="OwnerPhone1Ext" FieldType="" Description="Owner Primary Phone Extension"/>
|
Description="Owner Address Line 2"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_PH2" Form="attribute" Name="OwnerPhone2" FieldType="" Description="Owner Secondary Phone"/>
|
<DBFFieldSpec FieldName="OWNR_CITY" Form="attribute" Name="OwnerCity" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_PH2X" Form="attribute" Name="OwnerPhone2Ext" FieldType="" Description="Owner Secondary Phone Extension"/>
|
Description="Owner City"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_FAX" Form="attribute" Name="OwnerFax" FieldType="" Description="Owner Fax"/>
|
<DBFFieldSpec FieldName="OWNR_ST" Form="attribute" Name="OwnerState" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_FAXX" Form="attribute" Name="OwnerFaxExt" FieldType="" Description="Owner Fax Extension"/>
|
Description="Owner State"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_EA" Form="attribute" Name="OwnerEmail" FieldType="" Description="Owner Email Address"/>
|
<DBFFieldSpec FieldName="OWNR_ZIP" Form="attribute" Name="OwnerZip" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_CO_NM" Form="attribute" Name="InsuranceCompanyName" FieldType="" Description="Insurance Company Name"/>
|
Description="Owner Zip"/>
|
||||||
<DBFFieldSpec FieldName="INS_CO_ID" Form="attribute" Name="InsuranceCompanyID" FieldType="" Description="Insurance Company Identifier"/>
|
<DBFFieldSpec FieldName="OWNR_CTRY" Form="attribute" Name="OwnerCountry" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_ADDR1" Form="attribute" Name="InsuranceAddr1" FieldType="" Description="Insurance Address Line 1"/>
|
Description="Owner Country"/>
|
||||||
<DBFFieldSpec FieldName="INS_ADDR2" Form="attribute" Name="InsuranceAddr2" FieldType="" Description="Insurance Address Line 2"/>
|
<DBFFieldSpec FieldName="OWNR_PH1" Form="attribute" Name="OwnerPhone1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_CITY" Form="attribute" Name="InsuranceCity" FieldType="" Description="Insurance City"/>
|
Description="Owner Primary Phone"/>
|
||||||
<DBFFieldSpec FieldName="INS_ST" Form="attribute" Name="InsuranceState" FieldType="" Description="Insurance State"/>
|
<DBFFieldSpec FieldName="OWNR_PH1X" Form="attribute" Name="OwnerPhone1Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_ZIP" Form="attribute" Name="InsuranceZip" FieldType="" Description="Insurance Zip"/>
|
Description="Owner Primary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="INS_CTRY" Form="attribute" Name="InsuranceCountry" FieldType="" Description="Insurance Country"/>
|
<DBFFieldSpec FieldName="OWNR_PH2" Form="attribute" Name="OwnerPhone2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_PH1" Form="attribute" Name="InsurancePhone1" FieldType="" Description="Insurance Primary Phone"/>
|
Description="Owner Secondary Phone"/>
|
||||||
<DBFFieldSpec FieldName="INS_PH1X" Form="attribute" Name="InsurancePhone1Ext" FieldType="" Description="Insurance Primary Phone Extension"/>
|
<DBFFieldSpec FieldName="OWNR_PH2X" Form="attribute" Name="OwnerPhone2Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_PH2" Form="attribute" Name="InsurancePhone2" FieldType="" Description="Insurance Secondary Phone"/>
|
Description="Owner Secondary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="INS_PH2X" Form="attribute" Name="InsurancePhone2Ext" FieldType="" Description="Insurance Secondary Phone Extension"/>
|
<DBFFieldSpec FieldName="OWNR_FAX" Form="attribute" Name="OwnerFax" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_FAX" Form="attribute" Name="InsuranceFax" FieldType="" Description="Insurance Fax"/>
|
Description="Owner Fax"/>
|
||||||
<DBFFieldSpec FieldName="INS_FAXX" Form="attribute" Name="InsuranceFaxExt" FieldType="" Description="Insurance Fax Extension"/>
|
<DBFFieldSpec FieldName="OWNR_FAXX" Form="attribute" Name="OwnerFaxExt" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_EA" Form="attribute" Name="InsuranceEmail" FieldType="" Description="Insurance Email Address"/>
|
Description="Owner Fax Extension"/>
|
||||||
<DBFFieldSpec FieldName="INSD_LN" Form="attribute" Name="InsuranceLName" FieldType="" Description="Insurance Last Name"/>
|
<DBFFieldSpec FieldName="OWNR_EA" Form="attribute" Name="OwnerEmail" FieldType=""
|
||||||
<DBFFieldSpec FieldName="CLM_NO" Form="attribute" Name="ClaimNumber" FieldType="" Description="Claim Number"/>
|
Description="Owner Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CO_NM" Form="attribute" Name="InsuranceCompanyName" FieldType=""
|
||||||
|
Description="Insurance Company Name"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CO_ID" Form="attribute" Name="InsuranceCompanyID" FieldType=""
|
||||||
|
Description="Insurance Company Identifier"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ADDR1" Form="attribute" Name="InsuranceAddr1" FieldType=""
|
||||||
|
Description="Insurance Address Line 1"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ADDR2" Form="attribute" Name="InsuranceAddr2" FieldType=""
|
||||||
|
Description="Insurance Address Line 2"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CITY" Form="attribute" Name="InsuranceCity" FieldType=""
|
||||||
|
Description="Insurance City"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ST" Form="attribute" Name="InsuranceState" FieldType=""
|
||||||
|
Description="Insurance State"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ZIP" Form="attribute" Name="InsuranceZip" FieldType=""
|
||||||
|
Description="Insurance Zip"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CTRY" Form="attribute" Name="InsuranceCountry" FieldType=""
|
||||||
|
Description="Insurance Country"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH1" Form="attribute" Name="InsurancePhone1" FieldType=""
|
||||||
|
Description="Insurance Primary Phone"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH1X" Form="attribute" Name="InsurancePhone1Ext" FieldType=""
|
||||||
|
Description="Insurance Primary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH2" Form="attribute" Name="InsurancePhone2" FieldType=""
|
||||||
|
Description="Insurance Secondary Phone"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH2X" Form="attribute" Name="InsurancePhone2Ext" FieldType=""
|
||||||
|
Description="Insurance Secondary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_FAX" Form="attribute" Name="InsuranceFax" FieldType=""
|
||||||
|
Description="Insurance Fax"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_FAXX" Form="attribute" Name="InsuranceFaxExt" FieldType=""
|
||||||
|
Description="Insurance Fax Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_EA" Form="attribute" Name="InsuranceEmail" FieldType=""
|
||||||
|
Description="Insurance Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="INSD_LN" Form="attribute" Name="InsuranceLName" FieldType=""
|
||||||
|
Description="Insurance Last Name"/>
|
||||||
|
<DBFFieldSpec FieldName="CLM_NO" Form="attribute" Name="ClaimNumber" FieldType=""
|
||||||
|
Description="Claim Number"/>
|
||||||
|
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD2">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD2">
|
||||||
<DBFFileTranslation ID="ID5" ElementName="Admin2" Description="Administrative information2">
|
<DBFFileTranslation ID="ID5" ElementName="Admin2" Description="Administrative information2">
|
||||||
<DBFFieldSpec FieldName="EST_CT_LN" Form="attribute" Name="EstimatorL" FieldType="" Description="Estimator Lastname"/>
|
<DBFFieldSpec FieldName="EST_CT_LN" Form="attribute" Name="EstimatorL" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CT_FN" Form="attribute" Name="EstimatorF" FieldType="" Description="Estimator Firstname"/>
|
Description="Estimator Lastname"/>
|
||||||
<DBFFieldSpec FieldName="EST_CO_NM" Form="attribute" Name="EstimatorCompanyName" FieldType="" Description="Estimator Company Name"/>
|
<DBFFieldSpec FieldName="EST_CT_FN" Form="attribute" Name="EstimatorF" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CO_ID" Form="attribute" Name="EstimatorCompanyID" FieldType="" Description="Estimator Company Identifier"/>
|
Description="Estimator Firstname"/>
|
||||||
<DBFFieldSpec FieldName="EST_ADDR1" Form="attribute" Name="EstimatorAddr1" FieldType="" Description="Estimator Address1"/>
|
<DBFFieldSpec FieldName="EST_CO_NM" Form="attribute" Name="EstimatorCompanyName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_ADDR2" Form="attribute" Name="EstimatorAddr2" FieldType="" Description="Estimator Address2"/>
|
Description="Estimator Company Name"/>
|
||||||
<DBFFieldSpec FieldName="EST_CITY" Form="attribute" Name="EstimatorCity" FieldType="" Description="Estimator City"/>
|
<DBFFieldSpec FieldName="EST_CO_ID" Form="attribute" Name="EstimatorCompanyID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_ST" Form="attribute" Name="EstimatorState" FieldType="" Description="Estimator State"/>
|
Description="Estimator Company Identifier"/>
|
||||||
<DBFFieldSpec FieldName="EST_ZIP" Form="attribute" Name="EstimatorZip" FieldType="" Description="Estimator Zip"/>
|
<DBFFieldSpec FieldName="EST_ADDR1" Form="attribute" Name="EstimatorAddr1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CTRY" Form="attribute" Name="EstimatorCountry" FieldType="" Description="Estimator Country"/>
|
Description="Estimator Address1"/>
|
||||||
<DBFFieldSpec FieldName="EST_PH1" Form="attribute" Name="EstimatorPhone1" FieldType="" Description="Estimator Primary Phone"/>
|
<DBFFieldSpec FieldName="EST_ADDR2" Form="attribute" Name="EstimatorAddr2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_PH1X" Form="attribute" Name="EstimatorPhone1Ext" FieldType="" Description="Estimator Primary Phone Extension"/>
|
Description="Estimator Address2"/>
|
||||||
<DBFFieldSpec FieldName="EST_PH2" Form="attribute" Name="EstimatorPhone2" FieldType="" Description="Estimator Secondary Phone"/>
|
<DBFFieldSpec FieldName="EST_CITY" Form="attribute" Name="EstimatorCity" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_PH2X" Form="attribute" Name="EstimatorPhone2Ext" FieldType="" Description="Estimator Secondary Phone Extension"/>
|
Description="Estimator City"/>
|
||||||
<DBFFieldSpec FieldName="EST_FAX" Form="attribute" Name="EstimatorFax" FieldType="" Description="Estimator Fax"/>
|
<DBFFieldSpec FieldName="EST_ST" Form="attribute" Name="EstimatorState" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_FAXX" Form="attribute" Name="EstimatorFaxExt" FieldType="" Description="Estimator Fax Extension"/>
|
Description="Estimator State"/>
|
||||||
<DBFFieldSpec FieldName="EST_EA" Form="attribute" Name="EstimatorEmail" FieldType="" Description="Estimator Email Address"/>
|
<DBFFieldSpec FieldName="EST_ZIP" Form="attribute" Name="EstimatorZip" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_LIC_NO" Form="attribute" Name="EstimatorLicenseNumber" FieldType="" Description="Estimator License Number"/>
|
Description="Estimator Zip"/>
|
||||||
<DBFFieldSpec FieldName="EST_FILENO" Form="attribute" Name="EstimatorFileNumber" FieldType="" Description="Estimator File Number"/>
|
<DBFFieldSpec FieldName="EST_CTRY" Form="attribute" Name="EstimatorCountry" FieldType=""
|
||||||
<DBFFieldSpec FieldName="RO_IN_DATE" Form="attribute" Name="VehicleInDate" FieldType="" Description="Date arrived in shop"/>
|
Description="Estimator Country"/>
|
||||||
<DBFFieldSpec FieldName="RO_IN_TIME" Form="attribute" Name="VehicleInTime" FieldType="" Description="Time arrived in shop"/>
|
<DBFFieldSpec FieldName="EST_PH1" Form="attribute" Name="EstimatorPhone1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="TAR_DATE" Form="attribute" Name="TargetVehicleOutDate" FieldType="" Description="Target date to be completed"/>
|
Description="Estimator Primary Phone"/>
|
||||||
<DBFFieldSpec FieldName="TAR_TIME" Form="attribute" Name="TargetVehicleOutTime" FieldType="" Description="Target time to be completed"/>
|
<DBFFieldSpec FieldName="EST_PH1X" Form="attribute" Name="EstimatorPhone1Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="RO_CMPDATE" Form="attribute" Name="VehicleOutDate" FieldType="" Description="Date completed"/>
|
Description="Estimator Primary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="RO_CMPTIME" Form="attribute" Name="VehicleOutTime" FieldType="" Description="Time completed"/>
|
<DBFFieldSpec FieldName="EST_PH2" Form="attribute" Name="EstimatorPhone2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="RF_CITY" Form="attribute" Name="BodyShopCity" FieldType="" Description="Body Shop City"/>
|
Description="Estimator Secondary Phone"/>
|
||||||
<DBFFieldSpec FieldName="RF_CO_NM" Form="attribute" Name="BodyShopName" FieldType="" Description="Body Shop Name"/>
|
<DBFFieldSpec FieldName="EST_PH2X" Form="attribute" Name="EstimatorPhone2Ext" FieldType=""
|
||||||
|
Description="Estimator Secondary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FAX" Form="attribute" Name="EstimatorFax" FieldType=""
|
||||||
|
Description="Estimator Fax"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FAXX" Form="attribute" Name="EstimatorFaxExt" FieldType=""
|
||||||
|
Description="Estimator Fax Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_EA" Form="attribute" Name="EstimatorEmail" FieldType=""
|
||||||
|
Description="Estimator Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_LIC_NO" Form="attribute" Name="EstimatorLicenseNumber" FieldType=""
|
||||||
|
Description="Estimator License Number"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FILENO" Form="attribute" Name="EstimatorFileNumber" FieldType=""
|
||||||
|
Description="Estimator File Number"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_IN_DATE" Form="attribute" Name="VehicleInDate" FieldType=""
|
||||||
|
Description="Date arrived in shop"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_IN_TIME" Form="attribute" Name="VehicleInTime" FieldType=""
|
||||||
|
Description="Time arrived in shop"/>
|
||||||
|
<DBFFieldSpec FieldName="TAR_DATE" Form="attribute" Name="TargetVehicleOutDate" FieldType=""
|
||||||
|
Description="Target date to be completed"/>
|
||||||
|
<DBFFieldSpec FieldName="TAR_TIME" Form="attribute" Name="TargetVehicleOutTime" FieldType=""
|
||||||
|
Description="Target time to be completed"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_CMPDATE" Form="attribute" Name="VehicleOutDate" FieldType=""
|
||||||
|
Description="Date completed"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_CMPTIME" Form="attribute" Name="VehicleOutTime" FieldType=""
|
||||||
|
Description="Time completed"/>
|
||||||
|
<DBFFieldSpec FieldName="RF_CITY" Form="attribute" Name="BodyShopCity" FieldType=""
|
||||||
|
Description="Body Shop City"/>
|
||||||
|
<DBFFieldSpec FieldName="RF_CO_NM" Form="attribute" Name="BodyShopName" FieldType=""
|
||||||
|
Description="Body Shop Name"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.TTL">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.TTL">
|
||||||
<DBFFileTranslation ID="ID6" ElementName="Total" Description="Total Table">
|
<DBFFileTranslation ID="ID6" ElementName="Total" Description="Total Table">
|
||||||
<DBFFieldSpec FieldName="G_TTL_AMT" Form="attribute" Name="GrandTotalAmount" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="G_TTL_AMT" Form="attribute" Name="GrandTotalAmount" FieldType=""
|
||||||
|
Description=""/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
</FileTranslations>
|
</FileTranslations>
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
|
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||||
<xsl:template match="/">
|
<xsl:template match="/">
|
||||||
<xsl:for-each select="//TranslatedData">
|
<xsl:for-each select="//TranslatedData">
|
||||||
<xsl:element name="TranslatedData">
|
<xsl:element name="TranslatedData">
|
||||||
@@ -9,23 +8,23 @@
|
|||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="Details/@PrgID">
|
<xsl:when test="Details/@PrgID">
|
||||||
<xsl:copy-of select="Details" />
|
<xsl:copy-of select="Details"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:element name="Details">
|
<xsl:element name="Details">
|
||||||
<xsl:attribute name="PrgID">OECTrans.ImportTrans</xsl:attribute>
|
<xsl:attribute name="PrgID">OECTrans.ImportTrans</xsl:attribute>
|
||||||
<xsl:for-each select="Details/@*">
|
<xsl:for-each select="Details/@*">
|
||||||
<xsl:copy-of select="." />
|
<xsl:copy-of select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
<xsl:for-each select="Details/*">
|
<xsl:for-each select="Details/*">
|
||||||
<xsl:copy-of select="." />
|
<xsl:copy-of select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
<xsl:element name="Header">
|
<xsl:element name="Header">
|
||||||
<xsl:attribute name="RONum">
|
<xsl:attribute name="RONum">
|
||||||
<xsl:value-of select="//Envelope/@RONum" />
|
<xsl:value-of select="//Envelope/@RONum"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="OwnerFName">
|
<xsl:attribute name="OwnerFName">
|
||||||
<xsl:value-of select="//Admin/@OwnerF"/>
|
<xsl:value-of select="//Admin/@OwnerF"/>
|
||||||
@@ -34,43 +33,43 @@
|
|||||||
<xsl:value-of select="//Admin/@OwnerL"/>
|
<xsl:value-of select="//Admin/@OwnerL"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="VIN">
|
<xsl:attribute name="VIN">
|
||||||
<xsl:value-of select="//Vehicle/@TransVIN" />
|
<xsl:value-of select="//Vehicle/@TransVIN"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Mileage">
|
<xsl:attribute name="Mileage">
|
||||||
<xsl:value-of select="//Vehicle/@TransMileage" />
|
<xsl:value-of select="//Vehicle/@TransMileage"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Year">
|
<xsl:attribute name="Year">
|
||||||
<xsl:value-of select="//Vehicle/@TransYear" />
|
<xsl:value-of select="//Vehicle/@TransYear"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Make">
|
<xsl:attribute name="Make">
|
||||||
<xsl:if test="//Vehicle/@ManufName[. != '']" >
|
<xsl:if test="//Vehicle/@ManufName[. != '']">
|
||||||
<xsl:value-of select="//Vehicle/@ManufName" />
|
<xsl:value-of select="//Vehicle/@ManufName"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="//Vehicle/@ManufName[. = '']" >
|
<xsl:if test="//Vehicle/@ManufName[. = '']">
|
||||||
<xsl:value-of select="//Vehicle/@ManufCode" />
|
<xsl:value-of select="//Vehicle/@ManufCode"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Model">
|
<xsl:attribute name="Model">
|
||||||
<xsl:value-of select="//Vehicle/@TransModel" />
|
<xsl:value-of select="//Vehicle/@TransModel"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Description">
|
<xsl:attribute name="Description">
|
||||||
<xsl:value-of select="//Vehicle/@TransYear" />
|
<xsl:value-of select="//Vehicle/@TransYear"/>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text></xsl:text>
|
||||||
<xsl:value-of select="//Vehicle/@ManufName" />
|
<xsl:value-of select="//Vehicle/@ManufName"/>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text></xsl:text>
|
||||||
<xsl:value-of select="//Vehicle/@TransModel" />
|
<xsl:value-of select="//Vehicle/@TransModel"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LastSupplLevel">
|
<xsl:attribute name="LastSupplLevel">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Envelope/@TransactionType = 'E'">0</xsl:when>
|
<xsl:when test="//Envelope/@TransactionType = 'E'">0</xsl:when>
|
||||||
<xsl:when test="//Envelope/@TransactionType = 'S'">
|
<xsl:when test="//Envelope/@TransactionType = 'S'">
|
||||||
<xsl:value-of select="substring(//Envelope/@SupplementNum, 2)" />
|
<xsl:value-of select="substring(//Envelope/@SupplementNum, 2)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>0</xsl:otherwise>
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
<xsl:apply-templates select="PartsList" />
|
<xsl:apply-templates select="PartsList"/>
|
||||||
<xsl:element name="Envelope">
|
<xsl:element name="Envelope">
|
||||||
<xsl:element name="Software">
|
<xsl:element name="Software">
|
||||||
<xsl:attribute name="Manifest">CCC.xml</xsl:attribute>
|
<xsl:attribute name="Manifest">CCC.xml</xsl:attribute>
|
||||||
@@ -91,10 +90,13 @@
|
|||||||
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateID">
|
<xsl:attribute name="EstimateID">
|
||||||
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of select="//Envelope/@SoftwareVersion"/>-<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of
|
||||||
|
select="//Envelope/@SoftwareVersion"/>-
|
||||||
|
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateIDv2">
|
<xsl:attribute name="EstimateIDv2">
|
||||||
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-
|
||||||
|
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateFormatVersion">
|
<xsl:attribute name="EstimateFormatVersion">
|
||||||
<xsl:value-of select="//Envelope/@EMSVersion"/>
|
<xsl:value-of select="//Envelope/@EMSVersion"/>
|
||||||
@@ -215,7 +217,8 @@
|
|||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-before(//Admin/@InsuranceZip, '-'))=5">
|
<xsl:when test="string-length(substring-before(//Admin/@InsuranceZip, '-'))=5">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-after(//Admin/@InsuranceZip, '-'))=4">
|
<xsl:when
|
||||||
|
test="string-length(substring-after(//Admin/@InsuranceZip, '-'))=4">
|
||||||
<xsl:value-of select="//Admin/@InsuranceZip"/>
|
<xsl:value-of select="//Admin/@InsuranceZip"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
@@ -226,7 +229,8 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin/@InsuranceZip)=9">
|
<xsl:when test="string-length(//Admin/@InsuranceZip)=9">
|
||||||
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>-<xsl:value-of select="substring(//Admin/@InsuranceZip, 6, 4)"/>
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>-
|
||||||
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 6, 4)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin/@InsuranceZip)>4">
|
<xsl:when test="string-length(//Admin/@InsuranceZip)>4">
|
||||||
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>
|
||||||
@@ -239,7 +243,8 @@
|
|||||||
<xsl:attribute name="Phone">
|
<xsl:attribute name="Phone">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsurancePhone1Ext[. != '']">
|
<xsl:when test="//Admin/@InsurancePhone1Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone1"/> x<xsl:value-of select="//Admin/@InsurancePhone1Ext"/>
|
<xsl:value-of select="//Admin/@InsurancePhone1"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsurancePhone1Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone1"/>
|
<xsl:value-of select="//Admin/@InsurancePhone1"/>
|
||||||
@@ -249,7 +254,8 @@
|
|||||||
<xsl:attribute name="Phone2">
|
<xsl:attribute name="Phone2">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsurancePhone2Ext[. != '']">
|
<xsl:when test="//Admin/@InsurancePhone2Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone2"/> x<xsl:value-of select="//Admin/@InsurancePhone2Ext"/>
|
<xsl:value-of select="//Admin/@InsurancePhone2"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsurancePhone2Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone2"/>
|
<xsl:value-of select="//Admin/@InsurancePhone2"/>
|
||||||
@@ -259,7 +265,8 @@
|
|||||||
<xsl:attribute name="Fax">
|
<xsl:attribute name="Fax">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsuranceFaxExt[. != '']">
|
<xsl:when test="//Admin/@InsuranceFaxExt[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsuranceFax"/> x<xsl:value-of select="//Admin/@InsuranceFaxExt"/>
|
<xsl:value-of select="//Admin/@InsuranceFax"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsuranceFaxExt"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsuranceFax"/>
|
<xsl:value-of select="//Admin/@InsuranceFax"/>
|
||||||
@@ -272,7 +279,7 @@
|
|||||||
</xsl:element>
|
</xsl:element>
|
||||||
<xsl:element name="Insured">
|
<xsl:element name="Insured">
|
||||||
<xsl:attribute name="LastName">
|
<xsl:attribute name="LastName">
|
||||||
<xsl:value-of select="//Admin/@InsuranceLName" />
|
<xsl:value-of select="//Admin/@InsuranceLName"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
<xsl:element name="Claim">
|
<xsl:element name="Claim">
|
||||||
@@ -308,7 +315,8 @@
|
|||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-before(//Admin2/@EstimatorZip, '-'))=5">
|
<xsl:when test="string-length(substring-before(//Admin2/@EstimatorZip, '-'))=5">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-after(//Admin2/@EstimatorZip, '-'))=4">
|
<xsl:when
|
||||||
|
test="string-length(substring-after(//Admin2/@EstimatorZip, '-'))=4">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorZip"/>
|
<xsl:value-of select="//Admin2/@EstimatorZip"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
@@ -319,7 +327,8 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin2/@EstimatorZip)=9">
|
<xsl:when test="string-length(//Admin2/@EstimatorZip)=9">
|
||||||
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>-<xsl:value-of select="substring(//Admin2/@EstimatorZip, 6, 4)"/>
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>-
|
||||||
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 6, 4)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin2/@EstimatorZip)>4">
|
<xsl:when test="string-length(//Admin2/@EstimatorZip)>4">
|
||||||
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>
|
||||||
@@ -332,7 +341,8 @@
|
|||||||
<xsl:attribute name="Phone">
|
<xsl:attribute name="Phone">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorPhone1Ext[. != '']">
|
<xsl:when test="//Admin2/@EstimatorPhone1Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone1"/> x<xsl:value-of select="//Admin2/@EstimatorPhone1Ext"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone1"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorPhone1Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone1"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone1"/>
|
||||||
@@ -342,7 +352,8 @@
|
|||||||
<xsl:attribute name="Phone2">
|
<xsl:attribute name="Phone2">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorPhone2Ext[. != '']">
|
<xsl:when test="//Admin2/@EstimatorPhone2Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone2"/> x<xsl:value-of select="//Admin2/@EstimatorPhone2Ext"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone2"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorPhone2Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone2"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone2"/>
|
||||||
@@ -352,7 +363,8 @@
|
|||||||
<xsl:attribute name="Fax">
|
<xsl:attribute name="Fax">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorFaxExt[. != '']">
|
<xsl:when test="//Admin2/@EstimatorFaxExt[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorFax"/> x<xsl:value-of select="//Admin2/@EstimatorFaxExt"/>
|
<xsl:value-of select="//Admin2/@EstimatorFax"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorFaxExt"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorFax"/>
|
<xsl:value-of select="//Admin2/@EstimatorFax"/>
|
||||||
@@ -368,7 +380,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@VehicleInDate)>6">
|
<xsl:if test="string-length(//Admin2/@VehicleInDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@VehicleInDate, ' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@VehicleInDate, ' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@VehicleInTime)=4">
|
<xsl:if test="string-length(//Admin2/@VehicleInTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@VehicleInTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@VehicleInTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@VehicleInTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@VehicleInTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -376,7 +389,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@TargetVehicleOutDate)>6">
|
<xsl:if test="string-length(//Admin2/@TargetVehicleOutDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@TargetVehicleOutDate,' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@TargetVehicleOutDate,' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@TargetVehicleOutTime)=4">
|
<xsl:if test="string-length(//Admin2/@TargetVehicleOutTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -384,7 +398,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@VehicleOutDate)>6">
|
<xsl:if test="string-length(//Admin2/@VehicleOutDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@VehicleOutDate, ' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@VehicleOutDate, ' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@VehicleOutTime)=4">
|
<xsl:if test="string-length(//Admin2/@VehicleOutTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@VehicleOutTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@VehicleOutTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@VehicleOutTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@VehicleOutTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -394,16 +409,16 @@
|
|||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
<xsl:template match="PartsList">
|
<xsl:template match="PartsList">
|
||||||
<xsl:element name="PartsList" >
|
<xsl:element name="PartsList">
|
||||||
<xsl:for-each select="Part">
|
<xsl:for-each select="Part">
|
||||||
<xsl:element name="Part" >
|
<xsl:element name="Part">
|
||||||
<!-- Part number translation rules -->
|
<!-- Part number translation rules -->
|
||||||
<xsl:variable name="OEMPartNumber">
|
<xsl:variable name="OEMPartNumber">
|
||||||
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) != ' GM PART'">
|
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) != ' GM PART'">
|
||||||
<xsl:value-of select="@TDPartNum" />
|
<xsl:value-of select="@TDPartNum"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) = ' GM PART'">
|
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) = ' GM PART'">
|
||||||
<xsl:value-of select="substring-before(@TDPartNum,' GM PART')" />
|
<xsl:value-of select="substring-before(@TDPartNum,' GM PART')"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<xsl:variable name="AltPartNumber">
|
<xsl:variable name="AltPartNumber">
|
||||||
@@ -476,13 +491,13 @@
|
|||||||
<xsl:value-of select="$PrimaryPartNumber"/>
|
<xsl:value-of select="$PrimaryPartNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="AltPartNum">
|
<xsl:attribute name="AltPartNum">
|
||||||
<xsl:value-of select="$SecondaryPartNumber" />
|
<xsl:value-of select="$SecondaryPartNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="ExternalPartType">
|
<xsl:attribute name="ExternalPartType">
|
||||||
<xsl:value-of select="$PrimaryPartType" />
|
<xsl:value-of select="$PrimaryPartType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="ExternalAltPartType">
|
<xsl:attribute name="ExternalAltPartType">
|
||||||
<xsl:value-of select="$SecondaryPartType" />
|
<xsl:value-of select="$SecondaryPartType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartType">
|
<xsl:attribute name="TDPartType">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
@@ -505,56 +520,56 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartDesc">
|
<xsl:attribute name="TDPartDesc">
|
||||||
<xsl:value-of select="@TDPartDesc" />
|
<xsl:value-of select="@TDPartDesc"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDLineRef">
|
<xsl:attribute name="TDLineRef">
|
||||||
<xsl:value-of select="@TDLineRef" />
|
<xsl:value-of select="@TDLineRef"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDEstimate">
|
<xsl:attribute name="TDEstimate">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@PartType='PAN'">
|
<xsl:when test="@PartType='PAN'">
|
||||||
<xsl:value-of select="@TDEstimate" />
|
<xsl:value-of select="@TDEstimate"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAM'">
|
<xsl:when test="@PartType='PAM'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAA'">
|
<xsl:when test="@PartType='PAA'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAL'">
|
<xsl:when test="@PartType='PAL'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartQty">
|
<xsl:attribute name="TDPartQty">
|
||||||
<xsl:value-of select="@TDPartQty" />
|
<xsl:value-of select="@TDPartQty"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LineNumber">
|
<xsl:attribute name="LineNumber">
|
||||||
<xsl:value-of select="@LineNumber" />
|
<xsl:value-of select="@LineNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="SequenceNumber">
|
<xsl:attribute name="SequenceNumber">
|
||||||
<xsl:value-of select="@SequenceNumber" />
|
<xsl:value-of select="@SequenceNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="SupplLevel">
|
<xsl:attribute name="SupplLevel">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@SupplementLevel = 'E01'">0</xsl:when>
|
<xsl:when test="@SupplementLevel = 'E01'">0</xsl:when>
|
||||||
<xsl:when test="substring(@SupplementLevel, 1, 1) = 'S'">
|
<xsl:when test="substring(@SupplementLevel, 1, 1) = 'S'">
|
||||||
<xsl:value-of select="substring(@SupplementLevel, 2)" />
|
<xsl:value-of select="substring(@SupplementLevel, 2)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>0</xsl:otherwise>
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LaborType">
|
<xsl:attribute name="LaborType">
|
||||||
<xsl:value-of select="@LaborType" />
|
<xsl:value-of select="@LaborType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LaborHours">
|
<xsl:attribute name="LaborHours">
|
||||||
<xsl:value-of select="@LaborHours" />
|
<xsl:value-of select="@LaborHours"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="OperationCode">
|
<xsl:attribute name="OperationCode">
|
||||||
<xsl:value-of select="@LaborOp" />
|
<xsl:value-of select="@LaborOp"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="CLPart">
|
<xsl:attribute name="CLPart">
|
||||||
<!-- CLPart is false if TRAN_CODE == 2 or TRAN_CODE == 3 -->
|
<!-- CLPart is false if TRAN_CODE == 2 or TRAN_CODE == 3 -->
|
||||||
@@ -565,10 +580,14 @@
|
|||||||
<xsl:when test="@TransactionCode='3'">False</xsl:when>
|
<xsl:when test="@TransactionCode='3'">False</xsl:when>
|
||||||
<xsl:when test="@TransactionCode='1' or @TransactionCode ='2'">
|
<xsl:when test="@TransactionCode='1' or @TransactionCode ='2'">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@PartType='PAN' or @PartType='PAG' or @PartType='PAM' or @PartType='PAP' or @PartType='PAL' or @PartType='PAA' or @PartType='PAO' or @PartType='PAR' or @PartType=''" >
|
<xsl:when
|
||||||
|
test="@PartType='PAN' or @PartType='PAG' or @PartType='PAM' or @PartType='PAP' or @PartType='PAL' or @PartType='PAA' or @PartType='PAO' or @PartType='PAR' or @PartType=''">
|
||||||
<!-- we now handle blank part types-->
|
<!-- we now handle blank part types-->
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@LaborType='LAD' or @LaborType='LAE' or @LaborType='LAU' or @LaborType='LAT'">False</xsl:when>
|
<xsl:when
|
||||||
|
test="@LaborType='LAD' or @LaborType='LAE' or @LaborType='LAU' or @LaborType='LAT'">
|
||||||
|
False
|
||||||
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@LaborOp=''">False</xsl:when>
|
<xsl:when test="@LaborOp=''">False</xsl:when>
|
||||||
|
|||||||
@@ -1,125 +1,216 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<TranslationDescriptor>
|
<TranslationDescriptor>
|
||||||
<FileTranslations FormatName="CCC" ElementName="Estimate" Description="Translation Descriptor for a CCC Estimate, Version 2.0">
|
<FileTranslations FormatName="CCC" ElementName="Estimate"
|
||||||
|
Description="Translation Descriptor for a CCC Estimate, Version 2.0">
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.env">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.env">
|
||||||
<DBFFileTranslation ID="ID1" ElementName="Envelope" Description="Envelope Table">
|
<DBFFileTranslation ID="ID1" ElementName="Envelope" Description="Envelope Table">
|
||||||
<DBFFieldSpec FieldName="RO_ID" Form="attribute" Name="RONum" FieldType="" Description="RO Number"/>
|
<DBFFieldSpec FieldName="RO_ID" Form="attribute" Name="RONum" FieldType="" Description="RO Number"/>
|
||||||
<DBFFieldSpec FieldName="UNQFILE_ID" Form="attribute" Name="UniqueFileID" FieldType="" Description="Unique File Identifier"/>
|
<DBFFieldSpec FieldName="UNQFILE_ID" Form="attribute" Name="UniqueFileID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="ESTFILE_ID" Form="attribute" Name="EstimateFileID" FieldType="" Description="Estimate File Identifier"/>
|
Description="Unique File Identifier"/>
|
||||||
<DBFFieldSpec FieldName="INCL_ADMIN" Form="attribute" Name="IncludesAdminInfo" FieldType="Boolean" Description="Includes Admin Info Flag"/>
|
<DBFFieldSpec FieldName="ESTFILE_ID" Form="attribute" Name="EstimateFileID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INCL_VEH" Form="attribute" Name="IncludesVehicleInfo" FieldType="Boolean" Description="Includes Vehicle Info Flag"/>
|
Description="Estimate File Identifier"/>
|
||||||
<DBFFieldSpec FieldName="INCL_EST" Form="attribute" Name="IncludesEstimateInfo" FieldType="Boolean" Description="Includes Estimate Info Flag"/>
|
<DBFFieldSpec FieldName="INCL_ADMIN" Form="attribute" Name="IncludesAdminInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="INCL_PROFL" Form="attribute" Name="IncludesProfileInfo" FieldType="Boolean" Description="Includes Profile Info Flag"/>
|
Description="Includes Admin Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="INCL_TOTAL" Form="attribute" Name="IncludesTotalsInfo" FieldType="Boolean" Description="Includes Totals Info Flag"/>
|
<DBFFieldSpec FieldName="INCL_VEH" Form="attribute" Name="IncludesVehicleInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="INCL_VENDR" Form="attribute" Name="IncludesVendorInfo" FieldType="Boolean" Description="Includes Vendor Info Flag"/>
|
Description="Includes Vehicle Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="EMS_VER" Form="attribute" Name="EMSVersion" FieldType="" Description="EMS Version Number"/>
|
<DBFFieldSpec FieldName="INCL_EST" Form="attribute" Name="IncludesEstimateInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="SUPP_NO" Form="attribute" Name="SupplementNum" FieldType="" Description="Supplement Number"/>
|
Description="Includes Estimate Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="TRANS_TYPE" Form="attribute" Name="TransactionType" FieldType="" Description="Transaction Type"/>
|
<DBFFieldSpec FieldName="INCL_PROFL" Form="attribute" Name="IncludesProfileInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="EST_SYSTEM" Form="attribute" Name="EstimatingSystem" FieldType="" Description="Estimating System Software"/>
|
Description="Includes Profile Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="SW_VERSION" Form="attribute" Name="SoftwareVersion" FieldType="" Description="Software Version Identifier"/>
|
<DBFFieldSpec FieldName="INCL_TOTAL" Form="attribute" Name="IncludesTotalsInfo" FieldType="Boolean"
|
||||||
|
Description="Includes Totals Info Flag"/>
|
||||||
|
<DBFFieldSpec FieldName="INCL_VENDR" Form="attribute" Name="IncludesVendorInfo" FieldType="Boolean"
|
||||||
|
Description="Includes Vendor Info Flag"/>
|
||||||
|
<DBFFieldSpec FieldName="EMS_VER" Form="attribute" Name="EMSVersion" FieldType=""
|
||||||
|
Description="EMS Version Number"/>
|
||||||
|
<DBFFieldSpec FieldName="SUPP_NO" Form="attribute" Name="SupplementNum" FieldType=""
|
||||||
|
Description="Supplement Number"/>
|
||||||
|
<DBFFieldSpec FieldName="TRANS_TYPE" Form="attribute" Name="TransactionType" FieldType=""
|
||||||
|
Description="Transaction Type"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_SYSTEM" Form="attribute" Name="EstimatingSystem" FieldType=""
|
||||||
|
Description="Estimating System Software"/>
|
||||||
|
<DBFFieldSpec FieldName="SW_VERSION" Form="attribute" Name="SoftwareVersion" FieldType=""
|
||||||
|
Description="Software Version Identifier"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.LIN">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.LIN">
|
||||||
<DBFFileTranslation ID="ID2" ElementSetName="PartsList" ElementName="Part" Description="Parts List Table">
|
<DBFFileTranslation ID="ID2" ElementSetName="PartsList" ElementName="Part" Description="Parts List Table">
|
||||||
<DBFFieldSpec FieldName="OEM_PARTNO" Form="attribute" Name="TDPartNum" FieldType="" Description="Part Number"/>
|
<DBFFieldSpec FieldName="OEM_PARTNO" Form="attribute" Name="TDPartNum" FieldType=""
|
||||||
<DBFFieldSpec FieldName="ALT_PARTNO" Form="attribute" Name="AltPartNum" FieldType="" Description="Alternate Part Number"/>
|
Description="Part Number"/>
|
||||||
<DBFFieldSpec FieldName="ACT_PRICE" Form="attribute" Name="ActPrice" FieldType="" Description="Actual Part Price"/>
|
<DBFFieldSpec FieldName="ALT_PARTNO" Form="attribute" Name="AltPartNum" FieldType=""
|
||||||
<DBFFieldSpec FieldName="LINE_DESC" Form="attribute" Name="TDPartDesc" FieldType="" Description="Part Description"/>
|
Description="Alternate Part Number"/>
|
||||||
<DBFFieldSpec FieldName="DB_PRICE" Form="attribute" Name="TDEstimate" FieldType="" Description="DB_Price"/>
|
<DBFFieldSpec FieldName="ACT_PRICE" Form="attribute" Name="ActPrice" FieldType=""
|
||||||
<DBFFieldSpec FieldName="PART_QTY" Form="attribute" Name="TDPartQty" FieldType="" Description="PART_QTY"/>
|
Description="Actual Part Price"/>
|
||||||
|
<DBFFieldSpec FieldName="LINE_DESC" Form="attribute" Name="TDPartDesc" FieldType=""
|
||||||
|
Description="Part Description"/>
|
||||||
|
<DBFFieldSpec FieldName="DB_PRICE" Form="attribute" Name="TDEstimate" FieldType=""
|
||||||
|
Description="DB_Price"/>
|
||||||
|
<DBFFieldSpec FieldName="PART_QTY" Form="attribute" Name="TDPartQty" FieldType=""
|
||||||
|
Description="PART_QTY"/>
|
||||||
<DBFFieldSpec FieldName="LINE_NO" Form="attribute" Name="LineNumber" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="LINE_NO" Form="attribute" Name="LineNumber" FieldType="" Description=""/>
|
||||||
<DBFFieldSpec FieldName="UNQ_SEQ" Form="attribute" Name="SequenceNumber" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="UNQ_SEQ" Form="attribute" Name="SequenceNumber" FieldType="" Description=""/>
|
||||||
<DBFFieldSpec FieldName="PART_TYPE" Form="attribute" Name="PartType" FieldType="" Description="Part Type"/>
|
<DBFFieldSpec FieldName="PART_TYPE" Form="attribute" Name="PartType" FieldType=""
|
||||||
<DBFFieldSpec FieldName="MOD_LBR_TY" Form="attribute" Name="LaborType" FieldType="" Description="Labor Type"/>
|
Description="Part Type"/>
|
||||||
<DBFFieldSpec FieldName="MOD_LB_HRS" Form="attribute" Name="LaborHours" FieldType="" Description="Labor Hours"/>
|
<DBFFieldSpec FieldName="MOD_LBR_TY" Form="attribute" Name="LaborType" FieldType=""
|
||||||
|
Description="Labor Type"/>
|
||||||
|
<DBFFieldSpec FieldName="MOD_LB_HRS" Form="attribute" Name="LaborHours" FieldType=""
|
||||||
|
Description="Labor Hours"/>
|
||||||
<DBFFieldSpec FieldName="LBR_OP" Form="attribute" Name="LaborOp" FieldType="" Description="Labor Op"/>
|
<DBFFieldSpec FieldName="LBR_OP" Form="attribute" Name="LaborOp" FieldType="" Description="Labor Op"/>
|
||||||
<DBFFieldSpec FieldName="LINE_IND" Form="attribute" Name="SupplementLevel" FieldType="" Description="Supplement Level"/>
|
<DBFFieldSpec FieldName="LINE_IND" Form="attribute" Name="SupplementLevel" FieldType=""
|
||||||
<DBFFieldSpec FieldName="TRAN_CODE" Form="attribute" Name="TransactionCode" FieldType="" Description="Transaction Code"/>
|
Description="Supplement Level"/>
|
||||||
<DBFFieldSpec FieldName="LINE_REF" Form="attribute" Name="TDLineRef" FieldType="" Description="Line Reference Number"/>
|
<DBFFieldSpec FieldName="TRAN_CODE" Form="attribute" Name="TransactionCode" FieldType=""
|
||||||
|
Description="Transaction Code"/>
|
||||||
|
<DBFFieldSpec FieldName="LINE_REF" Form="attribute" Name="TDLineRef" FieldType=""
|
||||||
|
Description="Line Reference Number"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.VEH">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.VEH">
|
||||||
<DBFFileTranslation ID="ID3" ElementName="Vehicle" Description="Vehicle Table">
|
<DBFFileTranslation ID="ID3" ElementName="Vehicle" Description="Vehicle Table">
|
||||||
<DBFFieldSpec FieldName="V_VIN" Form="attribute" Name="TransVIN" FieldType="" Description="V_VIN"/>
|
<DBFFieldSpec FieldName="V_VIN" Form="attribute" Name="TransVIN" FieldType="" Description="V_VIN"/>
|
||||||
<DBFFieldSpec FieldName="V_MODEL_YR" Form="attribute" Name="TransYear" FieldType="" Description="V_MODEL_YR"/>
|
<DBFFieldSpec FieldName="V_MODEL_YR" Form="attribute" Name="TransYear" FieldType=""
|
||||||
<DBFFieldSpec FieldName="V_MAKEDESC" Form="attribute" Name="ManufName" FieldType="" Description="V_MAKEDESC"/>
|
Description="V_MODEL_YR"/>
|
||||||
<DBFFieldSpec FieldName="V_MAKECODE" Form="attribute" Name="ManufCode" FieldType="" Description="V_MAKECODE"/>
|
<DBFFieldSpec FieldName="V_MAKEDESC" Form="attribute" Name="ManufName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="V_MODEL" Form="attribute" Name="TransModel" FieldType="" Description="V_MODEL"/>
|
Description="V_MAKEDESC"/>
|
||||||
<DBFFieldSpec FieldName="V_MILEAGE" Form="attribute" Name="TransMileage" FieldType="" Description="V_MILEAGE"/>
|
<DBFFieldSpec FieldName="V_MAKECODE" Form="attribute" Name="ManufCode" FieldType=""
|
||||||
|
Description="V_MAKECODE"/>
|
||||||
|
<DBFFieldSpec FieldName="V_MODEL" Form="attribute" Name="TransModel" FieldType=""
|
||||||
|
Description="V_MODEL"/>
|
||||||
|
<DBFFieldSpec FieldName="V_MILEAGE" Form="attribute" Name="TransMileage" FieldType=""
|
||||||
|
Description="V_MILEAGE"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD1">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD1">
|
||||||
<DBFFileTranslation ID="ID4" ElementName="Admin" Description="Administrative information">
|
<DBFFileTranslation ID="ID4" ElementName="Admin" Description="Administrative information">
|
||||||
<DBFFieldSpec FieldName="OWNR_LN" Form="attribute" Name="OwnerL" FieldType="" Description="Owner Lastname"/>
|
<DBFFieldSpec FieldName="OWNR_LN" Form="attribute" Name="OwnerL" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_FN" Form="attribute" Name="OwnerF" FieldType="" Description="Owner Firstname"/>
|
Description="Owner Lastname"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_CO_NM" Form="attribute" Name="OwnerCompanyName" FieldType="" Description="Owner Company Name"/>
|
<DBFFieldSpec FieldName="OWNR_FN" Form="attribute" Name="OwnerF" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_TITLE" Form="attribute" Name="OwnerTitle" FieldType="" Description="Owner Title"/>
|
Description="Owner Firstname"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_ADDR1" Form="attribute" Name="OwnerAddr1" FieldType="" Description="Owner Address Line 1"/>
|
<DBFFieldSpec FieldName="OWNR_CO_NM" Form="attribute" Name="OwnerCompanyName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_ADDR2" Form="attribute" Name="OwnerAddr2" FieldType="" Description="Owner Address Line 2"/>
|
Description="Owner Company Name"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_CITY" Form="attribute" Name="OwnerCity" FieldType="" Description="Owner City"/>
|
<DBFFieldSpec FieldName="OWNR_TITLE" Form="attribute" Name="OwnerTitle" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_ST" Form="attribute" Name="OwnerState" FieldType="" Description="Owner State"/>
|
Description="Owner Title"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_ZIP" Form="attribute" Name="OwnerZip" FieldType="" Description="Owner Zip"/>
|
<DBFFieldSpec FieldName="OWNR_ADDR1" Form="attribute" Name="OwnerAddr1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_CTRY" Form="attribute" Name="OwnerCountry" FieldType="" Description="Owner Country"/>
|
Description="Owner Address Line 1"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_PH1" Form="attribute" Name="OwnerPhone1" FieldType="" Description="Owner Primary Phone"/>
|
<DBFFieldSpec FieldName="OWNR_ADDR2" Form="attribute" Name="OwnerAddr2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_PH1X" Form="attribute" Name="OwnerPhone1Ext" FieldType="" Description="Owner Primary Phone Extension"/>
|
Description="Owner Address Line 2"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_PH2" Form="attribute" Name="OwnerPhone2" FieldType="" Description="Owner Secondary Phone"/>
|
<DBFFieldSpec FieldName="OWNR_CITY" Form="attribute" Name="OwnerCity" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_PH2X" Form="attribute" Name="OwnerPhone2Ext" FieldType="" Description="Owner Secondary Phone Extension"/>
|
Description="Owner City"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_FAX" Form="attribute" Name="OwnerFax" FieldType="" Description="Owner Fax"/>
|
<DBFFieldSpec FieldName="OWNR_ST" Form="attribute" Name="OwnerState" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_FAXX" Form="attribute" Name="OwnerFaxExt" FieldType="" Description="Owner Fax Extension"/>
|
Description="Owner State"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_EA" Form="attribute" Name="OwnerEmail" FieldType="" Description="Owner Email Address"/>
|
<DBFFieldSpec FieldName="OWNR_ZIP" Form="attribute" Name="OwnerZip" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_CO_NM" Form="attribute" Name="InsuranceCompanyName" FieldType="" Description="Insurance Company Name"/>
|
Description="Owner Zip"/>
|
||||||
<DBFFieldSpec FieldName="INS_CO_ID" Form="attribute" Name="InsuranceCompanyID" FieldType="" Description="Insurance Company Identifier"/>
|
<DBFFieldSpec FieldName="OWNR_CTRY" Form="attribute" Name="OwnerCountry" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_ADDR1" Form="attribute" Name="InsuranceAddr1" FieldType="" Description="Insurance Address Line 1"/>
|
Description="Owner Country"/>
|
||||||
<DBFFieldSpec FieldName="INS_ADDR2" Form="attribute" Name="InsuranceAddr2" FieldType="" Description="Insurance Address Line 2"/>
|
<DBFFieldSpec FieldName="OWNR_PH1" Form="attribute" Name="OwnerPhone1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_CITY" Form="attribute" Name="InsuranceCity" FieldType="" Description="Insurance City"/>
|
Description="Owner Primary Phone"/>
|
||||||
<DBFFieldSpec FieldName="INS_ST" Form="attribute" Name="InsuranceState" FieldType="" Description="Insurance State"/>
|
<DBFFieldSpec FieldName="OWNR_PH1X" Form="attribute" Name="OwnerPhone1Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_ZIP" Form="attribute" Name="InsuranceZip" FieldType="" Description="Insurance Zip"/>
|
Description="Owner Primary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="INS_CTRY" Form="attribute" Name="InsuranceCountry" FieldType="" Description="Insurance Country"/>
|
<DBFFieldSpec FieldName="OWNR_PH2" Form="attribute" Name="OwnerPhone2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_PH1" Form="attribute" Name="InsurancePhone1" FieldType="" Description="Insurance Primary Phone"/>
|
Description="Owner Secondary Phone"/>
|
||||||
<DBFFieldSpec FieldName="INS_PH1X" Form="attribute" Name="InsurancePhone1Ext" FieldType="" Description="Insurance Primary Phone Extension"/>
|
<DBFFieldSpec FieldName="OWNR_PH2X" Form="attribute" Name="OwnerPhone2Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_PH2" Form="attribute" Name="InsurancePhone2" FieldType="" Description="Insurance Secondary Phone"/>
|
Description="Owner Secondary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="INS_PH2X" Form="attribute" Name="InsurancePhone2Ext" FieldType="" Description="Insurance Secondary Phone Extension"/>
|
<DBFFieldSpec FieldName="OWNR_FAX" Form="attribute" Name="OwnerFax" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_FAX" Form="attribute" Name="InsuranceFax" FieldType="" Description="Insurance Fax"/>
|
Description="Owner Fax"/>
|
||||||
<DBFFieldSpec FieldName="INS_FAXX" Form="attribute" Name="InsuranceFaxExt" FieldType="" Description="Insurance Fax Extension"/>
|
<DBFFieldSpec FieldName="OWNR_FAXX" Form="attribute" Name="OwnerFaxExt" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_EA" Form="attribute" Name="InsuranceEmail" FieldType="" Description="Insurance Email Address"/>
|
Description="Owner Fax Extension"/>
|
||||||
<DBFFieldSpec FieldName="INSD_LN" Form="attribute" Name="InsuranceLName" FieldType="" Description="Insurance Last Name"/>
|
<DBFFieldSpec FieldName="OWNR_EA" Form="attribute" Name="OwnerEmail" FieldType=""
|
||||||
<DBFFieldSpec FieldName="CLM_NO" Form="attribute" Name="ClaimNumber" FieldType="" Description="Claim Number"/>
|
Description="Owner Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CO_NM" Form="attribute" Name="InsuranceCompanyName" FieldType=""
|
||||||
|
Description="Insurance Company Name"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CO_ID" Form="attribute" Name="InsuranceCompanyID" FieldType=""
|
||||||
|
Description="Insurance Company Identifier"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ADDR1" Form="attribute" Name="InsuranceAddr1" FieldType=""
|
||||||
|
Description="Insurance Address Line 1"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ADDR2" Form="attribute" Name="InsuranceAddr2" FieldType=""
|
||||||
|
Description="Insurance Address Line 2"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CITY" Form="attribute" Name="InsuranceCity" FieldType=""
|
||||||
|
Description="Insurance City"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ST" Form="attribute" Name="InsuranceState" FieldType=""
|
||||||
|
Description="Insurance State"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ZIP" Form="attribute" Name="InsuranceZip" FieldType=""
|
||||||
|
Description="Insurance Zip"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CTRY" Form="attribute" Name="InsuranceCountry" FieldType=""
|
||||||
|
Description="Insurance Country"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH1" Form="attribute" Name="InsurancePhone1" FieldType=""
|
||||||
|
Description="Insurance Primary Phone"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH1X" Form="attribute" Name="InsurancePhone1Ext" FieldType=""
|
||||||
|
Description="Insurance Primary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH2" Form="attribute" Name="InsurancePhone2" FieldType=""
|
||||||
|
Description="Insurance Secondary Phone"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH2X" Form="attribute" Name="InsurancePhone2Ext" FieldType=""
|
||||||
|
Description="Insurance Secondary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_FAX" Form="attribute" Name="InsuranceFax" FieldType=""
|
||||||
|
Description="Insurance Fax"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_FAXX" Form="attribute" Name="InsuranceFaxExt" FieldType=""
|
||||||
|
Description="Insurance Fax Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_EA" Form="attribute" Name="InsuranceEmail" FieldType=""
|
||||||
|
Description="Insurance Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="INSD_LN" Form="attribute" Name="InsuranceLName" FieldType=""
|
||||||
|
Description="Insurance Last Name"/>
|
||||||
|
<DBFFieldSpec FieldName="CLM_NO" Form="attribute" Name="ClaimNumber" FieldType=""
|
||||||
|
Description="Claim Number"/>
|
||||||
|
|
||||||
|
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD2">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD2">
|
||||||
<DBFFileTranslation ID="ID5" ElementName="Admin2" Description="Administrative information2">
|
<DBFFileTranslation ID="ID5" ElementName="Admin2" Description="Administrative information2">
|
||||||
<DBFFieldSpec FieldName="EST_CT_LN" Form="attribute" Name="EstimatorL" FieldType="" Description="Estimator Lastname"/>
|
<DBFFieldSpec FieldName="EST_CT_LN" Form="attribute" Name="EstimatorL" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CT_FN" Form="attribute" Name="EstimatorF" FieldType="" Description="Estimator Firstname"/>
|
Description="Estimator Lastname"/>
|
||||||
<DBFFieldSpec FieldName="EST_CO_NM" Form="attribute" Name="EstimatorCompanyName" FieldType="" Description="Estimator Company Name"/>
|
<DBFFieldSpec FieldName="EST_CT_FN" Form="attribute" Name="EstimatorF" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CO_ID" Form="attribute" Name="EstimatorCompanyID" FieldType="" Description="Estimator Company Identifier"/>
|
Description="Estimator Firstname"/>
|
||||||
<DBFFieldSpec FieldName="EST_ADDR1" Form="attribute" Name="EstimatorAddr1" FieldType="" Description="Estimator Address1"/>
|
<DBFFieldSpec FieldName="EST_CO_NM" Form="attribute" Name="EstimatorCompanyName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_ADDR2" Form="attribute" Name="EstimatorAddr2" FieldType="" Description="Estimator Address2"/>
|
Description="Estimator Company Name"/>
|
||||||
<DBFFieldSpec FieldName="EST_CITY" Form="attribute" Name="EstimatorCity" FieldType="" Description="Estimator City"/>
|
<DBFFieldSpec FieldName="EST_CO_ID" Form="attribute" Name="EstimatorCompanyID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_ST" Form="attribute" Name="EstimatorState" FieldType="" Description="Estimator State"/>
|
Description="Estimator Company Identifier"/>
|
||||||
<DBFFieldSpec FieldName="EST_ZIP" Form="attribute" Name="EstimatorZip" FieldType="" Description="Estimator Zip"/>
|
<DBFFieldSpec FieldName="EST_ADDR1" Form="attribute" Name="EstimatorAddr1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CTRY" Form="attribute" Name="EstimatorCountry" FieldType="" Description="Estimator Country"/>
|
Description="Estimator Address1"/>
|
||||||
<DBFFieldSpec FieldName="EST_PH1" Form="attribute" Name="EstimatorPhone1" FieldType="" Description="Estimator Primary Phone"/>
|
<DBFFieldSpec FieldName="EST_ADDR2" Form="attribute" Name="EstimatorAddr2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_PH1X" Form="attribute" Name="EstimatorPhone1Ext" FieldType="" Description="Estimator Primary Phone Extension"/>
|
Description="Estimator Address2"/>
|
||||||
<DBFFieldSpec FieldName="EST_PH2" Form="attribute" Name="EstimatorPhone2" FieldType="" Description="Estimator Secondary Phone"/>
|
<DBFFieldSpec FieldName="EST_CITY" Form="attribute" Name="EstimatorCity" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_PH2X" Form="attribute" Name="EstimatorPhone2Ext" FieldType="" Description="Estimator Secondary Phone Extension"/>
|
Description="Estimator City"/>
|
||||||
<DBFFieldSpec FieldName="EST_FAX" Form="attribute" Name="EstimatorFax" FieldType="" Description="Estimator Fax"/>
|
<DBFFieldSpec FieldName="EST_ST" Form="attribute" Name="EstimatorState" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_FAXX" Form="attribute" Name="EstimatorFaxExt" FieldType="" Description="Estimator Fax Extension"/>
|
Description="Estimator State"/>
|
||||||
<DBFFieldSpec FieldName="EST_EA" Form="attribute" Name="EstimatorEmail" FieldType="" Description="Estimator Email Address"/>
|
<DBFFieldSpec FieldName="EST_ZIP" Form="attribute" Name="EstimatorZip" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_LIC_NO" Form="attribute" Name="EstimatorLicenseNumber" FieldType="" Description="Estimator License Number"/>
|
Description="Estimator Zip"/>
|
||||||
<DBFFieldSpec FieldName="EST_FILENO" Form="attribute" Name="EstimatorFileNumber" FieldType="" Description="Estimator File Number"/>
|
<DBFFieldSpec FieldName="EST_CTRY" Form="attribute" Name="EstimatorCountry" FieldType=""
|
||||||
<DBFFieldSpec FieldName="RO_IN_DATE" Form="attribute" Name="VehicleInDate" FieldType="" Description="Date arrived in shop"/>
|
Description="Estimator Country"/>
|
||||||
<DBFFieldSpec FieldName="RO_IN_TIME" Form="attribute" Name="VehicleInTime" FieldType="" Description="Time arrived in shop"/>
|
<DBFFieldSpec FieldName="EST_PH1" Form="attribute" Name="EstimatorPhone1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="TAR_DATE" Form="attribute" Name="TargetVehicleOutDate" FieldType="" Description="Target date to be completed"/>
|
Description="Estimator Primary Phone"/>
|
||||||
<DBFFieldSpec FieldName="TAR_TIME" Form="attribute" Name="TargetVehicleOutTime" FieldType="" Description="Target time to be completed"/>
|
<DBFFieldSpec FieldName="EST_PH1X" Form="attribute" Name="EstimatorPhone1Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="RO_CMPDATE" Form="attribute" Name="VehicleOutDate" FieldType="" Description="Date completed"/>
|
Description="Estimator Primary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="RO_CMPTIME" Form="attribute" Name="VehicleOutTime" FieldType="" Description="Time completed"/>
|
<DBFFieldSpec FieldName="EST_PH2" Form="attribute" Name="EstimatorPhone2" FieldType=""
|
||||||
|
Description="Estimator Secondary Phone"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_PH2X" Form="attribute" Name="EstimatorPhone2Ext" FieldType=""
|
||||||
|
Description="Estimator Secondary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FAX" Form="attribute" Name="EstimatorFax" FieldType=""
|
||||||
|
Description="Estimator Fax"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FAXX" Form="attribute" Name="EstimatorFaxExt" FieldType=""
|
||||||
|
Description="Estimator Fax Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_EA" Form="attribute" Name="EstimatorEmail" FieldType=""
|
||||||
|
Description="Estimator Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_LIC_NO" Form="attribute" Name="EstimatorLicenseNumber" FieldType=""
|
||||||
|
Description="Estimator License Number"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FILENO" Form="attribute" Name="EstimatorFileNumber" FieldType=""
|
||||||
|
Description="Estimator File Number"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_IN_DATE" Form="attribute" Name="VehicleInDate" FieldType=""
|
||||||
|
Description="Date arrived in shop"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_IN_TIME" Form="attribute" Name="VehicleInTime" FieldType=""
|
||||||
|
Description="Time arrived in shop"/>
|
||||||
|
<DBFFieldSpec FieldName="TAR_DATE" Form="attribute" Name="TargetVehicleOutDate" FieldType=""
|
||||||
|
Description="Target date to be completed"/>
|
||||||
|
<DBFFieldSpec FieldName="TAR_TIME" Form="attribute" Name="TargetVehicleOutTime" FieldType=""
|
||||||
|
Description="Target time to be completed"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_CMPDATE" Form="attribute" Name="VehicleOutDate" FieldType=""
|
||||||
|
Description="Date completed"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_CMPTIME" Form="attribute" Name="VehicleOutTime" FieldType=""
|
||||||
|
Description="Time completed"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.TTL">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.TTL">
|
||||||
<DBFFileTranslation ID="ID6" ElementName="Total" Description="Total Table">
|
<DBFFileTranslation ID="ID6" ElementName="Total" Description="Total Table">
|
||||||
<DBFFieldSpec FieldName="G_TTL_AMT" Form="attribute" Name="GrandTotalAmount" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="G_TTL_AMT" Form="attribute" Name="GrandTotalAmount" FieldType=""
|
||||||
|
Description=""/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
</FileTranslations>
|
</FileTranslations>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||||
|
|
||||||
<xsl:template match="/">
|
<xsl:template match="/">
|
||||||
<xsl:for-each select="//TranslatedData">
|
<xsl:for-each select="//TranslatedData">
|
||||||
@@ -9,23 +9,23 @@
|
|||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="Details/@PrgID">
|
<xsl:when test="Details/@PrgID">
|
||||||
<xsl:copy-of select="Details" />
|
<xsl:copy-of select="Details"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:element name="Details">
|
<xsl:element name="Details">
|
||||||
<xsl:attribute name="PrgID">OECTrans.ImportTrans</xsl:attribute>
|
<xsl:attribute name="PrgID">OECTrans.ImportTrans</xsl:attribute>
|
||||||
<xsl:for-each select="Details/@*">
|
<xsl:for-each select="Details/@*">
|
||||||
<xsl:copy-of select="." />
|
<xsl:copy-of select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
<xsl:for-each select="Details/*">
|
<xsl:for-each select="Details/*">
|
||||||
<xsl:copy-of select="." />
|
<xsl:copy-of select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
<xsl:element name="Header">
|
<xsl:element name="Header">
|
||||||
<xsl:attribute name="RONum">
|
<xsl:attribute name="RONum">
|
||||||
<xsl:value-of select="//Envelope/@RONum" />
|
<xsl:value-of select="//Envelope/@RONum"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="OwnerFName">
|
<xsl:attribute name="OwnerFName">
|
||||||
<xsl:value-of select="//Admin/@OwnerF"/>
|
<xsl:value-of select="//Admin/@OwnerF"/>
|
||||||
@@ -34,42 +34,42 @@
|
|||||||
<xsl:value-of select="//Admin/@OwnerL"/>
|
<xsl:value-of select="//Admin/@OwnerL"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="VIN">
|
<xsl:attribute name="VIN">
|
||||||
<xsl:value-of select="//Vehicle/@TransVIN" />
|
<xsl:value-of select="//Vehicle/@TransVIN"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Mileage">
|
<xsl:attribute name="Mileage">
|
||||||
<xsl:value-of select="//Vehicle/@TransMileage" />
|
<xsl:value-of select="//Vehicle/@TransMileage"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Year">
|
<xsl:attribute name="Year">
|
||||||
<xsl:value-of select="//Vehicle/@TransYear" />
|
<xsl:value-of select="//Vehicle/@TransYear"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Make">
|
<xsl:attribute name="Make">
|
||||||
<xsl:if test="//Vehicle/@ManufName[. != '']" >
|
<xsl:if test="//Vehicle/@ManufName[. != '']">
|
||||||
<xsl:value-of select="//Vehicle/@ManufName" />
|
<xsl:value-of select="//Vehicle/@ManufName"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="//Vehicle/@ManufName[. = '']" >
|
<xsl:if test="//Vehicle/@ManufName[. = '']">
|
||||||
<xsl:value-of select="//Vehicle/@ManufCode" />
|
<xsl:value-of select="//Vehicle/@ManufCode"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Model">
|
<xsl:attribute name="Model">
|
||||||
<xsl:value-of select="//Vehicle/@TransModel" />
|
<xsl:value-of select="//Vehicle/@TransModel"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="Description">
|
<xsl:attribute name="Description">
|
||||||
<xsl:value-of select="//Vehicle/@TransYear" />
|
<xsl:value-of select="//Vehicle/@TransYear"/>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text></xsl:text>
|
||||||
<xsl:value-of select="//Vehicle/@ManufName" />
|
<xsl:value-of select="//Vehicle/@ManufName"/>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text></xsl:text>
|
||||||
<xsl:value-of select="//Vehicle/@TransModel" />
|
<xsl:value-of select="//Vehicle/@TransModel"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LastSupplLevel">
|
<xsl:attribute name="LastSupplLevel">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(//Envelope/@SupplementNum) > 0">
|
<xsl:when test="string-length(//Envelope/@SupplementNum) > 0">
|
||||||
<xsl:value-of select="//Envelope/@SupplementNum" />
|
<xsl:value-of select="//Envelope/@SupplementNum"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>0</xsl:otherwise>
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
<xsl:apply-templates select="PartsList" />
|
<xsl:apply-templates select="PartsList"/>
|
||||||
<xsl:element name="Envelope">
|
<xsl:element name="Envelope">
|
||||||
<xsl:element name="Software">
|
<xsl:element name="Software">
|
||||||
<xsl:attribute name="Manifest">Mitchell.xml</xsl:attribute>
|
<xsl:attribute name="Manifest">Mitchell.xml</xsl:attribute>
|
||||||
@@ -90,10 +90,13 @@
|
|||||||
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
<xsl:value-of select="//Envelope/@UniqueFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateID">
|
<xsl:attribute name="EstimateID">
|
||||||
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of select="//Envelope/@SoftwareVersion"/>-<xsl:value-of select="//Envelope/@EstimateFileID"/>
|
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of
|
||||||
|
select="//Envelope/@SoftwareVersion"/>-
|
||||||
|
<xsl:value-of select="//Envelope/@EstimateFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateIDv2">
|
<xsl:attribute name="EstimateIDv2">
|
||||||
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-<xsl:value-of select="//Envelope/@EstimateFileID"/>
|
<xsl:value-of select="//Envelope/@EstimatingSystem"/>-
|
||||||
|
<xsl:value-of select="//Envelope/@EstimateFileID"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="EstimateFormatVersion">
|
<xsl:attribute name="EstimateFormatVersion">
|
||||||
<xsl:value-of select="//Envelope/@EMSVersion"/>
|
<xsl:value-of select="//Envelope/@EMSVersion"/>
|
||||||
@@ -214,7 +217,8 @@
|
|||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-before(//Admin/@InsuranceZip, '-'))=5">
|
<xsl:when test="string-length(substring-before(//Admin/@InsuranceZip, '-'))=5">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-after(//Admin/@InsuranceZip, '-'))=4">
|
<xsl:when
|
||||||
|
test="string-length(substring-after(//Admin/@InsuranceZip, '-'))=4">
|
||||||
<xsl:value-of select="//Admin/@InsuranceZip"/>
|
<xsl:value-of select="//Admin/@InsuranceZip"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
@@ -225,7 +229,8 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin/@InsuranceZip)=9">
|
<xsl:when test="string-length(//Admin/@InsuranceZip)=9">
|
||||||
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>-<xsl:value-of select="substring(//Admin/@InsuranceZip, 6, 4)"/>
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>-
|
||||||
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 6, 4)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin/@InsuranceZip)>4">
|
<xsl:when test="string-length(//Admin/@InsuranceZip)>4">
|
||||||
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>
|
<xsl:value-of select="substring(//Admin/@InsuranceZip, 1, 5)"/>
|
||||||
@@ -238,7 +243,8 @@
|
|||||||
<xsl:attribute name="Phone">
|
<xsl:attribute name="Phone">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsurancePhone1Ext[. != '']">
|
<xsl:when test="//Admin/@InsurancePhone1Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone1"/> x<xsl:value-of select="//Admin/@InsurancePhone1Ext"/>
|
<xsl:value-of select="//Admin/@InsurancePhone1"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsurancePhone1Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone1"/>
|
<xsl:value-of select="//Admin/@InsurancePhone1"/>
|
||||||
@@ -248,7 +254,8 @@
|
|||||||
<xsl:attribute name="Phone2">
|
<xsl:attribute name="Phone2">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsurancePhone2Ext[. != '']">
|
<xsl:when test="//Admin/@InsurancePhone2Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone2"/> x<xsl:value-of select="//Admin/@InsurancePhone2Ext"/>
|
<xsl:value-of select="//Admin/@InsurancePhone2"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsurancePhone2Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsurancePhone2"/>
|
<xsl:value-of select="//Admin/@InsurancePhone2"/>
|
||||||
@@ -258,7 +265,8 @@
|
|||||||
<xsl:attribute name="Fax">
|
<xsl:attribute name="Fax">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin/@InsuranceFaxExt[. != '']">
|
<xsl:when test="//Admin/@InsuranceFaxExt[. != '']">
|
||||||
<xsl:value-of select="//Admin/@InsuranceFax"/> x<xsl:value-of select="//Admin/@InsuranceFaxExt"/>
|
<xsl:value-of select="//Admin/@InsuranceFax"/> x
|
||||||
|
<xsl:value-of select="//Admin/@InsuranceFaxExt"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin/@InsuranceFax"/>
|
<xsl:value-of select="//Admin/@InsuranceFax"/>
|
||||||
@@ -310,7 +318,8 @@
|
|||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-before(//Admin2/@EstimatorZip, '-'))=5">
|
<xsl:when test="string-length(substring-before(//Admin2/@EstimatorZip, '-'))=5">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="string-length(substring-after(//Admin2/@EstimatorZip, '-'))=4">
|
<xsl:when
|
||||||
|
test="string-length(substring-after(//Admin2/@EstimatorZip, '-'))=4">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorZip"/>
|
<xsl:value-of select="//Admin2/@EstimatorZip"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
@@ -321,7 +330,8 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin2/@EstimatorZip)=9">
|
<xsl:when test="string-length(//Admin2/@EstimatorZip)=9">
|
||||||
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>-<xsl:value-of select="substring(//Admin2/@EstimatorZip, 6, 4)"/>
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>-
|
||||||
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 6, 4)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="string-length(//Admin2/@EstimatorZip)>4">
|
<xsl:when test="string-length(//Admin2/@EstimatorZip)>4">
|
||||||
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>
|
<xsl:value-of select="substring(//Admin2/@EstimatorZip, 1, 5)"/>
|
||||||
@@ -334,7 +344,8 @@
|
|||||||
<xsl:attribute name="Phone">
|
<xsl:attribute name="Phone">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorPhone1Ext[. != '']">
|
<xsl:when test="//Admin2/@EstimatorPhone1Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone1"/> x<xsl:value-of select="//Admin2/@EstimatorPhone1Ext"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone1"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorPhone1Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone1"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone1"/>
|
||||||
@@ -344,7 +355,8 @@
|
|||||||
<xsl:attribute name="Phone2">
|
<xsl:attribute name="Phone2">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorPhone2Ext[. != '']">
|
<xsl:when test="//Admin2/@EstimatorPhone2Ext[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone2"/> x<xsl:value-of select="//Admin2/@EstimatorPhone2Ext"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone2"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorPhone2Ext"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorPhone2"/>
|
<xsl:value-of select="//Admin2/@EstimatorPhone2"/>
|
||||||
@@ -354,7 +366,8 @@
|
|||||||
<xsl:attribute name="Fax">
|
<xsl:attribute name="Fax">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="//Admin2/@EstimatorFaxExt[. != '']">
|
<xsl:when test="//Admin2/@EstimatorFaxExt[. != '']">
|
||||||
<xsl:value-of select="//Admin2/@EstimatorFax"/> x<xsl:value-of select="//Admin2/@EstimatorFaxExt"/>
|
<xsl:value-of select="//Admin2/@EstimatorFax"/> x
|
||||||
|
<xsl:value-of select="//Admin2/@EstimatorFaxExt"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="//Admin2/@EstimatorFax"/>
|
<xsl:value-of select="//Admin2/@EstimatorFax"/>
|
||||||
@@ -370,7 +383,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@VehicleInDate)>6">
|
<xsl:if test="string-length(//Admin2/@VehicleInDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@VehicleInDate, ' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@VehicleInDate, ' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@VehicleInTime)=4">
|
<xsl:if test="string-length(//Admin2/@VehicleInTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@VehicleInTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@VehicleInTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@VehicleInTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@VehicleInTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -378,7 +392,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@TargetVehicleOutDate)>6">
|
<xsl:if test="string-length(//Admin2/@TargetVehicleOutDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@TargetVehicleOutDate,' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@TargetVehicleOutDate,' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@TargetVehicleOutTime)=4">
|
<xsl:if test="string-length(//Admin2/@TargetVehicleOutTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@TargetVehicleOutTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -386,7 +401,8 @@
|
|||||||
<xsl:if test="string-length(//Admin2/@VehicleOutDate)>6">
|
<xsl:if test="string-length(//Admin2/@VehicleOutDate)>6">
|
||||||
<xsl:value-of select="substring-before(//Admin2/@VehicleOutDate, ' ')"/>
|
<xsl:value-of select="substring-before(//Admin2/@VehicleOutDate, ' ')"/>
|
||||||
<xsl:if test="string-length(//Admin2/@VehicleOutTime)=4">
|
<xsl:if test="string-length(//Admin2/@VehicleOutTime)=4">
|
||||||
 <xsl:value-of select="substring(//Admin2/@VehicleOutTime, 1, 2)"/>:<xsl:value-of select="substring(//Admin2/@VehicleOutTime, 3, 2)"/>
|
 <xsl:value-of select="substring(//Admin2/@VehicleOutTime, 1, 2)"/>:
|
||||||
|
<xsl:value-of select="substring(//Admin2/@VehicleOutTime, 3, 2)"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
@@ -396,16 +412,16 @@
|
|||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
<xsl:template match="PartsList">
|
<xsl:template match="PartsList">
|
||||||
<xsl:element name="PartsList" >
|
<xsl:element name="PartsList">
|
||||||
<xsl:for-each select="Part">
|
<xsl:for-each select="Part">
|
||||||
<xsl:element name="Part" >
|
<xsl:element name="Part">
|
||||||
<!-- Part number translation rules -->
|
<!-- Part number translation rules -->
|
||||||
<xsl:variable name="OEMPartNumber">
|
<xsl:variable name="OEMPartNumber">
|
||||||
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) != ' GM PART'">
|
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) != ' GM PART'">
|
||||||
<xsl:value-of select="@TDPartNum" />
|
<xsl:value-of select="@TDPartNum"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) = ' GM PART'">
|
<xsl:if test="substring(@TDPartNum, string-length(@TDPartNum) - 7) = ' GM PART'">
|
||||||
<xsl:value-of select="substring-before(@TDPartNum,' GM PART')" />
|
<xsl:value-of select="substring-before(@TDPartNum,' GM PART')"/>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<xsl:variable name="AltPartNumber">
|
<xsl:variable name="AltPartNumber">
|
||||||
@@ -448,13 +464,13 @@
|
|||||||
<xsl:value-of select="$PrimaryPartNumber"/>
|
<xsl:value-of select="$PrimaryPartNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="AltPartNum">
|
<xsl:attribute name="AltPartNum">
|
||||||
<xsl:value-of select="$SecondaryPartNumber" />
|
<xsl:value-of select="$SecondaryPartNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="ExternalPartType">
|
<xsl:attribute name="ExternalPartType">
|
||||||
<xsl:value-of select="$PrimaryPartType" />
|
<xsl:value-of select="$PrimaryPartType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="ExternalAltPartType">
|
<xsl:attribute name="ExternalAltPartType">
|
||||||
<xsl:value-of select="$SecondaryPartType" />
|
<xsl:value-of select="$SecondaryPartType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartType">
|
<xsl:attribute name="TDPartType">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
@@ -479,59 +495,59 @@
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartDesc">
|
<xsl:attribute name="TDPartDesc">
|
||||||
<xsl:value-of select="@TDPartDesc" />
|
<xsl:value-of select="@TDPartDesc"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDEstimate">
|
<xsl:attribute name="TDEstimate">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@PartType='PAN'">
|
<xsl:when test="@PartType='PAN'">
|
||||||
<xsl:value-of select="@TDEstimate" />
|
<xsl:value-of select="@TDEstimate"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAM'">
|
<xsl:when test="@PartType='PAM'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAA'">
|
<xsl:when test="@PartType='PAA'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@PartType='PAL'">
|
<xsl:when test="@PartType='PAL'">
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:value-of select="@ActPrice" />
|
<xsl:value-of select="@ActPrice"/>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="TDPartQty">
|
<xsl:attribute name="TDPartQty">
|
||||||
<xsl:value-of select="@TDPartQty" />
|
<xsl:value-of select="@TDPartQty"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LineNumber">
|
<xsl:attribute name="LineNumber">
|
||||||
<xsl:value-of select="@LineNumber" />
|
<xsl:value-of select="@LineNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="SequenceNumber">
|
<xsl:attribute name="SequenceNumber">
|
||||||
<xsl:value-of select="@SequenceNumber" />
|
<xsl:value-of select="@SequenceNumber"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="SupplLevel">
|
<xsl:attribute name="SupplLevel">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@SupplementLevel = 'E'">0</xsl:when>
|
<xsl:when test="@SupplementLevel = 'E'">0</xsl:when>
|
||||||
<xsl:when test="substring(@SupplementLevel, 1, 1) = 'S'">
|
<xsl:when test="substring(@SupplementLevel, 1, 1) = 'S'">
|
||||||
<xsl:value-of select="substring(@SupplementLevel, 2)" />
|
<xsl:value-of select="substring(@SupplementLevel, 2)"/>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>0</xsl:otherwise>
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LaborType">
|
<xsl:attribute name="LaborType">
|
||||||
<xsl:value-of select="@LaborType" />
|
<xsl:value-of select="@LaborType"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="LaborHours">
|
<xsl:attribute name="LaborHours">
|
||||||
<xsl:value-of select="@LaborHours" />
|
<xsl:value-of select="@LaborHours"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="OperationCode">
|
<xsl:attribute name="OperationCode">
|
||||||
<xsl:value-of select="@LaborOp" />
|
<xsl:value-of select="@LaborOp"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="GlassFlag">
|
<xsl:attribute name="GlassFlag">
|
||||||
<xsl:value-of select="@GlassFlag" />
|
<xsl:value-of select="@GlassFlag"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="MarkUp">
|
<xsl:attribute name="MarkUp">
|
||||||
<xsl:value-of select="@MarkUp" />
|
<xsl:value-of select="@MarkUp"/>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:attribute name="CLPart">
|
<xsl:attribute name="CLPart">
|
||||||
<!-- CLPart is false if TRAN_CODE == 2 or TRAN_CODE == 3 -->
|
<!-- CLPart is false if TRAN_CODE == 2 or TRAN_CODE == 3 -->
|
||||||
@@ -542,9 +558,13 @@
|
|||||||
<xsl:when test="@TransactionCode='3'">False</xsl:when>
|
<xsl:when test="@TransactionCode='3'">False</xsl:when>
|
||||||
<xsl:when test="@TransactionCode='1' or @TransactionCode='2'">
|
<xsl:when test="@TransactionCode='1' or @TransactionCode='2'">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@PartType='PAN' or @PartType='PAG' or @PartType='PAM' or @PartType='PAP' or @PartType='PAL' or @PartType='PAA' or @PartType='PAR' or @PartType='PAC'">
|
<xsl:when
|
||||||
|
test="@PartType='PAN' or @PartType='PAG' or @PartType='PAM' or @PartType='PAP' or @PartType='PAL' or @PartType='PAA' or @PartType='PAR' or @PartType='PAC'">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@LaborType='LAD' or @LaborType='LAE' or @LaborType='LAU' or @LaborType='LAT'">False</xsl:when>
|
<xsl:when
|
||||||
|
test="@LaborType='LAD' or @LaborType='LAE' or @LaborType='LAU' or @LaborType='LAT'">
|
||||||
|
False
|
||||||
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="@LaborOp='OP0'">False</xsl:when>
|
<xsl:when test="@LaborOp='OP0'">False</xsl:when>
|
||||||
|
|||||||
@@ -1,128 +1,221 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<TranslationDescriptor>
|
<TranslationDescriptor>
|
||||||
<FileTranslations FormatName="Mitchell" ElementName="Estimate" Description="Translation Descriptor for a Mitchell Estimate, Version EMS 2.0">
|
<FileTranslations FormatName="Mitchell" ElementName="Estimate"
|
||||||
|
Description="Translation Descriptor for a Mitchell Estimate, Version EMS 2.0">
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.env">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.env">
|
||||||
<DBFFileTranslation ID="ID1" ElementName="Envelope" Description="Envelope Table">
|
<DBFFileTranslation ID="ID1" ElementName="Envelope" Description="Envelope Table">
|
||||||
<DBFFieldSpec FieldName="RO_ID" Form="attribute" Name="RONum" FieldType="" Description="RO Number"/>
|
<DBFFieldSpec FieldName="RO_ID" Form="attribute" Name="RONum" FieldType="" Description="RO Number"/>
|
||||||
<DBFFieldSpec FieldName="UNQFILE_ID" Form="attribute" Name="UniqueFileID" FieldType="" Description="Unique File Identifier"/>
|
<DBFFieldSpec FieldName="UNQFILE_ID" Form="attribute" Name="UniqueFileID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="ESTFILE_ID" Form="attribute" Name="EstimateFileID" FieldType="" Description="Estimate File Identifier"/>
|
Description="Unique File Identifier"/>
|
||||||
<DBFFieldSpec FieldName="INCL_ADMIN" Form="attribute" Name="IncludesAdminInfo" FieldType="Boolean" Description="Includes Admin Info Flag"/>
|
<DBFFieldSpec FieldName="ESTFILE_ID" Form="attribute" Name="EstimateFileID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INCL_VEH" Form="attribute" Name="IncludesVehicleInfo" FieldType="Boolean" Description="Includes Vehicle Info Flag"/>
|
Description="Estimate File Identifier"/>
|
||||||
<DBFFieldSpec FieldName="INCL_EST" Form="attribute" Name="IncludesEstimateInfo" FieldType="Boolean" Description="Includes Estimate Info Flag"/>
|
<DBFFieldSpec FieldName="INCL_ADMIN" Form="attribute" Name="IncludesAdminInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="INCL_PROFL" Form="attribute" Name="IncludesProfileInfo" FieldType="Boolean" Description="Includes Profile Info Flag"/>
|
Description="Includes Admin Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="INCL_TOTAL" Form="attribute" Name="IncludesTotalsInfo" FieldType="Boolean" Description="Includes Totals Info Flag"/>
|
<DBFFieldSpec FieldName="INCL_VEH" Form="attribute" Name="IncludesVehicleInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="INCL_VENDR" Form="attribute" Name="IncludesVendorInfo" FieldType="Boolean" Description="Includes Vendor Info Flag"/>
|
Description="Includes Vehicle Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="EMS_VER" Form="attribute" Name="EMSVersion" FieldType="" Description="EMS Version Number"/>
|
<DBFFieldSpec FieldName="INCL_EST" Form="attribute" Name="IncludesEstimateInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="SUPP_NO" Form="attribute" Name="SupplementNum" FieldType="" Description="Supplement Number"/>
|
Description="Includes Estimate Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="TRANS_TYPE" Form="attribute" Name="TransactionType" FieldType="" Description="Transaction Type"/>
|
<DBFFieldSpec FieldName="INCL_PROFL" Form="attribute" Name="IncludesProfileInfo" FieldType="Boolean"
|
||||||
<DBFFieldSpec FieldName="EST_SYSTEM" Form="attribute" Name="EstimatingSystem" FieldType="" Description="Estimating System Software"/>
|
Description="Includes Profile Info Flag"/>
|
||||||
<DBFFieldSpec FieldName="SW_VERSION" Form="attribute" Name="SoftwareVersion" FieldType="" Description="Software Version Identifier"/>
|
<DBFFieldSpec FieldName="INCL_TOTAL" Form="attribute" Name="IncludesTotalsInfo" FieldType="Boolean"
|
||||||
|
Description="Includes Totals Info Flag"/>
|
||||||
|
<DBFFieldSpec FieldName="INCL_VENDR" Form="attribute" Name="IncludesVendorInfo" FieldType="Boolean"
|
||||||
|
Description="Includes Vendor Info Flag"/>
|
||||||
|
<DBFFieldSpec FieldName="EMS_VER" Form="attribute" Name="EMSVersion" FieldType=""
|
||||||
|
Description="EMS Version Number"/>
|
||||||
|
<DBFFieldSpec FieldName="SUPP_NO" Form="attribute" Name="SupplementNum" FieldType=""
|
||||||
|
Description="Supplement Number"/>
|
||||||
|
<DBFFieldSpec FieldName="TRANS_TYPE" Form="attribute" Name="TransactionType" FieldType=""
|
||||||
|
Description="Transaction Type"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_SYSTEM" Form="attribute" Name="EstimatingSystem" FieldType=""
|
||||||
|
Description="Estimating System Software"/>
|
||||||
|
<DBFFieldSpec FieldName="SW_VERSION" Form="attribute" Name="SoftwareVersion" FieldType=""
|
||||||
|
Description="Software Version Identifier"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.LIN">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.LIN">
|
||||||
<DBFFileTranslation ID="ID2" ElementSetName="PartsList" ElementName="Part" Description="Parts List Table">
|
<DBFFileTranslation ID="ID2" ElementSetName="PartsList" ElementName="Part" Description="Parts List Table">
|
||||||
<DBFFieldSpec FieldName="OEM_PARTNO" Form="attribute" Name="TDPartNum" FieldType="" Description="Part Number"/>
|
<DBFFieldSpec FieldName="OEM_PARTNO" Form="attribute" Name="TDPartNum" FieldType=""
|
||||||
<DBFFieldSpec FieldName="ALT_PARTNO" Form="attribute" Name="AltPartNum" FieldType="" Description="Alternate Part Number"/>
|
Description="Part Number"/>
|
||||||
<DBFFieldSpec FieldName="ACT_PRICE" Form="attribute" Name="ActPrice" FieldType="" Description="Actual Part Price"/>
|
<DBFFieldSpec FieldName="ALT_PARTNO" Form="attribute" Name="AltPartNum" FieldType=""
|
||||||
<DBFFieldSpec FieldName="LINE_DESC" Form="attribute" Name="TDPartDesc" FieldType="" Description="Part Description"/>
|
Description="Alternate Part Number"/>
|
||||||
<DBFFieldSpec FieldName="DB_PRICE" Form="attribute" Name="TDEstimate" FieldType="" Description="DB_Price"/>
|
<DBFFieldSpec FieldName="ACT_PRICE" Form="attribute" Name="ActPrice" FieldType=""
|
||||||
<DBFFieldSpec FieldName="PART_QTY" Form="attribute" Name="TDPartQty" FieldType="" Description="Part Quantity"/>
|
Description="Actual Part Price"/>
|
||||||
|
<DBFFieldSpec FieldName="LINE_DESC" Form="attribute" Name="TDPartDesc" FieldType=""
|
||||||
|
Description="Part Description"/>
|
||||||
|
<DBFFieldSpec FieldName="DB_PRICE" Form="attribute" Name="TDEstimate" FieldType=""
|
||||||
|
Description="DB_Price"/>
|
||||||
|
<DBFFieldSpec FieldName="PART_QTY" Form="attribute" Name="TDPartQty" FieldType=""
|
||||||
|
Description="Part Quantity"/>
|
||||||
<DBFFieldSpec FieldName="LINE_NO" Form="attribute" Name="LineNumber" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="LINE_NO" Form="attribute" Name="LineNumber" FieldType="" Description=""/>
|
||||||
<DBFFieldSpec FieldName="UNQ_SEQ" Form="attribute" Name="SequenceNumber" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="UNQ_SEQ" Form="attribute" Name="SequenceNumber" FieldType="" Description=""/>
|
||||||
<DBFFieldSpec FieldName="PART_TYPE" Form="attribute" Name="PartType" FieldType="" Description="Part Type"/>
|
<DBFFieldSpec FieldName="PART_TYPE" Form="attribute" Name="PartType" FieldType=""
|
||||||
<DBFFieldSpec FieldName="MOD_LBR_TY" Form="attribute" Name="LaborType" FieldType="" Description="Labor Type"/>
|
Description="Part Type"/>
|
||||||
<DBFFieldSpec FieldName="MOD_LB_HRS" Form="attribute" Name="LaborHours" FieldType="" Description="Labor Hours"/>
|
<DBFFieldSpec FieldName="MOD_LBR_TY" Form="attribute" Name="LaborType" FieldType=""
|
||||||
|
Description="Labor Type"/>
|
||||||
|
<DBFFieldSpec FieldName="MOD_LB_HRS" Form="attribute" Name="LaborHours" FieldType=""
|
||||||
|
Description="Labor Hours"/>
|
||||||
<DBFFieldSpec FieldName="LBR_OP" Form="attribute" Name="LaborOp" FieldType="" Description="Labor Op"/>
|
<DBFFieldSpec FieldName="LBR_OP" Form="attribute" Name="LaborOp" FieldType="" Description="Labor Op"/>
|
||||||
<DBFFieldSpec FieldName="LINE_IND" Form="attribute" Name="SupplementLevel" FieldType="" Description="Supplement Level"/>
|
<DBFFieldSpec FieldName="LINE_IND" Form="attribute" Name="SupplementLevel" FieldType=""
|
||||||
<DBFFieldSpec FieldName="TRAN_CODE" Form="attribute" Name="TransactionCode" FieldType="" Description="Transaction Code"/>
|
Description="Supplement Level"/>
|
||||||
<DBFFieldSpec FieldName="GLASS_FLAG" Form="attribute" Name="GlassFlag" FieldType="" Description="Glass Flag"/>
|
<DBFFieldSpec FieldName="TRAN_CODE" Form="attribute" Name="TransactionCode" FieldType=""
|
||||||
<DBFFieldSpec FieldName="PRT_DSMK_M" Form="attribute" Name="MarkUp" FieldType="" Description="Price Mark up for non OEM parts"/>
|
Description="Transaction Code"/>
|
||||||
|
<DBFFieldSpec FieldName="GLASS_FLAG" Form="attribute" Name="GlassFlag" FieldType=""
|
||||||
|
Description="Glass Flag"/>
|
||||||
|
<DBFFieldSpec FieldName="PRT_DSMK_M" Form="attribute" Name="MarkUp" FieldType=""
|
||||||
|
Description="Price Mark up for non OEM parts"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.VEH">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.VEH">
|
||||||
<DBFFileTranslation ID="ID3" ElementName="Vehicle" Description="Vehicle Table">
|
<DBFFileTranslation ID="ID3" ElementName="Vehicle" Description="Vehicle Table">
|
||||||
<DBFFieldSpec FieldName="V_VIN" Form="attribute" Name="TransVIN" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="V_VIN" Form="attribute" Name="TransVIN" FieldType="" Description=""/>
|
||||||
<DBFFieldSpec FieldName="V_MODEL_YR" Form="attribute" Name="TransYear" FieldType="" Description="V_MODEL_YR"/>
|
<DBFFieldSpec FieldName="V_MODEL_YR" Form="attribute" Name="TransYear" FieldType=""
|
||||||
<DBFFieldSpec FieldName="V_MAKEDESC" Form="attribute" Name="ManufName" FieldType="" Description="V_MAKEDESC"/>
|
Description="V_MODEL_YR"/>
|
||||||
<DBFFieldSpec FieldName="V_MAKECODE" Form="attribute" Name="ManufCode" FieldType="" Description="V_MAKECODE"/>
|
<DBFFieldSpec FieldName="V_MAKEDESC" Form="attribute" Name="ManufName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="V_MODEL" Form="attribute" Name="TransModel" FieldType="" Description="V_MODEL"/>
|
Description="V_MAKEDESC"/>
|
||||||
<DBFFieldSpec FieldName="V_MILEAGE" Form="attribute" Name="TransMileage" FieldType="" Description="V_MILEAGE"/>
|
<DBFFieldSpec FieldName="V_MAKECODE" Form="attribute" Name="ManufCode" FieldType=""
|
||||||
|
Description="V_MAKECODE"/>
|
||||||
|
<DBFFieldSpec FieldName="V_MODEL" Form="attribute" Name="TransModel" FieldType=""
|
||||||
|
Description="V_MODEL"/>
|
||||||
|
<DBFFieldSpec FieldName="V_MILEAGE" Form="attribute" Name="TransMileage" FieldType=""
|
||||||
|
Description="V_MILEAGE"/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD1">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD1">
|
||||||
<DBFFileTranslation ID="ID4" ElementName="Admin" Description="Administrative information">
|
<DBFFileTranslation ID="ID4" ElementName="Admin" Description="Administrative information">
|
||||||
<DBFFieldSpec FieldName="OWNR_LN" Form="attribute" Name="OwnerL" FieldType="" Description="Owner Lastname"/>
|
<DBFFieldSpec FieldName="OWNR_LN" Form="attribute" Name="OwnerL" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_FN" Form="attribute" Name="OwnerF" FieldType="" Description="Owner Firstname"/>
|
Description="Owner Lastname"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_CO_NM" Form="attribute" Name="OwnerCompanyName" FieldType="" Description="Owner Company Name"/>
|
<DBFFieldSpec FieldName="OWNR_FN" Form="attribute" Name="OwnerF" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_TITLE" Form="attribute" Name="OwnerTitle" FieldType="" Description="Owner Title"/>
|
Description="Owner Firstname"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_ADDR1" Form="attribute" Name="OwnerAddr1" FieldType="" Description="Owner Address Line 1"/>
|
<DBFFieldSpec FieldName="OWNR_CO_NM" Form="attribute" Name="OwnerCompanyName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_ADDR2" Form="attribute" Name="OwnerAddr2" FieldType="" Description="Owner Address Line 2"/>
|
Description="Owner Company Name"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_CITY" Form="attribute" Name="OwnerCity" FieldType="" Description="Owner City"/>
|
<DBFFieldSpec FieldName="OWNR_TITLE" Form="attribute" Name="OwnerTitle" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_ST" Form="attribute" Name="OwnerState" FieldType="" Description="Owner State"/>
|
Description="Owner Title"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_ZIP" Form="attribute" Name="OwnerZip" FieldType="" Description="Owner Zip"/>
|
<DBFFieldSpec FieldName="OWNR_ADDR1" Form="attribute" Name="OwnerAddr1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_CTRY" Form="attribute" Name="OwnerCountry" FieldType="" Description="Owner Country"/>
|
Description="Owner Address Line 1"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_PH1" Form="attribute" Name="OwnerPhone1" FieldType="" Description="Owner Primary Phone"/>
|
<DBFFieldSpec FieldName="OWNR_ADDR2" Form="attribute" Name="OwnerAddr2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_PH1X" Form="attribute" Name="OwnerPhone1Ext" FieldType="" Description="Owner Primary Phone Extension"/>
|
Description="Owner Address Line 2"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_PH2" Form="attribute" Name="OwnerPhone2" FieldType="" Description="Owner Secondary Phone"/>
|
<DBFFieldSpec FieldName="OWNR_CITY" Form="attribute" Name="OwnerCity" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_PH2X" Form="attribute" Name="OwnerPhone2Ext" FieldType="" Description="Owner Secondary Phone Extension"/>
|
Description="Owner City"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_FAX" Form="attribute" Name="OwnerFax" FieldType="" Description="Owner Fax"/>
|
<DBFFieldSpec FieldName="OWNR_ST" Form="attribute" Name="OwnerState" FieldType=""
|
||||||
<DBFFieldSpec FieldName="OWNR_FAXX" Form="attribute" Name="OwnerFaxExt" FieldType="" Description="Owner Fax Extension"/>
|
Description="Owner State"/>
|
||||||
<DBFFieldSpec FieldName="OWNR_EA" Form="attribute" Name="OwnerEmail" FieldType="" Description="Owner Email Address"/>
|
<DBFFieldSpec FieldName="OWNR_ZIP" Form="attribute" Name="OwnerZip" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_CO_NM" Form="attribute" Name="InsuranceCompanyName" FieldType="" Description="Insurance Company Name"/>
|
Description="Owner Zip"/>
|
||||||
<DBFFieldSpec FieldName="INS_CO_ID" Form="attribute" Name="InsuranceCompanyID" FieldType="" Description="Insurance Company Identifier"/>
|
<DBFFieldSpec FieldName="OWNR_CTRY" Form="attribute" Name="OwnerCountry" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_ADDR1" Form="attribute" Name="InsuranceAddr1" FieldType="" Description="Insurance Address Line 1"/>
|
Description="Owner Country"/>
|
||||||
<DBFFieldSpec FieldName="INS_ADDR2" Form="attribute" Name="InsuranceAddr2" FieldType="" Description="Insurance Address Line 2"/>
|
<DBFFieldSpec FieldName="OWNR_PH1" Form="attribute" Name="OwnerPhone1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_CITY" Form="attribute" Name="InsuranceCity" FieldType="" Description="Insurance City"/>
|
Description="Owner Primary Phone"/>
|
||||||
<DBFFieldSpec FieldName="INS_ST" Form="attribute" Name="InsuranceState" FieldType="" Description="Insurance State"/>
|
<DBFFieldSpec FieldName="OWNR_PH1X" Form="attribute" Name="OwnerPhone1Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_ZIP" Form="attribute" Name="InsuranceZip" FieldType="" Description="Insurance Zip"/>
|
Description="Owner Primary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="INS_CTRY" Form="attribute" Name="InsuranceCountry" FieldType="" Description="Insurance Country"/>
|
<DBFFieldSpec FieldName="OWNR_PH2" Form="attribute" Name="OwnerPhone2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_PH1" Form="attribute" Name="InsurancePhone1" FieldType="" Description="Insurance Primary Phone"/>
|
Description="Owner Secondary Phone"/>
|
||||||
<DBFFieldSpec FieldName="INS_PH1X" Form="attribute" Name="InsurancePhone1Ext" FieldType="" Description="Insurance Primary Phone Extension"/>
|
<DBFFieldSpec FieldName="OWNR_PH2X" Form="attribute" Name="OwnerPhone2Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_PH2" Form="attribute" Name="InsurancePhone2" FieldType="" Description="Insurance Secondary Phone"/>
|
Description="Owner Secondary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="INS_PH2X" Form="attribute" Name="InsurancePhone2Ext" FieldType="" Description="Insurance Secondary Phone Extension"/>
|
<DBFFieldSpec FieldName="OWNR_FAX" Form="attribute" Name="OwnerFax" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_FAX" Form="attribute" Name="InsuranceFax" FieldType="" Description="Insurance Fax"/>
|
Description="Owner Fax"/>
|
||||||
<DBFFieldSpec FieldName="INS_FAXX" Form="attribute" Name="InsuranceFaxExt" FieldType="" Description="Insurance Fax Extension"/>
|
<DBFFieldSpec FieldName="OWNR_FAXX" Form="attribute" Name="OwnerFaxExt" FieldType=""
|
||||||
<DBFFieldSpec FieldName="INS_EA" Form="attribute" Name="InsuranceEmail" FieldType="" Description="Insurance Email Address"/>
|
Description="Owner Fax Extension"/>
|
||||||
<DBFFieldSpec FieldName="INSD_LN" Form="attribute" Name="InsuranceLName" FieldType="" Description="Insurance Last Name"/>
|
<DBFFieldSpec FieldName="OWNR_EA" Form="attribute" Name="OwnerEmail" FieldType=""
|
||||||
<DBFFieldSpec FieldName="CLM_NO" Form="attribute" Name="ClaimNumber" FieldType="" Description="Claim Number"/>
|
Description="Owner Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CO_NM" Form="attribute" Name="InsuranceCompanyName" FieldType=""
|
||||||
|
Description="Insurance Company Name"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CO_ID" Form="attribute" Name="InsuranceCompanyID" FieldType=""
|
||||||
|
Description="Insurance Company Identifier"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ADDR1" Form="attribute" Name="InsuranceAddr1" FieldType=""
|
||||||
|
Description="Insurance Address Line 1"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ADDR2" Form="attribute" Name="InsuranceAddr2" FieldType=""
|
||||||
|
Description="Insurance Address Line 2"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CITY" Form="attribute" Name="InsuranceCity" FieldType=""
|
||||||
|
Description="Insurance City"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ST" Form="attribute" Name="InsuranceState" FieldType=""
|
||||||
|
Description="Insurance State"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_ZIP" Form="attribute" Name="InsuranceZip" FieldType=""
|
||||||
|
Description="Insurance Zip"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_CTRY" Form="attribute" Name="InsuranceCountry" FieldType=""
|
||||||
|
Description="Insurance Country"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH1" Form="attribute" Name="InsurancePhone1" FieldType=""
|
||||||
|
Description="Insurance Primary Phone"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH1X" Form="attribute" Name="InsurancePhone1Ext" FieldType=""
|
||||||
|
Description="Insurance Primary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH2" Form="attribute" Name="InsurancePhone2" FieldType=""
|
||||||
|
Description="Insurance Secondary Phone"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_PH2X" Form="attribute" Name="InsurancePhone2Ext" FieldType=""
|
||||||
|
Description="Insurance Secondary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_FAX" Form="attribute" Name="InsuranceFax" FieldType=""
|
||||||
|
Description="Insurance Fax"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_FAXX" Form="attribute" Name="InsuranceFaxExt" FieldType=""
|
||||||
|
Description="Insurance Fax Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="INS_EA" Form="attribute" Name="InsuranceEmail" FieldType=""
|
||||||
|
Description="Insurance Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="INSD_LN" Form="attribute" Name="InsuranceLName" FieldType=""
|
||||||
|
Description="Insurance Last Name"/>
|
||||||
|
<DBFFieldSpec FieldName="CLM_NO" Form="attribute" Name="ClaimNumber" FieldType=""
|
||||||
|
Description="Claim Number"/>
|
||||||
|
|
||||||
|
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD2">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.AD2">
|
||||||
<DBFFileTranslation ID="ID5" ElementName="Admin2" Description="Administrative information2">
|
<DBFFileTranslation ID="ID5" ElementName="Admin2" Description="Administrative information2">
|
||||||
<DBFFieldSpec FieldName="EST_CT_LN" Form="attribute" Name="EstimatorL" FieldType="" Description="Estimator Lastname"/>
|
<DBFFieldSpec FieldName="EST_CT_LN" Form="attribute" Name="EstimatorL" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CT_FN" Form="attribute" Name="EstimatorF" FieldType="" Description="Estimator Firstname"/>
|
Description="Estimator Lastname"/>
|
||||||
<DBFFieldSpec FieldName="EST_CO_NM" Form="attribute" Name="EstimatorCompanyName" FieldType="" Description="Estimator Company Name"/>
|
<DBFFieldSpec FieldName="EST_CT_FN" Form="attribute" Name="EstimatorF" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CO_ID" Form="attribute" Name="EstimatorCompanyID" FieldType="" Description="Estimator Company Identifier"/>
|
Description="Estimator Firstname"/>
|
||||||
<DBFFieldSpec FieldName="EST_ADDR1" Form="attribute" Name="EstimatorAddr1" FieldType="" Description="Estimator Address1"/>
|
<DBFFieldSpec FieldName="EST_CO_NM" Form="attribute" Name="EstimatorCompanyName" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_ADDR2" Form="attribute" Name="EstimatorAddr2" FieldType="" Description="Estimator Address2"/>
|
Description="Estimator Company Name"/>
|
||||||
<DBFFieldSpec FieldName="EST_CITY" Form="attribute" Name="EstimatorCity" FieldType="" Description="Estimator City"/>
|
<DBFFieldSpec FieldName="EST_CO_ID" Form="attribute" Name="EstimatorCompanyID" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_ST" Form="attribute" Name="EstimatorState" FieldType="" Description="Estimator State"/>
|
Description="Estimator Company Identifier"/>
|
||||||
<DBFFieldSpec FieldName="EST_ZIP" Form="attribute" Name="EstimatorZip" FieldType="" Description="Estimator Zip"/>
|
<DBFFieldSpec FieldName="EST_ADDR1" Form="attribute" Name="EstimatorAddr1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_CTRY" Form="attribute" Name="EstimatorCountry" FieldType="" Description="Estimator Country"/>
|
Description="Estimator Address1"/>
|
||||||
<DBFFieldSpec FieldName="EST_PH1" Form="attribute" Name="EstimatorPhone1" FieldType="" Description="Estimator Primary Phone"/>
|
<DBFFieldSpec FieldName="EST_ADDR2" Form="attribute" Name="EstimatorAddr2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_PH1X" Form="attribute" Name="EstimatorPhone1Ext" FieldType="" Description="Estimator Primary Phone Extension"/>
|
Description="Estimator Address2"/>
|
||||||
<DBFFieldSpec FieldName="EST_PH2" Form="attribute" Name="EstimatorPhone2" FieldType="" Description="Estimator Secondary Phone"/>
|
<DBFFieldSpec FieldName="EST_CITY" Form="attribute" Name="EstimatorCity" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_PH2X" Form="attribute" Name="EstimatorPhone2Ext" FieldType="" Description="Estimator Secondary Phone Extension"/>
|
Description="Estimator City"/>
|
||||||
<DBFFieldSpec FieldName="EST_FAX" Form="attribute" Name="EstimatorFax" FieldType="" Description="Estimator Fax"/>
|
<DBFFieldSpec FieldName="EST_ST" Form="attribute" Name="EstimatorState" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_FAXX" Form="attribute" Name="EstimatorFaxExt" FieldType="" Description="Estimator Fax Extension"/>
|
Description="Estimator State"/>
|
||||||
<DBFFieldSpec FieldName="EST_EA" Form="attribute" Name="EstimatorEmail" FieldType="" Description="Estimator Email Address"/>
|
<DBFFieldSpec FieldName="EST_ZIP" Form="attribute" Name="EstimatorZip" FieldType=""
|
||||||
<DBFFieldSpec FieldName="EST_LIC_NO" Form="attribute" Name="EstimatorLicenseNumber" FieldType="" Description="Estimator License Number"/>
|
Description="Estimator Zip"/>
|
||||||
<DBFFieldSpec FieldName="EST_FILENO" Form="attribute" Name="EstimatorFileNumber" FieldType="" Description="Estimator File Number"/>
|
<DBFFieldSpec FieldName="EST_CTRY" Form="attribute" Name="EstimatorCountry" FieldType=""
|
||||||
<DBFFieldSpec FieldName="RO_IN_DATE" Form="attribute" Name="VehicleInDate" FieldType="" Description="Date arrived in shop"/>
|
Description="Estimator Country"/>
|
||||||
<DBFFieldSpec FieldName="RO_IN_TIME" Form="attribute" Name="VehicleInTime" FieldType="" Description="Time arrived in shop"/>
|
<DBFFieldSpec FieldName="EST_PH1" Form="attribute" Name="EstimatorPhone1" FieldType=""
|
||||||
<DBFFieldSpec FieldName="TAR_DATE" Form="attribute" Name="TargetVehicleOutDate" FieldType="" Description="Target date to be completed"/>
|
Description="Estimator Primary Phone"/>
|
||||||
<DBFFieldSpec FieldName="TAR_TIME" Form="attribute" Name="TargetVehicleOutTime" FieldType="" Description="Target time to be completed"/>
|
<DBFFieldSpec FieldName="EST_PH1X" Form="attribute" Name="EstimatorPhone1Ext" FieldType=""
|
||||||
<DBFFieldSpec FieldName="RO_CMPDATE" Form="attribute" Name="VehicleOutDate" FieldType="" Description="Date completed"/>
|
Description="Estimator Primary Phone Extension"/>
|
||||||
<DBFFieldSpec FieldName="RO_CMPTIME" Form="attribute" Name="VehicleOutTime" FieldType="" Description="Time completed"/>
|
<DBFFieldSpec FieldName="EST_PH2" Form="attribute" Name="EstimatorPhone2" FieldType=""
|
||||||
<DBFFieldSpec FieldName="RF_CO_NM" Form="attribute" Name="BodyShopName" FieldType="" Description="Body Shop Name"/>
|
Description="Estimator Secondary Phone"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_PH2X" Form="attribute" Name="EstimatorPhone2Ext" FieldType=""
|
||||||
|
Description="Estimator Secondary Phone Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FAX" Form="attribute" Name="EstimatorFax" FieldType=""
|
||||||
|
Description="Estimator Fax"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FAXX" Form="attribute" Name="EstimatorFaxExt" FieldType=""
|
||||||
|
Description="Estimator Fax Extension"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_EA" Form="attribute" Name="EstimatorEmail" FieldType=""
|
||||||
|
Description="Estimator Email Address"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_LIC_NO" Form="attribute" Name="EstimatorLicenseNumber" FieldType=""
|
||||||
|
Description="Estimator License Number"/>
|
||||||
|
<DBFFieldSpec FieldName="EST_FILENO" Form="attribute" Name="EstimatorFileNumber" FieldType=""
|
||||||
|
Description="Estimator File Number"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_IN_DATE" Form="attribute" Name="VehicleInDate" FieldType=""
|
||||||
|
Description="Date arrived in shop"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_IN_TIME" Form="attribute" Name="VehicleInTime" FieldType=""
|
||||||
|
Description="Time arrived in shop"/>
|
||||||
|
<DBFFieldSpec FieldName="TAR_DATE" Form="attribute" Name="TargetVehicleOutDate" FieldType=""
|
||||||
|
Description="Target date to be completed"/>
|
||||||
|
<DBFFieldSpec FieldName="TAR_TIME" Form="attribute" Name="TargetVehicleOutTime" FieldType=""
|
||||||
|
Description="Target time to be completed"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_CMPDATE" Form="attribute" Name="VehicleOutDate" FieldType=""
|
||||||
|
Description="Date completed"/>
|
||||||
|
<DBFFieldSpec FieldName="RO_CMPTIME" Form="attribute" Name="VehicleOutTime" FieldType=""
|
||||||
|
Description="Time completed"/>
|
||||||
|
<DBFFieldSpec FieldName="RF_CO_NM" Form="attribute" Name="BodyShopName" FieldType=""
|
||||||
|
Description="Body Shop Name"/>
|
||||||
|
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.TTL">
|
<FileTranslation TranslatorID="OECImportEngine.DBFTranslator" FileNameMask="*.TTL">
|
||||||
<DBFFileTranslation ID="ID6" ElementName="Total" Description="Total Table">
|
<DBFFileTranslation ID="ID6" ElementName="Total" Description="Total Table">
|
||||||
<DBFFieldSpec FieldName="G_TTL_AMT" Form="attribute" Name="GrandTotalAmount" FieldType="" Description=""/>
|
<DBFFieldSpec FieldName="G_TTL_AMT" Form="attribute" Name="GrandTotalAmount" FieldType=""
|
||||||
|
Description=""/>
|
||||||
</DBFFileTranslation>
|
</DBFFileTranslation>
|
||||||
</FileTranslation>
|
</FileTranslation>
|
||||||
</FileTranslations>
|
</FileTranslations>
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ You will also see any lint errors in the console.
|
|||||||
### `yarn test`
|
### `yarn test`
|
||||||
|
|
||||||
Launches the test runner in the interactive watch mode.<br />
|
Launches the test runner in the interactive watch mode.<br />
|
||||||
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more
|
||||||
|
information.
|
||||||
|
|
||||||
### `yarn build`
|
### `yarn build`
|
||||||
|
|
||||||
@@ -31,15 +32,21 @@ See the section about [deployment](https://facebook.github.io/create-react-app/d
|
|||||||
|
|
||||||
**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
|
**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
|
||||||
|
|
||||||
If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will
|
||||||
|
remove the single build dependency from your project.
|
||||||
|
|
||||||
Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
|
Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right
|
||||||
|
into your project so you have full control over them. All of the commands except `eject` will still work, but they will
|
||||||
|
point to the copied scripts so you can tweak them. At this point you’re on your own.
|
||||||
|
|
||||||
You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
|
You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you
|
||||||
|
shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t
|
||||||
|
customize it when you are ready for it.
|
||||||
|
|
||||||
## Learn More
|
## Learn More
|
||||||
|
|
||||||
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
You can learn more in
|
||||||
|
the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||||
|
|
||||||
To learn React, check out the [React documentation](https://reactjs.org/).
|
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||||
|
|
||||||
@@ -65,4 +72,5 @@ This section has moved here: https://facebook.github.io/create-react-app/docs/de
|
|||||||
|
|
||||||
### `yarn build` fails to minify
|
### `yarn build` fails to minify
|
||||||
|
|
||||||
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
|
This section has moved
|
||||||
|
here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const { defineConfig } = require('cypress')
|
const {defineConfig} = require('cypress')
|
||||||
|
|
||||||
module.exports = defineConfig({
|
module.exports = defineConfig({
|
||||||
experimentalStudio: true,
|
experimentalStudio: true,
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
/// <reference types="Cypress" />
|
/// <reference types="Cypress" />
|
||||||
const { FIREBASE_USERNAME, FIREBASE_PASSWORcD } = Cypress.env();
|
const {FIREBASE_USERNAME, FIREBASE_PASSWORcD} = Cypress.env();
|
||||||
describe("Renders the General Page", () => {
|
describe("Renders the General Page", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
cy.visit("/");
|
cy.visit("/");
|
||||||
});
|
});
|
||||||
it("Renders Correctly", () => {});
|
it("Renders Correctly", () => {
|
||||||
|
});
|
||||||
it("Has the Slogan", () => {
|
it("Has the Slogan", () => {
|
||||||
cy.findByText("A whole x22new kind of shop management system.").should(
|
cy.findByText("A whole x22new kind of shop management system.").should(
|
||||||
"exist"
|
"exist"
|
||||||
|
|||||||
@@ -23,13 +23,13 @@ context('Actions', () => {
|
|||||||
.type('{shift}')
|
.type('{shift}')
|
||||||
|
|
||||||
// Delay each keypress by 0.1 sec
|
// Delay each keypress by 0.1 sec
|
||||||
.type('slow.typing@email.com', { delay: 100 })
|
.type('slow.typing@email.com', {delay: 100})
|
||||||
.should('have.value', 'slow.typing@email.com')
|
.should('have.value', 'slow.typing@email.com')
|
||||||
|
|
||||||
cy.get('.action-disabled')
|
cy.get('.action-disabled')
|
||||||
// Ignore error checking prior to type
|
// Ignore error checking prior to type
|
||||||
// like whether the input is visible or disabled
|
// like whether the input is visible or disabled
|
||||||
.type('disabled error checking', { force: true })
|
.type('disabled error checking', {force: true})
|
||||||
.should('have.value', 'disabled error checking')
|
.should('have.value', 'disabled error checking')
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -106,10 +106,10 @@ context('Actions', () => {
|
|||||||
.click(170, 165)
|
.click(170, 165)
|
||||||
|
|
||||||
// click multiple elements by passing multiple: true
|
// click multiple elements by passing multiple: true
|
||||||
cy.get('.action-labels>.label').click({ multiple: true })
|
cy.get('.action-labels>.label').click({multiple: true})
|
||||||
|
|
||||||
// Ignore error checking prior to clicking
|
// Ignore error checking prior to clicking
|
||||||
cy.get('.action-opacity>.btn').click({ force: true })
|
cy.get('.action-opacity>.btn').click({force: true})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('.dblclick() - double click on a DOM element', () => {
|
it('.dblclick() - double click on a DOM element', () => {
|
||||||
@@ -151,10 +151,10 @@ context('Actions', () => {
|
|||||||
|
|
||||||
// Ignore error checking prior to checking
|
// Ignore error checking prior to checking
|
||||||
cy.get('.action-checkboxes [disabled]')
|
cy.get('.action-checkboxes [disabled]')
|
||||||
.check({ force: true }).should('be.checked')
|
.check({force: true}).should('be.checked')
|
||||||
|
|
||||||
cy.get('.action-radios [type="radio"]')
|
cy.get('.action-radios [type="radio"]')
|
||||||
.check('radio3', { force: true }).should('be.checked')
|
.check('radio3', {force: true}).should('be.checked')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('.uncheck() - uncheck a checkbox element', () => {
|
it('.uncheck() - uncheck a checkbox element', () => {
|
||||||
@@ -178,7 +178,7 @@ context('Actions', () => {
|
|||||||
|
|
||||||
// Ignore error checking prior to unchecking
|
// Ignore error checking prior to unchecking
|
||||||
cy.get('.action-check [disabled]')
|
cy.get('.action-check [disabled]')
|
||||||
.uncheck({ force: true }).should('not.be.checked')
|
.uncheck({force: true}).should('not.be.checked')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('.select() - select an option in a <select> element', () => {
|
it('.select() - select an option in a <select> element', () => {
|
||||||
@@ -291,9 +291,9 @@ context('Actions', () => {
|
|||||||
cy.get('#scrollable-both').scrollTo('75%', '25%')
|
cy.get('#scrollable-both').scrollTo('75%', '25%')
|
||||||
|
|
||||||
// control the easing of the scroll (default is 'swing')
|
// control the easing of the scroll (default is 'swing')
|
||||||
cy.get('#scrollable-vertical').scrollTo('center', { easing: 'linear' })
|
cy.get('#scrollable-vertical').scrollTo('center', {easing: 'linear'})
|
||||||
|
|
||||||
// control the duration of the scroll (in ms)
|
// control the duration of the scroll (in ms)
|
||||||
cy.get('#scrollable-both').scrollTo('center', { duration: 2000 })
|
cy.get('#scrollable-both').scrollTo('center', {duration: 2000})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ context('Assertions', () => {
|
|||||||
it('expect - make an assertion about a specified subject', () => {
|
it('expect - make an assertion about a specified subject', () => {
|
||||||
// We can use Chai's BDD style assertions
|
// We can use Chai's BDD style assertions
|
||||||
expect(true).to.be.true
|
expect(true).to.be.true
|
||||||
const o = { foo: 'bar' }
|
const o = {foo: 'bar'}
|
||||||
|
|
||||||
expect(o).to.equal(o)
|
expect(o).to.equal(o)
|
||||||
expect(o).to.deep.equal({ foo: 'bar' })
|
expect(o).to.deep.equal({foo: 'bar'})
|
||||||
// matching text using regular expression
|
// matching text using regular expression
|
||||||
expect('FooBar').to.match(/bar$/i)
|
expect('FooBar').to.match(/bar$/i)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ context('Files', () => {
|
|||||||
|
|
||||||
// when application makes an Ajax request matching "GET **/comments/*"
|
// when application makes an Ajax request matching "GET **/comments/*"
|
||||||
// Cypress will intercept it and reply with the object in `example.json` fixture
|
// Cypress will intercept it and reply with the object in `example.json` fixture
|
||||||
cy.intercept('GET', '**/comments/*', { fixture: 'example.json' }).as('getComment')
|
cy.intercept('GET', '**/comments/*', {fixture: 'example.json'}).as('getComment')
|
||||||
|
|
||||||
// we have code that gets a comment when
|
// we have code that gets a comment when
|
||||||
// the button is clicked in scripts.js
|
// the button is clicked in scripts.js
|
||||||
|
|||||||
@@ -85,19 +85,21 @@ context('Misc', () => {
|
|||||||
Cypress.Screenshot.defaults({
|
Cypress.Screenshot.defaults({
|
||||||
blackout: ['.foo'],
|
blackout: ['.foo'],
|
||||||
capture: 'viewport',
|
capture: 'viewport',
|
||||||
clip: { x: 0, y: 0, width: 200, height: 200 },
|
clip: {x: 0, y: 0, width: 200, height: 200},
|
||||||
scale: false,
|
scale: false,
|
||||||
disableTimersAndAnimations: true,
|
disableTimersAndAnimations: true,
|
||||||
screenshotOnRunFailure: true,
|
screenshotOnRunFailure: true,
|
||||||
onBeforeScreenshot () { },
|
onBeforeScreenshot() {
|
||||||
onAfterScreenshot () { },
|
},
|
||||||
|
onAfterScreenshot() {
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('cy.wrap() - wrap an object', () => {
|
it('cy.wrap() - wrap an object', () => {
|
||||||
// https://on.cypress.io/wrap
|
// https://on.cypress.io/wrap
|
||||||
cy.wrap({ foo: 'bar' })
|
cy.wrap({foo: 'bar'})
|
||||||
.should('have.property', 'foo')
|
.should('have.property', 'foo')
|
||||||
.and('include', 'bar')
|
.and('include', 'bar')
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -43,11 +43,11 @@ context('Navigation', () => {
|
|||||||
// Pass options to the visit
|
// Pass options to the visit
|
||||||
cy.visit('https://example.cypress.io/commands/navigation', {
|
cy.visit('https://example.cypress.io/commands/navigation', {
|
||||||
timeout: 50000, // increase total time for the visit to resolve
|
timeout: 50000, // increase total time for the visit to resolve
|
||||||
onBeforeLoad (contentWindow) {
|
onBeforeLoad(contentWindow) {
|
||||||
// contentWindow is the remote page's window object
|
// contentWindow is the remote page's window object
|
||||||
expect(typeof contentWindow === 'object').to.be.true
|
expect(typeof contentWindow === 'object').to.be.true
|
||||||
},
|
},
|
||||||
onLoad (contentWindow) {
|
onLoad(contentWindow) {
|
||||||
// contentWindow is the remote page's window object
|
// contentWindow is the remote page's window object
|
||||||
expect(typeof contentWindow === 'object').to.be.true
|
expect(typeof contentWindow === 'object').to.be.true
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ context('Network Requests', () => {
|
|||||||
// we have code that posts a comment when
|
// we have code that posts a comment when
|
||||||
// the button is clicked in scripts.js
|
// the button is clicked in scripts.js
|
||||||
cy.get('.network-post').click()
|
cy.get('.network-post').click()
|
||||||
cy.wait('@postComment').should(({ request, response }) => {
|
cy.wait('@postComment').should(({request, response}) => {
|
||||||
expect(request.body).to.include('email')
|
expect(request.body).to.include('email')
|
||||||
expect(request.headers).to.have.property('content-type')
|
expect(request.headers).to.have.property('content-type')
|
||||||
expect(response && response.body).to.have.property('name', 'Using POST in cy.intercept()')
|
expect(response && response.body).to.have.property('name', 'Using POST in cy.intercept()')
|
||||||
@@ -146,8 +146,8 @@ context('Network Requests', () => {
|
|||||||
url: '**/comments/*',
|
url: '**/comments/*',
|
||||||
}, {
|
}, {
|
||||||
statusCode: 404,
|
statusCode: 404,
|
||||||
body: { error: message },
|
body: {error: message},
|
||||||
headers: { 'access-control-allow-origin': '*' },
|
headers: {'access-control-allow-origin': '*'},
|
||||||
delayMs: 500,
|
delayMs: 500,
|
||||||
}).as('putComment')
|
}).as('putComment')
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ context('Spies, Stubs, and Clock', () => {
|
|||||||
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks')
|
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks')
|
||||||
|
|
||||||
const obj = {
|
const obj = {
|
||||||
foo () {},
|
foo() {
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
const spy = cy.spy(obj, 'foo').as('anyArgs')
|
const spy = cy.spy(obj, 'foo').as('anyArgs')
|
||||||
@@ -26,7 +27,7 @@ context('Spies, Stubs, and Clock', () => {
|
|||||||
* Prints the argument passed
|
* Prints the argument passed
|
||||||
* @param x {any}
|
* @param x {any}
|
||||||
*/
|
*/
|
||||||
foo (x) {
|
foo(x) {
|
||||||
console.log('obj.foo called with', x)
|
console.log('obj.foo called with', x)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -54,7 +55,7 @@ context('Spies, Stubs, and Clock', () => {
|
|||||||
* @param a {string}
|
* @param a {string}
|
||||||
* @param b {string}
|
* @param b {string}
|
||||||
*/
|
*/
|
||||||
foo (a, b) {
|
foo(a, b) {
|
||||||
console.log('a', a, 'b', b)
|
console.log('a', a, 'b', b)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -104,7 +105,7 @@ context('Spies, Stubs, and Clock', () => {
|
|||||||
* Greets a person
|
* Greets a person
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
*/
|
*/
|
||||||
greet (name) {
|
greet(name) {
|
||||||
return `Hello, ${name}!`
|
return `Hello, ${name}!`
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -133,7 +134,7 @@ context('Spies, Stubs, and Clock', () => {
|
|||||||
* @param a {number}
|
* @param a {number}
|
||||||
* @param b {number}
|
* @param b {number}
|
||||||
*/
|
*/
|
||||||
add (a, b) {
|
add(a, b) {
|
||||||
return a + b
|
return a + b
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -198,7 +199,7 @@ context('Spies, Stubs, and Clock', () => {
|
|||||||
Cypress.sinon.match.number, Cypress.sinon.match(3))
|
Cypress.sinon.match.number, Cypress.sinon.match(3))
|
||||||
|
|
||||||
// you can alias matchers for shorter test code
|
// you can alias matchers for shorter test code
|
||||||
const { match: M } = Cypress.sinon
|
const {match: M} = Cypress.sinon
|
||||||
|
|
||||||
cy.get('@add').should('have.been.calledWith', M.number, M(3))
|
cy.get('@add').should('have.been.calledWith', M.number, M(3))
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ context('Utilities', () => {
|
|||||||
return Cypress.Blob.imgSrcToDataURL('https://example.cypress.io/assets/img/javascript-logo.png', undefined, 'anonymous')
|
return Cypress.Blob.imgSrcToDataURL('https://example.cypress.io/assets/img/javascript-logo.png', undefined, 'anonymous')
|
||||||
.then((dataUrl) => {
|
.then((dataUrl) => {
|
||||||
// create an <img> element and set its src to the dataUrl
|
// create an <img> element and set its src to the dataUrl
|
||||||
let img = Cypress.$('<img />', { src: dataUrl })
|
let img = Cypress.$('<img />', {src: dataUrl})
|
||||||
|
|
||||||
// need to explicitly return cy here since we are initially returning
|
// need to explicitly return cy here since we are initially returning
|
||||||
// the Cypress.Blob.imgSrcToDataURL promise to our test
|
// the Cypress.Blob.imgSrcToDataURL promise to our test
|
||||||
@@ -83,7 +83,7 @@ context('Utilities', () => {
|
|||||||
/**
|
/**
|
||||||
* @return Bluebird<string>
|
* @return Bluebird<string>
|
||||||
*/
|
*/
|
||||||
function waitOneSecond () {
|
function waitOneSecond() {
|
||||||
// return a promise that resolves after 1 second
|
// return a promise that resolves after 1 second
|
||||||
// @ts-ignore TS2351 (new Cypress.Promise)
|
// @ts-ignore TS2351 (new Cypress.Promise)
|
||||||
return new Cypress.Promise((resolve, reject) => {
|
return new Cypress.Promise((resolve, reject) => {
|
||||||
|
|||||||
@@ -2,7 +2,11 @@
|
|||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"baseUrl": "../node_modules",
|
"baseUrl": "../node_modules",
|
||||||
"types": ["cypress"]
|
"types": [
|
||||||
|
"cypress"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"include": ["**/*.*"]
|
"include": [
|
||||||
|
"**/*.*"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8"/>
|
||||||
<link rel="icon" href="%PUBLIC_URL%/favicon.png" />
|
<link href="%PUBLIC_URL%/favicon.png" rel="icon"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||||
<meta name="theme-color" content="#002366" />
|
<meta content="#002366" name="theme-color"/>
|
||||||
<meta name="description" content="ImEX Online" />
|
<meta content="ImEX Online" name="description"/>
|
||||||
<!-- <link rel="apple-touch-icon" href="logo192.png" /> -->
|
<!-- <link rel="apple-touch-icon" href="logo192.png" /> -->
|
||||||
<link rel="apple-touch-icon" href="logo192.png" />
|
<link href="logo192.png" rel="apple-touch-icon"/>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.$crisp = [];
|
window.$crisp = [];
|
||||||
window.CRISP_WEBSITE_ID = "36724f62-2eb0-4b29-9cdd-9905fb99913e";
|
window.CRISP_WEBSITE_ID = "36724f62-2eb0-4b29-9cdd-9905fb99913e";
|
||||||
@@ -41,12 +41,14 @@
|
|||||||
console.warn("Noticeable SDK code snippet loaded more than once");
|
console.warn("Noticeable SDK code snippet loaded more than once");
|
||||||
else {
|
else {
|
||||||
var n = (window.noticeable = window.noticeable || []);
|
var n = (window.noticeable = window.noticeable || []);
|
||||||
|
|
||||||
function t(e) {
|
function t(e) {
|
||||||
return function () {
|
return function () {
|
||||||
var t = Array.prototype.slice.call(arguments);
|
var t = Array.prototype.slice.call(arguments);
|
||||||
return t.unshift(e), n.push(t), n;
|
return t.unshift(e), n.push(t), n;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
!(function () {
|
!(function () {
|
||||||
for (var o = 0; o < e.length; o++) {
|
for (var o = 0; o < e.length; o++) {
|
||||||
var r = e[o];
|
var r = e[o];
|
||||||
@@ -67,7 +69,7 @@
|
|||||||
manifest.json provides metadata used when your web app is installed on a
|
manifest.json provides metadata used when your web app is installed on a
|
||||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||||
-->
|
-->
|
||||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
<link href="%PUBLIC_URL%/manifest.json" rel="manifest"/>
|
||||||
<!--
|
<!--
|
||||||
Notice the use of %PUBLIC_URL% in the tags above.
|
Notice the use of %PUBLIC_URL% in the tags above.
|
||||||
It will be replaced with the URL of the `public` folder during the build.
|
It will be replaced with the URL of the `public` folder during the build.
|
||||||
@@ -78,9 +80,9 @@
|
|||||||
Learn how to configure a non-root public URL by running `npm run build`.
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
-->
|
-->
|
||||||
<title>ImEX Online</title>
|
<title>ImEX Online</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
id="etuajo-oikeus"
|
id="etuajo-oikeus"
|
||||||
width="450"
|
width="450"
|
||||||
height="450">
|
height="450">
|
||||||
<path d="M 0,225 L 225,0 L 450,225 L 225,450" fill="#000000" />
|
<path d="M 0,225 L 225,0 L 450,225 L 225,450" fill="#000000"/>
|
||||||
<path d="M 225,431.25 L 18.75,225 L 225,18.75 L 431.25,225" fill="#ffffff" />
|
<path d="M 225,431.25 L 18.75,225 L 225,18.75 L 431.25,225" fill="#ffffff"/>
|
||||||
<path d="M 56.25,225 L 225,56.25 L 393.75,225 L 225,393.75" fill="#000000" />
|
<path d="M 56.25,225 L 225,56.25 L 393.75,225 L 225,393.75" fill="#000000"/>
|
||||||
<path d="M 225,386.25 L 63.75,225 L 225,63.75 L 386.25,225" fill="#ffd90f" />
|
<path d="M 225,386.25 L 63.75,225 L 225,63.75 L 386.25,225" fill="#ffd90f"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 552 B After Width: | Height: | Size: 572 B |
@@ -83,6 +83,7 @@
|
|||||||
animation: alertBlinker 1s linear infinite;
|
animation: alertBlinker 1s linear infinite;
|
||||||
color: blue;
|
color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes alertBlinker {
|
@keyframes alertBlinker {
|
||||||
50% {
|
50% {
|
||||||
color: red;
|
color: red;
|
||||||
@@ -99,6 +100,7 @@
|
|||||||
color: rgba(255, 140, 0, 0.8);
|
color: rgba(255, 140, 0, 0.8);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.production-completion-past {
|
.production-completion-past {
|
||||||
color: rgba(255, 0, 0, 0.8);
|
color: rgba(255, 0, 0, 0.8);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 52 KiB |
@@ -1,7 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 -256 1792 1792">
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
|
||||||
<g transform="matrix(1,0,0,-1,197.42373,1300.6102)">
|
viewBox="0 -256 1792 1792">
|
||||||
|
<g transform="matrix(1,0,0,-1,197.42373,1300.6102)">
|
||||||
<path d="M 1408,131 Q 1408,11 1335,-58.5 1262,-128 1141,-128 H 267 Q 146,-128 73,-58.5 0,11 0,131 0,184 3.5,234.5 7,285 17.5,343.5 28,402 44,452 q 16,50 43,97.5 27,47.5 62,81 35,33.5 85.5,53.5 50.5,20 111.5,20 9,0 42,-21.5 33,-21.5 74.5,-48 41.5,-26.5 108,-48 Q 637,565 704,565 q 67,0 133.5,21.5 66.5,21.5 108,48 41.5,26.5 74.5,48 33,21.5 42,21.5 61,0 111.5,-20 50.5,-20 85.5,-53.5 35,-33.5 62,-81 27,-47.5 43,-97.5 16,-50 26.5,-108.5 10.5,-58.5 14,-109 Q 1408,184 1408,131 z m -320,893 Q 1088,865 975.5,752.5 863,640 704,640 545,640 432.5,752.5 320,865 320,1024 320,1183 432.5,1295.5 545,1408 704,1408 863,1408 975.5,1295.5 1088,1183 1088,1024 z"/>
|
<path d="M 1408,131 Q 1408,11 1335,-58.5 1262,-128 1141,-128 H 267 Q 146,-128 73,-58.5 0,11 0,131 0,184 3.5,234.5 7,285 17.5,343.5 28,402 44,452 q 16,50 43,97.5 27,47.5 62,81 35,33.5 85.5,53.5 50.5,20 111.5,20 9,0 42,-21.5 33,-21.5 74.5,-48 41.5,-26.5 108,-48 Q 637,565 704,565 q 67,0 133.5,21.5 66.5,21.5 108,48 41.5,26.5 74.5,48 33,21.5 42,21.5 61,0 111.5,-20 50.5,-20 85.5,-53.5 35,-33.5 62,-81 27,-47.5 43,-97.5 16,-50 26.5,-108.5 10.5,-58.5 14,-109 Q 1408,184 1408,131 z m -320,893 Q 1088,865 975.5,752.5 863,640 704,640 545,640 432.5,752.5 320,865 320,1024 320,1183 432.5,1295.5 545,1408 704,1408 863,1408 975.5,1295.5 1088,1183 1088,1024 z"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 981 B After Width: | Height: | Size: 955 B |
@@ -1 +1,3 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.5 7c.276 0 .5.224.5.5v.511c0 .793-.926.989-1.616.989l-1.086-2h2.202zm-1.441 3.506c.639 1.186.946 2.252.946 3.666 0 1.37-.397 2.533-1.005 3.981v1.847c0 .552-.448 1-1 1h-1.5c-.552 0-1-.448-1-1v-1h-13v1c0 .552-.448 1-1 1h-1.5c-.552 0-1-.448-1-1v-1.847c-.608-1.448-1.005-2.611-1.005-3.981 0-1.414.307-2.48.946-3.666.829-1.537 1.851-3.453 2.93-5.252.828-1.382 1.262-1.707 2.278-1.889 1.532-.275 2.918-.365 4.851-.365s3.319.09 4.851.365c1.016.182 1.45.507 2.278 1.889 1.079 1.799 2.101 3.715 2.93 5.252zm-16.059 2.994c0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5.672 1.5 1.5 1.5 1.5-.672 1.5-1.5zm10 1c0-.276-.224-.5-.5-.5h-7c-.276 0-.5.224-.5.5s.224.5.5.5h7c.276 0 .5-.224.5-.5zm2.941-5.527s-.74-1.826-1.631-3.142c-.202-.298-.515-.502-.869-.566-1.511-.272-2.835-.359-4.441-.359s-2.93.087-4.441.359c-.354.063-.667.267-.869.566-.891 1.315-1.631 3.142-1.631 3.142 1.64.313 4.309.497 6.941.497s5.301-.184 6.941-.497zm2.059 4.527c0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5.672 1.5 1.5 1.5 1.5-.672 1.5-1.5zm-18.298-6.5h-2.202c-.276 0-.5.224-.5.5v.511c0 .793.926.989 1.616.989l1.086-2z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||||
|
<path d="M23.5 7c.276 0 .5.224.5.5v.511c0 .793-.926.989-1.616.989l-1.086-2h2.202zm-1.441 3.506c.639 1.186.946 2.252.946 3.666 0 1.37-.397 2.533-1.005 3.981v1.847c0 .552-.448 1-1 1h-1.5c-.552 0-1-.448-1-1v-1h-13v1c0 .552-.448 1-1 1h-1.5c-.552 0-1-.448-1-1v-1.847c-.608-1.448-1.005-2.611-1.005-3.981 0-1.414.307-2.48.946-3.666.829-1.537 1.851-3.453 2.93-5.252.828-1.382 1.262-1.707 2.278-1.889 1.532-.275 2.918-.365 4.851-.365s3.319.09 4.851.365c1.016.182 1.45.507 2.278 1.889 1.079 1.799 2.101 3.715 2.93 5.252zm-16.059 2.994c0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5.672 1.5 1.5 1.5 1.5-.672 1.5-1.5zm10 1c0-.276-.224-.5-.5-.5h-7c-.276 0-.5.224-.5.5s.224.5.5.5h7c.276 0 .5-.224.5-.5zm2.941-5.527s-.74-1.826-1.631-3.142c-.202-.298-.515-.502-.869-.566-1.511-.272-2.835-.359-4.441-.359s-2.93.087-4.441.359c-.354.063-.667.267-.869.566-.891 1.315-1.631 3.142-1.631 3.142 1.64.313 4.309.497 6.941.497s5.301-.184 6.941-.497zm2.059 4.527c0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5.672 1.5 1.5 1.5 1.5-.672 1.5-1.5zm-18.298-6.5h-2.202c-.276 0-.5.224-.5.5v.511c0 .793.926.989 1.616.989l1.086-2z"/>
|
||||||
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,5 +1,21 @@
|
|||||||
<?xml version="1.0" ?><svg style="enable-background:new 0 0 128 128;" version="1.1" viewBox="0 0 128 128" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css">
|
<?xml version="1.0" ?>
|
||||||
|
<svg style="enable-background:new 0 0 128 128;" version="1.1" viewBox="0 0 128 128" xml:space="preserve"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"><style type="text/css">
|
||||||
.st0{fill:none;stroke:#000000;stroke-width:8;stroke-miterlimit:10;}
|
.st0{fill:none;stroke:#000000;stroke-width:8;stroke-miterlimit:10;}
|
||||||
.st1{display:none;}
|
.st1{display:none;}
|
||||||
.st2{display:inline;opacity:0.25;fill:#F45EFD;}
|
.st2{display:inline;opacity:0.25;fill:#F45EFD;}
|
||||||
</style><g id="_x31_2_3D_Printing"/><g id="_x31_1_VR_Gear"/><g id="_x31_0_Virtual_reality"/><g id="_x39__Augmented_reality"/><g id="_x38__Teleport"/><g id="_x37__Glassess"/><g id="_x36__Folding_phone"/><g id="_x35__Drone"/><g id="_x34__Retina_scan"/><g id="_x33__Smartwatch"/><g id="_x32__Bionic_Arm"/><g id="_x31__Chip"><g><path d="M108,40c-5.2,0-9.6,3.3-11.3,8H84V32h-8V20h-8v12h-8V20h-8v12h-8v16H24v-8.7c4.7-1.7,8-6.1,8-11.3c0-6.6-5.4-12-12-12 S8,21.4,8,28c0,5.2,3.3,9.6,8,11.3V56h28v8H16v16.7c-4.7,1.7-8,6.1-8,11.3c0,6.6,5.4,12,12,12s12-5.4,12-12c0-5.2-3.3-9.6-8-11.3 V72h20v16h8v12h8V88h8v12h8V88h8V72h8v16.7c-4.7,1.7-8,6.1-8,11.3c0,6.6,5.4,12,12,12s12-5.4,12-12c0-5.2-3.3-9.6-8-11.3V64H84v-8 h12.7c1.7,4.7,6.1,8,11.3,8c6.6,0,12-5.4,12-12S114.6,40,108,40z M20,32c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S22.2,32,20,32z M20,96c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S22.2,96,20,96z M76,80H52V40h24V80z M96,96c2.2,0,4,1.8,4,4s-1.8,4-4,4s-4-1.8-4-4 S93.8,96,96,96z M108,56c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S110.2,56,108,56z"/><rect height="8" width="8" x="56" y="64"/></g></g><g class="st1" id="Guide"><path class="st2" d="M120,8v112H8V8H120 M128,0H0v128h128V0L128,0z"/></g></svg>
|
</style>
|
||||||
|
<g id="_x31_2_3D_Printing"/>
|
||||||
|
<g id="_x31_1_VR_Gear"/>
|
||||||
|
<g id="_x31_0_Virtual_reality"/>
|
||||||
|
<g id="_x39__Augmented_reality"/>
|
||||||
|
<g id="_x38__Teleport"/>
|
||||||
|
<g id="_x37__Glassess"/>
|
||||||
|
<g id="_x36__Folding_phone"/>
|
||||||
|
<g id="_x35__Drone"/>
|
||||||
|
<g id="_x34__Retina_scan"/>
|
||||||
|
<g id="_x33__Smartwatch"/>
|
||||||
|
<g id="_x32__Bionic_Arm"/>
|
||||||
|
<g id="_x31__Chip"><g><path d="M108,40c-5.2,0-9.6,3.3-11.3,8H84V32h-8V20h-8v12h-8V20h-8v12h-8v16H24v-8.7c4.7-1.7,8-6.1,8-11.3c0-6.6-5.4-12-12-12 S8,21.4,8,28c0,5.2,3.3,9.6,8,11.3V56h28v8H16v16.7c-4.7,1.7-8,6.1-8,11.3c0,6.6,5.4,12,12,12s12-5.4,12-12c0-5.2-3.3-9.6-8-11.3 V72h20v16h8v12h8V88h8v12h8V88h8V72h8v16.7c-4.7,1.7-8,6.1-8,11.3c0,6.6,5.4,12,12,12s12-5.4,12-12c0-5.2-3.3-9.6-8-11.3V64H84v-8 h12.7c1.7,4.7,6.1,8,11.3,8c6.6,0,12-5.4,12-12S114.6,40,108,40z M20,32c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S22.2,32,20,32z M20,96c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S22.2,96,20,96z M76,80H52V40h24V80z M96,96c2.2,0,4,1.8,4,4s-1.8,4-4,4s-4-1.8-4-4 S93.8,96,96,96z M108,56c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S110.2,56,108,56z"/><rect
|
||||||
|
height="8" width="8" x="56" y="64"/></g></g>
|
||||||
|
<g class="st1" id="Guide"><path class="st2" d="M120,8v112H8V8H120 M128,0H0v128h128V0L128,0z"/></g></svg>
|
||||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
@@ -5,10 +5,9 @@
|
|||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="1668"
|
width="1668"
|
||||||
height="1160"
|
height="1160"
|
||||||
id="svg2"
|
id="svg2"
|
||||||
@@ -16,7 +15,7 @@
|
|||||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||||
sodipodi:docname="unfolded_car.svg">
|
sodipodi:docname="unfolded_car.svg">
|
||||||
<defs
|
<defs
|
||||||
id="defs4" />
|
id="defs4"/>
|
||||||
<sodipodi:namedview
|
<sodipodi:namedview
|
||||||
id="base"
|
id="base"
|
||||||
pagecolor="#ffffff"
|
pagecolor="#ffffff"
|
||||||
@@ -41,7 +40,7 @@
|
|||||||
inkscape:window-height="1017"
|
inkscape:window-height="1017"
|
||||||
inkscape:window-x="-8"
|
inkscape:window-x="-8"
|
||||||
inkscape:window-y="-8"
|
inkscape:window-y="-8"
|
||||||
inkscape:window-maximized="1" />
|
inkscape:window-maximized="1"/>
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata7">
|
id="metadata7">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
@@ -49,8 +48,8 @@
|
|||||||
rdf:about="">
|
rdf:about="">
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||||
<dc:title />
|
<dc:title/>
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -69,108 +68,108 @@
|
|||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3070"
|
id="path3070"
|
||||||
d="M 748.57143,752.85714 C 790,737.14285 888.57143,741.42857 940,740 c 51.42857,-1.42857 160.4745,10.23062 201.4286,27.14286 40.9958,16.92944 134.7843,67.65586 151.4285,72.85714 22.8572,7.14286 41.4286,7.14286 80,20 38.5715,12.85714 25.7143,32.85714 25.7143,32.85714 l -30,-4.28571 -5.7562,52.92008 c 0,0 37.1848,1.36563 41.4705,15.65135 4.2857,14.28571 5.7143,31.42857 -2.8571,41.42857 -8.5715,9.99997 -14.2857,-1.42857 -18.5715,12.85717 -4.2857,14.2857 -2.8571,28.5714 -27.1428,27.1428 -24.2857,-1.4285 -98.5715,0 -98.5715,0 0,0 -15.7142,-108.5714 -98.5714,-105.71426 -82.8571,2.85715 -95.7143,105.71426 -95.7143,105.71426 H 562.85714 c 0,0 -5.71428,-104.28569 -97.14286,-105.71426 -91.42857,-1.42857 -98.57142,105.71426 -98.57142,105.71426 H 301.42857 L 282.85714,1000 c -0.51524,0 -26.24328,-10e-6 -21.42857,-17.14285 4.65143,-16.56149 -4.28571,-41.42858 17.14286,-41.42858 21.42857,0 47.14286,1.42857 47.14286,1.42857 L 341.42857,898.57143 300,895.71429 c 0,0 34.28571,-24.28572 118.57143,-32.85715 84.28571,-8.57143 157.14286,-8.57143 192.85714,-31.42857 35.71429,-22.85714 137.14286,-78.57143 137.14286,-78.57143 z"
|
d="M 748.57143,752.85714 C 790,737.14285 888.57143,741.42857 940,740 c 51.42857,-1.42857 160.4745,10.23062 201.4286,27.14286 40.9958,16.92944 134.7843,67.65586 151.4285,72.85714 22.8572,7.14286 41.4286,7.14286 80,20 38.5715,12.85714 25.7143,32.85714 25.7143,32.85714 l -30,-4.28571 -5.7562,52.92008 c 0,0 37.1848,1.36563 41.4705,15.65135 4.2857,14.28571 5.7143,31.42857 -2.8571,41.42857 -8.5715,9.99997 -14.2857,-1.42857 -18.5715,12.85717 -4.2857,14.2857 -2.8571,28.5714 -27.1428,27.1428 -24.2857,-1.4285 -98.5715,0 -98.5715,0 0,0 -15.7142,-108.5714 -98.5714,-105.71426 -82.8571,2.85715 -95.7143,105.71426 -95.7143,105.71426 H 562.85714 c 0,0 -5.71428,-104.28569 -97.14286,-105.71426 -91.42857,-1.42857 -98.57142,105.71426 -98.57142,105.71426 H 301.42857 L 282.85714,1000 c -0.51524,0 -26.24328,-10e-6 -21.42857,-17.14285 4.65143,-16.56149 -4.28571,-41.42858 17.14286,-41.42858 21.42857,0 47.14286,1.42857 47.14286,1.42857 L 341.42857,898.57143 300,895.71429 c 0,0 34.28571,-24.28572 118.57143,-32.85715 84.28571,-8.57143 157.14286,-8.57143 192.85714,-31.42857 35.71429,-22.85714 137.14286,-78.57143 137.14286,-78.57143 z"
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3846"
|
id="path3846"
|
||||||
d="m 282.85714,1000 h 92.85715"
|
d="m 282.85714,1000 h 92.85715"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3850"
|
id="path3850"
|
||||||
d="M 555.71429,1000 H 1072.8571"
|
d="M 555.71429,1000 H 1072.8571"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3852"
|
id="path3852"
|
||||||
d="m 1245.7143,1000 h 151.4286"
|
d="m 1245.7143,1000 h 151.4286"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="csccc"
|
sodipodi:nodetypes="csccc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3884"
|
id="path3884"
|
||||||
d="M 618.57143,847.14286 C 634.28572,828.57143 741.94515,765.61839 770,758.57143 c 29.50156,-7.41035 103.00398,-7.14286 103.00398,-7.14286 l -7.14285,95.71429 z"
|
d="M 618.57143,847.14286 C 634.28572,828.57143 741.94515,765.61839 770,758.57143 c 29.50156,-7.41035 103.00398,-7.14286 103.00398,-7.14286 l -7.14285,95.71429 z"
|
||||||
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3888"
|
id="path3888"
|
||||||
d="m 658.57143,817.14286 v 28.57143"
|
d="m 658.57143,817.14286 v 28.57143"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="ccccc"
|
sodipodi:nodetypes="ccccc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3892"
|
id="path3892"
|
||||||
d="m 898.69729,752.83617 -4.28572,94.32767 h 207.16383 c -11.3076,-20.75266 -46.6124,-74.9056 -72.8572,-88.57143 -14.2857,-10 -82.87805,-4.32767 -130.02091,-5.75624 z"
|
d="m 898.69729,752.83617 -4.28572,94.32767 h 207.16383 c -11.3076,-20.75266 -46.6124,-74.9056 -72.8572,-88.57143 -14.2857,-10 -82.87805,-4.32767 -130.02091,-5.75624 z"
|
||||||
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cscsc"
|
sodipodi:nodetypes="cscsc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3896"
|
id="path3896"
|
||||||
d="m 1065.7143,760 c 0,0 80,84.28571 85.7143,87.14286 5.7143,2.85714 115.7143,1.42857 115.7143,1.42857 0,0 -77.1429,-47.14286 -102.8572,-58.57143 -25.7143,-11.42857 -90,-31.42857 -98.5714,-30 z"
|
d="m 1065.7143,760 c 0,0 80,84.28571 85.7143,87.14286 5.7143,2.85714 115.7143,1.42857 115.7143,1.42857 0,0 -77.1429,-47.14286 -102.8572,-58.57143 -25.7143,-11.42857 -90,-31.42857 -98.5714,-30 z"
|
||||||
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="csc"
|
sodipodi:nodetypes="csc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3900"
|
id="path3900"
|
||||||
d="m 599.63544,837.66076 c -14.07595,30.96709 -18.29873,71.78734 -18.29873,94.30886 0,22.52152 4.22279,91.49368 22.52152,105.56958"
|
d="m 599.63544,837.66076 c -14.07595,30.96709 -18.29873,71.78734 -18.29873,94.30886 0,22.52152 4.22279,91.49368 22.52152,105.56958"
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cccc"
|
sodipodi:nodetypes="cccc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3900-6"
|
id="path3900-6"
|
||||||
d="m 632.78482,993.12906 c -1.40759,5.63038 -4.04683,81.90444 -6.51012,106.93324 -3.67029,18.7146 -4.98821,51.2184 -6.15823,87.3149 0,22.5215 7.03798,80.2329 12.66836,105.5696"
|
d="m 632.78482,993.12906 c -1.40759,5.63038 -4.04683,81.90444 -6.51012,106.93324 -3.67029,18.7146 -4.98821,51.2184 -6.15823,87.3149 0,22.5215 7.03798,80.2329 12.66836,105.5696"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3920"
|
id="path3920"
|
||||||
d="m 357.52911,998.12658 c 0,0 15.48355,-85.86329 106.97722,-85.86329 91.49367,0 109.7924,87.27089 109.7924,87.27089"
|
d="m 357.52911,998.12658 c 0,0 15.48355,-85.86329 106.97722,-85.86329 91.49367,0 109.7924,87.27089 109.7924,87.27089"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3920-5"
|
id="path3920-5"
|
||||||
d="m 800.28863,1253.5341 c 0,0 15.48355,-85.8633 106.97722,-85.8633 91.49364,0 109.79245,87.2709 109.79245,87.2709"
|
d="m 800.28863,1253.5341 c 0,0 15.48355,-85.8633 106.97722,-85.8633 91.49364,0 109.79245,87.2709 109.79245,87.2709"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cc"
|
sodipodi:nodetypes="cc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3940"
|
id="path3940"
|
||||||
d="M 323.74684,943.23038 H 387.0886"
|
d="M 323.74684,943.23038 H 387.0886"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cssc"
|
sodipodi:nodetypes="cssc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3942"
|
id="path3942"
|
||||||
d="m 1033.1747,746.16708 c 18.2988,12.66836 56.3038,50.67343 92.9012,104.16203 36.5975,53.48861 8.4456,59.11899 -18.2987,74.60254 -26.7443,15.48354 -49.2658,42.22784 -67.5645,112.60755"
|
d="m 1033.1747,746.16708 c 18.2988,12.66836 56.3038,50.67343 92.9012,104.16203 36.5975,53.48861 8.4456,59.11899 -18.2987,74.60254 -26.7443,15.48354 -49.2658,42.22784 -67.5645,112.60755"
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cc"
|
sodipodi:nodetypes="cc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3944"
|
id="path3944"
|
||||||
d="M 1112.7747,1196.0455 H 983.27594"
|
d="M 1112.7747,1196.0455 H 983.27594"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3946"
|
id="path3946"
|
||||||
d="M 540.51646,941.82278 H 1085.2557"
|
d="M 540.51646,941.82278 H 1085.2557"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3948"
|
id="path3948"
|
||||||
d="m 1062.7342,791.21013 v 54.8962"
|
d="m 1062.7342,791.21013 v 54.8962"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<rect
|
<rect
|
||||||
rx="2.9330556"
|
rx="2.9330556"
|
||||||
ry="7.3789682"
|
ry="7.3789682"
|
||||||
@@ -179,7 +178,7 @@
|
|||||||
height="14.541238"
|
height="14.541238"
|
||||||
width="41.285542"
|
width="41.285542"
|
||||||
id="rect3950"
|
id="rect3950"
|
||||||
style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<rect
|
<rect
|
||||||
rx="2.9330556"
|
rx="2.9330556"
|
||||||
ry="7.3789682"
|
ry="7.3789682"
|
||||||
@@ -188,7 +187,7 @@
|
|||||||
height="14.541238"
|
height="14.541238"
|
||||||
width="41.285542"
|
width="41.285542"
|
||||||
id="rect3950-4"
|
id="rect3950-4"
|
||||||
style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<rect
|
<rect
|
||||||
ry="7.691968"
|
ry="7.691968"
|
||||||
rx="1.6302098"
|
rx="1.6302098"
|
||||||
@@ -197,7 +196,7 @@
|
|||||||
height="11.738417"
|
height="11.738417"
|
||||||
width="18.776392"
|
width="18.776392"
|
||||||
id="rect4014"
|
id="rect4014"
|
||||||
style="fill:#ffcb00;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:#ffcb00;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g4451"
|
id="g4451"
|
||||||
@@ -218,33 +217,33 @@
|
|||||||
sodipodi:sides="5"
|
sodipodi:sides="5"
|
||||||
id="path4141"
|
id="path4141"
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
sodipodi:type="star" />
|
sodipodi:type="star"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cc"
|
sodipodi:nodetypes="cc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4143"
|
id="path4143"
|
||||||
d="m 31.741795,745.02273 315.301265,-111.2"
|
d="m 31.741795,745.02273 315.301265,-111.2"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cc"
|
sodipodi:nodetypes="cc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4145"
|
id="path4145"
|
||||||
d="M 30.3342,888.59742 345.63546,1004.0202"
|
d="M 30.3342,888.59742 345.63546,1004.0202"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="ccssccccc"
|
sodipodi:nodetypes="ccssccccc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4165"
|
id="path4165"
|
||||||
d="m 595.41266,378.78481 140.75949,38.00506 c 0,0 -8.44557,49.22222 -8.44557,71.9633 0,20.14574 0,124.39619 0,147.62151 0,30.96708 8.44557,78.82532 8.44557,78.82532 l -140.7595,33.78228 c 0,0 -17.24303,-61.90221 -17.24303,-92.90127 0.38411,-33.80191 1.75909,-154.79945 2.1114,-185.80253 -1.4076,-30.96709 15.13164,-91.49367 15.13164,-91.49367 z"
|
d="m 595.41266,378.78481 140.75949,38.00506 c 0,0 -8.44557,49.22222 -8.44557,71.9633 0,20.14574 0,124.39619 0,147.62151 0,30.96708 8.44557,78.82532 8.44557,78.82532 l -140.7595,33.78228 c 0,0 -17.24303,-61.90221 -17.24303,-92.90127 0.38411,-33.80191 1.75909,-154.79945 2.1114,-185.80253 -1.4076,-30.96709 15.13164,-91.49367 15.13164,-91.49367 z"
|
||||||
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="csccsc"
|
sodipodi:nodetypes="csccsc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4175"
|
id="path4175"
|
||||||
d="m 736.17216,416.78987 c 0,0 94.30885,5.63038 152.02025,5.63038 106.97721,0 201.28609,-5.63038 201.28609,-5.63038 m -1.4076,297.00254 c 0,0 -77.4177,-5.63039 -199.87849,-5.63039 -68.97215,0 -152.02026,7.03798 -152.02026,7.03798"
|
d="m 736.17216,416.78987 c 0,0 94.30885,5.63038 152.02025,5.63038 106.97721,0 201.28609,-5.63038 201.28609,-5.63038 m -1.4076,297.00254 c 0,0 -77.4177,-5.63039 -199.87849,-5.63039 -68.97215,0 -152.02026,7.03798 -152.02026,7.03798"
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<rect
|
<rect
|
||||||
ry="34.43626"
|
ry="34.43626"
|
||||||
rx="31.189682"
|
rx="31.189682"
|
||||||
@@ -253,93 +252,93 @@
|
|||||||
height="181.57974"
|
height="181.57974"
|
||||||
width="106.97722"
|
width="106.97722"
|
||||||
id="rect4177"
|
id="rect4177"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cccccccc"
|
sodipodi:nodetypes="cccccccc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4135-9"
|
id="path4135-9"
|
||||||
d="M 345.77724,632.78476 H 51.589892 l -14.07595,102.75443 -7.03797,11.26076 v 142.16709 l 7.03797,14.07595 15.48355,101.34681 H 341.55445"
|
d="M 345.77724,632.78476 H 51.589892 l -14.07595,102.75443 -7.03797,11.26076 v 142.16709 l 7.03797,14.07595 15.48355,101.34681 H 341.55445"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="csscccssccc"
|
sodipodi:nodetypes="csscccssccc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4203"
|
id="path4203"
|
||||||
d="m 1086.6633,416.78987 c 0,0 -12.6684,47.85823 -12.6684,73.19494 0,25.33671 0,121.05316 0,146.38987 0,25.33671 12.6684,77.41773 12.6684,77.41773 l 205.5089,38.00505 108.3848,10e-6 c 0,0 14.0759,-81.64051 14.0759,-115.42279 0,-33.78227 0,-109.7924 0,-147.79746 0,-38.00507 -14.0759,-109.79241 -14.0759,-109.79241 h -108.3848 z"
|
d="m 1086.6633,416.78987 c 0,0 -12.6684,47.85823 -12.6684,73.19494 0,25.33671 0,121.05316 0,146.38987 0,25.33671 12.6684,77.41773 12.6684,77.41773 l 205.5089,38.00505 108.3848,10e-6 c 0,0 14.0759,-81.64051 14.0759,-115.42279 0,-33.78227 0,-109.7924 0,-147.79746 0,-38.00507 -14.0759,-109.79241 -14.0759,-109.79241 h -108.3848 z"
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="csscsccsc"
|
sodipodi:nodetypes="csscsccsc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4205"
|
id="path4205"
|
||||||
d="m 1097.9241,435.08861 c 0,0 -8.4456,40.82025 -8.4456,56.3038 0,15.48354 0,125.27594 0,144.98227 0,19.70633 7.038,57.7114 7.038,57.7114 0,0 94.3088,26.7443 123.8683,26.7443 29.5595,0 42.2279,0 42.2279,0 V 408.3443 c 0,0 -22.5216,0 -47.8583,0 -25.3367,0 -116.8303,26.74431 -116.8303,26.74431 z"
|
d="m 1097.9241,435.08861 c 0,0 -8.4456,40.82025 -8.4456,56.3038 0,15.48354 0,125.27594 0,144.98227 0,19.70633 7.038,57.7114 7.038,57.7114 0,0 94.3088,26.7443 123.8683,26.7443 29.5595,0 42.2279,0 42.2279,0 V 408.3443 c 0,0 -22.5216,0 -47.8583,0 -25.3367,0 -116.8303,26.74431 -116.8303,26.74431 z"
|
||||||
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4207"
|
id="path4207"
|
||||||
d="m 1292.1722,378.78481 c 0,0 30.967,40.82025 30.967,111.2 0,70.37975 0,81.64051 0,146.38987 0,64.74937 -30.967,116.83038 -30.967,116.83038"
|
d="m 1292.1722,378.78481 c 0,0 30.967,40.82025 30.967,111.2 0,70.37975 0,81.64051 0,146.38987 0,64.74937 -30.967,116.83038 -30.967,116.83038"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4209"
|
id="path4209"
|
||||||
d="m 578.52152,489.98481 32.37468,-32.37468 v -40.82026 112.6076"
|
d="m 578.52152,489.98481 32.37468,-32.37468 v -40.82026 112.6076"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4209-7"
|
id="path4209-7"
|
||||||
d="m 323.81774,865.03792 32.37468,-32.37468 v -40.82026 112.6076"
|
d="m 323.81774,865.03792 32.37468,-32.37468 v -40.82026 112.6076"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4209-76"
|
id="path4209-76"
|
||||||
d="m 1005.0937,787.62021 -32.37469,-32.37468 v -40.82026 112.6076"
|
d="m 1005.0937,787.62021 -32.37469,-32.37468 v -40.82026 112.6076"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cssc"
|
sodipodi:nodetypes="cssc"
|
||||||
transform="translate(-253.99998,253.99995)"
|
transform="translate(-253.99998,253.99995)"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path4243"
|
id="path4243"
|
||||||
d="m 595.41266,378.78481 c 0,0 -42.22785,78.82532 -42.22785,111.2 0,32.37468 0,105.56962 0,146.38987 0,40.82026 42.22785,114.01519 42.22785,114.01519"
|
d="m 595.41266,378.78481 c 0,0 -42.22785,78.82532 -42.22785,111.2 0,32.37468 0,105.56962 0,146.38987 0,40.82026 42.22785,114.01519 42.22785,114.01519"
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
</g>
|
</g>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -106.79241,740.91638 1.4076,-91.49367 c 0,0 5.630382,-23.92911 -25.33671,-25.3367 -30.96709,-1.4076 -26.74431,2.81518 -26.74431,2.81518 l 1.40759,415.24051 c 0,0 9.85317,0 28.1519,0 28.151917,0 22.52153,-22.5216 22.52153,-22.5216 l -1e-5,-95.71637 c -12.67694,0 -11.26075,-9.61416 -11.26075,-16.89115 0,-16.94968 -10e-6,-136.5367 -10e-6,-149.20506 0.45035,-18.89009 9.85317,-16.89114 9.85317,-16.89114 z"
|
d="m -106.79241,740.91638 1.4076,-91.49367 c 0,0 5.630382,-23.92911 -25.33671,-25.3367 -30.96709,-1.4076 -26.74431,2.81518 -26.74431,2.81518 l 1.40759,415.24051 c 0,0 9.85317,0 28.1519,0 28.151917,0 22.52153,-22.5216 22.52153,-22.5216 l -1e-5,-95.71637 c -12.67694,0 -11.26075,-9.61416 -11.26075,-16.89115 0,-16.94968 -10e-6,-136.5367 -10e-6,-149.20506 0.45035,-18.89009 9.85317,-16.89114 9.85317,-16.89114 z"
|
||||||
id="path4245"
|
id="path4245"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="ccsccsccccc" />
|
sodipodi:nodetypes="ccsccsccccc"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -155.98734,646.16195 h 49.26582"
|
d="m -155.98734,646.16195 h 49.26582"
|
||||||
id="path4247"
|
id="path4247"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -155.13671,1020.4303 h 49.26582"
|
d="m -155.13671,1020.4303 h 49.26582"
|
||||||
id="path4247-2"
|
id="path4247-2"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -156.69114,705.05816 h 49.26582"
|
d="m -156.69114,705.05816 h 49.26582"
|
||||||
id="path4247-1"
|
id="path4247-1"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -153.87595,964.87082 h 49.26582"
|
d="m -153.87595,964.87082 h 49.26582"
|
||||||
id="path4247-0"
|
id="path4247-0"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M -147.09621,703.82272 V 964.22778"
|
d="M -147.09621,703.82272 V 964.22778"
|
||||||
id="path4281-1"
|
id="path4281-1"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M -137.24304,705.38727 V 965.79233"
|
d="M -137.24304,705.38727 V 965.79233"
|
||||||
id="path4281-8"
|
id="path4281-8"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<g
|
<g
|
||||||
id="g4428"
|
id="g4428"
|
||||||
transform="translate(-13.779768,15.524026)">
|
transform="translate(-13.779768,15.524026)">
|
||||||
@@ -348,95 +347,95 @@
|
|||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3070-9"
|
id="path3070-9"
|
||||||
d="m 494.57145,641.6137 c 41.42857,15.71429 140,11.42857 191.42857,12.85714 51.42857,1.42857 160.4745,-10.23062 201.4286,-27.14286 40.9958,-16.92944 134.78428,-67.65586 151.42848,-72.85714 22.8572,-7.14286 41.4286,-7.14286 80,-20 38.5715,-12.85714 25.7143,-32.85714 25.7143,-32.85714 l -30,4.28571 -5.7562,-52.92008 c 0,0 37.1848,-1.36563 41.4705,-15.65135 4.2857,-14.28571 5.7143,-31.42857 -2.8571,-41.42857 -8.5715,-9.99997 -14.2857,1.42857 -18.5715,-12.85717 -4.2857,-14.2857 -2.8571,-28.5714 -27.1428,-27.1428 -24.2857,1.4285 -98.5715,0 -98.5715,0 0,0 -15.71418,108.5714 -98.57138,105.71426 -82.8571,-2.85715 -95.7143,-105.71426 -95.7143,-105.71426 H 308.85716 c 0,0 -5.71428,104.28569 -97.14286,105.71426 -91.42857,1.42857 -98.57142,-105.71426 -98.57142,-105.71426 H 47.428587 l -18.57143,38.5714 c -0.51524,0 -26.243277,10e-6 -21.428567,17.14285 4.65143,16.56149 -4.28571,41.42858 17.14286,41.42858 21.428567,0 47.142857,-1.42857 47.142857,-1.42857 l 15.71428,44.28571 -41.42857,2.85714 c 0,0 34.28571,24.28572 118.571433,32.85715 84.28571,8.57143 157.14286,8.57143 192.85714,31.42857 35.71429,22.85714 137.14286,78.57143 137.14286,78.57143 z"
|
d="m 494.57145,641.6137 c 41.42857,15.71429 140,11.42857 191.42857,12.85714 51.42857,1.42857 160.4745,-10.23062 201.4286,-27.14286 40.9958,-16.92944 134.78428,-67.65586 151.42848,-72.85714 22.8572,-7.14286 41.4286,-7.14286 80,-20 38.5715,-12.85714 25.7143,-32.85714 25.7143,-32.85714 l -30,4.28571 -5.7562,-52.92008 c 0,0 37.1848,-1.36563 41.4705,-15.65135 4.2857,-14.28571 5.7143,-31.42857 -2.8571,-41.42857 -8.5715,-9.99997 -14.2857,1.42857 -18.5715,-12.85717 -4.2857,-14.2857 -2.8571,-28.5714 -27.1428,-27.1428 -24.2857,1.4285 -98.5715,0 -98.5715,0 0,0 -15.71418,108.5714 -98.57138,105.71426 -82.8571,-2.85715 -95.7143,-105.71426 -95.7143,-105.71426 H 308.85716 c 0,0 -5.71428,104.28569 -97.14286,105.71426 -91.42857,1.42857 -98.57142,-105.71426 -98.57142,-105.71426 H 47.428587 l -18.57143,38.5714 c -0.51524,0 -26.243277,10e-6 -21.428567,17.14285 4.65143,16.56149 -4.28571,41.42858 17.14286,41.42858 21.428567,0 47.142857,-1.42857 47.142857,-1.42857 l 15.71428,44.28571 -41.42857,2.85714 c 0,0 34.28571,24.28572 118.571433,32.85715 84.28571,8.57143 157.14286,8.57143 192.85714,31.42857 35.71429,22.85714 137.14286,78.57143 137.14286,78.57143 z"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3846-2"
|
id="path3846-2"
|
||||||
d="M 28.857157,394.47084 H 121.71431"
|
d="M 28.857157,394.47084 H 121.71431"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3850-6"
|
id="path3850-6"
|
||||||
d="M 301.71431,394.47084 H 818.85712"
|
d="M 301.71431,394.47084 H 818.85712"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3852-6"
|
id="path3852-6"
|
||||||
d="M 991.71432,394.47084 H 1143.1429"
|
d="M 991.71432,394.47084 H 1143.1429"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="csccc"
|
sodipodi:nodetypes="csccc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3884-4"
|
id="path3884-4"
|
||||||
d="m 364.57145,547.32798 c 15.71429,18.57143 123.37372,81.52447 151.42857,88.57143 29.50156,7.41035 103.00398,7.14286 103.00398,7.14286 l -7.14285,-95.71429 z"
|
d="m 364.57145,547.32798 c 15.71429,18.57143 123.37372,81.52447 151.42857,88.57143 29.50156,7.41035 103.00398,7.14286 103.00398,7.14286 l -7.14285,-95.71429 z"
|
||||||
style="display:inline;fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3888-9"
|
id="path3888-9"
|
||||||
d="M 404.57145,577.32798 V 548.75655"
|
d="M 404.57145,577.32798 V 548.75655"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="ccccc"
|
sodipodi:nodetypes="ccccc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3892-5"
|
id="path3892-5"
|
||||||
d="M 644.69731,641.63467 640.41159,547.307 h 207.16383 c -11.3076,20.75266 -46.6124,74.9056 -72.8572,88.57143 -14.2857,10 -82.87805,4.32767 -130.02091,5.75624 z"
|
d="M 644.69731,641.63467 640.41159,547.307 h 207.16383 c -11.3076,20.75266 -46.6124,74.9056 -72.8572,88.57143 -14.2857,10 -82.87805,4.32767 -130.02091,5.75624 z"
|
||||||
style="display:inline;fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cscsc"
|
sodipodi:nodetypes="cscsc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3896-0"
|
id="path3896-0"
|
||||||
d="m 811.71432,634.47084 c 0,0 80,-84.28571 85.7143,-87.14286 5.7143,-2.85714 115.71428,-1.42857 115.71428,-1.42857 0,0 -77.14288,47.14286 -102.85718,58.57143 -25.7143,11.42857 -90,31.42857 -98.5714,30 z"
|
d="m 811.71432,634.47084 c 0,0 80,-84.28571 85.7143,-87.14286 5.7143,-2.85714 115.71428,-1.42857 115.71428,-1.42857 0,0 -77.14288,47.14286 -102.85718,58.57143 -25.7143,11.42857 -90,31.42857 -98.5714,30 z"
|
||||||
style="display:inline;fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:#f0ffeb;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="csc"
|
sodipodi:nodetypes="csc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3900-4"
|
id="path3900-4"
|
||||||
d="m 345.63546,556.81008 c -14.07595,-30.96709 -18.29873,-71.78734 -18.29873,-94.30886 0,-22.52152 4.22279,-91.49368 22.52152,-105.56958"
|
d="m 345.63546,556.81008 c -14.07595,-30.96709 -18.29873,-71.78734 -18.29873,-94.30886 0,-22.52152 4.22279,-91.49368 22.52152,-105.56958"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cccc"
|
sodipodi:nodetypes="cccc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3900-6-8"
|
id="path3900-6-8"
|
||||||
d="m 632.78482,655.34173 c -1.40759,-5.63038 -4.04683,-81.90444 -6.51012,-106.93324 -3.67029,-18.7146 -4.98821,-51.2184 -6.15823,-87.3149 0,-22.5215 7.03798,-80.2329 12.66836,-105.5696"
|
d="m 632.78482,655.34173 c -1.40759,-5.63038 -4.04683,-81.90444 -6.51012,-106.93324 -3.67029,-18.7146 -4.98821,-51.2184 -6.15823,-87.3149 0,-22.5215 7.03798,-80.2329 12.66836,-105.5696"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3920-7"
|
id="path3920-7"
|
||||||
d="m 103.52913,396.34426 c 0,0 15.48355,85.86329 106.97722,85.86329 91.49367,0 109.7924,-87.27089 109.7924,-87.27089"
|
d="m 103.52913,396.34426 c 0,0 15.48355,85.86329 106.97722,85.86329 91.49367,0 109.7924,-87.27089 109.7924,-87.27089"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3920-5-1"
|
id="path3920-5-1"
|
||||||
d="m 800.28863,394.93669 c 0,0 15.48355,85.8633 106.97722,85.8633 91.49364,0 109.79245,-87.2709 109.79245,-87.2709"
|
d="m 800.28863,394.93669 c 0,0 15.48355,85.8633 106.97722,85.8633 91.49364,0 109.79245,-87.2709 109.79245,-87.2709"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cc"
|
sodipodi:nodetypes="cc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3940-7"
|
id="path3940-7"
|
||||||
d="M 69.746857,451.24046 H 133.08862"
|
d="M 69.746857,451.24046 H 133.08862"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cssc"
|
sodipodi:nodetypes="cssc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3942-2"
|
id="path3942-2"
|
||||||
d="m 779.17472,648.30376 c 18.2988,-12.66836 56.3038,-50.67343 92.9012,-104.16203 36.5975,-53.48861 8.4456,-59.11899 -18.2987,-74.60254 -26.7443,-15.48354 -49.2658,-42.22784 -67.5645,-112.60755"
|
d="m 779.17472,648.30376 c 18.2988,-12.66836 56.3038,-50.67343 92.9012,-104.16203 36.5975,-53.48861 8.4456,-59.11899 -18.2987,-74.60254 -26.7443,-15.48354 -49.2658,-42.22784 -67.5645,-112.60755"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
sodipodi:nodetypes="cc"
|
sodipodi:nodetypes="cc"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3944-7"
|
id="path3944-7"
|
||||||
d="M 1112.7747,452.42529 H 983.27594"
|
d="M 1112.7747,452.42529 H 983.27594"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3946-2"
|
id="path3946-2"
|
||||||
d="M 286.51648,452.64806 H 831.25572"
|
d="M 286.51648,452.64806 H 831.25572"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<path
|
<path
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
id="path3948-2"
|
id="path3948-2"
|
||||||
d="m 808.73422,603.26071 v -54.8962"
|
d="m 808.73422,603.26071 v -54.8962"
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<rect
|
<rect
|
||||||
transform="scale(1,-1)"
|
transform="scale(1,-1)"
|
||||||
rx="2.9330556"
|
rx="2.9330556"
|
||||||
@@ -446,7 +445,7 @@
|
|||||||
height="14.541238"
|
height="14.541238"
|
||||||
width="41.285542"
|
width="41.285542"
|
||||||
id="rect3950-6"
|
id="rect3950-6"
|
||||||
style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<rect
|
<rect
|
||||||
transform="scale(1,-1)"
|
transform="scale(1,-1)"
|
||||||
rx="2.9330556"
|
rx="2.9330556"
|
||||||
@@ -456,7 +455,7 @@
|
|||||||
height="14.541238"
|
height="14.541238"
|
||||||
width="41.285542"
|
width="41.285542"
|
||||||
id="rect3950-4-1"
|
id="rect3950-4-1"
|
||||||
style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<rect
|
<rect
|
||||||
transform="scale(1,-1)"
|
transform="scale(1,-1)"
|
||||||
ry="7.691968"
|
ry="7.691968"
|
||||||
@@ -466,42 +465,42 @@
|
|||||||
height="11.738417"
|
height="11.738417"
|
||||||
width="18.776392"
|
width="18.776392"
|
||||||
id="rect4014-0"
|
id="rect4014-0"
|
||||||
style="display:inline;fill:#ffcb00;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
style="display:inline;fill:#ffcb00;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(941.34179,284.00501)"
|
transform="translate(941.34179,284.00501)"
|
||||||
id="path4335"
|
id="path4335"
|
||||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
cx="59.118988"
|
cx="59.118988"
|
||||||
cy="211.28101"
|
cy="211.28101"
|
||||||
r="16.89114" />
|
r="16.89114"/>
|
||||||
</g>
|
</g>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M -126.57469,704.93158 V 965.33664"
|
d="M -126.57469,704.93158 V 965.33664"
|
||||||
id="path4281-8-0"
|
id="path4281-8-0"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="fill:#ffffc0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#ffffc0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -153.87595,992.4894 v -26.0405 h 22.52152 22.52152 v 26.0405 26.0405 h -22.52152 -22.52152 z"
|
d="m -153.87595,992.4894 v -26.0405 h 22.52152 22.52152 v 26.0405 26.0405 h -22.52152 -22.52152 z"
|
||||||
id="path4361"
|
id="path4361"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="fill:#ffffc0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#ffffc0;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -153.87595,675.78054 v -27.4481 h 22.52152 22.52152 v 27.4481 27.4481 h -22.52152 -22.52152 z"
|
d="m -153.87595,675.78054 v -27.4481 h 22.52152 22.52152 v 27.4481 27.4481 h -22.52152 -22.52152 z"
|
||||||
id="path4363"
|
id="path4363"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -157.39494,624.37968 c 0,0 -4.22278,-12.66836 -18.29873,-12.66836 -14.07595,0 -14.07595,8.44557 -14.07595,8.44557 v 423.68601 c 0,0 1.40759,9.8532 14.07595,9.8532 12.66835,0 18.29873,-9.8532 18.29873,-9.8532"
|
d="m -157.39494,624.37968 c 0,0 -4.22278,-12.66836 -18.29873,-12.66836 -14.07595,0 -14.07595,8.44557 -14.07595,8.44557 v 423.68601 c 0,0 1.40759,9.8532 14.07595,9.8532 12.66835,0 18.29873,-9.8532 18.29873,-9.8532"
|
||||||
id="path4377"
|
id="path4377"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="csccsc" />
|
sodipodi:nodetypes="csccsc"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m -191.17722,624.37967 c 0,0 -35.18987,-1.40759 -35.18987,21.11393 0,22.52152 0,349.08354 0,371.605 0,22.5215 36.59747,25.3367 36.59747,25.3367"
|
d="m -191.17722,624.37967 c 0,0 -35.18987,-1.40759 -35.18987,21.11393 0,22.52152 0,349.08354 0,371.605 0,22.5215 36.59747,25.3367 36.59747,25.3367"
|
||||||
id="path4381"
|
id="path4381"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="cssc" />
|
sodipodi:nodetypes="cssc"/>
|
||||||
<rect
|
<rect
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="rect4467"
|
id="rect4467"
|
||||||
@@ -510,7 +509,7 @@
|
|||||||
x="-216.51393"
|
x="-216.51393"
|
||||||
y="648.30878"
|
y="648.30878"
|
||||||
rx="7.7417746"
|
rx="7.7417746"
|
||||||
ry="6.2843671" />
|
ry="6.2843671"/>
|
||||||
<rect
|
<rect
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="rect4467-6"
|
id="rect4467-6"
|
||||||
@@ -519,70 +518,70 @@
|
|||||||
x="-216.51393"
|
x="-216.51393"
|
||||||
y="985.57465"
|
y="985.57465"
|
||||||
rx="7.7417746"
|
rx="7.7417746"
|
||||||
ry="6.2843671" />
|
ry="6.2843671"/>
|
||||||
<rect
|
<rect
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="rect4487"
|
id="rect4487"
|
||||||
width="30.967089"
|
width="30.967089"
|
||||||
height="377.23544"
|
height="377.23544"
|
||||||
x="-62.939251"
|
x="-62.939251"
|
||||||
y="645.49365" />
|
y="645.49365"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1200.9342,633.85815 v 73.19494 h 67.5645 v -83.0481 l -25.3367,-14.07595 z"
|
d="m 1200.9342,633.85815 v 73.19494 h 67.5645 v -83.0481 l -25.3367,-14.07595 z"
|
||||||
id="path4499"
|
id="path4499"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="cccccc" />
|
sodipodi:nodetypes="cccccc"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1200.9342,963.23538 h 67.5645 v 78.82532 l -23.9291,14.0759 -43.6354,-18.2988 z"
|
d="m 1200.9342,963.23538 h 67.5645 v 78.82532 l -23.9291,14.0759 -43.6354,-18.2988 z"
|
||||||
id="path4501"
|
id="path4501"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="cccccc" />
|
sodipodi:nodetypes="cccccc"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 1200.9342,692.97714 V 977.31132"
|
d="M 1200.9342,692.97714 V 977.31132"
|
||||||
id="path4503"
|
id="path4503"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 1268.4987,693.56955 V 977.90373"
|
d="M 1268.4987,693.56955 V 977.90373"
|
||||||
id="path4505"
|
id="path4505"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<rect
|
<rect
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="rect4534"
|
id="rect4534"
|
||||||
width="14.075921"
|
width="14.075921"
|
||||||
height="147.79749"
|
height="147.79749"
|
||||||
x="1216.5645"
|
x="1216.5645"
|
||||||
y="759.50879" />
|
y="759.50879"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 1224.1949,758.1012 V 704.61259"
|
d="M 1224.1949,758.1012 V 704.61259"
|
||||||
id="path4536"
|
id="path4536"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 1224.1949,961.97968 V 908.49107"
|
d="M 1224.1949,961.97968 V 908.49107"
|
||||||
id="path4536-0"
|
id="path4536-0"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 1254.5696,707.42778 V 963.61006"
|
d="M 1254.5696,707.42778 V 963.61006"
|
||||||
id="path4556"
|
id="path4556"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1268.757,624.97209 c 0,0 4.2228,-12.66836 18.2987,-12.66836 14.076,0 14.076,8.44557 14.076,8.44557 v 423.686 c 0,0 -1.4076,9.8532 -14.076,9.8532 -12.6683,0 -18.2987,-9.8532 -18.2987,-9.8532"
|
d="m 1268.757,624.97209 c 0,0 4.2228,-12.66836 18.2987,-12.66836 14.076,0 14.076,8.44557 14.076,8.44557 v 423.686 c 0,0 -1.4076,9.8532 -14.076,9.8532 -12.6683,0 -18.2987,-9.8532 -18.2987,-9.8532"
|
||||||
id="path4377-2"
|
id="path4377-2"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="csccsc" />
|
sodipodi:nodetypes="csccsc"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1302.5393,624.97208 c 0,0 35.1898,-1.40759 35.1898,21.11393 0,22.52152 0,349.08354 0,371.60499 0,22.5215 -36.5974,25.3367 -36.5974,25.3367"
|
d="m 1302.5393,624.97208 c 0,0 35.1898,-1.40759 35.1898,21.11393 0,22.52152 0,349.08354 0,371.60499 0,22.5215 -36.5974,25.3367 -36.5974,25.3367"
|
||||||
id="path4381-0"
|
id="path4381-0"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="cssc" />
|
sodipodi:nodetypes="cssc"/>
|
||||||
<rect
|
<rect
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="rect4467-5"
|
id="rect4467-5"
|
||||||
@@ -592,7 +591,7 @@
|
|||||||
y="648.90118"
|
y="648.90118"
|
||||||
rx="7.7417746"
|
rx="7.7417746"
|
||||||
ry="6.2843671"
|
ry="6.2843671"
|
||||||
transform="scale(-1,1)" />
|
transform="scale(-1,1)"/>
|
||||||
<rect
|
<rect
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="rect4467-6-5"
|
id="rect4467-6-5"
|
||||||
@@ -602,102 +601,102 @@
|
|||||||
y="986.16711"
|
y="986.16711"
|
||||||
rx="7.7417746"
|
rx="7.7417746"
|
||||||
ry="6.2843671"
|
ry="6.2843671"
|
||||||
transform="scale(-1,1)" />
|
transform="scale(-1,1)"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1199.6734,632.82525 67.5645,74.60253"
|
d="m 1199.6734,632.82525 67.5645,74.60253"
|
||||||
id="path4585"
|
id="path4585"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1199.6734,708.02018 67.5645,-73.19493"
|
d="m 1199.6734,708.02018 67.5645,-73.19493"
|
||||||
id="path4587"
|
id="path4587"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1199.8962,962.97968 67.5645,74.60252"
|
d="m 1199.8962,962.97968 67.5645,74.60252"
|
||||||
id="path4585-9"
|
id="path4585-9"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<path
|
<path
|
||||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="display:inline;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1199.8962,1038.1746 67.5645,-73.19492"
|
d="m 1199.8962,1038.1746 67.5645,-73.19492"
|
||||||
id="path4587-0"
|
id="path4587-0"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path4610"
|
id="path4610"
|
||||||
transform="translate(78.488602,1074.6683)"
|
transform="translate(78.488602,1074.6683)"
|
||||||
cx="119.64557"
|
cx="119.64557"
|
||||||
cy="202.83545"
|
cy="202.83545"
|
||||||
r="76.010124" />
|
r="76.010124"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path4612"
|
id="path4612"
|
||||||
transform="translate(94.675942,1204.8708)"
|
transform="translate(94.675942,1204.8708)"
|
||||||
cx="103.45823"
|
cx="103.45823"
|
||||||
cy="72.632912"
|
cy="72.632912"
|
||||||
r="44.339241" />
|
r="44.339241"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path4610-9"
|
id="path4610-9"
|
||||||
transform="translate(78.488602,187.66068)"
|
transform="translate(78.488602,187.66068)"
|
||||||
cx="119.64557"
|
cx="119.64557"
|
||||||
cy="202.83545"
|
cy="202.83545"
|
||||||
r="76.010124" />
|
r="76.010124"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path4612-4"
|
id="path4612-4"
|
||||||
transform="translate(94.675942,317.86322)"
|
transform="translate(94.675942,317.86322)"
|
||||||
cx="103.45823"
|
cx="103.45823"
|
||||||
cy="72.632912"
|
cy="72.632912"
|
||||||
r="44.339241" />
|
r="44.339241"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path4610-5"
|
id="path4610-5"
|
||||||
transform="translate(773.02535,187.66068)"
|
transform="translate(773.02535,187.66068)"
|
||||||
cx="119.64557"
|
cx="119.64557"
|
||||||
cy="202.83545"
|
cy="202.83545"
|
||||||
r="76.010124" />
|
r="76.010124"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path4612-1"
|
id="path4612-1"
|
||||||
transform="translate(789.21269,317.86322)"
|
transform="translate(789.21269,317.86322)"
|
||||||
cx="103.45823"
|
cx="103.45823"
|
||||||
cy="72.632912"
|
cy="72.632912"
|
||||||
r="44.339241" />
|
r="44.339241"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path4610-4"
|
id="path4610-4"
|
||||||
transform="translate(773.02535,1074.6683)"
|
transform="translate(773.02535,1074.6683)"
|
||||||
cx="119.64557"
|
cx="119.64557"
|
||||||
cy="202.83545"
|
cy="202.83545"
|
||||||
r="76.010124" />
|
r="76.010124"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="path4612-3"
|
id="path4612-3"
|
||||||
transform="translate(789.21269,1204.8708)"
|
transform="translate(789.21269,1204.8708)"
|
||||||
cx="103.45823"
|
cx="103.45823"
|
||||||
cy="72.632912"
|
cy="72.632912"
|
||||||
r="44.339241" />
|
r="44.339241"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 1338.5088,829.07334 h 40.8203"
|
d="m 1338.5088,829.07334 h 40.8203"
|
||||||
id="path3083"
|
id="path3083"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
id="path3853"
|
id="path3853"
|
||||||
transform="translate(1441.2633,600.30879)"
|
transform="translate(1441.2633,600.30879)"
|
||||||
cx="-59.118988"
|
cx="-59.118988"
|
||||||
cy="229.57974"
|
cy="229.57974"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
<path
|
<path
|
||||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="m 778.06325,845.37208 -38.7088,-38.70886"
|
d="m 778.06325,845.37208 -38.7088,-38.70886"
|
||||||
id="path3855"
|
id="path3855"
|
||||||
inkscape:connector-curvature="0" />
|
inkscape:connector-curvature="0"/>
|
||||||
<g
|
<g
|
||||||
id="g3952"
|
id="g3952"
|
||||||
transform="translate(-13.779768,15.524026)">
|
transform="translate(-13.779768,15.524026)">
|
||||||
@@ -707,28 +706,28 @@
|
|||||||
style="fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
cx="-81.640511"
|
cx="-81.640511"
|
||||||
cy="188.75949"
|
cy="188.75949"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(-79.458203,569.9172)"
|
transform="translate(-79.458203,569.9172)"
|
||||||
id="path3857-2"
|
id="path3857-2"
|
||||||
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
cx="-81.640511"
|
cx="-81.640511"
|
||||||
cy="188.75949"
|
cy="188.75949"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(-79.458203,690.03203)"
|
transform="translate(-79.458203,690.03203)"
|
||||||
id="path3857-3"
|
id="path3857-3"
|
||||||
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
cx="-81.640511"
|
cx="-81.640511"
|
||||||
cy="188.75949"
|
cy="188.75949"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(-79.458203,810.14679)"
|
transform="translate(-79.458203,810.14679)"
|
||||||
id="path3857-7"
|
id="path3857-7"
|
||||||
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
cx="-81.640511"
|
cx="-81.640511"
|
||||||
cy="188.75949"
|
cy="188.75949"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
id="g3946"
|
id="g3946"
|
||||||
@@ -739,28 +738,28 @@
|
|||||||
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
cx="-81.640511"
|
cx="-81.640511"
|
||||||
cy="188.75949"
|
cy="188.75949"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(1381.6254,568.36277)"
|
transform="translate(1381.6254,568.36277)"
|
||||||
id="path3857-2-3"
|
id="path3857-2-3"
|
||||||
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
cx="-81.640511"
|
cx="-81.640511"
|
||||||
cy="188.75949"
|
cy="188.75949"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(1381.6254,688.4776)"
|
transform="translate(1381.6254,688.4776)"
|
||||||
id="path3857-3-6"
|
id="path3857-3-6"
|
||||||
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
cx="-81.640511"
|
cx="-81.640511"
|
||||||
cy="188.75949"
|
cy="188.75949"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(1381.6254,808.59236)"
|
transform="translate(1381.6254,808.59236)"
|
||||||
id="path3857-7-1"
|
id="path3857-7-1"
|
||||||
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
style="display:inline;fill:#3c3c3c;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
cx="-81.640511"
|
cx="-81.640511"
|
||||||
cy="188.75949"
|
cy="188.75949"
|
||||||
r="4.222785" />
|
r="4.222785"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
@@ -774,7 +773,7 @@
|
|||||||
cy="-388.63797"
|
cy="-388.63797"
|
||||||
r="66.15696"
|
r="66.15696"
|
||||||
transform="scale(1,-1)"
|
transform="scale(1,-1)"
|
||||||
inkscape:label="01" />
|
inkscape:label="01"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#a02c2c"
|
style="fill:#a02c2c"
|
||||||
id="02"
|
id="02"
|
||||||
@@ -782,6 +781,6 @@
|
|||||||
cy="-757.42786"
|
cy="-757.42786"
|
||||||
r="66.15696"
|
r="66.15696"
|
||||||
transform="scale(1,-1)"
|
transform="scale(1,-1)"
|
||||||
inkscape:label="01" />
|
inkscape:label="01"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 50 KiB |
@@ -3,10 +3,9 @@
|
|||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
viewBox="0 0 1668 1160"
|
viewBox="0 0 1668 1160"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg166"
|
id="svg166"
|
||||||
@@ -19,13 +18,13 @@
|
|||||||
rdf:about="">
|
rdf:about="">
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||||
<dc:title></dc:title>
|
<dc:title></dc:title>
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
<defs
|
<defs
|
||||||
id="defs170" />
|
id="defs170"/>
|
||||||
<sodipodi:namedview
|
<sodipodi:namedview
|
||||||
pagecolor="#ffffff"
|
pagecolor="#ffffff"
|
||||||
bordercolor="#666666"
|
bordercolor="#666666"
|
||||||
@@ -45,7 +44,7 @@
|
|||||||
inkscape:window-x="-8"
|
inkscape:window-x="-8"
|
||||||
inkscape:window-y="-8"
|
inkscape:window-y="-8"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
inkscape:current-layer="layer3" />
|
inkscape:current-layer="layer3"/>
|
||||||
<g
|
<g
|
||||||
transform="translate(254 -254)"
|
transform="translate(254 -254)"
|
||||||
id="g158">
|
id="g158">
|
||||||
@@ -57,47 +56,47 @@
|
|||||||
d="M494.571 1006.857C536 991.143 634.571 995.43 686 994c51.429-1.429 160.475 10.23 201.429 27.143 40.995 16.93 134.784 67.656 151.428 72.857 22.857 7.143 41.429 7.143 80 20 38.572 12.857 25.714 32.857 25.714 32.857l-30-4.286-5.756 52.92s37.185 1.366 41.47 15.652c4.286 14.286 5.715 31.428-2.856 41.428-8.572 10-14.286-1.428-18.572 12.858-4.286 14.285-2.857 28.571-27.143 27.142-24.285-1.428-98.571 0-98.571 0S987.429 1184 904.57 1186.857c-82.857 2.857-95.714 105.714-95.714 105.714h-500s-5.714-104.285-97.143-105.714c-91.428-1.428-98.571 105.714-98.571 105.714H47.429L28.857 1254c-.515 0-26.243 0-21.428-17.143 4.651-16.561-4.286-41.428 17.142-41.428 21.429 0 47.143 1.428 47.143 1.428l15.715-44.286L46 1149.714s34.286-24.285 118.571-32.857c84.286-8.571 157.143-8.571 192.858-31.428 35.714-22.858 137.142-78.572 137.142-78.572z"
|
d="M494.571 1006.857C536 991.143 634.571 995.43 686 994c51.429-1.429 160.475 10.23 201.429 27.143 40.995 16.93 134.784 67.656 151.428 72.857 22.857 7.143 41.429 7.143 80 20 38.572 12.857 25.714 32.857 25.714 32.857l-30-4.286-5.756 52.92s37.185 1.366 41.47 15.652c4.286 14.286 5.715 31.428-2.856 41.428-8.572 10-14.286-1.428-18.572 12.858-4.286 14.285-2.857 28.571-27.143 27.142-24.285-1.428-98.571 0-98.571 0S987.429 1184 904.57 1186.857c-82.857 2.857-95.714 105.714-95.714 105.714h-500s-5.714-104.285-97.143-105.714c-91.428-1.428-98.571 105.714-98.571 105.714H47.429L28.857 1254c-.515 0-26.243 0-21.428-17.143 4.651-16.561-4.286-41.428 17.142-41.428 21.429 0 47.143 1.428 47.143 1.428l15.715-44.286L46 1149.714s34.286-24.285 118.571-32.857c84.286-8.571 157.143-8.571 192.858-31.428 35.714-22.858 137.142-78.572 137.142-78.572z"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path10" />
|
id="path10"/>
|
||||||
<path
|
<path
|
||||||
d="M28.857 1254h92.857M301.714 1254h517.143M991.714 1254h151.429"
|
d="M28.857 1254h92.857M301.714 1254h517.143M991.714 1254h151.429"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path12" />
|
id="path12"/>
|
||||||
<path
|
<path
|
||||||
d="M364.571 1101.143c15.715-18.572 123.374-81.525 151.429-88.572 29.502-7.41 103.004-7.142 103.004-7.142l-7.143 95.714z"
|
d="M364.571 1101.143c15.715-18.572 123.374-81.525 151.429-88.572 29.502-7.41 103.004-7.142 103.004-7.142l-7.143 95.714z"
|
||||||
fill="#f0ffeb"
|
fill="#f0ffeb"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path14" />
|
id="path14"/>
|
||||||
<path
|
<path
|
||||||
d="M404.571 1071.143v28.571"
|
d="M404.571 1071.143v28.571"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path16" />
|
id="path16"/>
|
||||||
<path
|
<path
|
||||||
d="M644.697 1006.836l-4.285 94.328h207.163c-11.307-20.753-46.612-74.906-72.857-88.572-14.285-10-82.878-4.327-130.02-5.756zM811.714 1014s80 84.286 85.715 87.143c5.714 2.857 115.714 1.428 115.714 1.428S936 1055.43 910.286 1044c-25.715-11.429-90-31.429-98.572-30z"
|
d="M644.697 1006.836l-4.285 94.328h207.163c-11.307-20.753-46.612-74.906-72.857-88.572-14.285-10-82.878-4.327-130.02-5.756zM811.714 1014s80 84.286 85.715 87.143c5.714 2.857 115.714 1.428 115.714 1.428S936 1055.43 910.286 1044c-25.715-11.429-90-31.429-98.572-30z"
|
||||||
fill="#f0ffeb"
|
fill="#f0ffeb"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path18" />
|
id="path18"/>
|
||||||
<path
|
<path
|
||||||
d="M345.635 1091.66c-14.075 30.968-18.298 71.788-18.298 94.31 0 22.521 4.223 91.493 22.521 105.57M632.785 993.13c-1.408 5.63-4.047 81.903-6.51 106.932-3.67 18.715-4.989 51.219-6.159 87.315 0 22.522 7.038 80.233 12.669 105.57"
|
d="M345.635 1091.66c-14.075 30.968-18.298 71.788-18.298 94.31 0 22.521 4.223 91.493 22.521 105.57M632.785 993.13c-1.408 5.63-4.047 81.903-6.51 106.932-3.67 18.715-4.989 51.219-6.159 87.315 0 22.522 7.038 80.233 12.669 105.57"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path20" />
|
id="path20"/>
|
||||||
<path
|
<path
|
||||||
d="M103.53 1252.127s15.483-85.864 106.976-85.864c91.494 0 109.793 87.271 109.793 87.271M800.289 1253.534s15.483-85.863 106.977-85.863c91.493 0 109.792 87.27 109.792 87.27M69.747 1197.23h63.342"
|
d="M103.53 1252.127s15.483-85.864 106.976-85.864c91.494 0 109.793 87.271 109.793 87.271M800.289 1253.534s15.483-85.863 106.977-85.863c91.493 0 109.792 87.27 109.792 87.27M69.747 1197.23h63.342"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path22" />
|
id="path22"/>
|
||||||
<path
|
<path
|
||||||
d="M779.175 1000.167c18.299 12.668 56.304 50.673 92.9 104.162 36.598 53.489 8.447 59.12-18.298 74.603-26.744 15.483-49.266 42.227-67.564 112.607"
|
d="M779.175 1000.167c18.299 12.668 56.304 50.673 92.9 104.162 36.598 53.489 8.447 59.12-18.298 74.603-26.744 15.483-49.266 42.227-67.564 112.607"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path24" />
|
id="path24"/>
|
||||||
<path
|
<path
|
||||||
d="M1112.775 1196.045h-129.5M286.516 1195.823h544.74M808.734 1045.21v54.896"
|
d="M1112.775 1196.045h-129.5M286.516 1195.823h544.74M808.734 1045.21v54.896"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path26" />
|
id="path26"/>
|
||||||
<rect
|
<rect
|
||||||
rx="2.933"
|
rx="2.933"
|
||||||
ry="7.379"
|
ry="7.379"
|
||||||
@@ -107,7 +106,7 @@
|
|||||||
width="41.286"
|
width="41.286"
|
||||||
fill="#e6e6e6"
|
fill="#e6e6e6"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect28" />
|
id="rect28"/>
|
||||||
<rect
|
<rect
|
||||||
rx="2.933"
|
rx="2.933"
|
||||||
ry="7.379"
|
ry="7.379"
|
||||||
@@ -117,7 +116,7 @@
|
|||||||
width="41.286"
|
width="41.286"
|
||||||
fill="#e6e6e6"
|
fill="#e6e6e6"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect30" />
|
id="rect30"/>
|
||||||
<rect
|
<rect
|
||||||
ry="7.692"
|
ry="7.692"
|
||||||
rx="1.63"
|
rx="1.63"
|
||||||
@@ -127,7 +126,7 @@
|
|||||||
width="18.776"
|
width="18.776"
|
||||||
fill="#ffcb00"
|
fill="#ffcb00"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect32" />
|
id="rect32"/>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
transform="translate(-13.78 15.524)"
|
transform="translate(-13.78 15.524)"
|
||||||
@@ -137,22 +136,22 @@
|
|||||||
d="M62.767 812.587l-11.712 16.12-18.95-6.157v-19.925l18.95-6.158z"
|
d="M62.767 812.587l-11.712 16.12-18.95-6.157v-19.925l18.95-6.158z"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path36" />
|
id="path36"/>
|
||||||
<path
|
<path
|
||||||
d="M31.742 745.023l315.301-111.2M30.334 888.597l315.301 115.423"
|
d="M31.742 745.023l315.301-111.2M30.334 888.597l315.301 115.423"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path38" />
|
id="path38"/>
|
||||||
<path
|
<path
|
||||||
d="M341.413 632.785l140.76 38.005s-8.446 49.222-8.446 71.963v147.622c0 30.967 8.445 78.825 8.445 78.825l-140.76 33.782s-17.242-61.902-17.242-92.901l2.111-185.803c-1.408-30.967 15.132-91.493 15.132-91.493z"
|
d="M341.413 632.785l140.76 38.005s-8.446 49.222-8.446 71.963v147.622c0 30.967 8.445 78.825 8.445 78.825l-140.76 33.782s-17.242-61.902-17.242-92.901l2.111-185.803c-1.408-30.967 15.132-91.493 15.132-91.493z"
|
||||||
fill="#f0ffeb"
|
fill="#f0ffeb"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path40" />
|
id="path40"/>
|
||||||
<path
|
<path
|
||||||
d="M482.172 670.79s94.309 5.63 152.02 5.63c106.978 0 201.287-5.63 201.287-5.63m-1.408 297.002s-77.418-5.63-199.879-5.63c-68.972 0-152.02 7.038-152.02 7.038"
|
d="M482.172 670.79s94.309 5.63 152.02 5.63c106.978 0 201.287-5.63 201.287-5.63m-1.408 297.002s-77.418-5.63-199.879-5.63c-68.972 0-152.02 7.038-152.02 7.038"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path42" />
|
id="path42"/>
|
||||||
<rect
|
<rect
|
||||||
ry="34.436"
|
ry="34.436"
|
||||||
rx="31.19"
|
rx="31.19"
|
||||||
@@ -162,46 +161,46 @@
|
|||||||
width="106.977"
|
width="106.977"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect44" />
|
id="rect44"/>
|
||||||
<path
|
<path
|
||||||
d="M345.777 632.785H51.59L37.514 735.539l-7.038 11.26v142.168l7.038 14.076 15.483 101.347h288.557M832.663 670.79s-12.668 47.858-12.668 73.195v146.39c0 25.336 12.668 77.417 12.668 77.417l205.51 38.005h108.384s14.076-81.64 14.076-115.422V742.577c0-38.005-14.076-109.792-14.076-109.792h-108.385z"
|
d="M345.777 632.785H51.59L37.514 735.539l-7.038 11.26v142.168l7.038 14.076 15.483 101.347h288.557M832.663 670.79s-12.668 47.858-12.668 73.195v146.39c0 25.336 12.668 77.417 12.668 77.417l205.51 38.005h108.384s14.076-81.64 14.076-115.422V742.577c0-38.005-14.076-109.792-14.076-109.792h-108.385z"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path46" />
|
id="path46"/>
|
||||||
<path
|
<path
|
||||||
d="M843.924 689.089s-8.445 40.82-8.445 56.303v144.983c0 19.706 7.038 57.711 7.038 57.711s94.308 26.744 123.868 26.744h42.228V662.344h-47.859c-25.336 0-116.83 26.745-116.83 26.745z"
|
d="M843.924 689.089s-8.445 40.82-8.445 56.303v144.983c0 19.706 7.038 57.711 7.038 57.711s94.308 26.744 123.868 26.744h42.228V662.344h-47.859c-25.336 0-116.83 26.745-116.83 26.745z"
|
||||||
fill="#f0ffeb"
|
fill="#f0ffeb"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path48" />
|
id="path48"/>
|
||||||
<path
|
<path
|
||||||
d="M1038.172 632.785s30.967 40.82 30.967 111.2v146.39c0 64.749-30.967 116.83-30.967 116.83M324.522 743.985l32.374-32.375v-40.82 112.607M323.818 865.038l32.374-32.375v-40.82 112.608M1005.094 787.62l-32.375-32.374v-40.82 112.607"
|
d="M1038.172 632.785s30.967 40.82 30.967 111.2v146.39c0 64.749-30.967 116.83-30.967 116.83M324.522 743.985l32.374-32.375v-40.82 112.607M323.818 865.038l32.374-32.375v-40.82 112.608M1005.094 787.62l-32.375-32.374v-40.82 112.607"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path50" />
|
id="path50"/>
|
||||||
<path
|
<path
|
||||||
d="M341.413 632.785s-42.228 78.825-42.228 111.2v146.39c0 40.82 42.228 114.015 42.228 114.015"
|
d="M341.413 632.785s-42.228 78.825-42.228 111.2v146.39c0 40.82 42.228 114.015 42.228 114.015"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path52" />
|
id="path52"/>
|
||||||
</g>
|
</g>
|
||||||
<path
|
<path
|
||||||
d="M-106.792 740.916l1.407-91.493s5.63-23.93-25.337-25.337c-30.967-1.408-26.744 2.815-26.744 2.815l1.408 415.24h28.152c28.152 0 22.521-22.52 22.521-22.52v-95.717c-12.677 0-11.26-9.614-11.26-16.891V757.808c.45-18.89 9.853-16.892 9.853-16.892z"
|
d="M-106.792 740.916l1.407-91.493s5.63-23.93-25.337-25.337c-30.967-1.408-26.744 2.815-26.744 2.815l1.408 415.24h28.152c28.152 0 22.521-22.52 22.521-22.52v-95.717c-12.677 0-11.26-9.614-11.26-16.891V757.808c.45-18.89 9.853-16.892 9.853-16.892z"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path56" />
|
id="path56"/>
|
||||||
<path
|
<path
|
||||||
d="M-155.987 646.162h49.265M-155.137 1020.43h49.266M-156.691 705.058h49.266M-153.876 964.87h49.266"
|
d="M-155.987 646.162h49.265M-155.137 1020.43h49.266M-156.691 705.058h49.266M-153.876 964.87h49.266"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2.2"
|
stroke-width="2.2"
|
||||||
id="path58" />
|
id="path58"/>
|
||||||
<path
|
<path
|
||||||
d="M-147.096 703.823v260.405M-137.243 705.387v260.405"
|
d="M-147.096 703.823v260.405M-137.243 705.387v260.405"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path60" />
|
id="path60"/>
|
||||||
<g
|
<g
|
||||||
transform="translate(-13.78 15.524)"
|
transform="translate(-13.78 15.524)"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
@@ -210,47 +209,47 @@
|
|||||||
d="M494.571 641.614C536 657.328 634.571 653.042 686 654.47c51.429 1.428 160.475-10.23 201.429-27.143 40.995-16.93 134.784-67.656 151.428-72.857 22.857-7.143 41.429-7.143 80-20 38.572-12.857 25.714-32.857 25.714-32.857l-30 4.285-5.756-52.92s37.185-1.365 41.47-15.651c4.286-14.286 5.715-31.429-2.856-41.429-8.572-10-14.286 1.429-18.572-12.857-4.286-14.285-2.857-28.571-27.143-27.143-24.285 1.429-98.571 0-98.571 0s-15.714 108.572-98.572 105.715c-82.857-2.857-95.714-105.715-95.714-105.715h-500s-5.714 104.286-97.143 105.715c-91.428 1.428-98.571-105.715-98.571-105.715H47.429l-18.572 38.572c-.515 0-26.243 0-21.428 17.143 4.651 16.561-4.286 41.428 17.142 41.428 21.429 0 47.143-1.428 47.143-1.428l15.715 44.285L46 498.757s34.286 24.285 118.571 32.857c84.286 8.571 157.143 8.571 192.858 31.428 35.714 22.857 137.142 78.572 137.142 78.572z"
|
d="M494.571 641.614C536 657.328 634.571 653.042 686 654.47c51.429 1.428 160.475-10.23 201.429-27.143 40.995-16.93 134.784-67.656 151.428-72.857 22.857-7.143 41.429-7.143 80-20 38.572-12.857 25.714-32.857 25.714-32.857l-30 4.285-5.756-52.92s37.185-1.365 41.47-15.651c4.286-14.286 5.715-31.429-2.856-41.429-8.572-10-14.286 1.429-18.572-12.857-4.286-14.285-2.857-28.571-27.143-27.143-24.285 1.429-98.571 0-98.571 0s-15.714 108.572-98.572 105.715c-82.857-2.857-95.714-105.715-95.714-105.715h-500s-5.714 104.286-97.143 105.715c-91.428 1.428-98.571-105.715-98.571-105.715H47.429l-18.572 38.572c-.515 0-26.243 0-21.428 17.143 4.651 16.561-4.286 41.428 17.142 41.428 21.429 0 47.143-1.428 47.143-1.428l15.715 44.285L46 498.757s34.286 24.285 118.571 32.857c84.286 8.571 157.143 8.571 192.858 31.428 35.714 22.857 137.142 78.572 137.142 78.572z"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path62" />
|
id="path62"/>
|
||||||
<path
|
<path
|
||||||
d="M28.857 394.47h92.857M301.714 394.47h517.143M991.714 394.47h151.429"
|
d="M28.857 394.47h92.857M301.714 394.47h517.143M991.714 394.47h151.429"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path64" />
|
id="path64"/>
|
||||||
<path
|
<path
|
||||||
d="M364.571 547.328c15.715 18.571 123.374 81.524 151.429 88.571 29.502 7.41 103.004 7.143 103.004 7.143l-7.143-95.714z"
|
d="M364.571 547.328c15.715 18.571 123.374 81.524 151.429 88.571 29.502 7.41 103.004 7.143 103.004 7.143l-7.143-95.714z"
|
||||||
fill="#f0ffeb"
|
fill="#f0ffeb"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path66" />
|
id="path66"/>
|
||||||
<path
|
<path
|
||||||
d="M404.571 577.328v-28.571"
|
d="M404.571 577.328v-28.571"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path68" />
|
id="path68"/>
|
||||||
<path
|
<path
|
||||||
d="M644.697 641.635l-4.285-94.328h207.163c-11.307 20.753-46.612 74.906-72.857 88.571-14.285 10-82.878 4.328-130.02 5.757zM811.714 634.47s80-84.285 85.715-87.142c5.714-2.857 115.714-1.429 115.714-1.429S936 593.042 910.286 604.471c-25.715 11.428-90 31.428-98.572 30z"
|
d="M644.697 641.635l-4.285-94.328h207.163c-11.307 20.753-46.612 74.906-72.857 88.571-14.285 10-82.878 4.328-130.02 5.757zM811.714 634.47s80-84.285 85.715-87.142c5.714-2.857 115.714-1.429 115.714-1.429S936 593.042 910.286 604.471c-25.715 11.428-90 31.428-98.572 30z"
|
||||||
fill="#f0ffeb"
|
fill="#f0ffeb"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path70" />
|
id="path70"/>
|
||||||
<path
|
<path
|
||||||
d="M345.635 556.81c-14.075-30.967-18.298-71.787-18.298-94.309 0-22.521 4.223-91.493 22.521-105.57M632.785 655.342c-1.408-5.63-4.047-81.905-6.51-106.934-3.67-18.714-4.989-51.218-6.159-87.314 0-22.522 7.038-80.233 12.669-105.57"
|
d="M345.635 556.81c-14.075-30.967-18.298-71.787-18.298-94.309 0-22.521 4.223-91.493 22.521-105.57M632.785 655.342c-1.408-5.63-4.047-81.905-6.51-106.934-3.67-18.714-4.989-51.218-6.159-87.314 0-22.522 7.038-80.233 12.669-105.57"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path72" />
|
id="path72"/>
|
||||||
<path
|
<path
|
||||||
d="M103.53 396.344s15.483 85.864 106.976 85.864c91.494 0 109.793-87.271 109.793-87.271M800.289 394.937S815.772 480.8 907.266 480.8c91.493 0 109.792-87.27 109.792-87.27M69.747 451.24h63.342"
|
d="M103.53 396.344s15.483 85.864 106.976 85.864c91.494 0 109.793-87.271 109.793-87.271M800.289 394.937S815.772 480.8 907.266 480.8c91.493 0 109.792-87.27 109.792-87.27M69.747 451.24h63.342"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path74" />
|
id="path74"/>
|
||||||
<path
|
<path
|
||||||
d="M779.175 648.304c18.299-12.669 56.304-50.674 92.9-104.162 36.598-53.489 8.447-59.12-18.298-74.603-26.744-15.483-49.266-42.228-67.564-112.607"
|
d="M779.175 648.304c18.299-12.669 56.304-50.674 92.9-104.162 36.598-53.489 8.447-59.12-18.298-74.603-26.744-15.483-49.266-42.228-67.564-112.607"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path76" />
|
id="path76"/>
|
||||||
<path
|
<path
|
||||||
d="M1112.775 452.425h-129.5M286.516 452.648h544.74M808.734 603.26v-54.895"
|
d="M1112.775 452.425h-129.5M286.516 452.648h544.74M808.734 603.26v-54.895"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path78" />
|
id="path78"/>
|
||||||
<rect
|
<rect
|
||||||
transform="scale(1 -1)"
|
transform="scale(1 -1)"
|
||||||
rx="2.933"
|
rx="2.933"
|
||||||
@@ -261,7 +260,7 @@
|
|||||||
width="41.286"
|
width="41.286"
|
||||||
fill="#e6e6e6"
|
fill="#e6e6e6"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect80" />
|
id="rect80"/>
|
||||||
<rect
|
<rect
|
||||||
transform="scale(1 -1)"
|
transform="scale(1 -1)"
|
||||||
rx="2.933"
|
rx="2.933"
|
||||||
@@ -272,7 +271,7 @@
|
|||||||
width="41.286"
|
width="41.286"
|
||||||
fill="#e6e6e6"
|
fill="#e6e6e6"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect82" />
|
id="rect82"/>
|
||||||
<rect
|
<rect
|
||||||
transform="scale(1 -1)"
|
transform="scale(1 -1)"
|
||||||
ry="7.692"
|
ry="7.692"
|
||||||
@@ -283,7 +282,7 @@
|
|||||||
width="18.776"
|
width="18.776"
|
||||||
fill="#ffcb00"
|
fill="#ffcb00"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect84" />
|
id="rect84"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(941.342 284.005)"
|
transform="translate(941.342 284.005)"
|
||||||
cx="59.119"
|
cx="59.119"
|
||||||
@@ -291,30 +290,30 @@
|
|||||||
r="16.891"
|
r="16.891"
|
||||||
fill="#fff"
|
fill="#fff"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle86" />
|
id="circle86"/>
|
||||||
</g>
|
</g>
|
||||||
<path
|
<path
|
||||||
d="M-126.575 704.932v260.405"
|
d="M-126.575 704.932v260.405"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path90" />
|
id="path90"/>
|
||||||
<path
|
<path
|
||||||
d="M-153.876 992.49v-26.041h45.043v52.08h-45.043zM-153.876 675.78v-27.448h45.043V703.23h-45.043z"
|
d="M-153.876 992.49v-26.041h45.043v52.08h-45.043zM-153.876 675.78v-27.448h45.043V703.23h-45.043z"
|
||||||
fill="#ffffc0"
|
fill="#ffffc0"
|
||||||
id="path92" />
|
id="path92"/>
|
||||||
<path
|
<path
|
||||||
d="M-157.395 624.38s-4.223-12.669-18.299-12.669-14.076 8.446-14.076 8.446v423.686s1.408 9.853 14.076 9.853c12.669 0 18.3-9.853 18.3-9.853"
|
d="M-157.395 624.38s-4.223-12.669-18.299-12.669-14.076 8.446-14.076 8.446v423.686s1.408 9.853 14.076 9.853c12.669 0 18.3-9.853 18.3-9.853"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path94" />
|
id="path94"/>
|
||||||
<path
|
<path
|
||||||
d="M-191.177 624.38s-35.19-1.408-35.19 21.114v371.605c0 22.521 36.597 25.336 36.597 25.336"
|
d="M-191.177 624.38s-35.19-1.408-35.19 21.114v371.605c0 22.521 36.597 25.336 36.597 25.336"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path96" />
|
id="path96"/>
|
||||||
<rect
|
<rect
|
||||||
width="16.891"
|
width="16.891"
|
||||||
height="35.19"
|
height="35.19"
|
||||||
@@ -325,7 +324,7 @@
|
|||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect98" />
|
id="rect98"/>
|
||||||
<rect
|
<rect
|
||||||
width="16.891"
|
width="16.891"
|
||||||
height="35.19"
|
height="35.19"
|
||||||
@@ -336,31 +335,31 @@
|
|||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect100" />
|
id="rect100"/>
|
||||||
<path
|
<path
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
d="M-62.939 645.494h30.967v377.235h-30.967z"
|
d="M-62.939 645.494h30.967v377.235h-30.967z"
|
||||||
id="path102" />
|
id="path102"/>
|
||||||
<path
|
<path
|
||||||
d="M1200.934 633.858v73.195h67.565v-83.048l-25.337-14.076zM1200.934 963.235h67.565v78.826l-23.93 14.076-43.635-18.3zM1200.934 692.977v284.334M1268.499 693.57v284.334"
|
d="M1200.934 633.858v73.195h67.565v-83.048l-25.337-14.076zM1200.934 963.235h67.565v78.826l-23.93 14.076-43.635-18.3zM1200.934 692.977v284.334M1268.499 693.57v284.334"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path104" />
|
id="path104"/>
|
||||||
<path
|
<path
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
d="M1216.564 759.509h14.076v147.797h-14.076zM1224.195 758.101v-53.488M1224.195 961.98V908.49M1254.57 707.428V963.61"
|
d="M1216.564 759.509h14.076v147.797h-14.076zM1224.195 758.101v-53.488M1224.195 961.98V908.49M1254.57 707.428V963.61"
|
||||||
id="path106" />
|
id="path106"/>
|
||||||
<path
|
<path
|
||||||
d="M1268.757 624.972s4.223-12.668 18.299-12.668 14.076 8.445 14.076 8.445v423.686s-1.408 9.853-14.076 9.853c-12.669 0-18.299-9.853-18.299-9.853M1302.54 624.972s35.19-1.408 35.19 21.114v371.605c0 22.521-36.598 25.337-36.598 25.337"
|
d="M1268.757 624.972s4.223-12.668 18.299-12.668 14.076 8.445 14.076 8.445v423.686s-1.408 9.853-14.076 9.853c-12.669 0-18.299-9.853-18.299-9.853M1302.54 624.972s35.19-1.408 35.19 21.114v371.605c0 22.521-36.598 25.337-36.598 25.337"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path108" />
|
id="path108"/>
|
||||||
<rect
|
<rect
|
||||||
width="16.891"
|
width="16.891"
|
||||||
height="35.19"
|
height="35.19"
|
||||||
@@ -372,7 +371,7 @@
|
|||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect110" />
|
id="rect110"/>
|
||||||
<rect
|
<rect
|
||||||
width="16.891"
|
width="16.891"
|
||||||
height="35.19"
|
height="35.19"
|
||||||
@@ -384,13 +383,13 @@
|
|||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="rect112" />
|
id="rect112"/>
|
||||||
<path
|
<path
|
||||||
d="M1199.673 632.825l67.565 74.603M1199.673 708.02l67.565-73.195M1199.896 962.98l67.565 74.602M1199.896 1038.175l67.565-73.195"
|
d="M1199.673 632.825l67.565 74.603M1199.673 708.02l67.565-73.195M1199.896 962.98l67.565 74.602M1199.896 1038.175l67.565-73.195"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path114" />
|
id="path114"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(78.489 1074.668)"
|
transform="translate(78.489 1074.668)"
|
||||||
cx="119.646"
|
cx="119.646"
|
||||||
@@ -399,7 +398,7 @@
|
|||||||
fill="#c8c8c8"
|
fill="#c8c8c8"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle116" />
|
id="circle116"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(94.676 1204.87)"
|
transform="translate(94.676 1204.87)"
|
||||||
cx="103.458"
|
cx="103.458"
|
||||||
@@ -408,7 +407,7 @@
|
|||||||
fill="#fff"
|
fill="#fff"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle118" />
|
id="circle118"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(78.489 187.66)"
|
transform="translate(78.489 187.66)"
|
||||||
cx="119.646"
|
cx="119.646"
|
||||||
@@ -417,7 +416,7 @@
|
|||||||
fill="#c8c8c8"
|
fill="#c8c8c8"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle120" />
|
id="circle120"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(94.676 317.863)"
|
transform="translate(94.676 317.863)"
|
||||||
cx="103.458"
|
cx="103.458"
|
||||||
@@ -426,7 +425,7 @@
|
|||||||
fill="#fff"
|
fill="#fff"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle122" />
|
id="circle122"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(773.025 187.66)"
|
transform="translate(773.025 187.66)"
|
||||||
cx="119.646"
|
cx="119.646"
|
||||||
@@ -435,7 +434,7 @@
|
|||||||
fill="#c8c8c8"
|
fill="#c8c8c8"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle124" />
|
id="circle124"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(789.213 317.863)"
|
transform="translate(789.213 317.863)"
|
||||||
cx="103.458"
|
cx="103.458"
|
||||||
@@ -444,7 +443,7 @@
|
|||||||
fill="#fff"
|
fill="#fff"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle126" />
|
id="circle126"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(773.025 1074.668)"
|
transform="translate(773.025 1074.668)"
|
||||||
cx="119.646"
|
cx="119.646"
|
||||||
@@ -453,7 +452,7 @@
|
|||||||
fill="#c8c8c8"
|
fill="#c8c8c8"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle128" />
|
id="circle128"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(789.213 1204.87)"
|
transform="translate(789.213 1204.87)"
|
||||||
cx="103.458"
|
cx="103.458"
|
||||||
@@ -462,13 +461,13 @@
|
|||||||
fill="#fff"
|
fill="#fff"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="circle130" />
|
id="circle130"/>
|
||||||
<path
|
<path
|
||||||
d="M1338.509 829.073h40.82"
|
d="M1338.509 829.073h40.82"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="path132" />
|
id="path132"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(1441.263 600.309)"
|
transform="translate(1441.263 600.309)"
|
||||||
cx="-59.119"
|
cx="-59.119"
|
||||||
@@ -477,13 +476,13 @@
|
|||||||
fill="#3c3c3c"
|
fill="#3c3c3c"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="5"
|
stroke-width="5"
|
||||||
id="circle134" />
|
id="circle134"/>
|
||||||
<path
|
<path
|
||||||
d="M778.063 845.372l-38.709-38.709"
|
d="M778.063 845.372l-38.709-38.709"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#000"
|
stroke="#000"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
id="path136" />
|
id="path136"/>
|
||||||
<g
|
<g
|
||||||
transform="translate(-13.78 15.524)"
|
transform="translate(-13.78 15.524)"
|
||||||
fill="#3c3c3c"
|
fill="#3c3c3c"
|
||||||
@@ -495,25 +494,25 @@
|
|||||||
cx="-81.641"
|
cx="-81.641"
|
||||||
cy="188.759"
|
cy="188.759"
|
||||||
r="4.223"
|
r="4.223"
|
||||||
id="circle138" />
|
id="circle138"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(-79.458 569.917)"
|
transform="translate(-79.458 569.917)"
|
||||||
cx="-81.641"
|
cx="-81.641"
|
||||||
cy="188.759"
|
cy="188.759"
|
||||||
r="4.223"
|
r="4.223"
|
||||||
id="circle140" />
|
id="circle140"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(-79.458 690.032)"
|
transform="translate(-79.458 690.032)"
|
||||||
cx="-81.641"
|
cx="-81.641"
|
||||||
cy="188.759"
|
cy="188.759"
|
||||||
r="4.223"
|
r="4.223"
|
||||||
id="circle142" />
|
id="circle142"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(-79.458 810.147)"
|
transform="translate(-79.458 810.147)"
|
||||||
cx="-81.641"
|
cx="-81.641"
|
||||||
cy="188.759"
|
cy="188.759"
|
||||||
r="4.223"
|
r="4.223"
|
||||||
id="circle144" />
|
id="circle144"/>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
transform="translate(-13.78 17.524)"
|
transform="translate(-13.78 17.524)"
|
||||||
@@ -526,25 +525,25 @@
|
|||||||
cx="-81.641"
|
cx="-81.641"
|
||||||
cy="188.759"
|
cy="188.759"
|
||||||
r="4.223"
|
r="4.223"
|
||||||
id="circle148" />
|
id="circle148"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(1381.625 568.363)"
|
transform="translate(1381.625 568.363)"
|
||||||
cx="-81.641"
|
cx="-81.641"
|
||||||
cy="188.759"
|
cy="188.759"
|
||||||
r="4.223"
|
r="4.223"
|
||||||
id="circle150" />
|
id="circle150"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(1381.625 688.478)"
|
transform="translate(1381.625 688.478)"
|
||||||
cx="-81.641"
|
cx="-81.641"
|
||||||
cy="188.759"
|
cy="188.759"
|
||||||
r="4.223"
|
r="4.223"
|
||||||
id="circle152" />
|
id="circle152"/>
|
||||||
<circle
|
<circle
|
||||||
transform="translate(1381.625 808.592)"
|
transform="translate(1381.625 808.592)"
|
||||||
cx="-81.641"
|
cx="-81.641"
|
||||||
cy="188.759"
|
cy="188.759"
|
||||||
r="4.223"
|
r="4.223"
|
||||||
id="circle154" />
|
id="circle154"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
@@ -558,49 +557,49 @@
|
|||||||
cx="503.64618"
|
cx="503.64618"
|
||||||
cy="248.75478"
|
cy="248.75478"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p02" />
|
inkscape:label="p02"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p03"
|
id="p03"
|
||||||
cx="863.41034"
|
cx="863.41034"
|
||||||
cy="248.75478"
|
cy="248.75478"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p03" />
|
inkscape:label="p03"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p04"
|
id="p04"
|
||||||
cx="1181.4528"
|
cx="1181.4528"
|
||||||
cy="248.75478"
|
cy="248.75478"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p04" />
|
inkscape:label="p04"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p05"
|
id="p05"
|
||||||
cx="1378.4338"
|
cx="1378.4338"
|
||||||
cy="151.15569"
|
cy="151.15569"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p05" />
|
inkscape:label="p05"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p06"
|
id="p06"
|
||||||
cx="1535.0613"
|
cx="1535.0613"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p06" />
|
inkscape:label="p06"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p07"
|
id="p07"
|
||||||
cx="1378.4338"
|
cx="1378.4338"
|
||||||
cy="997.90094"
|
cy="997.90094"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p07" />
|
inkscape:label="p07"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p08"
|
id="p08"
|
||||||
cx="1181.4528"
|
cx="1181.4528"
|
||||||
cy="914.24066"
|
cy="914.24066"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p08" />
|
inkscape:label="p08"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p09"
|
id="p09"
|
||||||
@@ -608,56 +607,56 @@
|
|||||||
cy="-914.24066"
|
cy="-914.24066"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
transform="scale(1,-1)"
|
transform="scale(1,-1)"
|
||||||
inkscape:label="p09" />
|
inkscape:label="p09"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p10"
|
id="p10"
|
||||||
cx="503.64618"
|
cx="503.64618"
|
||||||
cy="914.24066"
|
cy="914.24066"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p10" />
|
inkscape:label="p10"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p11"
|
id="p11"
|
||||||
cx="297.77356"
|
cx="297.77356"
|
||||||
cy="997.90094"
|
cy="997.90094"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p11" />
|
inkscape:label="p11"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p12"
|
id="p12"
|
||||||
cx="93.268852"
|
cx="93.268852"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p12" />
|
inkscape:label="p12"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p25"
|
id="p25"
|
||||||
cx="424.30658"
|
cx="424.30658"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p25" />
|
inkscape:label="p25"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p27"
|
id="p27"
|
||||||
cx="972.8443"
|
cx="972.8443"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p27" />
|
inkscape:label="p27"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p01"
|
id="p01"
|
||||||
cx="297.77356"
|
cx="297.77356"
|
||||||
cy="151.15569"
|
cy="151.15569"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p01" />
|
inkscape:label="p01"/>
|
||||||
<circle
|
<circle
|
||||||
style="fill:#d00000;fill-opacity:1"
|
style="fill:#d00000;fill-opacity:1"
|
||||||
id="p26"
|
id="p26"
|
||||||
cx="1339.4479"
|
cx="1339.4479"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
inkscape:label="p26" />
|
inkscape:label="p26"/>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
style="display:inline"
|
style="display:inline"
|
||||||
@@ -670,49 +669,49 @@
|
|||||||
cy="248.75478"
|
cy="248.75478"
|
||||||
cx="503.64618"
|
cx="503.64618"
|
||||||
id="s02"
|
id="s02"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s03"
|
inkscape:label="s03"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="248.75478"
|
cy="248.75478"
|
||||||
cx="863.41034"
|
cx="863.41034"
|
||||||
id="s03"
|
id="s03"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s04"
|
inkscape:label="s04"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="248.75478"
|
cy="248.75478"
|
||||||
cx="1181.4528"
|
cx="1181.4528"
|
||||||
id="s04"
|
id="s04"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s05"
|
inkscape:label="s05"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="151.15569"
|
cy="151.15569"
|
||||||
cx="1378.4338"
|
cx="1378.4338"
|
||||||
id="s05"
|
id="s05"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s06"
|
inkscape:label="s06"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
cx="1535.0613"
|
cx="1535.0613"
|
||||||
id="s06"
|
id="s06"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s07"
|
inkscape:label="s07"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="997.90094"
|
cy="997.90094"
|
||||||
cx="1378.4338"
|
cx="1378.4338"
|
||||||
id="s07"
|
id="s07"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s08"
|
inkscape:label="s08"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="914.24066"
|
cy="914.24066"
|
||||||
cx="1181.4528"
|
cx="1181.4528"
|
||||||
id="s08"
|
id="s08"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s09"
|
inkscape:label="s09"
|
||||||
transform="scale(1,-1)"
|
transform="scale(1,-1)"
|
||||||
@@ -720,56 +719,56 @@
|
|||||||
cy="-914.24066"
|
cy="-914.24066"
|
||||||
cx="863.41034"
|
cx="863.41034"
|
||||||
id="s09"
|
id="s09"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s10"
|
inkscape:label="s10"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="914.24066"
|
cy="914.24066"
|
||||||
cx="503.64618"
|
cx="503.64618"
|
||||||
id="s10"
|
id="s10"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s11"
|
inkscape:label="s11"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="997.90094"
|
cy="997.90094"
|
||||||
cx="297.77356"
|
cx="297.77356"
|
||||||
id="s11"
|
id="s11"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s12"
|
inkscape:label="s12"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
cx="93.268852"
|
cx="93.268852"
|
||||||
id="s12"
|
id="s12"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s25"
|
inkscape:label="s25"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
cx="424.30658"
|
cx="424.30658"
|
||||||
id="s25"
|
id="s25"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s27"
|
inkscape:label="s27"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
cx="972.8443"
|
cx="972.8443"
|
||||||
id="s27"
|
id="s27"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s01"
|
inkscape:label="s01"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="151.15569"
|
cy="151.15569"
|
||||||
cx="297.77356"
|
cx="297.77356"
|
||||||
id="s01"
|
id="s01"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
<circle
|
<circle
|
||||||
inkscape:label="s26"
|
inkscape:label="s26"
|
||||||
r="61.935417"
|
r="61.935417"
|
||||||
cy="581.36798"
|
cy="581.36798"
|
||||||
cx="1339.4479"
|
cx="1339.4479"
|
||||||
id="s26"
|
id="s26"
|
||||||
style="fill:#ffef00;fill-opacity:1" />
|
style="fill:#ffef00;fill-opacity:1"/>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
inkscape:groupmode="layer"
|
inkscape:groupmode="layer"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 30 KiB |
@@ -1,92 +1,162 @@
|
|||||||
<svg id="svg166" version="1.1" viewBox="0 0 1668 1160" xmlns="http://www.w3.org/2000/svg">
|
<svg id="svg166" version="1.1" viewBox="0 0 1668 1160" xmlns="http://www.w3.org/2000/svg">
|
||||||
<g id="g158" transform="translate(254 -254)">
|
<g id="g158" transform="translate(254 -254)">
|
||||||
<g id="g34" transform="translate(-13.78 3.524)" stroke="#000">
|
<g id="g34" transform="translate(-13.78 3.524)" stroke="#000">
|
||||||
<path id="path10" d="m494.57 1006.9c41.429-15.714 140-11.427 191.43-12.857 51.429-1.429 160.48 10.23 201.43 27.143 40.995 16.93 134.78 67.656 151.43 72.857 22.857 7.143 41.429 7.143 80 20 38.572 12.857 25.714 32.857 25.714 32.857l-30-4.286-5.756 52.92s37.185 1.366 41.47 15.652c4.286 14.286 5.715 31.428-2.856 41.428-8.572 10-14.286-1.428-18.572 12.858-4.286 14.285-2.857 28.571-27.143 27.142-24.285-1.428-98.571 0-98.571 0s-15.714-108.57-98.573-105.71c-82.857 2.857-95.714 105.71-95.714 105.71h-500s-5.714-104.28-97.143-105.71c-91.428-1.428-98.571 105.71-98.571 105.71h-65.713l-18.572-38.571c-0.515 0-26.243 0-21.428-17.143 4.651-16.561-4.286-41.428 17.142-41.428 21.429 0 47.143 1.428 47.143 1.428l15.715-44.286-41.429-2.857s34.286-24.285 118.57-32.857c84.286-8.571 157.14-8.571 192.86-31.428 35.714-22.858 137.14-78.572 137.14-78.572z" fill="none" stroke-width="5"/>
|
<path id="path10"
|
||||||
|
d="m494.57 1006.9c41.429-15.714 140-11.427 191.43-12.857 51.429-1.429 160.48 10.23 201.43 27.143 40.995 16.93 134.78 67.656 151.43 72.857 22.857 7.143 41.429 7.143 80 20 38.572 12.857 25.714 32.857 25.714 32.857l-30-4.286-5.756 52.92s37.185 1.366 41.47 15.652c4.286 14.286 5.715 31.428-2.856 41.428-8.572 10-14.286-1.428-18.572 12.858-4.286 14.285-2.857 28.571-27.143 27.142-24.285-1.428-98.571 0-98.571 0s-15.714-108.57-98.573-105.71c-82.857 2.857-95.714 105.71-95.714 105.71h-500s-5.714-104.28-97.143-105.71c-91.428-1.428-98.571 105.71-98.571 105.71h-65.713l-18.572-38.571c-0.515 0-26.243 0-21.428-17.143 4.651-16.561-4.286-41.428 17.142-41.428 21.429 0 47.143 1.428 47.143 1.428l15.715-44.286-41.429-2.857s34.286-24.285 118.57-32.857c84.286-8.571 157.14-8.571 192.86-31.428 35.714-22.858 137.14-78.572 137.14-78.572z"
|
||||||
|
fill="none" stroke-width="5"/>
|
||||||
<path id="path12" d="m28.857 1254h92.857m180 0h517.14m172.86 0h151.43" fill="none" stroke-width="2"/>
|
<path id="path12" d="m28.857 1254h92.857m180 0h517.14m172.86 0h151.43" fill="none" stroke-width="2"/>
|
||||||
<path id="path14" d="m364.57 1101.1c15.715-18.572 123.37-81.525 151.43-88.572 29.502-7.41 103-7.142 103-7.142l-7.143 95.714z" fill="#f0ffeb" stroke-width="5"/>
|
<path id="path14"
|
||||||
|
d="m364.57 1101.1c15.715-18.572 123.37-81.525 151.43-88.572 29.502-7.41 103-7.142 103-7.142l-7.143 95.714z"
|
||||||
|
fill="#f0ffeb" stroke-width="5"/>
|
||||||
<path id="path16" d="m404.57 1071.1v28.571" fill="none" stroke-width="2"/>
|
<path id="path16" d="m404.57 1071.1v28.571" fill="none" stroke-width="2"/>
|
||||||
<path id="path18" d="m644.7 1006.8-4.285 94.328h207.16c-11.307-20.753-46.612-74.906-72.857-88.572-14.285-10-82.878-4.327-130.02-5.756zm167.02 7.164s80 84.286 85.715 87.143c5.714 2.857 115.71 1.428 115.71 1.428s-77.143-47.141-102.86-58.571c-25.715-11.429-90-31.429-98.572-30z" fill="#f0ffeb" stroke-width="5"/>
|
<path id="path18"
|
||||||
|
d="m644.7 1006.8-4.285 94.328h207.16c-11.307-20.753-46.612-74.906-72.857-88.572-14.285-10-82.878-4.327-130.02-5.756zm167.02 7.164s80 84.286 85.715 87.143c5.714 2.857 115.71 1.428 115.71 1.428s-77.143-47.141-102.86-58.571c-25.715-11.429-90-31.429-98.572-30z"
|
||||||
|
fill="#f0ffeb" stroke-width="5"/>
|
||||||
<g fill="none">
|
<g fill="none">
|
||||||
<path id="path20" d="m345.64 1091.7c-14.075 30.968-18.298 71.788-18.298 94.31 0 22.521 4.223 91.493 22.521 105.57m282.93-298.41c-1.408 5.63-4.047 81.903-6.51 106.93-3.67 18.715-4.989 51.219-6.159 87.315 0 22.522 7.038 80.233 12.669 105.57" stroke-width="5"/>
|
<path id="path20"
|
||||||
<path id="path22" d="m103.53 1252.1s15.483-85.864 106.98-85.864c91.494 0 109.79 87.271 109.79 87.271m479.99 0s15.483-85.863 106.98-85.863c91.493 0 109.79 87.27 109.79 87.27m-947.31-57.711h63.342" stroke-width="2"/>
|
d="m345.64 1091.7c-14.075 30.968-18.298 71.788-18.298 94.31 0 22.521 4.223 91.493 22.521 105.57m282.93-298.41c-1.408 5.63-4.047 81.903-6.51 106.93-3.67 18.715-4.989 51.219-6.159 87.315 0 22.522 7.038 80.233 12.669 105.57"
|
||||||
<path id="path24" d="m779.18 1000.2c18.299 12.668 56.304 50.673 92.9 104.16 36.598 53.489 8.447 59.12-18.298 74.603-26.744 15.483-49.266 42.227-67.564 112.61" stroke-width="5"/>
|
stroke-width="5"/>
|
||||||
|
<path id="path22"
|
||||||
|
d="m103.53 1252.1s15.483-85.864 106.98-85.864c91.494 0 109.79 87.271 109.79 87.271m479.99 0s15.483-85.863 106.98-85.863c91.493 0 109.79 87.27 109.79 87.27m-947.31-57.711h63.342"
|
||||||
|
stroke-width="2"/>
|
||||||
|
<path id="path24"
|
||||||
|
d="m779.18 1000.2c18.299 12.668 56.304 50.673 92.9 104.16 36.598 53.489 8.447 59.12-18.298 74.603-26.744 15.483-49.266 42.227-67.564 112.61"
|
||||||
|
stroke-width="5"/>
|
||||||
<path id="path26" d="m1112.8 1196h-129.5m-696.76-0.222h544.74m-22.522-150.61v54.896" stroke-width="2"/>
|
<path id="path26" d="m1112.8 1196h-129.5m-696.76-0.222h544.74m-22.522-150.61v54.896" stroke-width="2"/>
|
||||||
</g>
|
</g>
|
||||||
<g stroke-width="2">
|
<g stroke-width="2">
|
||||||
<rect id="rect28" x="558.65" y="1144.9" width="41.286" height="14.541" rx="2.933" ry="7.379" fill="#e6e6e6"/>
|
<rect id="rect28" x="558.65" y="1144.9" width="41.286" height="14.541" rx="2.933" ry="7.379"
|
||||||
<rect id="rect30" x="816.24" y="1144.9" width="41.286" height="14.541" rx="2.933" ry="7.379" fill="#e6e6e6"/>
|
fill="#e6e6e6"/>
|
||||||
<rect id="rect32" x="259.53" y="1146.3" width="18.776" height="11.738" rx="1.63" ry="7.692" fill="#ffcb00"/>
|
<rect id="rect30" x="816.24" y="1144.9" width="41.286" height="14.541" rx="2.933" ry="7.379"
|
||||||
|
fill="#e6e6e6"/>
|
||||||
|
<rect id="rect32" x="259.53" y="1146.3" width="18.776" height="11.738" rx="1.63" ry="7.692"
|
||||||
|
fill="#ffcb00"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g id="g54" transform="translate(-13.78 15.524)" stroke="#000">
|
<g id="g54" transform="translate(-13.78 15.524)" stroke="#000">
|
||||||
<path id="path36" d="m62.767 812.59-11.712 16.12-18.95-6.157v-19.925l18.95-6.158z" fill="none" stroke-width="5"/>
|
<path id="path36" d="m62.767 812.59-11.712 16.12-18.95-6.157v-19.925l18.95-6.158z" fill="none"
|
||||||
|
stroke-width="5"/>
|
||||||
<path id="path38" d="m31.742 745.02 315.3-111.2m-316.71 254.77 315.3 115.42" fill="none" stroke-width="2"/>
|
<path id="path38" d="m31.742 745.02 315.3-111.2m-316.71 254.77 315.3 115.42" fill="none" stroke-width="2"/>
|
||||||
<path id="path40" d="m341.41 632.78 140.76 38.005s-8.446 49.222-8.446 71.963v147.62c0 30.967 8.445 78.825 8.445 78.825l-140.76 33.782s-17.242-61.902-17.242-92.901l2.111-185.8c-1.408-30.967 15.132-91.493 15.132-91.493z" fill="#f0ffeb" stroke-width="5"/>
|
<path id="path40"
|
||||||
|
d="m341.41 632.78 140.76 38.005s-8.446 49.222-8.446 71.963v147.62c0 30.967 8.445 78.825 8.445 78.825l-140.76 33.782s-17.242-61.902-17.242-92.901l2.111-185.8c-1.408-30.967 15.132-91.493 15.132-91.493z"
|
||||||
|
fill="#f0ffeb" stroke-width="5"/>
|
||||||
<g fill="none">
|
<g fill="none">
|
||||||
<path id="path42" d="m482.17 670.79s94.309 5.63 152.02 5.63c106.98 0 201.29-5.63 201.29-5.63m-1.408 297s-77.418-5.63-199.88-5.63c-68.972 0-152.02 7.038-152.02 7.038" stroke-width="5"/>
|
<path id="path42"
|
||||||
<rect id="rect44" x="528.62" y="729.2" width="106.98" height="181.58" rx="31.19" ry="34.436" stroke-width="2"/>
|
d="m482.17 670.79s94.309 5.63 152.02 5.63c106.98 0 201.29-5.63 201.29-5.63m-1.408 297s-77.418-5.63-199.88-5.63c-68.972 0-152.02 7.038-152.02 7.038"
|
||||||
<path id="path46" d="m345.78 632.78h-294.19l-14.076 102.75-7.038 11.26v142.17l7.038 14.076 15.483 101.35h288.56m491.11-333.6s-12.668 47.858-12.668 73.195v146.39c0 25.336 12.668 77.417 12.668 77.417l205.51 38.005h108.38s14.076-81.64 14.076-115.42v-147.8c0-38.005-14.076-109.79-14.076-109.79h-108.38z" stroke-width="5"/>
|
stroke-width="5"/>
|
||||||
|
<rect id="rect44" x="528.62" y="729.2" width="106.98" height="181.58" rx="31.19" ry="34.436"
|
||||||
|
stroke-width="2"/>
|
||||||
|
<path id="path46"
|
||||||
|
d="m345.78 632.78h-294.19l-14.076 102.75-7.038 11.26v142.17l7.038 14.076 15.483 101.35h288.56m491.11-333.6s-12.668 47.858-12.668 73.195v146.39c0 25.336 12.668 77.417 12.668 77.417l205.51 38.005h108.38s14.076-81.64 14.076-115.42v-147.8c0-38.005-14.076-109.79-14.076-109.79h-108.38z"
|
||||||
|
stroke-width="5"/>
|
||||||
</g>
|
</g>
|
||||||
<path id="path48" d="m843.92 689.09s-8.445 40.82-8.445 56.303v144.98c0 19.706 7.038 57.711 7.038 57.711s94.308 26.744 123.87 26.744h42.228v-312.49h-47.859c-25.336 0-116.83 26.745-116.83 26.745z" fill="#f0ffeb" stroke-width="5"/>
|
<path id="path48"
|
||||||
<path id="path50" d="m1038.2 632.78s30.967 40.82 30.967 111.2v146.39c0 64.749-30.967 116.83-30.967 116.83m-713.65-263.22 32.374-32.375v-40.82 112.61m-33.078 81.641 32.374-32.375v-40.82 112.61m648.9-116.83-32.375-32.374v-40.82 112.61" fill="none" stroke-width="2"/>
|
d="m843.92 689.09s-8.445 40.82-8.445 56.303v144.98c0 19.706 7.038 57.711 7.038 57.711s94.308 26.744 123.87 26.744h42.228v-312.49h-47.859c-25.336 0-116.83 26.745-116.83 26.745z"
|
||||||
<path id="path52" d="m341.41 632.78s-42.228 78.825-42.228 111.2v146.39c0 40.82 42.228 114.02 42.228 114.02" fill="none" stroke-width="2"/>
|
fill="#f0ffeb" stroke-width="5"/>
|
||||||
|
<path id="path50"
|
||||||
|
d="m1038.2 632.78s30.967 40.82 30.967 111.2v146.39c0 64.749-30.967 116.83-30.967 116.83m-713.65-263.22 32.374-32.375v-40.82 112.61m-33.078 81.641 32.374-32.375v-40.82 112.61m648.9-116.83-32.375-32.374v-40.82 112.61"
|
||||||
|
fill="none" stroke-width="2"/>
|
||||||
|
<path id="path52" d="m341.41 632.78s-42.228 78.825-42.228 111.2v146.39c0 40.82 42.228 114.02 42.228 114.02"
|
||||||
|
fill="none" stroke-width="2"/>
|
||||||
</g>
|
</g>
|
||||||
<g fill="none" stroke="#000">
|
<g fill="none" stroke="#000">
|
||||||
<path id="path56" d="m-106.79 740.92 1.407-91.493s5.63-23.93-25.337-25.337c-30.967-1.408-26.744 2.815-26.744 2.815l1.408 415.24h28.152c28.152 0 22.521-22.52 22.521-22.52v-95.717c-12.677 0-11.26-9.614-11.26-16.891v-149.2c0.45-18.89 9.853-16.892 9.853-16.892z" stroke-width="5"/>
|
<path id="path56"
|
||||||
<path id="path58" d="m-155.99 646.16h49.265m-48.415 374.27h49.266m-50.82-315.37h49.266m-46.451 259.81h49.266" stroke-width="2.2"/>
|
d="m-106.79 740.92 1.407-91.493s5.63-23.93-25.337-25.337c-30.967-1.408-26.744 2.815-26.744 2.815l1.408 415.24h28.152c28.152 0 22.521-22.52 22.521-22.52v-95.717c-12.677 0-11.26-9.614-11.26-16.891v-149.2c0.45-18.89 9.853-16.892 9.853-16.892z"
|
||||||
|
stroke-width="5"/>
|
||||||
|
<path id="path58"
|
||||||
|
d="m-155.99 646.16h49.265m-48.415 374.27h49.266m-50.82-315.37h49.266m-46.451 259.81h49.266"
|
||||||
|
stroke-width="2.2"/>
|
||||||
<path id="path60" d="m-147.1 703.82v260.4m9.853-258.84v260.4" stroke-width="2"/>
|
<path id="path60" d="m-147.1 703.82v260.4m9.853-258.84v260.4" stroke-width="2"/>
|
||||||
</g>
|
</g>
|
||||||
<g id="g88" transform="translate(-13.78 15.524)" stroke="#000">
|
<g id="g88" transform="translate(-13.78 15.524)" stroke="#000">
|
||||||
<path id="path62" d="m494.57 641.61c41.429 15.714 140 11.428 191.43 12.856s160.48-10.23 201.43-27.143c40.995-16.93 134.78-67.656 151.43-72.857 22.857-7.143 41.429-7.143 80-20 38.572-12.857 25.714-32.857 25.714-32.857l-30 4.285-5.756-52.92s37.185-1.365 41.47-15.651c4.286-14.286 5.715-31.429-2.856-41.429-8.572-10-14.286 1.429-18.572-12.857-4.286-14.285-2.857-28.571-27.143-27.143-24.285 1.429-98.571 0-98.571 0s-15.714 108.57-98.572 105.72c-82.857-2.857-95.714-105.72-95.714-105.72h-500s-5.714 104.29-97.143 105.72c-91.428 1.428-98.571-105.72-98.571-105.72h-65.714l-18.572 38.572c-0.515 0-26.243 0-21.428 17.143 4.651 16.561-4.286 41.428 17.142 41.428 21.429 0 47.143-1.428 47.143-1.428l15.715 44.285-41.429 2.859s34.286 24.285 118.57 32.857c84.286 8.571 157.14 8.571 192.86 31.428 35.714 22.857 137.14 78.572 137.14 78.572z" fill="none" stroke-width="5"/>
|
<path id="path62"
|
||||||
|
d="m494.57 641.61c41.429 15.714 140 11.428 191.43 12.856s160.48-10.23 201.43-27.143c40.995-16.93 134.78-67.656 151.43-72.857 22.857-7.143 41.429-7.143 80-20 38.572-12.857 25.714-32.857 25.714-32.857l-30 4.285-5.756-52.92s37.185-1.365 41.47-15.651c4.286-14.286 5.715-31.429-2.856-41.429-8.572-10-14.286 1.429-18.572-12.857-4.286-14.285-2.857-28.571-27.143-27.143-24.285 1.429-98.571 0-98.571 0s-15.714 108.57-98.572 105.72c-82.857-2.857-95.714-105.72-95.714-105.72h-500s-5.714 104.29-97.143 105.72c-91.428 1.428-98.571-105.72-98.571-105.72h-65.714l-18.572 38.572c-0.515 0-26.243 0-21.428 17.143 4.651 16.561-4.286 41.428 17.142 41.428 21.429 0 47.143-1.428 47.143-1.428l15.715 44.285-41.429 2.859s34.286 24.285 118.57 32.857c84.286 8.571 157.14 8.571 192.86 31.428 35.714 22.857 137.14 78.572 137.14 78.572z"
|
||||||
|
fill="none" stroke-width="5"/>
|
||||||
<path id="path64" d="m28.857 394.47h92.857m180 0h517.14m172.86 0h151.43" fill="none" stroke-width="2"/>
|
<path id="path64" d="m28.857 394.47h92.857m180 0h517.14m172.86 0h151.43" fill="none" stroke-width="2"/>
|
||||||
<path id="path66" d="m364.57 547.33c15.715 18.571 123.37 81.524 151.43 88.571 29.502 7.41 103 7.143 103 7.143l-7.143-95.714z" fill="#f0ffeb" stroke-width="5"/>
|
<path id="path66"
|
||||||
|
d="m364.57 547.33c15.715 18.571 123.37 81.524 151.43 88.571 29.502 7.41 103 7.143 103 7.143l-7.143-95.714z"
|
||||||
|
fill="#f0ffeb" stroke-width="5"/>
|
||||||
<path id="path68" d="m404.57 577.33v-28.571" fill="none" stroke-width="2"/>
|
<path id="path68" d="m404.57 577.33v-28.571" fill="none" stroke-width="2"/>
|
||||||
<path id="path70" d="m644.7 641.64-4.285-94.328h207.16c-11.307 20.753-46.612 74.906-72.857 88.571-14.285 10-82.878 4.328-130.02 5.757zm167.02-7.165s80-84.285 85.715-87.142c5.714-2.857 115.71-1.429 115.71-1.429s-77.143 47.143-102.86 58.572c-25.715 11.428-90 31.428-98.572 30z" fill="#f0ffeb" stroke-width="5"/>
|
<path id="path70"
|
||||||
|
d="m644.7 641.64-4.285-94.328h207.16c-11.307 20.753-46.612 74.906-72.857 88.571-14.285 10-82.878 4.328-130.02 5.757zm167.02-7.165s80-84.285 85.715-87.142c5.714-2.857 115.71-1.429 115.71-1.429s-77.143 47.143-102.86 58.572c-25.715 11.428-90 31.428-98.572 30z"
|
||||||
|
fill="#f0ffeb" stroke-width="5"/>
|
||||||
<g fill="none">
|
<g fill="none">
|
||||||
<path id="path72" d="m345.64 556.81c-14.075-30.967-18.298-71.787-18.298-94.309 0-22.521 4.223-91.493 22.521-105.57m282.93 298.41c-1.408-5.63-4.047-81.905-6.51-106.93-3.67-18.714-4.989-51.218-6.159-87.314 0-22.522 7.038-80.233 12.669-105.57" stroke-width="5"/>
|
<path id="path72"
|
||||||
<path id="path74" d="m103.53 396.34s15.483 85.864 106.98 85.864c91.494 0 109.79-87.271 109.79-87.271m479.99 0s15.483 85.863 106.98 85.863c91.493 0 109.79-87.27 109.79-87.27m-947.31 57.71h63.342" stroke-width="2"/>
|
d="m345.64 556.81c-14.075-30.967-18.298-71.787-18.298-94.309 0-22.521 4.223-91.493 22.521-105.57m282.93 298.41c-1.408-5.63-4.047-81.905-6.51-106.93-3.67-18.714-4.989-51.218-6.159-87.314 0-22.522 7.038-80.233 12.669-105.57"
|
||||||
<path id="path76" d="m779.18 648.3c18.299-12.669 56.304-50.674 92.9-104.16 36.598-53.489 8.447-59.12-18.298-74.603-26.744-15.483-49.266-42.228-67.564-112.61" stroke-width="5"/>
|
stroke-width="5"/>
|
||||||
<path id="path78" d="m1112.8 452.42h-129.5m-696.76 0.223h544.74m-22.522 150.61v-54.895" stroke-width="2"/>
|
<path id="path74"
|
||||||
|
d="m103.53 396.34s15.483 85.864 106.98 85.864c91.494 0 109.79-87.271 109.79-87.271m479.99 0s15.483 85.863 106.98 85.863c91.493 0 109.79-87.27 109.79-87.27m-947.31 57.71h63.342"
|
||||||
|
stroke-width="2"/>
|
||||||
|
<path id="path76"
|
||||||
|
d="m779.18 648.3c18.299-12.669 56.304-50.674 92.9-104.16 36.598-53.489 8.447-59.12-18.298-74.603-26.744-15.483-49.266-42.228-67.564-112.61"
|
||||||
|
stroke-width="5"/>
|
||||||
|
<path id="path78" d="m1112.8 452.42h-129.5m-696.76 0.223h544.74m-22.522 150.61v-54.895"
|
||||||
|
stroke-width="2"/>
|
||||||
</g>
|
</g>
|
||||||
<g stroke-width="2">
|
<g stroke-width="2">
|
||||||
<rect id="rect80" transform="scale(1 -1)" x="558.65" y="-503.55" width="41.286" height="14.541" rx="2.933" ry="7.379" fill="#e6e6e6"/>
|
<rect id="rect80" transform="scale(1 -1)" x="558.65" y="-503.55" width="41.286" height="14.541"
|
||||||
<rect id="rect82" transform="scale(1 -1)" x="816.24" y="-503.55" width="41.286" height="14.541" rx="2.933" ry="7.379" fill="#e6e6e6"/>
|
rx="2.933" ry="7.379" fill="#e6e6e6"/>
|
||||||
<rect id="rect84" transform="scale(1 -1)" x="259.53" y="-502.15" width="18.776" height="11.738" rx="1.63" ry="7.692" fill="#ffcb00"/>
|
<rect id="rect82" transform="scale(1 -1)" x="816.24" y="-503.55" width="41.286" height="14.541"
|
||||||
|
rx="2.933" ry="7.379" fill="#e6e6e6"/>
|
||||||
|
<rect id="rect84" transform="scale(1 -1)" x="259.53" y="-502.15" width="18.776" height="11.738"
|
||||||
|
rx="1.63" ry="7.692" fill="#ffcb00"/>
|
||||||
<circle id="circle86" transform="translate(941.34 284)" cx="59.119" cy="211.28" r="16.891" fill="#fff"/>
|
<circle id="circle86" transform="translate(941.34 284)" cx="59.119" cy="211.28" r="16.891" fill="#fff"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<path id="path90" d="m-126.58 704.93v260.4" fill="none" stroke="#000" stroke-width="2"/>
|
<path id="path90" d="m-126.58 704.93v260.4" fill="none" stroke="#000" stroke-width="2"/>
|
||||||
<path id="path92" d="m-153.88 992.49v-26.041h45.043v52.08h-45.043zm0-316.71v-27.448h45.043v54.898h-45.043z" fill="#ffffc0"/>
|
<path id="path92" d="m-153.88 992.49v-26.041h45.043v52.08h-45.043zm0-316.71v-27.448h45.043v54.898h-45.043z"
|
||||||
|
fill="#ffffc0"/>
|
||||||
<g fill="none" stroke="#000">
|
<g fill="none" stroke="#000">
|
||||||
<path id="path94" d="m-157.4 624.38s-4.223-12.669-18.299-12.669-14.076 8.446-14.076 8.446v423.69s1.408 9.853 14.076 9.853c12.669 0 18.3-9.853 18.3-9.853" stroke-width="5"/>
|
<path id="path94"
|
||||||
<path id="path96" d="m-191.18 624.38s-35.19-1.408-35.19 21.114v371.6c0 22.521 36.597 25.336 36.597 25.336" stroke-width="5"/>
|
d="m-157.4 624.38s-4.223-12.669-18.299-12.669-14.076 8.446-14.076 8.446v423.69s1.408 9.853 14.076 9.853c12.669 0 18.3-9.853 18.3-9.853"
|
||||||
|
stroke-width="5"/>
|
||||||
|
<path id="path96" d="m-191.18 624.38s-35.19-1.408-35.19 21.114v371.6c0 22.521 36.597 25.336 36.597 25.336"
|
||||||
|
stroke-width="5"/>
|
||||||
<g stroke-width="2">
|
<g stroke-width="2">
|
||||||
<rect id="rect98" x="-216.51" y="648.31" width="16.891" height="35.19" rx="7.742" ry="6.284"/>
|
<rect id="rect98" x="-216.51" y="648.31" width="16.891" height="35.19" rx="7.742" ry="6.284"/>
|
||||||
<rect id="rect100" x="-216.51" y="985.58" width="16.891" height="35.19" rx="7.742" ry="6.284"/>
|
<rect id="rect100" x="-216.51" y="985.58" width="16.891" height="35.19" rx="7.742" ry="6.284"/>
|
||||||
<path id="path102" d="m-62.939 645.49h30.967v377.24h-30.967z"/>
|
<path id="path102" d="m-62.939 645.49h30.967v377.24h-30.967z"/>
|
||||||
</g>
|
</g>
|
||||||
<path id="path104" d="m1200.9 633.86v73.195h67.565v-83.048l-25.337-14.076zm0 329.38h67.565v78.826l-23.93 14.076-43.635-18.3zm0-270.26v284.33m67.565-283.74v284.33" stroke-width="5"/>
|
<path id="path104"
|
||||||
<path id="path106" d="m1216.6 759.51h14.076v147.8h-14.076zm7.631-1.408v-53.488m0 257.37v-53.49m30.375-201.06v256.18" stroke-width="2"/>
|
d="m1200.9 633.86v73.195h67.565v-83.048l-25.337-14.076zm0 329.38h67.565v78.826l-23.93 14.076-43.635-18.3zm0-270.26v284.33m67.565-283.74v284.33"
|
||||||
<path id="path108" d="m1268.8 624.97s4.223-12.668 18.299-12.668 14.076 8.445 14.076 8.445v423.69s-1.408 9.853-14.076 9.853c-12.669 0-18.299-9.853-18.299-9.853m33.783-419.46s35.19-1.408 35.19 21.114v371.6c0 22.521-36.598 25.337-36.598 25.337" stroke-width="5"/>
|
stroke-width="5"/>
|
||||||
|
<path id="path106"
|
||||||
|
d="m1216.6 759.51h14.076v147.8h-14.076zm7.631-1.408v-53.488m0 257.37v-53.49m30.375-201.06v256.18"
|
||||||
|
stroke-width="2"/>
|
||||||
|
<path id="path108"
|
||||||
|
d="m1268.8 624.97s4.223-12.668 18.299-12.668 14.076 8.445 14.076 8.445v423.69s-1.408 9.853-14.076 9.853c-12.669 0-18.299-9.853-18.299-9.853m33.783-419.46s35.19-1.408 35.19 21.114v371.6c0 22.521-36.598 25.337-36.598 25.337"
|
||||||
|
stroke-width="5"/>
|
||||||
<g stroke-width="2">
|
<g stroke-width="2">
|
||||||
<rect id="rect110" transform="scale(-1 1)" x="-1329.9" y="648.9" width="16.891" height="35.19" rx="7.742" ry="6.284"/>
|
<rect id="rect110" transform="scale(-1 1)" x="-1329.9" y="648.9" width="16.891" height="35.19"
|
||||||
<rect id="rect112" transform="scale(-1 1)" x="-1329.9" y="986.17" width="16.891" height="35.19" rx="7.742" ry="6.284"/>
|
rx="7.742" ry="6.284"/>
|
||||||
<path id="path114" d="m1199.7 632.82 67.565 74.603m-67.565 0.592 67.565-73.195m-67.342 328.16 67.565 74.602m-67.565 0.593 67.565-73.195"/>
|
<rect id="rect112" transform="scale(-1 1)" x="-1329.9" y="986.17" width="16.891" height="35.19"
|
||||||
|
rx="7.742" ry="6.284"/>
|
||||||
|
<path id="path114"
|
||||||
|
d="m1199.7 632.82 67.565 74.603m-67.565 0.592 67.565-73.195m-67.342 328.16 67.565 74.602m-67.565 0.593 67.565-73.195"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g stroke="#000">
|
<g stroke="#000">
|
||||||
<g stroke-width="2">
|
<g stroke-width="2">
|
||||||
<circle id="circle116" transform="translate(78.489 1074.7)" cx="119.65" cy="202.84" r="76.01" fill="#c8c8c8"/>
|
<circle id="circle116" transform="translate(78.489 1074.7)" cx="119.65" cy="202.84" r="76.01"
|
||||||
<circle id="circle118" transform="translate(94.676 1204.9)" cx="103.46" cy="72.633" r="44.339" fill="#fff"/>
|
fill="#c8c8c8"/>
|
||||||
<circle id="circle120" transform="translate(78.489 187.66)" cx="119.65" cy="202.84" r="76.01" fill="#c8c8c8"/>
|
<circle id="circle118" transform="translate(94.676 1204.9)" cx="103.46" cy="72.633" r="44.339"
|
||||||
<circle id="circle122" transform="translate(94.676 317.86)" cx="103.46" cy="72.633" r="44.339" fill="#fff"/>
|
fill="#fff"/>
|
||||||
<circle id="circle124" transform="translate(773.02 187.66)" cx="119.65" cy="202.84" r="76.01" fill="#c8c8c8"/>
|
<circle id="circle120" transform="translate(78.489 187.66)" cx="119.65" cy="202.84" r="76.01"
|
||||||
<circle id="circle126" transform="translate(789.21 317.86)" cx="103.46" cy="72.633" r="44.339" fill="#fff"/>
|
fill="#c8c8c8"/>
|
||||||
<circle id="circle128" transform="translate(773.02 1074.7)" cx="119.65" cy="202.84" r="76.01" fill="#c8c8c8"/>
|
<circle id="circle122" transform="translate(94.676 317.86)" cx="103.46" cy="72.633" r="44.339"
|
||||||
<circle id="circle130" transform="translate(789.21 1204.9)" cx="103.46" cy="72.633" r="44.339" fill="#fff"/>
|
fill="#fff"/>
|
||||||
|
<circle id="circle124" transform="translate(773.02 187.66)" cx="119.65" cy="202.84" r="76.01"
|
||||||
|
fill="#c8c8c8"/>
|
||||||
|
<circle id="circle126" transform="translate(789.21 317.86)" cx="103.46" cy="72.633" r="44.339"
|
||||||
|
fill="#fff"/>
|
||||||
|
<circle id="circle128" transform="translate(773.02 1074.7)" cx="119.65" cy="202.84" r="76.01"
|
||||||
|
fill="#c8c8c8"/>
|
||||||
|
<circle id="circle130" transform="translate(789.21 1204.9)" cx="103.46" cy="72.633" r="44.339"
|
||||||
|
fill="#fff"/>
|
||||||
</g>
|
</g>
|
||||||
<path id="path132" d="m1338.5 829.07h40.82" fill="none" stroke-width="5"/>
|
<path id="path132" d="m1338.5 829.07h40.82" fill="none" stroke-width="5"/>
|
||||||
<circle id="circle134" transform="translate(1441.3 600.31)" cx="-59.119" cy="229.58" r="4.223" fill="#3c3c3c" stroke-width="5"/>
|
<circle id="circle134" transform="translate(1441.3 600.31)" cx="-59.119" cy="229.58" r="4.223"
|
||||||
|
fill="#3c3c3c" stroke-width="5"/>
|
||||||
<g stroke-width="2">
|
<g stroke-width="2">
|
||||||
<path id="path136" d="m778.06 845.37-38.709-38.709" fill="none"/>
|
<path id="path136" d="m778.06 845.37-38.709-38.709" fill="none"/>
|
||||||
<g id="g146" transform="translate(-13.78 15.524)" fill="#3c3c3c">
|
<g id="g146" transform="translate(-13.78 15.524)" fill="#3c3c3c">
|
||||||
@@ -105,7 +175,7 @@
|
|||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
<g id="layer2" fill="#d00000">
|
<g id="layer2" fill="#d00000">
|
||||||
<circle id="p02" cx="503.65" cy="248.75" r="61.935" />
|
<circle id="p02" cx="503.65" cy="248.75" r="61.935"/>
|
||||||
<circle id="p03" cx="863.41" cy="248.75" r="61.935"/>
|
<circle id="p03" cx="863.41" cy="248.75" r="61.935"/>
|
||||||
<circle id="p04" cx="1181.5" cy="248.75" r="61.935"/>
|
<circle id="p04" cx="1181.5" cy="248.75" r="61.935"/>
|
||||||
<circle id="p05" cx="1378.4" cy="151.16" r="61.935"/>
|
<circle id="p05" cx="1378.4" cy="151.16" r="61.935"/>
|
||||||
@@ -139,6 +209,8 @@
|
|||||||
<circle id="s26" cx="1339.4" cy="581.37" r="61.935"/>
|
<circle id="s26" cx="1339.4" cy="581.37" r="61.935"/>
|
||||||
</g>
|
</g>
|
||||||
<g id="layer3">
|
<g id="layer3">
|
||||||
<text id="p15" opacity="0" x="382.62802" y="1034.3463" fill="#fd0000" font-family="sans-serif" font-size="1696.9px" letter-spacing="0px" stroke-width="17.676" word-spacing="0px" style="line-height:5.25" xml:space="preserve"><tspan id="tspan4997" x="382.62802" y="1034.3463" fill="#fd0000" stroke-width="17.676">x</tspan></text>
|
<text id="p15" opacity="0" x="382.62802" y="1034.3463" fill="#fd0000" font-family="sans-serif"
|
||||||
|
font-size="1696.9px" letter-spacing="0px" stroke-width="17.676" word-spacing="0px"
|
||||||
|
style="line-height:5.25" xml:space="preserve"><tspan id="tspan4997" x="382.62802" y="1034.3463" fill="#fd0000" stroke-width="17.676">x</tspan></text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 17 KiB |
@@ -9,7 +9,7 @@ function PrivateRoute({component: Component, isAuthorized, ...rest}) {
|
|||||||
if (!isAuthorized) {
|
if (!isAuthorized) {
|
||||||
navigate(`/signin?redirect=${location.pathname}`);
|
navigate(`/signin?redirect=${location.pathname}`);
|
||||||
}
|
}
|
||||||
}, [isAuthorized, navigate,location]);
|
}, [isAuthorized, navigate, location]);
|
||||||
|
|
||||||
return <Outlet/>;
|
return <Outlet/>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import { Button } from "antd";
|
import {Button} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { setModalContext } from "../../redux/modals/modals.actions";
|
import {setModalContext} from "../../redux/modals/modals.actions";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({});
|
const mapStateToProps = createStructuredSelector({});
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setRefundPaymentContext: (context) =>
|
setRefundPaymentContext: (context) =>
|
||||||
dispatch(setModalContext({ context: context, modal: "refund_payment" })),
|
dispatch(setModalContext({context: context, modal: "refund_payment"})),
|
||||||
});
|
});
|
||||||
|
|
||||||
function Test({ setRefundPaymentContext, refundPaymentModal }) {
|
function Test({setRefundPaymentContext, refundPaymentModal}) {
|
||||||
console.log("refundPaymentModal", refundPaymentModal);
|
console.log("refundPaymentModal", refundPaymentModal);
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
import { Input, Table, Checkbox, Card, Space } from "antd";
|
import {Card, Checkbox, Input, Space, Table} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { Link } from "react-router-dom";
|
import {Link} from "react-router-dom";
|
||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import { alphaSort, dateSort } from "../../utils/sorters";
|
import {alphaSort, dateSort} from "../../utils/sorters";
|
||||||
import PayableExportButton from "../payable-export-button/payable-export-button.component";
|
import PayableExportButton from "../payable-export-button/payable-export-button.component";
|
||||||
import PayableExportAll from "../payable-export-all-button/payable-export-all-button.component";
|
import PayableExportAll from "../payable-export-all-button/payable-export-all-button.component";
|
||||||
import { DateFormatter } from "../../utils/DateFormatter";
|
import {DateFormatter} from "../../utils/DateFormatter";
|
||||||
import queryString from "query-string";
|
import queryString from "query-string";
|
||||||
import { logImEXEvent } from "../../firebase/firebase.utils";
|
import {logImEXEvent} from "../../firebase/firebase.utils";
|
||||||
import QboAuthorizeComponent from "../qbo-authorize/qbo-authorize.component";
|
import QboAuthorizeComponent from "../qbo-authorize/qbo-authorize.component";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import ExportLogsCountDisplay from "../export-logs-count-display/export-logs-count-display.component";
|
import ExportLogsCountDisplay from "../export-logs-count-display/export-logs-count-display.component";
|
||||||
import BillMarkSelectedExported from "../payable-mark-selected-exported/payable-mark-selected-exported.component";
|
import BillMarkSelectedExported from "../payable-mark-selected-exported/payable-mark-selected-exported.component";
|
||||||
import {pageLimit} from "../../utils/config";
|
import {pageLimit} from "../../utils/config";
|
||||||
@@ -35,8 +35,8 @@ export function AccountingPayablesTableComponent({
|
|||||||
loading,
|
loading,
|
||||||
bills,
|
bills,
|
||||||
refetch,
|
refetch,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [selectedBills, setSelectedBills] = useState([]);
|
const [selectedBills, setSelectedBills] = useState([]);
|
||||||
const [transInProgress, setTransInProgress] = useState(false);
|
const [transInProgress, setTransInProgress] = useState(false);
|
||||||
const [state, setState] = useState({
|
const [state, setState] = useState({
|
||||||
@@ -45,7 +45,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({...state, filteredInfo: filters, sortedInfo: sorter});
|
||||||
};
|
};
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
@@ -60,7 +60,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
<Link
|
<Link
|
||||||
to={{
|
to={{
|
||||||
pathname: `/manage/shop/vendors`,
|
pathname: `/manage/shop/vendors`,
|
||||||
search: queryString.stringify({ selectedvendor: record.vendor.id }),
|
search: queryString.stringify({selectedvendor: record.vendor.id}),
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{record.vendor.name}
|
{record.vendor.name}
|
||||||
@@ -131,7 +131,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
state.sortedInfo.columnKey === "is_credit_memo" &&
|
state.sortedInfo.columnKey === "is_credit_memo" &&
|
||||||
state.sortedInfo.order,
|
state.sortedInfo.order,
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<Checkbox disabled checked={record.is_credit_memo} />
|
<Checkbox disabled checked={record.is_credit_memo}/>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -140,7 +140,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
key: "attempts",
|
key: "attempts",
|
||||||
|
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<ExportLogsCountDisplay logs={record.exportlogs} />
|
<ExportLogsCountDisplay logs={record.exportlogs}/>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -162,7 +162,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
];
|
];
|
||||||
|
|
||||||
const handleSearch = (e) => {
|
const handleSearch = (e) => {
|
||||||
setState({ ...state, search: e.target.value });
|
setState({...state, search: e.target.value});
|
||||||
logImEXEvent("accounting_payables_table_search");
|
logImEXEvent("accounting_payables_table_search");
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
refetch={refetch}
|
refetch={refetch}
|
||||||
/>
|
/>
|
||||||
{bodyshop.accountingconfig && bodyshop.accountingconfig.qbo && (
|
{bodyshop.accountingconfig && bodyshop.accountingconfig.qbo && (
|
||||||
<QboAuthorizeComponent />
|
<QboAuthorizeComponent/>
|
||||||
)}
|
)}
|
||||||
<Input
|
<Input
|
||||||
value={state.search}
|
value={state.search}
|
||||||
@@ -211,7 +211,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
<Table
|
<Table
|
||||||
loading={loading}
|
loading={loading}
|
||||||
dataSource={dataSource}
|
dataSource={dataSource}
|
||||||
pagination={{ position: "top", pageSize: pageLimit }}
|
pagination={{position: "top", pageSize: pageLimit}}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import { Card, Input, Space, Table } from "antd";
|
import {Card, Input, Space, Table} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { Link } from "react-router-dom";
|
import {Link} from "react-router-dom";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { logImEXEvent } from "../../firebase/firebase.utils";
|
import {logImEXEvent} from "../../firebase/firebase.utils";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import { DateFormatter, DateTimeFormatter } from "../../utils/DateFormatter";
|
import {DateFormatter, DateTimeFormatter} from "../../utils/DateFormatter";
|
||||||
import { alphaSort, dateSort } from "../../utils/sorters";
|
import {alphaSort, dateSort} from "../../utils/sorters";
|
||||||
import ExportLogsCountDisplay from "../export-logs-count-display/export-logs-count-display.component";
|
import ExportLogsCountDisplay from "../export-logs-count-display/export-logs-count-display.component";
|
||||||
import OwnerNameDisplay from "../owner-name-display/owner-name-display.component";
|
import OwnerNameDisplay from "../owner-name-display/owner-name-display.component";
|
||||||
import PaymentExportButton from "../payment-export-button/payment-export-button.component";
|
import PaymentExportButton from "../payment-export-button/payment-export-button.component";
|
||||||
@@ -35,8 +35,8 @@ export function AccountingPayablesTableComponent({
|
|||||||
loading,
|
loading,
|
||||||
payments,
|
payments,
|
||||||
refetch,
|
refetch,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [selectedPayments, setSelectedPayments] = useState([]);
|
const [selectedPayments, setSelectedPayments] = useState([]);
|
||||||
const [transInProgress, setTransInProgress] = useState(false);
|
const [transInProgress, setTransInProgress] = useState(false);
|
||||||
const [state, setState] = useState({
|
const [state, setState] = useState({
|
||||||
@@ -45,7 +45,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({...state, filteredInfo: filters, sortedInfo: sorter});
|
||||||
};
|
};
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
@@ -81,11 +81,11 @@ export function AccountingPayablesTableComponent({
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.job.owner ? (
|
return record.job.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.job.owner.id}>
|
<Link to={"/manage/owners/" + record.job.owner.id}>
|
||||||
<OwnerNameDisplay ownerObject={record.job} />
|
<OwnerNameDisplay ownerObject={record.job}/>
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span>
|
<span>
|
||||||
<OwnerNameDisplay ownerObject={record.job} />
|
<OwnerNameDisplay ownerObject={record.job}/>
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -130,7 +130,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
key: "attempts",
|
key: "attempts",
|
||||||
|
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<ExportLogsCountDisplay logs={record.exportlogs} />
|
<ExportLogsCountDisplay logs={record.exportlogs}/>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -152,7 +152,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
];
|
];
|
||||||
|
|
||||||
const handleSearch = (e) => {
|
const handleSearch = (e) => {
|
||||||
setState({ ...state, search: e.target.value });
|
setState({...state, search: e.target.value});
|
||||||
logImEXEvent("account_payments_table_search");
|
logImEXEvent("account_payments_table_search");
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -196,7 +196,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
refetch={refetch}
|
refetch={refetch}
|
||||||
/>
|
/>
|
||||||
{bodyshop.accountingconfig && bodyshop.accountingconfig.qbo && (
|
{bodyshop.accountingconfig && bodyshop.accountingconfig.qbo && (
|
||||||
<QboAuthorizeComponent />
|
<QboAuthorizeComponent/>
|
||||||
)}
|
)}
|
||||||
<Input
|
<Input
|
||||||
value={state.search}
|
value={state.search}
|
||||||
@@ -210,7 +210,7 @@ export function AccountingPayablesTableComponent({
|
|||||||
<Table
|
<Table
|
||||||
loading={loading}
|
loading={loading}
|
||||||
dataSource={dataSource}
|
dataSource={dataSource}
|
||||||
pagination={{ position: "top", pageSize: pageLimit }}
|
pagination={{position: "top", pageSize: pageLimit}}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
import { Button, Card, Input, Space, Table } from "antd";
|
import {Button, Card, Input, Space, Table} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { Link } from "react-router-dom";
|
import {Link} from "react-router-dom";
|
||||||
import { logImEXEvent } from "../../firebase/firebase.utils";
|
import {logImEXEvent} from "../../firebase/firebase.utils";
|
||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import { alphaSort, dateSort } from "../../utils/sorters";
|
import {alphaSort, dateSort} from "../../utils/sorters";
|
||||||
import JobExportButton from "../jobs-close-export-button/jobs-close-export-button.component";
|
import JobExportButton from "../jobs-close-export-button/jobs-close-export-button.component";
|
||||||
import JobsExportAllButton from "../jobs-export-all-button/jobs-export-all-button.component";
|
import JobsExportAllButton from "../jobs-export-all-button/jobs-export-all-button.component";
|
||||||
|
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import QboAuthorizeComponent from "../qbo-authorize/qbo-authorize.component";
|
import QboAuthorizeComponent from "../qbo-authorize/qbo-authorize.component";
|
||||||
import { DateFormatter } from "../../utils/DateFormatter";
|
import {DateFormatter} from "../../utils/DateFormatter";
|
||||||
import OwnerNameDisplay from "../owner-name-display/owner-name-display.component";
|
import OwnerNameDisplay from "../owner-name-display/owner-name-display.component";
|
||||||
import ExportLogsCountDisplay from "../export-logs-count-display/export-logs-count-display.component";
|
import ExportLogsCountDisplay from "../export-logs-count-display/export-logs-count-display.component";
|
||||||
|
|
||||||
@@ -32,8 +32,8 @@ export function AccountingReceivablesTableComponent({
|
|||||||
loading,
|
loading,
|
||||||
jobs,
|
jobs,
|
||||||
refetch,
|
refetch,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [selectedJobs, setSelectedJobs] = useState([]);
|
const [selectedJobs, setSelectedJobs] = useState([]);
|
||||||
const [transInProgress, setTransInProgress] = useState(false);
|
const [transInProgress, setTransInProgress] = useState(false);
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ export function AccountingReceivablesTableComponent({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({...state, filteredInfo: filters, sortedInfo: sorter});
|
||||||
};
|
};
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
@@ -89,11 +89,11 @@ export function AccountingReceivablesTableComponent({
|
|||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.owner ? (
|
return record.owner ? (
|
||||||
<Link to={"/manage/owners/" + record.owner.id}>
|
<Link to={"/manage/owners/" + record.owner.id}>
|
||||||
<OwnerNameDisplay ownerObject={record} />
|
<OwnerNameDisplay ownerObject={record}/>
|
||||||
</Link>
|
</Link>
|
||||||
) : (
|
) : (
|
||||||
<span>
|
<span>
|
||||||
<OwnerNameDisplay ownerObject={record} />
|
<OwnerNameDisplay ownerObject={record}/>
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -142,7 +142,7 @@ export function AccountingReceivablesTableComponent({
|
|||||||
dataIndex: "attempts",
|
dataIndex: "attempts",
|
||||||
key: "attempts",
|
key: "attempts",
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<ExportLogsCountDisplay logs={record.exportlogs} />
|
<ExportLogsCountDisplay logs={record.exportlogs}/>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -167,7 +167,7 @@ export function AccountingReceivablesTableComponent({
|
|||||||
];
|
];
|
||||||
|
|
||||||
const handleSearch = (e) => {
|
const handleSearch = (e) => {
|
||||||
setState({ ...state, search: e.target.value });
|
setState({...state, search: e.target.value});
|
||||||
logImEXEvent("accounting_receivables_search");
|
logImEXEvent("accounting_receivables_search");
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ export function AccountingReceivablesTableComponent({
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{bodyshop.accountingconfig && bodyshop.accountingconfig.qbo && (
|
{bodyshop.accountingconfig && bodyshop.accountingconfig.qbo && (
|
||||||
<QboAuthorizeComponent />
|
<QboAuthorizeComponent/>
|
||||||
)}
|
)}
|
||||||
<Input.Search
|
<Input.Search
|
||||||
value={state.search}
|
value={state.search}
|
||||||
@@ -225,7 +225,7 @@ export function AccountingReceivablesTableComponent({
|
|||||||
<Table
|
<Table
|
||||||
loading={loading}
|
loading={loading}
|
||||||
dataSource={dataSource}
|
dataSource={dataSource}
|
||||||
pagination={{ position: "top" }}
|
pagination={{position: "top"}}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Alert } from "antd";
|
import {Alert} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
export default function AlertComponent(props) {
|
export default function AlertComponent(props) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { shallow } from "enzyme";
|
import {shallow} from "enzyme";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import Alert from "./alert.component";
|
import Alert from "./alert.component";
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { Select, Button, Popover, InputNumber } from "antd";
|
import {Button, InputNumber, Popover, Select} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop
|
bodyshop: selectBodyshop
|
||||||
@@ -16,11 +16,11 @@ export function AllocationsAssignmentComponent({
|
|||||||
setAssignment,
|
setAssignment,
|
||||||
visibilityState,
|
visibilityState,
|
||||||
maxHours
|
maxHours
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const onChange = e => {
|
const onChange = e => {
|
||||||
setAssignment({ ...assignment, employeeid: e });
|
setAssignment({...assignment, employeeid: e});
|
||||||
};
|
};
|
||||||
|
|
||||||
const [visibility, setVisibility] = visibilityState;
|
const [visibility, setVisibility] = visibilityState;
|
||||||
@@ -29,7 +29,7 @@ export function AllocationsAssignmentComponent({
|
|||||||
<div>
|
<div>
|
||||||
<Select id="employeeSelector"
|
<Select id="employeeSelector"
|
||||||
showSearch
|
showSearch
|
||||||
style={{ width: 200 }}
|
style={{width: 200}}
|
||||||
placeholder='Select a person'
|
placeholder='Select a person'
|
||||||
optionFilterProp='children'
|
optionFilterProp='children'
|
||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
@@ -47,7 +47,7 @@ export function AllocationsAssignmentComponent({
|
|||||||
placeholder={t("joblines.fields.mod_lb_hrs")}
|
placeholder={t("joblines.fields.mod_lb_hrs")}
|
||||||
max={parseFloat(maxHours)}
|
max={parseFloat(maxHours)}
|
||||||
min={0}
|
min={0}
|
||||||
onChange={e => setAssignment({ ...assignment, hours: e })}
|
onChange={e => setAssignment({...assignment, hours: e})}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { mount } from "enzyme";
|
import {mount} from "enzyme";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { MockBodyshop } from "../../utils/TestingHelpers";
|
import {MockBodyshop} from "../../utils/TestingHelpers";
|
||||||
import { AllocationsAssignmentComponent } from "./allocations-assignment.component";
|
import {AllocationsAssignmentComponent} from "./allocations-assignment.component";
|
||||||
|
|
||||||
describe("AllocationsAssignmentComponent component", () => {
|
describe("AllocationsAssignmentComponent component", () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import AllocationsAssignmentComponent from "./allocations-assignment.component";
|
import AllocationsAssignmentComponent from "./allocations-assignment.component";
|
||||||
import { useMutation } from "@apollo/client";
|
import {useMutation} from "@apollo/client";
|
||||||
import { INSERT_ALLOCATION } from "../../graphql/allocations.queries";
|
import {INSERT_ALLOCATION} from "../../graphql/allocations.queries";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { notification } from "antd";
|
import {notification} from "antd";
|
||||||
|
|
||||||
export default function AllocationsAssignmentContainer({
|
export default function AllocationsAssignmentContainer({
|
||||||
jobLineId,
|
jobLineId,
|
||||||
hours,
|
hours,
|
||||||
refetch,
|
refetch,
|
||||||
}) {
|
}) {
|
||||||
const visibilityState = useState(false);
|
const visibilityState = useState(false);
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [assignment, setAssignment] = useState({
|
const [assignment, setAssignment] = useState({
|
||||||
joblineid: jobLineId,
|
joblineid: jobLineId,
|
||||||
hours: parseFloat(hours),
|
hours: parseFloat(hours),
|
||||||
@@ -20,7 +20,7 @@ export default function AllocationsAssignmentContainer({
|
|||||||
const [insertAllocation] = useMutation(INSERT_ALLOCATION);
|
const [insertAllocation] = useMutation(INSERT_ALLOCATION);
|
||||||
|
|
||||||
const handleAssignment = () => {
|
const handleAssignment = () => {
|
||||||
insertAllocation({ variables: { alloc: { ...assignment } } })
|
insertAllocation({variables: {alloc: {...assignment}}})
|
||||||
.then((r) => {
|
.then((r) => {
|
||||||
notification["success"]({
|
notification["success"]({
|
||||||
message: t("allocations.successes.save"),
|
message: t("allocations.successes.save"),
|
||||||
@@ -30,7 +30,7 @@ export default function AllocationsAssignmentContainer({
|
|||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
notification["error"]({
|
notification["error"]({
|
||||||
message: t("employees.errors.saving", { message: error.message }),
|
message: t("employees.errors.saving", {message: error.message}),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { Button, Popover, Select } from "antd";
|
import {Button, Popover, Select} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
@@ -19,11 +19,11 @@ export default connect(
|
|||||||
assignment,
|
assignment,
|
||||||
setAssignment,
|
setAssignment,
|
||||||
visibilityState,
|
visibilityState,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const onChange = (e) => {
|
const onChange = (e) => {
|
||||||
setAssignment({ ...assignment, employeeid: e });
|
setAssignment({...assignment, employeeid: e});
|
||||||
};
|
};
|
||||||
|
|
||||||
const [visibility, setVisibility] = visibilityState;
|
const [visibility, setVisibility] = visibilityState;
|
||||||
@@ -32,7 +32,7 @@ export default connect(
|
|||||||
<div>
|
<div>
|
||||||
<Select
|
<Select
|
||||||
showSearch
|
showSearch
|
||||||
style={{ width: 200 }}
|
style={{width: 200}}
|
||||||
placeholder="Select a person"
|
placeholder="Select a person"
|
||||||
optionFilterProp="children"
|
optionFilterProp="children"
|
||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import AllocationsBulkAssignment from "./allocations-bulk-assignment.component";
|
import AllocationsBulkAssignment from "./allocations-bulk-assignment.component";
|
||||||
import { useMutation } from "@apollo/client";
|
import {useMutation} from "@apollo/client";
|
||||||
import { INSERT_ALLOCATION } from "../../graphql/allocations.queries";
|
import {INSERT_ALLOCATION} from "../../graphql/allocations.queries";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { notification } from "antd";
|
import {notification} from "antd";
|
||||||
|
|
||||||
export default function AllocationsBulkAssignmentContainer({
|
export default function AllocationsBulkAssignmentContainer({
|
||||||
jobLines,
|
jobLines,
|
||||||
refetch,
|
refetch,
|
||||||
}) {
|
}) {
|
||||||
const visibilityState = useState(false);
|
const visibilityState = useState(false);
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [assignment, setAssignment] = useState({
|
const [assignment, setAssignment] = useState({
|
||||||
employeeid: null,
|
employeeid: null,
|
||||||
});
|
});
|
||||||
@@ -26,7 +26,7 @@ export default function AllocationsBulkAssignmentContainer({
|
|||||||
return acc;
|
return acc;
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
insertAllocation({ variables: { alloc: allocs } }).then((r) => {
|
insertAllocation({variables: {alloc: allocs}}).then((r) => {
|
||||||
notification["success"]({
|
notification["success"]({
|
||||||
message: t("employees.successes.save"),
|
message: t("employees.successes.save"),
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import Icon from "@ant-design/icons";
|
import Icon from "@ant-design/icons";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { MdRemoveCircleOutline } from "react-icons/md";
|
import {MdRemoveCircleOutline} from "react-icons/md";
|
||||||
|
|
||||||
export default function AllocationsLabelComponent({ allocation, handleClick }) {
|
export default function AllocationsLabelComponent({allocation, handleClick}) {
|
||||||
return (
|
return (
|
||||||
<div style={{ display: "flex", alignItems: "center" }}>
|
<div style={{display: "flex", alignItems: "center"}}>
|
||||||
<span>
|
<span>
|
||||||
{`${allocation.employee.first_name || ""} ${
|
{`${allocation.employee.first_name || ""} ${
|
||||||
allocation.employee.last_name || ""
|
allocation.employee.last_name || ""
|
||||||
} (${allocation.hours || ""})`}
|
} (${allocation.hours || ""})`}
|
||||||
</span>
|
</span>
|
||||||
<Icon
|
<Icon
|
||||||
style={{ color: "red", padding: "0px 4px" }}
|
style={{color: "red", padding: "0px 4px"}}
|
||||||
component={MdRemoveCircleOutline}
|
component={MdRemoveCircleOutline}
|
||||||
onClick={handleClick}
|
onClick={handleClick}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { useMutation } from "@apollo/client";
|
import {useMutation} from "@apollo/client";
|
||||||
import { DELETE_ALLOCATION } from "../../graphql/allocations.queries";
|
import {DELETE_ALLOCATION} from "../../graphql/allocations.queries";
|
||||||
import AllocationsLabelComponent from "./allocations-employee-label.component";
|
import AllocationsLabelComponent from "./allocations-employee-label.component";
|
||||||
import { notification } from "antd";
|
import {notification} from "antd";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
|
|
||||||
export default function AllocationsLabelContainer({ allocation, refetch }) {
|
export default function AllocationsLabelContainer({allocation, refetch}) {
|
||||||
const [deleteAllocation] = useMutation(DELETE_ALLOCATION);
|
const [deleteAllocation] = useMutation(DELETE_ALLOCATION);
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const handleClick = (e) => {
|
const handleClick = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
deleteAllocation({ variables: { id: allocation.id } })
|
deleteAllocation({variables: {id: allocation.id}})
|
||||||
.then((r) => {
|
.then((r) => {
|
||||||
notification["success"]({
|
notification["success"]({
|
||||||
message: t("allocations.successes.deleted"),
|
message: t("allocations.successes.deleted"),
|
||||||
@@ -19,7 +19,7 @@ export default function AllocationsLabelContainer({ allocation, refetch }) {
|
|||||||
if (refetch) refetch();
|
if (refetch) refetch();
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
notification["error"]({ message: t("allocations.errors.deleting") });
|
notification["error"]({message: t("allocations.errors.deleting")});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { Table } from "antd";
|
import {Table} from "antd";
|
||||||
import { alphaSort } from "../../utils/sorters";
|
import {alphaSort} from "../../utils/sorters";
|
||||||
import { DateTimeFormatter } from "../../utils/DateFormatter";
|
import {DateTimeFormatter} from "../../utils/DateFormatter";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import AuditTrailValuesComponent from "../audit-trail-values/audit-trail-values.component";
|
import AuditTrailValuesComponent from "../audit-trail-values/audit-trail-values.component";
|
||||||
import {pageLimit} from "../../utils/config";
|
import {pageLimit} from "../../utils/config";
|
||||||
|
|
||||||
export default function AuditTrailListComponent({ loading, data }) {
|
export default function AuditTrailListComponent({loading, data}) {
|
||||||
const [state, setState] = useState({
|
const [state, setState] = useState({
|
||||||
sortedInfo: {},
|
sortedInfo: {},
|
||||||
filteredInfo: {},
|
filteredInfo: {},
|
||||||
});
|
});
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
title: t("audit.fields.created"),
|
title: t("audit.fields.created"),
|
||||||
@@ -59,23 +59,23 @@ export default function AuditTrailListComponent({ loading, data }) {
|
|||||||
|
|
||||||
const formItemLayout = {
|
const formItemLayout = {
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: { span: 12 },
|
xs: {span: 12},
|
||||||
sm: { span: 5 },
|
sm: {span: 5},
|
||||||
},
|
},
|
||||||
wrapperCol: {
|
wrapperCol: {
|
||||||
xs: { span: 24 },
|
xs: {span: 24},
|
||||||
sm: { span: 12 },
|
sm: {span: 12},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({...state, filteredInfo: filters, sortedInfo: sorter});
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Table
|
<Table
|
||||||
{...formItemLayout}
|
{...formItemLayout}
|
||||||
loading={loading}
|
loading={loading}
|
||||||
pagination={{ position: "top", defaultPageSize: pageLimit }}
|
pagination={{position: "top", defaultPageSize: pageLimit}}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
dataSource={data}
|
dataSource={data}
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import AuditTrailListComponent from "./audit-trail-list.component";
|
import AuditTrailListComponent from "./audit-trail-list.component";
|
||||||
import { useQuery } from "@apollo/client";
|
import {useQuery} from "@apollo/client";
|
||||||
import { QUERY_AUDIT_TRAIL } from "../../graphql/audit_trail.queries";
|
import {QUERY_AUDIT_TRAIL} from "../../graphql/audit_trail.queries";
|
||||||
import AlertComponent from "../alert/alert.component";
|
import AlertComponent from "../alert/alert.component";
|
||||||
import { logImEXEvent } from "../../firebase/firebase.utils";
|
import {logImEXEvent} from "../../firebase/firebase.utils";
|
||||||
import EmailAuditTrailListComponent from "./email-audit-trail-list.component";
|
import EmailAuditTrailListComponent from "./email-audit-trail-list.component";
|
||||||
import { Card, Row } from "antd";
|
import {Card, Row} from "antd";
|
||||||
|
|
||||||
export default function AuditTrailListContainer({ recordId }) {
|
export default function AuditTrailListContainer({recordId}) {
|
||||||
const { loading, error, data } = useQuery(QUERY_AUDIT_TRAIL, {
|
const {loading, error, data} = useQuery(QUERY_AUDIT_TRAIL, {
|
||||||
variables: { id: recordId },
|
variables: {id: recordId},
|
||||||
fetchPolicy: "network-only",
|
fetchPolicy: "network-only",
|
||||||
nextFetchPolicy: "network-only",
|
nextFetchPolicy: "network-only",
|
||||||
});
|
});
|
||||||
|
|
||||||
logImEXEvent("audittrail_view", { recordId });
|
logImEXEvent("audittrail_view", {recordId});
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{error ? (
|
{error ? (
|
||||||
<AlertComponent type="error" message={error.message} />
|
<AlertComponent type="error" message={error.message}/>
|
||||||
) : (
|
) : (
|
||||||
<Row gutter={[16, 16]}>
|
<Row gutter={[16, 16]}>
|
||||||
<Card>
|
<Card>
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import { Table } from "antd";
|
import {Table} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { DateTimeFormatter } from "../../utils/DateFormatter";
|
import {DateTimeFormatter} from "../../utils/DateFormatter";
|
||||||
import { alphaSort } from "../../utils/sorters";
|
import {alphaSort} from "../../utils/sorters";
|
||||||
import {pageLimit} from "../../utils/config";
|
import {pageLimit} from "../../utils/config";
|
||||||
|
|
||||||
export default function EmailAuditTrailListComponent({ loading, data }) {
|
export default function EmailAuditTrailListComponent({loading, data}) {
|
||||||
const [state, setState] = useState({
|
const [state, setState] = useState({
|
||||||
sortedInfo: {},
|
sortedInfo: {},
|
||||||
filteredInfo: {},
|
filteredInfo: {},
|
||||||
});
|
});
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
title: t("audit.fields.created"),
|
title: t("audit.fields.created"),
|
||||||
@@ -38,23 +38,23 @@ export default function EmailAuditTrailListComponent({ loading, data }) {
|
|||||||
|
|
||||||
const formItemLayout = {
|
const formItemLayout = {
|
||||||
labelCol: {
|
labelCol: {
|
||||||
xs: { span: 12 },
|
xs: {span: 12},
|
||||||
sm: { span: 5 },
|
sm: {span: 5},
|
||||||
},
|
},
|
||||||
wrapperCol: {
|
wrapperCol: {
|
||||||
xs: { span: 24 },
|
xs: {span: 24},
|
||||||
sm: { span: 12 },
|
sm: {span: 12},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({...state, filteredInfo: filters, sortedInfo: sorter});
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Table
|
<Table
|
||||||
{...formItemLayout}
|
{...formItemLayout}
|
||||||
loading={loading}
|
loading={loading}
|
||||||
pagination={{ position: "top", defaultPageSize: pageLimit }}
|
pagination={{position: "top", defaultPageSize: pageLimit}}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
dataSource={data}
|
dataSource={data}
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { List } from "antd";
|
import {List} from "antd";
|
||||||
import Icon from "@ant-design/icons";
|
import Icon from "@ant-design/icons";
|
||||||
import { FaArrowRight } from "react-icons/fa";
|
import {FaArrowRight} from "react-icons/fa";
|
||||||
export default function AuditTrailValuesComponent({ oldV, newV }) {
|
|
||||||
|
export default function AuditTrailValuesComponent({oldV, newV}) {
|
||||||
if (!oldV && !newV) return <div></div>;
|
if (!oldV && !newV) return <div></div>;
|
||||||
|
|
||||||
if (!oldV && newV)
|
if (!oldV && newV)
|
||||||
return (
|
return (
|
||||||
<List style={{ width: "800px" }} bordered size='small'>
|
<List style={{width: "800px"}} bordered size='small'>
|
||||||
{Object.keys(newV).map((key, idx) => (
|
{Object.keys(newV).map((key, idx) => (
|
||||||
<List.Item key={idx} value={key}>
|
<List.Item key={idx} value={key}>
|
||||||
{key}: {JSON.stringify(newV[key])}
|
{key}: {JSON.stringify(newV[key])}
|
||||||
@@ -17,10 +18,10 @@ export default function AuditTrailValuesComponent({ oldV, newV }) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<List style={{ width: "800px" }} bordered size='small'>
|
<List style={{width: "800px"}} bordered size='small'>
|
||||||
{Object.keys(oldV).map((key, idx) => (
|
{Object.keys(oldV).map((key, idx) => (
|
||||||
<List.Item key={idx}>
|
<List.Item key={idx}>
|
||||||
{key}: {oldV[key]} <Icon component={FaArrowRight} />
|
{key}: {oldV[key]} <Icon component={FaArrowRight}/>
|
||||||
{JSON.stringify(newV[key])}
|
{JSON.stringify(newV[key])}
|
||||||
</List.Item>
|
</List.Item>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import { Tag, Popover } from "antd";
|
import {Popover, Tag} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import Barcode from "react-barcode";
|
import Barcode from "react-barcode";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
export default function BarcodePopupComponent({ value, children }) {
|
|
||||||
const { t } = useTranslation();
|
export default function BarcodePopupComponent({value, children}) {
|
||||||
|
const {t} = useTranslation();
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<Popover
|
<Popover
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
import { Checkbox, Form, Skeleton, Typography } from "antd";
|
import {Checkbox, Form, Skeleton, Typography} from "antd";
|
||||||
import React, { useEffect } from "react";
|
import React, {useEffect} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import ReadOnlyFormItemComponent from "../form-items-formatted/read-only-form-item.component";
|
import ReadOnlyFormItemComponent from "../form-items-formatted/read-only-form-item.component";
|
||||||
import "./bill-cm-returns-table.styles.scss";
|
import "./bill-cm-returns-table.styles.scss";
|
||||||
|
|
||||||
export default function BillCmdReturnsTableComponent({
|
export default function BillCmdReturnsTableComponent({
|
||||||
form,
|
form,
|
||||||
returnLoading,
|
returnLoading,
|
||||||
returnData,
|
returnData,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (returnData) {
|
if (returnData) {
|
||||||
@@ -34,11 +35,11 @@ export default function BillCmdReturnsTableComponent({
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (returnLoading) return <Skeleton />;
|
if (returnLoading) return <Skeleton/>;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form.List name="outstanding_returns">
|
<Form.List name="outstanding_returns">
|
||||||
{(fields, { add, remove, move }) => {
|
{(fields, {add, remove, move}) => {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Typography.Title level={4}>
|
<Typography.Title level={4}>
|
||||||
@@ -64,7 +65,7 @@ export default function BillCmdReturnsTableComponent({
|
|||||||
key={`${index}line_desc`}
|
key={`${index}line_desc`}
|
||||||
name={[field.name, "line_desc"]}
|
name={[field.name, "line_desc"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ export default function BillCmdReturnsTableComponent({
|
|||||||
key={`${index}part_type`}
|
key={`${index}part_type`}
|
||||||
name={[field.name, "part_type"]}
|
name={[field.name, "part_type"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -85,7 +86,7 @@ export default function BillCmdReturnsTableComponent({
|
|||||||
key={`${index}quantity`}
|
key={`${index}quantity`}
|
||||||
name={[field.name, "quantity"]}
|
name={[field.name, "quantity"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -95,7 +96,7 @@ export default function BillCmdReturnsTableComponent({
|
|||||||
key={`${index}act_price`}
|
key={`${index}act_price`}
|
||||||
name={[field.name, "act_price"]}
|
name={[field.name, "act_price"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent type="currency" />
|
<ReadOnlyFormItemComponent type="currency"/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -105,7 +106,7 @@ export default function BillCmdReturnsTableComponent({
|
|||||||
key={`${index}cost`}
|
key={`${index}cost`}
|
||||||
name={[field.name, "cost"]}
|
name={[field.name, "cost"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent type="currency" />
|
<ReadOnlyFormItemComponent type="currency"/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
@@ -117,7 +118,7 @@ export default function BillCmdReturnsTableComponent({
|
|||||||
name={[field.name, "cm_received"]}
|
name={[field.name, "cm_received"]}
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
>
|
>
|
||||||
<Checkbox />
|
<Checkbox/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
import { DeleteFilled } from "@ant-design/icons";
|
import {DeleteFilled} from "@ant-design/icons";
|
||||||
import { useMutation } from "@apollo/client";
|
import {useMutation} from "@apollo/client";
|
||||||
import { Button, notification, Popconfirm } from "antd";
|
import {Button, notification, Popconfirm} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { DELETE_BILL } from "../../graphql/bills.queries";
|
import {DELETE_BILL} from "../../graphql/bills.queries";
|
||||||
import RbacWrapper from "../rbac-wrapper/rbac-wrapper.component";
|
import RbacWrapper from "../rbac-wrapper/rbac-wrapper.component";
|
||||||
|
|
||||||
export default function BillDeleteButton({ bill, callback }) {
|
export default function BillDeleteButton({bill, callback}) {
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [deleteBill] = useMutation(DELETE_BILL);
|
const [deleteBill] = useMutation(DELETE_BILL);
|
||||||
|
|
||||||
const handleDelete = async () => {
|
const handleDelete = async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
const result = await deleteBill({
|
const result = await deleteBill({
|
||||||
variables: { billId: bill.id },
|
variables: {billId: bill.id},
|
||||||
update(cache, { errors }) {
|
update(cache, {errors}) {
|
||||||
if (errors) return;
|
if (errors) return;
|
||||||
cache.modify({
|
cache.modify({
|
||||||
fields: {
|
fields: {
|
||||||
bills(existingBills, { readField }) {
|
bills(existingBills, {readField}) {
|
||||||
return existingBills.filter(
|
return existingBills.filter(
|
||||||
(billref) => bill.id !== readField("id", billref)
|
(billref) => bill.id !== readField("id", billref)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
search_bills(existingBills, { readField }) {
|
search_bills(existingBills, {readField}) {
|
||||||
return existingBills.filter(
|
return existingBills.filter(
|
||||||
(billref) => bill.id !== readField("id", billref)
|
(billref) => bill.id !== readField("id", billref)
|
||||||
);
|
);
|
||||||
@@ -35,7 +35,7 @@ export default function BillDeleteButton({ bill, callback }) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!!!result.errors) {
|
if (!!!result.errors) {
|
||||||
notification["success"]({ message: t("bills.successes.deleted") });
|
notification["success"]({message: t("bills.successes.deleted")});
|
||||||
|
|
||||||
if (callback && typeof callback === "function") callback(bill.id);
|
if (callback && typeof callback === "function") callback(bill.id);
|
||||||
} else {
|
} else {
|
||||||
@@ -72,7 +72,7 @@ export default function BillDeleteButton({ bill, callback }) {
|
|||||||
// onClick={handleDelete}
|
// onClick={handleDelete}
|
||||||
loading={loading}
|
loading={loading}
|
||||||
>
|
>
|
||||||
<DeleteFilled />
|
<DeleteFilled/>
|
||||||
</Button>
|
</Button>
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
</RbacWrapper>
|
</RbacWrapper>
|
||||||
|
|||||||
@@ -2,20 +2,16 @@ import {useMutation, useQuery} from "@apollo/client";
|
|||||||
import {Button, Form, Popconfirm, Space} from "antd";
|
import {Button, Form, Popconfirm, Space} from "antd";
|
||||||
import dayjs from "../../utils/day";
|
import dayjs from "../../utils/day";
|
||||||
import queryString from "query-string";
|
import queryString from "query-string";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { useLocation } from "react-router-dom";
|
import {useLocation} from "react-router-dom";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import {
|
import {DELETE_BILL_LINE, INSERT_NEW_BILL_LINES, UPDATE_BILL_LINE} from "../../graphql/bill-lines.queries";
|
||||||
DELETE_BILL_LINE,
|
import {QUERY_BILL_BY_PK, UPDATE_BILL} from "../../graphql/bills.queries";
|
||||||
INSERT_NEW_BILL_LINES,
|
import {insertAuditTrail} from "../../redux/application/application.actions";
|
||||||
UPDATE_BILL_LINE
|
import {setModalContext} from "../../redux/modals/modals.actions";
|
||||||
} from "../../graphql/bill-lines.queries";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import { QUERY_BILL_BY_PK, UPDATE_BILL } from "../../graphql/bills.queries";
|
|
||||||
import { insertAuditTrail } from "../../redux/application/application.actions";
|
|
||||||
import { setModalContext } from "../../redux/modals/modals.actions";
|
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
|
||||||
import AuditTrailMapping from "../../utils/AuditTrailMappings";
|
import AuditTrailMapping from "../../utils/AuditTrailMappings";
|
||||||
import AlertComponent from "../alert/alert.component";
|
import AlertComponent from "../alert/alert.component";
|
||||||
import BillFormContainer from "../bill-form/bill-form.container";
|
import BillFormContainer from "../bill-form/bill-form.container";
|
||||||
@@ -165,7 +161,7 @@ export function BillDetailEditcontainer({setPartsOrderContext, insertAuditTrail,
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{loading && <LoadingSkeleton />}
|
{loading && <LoadingSkeleton/>}
|
||||||
{data && (
|
{data && (
|
||||||
<>
|
<>
|
||||||
<PageHeader
|
<PageHeader
|
||||||
@@ -175,13 +171,13 @@ export function BillDetailEditcontainer({setPartsOrderContext, insertAuditTrail,
|
|||||||
}
|
}
|
||||||
extra={
|
extra={
|
||||||
<Space>
|
<Space>
|
||||||
<BillDetailEditReturn data={data} />
|
<BillDetailEditReturn data={data}/>
|
||||||
<BillPrintButton billid={search.billid} />
|
<BillPrintButton billid={search.billid}/>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
open={open}
|
open={open}
|
||||||
onConfirm={() => form.submit()}
|
onConfirm={() => form.submit()}
|
||||||
onCancel={() => setOpen(false)}
|
onCancel={() => setOpen(false)}
|
||||||
okButtonProps={{ loading: updateLoading }}
|
okButtonProps={{loading: updateLoading}}
|
||||||
title={t("bills.labels.editadjwarning")}
|
title={t("bills.labels.editadjwarning")}
|
||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
@@ -194,8 +190,8 @@ export function BillDetailEditcontainer({setPartsOrderContext, insertAuditTrail,
|
|||||||
{t("general.actions.save")}
|
{t("general.actions.save")}
|
||||||
</Button>
|
</Button>
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
<BillReeportButtonComponent bill={data && data.bills_by_pk} />
|
<BillReeportButtonComponent bill={data && data.bills_by_pk}/>
|
||||||
<BillMarkExportedButton bill={data && data.bills_by_pk} />
|
<BillMarkExportedButton bill={data && data.bills_by_pk}/>
|
||||||
</Space>
|
</Space>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
@@ -205,7 +201,7 @@ export function BillDetailEditcontainer({setPartsOrderContext, insertAuditTrail,
|
|||||||
initialValues={transformData(data)}
|
initialValues={transformData(data)}
|
||||||
layout="vertical"
|
layout="vertical"
|
||||||
>
|
>
|
||||||
<BillFormContainer form={form} billEdit disabled={exported} />
|
<BillFormContainer form={form} billEdit disabled={exported}/>
|
||||||
|
|
||||||
{bodyshop.uselocalmediaserver ? (
|
{bodyshop.uselocalmediaserver ? (
|
||||||
<JobsDocumentsLocalGallery
|
<JobsDocumentsLocalGallery
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { Button, Checkbox, Form, Modal } from "antd";
|
import {Button, Checkbox, Form, Modal} from "antd";
|
||||||
import queryString from "query-string";
|
import queryString from "query-string";
|
||||||
import React, { useEffect, useState } from "react";
|
import React, {useEffect, useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { useLocation, useNavigate } from "react-router-dom";
|
import {useLocation, useNavigate} from "react-router-dom";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { insertAuditTrail } from "../../redux/application/application.actions";
|
import {insertAuditTrail} from "../../redux/application/application.actions";
|
||||||
import { setModalContext } from "../../redux/modals/modals.actions";
|
import {setModalContext} from "../../redux/modals/modals.actions";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import ReadOnlyFormItemComponent from "../form-items-formatted/read-only-form-item.component";
|
import ReadOnlyFormItemComponent from "../form-items-formatted/read-only-form-item.component";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
@@ -15,9 +15,9 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
});
|
});
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setPartsOrderContext: (context) =>
|
setPartsOrderContext: (context) =>
|
||||||
dispatch(setModalContext({ context: context, modal: "partsOrder" })),
|
dispatch(setModalContext({context: context, modal: "partsOrder"})),
|
||||||
insertAuditTrail: ({ jobid, operation }) =>
|
insertAuditTrail: ({jobid, operation}) =>
|
||||||
dispatch(insertAuditTrail({ jobid, operation })),
|
dispatch(insertAuditTrail({jobid, operation})),
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(
|
export default connect(
|
||||||
@@ -31,14 +31,14 @@ export function BillDetailEditReturn({
|
|||||||
bodyshop,
|
bodyshop,
|
||||||
data,
|
data,
|
||||||
disabled,
|
disabled,
|
||||||
}) {
|
}) {
|
||||||
const search = queryString.parse(useLocation().search);
|
const search = queryString.parse(useLocation().search);
|
||||||
const history = useNavigate();
|
const history = useNavigate();
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
|
|
||||||
const handleFinish = ({ billlines }) => {
|
const handleFinish = ({billlines}) => {
|
||||||
const selectedLines = billlines.filter((l) => l.selected).map((l) => l.id);
|
const selectedLines = billlines.filter((l) => l.selected).map((l) => l.id);
|
||||||
|
|
||||||
setPartsOrderContext({
|
setPartsOrderContext({
|
||||||
@@ -67,7 +67,7 @@ export function BillDetailEditReturn({
|
|||||||
});
|
});
|
||||||
delete search.billid;
|
delete search.billid;
|
||||||
|
|
||||||
history({ search: queryString.stringify(search) });
|
history({search: queryString.stringify(search)});
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
};
|
};
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -89,9 +89,9 @@ export function BillDetailEditReturn({
|
|||||||
form={form}
|
form={form}
|
||||||
>
|
>
|
||||||
<Form.List name={["billlines"]}>
|
<Form.List name={["billlines"]}>
|
||||||
{(fields, { add, remove, move }) => {
|
{(fields, {add, remove, move}) => {
|
||||||
return (
|
return (
|
||||||
<table style={{ tableLayout: "auto", width: "100%" }}>
|
<table style={{tableLayout: "auto", width: "100%"}}>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
@@ -124,7 +124,7 @@ export function BillDetailEditReturn({
|
|||||||
name={[field.name, "selected"]}
|
name={[field.name, "selected"]}
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
>
|
>
|
||||||
<Checkbox />
|
<Checkbox/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -133,7 +133,7 @@ export function BillDetailEditReturn({
|
|||||||
key={`${index}line_desc`}
|
key={`${index}line_desc`}
|
||||||
name={[field.name, "line_desc"]}
|
name={[field.name, "line_desc"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -142,7 +142,7 @@ export function BillDetailEditReturn({
|
|||||||
key={`${index}quantity`}
|
key={`${index}quantity`}
|
||||||
name={[field.name, "quantity"]}
|
name={[field.name, "quantity"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -151,7 +151,7 @@ export function BillDetailEditReturn({
|
|||||||
key={`${index}actual_price`}
|
key={`${index}actual_price`}
|
||||||
name={[field.name, "actual_price"]}
|
name={[field.name, "actual_price"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent type="currency" />
|
<ReadOnlyFormItemComponent type="currency"/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -160,7 +160,7 @@ export function BillDetailEditReturn({
|
|||||||
key={`${index}actual_cost`}
|
key={`${index}actual_cost`}
|
||||||
name={[field.name, "actual_cost"]}
|
name={[field.name, "actual_cost"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent type="currency" />
|
<ReadOnlyFormItemComponent type="currency"/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Drawer, Grid } from "antd";
|
import {Drawer, Grid} from "antd";
|
||||||
import queryString from "query-string";
|
import queryString from "query-string";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useLocation, useNavigate } from "react-router-dom";
|
import {useLocation, useNavigate} from "react-router-dom";
|
||||||
import BillDetailEditComponent from "./bill-detail-edit-component";
|
import BillDetailEditComponent from "./bill-detail-edit-component";
|
||||||
|
|
||||||
export default function BillDetailEditcontainer() {
|
export default function BillDetailEditcontainer() {
|
||||||
@@ -29,12 +29,12 @@ export default function BillDetailEditcontainer() {
|
|||||||
width={drawerPercentage}
|
width={drawerPercentage}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
delete search.billid;
|
delete search.billid;
|
||||||
history({ search: queryString.stringify(search) });
|
history({search: queryString.stringify(search)});
|
||||||
}}
|
}}
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
open={search.billid}
|
open={search.billid}
|
||||||
>
|
>
|
||||||
<BillDetailEditComponent />
|
<BillDetailEditComponent/>
|
||||||
</Drawer>
|
</Drawer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,34 +1,28 @@
|
|||||||
import { useApolloClient, useMutation } from "@apollo/client";
|
import {useApolloClient, useMutation} from "@apollo/client";
|
||||||
import { Button, Checkbox, Form, Modal, Space, notification } from "antd";
|
import {Button, Checkbox, Form, Modal, notification, Space} from "antd";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import React, { useEffect, useMemo, useState } from "react";
|
import React, {useEffect, useMemo, useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { INSERT_NEW_BILL } from "../../graphql/bills.queries";
|
import {INSERT_NEW_BILL} from "../../graphql/bills.queries";
|
||||||
import { UPDATE_INVENTORY_LINES } from "../../graphql/inventory.queries";
|
import {UPDATE_INVENTORY_LINES} from "../../graphql/inventory.queries";
|
||||||
import { UPDATE_JOB_LINE } from "../../graphql/jobs-lines.queries";
|
import {UPDATE_JOB_LINE} from "../../graphql/jobs-lines.queries";
|
||||||
import {
|
import {QUERY_JOB_LBR_ADJUSTMENTS, UPDATE_JOB,} from "../../graphql/jobs.queries";
|
||||||
QUERY_JOB_LBR_ADJUSTMENTS,
|
import {MUTATION_MARK_RETURN_RECEIVED} from "../../graphql/parts-orders.queries";
|
||||||
UPDATE_JOB,
|
import {insertAuditTrail} from "../../redux/application/application.actions";
|
||||||
} from "../../graphql/jobs.queries";
|
import {toggleModalVisible} from "../../redux/modals/modals.actions";
|
||||||
import { MUTATION_MARK_RETURN_RECEIVED } from "../../graphql/parts-orders.queries";
|
import {selectBillEnterModal} from "../../redux/modals/modals.selectors";
|
||||||
import { insertAuditTrail } from "../../redux/application/application.actions";
|
import {selectBodyshop, selectCurrentUser,} from "../../redux/user/user.selectors";
|
||||||
import { toggleModalVisible } from "../../redux/modals/modals.actions";
|
|
||||||
import { selectBillEnterModal } from "../../redux/modals/modals.selectors";
|
|
||||||
import {
|
|
||||||
selectBodyshop,
|
|
||||||
selectCurrentUser,
|
|
||||||
} from "../../redux/user/user.selectors";
|
|
||||||
import AuditTrailMapping from "../../utils/AuditTrailMappings";
|
import AuditTrailMapping from "../../utils/AuditTrailMappings";
|
||||||
import { GenerateDocument } from "../../utils/RenderTemplate";
|
import {GenerateDocument} from "../../utils/RenderTemplate";
|
||||||
import { TemplateList } from "../../utils/TemplateConstants";
|
import {TemplateList} from "../../utils/TemplateConstants";
|
||||||
import confirmDialog from "../../utils/asyncConfirm";
|
import confirmDialog from "../../utils/asyncConfirm";
|
||||||
import useLocalStorage from "../../utils/useLocalStorage";
|
import useLocalStorage from "../../utils/useLocalStorage";
|
||||||
import BillFormContainer from "../bill-form/bill-form.container";
|
import BillFormContainer from "../bill-form/bill-form.container";
|
||||||
import { CalculateBillTotal } from "../bill-form/bill-form.totals.utility";
|
import {CalculateBillTotal} from "../bill-form/bill-form.totals.utility";
|
||||||
import { handleUpload as handleLocalUpload } from "../documents-local-upload/documents-local-upload.utility";
|
import {handleUpload as handleLocalUpload} from "../documents-local-upload/documents-local-upload.utility";
|
||||||
import { handleUpload } from "../documents-upload/documents-upload.utility";
|
import {handleUpload} from "../documents-upload/documents-upload.utility";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
billEnterModal: selectBillEnterModal,
|
billEnterModal: selectBillEnterModal,
|
||||||
@@ -37,8 +31,8 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
});
|
});
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
toggleModalVisible: () => dispatch(toggleModalVisible("billEnter")),
|
toggleModalVisible: () => dispatch(toggleModalVisible("billEnter")),
|
||||||
insertAuditTrail: ({ jobid, billid, operation }) =>
|
insertAuditTrail: ({jobid, billid, operation}) =>
|
||||||
dispatch(insertAuditTrail({ jobid, billid, operation })),
|
dispatch(insertAuditTrail({jobid, billid, operation})),
|
||||||
});
|
});
|
||||||
|
|
||||||
const Templates = TemplateList("job_special");
|
const Templates = TemplateList("job_special");
|
||||||
@@ -49,9 +43,9 @@ function BillEnterModalContainer({
|
|||||||
bodyshop,
|
bodyshop,
|
||||||
currentUser,
|
currentUser,
|
||||||
insertAuditTrail,
|
insertAuditTrail,
|
||||||
}) {
|
}) {
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [enterAgain, setEnterAgain] = useState(false);
|
const [enterAgain, setEnterAgain] = useState(false);
|
||||||
const [insertBill] = useMutation(INSERT_NEW_BILL);
|
const [insertBill] = useMutation(INSERT_NEW_BILL);
|
||||||
const [updateJobLines] = useMutation(UPDATE_JOB_LINE);
|
const [updateJobLines] = useMutation(UPDATE_JOB_LINE);
|
||||||
@@ -177,7 +171,7 @@ function BillEnterModalContainer({
|
|||||||
mutation: UPDATE_JOB,
|
mutation: UPDATE_JOB,
|
||||||
variables: {
|
variables: {
|
||||||
jobId: values.jobid,
|
jobId: values.jobid,
|
||||||
job: { lbr_adjustments: newAdjustments },
|
job: {lbr_adjustments: newAdjustments},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
if (!!jobUpdate.errors) {
|
if (!!jobUpdate.errors) {
|
||||||
@@ -196,7 +190,7 @@ function BillEnterModalContainer({
|
|||||||
|
|
||||||
if (markPolReceived && markPolReceived.length > 0) {
|
if (markPolReceived && markPolReceived.length > 0) {
|
||||||
const r2 = await updatePartsOrderLines({
|
const r2 = await updatePartsOrderLines({
|
||||||
variables: { partsLineIds: markPolReceived.map((p) => p.id) },
|
variables: {partsLineIds: markPolReceived.map((p) => p.id)},
|
||||||
});
|
});
|
||||||
if (!!r2.errors) {
|
if (!!r2.errors) {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
@@ -268,7 +262,7 @@ function BillEnterModalContainer({
|
|||||||
if (bodyshop.uselocalmediaserver) {
|
if (bodyshop.uselocalmediaserver) {
|
||||||
upload.forEach((u) => {
|
upload.forEach((u) => {
|
||||||
handleLocalUpload({
|
handleLocalUpload({
|
||||||
ev: { file: u.originFileObj },
|
ev: {file: u.originFileObj},
|
||||||
context: {
|
context: {
|
||||||
jobid: values.jobid,
|
jobid: values.jobid,
|
||||||
invoice_number: remainingValues.invoice_number,
|
invoice_number: remainingValues.invoice_number,
|
||||||
@@ -279,7 +273,7 @@ function BillEnterModalContainer({
|
|||||||
} else {
|
} else {
|
||||||
upload.forEach((u) => {
|
upload.forEach((u) => {
|
||||||
handleUpload(
|
handleUpload(
|
||||||
{ file: u.originFileObj },
|
{file: u.originFileObj},
|
||||||
{
|
{
|
||||||
bodyshop: bodyshop,
|
bodyshop: bodyshop,
|
||||||
uploaded_by: currentUser.email,
|
uploaded_by: currentUser.email,
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
import { Form, Input, Table } from "antd";
|
import {Form, Input, Table} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import { alphaSort } from "../../utils/sorters";
|
import {alphaSort} from "../../utils/sorters";
|
||||||
import BillFormItemsExtendedFormItem from "./bill-form-lines.extended.formitem.component";
|
import BillFormItemsExtendedFormItem from "./bill-form-lines.extended.formitem.component";
|
||||||
|
|
||||||
export default function BillFormLinesExtended({
|
export default function BillFormLinesExtended({
|
||||||
lineData,
|
lineData,
|
||||||
discount,
|
discount,
|
||||||
form,
|
form,
|
||||||
responsibilityCenters,
|
responsibilityCenters,
|
||||||
disabled,
|
disabled,
|
||||||
}) {
|
}) {
|
||||||
const [search, setSearch] = useState("");
|
const [search, setSearch] = useState("");
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
title: t("joblines.fields.line_desc"),
|
title: t("joblines.fields.line_desc"),
|
||||||
@@ -79,7 +80,7 @@ export default function BillFormLinesExtended({
|
|||||||
{record.part_qty ? `(x ${record.part_qty})` : null}
|
{record.part_qty ? `(x ${record.part_qty})` : null}
|
||||||
{record.prt_dsmk_p && record.prt_dsmk_p !== 0 ? (
|
{record.prt_dsmk_p && record.prt_dsmk_p !== 0 ? (
|
||||||
<span
|
<span
|
||||||
style={{ marginLeft: ".2rem" }}
|
style={{marginLeft: ".2rem"}}
|
||||||
>{`(${record.prt_dsmk_p}%)`}</span>
|
>{`(${record.prt_dsmk_p}%)`}</span>
|
||||||
) : (
|
) : (
|
||||||
<></>
|
<></>
|
||||||
@@ -122,7 +123,7 @@ export default function BillFormLinesExtended({
|
|||||||
return (
|
return (
|
||||||
<Form.Item noStyle name="billlineskeys">
|
<Form.Item noStyle name="billlineskeys">
|
||||||
<button onClick={() => console.log(form.getFieldsValue())}>form</button>
|
<button onClick={() => console.log(form.getFieldsValue())}>form</button>
|
||||||
<Input onChange={(e) => setSearch(e.target.value)} allowClear />
|
<Input onChange={(e) => setSearch(e.target.value)} allowClear/>
|
||||||
<Table
|
<Table
|
||||||
pagination={false}
|
pagination={false}
|
||||||
size="small"
|
size="small"
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ import {
|
|||||||
MinusCircleFilled,
|
MinusCircleFilled,
|
||||||
WarningOutlined,
|
WarningOutlined,
|
||||||
} from "@ant-design/icons";
|
} from "@ant-design/icons";
|
||||||
import { Form, Button, InputNumber, Input, Select, Switch, Space } from "antd";
|
import {Form, Button, InputNumber, Input, Select, Switch, Space} from "antd";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
|
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import CurrencyInput from "../form-items-formatted/currency-form-item.component";
|
import CurrencyInput from "../form-items-formatted/currency-form-item.component";
|
||||||
import CiecaSelect from "../../utils/Ciecaselect";
|
import CiecaSelect from "../../utils/Ciecaselect";
|
||||||
|
|
||||||
@@ -33,10 +33,10 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
disabled,
|
disabled,
|
||||||
responsibilityCenters,
|
responsibilityCenters,
|
||||||
discount,
|
discount,
|
||||||
}) {
|
}) {
|
||||||
// const { billlineskeys } = form.getFieldsValue("billlineskeys");
|
// const { billlineskeys } = form.getFieldsValue("billlineskeys");
|
||||||
|
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
if (!value)
|
if (!value)
|
||||||
return (
|
return (
|
||||||
<Button
|
<Button
|
||||||
@@ -64,7 +64,7 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<PlusCircleFilled />
|
<PlusCircleFilled/>
|
||||||
</Button>
|
</Button>
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -74,13 +74,13 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
label={t("billlines.fields.line_desc")}
|
label={t("billlines.fields.line_desc")}
|
||||||
name={["billlineskeys", record.id, "line_desc"]}
|
name={["billlineskeys", record.id, "line_desc"]}
|
||||||
>
|
>
|
||||||
<Input disabled={disabled} />
|
<Input disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("billlines.fields.quantity")}
|
label={t("billlines.fields.quantity")}
|
||||||
name={["billlineskeys", record.id, "quantity"]}
|
name={["billlineskeys", record.id, "quantity"]}
|
||||||
>
|
>
|
||||||
<InputNumber precision={0} min={0} disabled={disabled} />
|
<InputNumber precision={0} min={0} disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("billlines.fields.actual_price")}
|
label={t("billlines.fields.actual_price")}
|
||||||
@@ -90,7 +90,7 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
min={0}
|
min={0}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
const { billlineskeys } = form.getFieldsValue("billlineskeys");
|
const {billlineskeys} = form.getFieldsValue("billlineskeys");
|
||||||
form.setFieldsValue({
|
form.setFieldsValue({
|
||||||
billlineskeys: {
|
billlineskeys: {
|
||||||
...billlineskeys,
|
...billlineskeys,
|
||||||
@@ -113,7 +113,7 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
label={t("billlines.fields.actual_cost")}
|
label={t("billlines.fields.actual_cost")}
|
||||||
name={["billlineskeys", record.id, "actual_cost"]}
|
name={["billlineskeys", record.id, "actual_cost"]}
|
||||||
>
|
>
|
||||||
<CurrencyInput min={0} disabled={disabled} />
|
<CurrencyInput min={0} disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item shouldUpdate>
|
<Form.Item shouldUpdate>
|
||||||
{() => {
|
{() => {
|
||||||
@@ -124,15 +124,15 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
Math.round((line.actual_cost / line.actual_price) * 100) / 100
|
Math.round((line.actual_cost / line.actual_price) * 100) / 100
|
||||||
).toPrecision(2);
|
).toPrecision(2);
|
||||||
|
|
||||||
if (lineDiscount - discount === 0) return <div />;
|
if (lineDiscount - discount === 0) return <div/>;
|
||||||
return <WarningOutlined style={{ color: "red" }} />;
|
return <WarningOutlined style={{color: "red"}}/>;
|
||||||
}}
|
}}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("billlines.fields.cost_center")}
|
label={t("billlines.fields.cost_center")}
|
||||||
name={["billlineskeys", record.id, "cost_center"]}
|
name={["billlineskeys", record.id, "cost_center"]}
|
||||||
>
|
>
|
||||||
<Select showSearch style={{ minWidth: "3rem" }} disabled={disabled}>
|
<Select showSearch style={{minWidth: "3rem"}} disabled={disabled}>
|
||||||
{bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber
|
{bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber
|
||||||
? CiecaSelect(true, false)
|
? CiecaSelect(true, false)
|
||||||
: responsibilityCenters.costs.map((item) => (
|
: responsibilityCenters.costs.map((item) => (
|
||||||
@@ -157,9 +157,9 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
name={["billlineskeys", record.id, "deductedfromlbr"]}
|
name={["billlineskeys", record.id, "deductedfromlbr"]}
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
>
|
>
|
||||||
<Switch disabled={disabled} />
|
<Switch disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item shouldUpdate style={{ display: "inline-block" }}>
|
<Form.Item shouldUpdate style={{display: "inline-block"}}>
|
||||||
{() => {
|
{() => {
|
||||||
if (
|
if (
|
||||||
form.getFieldsValue("billlineskeys").billlineskeys[record.id]
|
form.getFieldsValue("billlineskeys").billlineskeys[record.id]
|
||||||
@@ -238,7 +238,7 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<InputNumber precision={2} min={0.01} />
|
<InputNumber precision={2} min={0.01}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@@ -251,21 +251,21 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
name={["billlineskeys", record.id, "applicable_taxes", "federal"]}
|
name={["billlineskeys", record.id, "applicable_taxes", "federal"]}
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
>
|
>
|
||||||
<Switch disabled={disabled} />
|
<Switch disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("billlines.fields.state_tax_applicable")}
|
label={t("billlines.fields.state_tax_applicable")}
|
||||||
name={["billlineskeys", record.id, "applicable_taxes", "state"]}
|
name={["billlineskeys", record.id, "applicable_taxes", "state"]}
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
>
|
>
|
||||||
<Switch disabled={disabled} />
|
<Switch disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("billlines.fields.local_tax_applicable")}
|
label={t("billlines.fields.local_tax_applicable")}
|
||||||
name={["billlineskeys", record.id, "applicable_taxes", "local"]}
|
name={["billlineskeys", record.id, "applicable_taxes", "local"]}
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
>
|
>
|
||||||
<Switch disabled={disabled} />
|
<Switch disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
@@ -281,7 +281,7 @@ export function BillFormItemsExtendedFormItem({
|
|||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<MinusCircleFilled />
|
<MinusCircleFilled/>
|
||||||
</Button>
|
</Button>
|
||||||
</Space>
|
</Space>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -27,13 +27,27 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
});
|
});
|
||||||
const mapDispatchToProps = (dispatch) => ({});
|
const mapDispatchToProps = (dispatch) => ({});
|
||||||
|
|
||||||
export function BillFormComponent({bodyshop, disabled, form, vendorAutoCompleteOptions, lineData, responsibilityCenters, loadLines, billEdit, disableInvNumber, job, loadOutstandingReturns, loadInventory, preferredMake}) {
|
export function BillFormComponent({
|
||||||
|
bodyshop,
|
||||||
|
disabled,
|
||||||
|
form,
|
||||||
|
vendorAutoCompleteOptions,
|
||||||
|
lineData,
|
||||||
|
responsibilityCenters,
|
||||||
|
loadLines,
|
||||||
|
billEdit,
|
||||||
|
disableInvNumber,
|
||||||
|
job,
|
||||||
|
loadOutstandingReturns,
|
||||||
|
loadInventory,
|
||||||
|
preferredMake
|
||||||
|
}) {
|
||||||
|
|
||||||
const {t} = useTranslation();
|
const {t} = useTranslation();
|
||||||
const client = useApolloClient();
|
const client = useApolloClient();
|
||||||
const [discount, setDiscount] = useState(0);
|
const [discount, setDiscount] = useState(0);
|
||||||
|
|
||||||
const { treatments: {Extended_Bill_Posting, ClosingPeriod} } = useSplitTreatments({
|
const {treatments: {Extended_Bill_Posting, ClosingPeriod}} = useSplitTreatments({
|
||||||
attributes: {},
|
attributes: {},
|
||||||
names: ["Extended_Bill_Posting", "ClosingPeriod"],
|
names: ["Extended_Bill_Posting", "ClosingPeriod"],
|
||||||
splitKey: bodyshop.imexshopid,
|
splitKey: bodyshop.imexshopid,
|
||||||
@@ -64,7 +78,7 @@ export function BillFormComponent({bodyshop, disabled, form, vendorAutoCompleteO
|
|||||||
b.applicable_taxes.federal = false;
|
b.applicable_taxes.federal = false;
|
||||||
return b;
|
return b;
|
||||||
});
|
});
|
||||||
form.setFieldsValue({ billlines });
|
form.setFieldsValue({billlines});
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -327,7 +341,7 @@ export function BillFormComponent({bodyshop, disabled, form, vendorAutoCompleteO
|
|||||||
}),
|
}),
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<Switch />
|
<Switch/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("bills.fields.total")}
|
label={t("bills.fields.total")}
|
||||||
@@ -339,11 +353,11 @@ export function BillFormComponent({bodyshop, disabled, form, vendorAutoCompleteO
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<CurrencyInput min={0} disabled={disabled} />
|
<CurrencyInput min={0} disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{!billEdit && (
|
{!billEdit && (
|
||||||
<Form.Item label={t("bills.fields.allpartslocation")} name="location">
|
<Form.Item label={t("bills.fields.allpartslocation")} name="location">
|
||||||
<Select style={{ width: "10rem" }} disabled={disabled} allowClear>
|
<Select style={{width: "10rem"}} disabled={disabled} allowClear>
|
||||||
{bodyshop.md_parts_locations.map((loc, idx) => (
|
{bodyshop.md_parts_locations.map((loc, idx) => (
|
||||||
<Select.Option key={idx} value={loc}>
|
<Select.Option key={idx} value={loc}>
|
||||||
{loc}
|
{loc}
|
||||||
@@ -359,21 +373,21 @@ export function BillFormComponent({bodyshop, disabled, form, vendorAutoCompleteO
|
|||||||
label={t("bills.fields.federal_tax_rate")}
|
label={t("bills.fields.federal_tax_rate")}
|
||||||
name="federal_tax_rate"
|
name="federal_tax_rate"
|
||||||
>
|
>
|
||||||
<CurrencyInput min={0} disabled={disabled} />
|
<CurrencyInput min={0} disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
span={3}
|
span={3}
|
||||||
label={t("bills.fields.state_tax_rate")}
|
label={t("bills.fields.state_tax_rate")}
|
||||||
name="state_tax_rate"
|
name="state_tax_rate"
|
||||||
>
|
>
|
||||||
<CurrencyInput min={0} disabled={disabled} />
|
<CurrencyInput min={0} disabled={disabled}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
span={3}
|
span={3}
|
||||||
label={t("bills.fields.local_tax_rate")}
|
label={t("bills.fields.local_tax_rate")}
|
||||||
name="local_tax_rate"
|
name="local_tax_rate"
|
||||||
>
|
>
|
||||||
<CurrencyInput min={0} />
|
<CurrencyInput min={0}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{bodyshop.pbs_serialnumber || bodyshop.cdk_dealerid ? (
|
{bodyshop.pbs_serialnumber || bodyshop.cdk_dealerid ? (
|
||||||
<Form.Item
|
<Form.Item
|
||||||
@@ -381,7 +395,7 @@ export function BillFormComponent({bodyshop, disabled, form, vendorAutoCompleteO
|
|||||||
label={t("bills.labels.federal_tax_exempt")}
|
label={t("bills.labels.federal_tax_exempt")}
|
||||||
name="federal_tax_exempt"
|
name="federal_tax_exempt"
|
||||||
>
|
>
|
||||||
<Switch onChange={handleFederalTaxExemptSwitchToggle} />
|
<Switch onChange={handleFederalTaxExemptSwitchToggle}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
) : null}
|
) : null}
|
||||||
<Form.Item shouldUpdate span={13}>
|
<Form.Item shouldUpdate span={13}>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { useLazyQuery, useQuery } from "@apollo/client";
|
import {useLazyQuery, useQuery} from "@apollo/client";
|
||||||
import {useSplitTreatments} from "@splitsoftware/splitio-react";
|
import {useSplitTreatments} from "@splitsoftware/splitio-react";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { QUERY_OUTSTANDING_INVENTORY } from "../../graphql/inventory.queries";
|
import {QUERY_OUTSTANDING_INVENTORY} from "../../graphql/inventory.queries";
|
||||||
import { GET_JOB_LINES_TO_ENTER_BILL } from "../../graphql/jobs-lines.queries";
|
import {GET_JOB_LINES_TO_ENTER_BILL} from "../../graphql/jobs-lines.queries";
|
||||||
import { QUERY_UNRECEIVED_LINES } from "../../graphql/parts-orders.queries";
|
import {QUERY_UNRECEIVED_LINES} from "../../graphql/parts-orders.queries";
|
||||||
import { SEARCH_VENDOR_AUTOCOMPLETE } from "../../graphql/vendors.queries";
|
import {SEARCH_VENDOR_AUTOCOMPLETE} from "../../graphql/vendors.queries";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import BillCmdReturnsTableComponent from "../bill-cm-returns-table/bill-cm-returns-table.component";
|
import BillCmdReturnsTableComponent from "../bill-cm-returns-table/bill-cm-returns-table.component";
|
||||||
import BillInventoryTable from "../bill-inventory-table/bill-inventory-table.component";
|
import BillInventoryTable from "../bill-inventory-table/bill-inventory-table.component";
|
||||||
import BillFormComponent from "./bill-form.component";
|
import BillFormComponent from "./bill-form.component";
|
||||||
@@ -22,25 +22,25 @@ export function BillFormContainer({
|
|||||||
billEdit,
|
billEdit,
|
||||||
disabled,
|
disabled,
|
||||||
disableInvNumber,
|
disableInvNumber,
|
||||||
}) {
|
}) {
|
||||||
const { treatments: {Simple_Inventory} } = useSplitTreatments({
|
const {treatments: {Simple_Inventory}} = useSplitTreatments({
|
||||||
attributes: {},
|
attributes: {},
|
||||||
names: ["Simple_Inventory"],
|
names: ["Simple_Inventory"],
|
||||||
splitKey: bodyshop && bodyshop.imexshopid,
|
splitKey: bodyshop && bodyshop.imexshopid,
|
||||||
});
|
});
|
||||||
|
|
||||||
const { data: VendorAutoCompleteData } = useQuery(
|
const {data: VendorAutoCompleteData} = useQuery(
|
||||||
SEARCH_VENDOR_AUTOCOMPLETE,
|
SEARCH_VENDOR_AUTOCOMPLETE,
|
||||||
{ fetchPolicy: "network-only", nextFetchPolicy: "network-only" }
|
{fetchPolicy: "network-only", nextFetchPolicy: "network-only"}
|
||||||
);
|
);
|
||||||
|
|
||||||
const [loadLines, { data: lineData }] = useLazyQuery(
|
const [loadLines, {data: lineData}] = useLazyQuery(
|
||||||
GET_JOB_LINES_TO_ENTER_BILL
|
GET_JOB_LINES_TO_ENTER_BILL
|
||||||
);
|
);
|
||||||
|
|
||||||
const [loadOutstandingReturns, { loading: returnLoading, data: returnData }] =
|
const [loadOutstandingReturns, {loading: returnLoading, data: returnData}] =
|
||||||
useLazyQuery(QUERY_UNRECEIVED_LINES);
|
useLazyQuery(QUERY_UNRECEIVED_LINES);
|
||||||
const [loadInventory, { loading: inventoryLoading, data: inventoryData }] =
|
const [loadInventory, {loading: inventoryLoading, data: inventoryData}] =
|
||||||
useLazyQuery(QUERY_OUTSTANDING_INVENTORY);
|
useLazyQuery(QUERY_OUTSTANDING_INVENTORY);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -79,4 +79,5 @@ export function BillFormContainer({
|
|||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default connect(mapStateToProps, null)(BillFormContainer);
|
export default connect(mapStateToProps, null)(BillFormContainer);
|
||||||
|
|||||||
@@ -1,21 +1,11 @@
|
|||||||
import { DeleteFilled, DollarCircleFilled } from "@ant-design/icons";
|
import {DeleteFilled, DollarCircleFilled} from "@ant-design/icons";
|
||||||
import {useSplitTreatments} from "@splitsoftware/splitio-react";
|
import {useSplitTreatments} from "@splitsoftware/splitio-react";
|
||||||
import {
|
import {Button, Form, Input, InputNumber, Select, Space, Switch, Table, Tooltip,} from "antd";
|
||||||
Button,
|
|
||||||
Form,
|
|
||||||
Input,
|
|
||||||
InputNumber,
|
|
||||||
Select,
|
|
||||||
Space,
|
|
||||||
Switch,
|
|
||||||
Table,
|
|
||||||
Tooltip,
|
|
||||||
} from "antd";
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import CiecaSelect from "../../utils/Ciecaselect";
|
import CiecaSelect from "../../utils/Ciecaselect";
|
||||||
import BillLineSearchSelect from "../bill-line-search-select/bill-line-search-select.component";
|
import BillLineSearchSelect from "../bill-line-search-select/bill-line-search-select.component";
|
||||||
import BilllineAddInventory from "../billline-add-inventory/billline-add-inventory.component";
|
import BilllineAddInventory from "../billline-add-inventory/billline-add-inventory.component";
|
||||||
@@ -38,11 +28,11 @@ export function BillEnterModalLinesComponent({
|
|||||||
responsibilityCenters,
|
responsibilityCenters,
|
||||||
billEdit,
|
billEdit,
|
||||||
billid,
|
billid,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const { setFieldsValue, getFieldsValue, getFieldValue } = form;
|
const {setFieldsValue, getFieldsValue, getFieldValue} = form;
|
||||||
|
|
||||||
const { treatments: {Simple_Inventory} } = useSplitTreatments({
|
const {treatments: {Simple_Inventory}} = useSplitTreatments({
|
||||||
attributes: {},
|
attributes: {},
|
||||||
names: ["Simple_Inventory"],
|
names: ["Simple_Inventory"],
|
||||||
splitKey: bodyshop && bodyshop.imexshopid,
|
splitKey: bodyshop && bodyshop.imexshopid,
|
||||||
@@ -85,7 +75,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
<BillLineSearchSelect
|
<BillLineSearchSelect
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
options={lineData}
|
options={lineData}
|
||||||
style={{ width: "100%", minWidth: "10rem" }}
|
style={{width: "100%", minWidth: "10rem"}}
|
||||||
allowRemoved={form.getFieldValue("is_credit_memo") || false}
|
allowRemoved={form.getFieldValue("is_credit_memo") || false}
|
||||||
onSelect={(value, opt) => {
|
onSelect={(value, opt) => {
|
||||||
setFieldsValue({
|
setFieldsValue({
|
||||||
@@ -136,7 +126,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
],
|
],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
formInput: (record, index) => <Input disabled={disabled} />,
|
formInput: (record, index) => <Input disabled={disabled}/>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("billlines.fields.quantity"),
|
title: t("billlines.fields.quantity"),
|
||||||
@@ -153,7 +143,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
required: true,
|
required: true,
|
||||||
//message: t("general.validation.required"),
|
//message: t("general.validation.required"),
|
||||||
},
|
},
|
||||||
({ getFieldValue }) => ({
|
({getFieldValue}) => ({
|
||||||
validator(rule, value) {
|
validator(rule, value) {
|
||||||
if (
|
if (
|
||||||
value &&
|
value &&
|
||||||
@@ -175,7 +165,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
formInput: (record, index) => (
|
formInput: (record, index) => (
|
||||||
<InputNumber precision={0} min={1} disabled={disabled} />
|
<InputNumber precision={0} min={1} disabled={disabled}/>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -317,7 +307,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
formInput: (record, index) => (
|
formInput: (record, index) => (
|
||||||
<Select showSearch style={{ minWidth: "3rem" }} disabled={disabled}>
|
<Select showSearch style={{minWidth: "3rem"}} disabled={disabled}>
|
||||||
{bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber
|
{bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber
|
||||||
? CiecaSelect(true, false)
|
? CiecaSelect(true, false)
|
||||||
: responsibilityCenters.costs.map((item) => (
|
: responsibilityCenters.costs.map((item) => (
|
||||||
@@ -362,9 +352,9 @@ export function BillEnterModalLinesComponent({
|
|||||||
name: [field.name, "deductedfromlbr"],
|
name: [field.name, "deductedfromlbr"],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
formInput: (record, index) => <Switch disabled={disabled} />,
|
formInput: (record, index) => <Switch disabled={disabled}/>,
|
||||||
additional: (record, index) => (
|
additional: (record, index) => (
|
||||||
<Form.Item shouldUpdate style={{ display: "inline-block" }}>
|
<Form.Item shouldUpdate style={{display: "inline-block"}}>
|
||||||
{() => {
|
{() => {
|
||||||
const price = getFieldValue([
|
const price = getFieldValue([
|
||||||
"billlines",
|
"billlines",
|
||||||
@@ -449,7 +439,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<InputNumber precision={2} min={0.01} />
|
<InputNumber precision={2} min={0.01}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{price &&
|
{price &&
|
||||||
adjustmentRate &&
|
adjustmentRate &&
|
||||||
@@ -475,7 +465,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
name: [field.name, "applicable_taxes", "federal"],
|
name: [field.name, "applicable_taxes", "federal"],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
formInput: (record, index) => <Switch disabled={disabled} />,
|
formInput: (record, index) => <Switch disabled={disabled}/>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("billlines.fields.state_tax_applicable"),
|
title: t("billlines.fields.state_tax_applicable"),
|
||||||
@@ -489,7 +479,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
name: [field.name, "applicable_taxes", "state"],
|
name: [field.name, "applicable_taxes", "state"],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
formInput: (record, index) => <Switch disabled={disabled} />,
|
formInput: (record, index) => <Switch disabled={disabled}/>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("billlines.fields.local_tax_applicable"),
|
title: t("billlines.fields.local_tax_applicable"),
|
||||||
@@ -503,7 +493,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
name: [field.name, "applicable_taxes", "local"],
|
name: [field.name, "applicable_taxes", "local"],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
formInput: (record, index) => <Switch disabled={disabled} />,
|
formInput: (record, index) => <Switch disabled={disabled}/>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("general.labels.actions"),
|
title: t("general.labels.actions"),
|
||||||
@@ -521,7 +511,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
}
|
}
|
||||||
onClick={() => remove(record.name)}
|
onClick={() => remove(record.name)}
|
||||||
>
|
>
|
||||||
<DeleteFilled />
|
<DeleteFilled/>
|
||||||
</Button>
|
</Button>
|
||||||
{Simple_Inventory.treatment === "on" && (
|
{Simple_Inventory.treatment === "on" && (
|
||||||
<BilllineAddInventory
|
<BilllineAddInventory
|
||||||
@@ -573,7 +563,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
{(fields, { add, remove, move }) => {
|
{(fields, {add, remove, move}) => {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Table
|
<Table
|
||||||
@@ -586,7 +576,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
bordered
|
bordered
|
||||||
dataSource={fields}
|
dataSource={fields}
|
||||||
columns={mergedColumns(remove)}
|
columns={mergedColumns(remove)}
|
||||||
scroll={{ x: true }}
|
scroll={{x: true}}
|
||||||
pagination={false}
|
pagination={false}
|
||||||
rowClassName="editable-row"
|
rowClassName="editable-row"
|
||||||
/>
|
/>
|
||||||
@@ -596,7 +586,7 @@ export function BillEnterModalLinesComponent({
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
add();
|
add();
|
||||||
}}
|
}}
|
||||||
style={{ width: "100%" }}
|
style={{width: "100%"}}
|
||||||
>
|
>
|
||||||
{t("billlines.actions.newline")}
|
{t("billlines.actions.newline")}
|
||||||
</Button>
|
</Button>
|
||||||
@@ -625,14 +615,14 @@ const EditableCell = ({
|
|||||||
additional,
|
additional,
|
||||||
wrapper,
|
wrapper,
|
||||||
...restProps
|
...restProps
|
||||||
}) => {
|
}) => {
|
||||||
if (additional)
|
if (additional)
|
||||||
return (
|
return (
|
||||||
<td {...restProps}>
|
<td {...restProps}>
|
||||||
<Space size="small">
|
<Space size="small">
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={dataIndex}
|
name={dataIndex}
|
||||||
labelCol={{ span: 0 }}
|
labelCol={{span: 0}}
|
||||||
{...(formItemProps && formItemProps(record))}
|
{...(formItemProps && formItemProps(record))}
|
||||||
>
|
>
|
||||||
{(formInput && formInput(record, record.name)) || children}
|
{(formInput && formInput(record, record.name)) || children}
|
||||||
@@ -646,7 +636,7 @@ const EditableCell = ({
|
|||||||
<wrapper>
|
<wrapper>
|
||||||
<td {...restProps}>
|
<td {...restProps}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
labelCol={{ span: 0 }}
|
labelCol={{span: 0}}
|
||||||
name={dataIndex}
|
name={dataIndex}
|
||||||
{...(formItemProps && formItemProps(record))}
|
{...(formItemProps && formItemProps(record))}
|
||||||
>
|
>
|
||||||
@@ -658,7 +648,7 @@ const EditableCell = ({
|
|||||||
return (
|
return (
|
||||||
<td {...restProps}>
|
<td {...restProps}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
labelCol={{ span: 0 }}
|
labelCol={{span: 0}}
|
||||||
name={dataIndex}
|
name={dataIndex}
|
||||||
{...(formItemProps && formItemProps(record))}
|
{...(formItemProps && formItemProps(record))}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import Dinero from "dinero.js";
|
import Dinero from "dinero.js";
|
||||||
|
|
||||||
export const CalculateBillTotal = (invoice) => {
|
export const CalculateBillTotal = (invoice) => {
|
||||||
const { total, billlines, federal_tax_rate, local_tax_rate, state_tax_rate } =
|
const {total, billlines, federal_tax_rate, local_tax_rate, state_tax_rate} =
|
||||||
invoice;
|
invoice;
|
||||||
|
|
||||||
//TODO Determine why this recalculates so many times.
|
//TODO Determine why this recalculates so many times.
|
||||||
let subtotal = Dinero({ amount: 0 });
|
let subtotal = Dinero({amount: 0});
|
||||||
let federalTax = Dinero({ amount: 0 });
|
let federalTax = Dinero({amount: 0});
|
||||||
let stateTax = Dinero({ amount: 0 });
|
let stateTax = Dinero({amount: 0});
|
||||||
let localTax = Dinero({ amount: 0 });
|
let localTax = Dinero({amount: 0});
|
||||||
|
|
||||||
if (!!!billlines) return null;
|
if (!!!billlines) return null;
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ export const CalculateBillTotal = (invoice) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const invoiceTotal = Dinero({ amount: Math.round((total || 0) * 100) });
|
const invoiceTotal = Dinero({amount: Math.round((total || 0) * 100)});
|
||||||
const enteredTotal = subtotal.add(federalTax).add(stateTax).add(localTax);
|
const enteredTotal = subtotal.add(federalTax).add(stateTax).add(localTax);
|
||||||
const discrepancy = enteredTotal.subtract(invoiceTotal);
|
const discrepancy = enteredTotal.subtract(invoiceTotal);
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { Checkbox, Form, Skeleton, Typography } from "antd";
|
import {Checkbox, Form, Skeleton, Typography} from "antd";
|
||||||
import React, { useEffect } from "react";
|
import React, {useEffect} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import ReadOnlyFormItemComponent from "../form-items-formatted/read-only-form-item.component";
|
import ReadOnlyFormItemComponent from "../form-items-formatted/read-only-form-item.component";
|
||||||
import "./bill-inventory-table.styles.scss";
|
import "./bill-inventory-table.styles.scss";
|
||||||
|
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import { selectBillEnterModal } from "../../redux/modals/modals.selectors";
|
import {selectBillEnterModal} from "../../redux/modals/modals.selectors";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
@@ -25,8 +25,8 @@ export function BillInventoryTable({
|
|||||||
billEdit,
|
billEdit,
|
||||||
inventoryLoading,
|
inventoryLoading,
|
||||||
inventoryData,
|
inventoryData,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (inventoryData && inventoryData.inventory) {
|
if (inventoryData && inventoryData.inventory) {
|
||||||
@@ -55,11 +55,11 @@ export function BillInventoryTable({
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inventoryLoading) return <Skeleton />;
|
if (inventoryLoading) return <Skeleton/>;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form.List name="inventory">
|
<Form.List name="inventory">
|
||||||
{(fields, { add, remove, move }) => {
|
{(fields, {add, remove, move}) => {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Typography.Title level={4}>
|
<Typography.Title level={4}>
|
||||||
@@ -86,7 +86,7 @@ export function BillInventoryTable({
|
|||||||
key={`${index}line_desc`}
|
key={`${index}line_desc`}
|
||||||
name={[field.name, "line_desc"]}
|
name={[field.name, "line_desc"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ export function BillInventoryTable({
|
|||||||
"name",
|
"name",
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -113,7 +113,7 @@ export function BillInventoryTable({
|
|||||||
key={`${index}quantity`}
|
key={`${index}quantity`}
|
||||||
name={[field.name, "quantity"]}
|
name={[field.name, "quantity"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -123,7 +123,7 @@ export function BillInventoryTable({
|
|||||||
key={`${index}act_price`}
|
key={`${index}act_price`}
|
||||||
name={[field.name, "actual_price"]}
|
name={[field.name, "actual_price"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent type="currency" />
|
<ReadOnlyFormItemComponent type="currency"/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -133,7 +133,7 @@ export function BillInventoryTable({
|
|||||||
key={`${index}cost`}
|
key={`${index}cost`}
|
||||||
name={[field.name, "actual_cost"]}
|
name={[field.name, "actual_cost"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent type="currency" />
|
<ReadOnlyFormItemComponent type="currency"/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -143,7 +143,7 @@ export function BillInventoryTable({
|
|||||||
key={`${index}comment`}
|
key={`${index}comment`}
|
||||||
name={[field.name, "comment"]}
|
name={[field.name, "comment"]}
|
||||||
>
|
>
|
||||||
<ReadOnlyFormItemComponent />
|
<ReadOnlyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@ export function BillInventoryTable({
|
|||||||
name={[field.name, "consumefrominventory"]}
|
name={[field.name, "consumefrominventory"]}
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
>
|
>
|
||||||
<Checkbox />
|
<Checkbox/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import { Select } from "antd";
|
import {Select} from "antd";
|
||||||
import React, { forwardRef } from "react";
|
import React, {forwardRef} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
|
|
||||||
//To be used as a form element only.
|
//To be used as a form element only.
|
||||||
const { Option } = Select;
|
const {Option} = Select;
|
||||||
const BillLineSearchSelect = (
|
const BillLineSearchSelect = (
|
||||||
{ options, disabled, allowRemoved, ...restProps },
|
{options, disabled, allowRemoved, ...restProps},
|
||||||
ref
|
ref
|
||||||
) => {
|
) => {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Select
|
<Select
|
||||||
@@ -56,7 +56,7 @@ const BillLineSearchSelect = (
|
|||||||
alt_partno={item.alt_partno}
|
alt_partno={item.alt_partno}
|
||||||
act_price={item.act_price}
|
act_price={item.act_price}
|
||||||
style={{
|
style={{
|
||||||
...(item.removed ? { textDecoration: "line-through" } : {}),
|
...(item.removed ? {textDecoration: "line-through"} : {}),
|
||||||
}}
|
}}
|
||||||
name={`${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${
|
name={`${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${
|
||||||
item.oem_partno ? ` - ${item.oem_partno}` : ""
|
item.oem_partno ? ` - ${item.oem_partno}` : ""
|
||||||
@@ -67,7 +67,7 @@ const BillLineSearchSelect = (
|
|||||||
item.oem_partno ? ` - ${item.oem_partno}` : ""
|
item.oem_partno ? ` - ${item.oem_partno}` : ""
|
||||||
}${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()}
|
}${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()}
|
||||||
</span>
|
</span>
|
||||||
<span style={{ float: "right", paddingleft: "1rem" }}>
|
<span style={{float: "right", paddingleft: "1rem"}}>
|
||||||
{item.act_price
|
{item.act_price
|
||||||
? `$${item.act_price && item.act_price.toFixed(2)}`
|
? `$${item.act_price && item.act_price.toFixed(2)}`
|
||||||
: ``}
|
: ``}
|
||||||
|
|||||||
@@ -1,18 +1,14 @@
|
|||||||
import { useMutation } from "@apollo/client";
|
import {gql, useMutation} from "@apollo/client";
|
||||||
import { Button, notification } from "antd";
|
import {Button, notification} from "antd";
|
||||||
import { gql } from "@apollo/client";
|
import React, {useState} from "react";
|
||||||
import React, { useState } from "react";
|
import {useTranslation} from "react-i18next";
|
||||||
import { useTranslation } from "react-i18next";
|
|
||||||
|
import {connect} from "react-redux";
|
||||||
|
import {createStructuredSelector} from "reselect";
|
||||||
|
import {selectAuthLevel, selectBodyshop, selectCurrentUser,} from "../../redux/user/user.selectors";
|
||||||
|
import {HasRbacAccess} from "../rbac-wrapper/rbac-wrapper.component";
|
||||||
|
import {INSERT_EXPORT_LOG} from "../../graphql/accounting.queries";
|
||||||
|
|
||||||
import { connect } from "react-redux";
|
|
||||||
import { createStructuredSelector } from "reselect";
|
|
||||||
import {
|
|
||||||
selectAuthLevel,
|
|
||||||
selectBodyshop,
|
|
||||||
selectCurrentUser,
|
|
||||||
} from "../../redux/user/user.selectors";
|
|
||||||
import { HasRbacAccess } from "../rbac-wrapper/rbac-wrapper.component";
|
|
||||||
import { INSERT_EXPORT_LOG } from "../../graphql/accounting.queries";
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
authLevel: selectAuthLevel,
|
authLevel: selectAuthLevel,
|
||||||
@@ -32,8 +28,8 @@ export function BillMarkExportedButton({
|
|||||||
bodyshop,
|
bodyshop,
|
||||||
authLevel,
|
authLevel,
|
||||||
bill,
|
bill,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [insertExportLog] = useMutation(INSERT_EXPORT_LOG);
|
const [insertExportLog] = useMutation(INSERT_EXPORT_LOG);
|
||||||
|
|
||||||
@@ -52,7 +48,7 @@ export function BillMarkExportedButton({
|
|||||||
const handleUpdate = async () => {
|
const handleUpdate = async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
const result = await updateBill({
|
const result = await updateBill({
|
||||||
variables: { billId: bill.id },
|
variables: {billId: bill.id},
|
||||||
});
|
});
|
||||||
|
|
||||||
await insertExportLog({
|
await insertExportLog({
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Button, Space } from "antd";
|
import {Button, Space} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { GenerateDocument } from "../../utils/RenderTemplate";
|
import {GenerateDocument} from "../../utils/RenderTemplate";
|
||||||
import { TemplateList } from "../../utils/TemplateConstants";
|
import {TemplateList} from "../../utils/TemplateConstants";
|
||||||
|
|
||||||
export default function BillPrintButton({ billid }) {
|
export default function BillPrintButton({billid}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const Templates = TemplateList("job_special");
|
const Templates = TemplateList("job_special");
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
import { useMutation } from "@apollo/client";
|
import {gql, useMutation} from "@apollo/client";
|
||||||
import { Button, notification } from "antd";
|
import {Button, notification} from "antd";
|
||||||
import { gql } from "@apollo/client";
|
import React, {useState} from "react";
|
||||||
import React, { useState } from "react";
|
import {useTranslation} from "react-i18next";
|
||||||
import { useTranslation } from "react-i18next";
|
|
||||||
|
import {connect} from "react-redux";
|
||||||
|
import {createStructuredSelector} from "reselect";
|
||||||
|
import {selectAuthLevel, selectBodyshop,} from "../../redux/user/user.selectors";
|
||||||
|
import {HasRbacAccess} from "../rbac-wrapper/rbac-wrapper.component";
|
||||||
|
|
||||||
import { connect } from "react-redux";
|
|
||||||
import { createStructuredSelector } from "reselect";
|
|
||||||
import {
|
|
||||||
selectAuthLevel,
|
|
||||||
selectBodyshop,
|
|
||||||
} from "../../redux/user/user.selectors";
|
|
||||||
import { HasRbacAccess } from "../rbac-wrapper/rbac-wrapper.component";
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
authLevel: selectAuthLevel,
|
authLevel: selectAuthLevel,
|
||||||
@@ -24,8 +21,8 @@ export default connect(
|
|||||||
mapDispatchToProps
|
mapDispatchToProps
|
||||||
)(BillMarkForReexportButton);
|
)(BillMarkForReexportButton);
|
||||||
|
|
||||||
export function BillMarkForReexportButton({ bodyshop, authLevel, bill }) {
|
export function BillMarkForReexportButton({bodyshop, authLevel, bill}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
|
|
||||||
const [updateBill] = useMutation(gql`
|
const [updateBill] = useMutation(gql`
|
||||||
@@ -43,7 +40,7 @@ export function BillMarkForReexportButton({ bodyshop, authLevel, bill }) {
|
|||||||
const handleUpdate = async () => {
|
const handleUpdate = async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
const result = await updateBill({
|
const result = await updateBill({
|
||||||
variables: { billId: bill.id },
|
variables: {billId: bill.id},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!result.errors) {
|
if (!result.errors) {
|
||||||
|
|||||||
@@ -1,19 +1,16 @@
|
|||||||
import { FileAddFilled } from "@ant-design/icons";
|
import {FileAddFilled} from "@ant-design/icons";
|
||||||
import { useMutation } from "@apollo/client";
|
import {useMutation} from "@apollo/client";
|
||||||
import { Button, notification, Tooltip } from "antd";
|
import {Button, notification, Tooltip} from "antd";
|
||||||
import { t } from "i18next";
|
import {t} from "i18next";
|
||||||
import dayjs from "./../../utils/day";
|
import dayjs from "./../../utils/day";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { INSERT_INVENTORY_AND_CREDIT } from "../../graphql/inventory.queries";
|
import {INSERT_INVENTORY_AND_CREDIT} from "../../graphql/inventory.queries";
|
||||||
import {
|
import {selectBodyshop, selectCurrentUser,} from "../../redux/user/user.selectors";
|
||||||
selectBodyshop,
|
import {CalculateBillTotal} from "../bill-form/bill-form.totals.utility";
|
||||||
selectCurrentUser,
|
|
||||||
} from "../../redux/user/user.selectors";
|
|
||||||
import { CalculateBillTotal } from "../bill-form/bill-form.totals.utility";
|
|
||||||
import queryString from "query-string";
|
import queryString from "query-string";
|
||||||
import { useLocation } from "react-router-dom";
|
import {useLocation} from "react-router-dom";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
@@ -33,9 +30,9 @@ export function BilllineAddInventory({
|
|||||||
billline,
|
billline,
|
||||||
disabled,
|
disabled,
|
||||||
jobid,
|
jobid,
|
||||||
}) {
|
}) {
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const { billid } = queryString.parse(useLocation().search);
|
const {billid} = queryString.parse(useLocation().search);
|
||||||
const [insertInventoryLine] = useMutation(INSERT_INVENTORY_AND_CREDIT);
|
const [insertInventoryLine] = useMutation(INSERT_INVENTORY_AND_CREDIT);
|
||||||
|
|
||||||
const addToInventory = async () => {
|
const addToInventory = async () => {
|
||||||
@@ -87,7 +84,7 @@ export function BilllineAddInventory({
|
|||||||
quantity: billline.quantity,
|
quantity: billline.quantity,
|
||||||
line_desc: billline.line_desc,
|
line_desc: billline.line_desc,
|
||||||
},
|
},
|
||||||
cm: { ...cm, billlines: { data: cm.billlines } }, //Fix structure for apollo insert.
|
cm: {...cm, billlines: {data: cm.billlines}}, //Fix structure for apollo insert.
|
||||||
pol: {
|
pol: {
|
||||||
returnfrombill: billid,
|
returnfrombill: billid,
|
||||||
vendorid: bodyshop.inhousevendorid,
|
vendorid: bodyshop.inhousevendorid,
|
||||||
@@ -144,7 +141,7 @@ export function BilllineAddInventory({
|
|||||||
}
|
}
|
||||||
onClick={addToInventory}
|
onClick={addToInventory}
|
||||||
>
|
>
|
||||||
<FileAddFilled />
|
<FileAddFilled/>
|
||||||
{billline?.inventories?.length > 0 && (
|
{billline?.inventories?.length > 0 && (
|
||||||
<div>({billline?.inventories?.length} in inv)</div>
|
<div>({billline?.inventories?.length} in inv)</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import { EditFilled, SyncOutlined } from "@ant-design/icons";
|
import {EditFilled, SyncOutlined} from "@ant-design/icons";
|
||||||
import { Button, Card, Checkbox, Input, Space, Table } from "antd";
|
import {Button, Card, Checkbox, Input, Space, Table} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectJobReadOnly } from "../../redux/application/application.selectors";
|
import {selectJobReadOnly} from "../../redux/application/application.selectors";
|
||||||
import { setModalContext } from "../../redux/modals/modals.actions";
|
import {setModalContext} from "../../redux/modals/modals.actions";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import { DateFormatter } from "../../utils/DateFormatter";
|
import {DateFormatter} from "../../utils/DateFormatter";
|
||||||
import { alphaSort, dateSort } from "../../utils/sorters";
|
import {alphaSort, dateSort} from "../../utils/sorters";
|
||||||
import { TemplateList } from "../../utils/TemplateConstants";
|
import {TemplateList} from "../../utils/TemplateConstants";
|
||||||
import BillDeleteButton from "../bill-delete-button/bill-delete-button.component";
|
import BillDeleteButton from "../bill-delete-button/bill-delete-button.component";
|
||||||
import BillDetailEditReturnComponent from "../bill-detail-edit/bill-detail-edit-return.component";
|
import BillDetailEditReturnComponent from "../bill-detail-edit/bill-detail-edit-return.component";
|
||||||
import PrintWrapperComponent from "../print-wrapper/print-wrapper.component";
|
import PrintWrapperComponent from "../print-wrapper/print-wrapper.component";
|
||||||
@@ -22,11 +22,11 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
setPartsOrderContext: (context) =>
|
setPartsOrderContext: (context) =>
|
||||||
dispatch(setModalContext({ context: context, modal: "partsOrder" })),
|
dispatch(setModalContext({context: context, modal: "partsOrder"})),
|
||||||
setBillEnterContext: (context) =>
|
setBillEnterContext: (context) =>
|
||||||
dispatch(setModalContext({ context: context, modal: "billEnter" })),
|
dispatch(setModalContext({context: context, modal: "billEnter"})),
|
||||||
setReconciliationContext: (context) =>
|
setReconciliationContext: (context) =>
|
||||||
dispatch(setModalContext({ context: context, modal: "reconciliation" })),
|
dispatch(setModalContext({context: context, modal: "reconciliation"})),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function BillsListTableComponent({
|
export function BillsListTableComponent({
|
||||||
@@ -38,8 +38,8 @@ export function BillsListTableComponent({
|
|||||||
setPartsOrderContext,
|
setPartsOrderContext,
|
||||||
setBillEnterContext,
|
setBillEnterContext,
|
||||||
setReconciliationContext,
|
setReconciliationContext,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const [state, setState] = useState({
|
const [state, setState] = useState({
|
||||||
sortedInfo: {},
|
sortedInfo: {},
|
||||||
@@ -50,17 +50,17 @@ export function BillsListTableComponent({
|
|||||||
|
|
||||||
const Templates = TemplateList("bill");
|
const Templates = TemplateList("bill");
|
||||||
const bills = billsQuery.data ? billsQuery.data.bills : [];
|
const bills = billsQuery.data ? billsQuery.data.bills : [];
|
||||||
const { refetch } = billsQuery;
|
const {refetch} = billsQuery;
|
||||||
const recordActions = (record, showView = false) => (
|
const recordActions = (record, showView = false) => (
|
||||||
<Space wrap>
|
<Space wrap>
|
||||||
{showView && (
|
{showView && (
|
||||||
<Button onClick={() => handleOnRowClick(record)}>
|
<Button onClick={() => handleOnRowClick(record)}>
|
||||||
<EditFilled />
|
<EditFilled/>
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
<BillDeleteButton bill={record} />
|
<BillDeleteButton bill={record}/>
|
||||||
<BillDetailEditReturnComponent
|
<BillDetailEditReturnComponent
|
||||||
data={{ bills_by_pk: { ...record, jobid: job.id } }}
|
data={{bills_by_pk: {...record, jobid: job.id}}}
|
||||||
disabled={
|
disabled={
|
||||||
record.is_credit_memo ||
|
record.is_credit_memo ||
|
||||||
record.vendorid === bodyshop.inhousevendorid ||
|
record.vendorid === bodyshop.inhousevendorid ||
|
||||||
@@ -72,9 +72,9 @@ export function BillsListTableComponent({
|
|||||||
<PrintWrapperComponent
|
<PrintWrapperComponent
|
||||||
templateObject={{
|
templateObject={{
|
||||||
name: Templates.inhouse_invoice.key,
|
name: Templates.inhouse_invoice.key,
|
||||||
variables: { id: record.id },
|
variables: {id: record.id},
|
||||||
}}
|
}}
|
||||||
messageObject={{ subject: Templates.inhouse_invoice.subject }}
|
messageObject={{subject: Templates.inhouse_invoice.subject}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Space>
|
</Space>
|
||||||
@@ -126,7 +126,7 @@ export function BillsListTableComponent({
|
|||||||
sortOrder:
|
sortOrder:
|
||||||
state.sortedInfo.columnKey === "is_credit_memo" &&
|
state.sortedInfo.columnKey === "is_credit_memo" &&
|
||||||
state.sortedInfo.order,
|
state.sortedInfo.order,
|
||||||
render: (text, record) => <Checkbox checked={record.is_credit_memo} />,
|
render: (text, record) => <Checkbox checked={record.is_credit_memo}/>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("bills.fields.exported"),
|
title: t("bills.fields.exported"),
|
||||||
@@ -135,7 +135,7 @@ export function BillsListTableComponent({
|
|||||||
sorter: (a, b) => a.exported - b.exported,
|
sorter: (a, b) => a.exported - b.exported,
|
||||||
sortOrder:
|
sortOrder:
|
||||||
state.sortedInfo.columnKey === "exported" && state.sortedInfo.order,
|
state.sortedInfo.columnKey === "exported" && state.sortedInfo.order,
|
||||||
render: (text, record) => <Checkbox checked={record.exported} />,
|
render: (text, record) => <Checkbox checked={record.exported}/>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t("general.labels.actions"),
|
title: t("general.labels.actions"),
|
||||||
@@ -146,7 +146,7 @@ export function BillsListTableComponent({
|
|||||||
];
|
];
|
||||||
|
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({...state, filteredInfo: filters, sortedInfo: sorter});
|
||||||
};
|
};
|
||||||
|
|
||||||
const filteredBills = bills
|
const filteredBills = bills
|
||||||
@@ -173,14 +173,14 @@ export function BillsListTableComponent({
|
|||||||
extra={
|
extra={
|
||||||
<Space wrap>
|
<Space wrap>
|
||||||
<Button onClick={() => refetch()}>
|
<Button onClick={() => refetch()}>
|
||||||
<SyncOutlined />
|
<SyncOutlined/>
|
||||||
</Button>
|
</Button>
|
||||||
{job && job.converted ? (
|
{job && job.converted ? (
|
||||||
<>
|
<>
|
||||||
<Button
|
<Button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setBillEnterContext({
|
setBillEnterContext({
|
||||||
actions: { refetch: billsQuery.refetch },
|
actions: {refetch: billsQuery.refetch},
|
||||||
context: {
|
context: {
|
||||||
job,
|
job,
|
||||||
},
|
},
|
||||||
@@ -192,7 +192,7 @@ export function BillsListTableComponent({
|
|||||||
<Button
|
<Button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setReconciliationContext({
|
setReconciliationContext({
|
||||||
actions: { refetch: billsQuery.refetch },
|
actions: {refetch: billsQuery.refetch},
|
||||||
context: {
|
context: {
|
||||||
job,
|
job,
|
||||||
bills: (billsQuery.data && billsQuery.data.bills) || [],
|
bills: (billsQuery.data && billsQuery.data.bills) || [],
|
||||||
@@ -229,6 +229,7 @@ export function BillsListTableComponent({
|
|||||||
</Card>
|
</Card>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default connect(
|
export default connect(
|
||||||
mapStateToProps,
|
mapStateToProps,
|
||||||
mapDispatchToProps
|
mapDispatchToProps
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { QUERY_ALL_VENDORS } from "../../graphql/vendors.queries";
|
import {QUERY_ALL_VENDORS} from "../../graphql/vendors.queries";
|
||||||
import { useQuery } from "@apollo/client";
|
import {useQuery} from "@apollo/client";
|
||||||
import queryString from "query-string";
|
import queryString from "query-string";
|
||||||
import { useLocation, useNavigate } from "react-router-dom";
|
import {useLocation, useNavigate} from "react-router-dom";
|
||||||
import { Table, Input } from "antd";
|
import {Input, Table} from "antd";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { alphaSort } from "../../utils/sorters";
|
import {alphaSort} from "../../utils/sorters";
|
||||||
import AlertComponent from "../alert/alert.component";
|
import AlertComponent from "../alert/alert.component";
|
||||||
|
|
||||||
export default function BillsVendorsList() {
|
export default function BillsVendorsList() {
|
||||||
const search = queryString.parse(useLocation().search);
|
const search = queryString.parse(useLocation().search);
|
||||||
const history = useNavigate();
|
const history = useNavigate();
|
||||||
|
|
||||||
const { loading, error, data } = useQuery(QUERY_ALL_VENDORS, {
|
const {loading, error, data} = useQuery(QUERY_ALL_VENDORS, {
|
||||||
fetchPolicy: "network-only",
|
fetchPolicy: "network-only",
|
||||||
nextFetchPolicy: "network-only",
|
nextFetchPolicy: "network-only",
|
||||||
});
|
});
|
||||||
|
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const [state, setState] = useState({
|
const [state, setState] = useState({
|
||||||
sortedInfo: {},
|
sortedInfo: {},
|
||||||
@@ -25,7 +25,7 @@ export default function BillsVendorsList() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({...state, filteredInfo: filters, sortedInfo: sorter});
|
||||||
};
|
};
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
@@ -57,19 +57,19 @@ export default function BillsVendorsList() {
|
|||||||
delete search.billid;
|
delete search.billid;
|
||||||
if (record.id) {
|
if (record.id) {
|
||||||
search.vendorid = record.id;
|
search.vendorid = record.id;
|
||||||
history.push({ search: queryString.stringify(search) });
|
history.push({search: queryString.stringify(search)});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
delete search.vendorid;
|
delete search.vendorid;
|
||||||
history.push({ search: queryString.stringify(search) });
|
history.push({search: queryString.stringify(search)});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleSearch = (e) => {
|
const handleSearch = (e) => {
|
||||||
setState({ ...state, search: e.target.value });
|
setState({...state, search: e.target.value});
|
||||||
};
|
};
|
||||||
|
|
||||||
if (error) return <AlertComponent message={error.message} type="error" />;
|
if (error) return <AlertComponent message={error.message} type="error"/>;
|
||||||
|
|
||||||
const dataSource = state.search
|
const dataSource = state.search
|
||||||
? data.vendors.filter(
|
? data.vendors.filter(
|
||||||
@@ -98,7 +98,7 @@ export default function BillsVendorsList() {
|
|||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
dataSource={dataSource}
|
dataSource={dataSource}
|
||||||
pagination={{ position: "top" }}
|
pagination={{position: "top"}}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
onChange={handleTableChange}
|
onChange={handleTableChange}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { Button, Form, Modal } from "antd";
|
import {Button, Form, Modal} from "antd";
|
||||||
import React, { useEffect, useState } from "react";
|
import React, {useEffect, useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { logImEXEvent } from "../../firebase/firebase.utils";
|
import {logImEXEvent} from "../../firebase/firebase.utils";
|
||||||
import { toggleModalVisible } from "../../redux/modals/modals.actions";
|
import {toggleModalVisible} from "../../redux/modals/modals.actions";
|
||||||
import { selectCaBcEtfTableConvert } from "../../redux/modals/modals.selectors";
|
import {selectCaBcEtfTableConvert} from "../../redux/modals/modals.selectors";
|
||||||
import { GenerateDocument } from "../../utils/RenderTemplate";
|
import {GenerateDocument} from "../../utils/RenderTemplate";
|
||||||
import { TemplateList } from "../../utils/TemplateConstants";
|
import {TemplateList} from "../../utils/TemplateConstants";
|
||||||
import CaBcEtfTableModalComponent from "./ca-bc-etf-table.modal.component";
|
import CaBcEtfTableModalComponent from "./ca-bc-etf-table.modal.component";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
@@ -22,10 +22,10 @@ const mapDispatchToProps = (dispatch) => ({
|
|||||||
export function ContractsFindModalContainer({
|
export function ContractsFindModalContainer({
|
||||||
caBcEtfTableModal,
|
caBcEtfTableModal,
|
||||||
toggleModalVisible,
|
toggleModalVisible,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const { open } = caBcEtfTableModal;
|
const {open} = caBcEtfTableModal;
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
const EtfTemplate = TemplateList("special").ca_bc_etf_table;
|
const EtfTemplate = TemplateList("special").ca_bc_etf_table;
|
||||||
@@ -35,7 +35,7 @@ export function ContractsFindModalContainer({
|
|||||||
setLoading(true);
|
setLoading(true);
|
||||||
const claimNumbers = [];
|
const claimNumbers = [];
|
||||||
values.table.split("\n").forEach((row, idx, arr) => {
|
values.table.split("\n").forEach((row, idx, arr) => {
|
||||||
const { 1: claim, 2: shortclaim, 4: amount } = row.split("\t");
|
const {1: claim, 2: shortclaim, 4: amount} = row.split("\t");
|
||||||
if (!claim || !shortclaim) return;
|
if (!claim || !shortclaim) return;
|
||||||
const trimmedShortClaim = shortclaim.trim();
|
const trimmedShortClaim = shortclaim.trim();
|
||||||
// const trimmedClaim = claim.trim();
|
// const trimmedClaim = claim.trim();
|
||||||
@@ -84,7 +84,7 @@ export function ContractsFindModalContainer({
|
|||||||
autoComplete="no"
|
autoComplete="no"
|
||||||
onFinish={handleFinish}
|
onFinish={handleFinish}
|
||||||
>
|
>
|
||||||
<CaBcEtfTableModalComponent form={form} />
|
<CaBcEtfTableModalComponent form={form}/>
|
||||||
<Button onClick={() => form.submit()} type="primary" loading={loading}>
|
<Button onClick={() => form.submit()} type="primary" loading={loading}>
|
||||||
{t("general.labels.search")}
|
{t("general.labels.search")}
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { Form, Input, Radio } from "antd";
|
import {Form, Input, Radio} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
@@ -11,8 +11,8 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
|
|
||||||
export default connect(mapStateToProps, null)(PartsReceiveModalComponent);
|
export default connect(mapStateToProps, null)(PartsReceiveModalComponent);
|
||||||
|
|
||||||
export function PartsReceiveModalComponent({ bodyshop, form }) {
|
export function PartsReceiveModalComponent({bodyshop, form}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@@ -25,7 +25,7 @@ export function PartsReceiveModalComponent({ bodyshop, form }) {
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<Input.TextArea rows={8} />
|
<Input.TextArea rows={8}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("general.labels.sendby")}
|
label={t("general.labels.sendby")}
|
||||||
|
|||||||
@@ -1,30 +1,31 @@
|
|||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { Button, Form, InputNumber, Popover } from "antd";
|
import {Button, Form, InputNumber, Popover} from "antd";
|
||||||
import { logImEXEvent } from "../../firebase/firebase.utils";
|
import {logImEXEvent} from "../../firebase/firebase.utils";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { CalculatorFilled } from "@ant-design/icons";
|
import {CalculatorFilled} from "@ant-design/icons";
|
||||||
export default function CABCpvrtCalculator({ disabled, form }) {
|
|
||||||
|
export default function CABCpvrtCalculator({disabled, form}) {
|
||||||
const [visibility, setVisibility] = useState(false);
|
const [visibility, setVisibility] = useState(false);
|
||||||
|
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const handleFinish = async (values) => {
|
const handleFinish = async (values) => {
|
||||||
logImEXEvent("job_ca_bc_pvrt_calculate");
|
logImEXEvent("job_ca_bc_pvrt_calculate");
|
||||||
form.setFieldsValue({
|
form.setFieldsValue({
|
||||||
ca_bc_pvrt: ((values.rate || 0) * (values.days || 0)).toFixed(2),
|
ca_bc_pvrt: ((values.rate || 0) * (values.days || 0)).toFixed(2),
|
||||||
});
|
});
|
||||||
form.setFields([{ name: "ca_bc_pvrt", touched: true }]);
|
form.setFields([{name: "ca_bc_pvrt", touched: true}]);
|
||||||
setVisibility(false);
|
setVisibility(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const popContent = (
|
const popContent = (
|
||||||
<div>
|
<div>
|
||||||
<Form onFinish={handleFinish} initialValues={{ rate: 1.5 }}>
|
<Form onFinish={handleFinish} initialValues={{rate: 1.5}}>
|
||||||
<Form.Item name="rate" label={t("jobs.labels.ca_bc_pvrt.rate")}>
|
<Form.Item name="rate" label={t("jobs.labels.ca_bc_pvrt.rate")}>
|
||||||
<InputNumber precision={2} min={0} />
|
<InputNumber precision={2} min={0}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name="days" label={t("jobs.labels.ca_bc_pvrt.days")}>
|
<Form.Item name="days" label={t("jobs.labels.ca_bc_pvrt.days")}>
|
||||||
<InputNumber precision={0} min={0} />
|
<InputNumber precision={0} min={0}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Button type="primary" htmlType="submit">
|
<Button type="primary" htmlType="submit">
|
||||||
{t("general.actions.calculate")}
|
{t("general.actions.calculate")}
|
||||||
@@ -42,7 +43,7 @@ export default function CABCpvrtCalculator({ disabled, form }) {
|
|||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
>
|
>
|
||||||
<Button disabled={disabled} onClick={() => setVisibility(true)}>
|
<Button disabled={disabled} onClick={() => setVisibility(true)}>
|
||||||
<CalculatorFilled />
|
<CalculatorFilled/>
|
||||||
</Button>
|
</Button>
|
||||||
</Popover>
|
</Popover>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,32 +1,18 @@
|
|||||||
import { DeleteFilled } from "@ant-design/icons";
|
import {DeleteFilled} from "@ant-design/icons";
|
||||||
import { useLazyQuery, useMutation } from "@apollo/client";
|
import {useLazyQuery, useMutation} from "@apollo/client";
|
||||||
import {
|
import {Button, Card, Col, Form, Input, notification, Row, Space, Spin, Statistic,} from "antd";
|
||||||
Button,
|
|
||||||
Card,
|
|
||||||
Col,
|
|
||||||
Form,
|
|
||||||
Input,
|
|
||||||
Row,
|
|
||||||
Space,
|
|
||||||
Spin,
|
|
||||||
Statistic,
|
|
||||||
notification,
|
|
||||||
} from "antd";
|
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import dayjs from "../../utils/day";
|
import dayjs from "../../utils/day";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import {
|
import {INSERT_PAYMENT_RESPONSE, QUERY_RO_AND_OWNER_BY_JOB_PKS,} from "../../graphql/payment_response.queries";
|
||||||
INSERT_PAYMENT_RESPONSE,
|
import {INSERT_NEW_PAYMENT} from "../../graphql/payments.queries";
|
||||||
QUERY_RO_AND_OWNER_BY_JOB_PKS,
|
import {insertAuditTrail} from "../../redux/application/application.actions";
|
||||||
} from "../../graphql/payment_response.queries";
|
import {toggleModalVisible} from "../../redux/modals/modals.actions";
|
||||||
import { INSERT_NEW_PAYMENT } from "../../graphql/payments.queries";
|
import {selectCardPayment} from "../../redux/modals/modals.selectors";
|
||||||
import { insertAuditTrail } from "../../redux/application/application.actions";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import { toggleModalVisible } from "../../redux/modals/modals.actions";
|
|
||||||
import { selectCardPayment } from "../../redux/modals/modals.selectors";
|
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
|
||||||
import AuditTrailMapping from "../../utils/AuditTrailMappings";
|
import AuditTrailMapping from "../../utils/AuditTrailMappings";
|
||||||
import CurrencyFormItemComponent from "../form-items-formatted/currency-form-item.component";
|
import CurrencyFormItemComponent from "../form-items-formatted/currency-form-item.component";
|
||||||
import JobSearchSelectComponent from "../job-search-select/job-search-select.component";
|
import JobSearchSelectComponent from "../job-search-select/job-search-select.component";
|
||||||
@@ -37,8 +23,8 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
insertAuditTrail: ({ jobid, operation }) =>
|
insertAuditTrail: ({jobid, operation}) =>
|
||||||
dispatch(insertAuditTrail({ jobid, operation })),
|
dispatch(insertAuditTrail({jobid, operation})),
|
||||||
toggleModalVisible: () => dispatch(toggleModalVisible("cardPayment")),
|
toggleModalVisible: () => dispatch(toggleModalVisible("cardPayment")),
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -47,20 +33,20 @@ const CardPaymentModalComponent = ({
|
|||||||
cardPaymentModal,
|
cardPaymentModal,
|
||||||
toggleModalVisible,
|
toggleModalVisible,
|
||||||
insertAuditTrail,
|
insertAuditTrail,
|
||||||
}) => {
|
}) => {
|
||||||
const { context } = cardPaymentModal;
|
const {context} = cardPaymentModal;
|
||||||
|
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
|
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [insertPayment] = useMutation(INSERT_NEW_PAYMENT);
|
const [insertPayment] = useMutation(INSERT_NEW_PAYMENT);
|
||||||
const [insertPaymentResponse] = useMutation(INSERT_PAYMENT_RESPONSE);
|
const [insertPaymentResponse] = useMutation(INSERT_PAYMENT_RESPONSE);
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const [, { data, refetch, queryLoading }] = useLazyQuery(
|
const [, {data, refetch, queryLoading}] = useLazyQuery(
|
||||||
QUERY_RO_AND_OWNER_BY_JOB_PKS,
|
QUERY_RO_AND_OWNER_BY_JOB_PKS,
|
||||||
{
|
{
|
||||||
variables: { jobids: [context.jobid] },
|
variables: {jobids: [context.jobid]},
|
||||||
skip: true,
|
skip: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -82,7 +68,7 @@ const CardPaymentModalComponent = ({
|
|||||||
window.intellipay.runOnNonApproval(async function (response) {
|
window.intellipay.runOnNonApproval(async function (response) {
|
||||||
// Mutate unsuccessful payment
|
// Mutate unsuccessful payment
|
||||||
|
|
||||||
const { payments } = form.getFieldsValue();
|
const {payments} = form.getFieldsValue();
|
||||||
|
|
||||||
await insertPaymentResponse({
|
await insertPaymentResponse({
|
||||||
variables: {
|
variables: {
|
||||||
@@ -141,7 +127,7 @@ const CardPaymentModalComponent = ({
|
|||||||
console.error(error);
|
console.error(error);
|
||||||
notification.open({
|
notification.open({
|
||||||
type: "error",
|
type: "error",
|
||||||
message: t("payments.errors.inserting", { error: error.message }),
|
message: t("payments.errors.inserting", {error: error.message}),
|
||||||
});
|
});
|
||||||
} finally {
|
} finally {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
@@ -195,11 +181,11 @@ const CardPaymentModalComponent = ({
|
|||||||
form={form}
|
form={form}
|
||||||
layout="vertical"
|
layout="vertical"
|
||||||
initialValues={{
|
initialValues={{
|
||||||
payments: context.jobid ? [{ jobid: context.jobid }] : [],
|
payments: context.jobid ? [{jobid: context.jobid}] : [],
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Form.List name={["payments"]}>
|
<Form.List name={["payments"]}>
|
||||||
{(fields, { add, remove, move }) => {
|
{(fields, {add, remove, move}) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{fields.map((field, index) => (
|
{fields.map((field, index) => (
|
||||||
@@ -235,12 +221,12 @@ const CardPaymentModalComponent = ({
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<CurrencyFormItemComponent />
|
<CurrencyFormItemComponent/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={2}>
|
<Col span={2}>
|
||||||
<DeleteFilled
|
<DeleteFilled
|
||||||
style={{ margin: "1rem" }}
|
style={{margin: "1rem"}}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
remove(field.name);
|
remove(field.name);
|
||||||
}}
|
}}
|
||||||
@@ -255,7 +241,7 @@ const CardPaymentModalComponent = ({
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
add();
|
add();
|
||||||
}}
|
}}
|
||||||
style={{ width: "100%" }}
|
style={{width: "100%"}}
|
||||||
>
|
>
|
||||||
{t("general.actions.add")}
|
{t("general.actions.add")}
|
||||||
</Button>
|
</Button>
|
||||||
@@ -274,13 +260,13 @@ const CardPaymentModalComponent = ({
|
|||||||
{() => {
|
{() => {
|
||||||
console.log("Updating the owner info section.");
|
console.log("Updating the owner info section.");
|
||||||
//If all of the job ids have been fileld in, then query and update the IP field.
|
//If all of the job ids have been fileld in, then query and update the IP field.
|
||||||
const { payments } = form.getFieldsValue();
|
const {payments} = form.getFieldsValue();
|
||||||
if (
|
if (
|
||||||
payments?.length > 0 &&
|
payments?.length > 0 &&
|
||||||
payments?.filter((p) => p?.jobid).length === payments?.length
|
payments?.filter((p) => p?.jobid).length === payments?.length
|
||||||
) {
|
) {
|
||||||
console.log("**Calling refetch.");
|
console.log("**Calling refetch.");
|
||||||
refetch({ jobids: payments.map((p) => p.jobid) });
|
refetch({jobids: payments.map((p) => p.jobid)});
|
||||||
}
|
}
|
||||||
console.log(
|
console.log(
|
||||||
"Acc info",
|
"Acc info",
|
||||||
@@ -324,13 +310,13 @@ const CardPaymentModalComponent = ({
|
|||||||
}
|
}
|
||||||
>
|
>
|
||||||
{() => {
|
{() => {
|
||||||
const { payments } = form.getFieldsValue();
|
const {payments} = form.getFieldsValue();
|
||||||
const totalAmountToCharge = payments?.reduce((acc, val) => {
|
const totalAmountToCharge = payments?.reduce((acc, val) => {
|
||||||
return acc + (val?.amount || 0);
|
return acc + (val?.amount || 0);
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Space style={{ float: "right" }}>
|
<Space style={{float: "right"}}>
|
||||||
<Statistic
|
<Statistic
|
||||||
title="Amount To Charge"
|
title="Amount To Charge"
|
||||||
value={totalAmountToCharge}
|
value={totalAmountToCharge}
|
||||||
@@ -360,7 +346,7 @@ const CardPaymentModalComponent = ({
|
|||||||
|
|
||||||
{/* Lightbox payment response when it is completed */}
|
{/* Lightbox payment response when it is completed */}
|
||||||
<Form.Item name="paymentResponse" hidden>
|
<Form.Item name="paymentResponse" hidden>
|
||||||
<Input type="hidden" />
|
<Input type="hidden"/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Form>
|
</Form>
|
||||||
</Spin>
|
</Spin>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Button, Modal } from "antd";
|
import {Button, Modal} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import {connect} from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import { toggleModalVisible } from "../../redux/modals/modals.actions";
|
import {toggleModalVisible} from "../../redux/modals/modals.actions";
|
||||||
import { selectCardPayment } from "../../redux/modals/modals.selectors";
|
import {selectCardPayment} from "../../redux/modals/modals.selectors";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||||
import CardPaymentModalComponent from "./card-payment-modal.component.";
|
import CardPaymentModalComponent from "./card-payment-modal.component.";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
@@ -21,9 +21,9 @@ function CardPaymentModalContainer({
|
|||||||
cardPaymentModal,
|
cardPaymentModal,
|
||||||
toggleModalVisible,
|
toggleModalVisible,
|
||||||
bodyshop,
|
bodyshop,
|
||||||
}) {
|
}) {
|
||||||
const { open } = cardPaymentModal;
|
const {open} = cardPaymentModal;
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
|
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
toggleModalVisible();
|
toggleModalVisible();
|
||||||
@@ -46,7 +46,7 @@ function CardPaymentModalContainer({
|
|||||||
width="80%"
|
width="80%"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
>
|
>
|
||||||
<CardPaymentModalComponent />
|
<CardPaymentModalComponent/>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import { useApolloClient } from "@apollo/client";
|
import {useApolloClient} from "@apollo/client";
|
||||||
import { getToken, onMessage } from "@firebase/messaging";
|
import {getToken, onMessage} from "@firebase/messaging";
|
||||||
import { Button, notification, Space } from "antd";
|
import {Button, notification, Space} from "antd";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import React, { useEffect } from "react";
|
import React, {useEffect} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { messaging, requestForToken } from "../../firebase/firebase.utils";
|
import {messaging, requestForToken} from "../../firebase/firebase.utils";
|
||||||
import FcmHandler from "../../utils/fcm-handler";
|
import FcmHandler from "../../utils/fcm-handler";
|
||||||
import ChatPopupComponent from "../chat-popup/chat-popup.component";
|
import ChatPopupComponent from "../chat-popup/chat-popup.component";
|
||||||
import "./chat-affix.styles.scss";
|
import "./chat-affix.styles.scss";
|
||||||
|
|
||||||
export function ChatAffixContainer({ bodyshop, chatVisible }) {
|
export function ChatAffixContainer({bodyshop, chatVisible}) {
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const client = useApolloClient();
|
const client = useApolloClient();
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!bodyshop || !bodyshop.messagingservicesid) return;
|
if (!bodyshop || !bodyshop.messagingservicesid) return;
|
||||||
@@ -71,6 +71,7 @@ export function ChatAffixContainer({ bodyshop, chatVisible }) {
|
|||||||
payload: (payload && payload.data && payload.data.data) || payload.data,
|
payload: (payload && payload.data && payload.data.data) || payload.data,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let stopMessageListener, channel;
|
let stopMessageListener, channel;
|
||||||
try {
|
try {
|
||||||
stopMessageListener = onMessage(messaging, handleMessage);
|
stopMessageListener = onMessage(messaging, handleMessage);
|
||||||
@@ -89,7 +90,7 @@ export function ChatAffixContainer({ bodyshop, chatVisible }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`chat-affix ${chatVisible ? "chat-affix-open" : ""}`}>
|
<div className={`chat-affix ${chatVisible ? "chat-affix-open" : ""}`}>
|
||||||
{bodyshop && bodyshop.messagingservicesid ? <ChatPopupComponent /> : null}
|
{bodyshop && bodyshop.messagingservicesid ? <ChatPopupComponent/> : null}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
import { useMutation } from "@apollo/client";
|
import {useMutation} from "@apollo/client";
|
||||||
import { Button } from "antd";
|
import {Button} from "antd";
|
||||||
import React, { useState } from "react";
|
import React, {useState} from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import {useTranslation} from "react-i18next";
|
||||||
import { TOGGLE_CONVERSATION_ARCHIVE } from "../../graphql/conversations.queries";
|
import {TOGGLE_CONVERSATION_ARCHIVE} from "../../graphql/conversations.queries";
|
||||||
|
|
||||||
export default function ChatArchiveButton({ conversation }) {
|
export default function ChatArchiveButton({conversation}) {
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const { t } = useTranslation();
|
const {t} = useTranslation();
|
||||||
const [updateConversation] = useMutation(TOGGLE_CONVERSATION_ARCHIVE);
|
const [updateConversation] = useMutation(TOGGLE_CONVERSATION_ARCHIVE);
|
||||||
const handleToggleArchive = async () => {
|
const handleToggleArchive = async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
|
||||||
await updateConversation({
|
await updateConversation({
|
||||||
variables: { id: conversation.id, archived: !conversation.archived },
|
variables: {id: conversation.id, archived: !conversation.archived},
|
||||||
refetchQueries: ["CONVERSATION_LIST_QUERY"],
|
refetchQueries: ["CONVERSATION_LIST_QUERY"],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ function ChatConversationListComponent({
|
|||||||
|
|
||||||
const getCardStyle = () =>
|
const getCardStyle = () =>
|
||||||
item.id === selectedConversation
|
item.id === selectedConversation
|
||||||
? { backgroundColor: 'rgba(128, 128, 128, 0.2)' }
|
? {backgroundColor: 'rgba(128, 128, 128, 0.2)'}
|
||||||
: { backgroundColor: index % 2 === 0 ? '#f0f2f5' : '#ffffff' };
|
: {backgroundColor: index % 2 === 0 ? '#f0f2f5' : '#ffffff'};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CellMeasurer
|
<CellMeasurer
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
border: 1px solid gainsboro;
|
border: 1px solid gainsboro;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat-list-item {
|
.chat-list-item {
|
||||||
.ant-card-head {
|
.ant-card-head {
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #ff7a00;
|
color: #ff7a00;
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { useMutation } from "@apollo/client";
|
import {useMutation} from "@apollo/client";
|
||||||
import { Tag } from "antd";
|
import {Tag} from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Link } from "react-router-dom";
|
import {Link} from "react-router-dom";
|
||||||
import { logImEXEvent } from "../../firebase/firebase.utils";
|
import {logImEXEvent} from "../../firebase/firebase.utils";
|
||||||
import { REMOVE_CONVERSATION_TAG } from "../../graphql/job-conversations.queries";
|
import {REMOVE_CONVERSATION_TAG} from "../../graphql/job-conversations.queries";
|
||||||
import OwnerNameDisplay from "../owner-name-display/owner-name-display.component";
|
import OwnerNameDisplay from "../owner-name-display/owner-name-display.component";
|
||||||
|
|
||||||
export default function ChatConversationTitleTags({ jobConversations }) {
|
export default function ChatConversationTitleTags({jobConversations}) {
|
||||||
const [removeJobConversation] = useMutation(REMOVE_CONVERSATION_TAG);
|
const [removeJobConversation] = useMutation(REMOVE_CONVERSATION_TAG);
|
||||||
|
|
||||||
const handleRemoveTag = (jobId) => {
|
const handleRemoveTag = (jobId) => {
|
||||||
@@ -19,7 +19,7 @@ export default function ChatConversationTitleTags({ jobConversations }) {
|
|||||||
},
|
},
|
||||||
update(cache) {
|
update(cache) {
|
||||||
cache.modify({
|
cache.modify({
|
||||||
id: cache.identify({ id: convId, __typename: "conversations" }),
|
id: cache.identify({id: convId, __typename: "conversations"}),
|
||||||
fields: {
|
fields: {
|
||||||
job_conversations(ex) {
|
job_conversations(ex) {
|
||||||
return ex.filter((e) => e.jobid !== jobId);
|
return ex.filter((e) => e.jobid !== jobId);
|
||||||
@@ -42,12 +42,12 @@ export default function ChatConversationTitleTags({ jobConversations }) {
|
|||||||
key={item.job.id}
|
key={item.job.id}
|
||||||
closable
|
closable
|
||||||
color="blue"
|
color="blue"
|
||||||
style={{ cursor: "pointer" }}
|
style={{cursor: "pointer"}}
|
||||||
onClose={() => handleRemoveTag(item.job.id)}
|
onClose={() => handleRemoveTag(item.job.id)}
|
||||||
>
|
>
|
||||||
<Link to={`/manage/jobs/${item.job.id}`}>
|
<Link to={`/manage/jobs/${item.job.id}`}>
|
||||||
{`${item.job.ro_number || "?"} | `}
|
{`${item.job.ro_number || "?"} | `}
|
||||||
<OwnerNameDisplay ownerObject={item.job} />
|
<OwnerNameDisplay ownerObject={item.job}/>
|
||||||
</Link>
|
</Link>
|
||||||
</Tag>
|
</Tag>
|
||||||
))}
|
))}
|
||||||
|
|||||||