From e83badb4542f1b58fa6ab68af9087cd997e249a6 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Tue, 6 Feb 2024 18:20:58 -0500 Subject: [PATCH] - the great reformat Signed-off-by: Dave Richer --- .circleci/config.yml | 2 +- .eslintrc.json | 1 - .vscode/launch.json | 1 - README.MD | 5 +- _reference/DeploymentChecklist.md | 3 +- _reference/JSReportSetup.md | 6 +- _reference/Jest CheatSheet.md | 110 +- _reference/New Hasura Deployment.md | 6 +- _reference/OEC/Audatex.xsl | 158 +- _reference/OEC/AudatexMapping.xml | 289 +- _reference/OEC/CCC.xsl | 145 +- _reference/OEC/CCCMapping.xml | 277 +- _reference/OEC/Mitchell.xsl | 140 +- _reference/OEC/MitchellMapping.xml | 283 +- _reference/Responsibility Center Setup.md | 44 +- _reference/SampleMetadata.md | 40 +- _reference/Test_CDK_Acct Config.json | 571 +- _reference/dropletSetup.md | 70 +- _reference/firebase.md | 20 +- _reference/test-ecoystem.config.js | 34 +- client/README.md | 20 +- client/cypress.config.js | 26 +- .../e2e/01-General Render/01-home.cy.js | 41 +- .../cypress/e2e/1-getting-started/todo.cy.js | 232 +- .../e2e/2-advanced-examples/actions.cy.js | 470 +- .../e2e/2-advanced-examples/aliasing.cy.js | 54 +- .../e2e/2-advanced-examples/assertions.cy.js | 322 +- .../e2e/2-advanced-examples/connectors.cy.js | 170 +- .../e2e/2-advanced-examples/cookies.cy.js | 114 +- .../e2e/2-advanced-examples/cypress_api.cy.js | 300 +- .../e2e/2-advanced-examples/files.cy.js | 148 +- .../2-advanced-examples/local_storage.cy.js | 82 +- .../e2e/2-advanced-examples/location.cy.js | 52 +- .../e2e/2-advanced-examples/misc.cy.js | 196 +- .../e2e/2-advanced-examples/navigation.cy.js | 100 +- .../network_requests.cy.js | 298 +- .../e2e/2-advanced-examples/querying.cy.js | 198 +- .../spies_stubs_clocks.cy.js | 313 +- .../e2e/2-advanced-examples/traversal.cy.js | 198 +- .../e2e/2-advanced-examples/utilities.cy.js | 178 +- .../e2e/2-advanced-examples/viewport.cy.js | 92 +- .../e2e/2-advanced-examples/waiting.cy.js | 46 +- .../e2e/2-advanced-examples/window.cy.js | 30 +- client/cypress/plugins/index.js | 4 +- client/cypress/tsconfig.json | 8 +- client/public/firebase-messaging-sw.js | 78 +- client/public/index.html | 126 +- client/public/logo.svg | 16 +- client/src/App/App.jsx | 2 +- client/src/App/App.styles.scss | 2 + client/src/assets/C2QB_composite_English.svg | 61 +- .../src/assets/C2QB_transparent_English.svg | 61 +- client/src/assets/User.svg | 9 +- client/src/assets/car.svg | 4 +- client/src/assets/icons/technology.svg | 20 +- .../assets/qbo/C2QB_green_btn_med_default.svg | 5 +- .../assets/qbo/C2QB_green_btn_med_hover.svg | 7 +- .../qbo/C2QB_green_btn_short_default.svg | 5 +- .../assets/qbo/C2QB_green_btn_short_hover.svg | 7 +- .../qbo/C2QB_green_btn_tall_default.svg | 5 +- .../assets/qbo/C2QB_green_btn_tall_hover.svg | 7 +- .../qbo/C2QB_transparent_btn_med_default.svg | 5 +- .../qbo/C2QB_transparent_btn_med_hover.svg | 7 +- .../C2QB_transparent_btn_short_default.svg | 5 +- .../qbo/C2QB_transparent_btn_short_hover.svg | 7 +- .../qbo/C2QB_transparent_btn_tall_default.svg | 5 +- .../qbo/C2QB_transparent_btn_tall_hover.svg | 7 +- client/src/assets/unfolded_car-orig.svg | 1555 ++- client/src/assets/unfolded_car.svg | 1553 ++- client/src/assets/unfolded_car_clean.svg | 352 +- client/src/components/PrivateRoute.js | 2 +- client/src/components/_test/test.page.jsx | 42 +- .../accounting-payables-table.component.jsx | 420 +- .../accounting-payments-table.component.jsx | 406 +- ...accounting-receivables-table.component.jsx | 440 +- .../src/components/alert/alert.component.jsx | 4 +- .../components/alert/alert.component.test.js | 24 +- .../allocations-assignment.component.jsx | 116 +- .../allocations-assignment.component.test.js | 52 +- .../allocations-assignment.container.jsx | 82 +- .../allocations-bulk-assignment.component.jsx | 110 +- .../allocations-bulk-assignment.container.jsx | 82 +- .../allocations-employee-label.component.jsx | 24 +- .../allocations-employee-label.container.jsx | 52 +- .../audit-trail-list.component.jsx | 160 +- .../audit-trail-list.container.jsx | 66 +- .../email-audit-trail-list.component.jsx | 116 +- .../audit-trail-values.component.jsx | 47 +- .../barcode-popup/barcode-popup.component.jsx | 39 +- .../bill-cm-returns-table.component.jsx | 249 +- .../bill-cm-returns-table.styles.scss | 26 +- .../bill-delete-button.component.jsx | 138 +- .../bill-detail-edit-component.jsx | 108 +- .../bill-detail-edit-return.component.jsx | 336 +- .../bill-detail-edit.container.jsx | 62 +- .../bill-enter-modal.container.jsx | 754 +- .../bill-form-lines-extended.component.jsx | 245 +- ...form-lines.extended.formitem.component.jsx | 536 +- .../bill-form/bill-form.component.jsx | 322 +- .../bill-form/bill-form.container.jsx | 133 +- .../bill-form/bill-form.lines.component.jsx | 1272 ++- .../bill-form/bill-form.totals.utility.js | 74 +- .../bill-inventory-table.component.jsx | 308 +- .../bill-inventory-table.styles.scss | 26 +- .../bill-line-search-select.component.jsx | 136 +- .../bill-mark-exported-button.component.jsx | 164 +- .../bill-print-button.component.jsx | 68 +- .../bill-reexport-button.component.jsx | 129 +- .../billline-add-inventory.component.jsx | 271 +- .../bills-list-table.component.jsx | 431 +- .../bills-vendors-list.component.jsx | 220 +- .../ca-bc-etf-table-modal.container.jsx | 162 +- .../ca-bc-etf-table.modal.component.jsx | 66 +- .../ca-bc-pvrt-calculator.component.jsx | 89 +- .../card-payment-modal.component..jsx | 666 +- .../card-payment-modal.container..jsx | 80 +- .../chat-affix/chat-affix.container.jsx | 169 +- .../chat-archive-button.component.jsx | 48 +- .../chat-conversation-list.component.jsx | 4 +- .../chat-conversation-list.styles.scss | 2 + ...chat-conversation-title-tags.component.jsx | 100 +- .../chat-conversation-title.component.jsx | 36 +- .../chat-conversation.component.jsx | 38 +- .../chat-conversation.container.jsx | 146 +- .../chat-label/chat-label.component.jsx | 127 +- .../chat-media-selector.component.jsx | 163 +- .../chat-message-list.component.jsx | 193 +- .../chat-message-list.styles.scss | 2 + .../chat-new-conversation.component.jsx | 86 +- .../chat-open-button.component.jsx | 76 +- .../chat-popup/chat-popup.component.jsx | 226 +- .../chat-popup/chat-popup.styles.scss | 1 + .../chat-presets/chat-presets.component.jsx | 51 +- .../chat-print-button.component.jsx | 71 +- .../chat-send-message.component.jsx | 187 +- .../chat-tag-ro/chat-tag-ro.component.jsx | 78 +- .../chat-tag-ro/chat-tag-ro.container.jsx | 106 +- .../checkbox/checkbox.component.jsx | 36 +- .../config-form-components.component.jsx | 26 +- .../config-form-types.js | 11 +- .../rate/rate.component.jsx | 34 +- .../slider/slider.component.jsx | 34 +- .../text/text.component.jsx | 34 +- .../textarea/textarea.component.jsx | 34 +- .../conflict/conflict.component.jsx | 46 +- .../contract-cars/contract-cars.component.jsx | 288 +- .../contract-cars/contract-cars.container.jsx | 58 +- .../contract-convert-to-ro.component.jsx | 767 +- .../contract-courtesy-car-block.component.jsx | 56 +- .../contract-form-job-prefill.component.jsx | 79 +- .../contract-form/contract-form.component.jsx | 646 +- .../contract-job-block.component.jsx | 57 +- .../contract-jobs/contract-jobs.component.jsx | 370 +- .../contract-jobs/contract-jobs.container.jsx | 60 +- ...ntract-license-decode-button.component.jsx | 218 +- .../contract-status-select.component.jsx | 55 +- .../contracts-find-modal.component.jsx | 54 +- .../contracts-find-modal.container.jsx | 296 +- .../contracts-list.component.jsx | 404 +- ...ontracts-rates-change-button.component.jsx | 60 +- .../courtesy-car-contract-list.component.jsx | 184 +- .../courtesy-car-form.component.jsx | 662 +- .../courtesy-car-fuel-select.component.jsx | 120 +- ...ourtesy-car-readiness-select.component.jsx | 61 +- .../courtesy-car-return-modal.component.jsx | 86 +- .../courtesy-car-return-modal.container.jsx | 146 +- .../courtesy-car-status-select.component.jsx | 77 +- .../courtesy-cars-list.component.jsx | 539 +- .../csi-response-form.container.jsx | 78 +- .../csi-response-list-paginated.component.jsx | 246 +- .../monthly-employee-efficiency.component.jsx | 276 +- .../monthly-job-costing.component.jsx | 300 +- .../monthly-labor-sales.component.jsx | 242 +- .../monthly-parts-sales.component.jsx | 234 +- .../monthly-revenue-graph.component.jsx | 144 +- .../projected-monthly-sales.component.jsx | 79 +- .../refresh-required.component.jsx | 40 +- .../scheduled-in-today.component.jsx | 394 +- .../scheduled-out-today.component.jsx | 332 +- .../total-production-dollars.component.jsx | 40 +- .../total-production-hours.component.jsx | 98 +- .../dashboard-grid.component.jsx | 648 +- .../dashboard-grid/dashboard-grid.styles.scss | 21 + .../dashboard-grid/dashboard-grid.utils.js | 2 +- .../data-label/data-label.component.jsx | 82 +- .../dms-allocations-summary-ap.component.jsx | 276 +- .../dms-allocations-summary.component.jsx | 248 +- .../dms-cdk-makes/dms-cdk-makes.component.jsx | 186 +- .../dms-cdk-makes.refetch.component.jsx | 55 +- .../dms-customer-selector.component.jsx | 296 +- .../dms-log-events.component.jsx | 85 +- .../document-editor.component.jsx | 184 +- .../document-editor.container.jsx | 92 +- .../documents-local-upload.component.jsx | 122 +- .../documents-local-upload.utility.js | 136 +- .../documents-upload.component.jsx | 207 +- .../documents-upload.utility.js | 379 +- .../email-documents.component.jsx | 115 +- .../email-overlay/email-overlay.container.jsx | 457 +- .../email-test/email-test-component.jsx | 197 +- .../employee-search-select.component.jsx | 73 +- .../error-boundary.component.jsx | 235 +- client/src/components/eula/eula.component.jsx | 6 +- .../export-logs-count-display.component.jsx | 38 +- .../fcm-notification.component.jsx | 58 +- .../feature-wrapper.component.jsx | 52 +- .../form-date-time-picker.component.jsx | 72 +- .../form-fields-changed-alert.component.jsx | 122 +- ...form-input-number-calculator.component.jsx | 194 +- .../colorpicker-form-item.component.jsx | 28 +- .../currency-form-item.component.jsx | 24 +- .../email-form-item.component.jsx | 37 +- .../labor-type-form-item.component.jsx | 12 +- .../part-type-form-item.component.jsx | 12 +- .../phone-form-item.component.jsx | 40 +- .../read-only-form-item.component.jsx | 26 +- .../form-list-move-arrows.component.jsx | 35 +- .../global-loading-bar.component.jsx | 90 +- .../global-search-os.component.jsx | 382 +- .../global-search/global-search.component.jsx | 347 +- .../components/header/header.component.jsx | 2 +- .../components/header/header.container.jsx | 36 +- .../help-rescue/help-rescue.component.jsx | 94 +- .../indefinite-loading.component.jsx | 76 +- .../inventory-bill-ro.component.jsx | 114 +- .../inventory-line-delete.component.jsx | 118 +- .../inventory-list.component.jsx | 2 +- .../inventory-list.container.jsx | 93 +- .../inventory-upsert-modal.component.jsx | 113 +- .../inventory-upsert-modal.container.jsx | 204 +- .../job-3rd-party-modal.component.jsx | 426 +- .../job-at-change/job-at-change.component.jsx | 101 +- .../schedule-event.color.component.jsx | 112 +- .../schedule-event.component.jsx | 707 +- .../schedule-event.container.jsx | 140 +- .../schedule-event.note.component.jsx | 123 +- .../job-audit-trail.component.jsx | 285 +- .../job-bills-total.component.jsx | 552 +- .../job-calculate-totals.component.jsx | 97 +- .../job-checklist-form.component.jsx | 614 +- .../job-checklist-template-list.component.jsx | 141 +- .../job-checklist-display.component.jsx | 14 +- .../job-checklist/job-checklist.component.jsx | 27 +- .../job-costing-modal.component.jsx | 46 +- .../job-costing-modal.container.jsx | 107 +- .../job-costing-modal.pie.component.jsx | 121 +- .../job-costing-parts-table.component.jsx | 233 +- .../job-costing-statistics.component.jsx | 117 +- .../job-create-iou.component.jsx | 189 +- .../job-damage-visual.component.jsx | 1484 +-- .../job-detail-cards.component.jsx | 283 +- .../job-detail-cards.damage.component.jsx | 26 +- .../job-detail-cards.documents.component.jsx | 55 +- .../job-detail-cards.insurance.component.jsx | 45 +- .../job-detail-cards.notes.component.jsx | 66 +- .../job-detail-cards.parts.component.jsx | 22 +- .../job-detail-cards.template.component.jsx | 68 +- .../job-detail-cards.totals.component.jsx | 62 +- .../job-detail-cards.vehicle.component.jsx | 30 +- .../job-detail-lines/job-lines.component.jsx | 1178 ++- .../job-detail-lines/job-lines.container.jsx | 83 +- .../job-employee-assignments.component.jsx | 359 +- .../job-employee-assignments.container.jsx | 177 +- .../job-lifecycle/job-lifecycle.component.jsx | 3 +- .../job-line-convert-to-labor.component.jsx | 447 +- .../job-line-location-popup.component.jsx | 141 +- .../job-line-note-popup.component.jsx | 136 +- .../job-line-status-popup.component.jsx | 137 +- .../job-lines-bill-reference.component.jsx | 27 +- .../job-lines-upsert-modal.component.jsx | 565 +- .../job-lines-upsert-modal.container.jsx | 254 +- .../job-parts-queue-count.component.jsx | 141 +- .../job-payments/job-payments.component.jsx | 431 +- ...b-reconciliation-bills-table.component.jsx | 214 +- .../job-reconciliation-modal.component.jsx | 98 +- .../job-reconciliation.modal.container.jsx | 98 +- ...b-reconciliation-parts-table.component.jsx | 240 +- .../job-reconciliation-totals.component.jsx | 221 +- .../job-reconciliation-totals.utility.js | 182 +- .../job-remove-from-parts-queue.component.jsx | 62 +- .../job-scoreboard-add-button.component.jsx | 370 +- .../job-search-select.component.jsx | 206 +- .../job-sync-button.component.jsx | 40 +- .../job-totals-table.component.jsx | 151 +- .../job-totals.table.labor.component.jsx | 354 +- .../job-totals.table.other.component.jsx | 196 +- .../job-totals.table.parts.component.jsx | 178 +- .../job-totals.table.totals.component.jsx | 211 +- .../jobs-admin-change.status.component.jsx | 100 +- .../jobs-admin-class.component.jsx | 142 +- .../jobs-admin-dates.component.jsx | 354 +- .../jobs-admin-delete-intake.component.jsx | 126 +- .../jobs-admin-mark-reexport.component.jsx | 281 +- ...jobs-admin-owner-reassociate.component.jsx | 117 +- .../jobs-admin-remove-ar.component.jsx | 104 +- .../jobs-admin-unvoid.component.jsx | 111 +- ...bs-admin-vehicle-reassociate.component.jsx | 117 +- .../jobs-available-scan.component.jsx | 293 +- ...jobs-available-supplement.estlines.util.js | 144 +- .../jobs-available-supplement.headerfields.js | 460 +- .../jobs-available-table.component.jsx | 484 +- .../jobs-available-table.container.jsx | 923 +- .../jobs-change-status.component.jsx | 209 +- .../jobs-close-auto-allocate.component.jsx | 150 +- .../jobs-close-export-button.component.jsx | 424 +- .../jobs-close-lines.component.jsx | 401 +- .../jobs-close-lines.styles.scss | 1 + .../jobs-convert-button.component.jsx | 529 +- .../jobs-create-jobs-info.component.jsx | 692 +- .../jobs-create-owner-info.component.jsx | 82 +- .../jobs-create-owner-info.container.jsx | 34 +- .../jobs-create-owner-info.new.component.jsx | 336 +- ...obs-create-owner-info.search.component.jsx | 308 +- .../jobs-create-vehicle-info.component.jsx | 125 +- .../jobs-create-vehicle-info.container.jsx | 38 +- ...jobs-create-vehicle-info.new.component.jsx | 382 +- ...eate-vehicle-info.predefined.component.jsx | 152 +- ...s-create-vehicle-info.search.component.jsx | 252 +- .../predefined-vehicles.js | 7976 +++++++------- ...jobs-detail-change-estimator.component.jsx | 48 +- ...bs-detail-change-filehandler.component.jsx | 68 +- .../jobs-detail-checklists.component.jsx | 32 +- .../jobs-detail-dates.component.jsx | 297 +- .../jobs-detail-general.component.jsx | 560 +- ...il-header-actions.addtoproduction.util.jsx | 74 +- ...bs-detail-header-actions.duplicate.util.js | 210 +- .../jobs-detail-header.component.jsx | 544 +- .../jobs-detail-labor.component.jsx | 134 +- .../jobs-detail-labor.container.jsx | 44 +- .../jobs-detail-pli.component.jsx | 78 +- .../jobs-detail-pli.container.jsx | 82 +- ...s-detail-rates-change-button.component.jsx | 64 +- .../jobs-detail-rates.component.jsx | 460 +- .../jobs-detail-rates.parts.component.jsx | 1550 +-- .../jobs-detail-totals.component.jsx | 19 +- .../job-documents.utility.js | 36 +- ...bs-document-gallery.download.component.jsx | 249 +- ...bs-document-gallery.reassign.component.jsx | 302 +- .../jobs-documents-gallery.component.jsx | 469 +- .../jobs-documents-gallery.container.jsx | 52 +- ...obs-documents-gallery.delete.component.jsx | 102 +- ...s-documents-gallery.external.component.jsx | 91 +- ...-documents-gallery.selectall.component.jsx | 120 +- ...jobs-documents-local-gallery.container.jsx | 380 +- ...cuments-local-gallery.delete.component.jsx | 128 +- .../jobs-documents-local-gallery.download.jsx | 115 +- ...ments-local-gallery.external.component.jsx | 129 +- ...ments-local-gallery.reassign.component.jsx | 156 +- ...ents-local-gallery.selectall.component.jsx | 72 +- .../jobs-export-all-button.component.jsx | 413 +- .../jobs-find-modal.component.jsx | 392 +- .../jobs-find-modal.container.jsx | 13 +- .../jobs-mark-pst-exempt.component.jsx | 90 +- .../jobs-notes/jobs-notes.container.jsx | 115 +- .../jobs-notes/jobs.notes.component.jsx | 371 +- .../jobs-related-ros.component.jsx | 46 +- ...-allocations-adjustment-edit.component.jsx | 329 +- .../labor-allocations-table.component.jsx | 500 +- .../labor-allocations-table.styles.scss | 1 + .../labor-allocations-table.utility.js | 72 +- .../layout-form-row.component.jsx | 140 +- .../loading-skeleton.component.jsx | 12 +- .../loading-spinner.component.jsx | 40 +- .../manage-sign-in-button.component.jsx | 37 +- .../components/no-shop/no-shop.component.jsx | 16 +- .../not-found/not-found.component.jsx | 24 +- .../note-upsert-modal.component.jsx | 212 +- .../note-upsert-modal.container.jsx | 242 +- .../owner-detail-form.component.jsx | 204 +- .../owner-detail-form.container.jsx | 191 +- .../owner-detail-jobs.component.jsx | 242 +- .../owner-detail-update-jobs.component.jsx | 94 +- .../owner-find-modal.component.jsx | 228 +- .../owner-find-modal.container.jsx | 132 +- .../owner-name-display.component.jsx | 61 +- .../owner-search-select.component.jsx | 155 +- .../owner-tag-popover.component.jsx | 144 +- .../owners-list/owners-list.component.jsx | 252 +- .../owners-list/owners-list.container.jsx | 70 +- .../partner-ping/partner-ping.component.jsx | 101 +- .../parts-order-backorder-eta.component.jsx | 151 +- .../parts-order-cm-received.component.jsx | 114 +- .../parts-order-delete-line.component.jsx | 84 +- ...-order-line-backorder-button.component.jsx | 182 +- .../parts-order-list-table.component.jsx | 918 +- .../parts-order-modal.container.jsx | 10 +- .../parts-receive-modal.component.jsx | 244 +- .../parts-receive-modal.container.jsx | 201 +- .../parts-status-pie.component.jsx | 162 +- .../payable-export-all-button.component.jsx | 427 +- .../payable-export-button.component.jsx | 413 +- ...yable-mark-selected-exported.component.jsx | 163 +- .../payment-expanded-row.component.jsx | 323 +- .../payment-export-button.component.jsx | 399 +- .../payment-form.totalpayments.component.jsx | 84 +- .../payment-mark-export-button-component.jsx | 160 +- ...yment-mark-selected-exported.component.jsx | 163 +- .../payment-modal/payment-modal.container.jsx | 346 +- .../payment-reexport-button.component.jsx | 106 +- .../payments-export-all-button.component.jsx | 392 +- .../payments-generate-link.component.jsx | 270 +- .../payment-list-paginated.component.jsx | 570 +- .../phonebook-form.component.jsx | 332 +- .../phonebook-form.container.jsx | 259 +- .../print-center-item.component.jsx | 134 +- .../print-center-jobs-labels.component.jsx | 230 +- .../print-center-jobs.component.jsx | 192 +- .../print-center-modal.component.jsx | 34 +- .../print-center-modal.container.jsx | 62 +- .../print-center-speed-print.component.jsx | 134 +- .../print-wrapper/print-wrapper.component.jsx | 48 +- .../production-board-filters.component.jsx | 69 +- .../production-board-card.styles.scss | 2 + ...ard-kanban-card-color-legend.component.jsx | 82 +- ...production-board-kanban-card.component.jsx | 415 +- ...n-board-kanban.card-settings.component.jsx | 328 +- .../production-board-kanban.component.jsx | 558 +- .../production-board-kanban.container.jsx | 165 +- .../production-board-kanban.styles.scss | 22 + .../production-list-columns.add.component.jsx | 115 +- ...roduction-list-columns.alert.component.jsx | 140 +- ...on-list-columns.bodypriority.component.jsx | 108 +- ...duction-list-columns.comment.component.jsx | 143 +- .../production-list-columns.data.js | 1186 +-- ...-list-columns.detailpriority.component.jsx | 110 +- ...n-list-columns.empassignment.component.jsx | 342 +- ...n-list-columns.lastcontacted.component.jsx | 274 +- ...n-list-columns.paintpriority.component.jsx | 108 +- ...n-list-columns.partsreceived.component.jsx | 60 +- ...-list-columns.productionnote.component.jsx | 196 +- ...roduction-list-columns.status.category.jsx | 102 +- ...oduction-list-columns.status.component.jsx | 118 +- ...ution-list-columns.touchtime.component.jsx | 51 +- .../production-list-detail.component.jsx | 328 +- ...tion-list-save-config-button.component.jsx | 173 +- ...ction-list-table-view-select.component.jsx | 279 +- .../production-list-table.component.jsx | 10 +- .../production-list-table.container.jsx | 124 +- ...uction-list-table.resizeable.component.jsx | 46 +- .../production-remove-button.component.jsx | 74 +- .../production-sublets-manage.component.jsx | 203 +- .../profile-my/profile-my.component.jsx | 263 +- .../profile-shops/profile-shops.component.jsx | 141 +- .../profile-shops/profile-shops.container.jsx | 114 +- .../qbo-authorize/qbo-authorize.component.jsx | 86 +- .../components/rbac-wrapper/rbac-defaults.js | 110 +- .../rbac-wrapper/rbac-wrapper.component.jsx | 97 +- .../report-center-modal.component.jsx | 551 +- .../report-center-modal.container.jsx | 60 +- .../report-center-modal.styles.scss | 2 + .../schedule-ats-summary.component.jsx | 76 +- .../schedule-block-day.component.jsx | 113 +- ...chedule-calendar-header-graph.component.js | 156 +- .../schedule-calendar-header.component.js | 401 +- .../schedule-calendar-util.js | 48 +- .../schedule-calendar.styles.scss | 5 +- .../scheduler-calendar-wrapper.component.jsx | 276 +- .../schedule-calendar.component.jsx | 309 +- .../schedule-calendar.container.jsx | 134 +- .../schedule-day-view.component.jsx | 28 +- .../schedule-day-view.container.jsx | 98 +- .../schedule-job-modal.component.jsx | 391 +- .../schedule-job-modal.container.jsx | 445 +- .../schedule-job-modal.scss | 1 + .../schedule-manual-event.component.jsx | 295 +- .../schedule-production-list.component.jsx | 123 +- .../schedule-production-list.styles.scss | 1 + .../schedule-verify-integrity.component.jsx | 91 +- .../scoreboard-chart/chart-custom-tooltip.jsx | 64 +- .../scoreboard-chart.component.jsx | 296 +- .../scoreboard-day-stats.component.jsx | 76 +- .../scoreboard-display.component.jsx | 198 +- .../scoreboard-entry-edit.component.jsx | 208 +- .../scoreboard-jobs-list.component.jsx | 2 +- .../scoreboard-last-days.component.jsx | 51 +- .../scorebard-remove-button.component.jsx | 76 +- .../scoreboard-targets-table.component.jsx | 459 +- .../scoreboard-targets-table.util.js | 36 +- .../chart-custom-tooltip.jsx | 44 +- ...scoreboard-timetickets.chart.component.jsx | 82 +- ...scoreboard-timetickets.stats.component.jsx | 1250 +-- ...rd-timetickets.targets-table.component.jsx | 543 +- .../scoreboard-timetickets.bar.component.jsx | 123 +- .../scoreboard-timetickets.component.jsx | 630 +- ...scoreboard-timetickets.stats.component.jsx | 252 +- .../shop-csi-config-form.component.jsx | 37 +- .../shop-csi-config.component.jsx | 88 +- .../shop-employees-add-vacation.component.jsx | 220 +- .../shop-employees-form.component.jsx | 795 +- .../shop-employees-list.component.jsx | 254 +- .../shop-employees.container.jsx | 47 +- .../shop-info/shop-info.container.jsx | 147 +- .../shop-info/shop-info.general.component.jsx | 3202 +++--- .../shop-info/shop-info.intake.component.jsx | 692 +- .../shop-info.laborrates.component.jsx | 664 +- .../shop-info/shop-info.parts-scan.jsx | 146 +- .../shop-info/shop-info.rbac.component.jsx | 1372 +-- ...p-info.responsibilitycenters.component.jsx | 4 +- .../shop-info.rostatus.component.jsx | 2 +- .../shop-info.scheduling.component.jsx | 658 +- .../shop-info.speedprint.component.jsx | 188 +- .../shop-sub-status.component.jsx | 51 +- .../shop-template-add.component.jsx | 2 +- .../shop-template-delete.component.jsx | 80 +- ...-template-editor-save-button.component.jsx | 99 +- .../shop-template-test-render.component.jsx | 115 +- .../shop-templates-list.container.jsx | 138 +- .../shop-users-auth-edit.component.jsx | 88 +- .../shop-users/shop-users.component.jsx | 127 +- .../sign-in-form/sign-in-form.component.jsx | 185 +- .../sign-in-form/sign-in-form.styles.scss | 2 + .../tech-header/tech-header.component.jsx | 43 +- .../tech-job-clock-in-form.component.jsx | 149 +- .../tech-job-clock-in-form.container.jsx | 297 +- .../tech-job-clock-out-button.component.jsx | 569 +- .../tech-job-clock-out-delete.component.jsx | 80 +- .../tech-job-print-tickets.component.jsx | 256 +- .../tech-job-statistics.component.jsx | 227 +- .../tech-login/tech-login.styles.scss | 2 + .../tech-lookup-jobs-list.component.jsx | 414 +- .../tech-sider/tech-sider.component.jsx | 181 +- .../time-tickets-dates-selector.component.jsx | 76 +- .../time-ticket-enter-button.component.jsx | 47 +- .../time-ticket-list.component.jsx | 603 +- .../time-ticket-modal.component.jsx | 721 +- .../time-ticket-modal.container.jsx | 465 +- .../time-ticket-shift-active.component.jsx | 124 +- .../time-ticket-shift-form.component.jsx | 89 +- .../time-ticket-shift-form.container.jsx | 243 +- .../time-ticket-shift.container.jsx | 143 +- ...ime-tickets-attendance-table.component.jsx | 67 +- .../time-tickets-payroll-table.component.jsx | 67 +- ...me-tickets-summary-employees.component.jsx | 577 +- .../update-alert/update-alert.component.jsx | 122 +- .../user-request-pw-reset.styles.scss | 52 +- .../user-request-reset-pw.component.jsx | 150 +- .../user-validate-pw-reset.component.jsx | 235 +- .../user-validate-pw-reset.styles.scss | 52 +- .../vehicle-detail-form.component.jsx | 264 +- .../vehicle-detail-form.container.jsx | 196 +- .../vehicle-detail-jobs.component.jsx | 228 +- .../vehicle-detail-update-jobs.component.jsx | 82 +- .../vehicle-search-select.component.jsx | 156 +- .../vehicle-tag-popover.component.jsx | 132 +- .../vehicle-vin-display.component.jsx | 26 +- .../vehicles-list/vehicles-list.component.jsx | 223 +- .../vehicles-list/vehicles-list.container.jsx | 70 +- .../vendors-form/vendors-form.component.jsx | 9 +- .../vendors-form/vendors-form.container.jsx | 258 +- .../vendors-list/vendors-list.component.jsx | 202 +- .../vendors-list/vendors-list.container.jsx | 64 +- .../vendors-phonebook-add.component.jsx | 138 +- client/src/firebase/firebase.utils.js | 126 +- client/src/graphql/accounting.queries.js | 294 +- client/src/graphql/allocations.queries.js | 26 +- client/src/graphql/apollo-error-handling.js | 28 +- client/src/graphql/appointments.queries.js | 2 +- client/src/graphql/associations.queries.js | 2 +- client/src/graphql/audit_trail.queries.js | 76 +- client/src/graphql/available-jobs.queries.js | 2 +- client/src/graphql/bill-lines.queries.js | 40 +- client/src/graphql/bills.queries.js | 400 +- client/src/graphql/bodyshop.queries.js | 597 +- client/src/graphql/cccontracts.queries.js | 410 +- client/src/graphql/conversations.queries.js | 2 +- client/src/graphql/courtesy-car.queries.js | 2 +- client/src/graphql/csi.queries.js | 138 +- client/src/graphql/dms.queries.js | 18 +- client/src/graphql/documents.queries.js | 190 +- client/src/graphql/employees.queries.js | 214 +- client/src/graphql/inventory.queries.js | 294 +- .../src/graphql/job-conversations.queries.js | 2 +- client/src/graphql/jobs-lines.queries.js | 442 +- client/src/graphql/jobs.queries.js | 4216 ++++---- client/src/graphql/messages.queries.js | 24 +- client/src/graphql/metadata.queries.js | 24 +- client/src/graphql/notes.queries.js | 124 +- client/src/graphql/owners.queries.js | 306 +- client/src/graphql/parts-orders.queries.js | 2 +- .../src/graphql/payment_response.queries.js | 2 +- client/src/graphql/payments.queries.js | 308 +- client/src/graphql/phonebook.queries.js | 142 +- client/src/graphql/schema.js | 2 +- client/src/graphql/scoreboard.queries.js | 202 +- client/src/graphql/search.queries.js | 118 +- client/src/graphql/templates.queries.js | 100 +- client/src/graphql/timetickets.queries.js | 2 +- client/src/graphql/user.queries.js | 138 +- client/src/graphql/vehicles.queries.js | 316 +- client/src/graphql/vendors.queries.js | 188 +- client/src/index.css | 12 +- client/src/landing/Banner0.jsx | 103 +- client/src/landing/Content0.jsx | 80 +- client/src/landing/Content1.jsx | 118 +- client/src/landing/Content12.jsx | 100 +- client/src/landing/Content3.jsx | 168 +- client/src/landing/Content4.jsx | 98 +- client/src/landing/Footer1.jsx | 113 +- client/src/landing/Nav0.jsx | 242 +- client/src/landing/Pricing1.jsx | 128 +- client/src/landing/Pricing2.jsx | 210 +- client/src/landing/data.source.js | 2017 ++-- client/src/landing/index.jsx | 103 +- client/src/landing/less/banner0.less | 17 +- client/src/landing/less/common.less | 2 +- client/src/landing/less/content.less | 10 +- client/src/landing/less/content0.less | 3 +- client/src/landing/less/content1.less | 13 + client/src/landing/less/content12.less | 10 +- client/src/landing/less/content3.less | 10 + client/src/landing/less/content4.less | 5 + client/src/landing/less/footer1.less | 25 +- client/src/landing/less/nav0.less | 6 +- client/src/landing/less/pricing1.less | 18 +- client/src/landing/less/pricing2.less | 2 +- client/src/landing/utils.js | 25 +- .../accounting-payables.container.jsx | 130 +- .../accounting-payments.container.jsx | 137 +- .../accounting-qbo/accounting-qbo.page.jsx | 67 +- .../accounting-receivables.container.jsx | 140 +- .../src/pages/bills/bills.page.component.jsx | 603 +- .../src/pages/bills/bills.page.container.jsx | 116 +- .../contract-create.page.component.jsx | 119 +- .../contract-create.page.container.jsx | 254 +- .../contract-detail.page.component.jsx | 10 +- .../contract-detail.page.container.jsx | 291 +- .../contracts/contracts.page.component.jsx | 26 +- .../contracts/contracts.page.container.jsx | 116 +- .../courtesy-car-create.page.container.jsx | 143 +- .../courtesy-car-detail.page.component.jsx | 43 +- .../courtesy-car-detail.page.container.jsx | 351 +- .../courtesy-cars.page.component.jsx | 16 +- .../courtesy-cars.page.container.jsx | 69 +- client/src/pages/csi/csi.container.page.jsx | 316 +- .../pages/dashboard/dashboard.container.jsx | 54 +- .../src/pages/disclaimer/disclaimer.page.jsx | 38 +- .../dms-payables/dms-payables.container.jsx | 266 +- client/src/pages/dms/dms.container.jsx | 356 +- .../export-logs.page.component.jsx | 354 +- .../export-logs.page.container.jsx | 50 +- client/src/pages/help/help.page.jsx | 10 +- client/src/pages/inventory/inventory.page.jsx | 41 +- .../src/pages/jobs-admin/jobs-admin.page.jsx | 212 +- .../src/pages/jobs-all/jobs-all.container.jsx | 115 +- .../jobs-available.page.container.jsx | 96 +- .../jobs-checklist-view.page.jsx | 213 +- .../pages/jobs-close/jobs-close.component.jsx | 1009 +- .../pages/jobs-close/jobs-close.container.jsx | 133 +- .../jobs-create/jobs-create.component.jsx | 289 +- .../jobs-create/jobs-create.container.jsx | 513 +- .../pages/jobs-create/jobs-create.context.js | 1 + .../jobs-delivery.page.container.jsx | 123 +- .../jobs-detail.page.component.jsx | 618 +- .../jobs-detail.page.container.jsx | 191 +- .../jobs-intake.page.container.jsx | 147 +- .../src/pages/jobs-ready/jobs-ready.page.jsx | 45 +- client/src/pages/jobs/jobs.page.jsx | 45 +- client/src/pages/landing/landing.page.jsx | 26 +- .../manage-root.page.component.jsx | 25 +- .../manage-root.page.container.jsx | 35 +- .../pages/manage/manage.page.component.jsx | 2 +- .../pages/manage/manage.page.container.jsx | 44 +- .../owners-detail.page.component.jsx | 26 +- .../owners-detail.page.container.jsx | 113 +- .../pages/owners/owners.page.component.jsx | 2 +- .../pages/owners/owners.page.container.jsx | 40 +- .../parts-queue.page.component.jsx | 576 +- .../parts-queue.page.container.jsx | 44 +- .../payments-all.container.page.jsx | 117 +- .../phonebook/phonebook.page.component.jsx | 405 +- .../phonebook/phonebook.page.container.jsx | 104 +- .../production-board.component.jsx | 2 +- .../production-board.container.jsx | 70 +- .../production-list.component.jsx | 2 +- .../production-list.container.jsx | 48 +- .../pages/profile/profile.container.page.jsx | 36 +- client/src/pages/profile/profile.page.jsx | 18 +- .../reset-password.component.jsx | 12 +- .../schedule/schedule.page.component.jsx | 2 +- .../schedule/schedule.page.container.jsx | 44 +- .../scoreboard/scoreboard.page.container.jsx | 153 +- .../pages/shift-clock/shift-clock.page.jsx | 10 +- .../shop-csi/shop-csi.container.page.jsx | 136 +- .../shop-vendor.page.component.jsx | 12 +- .../shop-vendor.page.container.jsx | 69 +- client/src/pages/sign-in/sign-in.page.jsx | 10 +- .../tech-job-clock.component.jsx | 30 +- .../tech-lookup/tech-lookup.container.jsx | 28 +- .../tech-shift-clock.component.jsx | 22 +- client/src/pages/tech/tech.page.component.jsx | 106 +- client/src/pages/tech/tech.page.container.jsx | 46 +- .../temporary-docs.component.jsx | 62 +- .../temporary-docs.container.jsx | 60 +- .../time-tickets/time-tickets.container.jsx | 146 +- .../vehicles-detail.page.component.jsx | 30 +- .../vehicles-detail.page.container.jsx | 149 +- .../vehicles/vehicles.page.component.jsx | 2 +- .../vehicles/vehicles.page.container.jsx | 37 +- .../redux/application/application.actions.js | 56 +- .../redux/application/application.reducer.js | 188 +- .../redux/application/application.sagas.js | 545 +- .../application/application.selectors.js | 46 +- .../redux/application/application.types.js | 28 +- client/src/redux/email/email.actions.js | 16 +- client/src/redux/email/email.reducer.js | 48 +- client/src/redux/email/email.sagas.js | 14 +- client/src/redux/email/email.selectors.js | 10 +- client/src/redux/email/email.types.js | 10 +- client/src/redux/media/media.actions.js | 50 +- client/src/redux/media/media.reducer.js | 86 +- client/src/redux/media/media.sagas.js | 203 +- client/src/redux/media/media.selectors.js | 2 +- client/src/redux/media/media.types.js | 16 +- .../src/redux/messaging/messaging.actions.js | 28 +- .../src/redux/messaging/messaging.reducer.js | 92 +- client/src/redux/messaging/messaging.sagas.js | 185 +- .../redux/messaging/messaging.selectors.js | 26 +- client/src/redux/messaging/messaging.types.js | 14 +- client/src/redux/modals/modals.actions.js | 8 +- client/src/redux/modals/modals.reducer.js | 86 +- client/src/redux/modals/modals.sagas.js | 8 +- client/src/redux/modals/modals.selectors.js | 70 +- client/src/redux/modals/modals.types.js | 4 +- client/src/redux/root.reducer.js | 32 +- client/src/redux/root.saga.js | 34 +- client/src/redux/store.js | 45 +- client/src/redux/tech/tech.actions.js | 16 +- client/src/redux/tech/tech.reducer.js | 73 +- client/src/redux/tech/tech.sagas.js | 47 +- client/src/redux/tech/tech.selectors.js | 14 +- client/src/redux/tech/tech.types.js | 8 +- client/src/redux/user/user.actions.js | 88 +- client/src/redux/user/user.reducer.js | 236 +- client/src/redux/user/user.sagas.js | 536 +- client/src/redux/user/user.selectors.js | 30 +- client/src/redux/user/user.types.js | 70 +- client/src/reportWebVitals.js | 18 +- client/src/service-worker.js | 66 +- client/src/serviceWorkerRegistration.js | 200 +- client/src/setupTests.js | 5 +- client/src/translations/en_us/common.json | 6258 +++++------ client/src/translations/es/common.json | 6258 +++++------ client/src/translations/fr/common.json | 6258 +++++------ client/src/translations/i18n.js | 34 +- client/src/utils/AuditTrailMappings.js | 100 +- client/src/utils/Ciecaselect.jsx | 174 +- client/src/utils/CleanAxios.js | 26 +- client/src/utils/CurrencyFormatter.jsx | 22 +- client/src/utils/DateFormatter.jsx | 44 +- client/src/utils/DatePickerRanges.js | 112 +- client/src/utils/GraphQLClient.js | 283 +- client/src/utils/PhoneFormatter.jsx | 4 +- client/src/utils/RegisterSw.js | 80 +- client/src/utils/RenderTemplate.js | 667 +- client/src/utils/SSSUtils.js | 68 +- client/src/utils/TemplateConstants.js | 4542 ++++---- client/src/utils/TemplateSpecial.jsx | 2 +- client/src/utils/TestingHelpers.js | 286 +- client/src/utils/aamva.js | 1084 +- client/src/utils/arrayHelper.js | 2 +- client/src/utils/asyncConfirm.js | 8 +- client/src/utils/config.js | 1 - client/src/utils/create-recent-item.js | 10 +- client/src/utils/criticalPartsScan.js | 12 +- client/src/utils/fcm-handler.js | 136 +- client/src/utils/formatbytes.js | 16 +- client/src/utils/handleBeta.js | 2 +- client/src/utils/jobReadOnly.js | 4 +- client/src/utils/localmedia.js | 8 +- client/src/utils/prompt.js | 1 + client/src/utils/sorters.js | 20 +- client/src/utils/undefinedtonull.js | 16 +- client/src/utils/useLocalStorage.js | 74 +- client/src/utils/usetraceupdate.jsx | 29 +- ecosystem.config.js | 34 +- firebase/functions/index.js | 66 +- firebase/readme.md | 3 +- hasura/MigrationResolution.md | 14 +- hasura/metadata/actions.yaml | 10 +- hasura/metadata/allow_list.yaml | 2 +- hasura/metadata/cron_triggers.yaml | 2 +- hasura/metadata/network.yaml | 2 +- hasura/metadata/query_collections.yaml | 2 +- hasura/metadata/remote_schemas.yaml | 2 +- hasura/metadata/tables.yaml | 28 +- .../1622571551101_run_sql_migration/down.yaml | 2 +- .../1625768789569_run_sql_migration/down.yaml | 2 +- .../1629738990845_run_sql_migration/down.yaml | 2 +- .../1632265756746_run_sql_migration/down.yaml | 2 +- .../1632265816135_run_sql_migration/down.yaml | 2 +- .../1620771761757_Init/up.yaml | 8888 ++++++++-------- .../down.yaml | 124 +- .../up.yaml | 126 +- .../down.yaml | 118 +- .../up.yaml | 120 +- .../down.yaml | 56 +- .../up.yaml | 58 +- .../down.yaml | 56 +- .../up.yaml | 58 +- .../down.yaml | 126 +- .../up.yaml | 128 +- .../down.yaml | 120 +- .../up.yaml | 122 +- .../1622571551101_run_sql_migration/down.yaml | 2 +- .../down.yaml | 36 +- .../up.yaml | 38 +- .../down.yaml | 36 +- .../up.yaml | 38 +- .../down.yaml | 34 +- .../up.yaml | 36 +- .../down.yaml | 22 +- .../up.yaml | 24 +- .../down.yaml | 22 +- .../up.yaml | 24 +- .../down.yaml | 128 +- .../up.yaml | 130 +- .../down.yaml | 122 +- .../up.yaml | 124 +- .../down.yaml | 130 +- .../up.yaml | 132 +- .../down.yaml | 132 +- .../up.yaml | 134 +- .../1625768789569_run_sql_migration/down.yaml | 2 +- .../down.yaml | 134 +- .../up.yaml | 136 +- .../down.yaml | 124 +- .../up.yaml | 126 +- .../down.yaml | 32 +- .../up.yaml | 30 +- .../up.yaml | 30 +- .../down.yaml | 38 +- .../up.yaml | 40 +- .../down.yaml | 38 +- .../up.yaml | 40 +- .../down.yaml | 38 +- .../up.yaml | 40 +- .../down.yaml | 136 +- .../up.yaml | 138 +- .../down.yaml | 126 +- .../up.yaml | 128 +- .../down.yaml | 138 +- .../up.yaml | 140 +- .../down.yaml | 128 +- .../up.yaml | 130 +- .../down.yaml | 42 +- .../up.yaml | 44 +- .../down.yaml | 42 +- .../up.yaml | 44 +- .../down.yaml | 42 +- .../up.yaml | 44 +- .../up.yaml | 26 +- .../up.yaml | 26 +- .../up.yaml | 26 +- .../up.yaml | 10 +- .../1629738990845_run_sql_migration/down.yaml | 2 +- .../up.yaml | 48 +- .../up.yaml | 48 +- .../up.yaml | 48 +- .../up.yaml | 36 +- .../1632265756746_run_sql_migration/down.yaml | 2 +- .../1632265816135_run_sql_migration/down.yaml | 2 +- hasura/migrations_backup/metadata.yaml | 9218 ++++++++--------- libs/awsUtils.js | 3 +- os-loader.js | 210 +- server/accounting/pbs/pbs-ap-allocations.js | 468 +- server/accounting/pbs/pbs-constants.js | 26 +- server/accounting/pbs/pbs-job-export.js | 1303 +-- server/accounting/qb-receivables-lines.js | 1496 +-- server/accounting/qbo/qbo-authorize.js | 38 +- server/accounting/qbo/qbo-callback.js | 130 +- server/accounting/qbo/qbo-payables.js | 730 +- server/accounting/qbo/qbo-payments.js | 936 +- server/accounting/qbo/qbo-receivables.js | 1485 +-- server/accounting/qbo/qbo.js | 20 +- server/accounting/qbxml/qbxml-payables.js | 238 +- server/accounting/qbxml/qbxml-payments.js | 360 +- server/accounting/qbxml/qbxml-receivables.js | 500 +- server/accounting/qbxml/qbxml-utils.js | 68 +- server/accounting/qbxml/qbxmlObject.json | 5 +- server/admin/adminops.js | 150 +- server/cdk/cdk-calculate-allocations.js | 704 +- server/cdk/cdk-get-makes.js | 220 +- server/cdk/cdk-job-export.js | 2590 ++--- server/cdk/cdk-wsdl.js | 123 +- server/cdk/getVehIds.xml | 2 +- server/data/arms.js | 1930 ++-- server/data/autohouse.js | 1998 ++-- server/data/claimscorp.js | 1564 +-- server/data/kaizen.js | 1544 +-- server/graphql-client/graphql-client.js | 14 +- server/graphql-client/queries.js | 10 +- server/intellipay/aws-secrets-manager.js | 75 +- server/intellipay/intellipay.js | 326 +- server/ioevent/ioevent.js | 50 +- server/job/job-status-transition.js | 144 +- server/job/job-totals.js | 1230 +-- server/media/media.js | 248 +- .../validateFirebaseIdTokenMiddleware.js | 2 +- server/mixdata/mixdata.js | 190 +- server/parts-scan/parts-scan.js | 78 +- server/render/inlinecss.js | 34 +- server/routes/jobRoutes.js | 4 +- server/routes/smsRoutes.js | 2 +- server/scheduling/scheduling-job.js | 544 +- server/sms/receive.js | 244 +- server/sms/send.js | 216 +- server/sms/status.js | 80 +- server/tech/tech.js | 76 +- server/utils/logger.js | 32 +- server/utils/utils.js | 14 +- server/web-sockets/web-socket.js | 428 +- setadmin.js | 38 +- 912 files changed, 108516 insertions(+), 107493 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fc5216ffc..904d2817d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -72,7 +72,7 @@ jobs: command: npm i - run: npm run build - + - aws-cli/setup: aws_access_key_id: AWS_ACCESS_KEY_ID aws_secret_access_key: AWS_SECRET_ACCESS_KEY diff --git a/.eslintrc.json b/.eslintrc.json index f78694e00..d2162827c 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -8,7 +8,6 @@ "Atomics": "readonly", "SharedArrayBuffer": "readonly" }, - "parserOptions": { "ecmaVersion": 2018, "sourceType": "module" diff --git a/.vscode/launch.json b/.vscode/launch.json index d210fc9d2..032b2ea99 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,7 +8,6 @@ "type": "pwa-chrome", "webRoot": "${workspaceFolder}/client/src" }, - { "name": "Chrome", "type": "chrome", diff --git a/README.MD b/README.MD index 27be64f0a..dcffca3fc 100644 --- a/README.MD +++ b/README.MD @@ -6,8 +6,9 @@ npx deadfile ./src/index.js --exclude build templates #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 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!@#' -Generate the license file: +Generate the license file: $ generate-license-file --input package.json --output third-party-licenses.txt --overwrite \ No newline at end of file diff --git a/_reference/DeploymentChecklist.md b/_reference/DeploymentChecklist.md index a1ea46e38..8852417f8 100644 --- a/_reference/DeploymentChecklist.md +++ b/_reference/DeploymentChecklist.md @@ -1,5 +1,4 @@ - -Ensure following environment variables are set: +Ensure following environment variables are set: __S3 Related__ AWSAccessKeyId= diff --git a/_reference/JSReportSetup.md b/_reference/JSReportSetup.md index a5ca4e640..a46763ddb 100644 --- a/_reference/JSReportSetup.md +++ b/_reference/JSReportSetup.md @@ -16,9 +16,11 @@ jsreport configure 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 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 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 diff --git a/_reference/Jest CheatSheet.md b/_reference/Jest CheatSheet.md index 5ee12be48..bd010d4e0 100644 --- a/_reference/Jest CheatSheet.md +++ b/_reference/Jest CheatSheet.md @@ -6,7 +6,9 @@ -_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._ @@ -16,31 +18,31 @@ _I recommend [Mrm](https://github.com/sapegin/mrm-tasks/tree/master/packages/mrm - [Test structure](#test-structure) - [Matchers](#matchers) - - [Basic matchers](#basic-matchers) - - [Truthiness](#truthiness) - - [Numbers](#numbers) - - [Strings](#strings) - - [Arrays](#arrays) - - [Objects](#objects) - - [Exceptions](#exceptions) - - [Snapshots](#snapshots) - - [Mock functions](#mock-functions) - - [Misc](#misc) - - [Promise matchers (Jest 20+)](#promise-matchers-jest-20) + - [Basic matchers](#basic-matchers) + - [Truthiness](#truthiness) + - [Numbers](#numbers) + - [Strings](#strings) + - [Arrays](#arrays) + - [Objects](#objects) + - [Exceptions](#exceptions) + - [Snapshots](#snapshots) + - [Mock functions](#mock-functions) + - [Misc](#misc) + - [Promise matchers (Jest 20+)](#promise-matchers-jest-20) - [Async tests](#async-tests) - - [async/await](#asyncawait) - - [Promises](#promises) - - [done() callback](#done-callback) + - [async/await](#asyncawait) + - [Promises](#promises) + - [done() callback](#done-callback) - [Mocks](#mocks) - - [Mock functions](#mock-functions-1) - - [Mock modules using jest.mock method](#mock-modules-using-jestmock-method) - - [Mock modules using a mock file](#mock-modules-using-a-mock-file) - - [Mock object methods](#mock-object-methods) - - [Mock getters and setters (Jest 22.1.0+)](#mock-getters-and-setters-jest-2210) - - [Mock getters and setters](#mock-getters-and-setters) - - [Clearing and restoring mocks](#clearing-and-restoring-mocks) - - [Accessing the original module when using mocks](#accessing-the-original-module-when-using-mocks) - - [Timer mocks](#timer-mocks) + - [Mock functions](#mock-functions-1) + - [Mock modules using jest.mock method](#mock-modules-using-jestmock-method) + - [Mock modules using a mock file](#mock-modules-using-a-mock-file) + - [Mock object methods](#mock-object-methods) + - [Mock getters and setters (Jest 22.1.0+)](#mock-getters-and-setters-jest-2210) + - [Mock getters and setters](#mock-getters-and-setters) + - [Clearing and restoring mocks](#clearing-and-restoring-mocks) + - [Accessing the original module when using mocks](#accessing-the-original-module-when-using-mocks) + - [Timer mocks](#timer-mocks) - [Data-driven tests (Jest 23+)](#data-driven-tests-jest-23) - [Skipping tests](#skipping-tests) - [Testing modules with side effects](#testing-modules-with-side-effects) @@ -205,8 +207,8 @@ expect(fn.mock.calls[0][0]).toBe(2) // fn.mock.calls[0][0] — the first argumen - `nthCalledWith` → `toHaveBeenNthCalledWith` - `toReturnTimes` → `toHaveReturnedTimes` - `toReturnWith` → `toHaveReturnedWith` -- `lastReturnedWith` → `toHaveLastReturnedWith` -- `nthReturnedWith` → `toHaveNthReturnedWith` +- `lastReturnedWith`→ `toHaveLastReturnedWith` +- `nthReturnedWith` →`toHaveNthReturnedWith` ### 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. -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 test('async test', () => { @@ -343,23 +346,25 @@ 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) -> 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 -1. Create a file like `__mocks__/lodash/memoize.js`: +1. Create a file like `__mocks__/lodash/memoize.js`: - ```js - module.exports = a => a - ``` + ```js + module.exports = a => a + ``` -2. Add to your test: +2. Add to your test: - ```js - jest.mock('lodash/memoize') - ``` + ```js + 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) @@ -407,7 +412,7 @@ fn.mockReset() // Clears and removes any mocked return values or implementations 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: @@ -427,7 +432,8 @@ const fs = require.requireActual('fs') // Original module ### 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 // Enable fake timers @@ -471,7 +477,7 @@ test.each` }) ``` -Or on `describe` level: +Or on `describe` level: ```js describe.each([['mobile'], ['tablet'], ['desktop']])('checkout flow on %s', (viewport) => { @@ -481,7 +487,7 @@ describe.each([['mobile'], ['tablet'], ['desktop']])('checkout flow on %s', (vie }) ``` -[describe.each() docs](https://jestjs.io/docs/en/api.html#describeeachtablename-fn-timeout), [test.each() docs](https://jestjs.io/docs/en/api.html#testeachtablename-fn-timeout), +[describe.each() docs](https://jestjs.io/docs/en/api.html#describeeachtablename-fn-timeout), [test.each() docs](https://jestjs.io/docs/en/api.html#testeachtablename-fn-timeout), ## Skipping tests @@ -501,7 +507,8 @@ tests.only('make each pony pink'... ## 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 const modulePath = '../module-to-test' @@ -525,7 +532,8 @@ test('second text', () => { ## 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 @@ -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 - [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 -- [How to Test React and MobX with Jest](https://semaphoreci.com/community/tutorials/how-to-test-react-and-mobx-with-jest) by Will Stern -- [Testing React Intl components with Jest and Enzyme](https://medium.com/@sapegin/testing-react-intl-components-with-jest-and-enzyme-f9d43d9c923e) 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/) +- [How to Test React and MobX with Jest](https://semaphoreci.com/community/tutorials/how-to-test-react-and-mobx-with-jest) + by Will Stern +- [Testing React Intl components with Jest and Enzyme](https://medium.com/@sapegin/testing-react-intl-components-with-jest-and-enzyme-f9d43d9c923e) + 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 -[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. diff --git a/_reference/New Hasura Deployment.md b/_reference/New Hasura Deployment.md index b0c7f7366..9794aac54 100644 --- a/_reference/New Hasura Deployment.md +++ b/_reference/New Hasura Deployment.md @@ -46,7 +46,8 @@ $ hasura migrate create "init" --from-server ## mark the migration as applied on this server $ hasura migrate apply --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 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 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. diff --git a/_reference/OEC/Audatex.xsl b/_reference/OEC/Audatex.xsl index 5a5d61e78..b153d79fd 100644 --- a/_reference/OEC/Audatex.xsl +++ b/_reference/OEC/Audatex.xsl @@ -1,5 +1,5 @@ - + @@ -8,23 +8,23 @@ - + OECTrans.ImportTrans - + - + - + @@ -33,49 +33,49 @@ - + - + - + - + CHEV CHEV - + - - + + - + - - - - - + + + + + 0 - + 0 - + Audatex.xml @@ -96,10 +96,13 @@ - -- + -- + - - + - + @@ -107,9 +110,9 @@ - - - + + + @@ -220,7 +223,8 @@ - + @@ -231,7 +235,8 @@ - - + - + @@ -244,7 +249,8 @@ - x + x + @@ -254,7 +260,8 @@ - x + x + @@ -264,7 +271,8 @@ - x + x + @@ -277,7 +285,7 @@ - + @@ -319,7 +327,8 @@ - + @@ -330,7 +339,8 @@ - - + - + @@ -343,7 +353,8 @@ - x + x + @@ -353,7 +364,8 @@ - x + x + @@ -363,7 +375,8 @@ - x + x + @@ -379,7 +392,8 @@ - : + : + @@ -387,7 +401,8 @@ - : + : + @@ -395,7 +410,8 @@ - : + : + @@ -405,16 +421,16 @@ - + - + - + - + @@ -457,20 +473,22 @@ - + - + - + 1 2 3 - 4 + + 4 + 0 @@ -479,64 +497,67 @@ 1 2 3 - 4 + + 4 + 0 - + - + - + - + - + - + - + - + - + 0 - + 0 - + - + - + - + - + @@ -546,11 +567,16 @@ False - + - + - False + + False + diff --git a/_reference/OEC/AudatexMapping.xml b/_reference/OEC/AudatexMapping.xml index 0068c7229..f6272a856 100644 --- a/_reference/OEC/AudatexMapping.xml +++ b/_reference/OEC/AudatexMapping.xml @@ -1,128 +1,223 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + diff --git a/_reference/OEC/CCC.xsl b/_reference/OEC/CCC.xsl index 96e58c428..d13b1e6a0 100644 --- a/_reference/OEC/CCC.xsl +++ b/_reference/OEC/CCC.xsl @@ -1,6 +1,5 @@ - - + @@ -9,23 +8,23 @@ - + OECTrans.ImportTrans - + - + - + @@ -34,43 +33,43 @@ - + - + - + - - + + - - + + - + - - - - - + + + + + 0 - + 0 - + CCC.xml @@ -91,10 +90,13 @@ - -- + -- + - - + - + @@ -102,9 +104,9 @@ - - - + + + @@ -215,7 +217,8 @@ - + @@ -226,7 +229,8 @@ - - + - + @@ -239,7 +243,8 @@ - x + x + @@ -249,7 +254,8 @@ - x + x + @@ -259,7 +265,8 @@ - x + x + @@ -272,7 +279,7 @@ - + @@ -308,7 +315,8 @@ - + @@ -319,7 +327,8 @@ - - + - + @@ -332,7 +341,8 @@ - x + x + @@ -342,7 +352,8 @@ - x + x + @@ -352,7 +363,8 @@ - x + x + @@ -368,7 +380,8 @@ - : + : + @@ -376,7 +389,8 @@ - : + : + @@ -384,7 +398,8 @@ - : + : + @@ -394,16 +409,16 @@ - + - + - + - + @@ -476,13 +491,13 @@ - + - + - + @@ -505,56 +520,56 @@ - + - + - + - + - + - + - + - + - + - + 0 - + 0 - + - + - + @@ -565,10 +580,14 @@ False - + - False + + False + False diff --git a/_reference/OEC/CCCMapping.xml b/_reference/OEC/CCCMapping.xml index ab4d3b4a1..439a6c53a 100644 --- a/_reference/OEC/CCCMapping.xml +++ b/_reference/OEC/CCCMapping.xml @@ -1,126 +1,217 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + diff --git a/_reference/OEC/Mitchell.xsl b/_reference/OEC/Mitchell.xsl index 48fbd5d65..1649380dc 100644 --- a/_reference/OEC/Mitchell.xsl +++ b/_reference/OEC/Mitchell.xsl @@ -1,5 +1,5 @@ - + @@ -9,23 +9,23 @@ - + OECTrans.ImportTrans - + - + - + @@ -34,42 +34,42 @@ - + - + - + - - + + - - + + - + - - - - - + + + + + - + 0 - + Mitchell.xml @@ -90,10 +90,13 @@ - -- + -- + - - + - + @@ -102,7 +105,7 @@ - + @@ -214,7 +217,8 @@ - + @@ -225,7 +229,8 @@ - - + - + @@ -238,7 +243,8 @@ - x + x + @@ -248,7 +254,8 @@ - x + x + @@ -258,7 +265,8 @@ - x + x + @@ -310,7 +318,8 @@ - + @@ -321,7 +330,8 @@ - - + - + @@ -334,7 +344,8 @@ - x + x + @@ -344,7 +355,8 @@ - x + x + @@ -354,7 +366,8 @@ - x + x + @@ -370,7 +383,8 @@ - : + : + @@ -378,7 +392,8 @@ - : + : + @@ -386,7 +401,8 @@ - : + : + @@ -396,16 +412,16 @@ - + - + - + - + @@ -448,13 +464,13 @@ - + - + - + @@ -479,59 +495,59 @@ - + - + - + - + - + - + - + - + - + 0 - + 0 - + - + - + - + - + @@ -542,9 +558,13 @@ False - + - False + + False + False diff --git a/_reference/OEC/MitchellMapping.xml b/_reference/OEC/MitchellMapping.xml index 91ba33d17..1f6d3d905 100644 --- a/_reference/OEC/MitchellMapping.xml +++ b/_reference/OEC/MitchellMapping.xml @@ -1,129 +1,222 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + diff --git a/_reference/Responsibility Center Setup.md b/_reference/Responsibility Center Setup.md index b52ef1189..0fc382155 100644 --- a/_reference/Responsibility Center Setup.md +++ b/_reference/Responsibility Center Setup.md @@ -1,6 +1,46 @@ Glass Setup -{"ap":{"name":"Accounts Payable","accountdesc":"Accounts Payable","accountitem":"Accounts Payable","accountname":"Accounts Payable","accountnumber":"20000"},"ar":{"name":"Accounts Receivable","accountdesc":"Accounts Receivable","accountitem":"Accounts Receivable","accountname":"Accounts Receivable","accountnumber":"12000"},"costs":[{"name":"Auto Glass Parts","accountdesc":"Glass","accountitem":"Auto Glass Parts","accountname":"Cost of Goods:Auto Glass Parts","accountnumber":"Glass"},{"name":"Auto Glass Labour","accountdesc":"Auto Glass Labour","accountitem":"Auto Glass Labour","accountname":"Cost of Goods:Auto Glass Labour","accountnumber":"Auto Glass Labour"},{"name":"Flat Glass Parts","accountdesc":"Flat Glass ","accountitem":"Flat Glass Parts","accountname":"Cost of Goods:Flat Glass Parts","accountnumber":"Flat Glass Parts"},{"name":"Flat Glass Labour","accountdesc":"Flat Glass ","accountitem":"Flat Glass Labour","accountname":"Cost of Goods:Flat Glass Labour","accountnumber":"Flat Glass Labour"},{"name":"Home Glass Parts","accountdesc":"Home Glass Parts","accountitem":"Home Glass Parts","accountname":"Cost of Goods:Home Glass Parts","accountnumber":"Home Glass Parts"},{"name":"Home Glass Labour","accountdesc":"Home Glass Labour","accountitem":"Home Glass Labour","accountname":"Cost of Goods:Home Glass Labour","accountnumber":"Home Glass Labour"},{"name":"Misc Parts","accountdesc":"Misc Parts","accountitem":"Misc Parts","accountname":"Cost of Goods:Misc Parts","accountnumber":"Misc Parts"}],"taxes":{"local":{"name":"n","rate":0,"accountdesc":"n","accountitem":"n","accountname":"n","accountnumber":"n"},"state":{"name":"PST","rate":7,"accountdesc":"Ministry of Finance (BC)","accountitem":"PST (BC)","accountname":"PST PAYABLE","accountnumber":"PST PAYABLE"},"federal":{"name":"GST","rate":5,"accountdesc":"Receiver General - GST","accountitem":"GST","accountname":"HST/GST PAYABLE","accountnumber":"HST/GST PAYABLE"}},"refund":{"name":"Refund","accountdesc":"ACCOUNTS RECEIVABLE","accountitem":"BODY SHOP_CUSTPAY","accountname":"ACCOUNTS RECEIVABLE","accountnumber":"ACCOUNTS RECEIVABLE"},"profits":[{"name":"Auto Glass Parts","accountdesc":"Auto Glass","accountitem":"Auto Glass Parts","accountname":"Sales:Auto Glass Parts","accountnumber":"APG"},{"name":"Auto Glass Labour","accountdesc":"Auto Glass Labour","accountitem":"Auto Glass Labour","accountname":"Sales:Auto Glass Labour","accountnumber":"APL"},{"name":"Flat Glass Parts","accountdesc":"Flat Glass","accountitem":"Flat Glass Parts","accountname":"Sales:Flat Glass Parts","accountnumber":"FGP"},{"name":"Flat Glass Labour","accountdesc":"Flat Glass Labour","accountitem":"Flat Glass Labour","accountname":"Sales:Flat Glass Labour","accountnumber":"FGL"},{"name":"Home Glass Parts","accountdesc":"Home Glass Parts","accountitem":"Home Glass Parts","accountname":"Sales:Home Glass Parts","accountnumber":"HGP"},{"name":"Home Glass Labour","accountdesc":"Home Glass Labour","accountitem":"Home Glass Labour","accountname":"Sales:Home Glass Labour","accountnumber":"HGL"},{"name":"Misc Parts","accountdesc":"Misc Parts","accountitem":"Misc Parts","accountname":"Sales:Misc Parts","accountnumber":"MP"}],"defaults":{"costs":{"ATS":"Auto Glass Labour","LAB":"Auto Glass Labour","LAD":"Auto Glass Labour","LAE":"Auto Glass Labour","LAF":"Auto Glass Labour","LAG":"Auto Glass Labour","LAM":"Auto Glass Labour","LAR":"Auto Glass Labour","LAS":"Auto Glass Labour","LAU":"Auto Glass Labour","PAA":"Auto Glass Parts","PAC":"Auto Glass Parts","PAL":"Auto Glass Parts","PAM":"Auto Glass Parts","PAN":"Auto Glass Parts","PAO":"Auto Glass Parts","PAP":"Auto Glass Parts","PAR":"Auto Glass Parts","PAS":"Auto Glass Parts","TOW":"Auto Glass Parts","MAPA":"Auto Glass Labour","MASH":"Auto Glass Labour"},"profits":{"ATS":"Auto Glass Labour","LAB":"Auto Glass Labour","LAD":"Auto Glass Labour","LAE":"Auto Glass Labour","LAF":"Auto Glass Labour","LAG":"Auto Glass Labour","LAM":"Auto Glass Labour","LAR":"Auto Glass Labour","LAS":"Auto Glass Labour","LAU":"Auto Glass Labour","PAA":"Auto Glass Parts","PAC":"Auto Glass Parts","PAL":"Auto Glass Parts","PAM":"Auto Glass Parts","PAN":"Auto Glass Parts","PAO":"Auto Glass Parts","PAP":"Auto Glass Parts","PAR":"Auto Glass Parts","PAS":"Auto Glass Parts","TOW":"Auto Glass Parts","MAPA":"Auto Glass Parts","MASH":"Auto Glass Parts"}},"sales_tax_codes":[{"code":"G","local":false,"state":false,"federal":true,"description":"GST Only"},{"code":"S","state":true,"federal":true,"description":"Standard"},{"code":"E","local":false,"state":false,"federal":false,"description":"Exempt"}]} +{"ap":{"name":"Accounts Payable","accountdesc":"Accounts Payable","accountitem":"Accounts Payable","accountname":" +Accounts Payable","accountnumber":"20000"},"ar":{"name":"Accounts Receivable","accountdesc":"Accounts Receivable"," +accountitem":"Accounts Receivable","accountname":"Accounts Receivable","accountnumber":"12000"}," +costs":[{"name":"Auto Glass Parts","accountdesc":"Glass","accountitem":"Auto Glass Parts","accountname":"Cost of Goods:Auto Glass Parts","accountnumber":"Glass"},{"name":"Auto Glass Labour","accountdesc":"Auto Glass Labour","accountitem":"Auto Glass Labour","accountname":"Cost of Goods:Auto Glass Labour","accountnumber":"Auto Glass Labour"},{"name":"Flat Glass Parts","accountdesc":"Flat Glass ","accountitem":"Flat Glass Parts","accountname":"Cost of Goods:Flat Glass Parts","accountnumber":"Flat Glass Parts"},{"name":"Flat Glass Labour","accountdesc":"Flat Glass ","accountitem":"Flat Glass Labour","accountname":"Cost of Goods:Flat Glass Labour","accountnumber":"Flat Glass Labour"},{"name":"Home Glass Parts","accountdesc":"Home Glass Parts","accountitem":"Home Glass Parts","accountname":"Cost of Goods:Home Glass Parts","accountnumber":"Home Glass Parts"},{"name":"Home Glass Labour","accountdesc":"Home Glass Labour","accountitem":"Home Glass Labour","accountname":"Cost of Goods:Home Glass Labour","accountnumber":"Home Glass Labour"},{"name":"Misc Parts","accountdesc":"Misc Parts","accountitem":"Misc Parts","accountname":"Cost of Goods:Misc Parts","accountnumber":"Misc Parts"}]," +taxes":{"local":{"name":"n","rate":0,"accountdesc":"n","accountitem":"n","accountname":"n","accountnumber":"n"}," +state":{"name":"PST","rate":7,"accountdesc":"Ministry of Finance (BC)","accountitem":"PST (BC)","accountname":"PST +PAYABLE","accountnumber":"PST PAYABLE"},"federal":{"name":"GST","rate":5,"accountdesc":"Receiver General - GST"," +accountitem":"GST","accountname":"HST/GST PAYABLE","accountnumber":"HST/GST PAYABLE"}},"refund":{"name":"Refund"," +accountdesc":"ACCOUNTS RECEIVABLE","accountitem":"BODY SHOP_CUSTPAY","accountname":"ACCOUNTS RECEIVABLE"," +accountnumber":"ACCOUNTS RECEIVABLE"}," +profits":[{"name":"Auto Glass Parts","accountdesc":"Auto Glass","accountitem":"Auto Glass Parts","accountname":"Sales:Auto Glass Parts","accountnumber":"APG"},{"name":"Auto Glass Labour","accountdesc":"Auto Glass Labour","accountitem":"Auto Glass Labour","accountname":"Sales:Auto Glass Labour","accountnumber":"APL"},{"name":"Flat Glass Parts","accountdesc":"Flat Glass","accountitem":"Flat Glass Parts","accountname":"Sales:Flat Glass Parts","accountnumber":"FGP"},{"name":"Flat Glass Labour","accountdesc":"Flat Glass Labour","accountitem":"Flat Glass Labour","accountname":"Sales:Flat Glass Labour","accountnumber":"FGL"},{"name":"Home Glass Parts","accountdesc":"Home Glass Parts","accountitem":"Home Glass Parts","accountname":"Sales:Home Glass Parts","accountnumber":"HGP"},{"name":"Home Glass Labour","accountdesc":"Home Glass Labour","accountitem":"Home Glass Labour","accountname":"Sales:Home Glass Labour","accountnumber":"HGL"},{"name":"Misc Parts","accountdesc":"Misc Parts","accountitem":"Misc Parts","accountname":"Sales:Misc Parts","accountnumber":"MP"}]," +defaults":{"costs":{"ATS":"Auto Glass Labour","LAB":"Auto Glass Labour","LAD":"Auto Glass Labour","LAE":"Auto Glass +Labour","LAF":"Auto Glass Labour","LAG":"Auto Glass Labour","LAM":"Auto Glass Labour","LAR":"Auto Glass Labour","LAS":" +Auto Glass Labour","LAU":"Auto Glass Labour","PAA":"Auto Glass Parts","PAC":"Auto Glass Parts","PAL":"Auto Glass +Parts","PAM":"Auto Glass Parts","PAN":"Auto Glass Parts","PAO":"Auto Glass Parts","PAP":"Auto Glass Parts","PAR":"Auto +Glass Parts","PAS":"Auto Glass Parts","TOW":"Auto Glass Parts","MAPA":"Auto Glass Labour","MASH":"Auto Glass Labour"}," +profits":{"ATS":"Auto Glass Labour","LAB":"Auto Glass Labour","LAD":"Auto Glass Labour","LAE":"Auto Glass Labour"," +LAF":"Auto Glass Labour","LAG":"Auto Glass Labour","LAM":"Auto Glass Labour","LAR":"Auto Glass Labour","LAS":"Auto Glass +Labour","LAU":"Auto Glass Labour","PAA":"Auto Glass Parts","PAC":"Auto Glass Parts","PAL":"Auto Glass Parts","PAM":"Auto +Glass Parts","PAN":"Auto Glass Parts","PAO":"Auto Glass Parts","PAP":"Auto Glass Parts","PAR":"Auto Glass Parts","PAS":" +Auto Glass Parts","TOW":"Auto Glass Parts","MAPA":"Auto Glass Parts","MASH":"Auto Glass Parts"}}," +sales_tax_codes":[{"code":"G","local":false,"state":false,"federal":true,"description":"GST Only"},{"code":"S","state":true,"federal":true,"description":"Standard"},{"code":"E","local":false,"state":false,"federal":false,"description":"Exempt"}]} Regular Dev Setup -{"ap": {"name": "AP", "accountdesc": "Pay to Others", "accountitem": "A/P", "accountname": "AP Acc#", "accountnumber": "Accounts Payable"}, "ar": {"name": "AR", "accountdesc": "1100", "accountitem": "A/R", "accountname": "ACCOUNTS RECEIVABLE", "accountnumber": "1100"}, "costs": [{"name": "Aftermarket", "accountdesc": "Aftermarket", "accountitem": "Aftermarketi", "accountname": "BODY SHOP COST:PARTS:AFTERMARKET", "accountnumber": "Aftermarket"}, {"name": "ATP", "accountdesc": "ATP", "accountitem": "BODY SHOP_ATP", "accountname": "BODY SHOP COST:ATP", "accountnumber": "ATP"}, {"name": "Body", "accountdesc": "BODY SHOP COST:LABOR", "accountitem": "BODY SHOP_LAB", "accountname": "BODY SHOP COST:LABOR:BODY", "accountnumber": "5001"}, {"name": "Detail", "accountdesc": "Detailing", "accountitem": "Detaili", "accountname": "BODY SHOP COST:LABOR:DETAIL", "accountnumber": "Detail"}, {"name": "Daignostic", "accountdesc": "Daignostic", "accountitem": "Daignostici", "accountname": "Daignostic", "accountnumber": "Daignostic"}, {"name": "Electrical", "accountdesc": "Electrical", "accountitem": "Electricali", "accountname": "Electrical", "accountnumber": "Electrical"}, {"name": "Chrome", "accountdesc": "Chrome", "accountitem": "Chromei", "accountname": "Chrome", "accountnumber": "Chrome"}, {"name": "Frame", "accountdesc": "Frame", "accountitem": "Framei", "accountname": "BODY SHOP COST:LABOR:Frame", "accountnumber": "Frame"}, {"name": "Mechanical", "accountdesc": "Mechanical", "accountitem": "Mechanicali", "accountname": "BODY SHOP COST:LABOR:MECHANICAL", "accountnumber": "Mechanical"}, {"name": "Refinish", "accountdesc": "Refinish", "accountitem": "BODY SHOP_LAR", "accountname": "BODY SHOP COST:LABOR:REFINISH", "accountnumber": "5003"}, {"name": "Structural", "accountdesc": "Structural", "accountitem": "Structurali", "accountname": "Structural", "accountnumber": "Structural"}, {"name": "Existing", "accountdesc": "Existing", "accountitem": "Existingi", "accountname": "Existing", "accountnumber": "Existing"}, {"name": "Glass", "accountdesc": "Glass", "accountitem": "Glassi", "accountname": "BODY SHOP COST:PARTS:Glass", "accountnumber": "Glass"}, {"name": "LKQ", "accountdesc": "LKQ", "accountitem": "LKQi", "accountname": "BODY SHOP COST:PARTS:LKQ", "accountnumber": "LKQ"}, {"name": "OEM", "accountdesc": "OEM", "accountitem": "OEMi", "accountname": "BODY SHOP COST:PARTS:OEM", "accountnumber": "OEM"}, {"name": "OEM Partial", "accountdesc": "Partial", "accountitem": "Partial", "accountname": "BODY SHOP COST:PARTS:OEM Partial", "accountnumber": "OEM Partial"}, {"name": "Re-cored", "accountdesc": "cored", "accountitem": "coredi", "accountname": "Re-cored", "accountnumber": "Re-cored"}, {"name": "Remanufactured", "accountdesc": "Remanufactured", "accountitem": "Remanufacturedi", "accountname": "BODY SHOP COST:PARTS:LKQ", "accountnumber": "Remanufactured"}, {"name": "Other", "accountdesc": "Other", "accountitem": "Otheri", "accountname": "Other", "accountnumber": "Other"}, {"name": "Sublet", "accountdesc": "Sublet to Other", "accountitem": "Subleti", "accountname": "BODY SHOP COST:SUBLET", "accountnumber": "Sublet"}, {"name": "Towing", "accountdesc": "Towingd", "accountitem": "Towingi", "accountname": "BODY SHOP COST:TOWING", "accountnumber": "Towing"}, {"name": "Paint Cost", "accountdesc": "Paint Material by Labor", "accountitem": "BODY SHOP_MAPA", "accountname": "BODY SHOP COST:PARTS:Materials", "accountnumber": "paint mat"}, {"name": "Shop Cost", "accountdesc": "Shop Materials by Labor", "accountitem": "BODY SHOP_MASH", "accountname": "BODY SHOP COST:PARTS:Materials", "accountnumber": "shop"}], "taxes": {"local": {"name": "n", "rate": 0, "accountdesc": "n", "accountitem": "n", "accountname": "n", "accountnumber": "n"}, "state": {"name": "PST", "rate": 7, "accountdesc": "Ministry of Finance (BC)", "accountitem": "PST On Sales", "accountname": "PST Payable", "accountnumber": "2220"}, "federal": {"name": "GST", "rate": 5, "accountdesc": "Receiver General - GST", "accountitem": "GST On Sales", "accountname": "GST DUE-NET:GST Collected", "accountnumber": "2200a"}}, "refund": {"name": "Refund", "accountdesc": "1100", "accountitem": "BODY SHOP_CUSTPAY", "accountname": "ACCOUNTS RECEIVABLE", "accountnumber": "1100"}, "profits": [{"name": "Aftermarket", "accountdesc": "Aftermarket", "accountitem": "BODY SHOP_PAA", "accountname": "Aftermarket", "accountnumber": "Aftermarket"}, {"name": "ATP", "accountdesc": "ATP", "accountitem": "BODY SHOP_ATP", "accountname": "ATP", "accountnumber": "ATP"}, {"name": "Body", "accountdesc": "BODY SHOP SALESLABOR:BODY", "accountitem": "BODY SHOP_LAB", "accountname": "BODY SHOP SALES:LABOR:BODY", "accountnumber": "5002"}, {"name": "Detail", "accountdesc": "Detail", "accountitem": "BODY SHOP_DET", "accountname": "Detail", "accountnumber": "Detail"}, {"name": "Daignostic", "accountdesc": "Daignostic", "accountitem": "BODY SHOP_LAD", "accountname": "Daignostic", "accountnumber": "Daignostic"}, {"name": "Electrical", "accountdesc": "Electrical", "accountitem": "BODY SHOP_LAE", "accountname": "Electrical", "accountnumber": "Electrical"}, {"name": "Chrome", "accountdesc": "Chrome", "accountitem": "BODY SHOP_PAC", "accountname": "Chrome", "accountnumber": "Chrome"}, {"name": "Frame", "accountdesc": "Frame", "accountitem": "BODY SHOP_LAF", "accountname": "Frame", "accountnumber": "Frame"}, {"name": "Mechanical", "accountdesc": "Mechanical", "accountitem": "BODY SHOP_LAM", "accountname": "Mechanical", "accountnumber": "Mechanical"}, {"name": "Refinish", "accountdesc": "BODY SHOP SALES:LABOR:REFINISH", "accountitem": "BODY SHOP_LAR", "accountname": "BODY SHOP SALES:LABOR:REFINISH", "accountnumber": "5003"}, {"name": "Structural", "accountdesc": "Structural", "accountitem": "BODY SHOP_LAS", "accountname": "Structural", "accountnumber": "Structural"}, {"name": "Existing", "accountdesc": "Existing", "accountitem": "BODY SHOP_PAE", "accountname": "Existing", "accountnumber": "Existing"}, {"name": "Glass", "accountdesc": "Glass", "accountitem": "BODY SHOP_PAG", "accountname": "Glass", "accountnumber": "Glass"}, {"name": "LKQ", "accountdesc": "LKQ", "accountitem": "BODY SHOP_PAL", "accountname": "BODY SHOP SALES:PARTS:LKQ", "accountnumber": "LKQ"}, {"name": "OEM", "accountdesc": "BODY SHOP SALES:PARTS:OEM", "accountitem": "BODY SHOP_PAN", "accountname": "BODY SHOP SALES:PARTS:OEM", "accountnumber": "OEM"}, {"name": "OEM Partial", "accountdesc": "Partial", "accountitem": "BODY SHOP_PAP", "accountname": "OEM Partial", "accountnumber": "OEM Partial"}, {"name": "Re-cored", "accountdesc": "cored", "accountitem": "BODY SHOP_PAO", "accountname": "Re-cored", "accountnumber": "Re-cored"}, {"name": "Remanufactured", "accountdesc": "Remanufactured", "accountitem": "BODY SHOP_PAO", "accountname": "Remanufactured", "accountnumber": "Remanufactured"}, {"name": "Other", "accountdesc": "Other", "accountitem": "BODY SHOP_PAO", "accountname": "Other", "accountnumber": "Other"}, {"name": "Sublet", "accountdesc": "Sublet", "accountitem": "BODY SHOP_PAS", "accountname": "Sublet", "accountnumber": "Sublet"}, {"name": "Towing", "accountdesc": "Towing", "accountitem": "BODY SHOP_TOW", "accountname": "Towing", "accountnumber": "Towing"}, {"name": "Paint Profit", "accountdesc": "Paint Material Costs by Labor", "accountitem": "BODY SHOP_MAPA", "accountname": "paint", "accountnumber": "paint"}, {"name": "Shop Profit", "accountdesc": "Shop Material Costs by Labor", "accountitem": "BODY SHOP_MASH", "accountname": "shop", "accountnumber": "shop"}], "defaults": {"costs": {"ATS": "ATP", "LAB": "Body", "LAD": "Daignostic", "LAE": "Electrical", "LAF": "Frame", "LAG": "Glass", "LAM": "Mechanical", "LAR": "Refinish", "LAS": "Structural", "LAU": "Detail", "PAA": "Aftermarket", "PAC": "Chrome", "PAL": "LKQ", "PAM": "Remanufactured", "PAN": "OEM", "PAO": "Other", "PAP": "OEM Partial", "PAR": "Re-cored", "PAS": "Sublet", "TOW": "Towing", "MAPA": "Paint Cost", "MASH": "Shop Cost"}, "profits": {"ATS": "ATP", "LAB": "Body", "LAD": "Daignostic", "LAE": "Electrical", "LAF": "Frame", "LAG": "Glass", "LAM": "Mechanical", "LAR": "Refinish", "LAS": "Structural", "LAU": "Detail", "PAA": "Aftermarket", "PAC": "Chrome", "PAL": "LKQ", "PAM": "Remanufactured", "PAN": "OEM", "PAO": "Other", "PAP": "OEM Partial", "PAR": "Re-cored", "PAS": "Sublet", "TOW": "Towing", "MAPA": "Paint Profit", "MASH": "Shop Profit"}}, "sales_tax_codes": [{"code": "G", "local": false, "state": false, "federal": true, "description": "GST Only"}, {"code": "S", "state": true, "federal": true, "description": "Both"}, {"code": "E", "local": false, "state": false, "federal": false, "description": "Exempt"}]} +{"ap": {"name": "AP", "accountdesc": "Pay to Others", "accountitem": "A/P", "accountname": "AP Acc#", "accountnumber": " +Accounts Payable"}, "ar": {"name": "AR", "accountdesc": "1100", "accountitem": "A/R", "accountname": "ACCOUNTS +RECEIVABLE", "accountnumber": "1100"}, " +costs": [{"name": "Aftermarket", "accountdesc": "Aftermarket", "accountitem": "Aftermarketi", "accountname": "BODY SHOP COST:PARTS:AFTERMARKET", "accountnumber": "Aftermarket"}, {"name": "ATP", "accountdesc": "ATP", "accountitem": "BODY SHOP_ATP", "accountname": "BODY SHOP COST:ATP", "accountnumber": "ATP"}, {"name": "Body", "accountdesc": "BODY SHOP COST:LABOR", "accountitem": "BODY SHOP_LAB", "accountname": "BODY SHOP COST:LABOR:BODY", "accountnumber": "5001"}, {"name": "Detail", "accountdesc": "Detailing", "accountitem": "Detaili", "accountname": "BODY SHOP COST:LABOR:DETAIL", "accountnumber": "Detail"}, {"name": "Daignostic", "accountdesc": "Daignostic", "accountitem": "Daignostici", "accountname": "Daignostic", "accountnumber": "Daignostic"}, {"name": "Electrical", "accountdesc": "Electrical", "accountitem": "Electricali", "accountname": "Electrical", "accountnumber": "Electrical"}, {"name": "Chrome", "accountdesc": "Chrome", "accountitem": "Chromei", "accountname": "Chrome", "accountnumber": "Chrome"}, {"name": "Frame", "accountdesc": "Frame", "accountitem": "Framei", "accountname": "BODY SHOP COST:LABOR:Frame", "accountnumber": "Frame"}, {"name": "Mechanical", "accountdesc": "Mechanical", "accountitem": "Mechanicali", "accountname": "BODY SHOP COST:LABOR:MECHANICAL", "accountnumber": "Mechanical"}, {"name": "Refinish", "accountdesc": "Refinish", "accountitem": "BODY SHOP_LAR", "accountname": "BODY SHOP COST:LABOR:REFINISH", "accountnumber": "5003"}, {"name": "Structural", "accountdesc": "Structural", "accountitem": "Structurali", "accountname": "Structural", "accountnumber": "Structural"}, {"name": "Existing", "accountdesc": "Existing", "accountitem": "Existingi", "accountname": "Existing", "accountnumber": "Existing"}, {"name": "Glass", "accountdesc": "Glass", "accountitem": "Glassi", "accountname": "BODY SHOP COST:PARTS:Glass", "accountnumber": "Glass"}, {"name": "LKQ", "accountdesc": "LKQ", "accountitem": "LKQi", "accountname": "BODY SHOP COST:PARTS:LKQ", "accountnumber": "LKQ"}, {"name": "OEM", "accountdesc": "OEM", "accountitem": "OEMi", "accountname": "BODY SHOP COST:PARTS:OEM", "accountnumber": "OEM"}, {"name": "OEM Partial", "accountdesc": "Partial", "accountitem": "Partial", "accountname": "BODY SHOP COST:PARTS:OEM Partial", "accountnumber": "OEM Partial"}, {"name": "Re-cored", "accountdesc": "cored", "accountitem": "coredi", "accountname": "Re-cored", "accountnumber": "Re-cored"}, {"name": "Remanufactured", "accountdesc": "Remanufactured", "accountitem": "Remanufacturedi", "accountname": "BODY SHOP COST:PARTS:LKQ", "accountnumber": "Remanufactured"}, {"name": "Other", "accountdesc": "Other", "accountitem": "Otheri", "accountname": "Other", "accountnumber": "Other"}, {"name": "Sublet", "accountdesc": "Sublet to Other", "accountitem": "Subleti", "accountname": "BODY SHOP COST:SUBLET", "accountnumber": "Sublet"}, {"name": "Towing", "accountdesc": "Towingd", "accountitem": "Towingi", "accountname": "BODY SHOP COST:TOWING", "accountnumber": "Towing"}, {"name": "Paint Cost", "accountdesc": "Paint Material by Labor", "accountitem": "BODY SHOP_MAPA", "accountname": "BODY SHOP COST:PARTS:Materials", "accountnumber": "paint mat"}, {"name": "Shop Cost", "accountdesc": "Shop Materials by Labor", "accountitem": "BODY SHOP_MASH", "accountname": "BODY SHOP COST:PARTS:Materials", "accountnumber": "shop"}], " +taxes": {"local": {"name": "n", "rate": 0, "accountdesc": "n", "accountitem": "n", "accountname": "n", " +accountnumber": "n"}, "state": {"name": "PST", "rate": 7, "accountdesc": "Ministry of Finance (BC)", "accountitem": "PST +On Sales", "accountname": "PST Payable", "accountnumber": "2220"}, "federal": {"name": "GST", "rate": 5, " +accountdesc": "Receiver General - GST", "accountitem": "GST On Sales", "accountname": "GST DUE-NET:GST Collected", " +accountnumber": "2200a"}}, "refund": {"name": "Refund", "accountdesc": "1100", "accountitem": "BODY SHOP_CUSTPAY", " +accountname": "ACCOUNTS RECEIVABLE", "accountnumber": "1100"}, " +profits": [{"name": "Aftermarket", "accountdesc": "Aftermarket", "accountitem": "BODY SHOP_PAA", "accountname": "Aftermarket", "accountnumber": "Aftermarket"}, {"name": "ATP", "accountdesc": "ATP", "accountitem": "BODY SHOP_ATP", "accountname": "ATP", "accountnumber": "ATP"}, {"name": "Body", "accountdesc": "BODY SHOP SALESLABOR:BODY", "accountitem": "BODY SHOP_LAB", "accountname": "BODY SHOP SALES:LABOR:BODY", "accountnumber": "5002"}, {"name": "Detail", "accountdesc": "Detail", "accountitem": "BODY SHOP_DET", "accountname": "Detail", "accountnumber": "Detail"}, {"name": "Daignostic", "accountdesc": "Daignostic", "accountitem": "BODY SHOP_LAD", "accountname": "Daignostic", "accountnumber": "Daignostic"}, {"name": "Electrical", "accountdesc": "Electrical", "accountitem": "BODY SHOP_LAE", "accountname": "Electrical", "accountnumber": "Electrical"}, {"name": "Chrome", "accountdesc": "Chrome", "accountitem": "BODY SHOP_PAC", "accountname": "Chrome", "accountnumber": "Chrome"}, {"name": "Frame", "accountdesc": "Frame", "accountitem": "BODY SHOP_LAF", "accountname": "Frame", "accountnumber": "Frame"}, {"name": "Mechanical", "accountdesc": "Mechanical", "accountitem": "BODY SHOP_LAM", "accountname": "Mechanical", "accountnumber": "Mechanical"}, {"name": "Refinish", "accountdesc": "BODY SHOP SALES:LABOR:REFINISH", "accountitem": "BODY SHOP_LAR", "accountname": "BODY SHOP SALES:LABOR:REFINISH", "accountnumber": "5003"}, {"name": "Structural", "accountdesc": "Structural", "accountitem": "BODY SHOP_LAS", "accountname": "Structural", "accountnumber": "Structural"}, {"name": "Existing", "accountdesc": "Existing", "accountitem": "BODY SHOP_PAE", "accountname": "Existing", "accountnumber": "Existing"}, {"name": "Glass", "accountdesc": "Glass", "accountitem": "BODY SHOP_PAG", "accountname": "Glass", "accountnumber": "Glass"}, {"name": "LKQ", "accountdesc": "LKQ", "accountitem": "BODY SHOP_PAL", "accountname": "BODY SHOP SALES:PARTS:LKQ", "accountnumber": "LKQ"}, {"name": "OEM", "accountdesc": "BODY SHOP SALES:PARTS:OEM", "accountitem": "BODY SHOP_PAN", "accountname": "BODY SHOP SALES:PARTS:OEM", "accountnumber": "OEM"}, {"name": "OEM Partial", "accountdesc": "Partial", "accountitem": "BODY SHOP_PAP", "accountname": "OEM Partial", "accountnumber": "OEM Partial"}, {"name": "Re-cored", "accountdesc": "cored", "accountitem": "BODY SHOP_PAO", "accountname": "Re-cored", "accountnumber": "Re-cored"}, {"name": "Remanufactured", "accountdesc": "Remanufactured", "accountitem": "BODY SHOP_PAO", "accountname": "Remanufactured", "accountnumber": "Remanufactured"}, {"name": "Other", "accountdesc": "Other", "accountitem": "BODY SHOP_PAO", "accountname": "Other", "accountnumber": "Other"}, {"name": "Sublet", "accountdesc": "Sublet", "accountitem": "BODY SHOP_PAS", "accountname": "Sublet", "accountnumber": "Sublet"}, {"name": "Towing", "accountdesc": "Towing", "accountitem": "BODY SHOP_TOW", "accountname": "Towing", "accountnumber": "Towing"}, {"name": "Paint Profit", "accountdesc": "Paint Material Costs by Labor", "accountitem": "BODY SHOP_MAPA", "accountname": "paint", "accountnumber": "paint"}, {"name": "Shop Profit", "accountdesc": "Shop Material Costs by Labor", "accountitem": "BODY SHOP_MASH", "accountname": "shop", "accountnumber": "shop"}], " +defaults": {"costs": {"ATS": "ATP", "LAB": "Body", "LAD": "Daignostic", "LAE": "Electrical", "LAF": "Frame", "LAG": " +Glass", "LAM": "Mechanical", "LAR": "Refinish", "LAS": "Structural", "LAU": "Detail", "PAA": "Aftermarket", "PAC": " +Chrome", "PAL": "LKQ", "PAM": "Remanufactured", "PAN": "OEM", "PAO": "Other", "PAP": "OEM Partial", "PAR": "Re-cored", " +PAS": "Sublet", "TOW": "Towing", "MAPA": "Paint Cost", "MASH": "Shop Cost"}, "profits": {"ATS": "ATP", "LAB": "Body", " +LAD": "Daignostic", "LAE": "Electrical", "LAF": "Frame", "LAG": "Glass", "LAM": "Mechanical", "LAR": "Refinish", " +LAS": "Structural", "LAU": "Detail", "PAA": "Aftermarket", "PAC": "Chrome", "PAL": "LKQ", "PAM": "Remanufactured", " +PAN": "OEM", "PAO": "Other", "PAP": "OEM Partial", "PAR": "Re-cored", "PAS": "Sublet", "TOW": "Towing", "MAPA": "Paint +Profit", "MASH": "Shop Profit"}}, " +sales_tax_codes": [{"code": "G", "local": false, "state": false, "federal": true, "description": "GST Only"}, {"code": "S", "state": true, "federal": true, "description": "Both"}, {"code": "E", "local": false, "state": false, "federal": false, "description": "Exempt"}]} diff --git a/_reference/SampleMetadata.md b/_reference/SampleMetadata.md index f675a8b17..1665f6e13 100644 --- a/_reference/SampleMetadata.md +++ b/_reference/SampleMetadata.md @@ -1,24 +1,52 @@ -csiqueestions: +csiqueestions: [{"name": "mailing", "type": "checkbox", "label": "Opt into our mailing list?", "required": false}, {"max": 5, "min": 0, "name": "slider", "type": "slider", "label": "Slide me.", "required": false}, {"name": "feedback", "type": "textarea", "label": "Do you have any general feedback you would like to share?", "required": false}, {"name": "overall", "type": "rate", "label": "How would you rate your overall experience with us?", "required": true}] md_ro_statuses -{"statuses": ["Open", "Scheduled", "Arrived", "Repair Plan", "Parts", "Body", "Prep", "Paint", "Reassembly", "Sublet", "Detail", "Completed", "Delivered", "Invoiced", "Exported"], "open_statuses": ["Open", "Scheduled", "Arrived", "Repair Plan", "Parts", "Body", "Prep", "Paint", "Reassembly", "Sublet", "Detail"], "default_arrived": "Arrived", "default_exported": "Exported", "default_imported": "Open", "default_invoiced": "Invoiced", "default_completed": "Completed", "default_delivered": "Delivered", "default_scheduled": "Scheduled", "production_statuses": ["Repair Plan", "Parts", "Body", "Prep", "Paint", "Reassembly", "Sublet", "Detail", "Completed"]} +{" +statuses": ["Open", "Scheduled", "Arrived", "Repair Plan", "Parts", "Body", "Prep", "Paint", "Reassembly", "Sublet", "Detail", "Completed", "Delivered", "Invoiced", "Exported"], " +open_statuses": ["Open", "Scheduled", "Arrived", "Repair Plan", "Parts", "Body", "Prep", "Paint", "Reassembly", "Sublet", "Detail"], " +default_arrived": "Arrived", "default_exported": "Exported", "default_imported": "Open", "default_invoiced": " +Invoiced", "default_completed": "Completed", "default_delivered": "Delivered", "default_scheduled": "Scheduled", " +production_statuses": ["Repair Plan", "Parts", "Body", "Prep", "Paint", "Reassembly", "Sublet", "Detail", "Completed"]} md_order_status -{"statuses": ["Ordered", "Received", "Canceled", "Backordered", "Returned"], "default_bo": "Backordered", "default_ordered": "Ordered", "default_canceled": "Canceled", "default_received": "Received", "default_returned": "Returned"} +{"statuses": ["Ordered", "Received", "Canceled", "Backordered", "Returned"], "default_bo": "Backordered", " +default_ordered": "Ordered", "default_canceled": "Canceled", "default_received": "Received", "default_returned": " +Returned"} responsibilitycenters -{"ap": {"name": "AP", "accountdesc": "Pay to Others", "accountitem": "A/P", "accountname": "AP Acc#", "accountnumber": "Accounts Payable"}, "ar": {"name": "AR", "accountdesc": "1100", "accountitem": "A/R", "accountname": "ACCOUNTS RECEIVABLE", "accountnumber": "1100"}, "costs": [{"name": "Aftermarket", "accountdesc": "Aftermarketd", "accountitem": "Aftermarketi", "accountname": "BODY SHOP COST:PARTS:AFTERMARKET", "accountnumber": "Aftermarket"}, {"name": "ATP", "accountdesc": "ATPd", "accountitem": "BODY SHOP_ATP", "accountname": "BODY SHOP COST:ATP", "accountnumber": "ATP"}, {"name": "Body", "accountdesc": "BODY SHOP COST:LABOR", "accountitem": "BODY SHOP_LAB", "accountname": "BODY SHOP COST:LABOR:BODY", "accountnumber": "5001"}, {"name": "Detail", "accountdesc": "Detaild", "accountitem": "Detaili", "accountname": "BODY SHOP COST:LABOR:DETAIL", "accountnumber": "Detail"}, {"name": "Daignostic", "accountdesc": "Daignosticd", "accountitem": "Daignostici", "accountname": "Daignostic", "accountnumber": "Daignostic"}, {"name": "Electrical", "accountdesc": "Electricald", "accountitem": "Electricali", "accountname": "Electrical", "accountnumber": "Electrical"}, {"name": "Chrome", "accountdesc": "Chromed", "accountitem": "Chromei", "accountname": "Chrome", "accountnumber": "Chrome"}, {"name": "Frame", "accountdesc": "Framed", "accountitem": "Framei", "accountname": "BODY SHOP COST:LABOR:Frame", "accountnumber": "Frame"}, {"name": "Mechanical", "accountdesc": "Mechanicald", "accountitem": "Mechanicali", "accountname": "BODY SHOP COST:LABOR:MECHANICAL", "accountnumber": "Mechanical"}, {"name": "Refinish", "accountdesc": "Refinishd", "accountitem": "BODY SHOP_LAR", "accountname": "BODY SHOP COST:LABOR:REFINISH", "accountnumber": "5003"}, {"name": "Structural", "accountdesc": "Structurald", "accountitem": "Structurali", "accountname": "Structural", "accountnumber": "Structural"}, {"name": "Existing", "accountdesc": "Existingd", "accountitem": "Existingi", "accountname": "Existing", "accountnumber": "Existing"}, {"name": "Glass", "accountdesc": "Glassd", "accountitem": "Glassi", "accountname": "BODY SHOP COST:PARTS:Glass", "accountnumber": "Glass"}, {"name": "LKQ", "accountdesc": "LKQd", "accountitem": "LKQi", "accountname": "BODY SHOP COST:PARTS:LKQ", "accountnumber": "LKQ"}, {"name": "OEM", "accountdesc": "OEMd", "accountitem": "OEMi", "accountname": "BODY SHOP COST:PARTS:OEM", "accountnumber": "OEM"}, {"name": "OEM Partial", "accountdesc": "Partiald", "accountitem": "Partial", "accountname": "BODY SHOP COST:PARTS:OEM Partial", "accountnumber": "OEM Partial"}, {"name": "Re-cored", "accountdesc": "coredd", "accountitem": "coredi", "accountname": "Re-cored", "accountnumber": "Re-cored"}, {"name": "Remanufactured", "accountdesc": "Remanufacturedd", "accountitem": "Remanufacturedi", "accountname": "Remanufactured", "accountnumber": "Remanufactured"}, {"name": "Other", "accountdesc": "Otherd", "accountitem": "Otheri", "accountname": "Other", "accountnumber": "Other"}, {"name": "Sublet", "accountdesc": "Subletd", "accountitem": "Subleti", "accountname": "BODY SHOP COST:SUBLET", "accountnumber": "Sublet"}, {"name": "Towing", "accountdesc": "Towingd", "accountitem": "Towingi", "accountname": "BODY SHOP COST:TOWING", "accountnumber": "Towing"}, {"name": "Paint Mat", "accountdesc": "matd", "accountitem": "mati", "accountname": "BODY SHOP COST:PARTS:Materials", "accountnumber": "paint mat"}, {"name": "shop mat", "accountdesc": "shopd", "accountitem": "shopi", "accountname": "BODY SHOP COST:PARTS:Materials", "accountnumber": "shop"}], "taxes": {"local": {"name": "n", "rate": 0, "accountdesc": "n", "accountitem": "n", "accountname": "n", "accountnumber": "n"}, "state": {"name": "PST", "rate": 7, "accountdesc": "Ministry of Finance (BC)", "accountitem": "PST On Sales", "accountname": "PST Payable", "accountnumber": "2220"}, "federal": {"name": "GST", "rate": 5, "accountdesc": "Receiver General - GST", "accountitem": "GST On Sales", "accountname": "GST DUE-NET:GST Collected", "accountnumber": "2200a"}}, "profits": [{"name": "Aftermarket", "accountdesc": "Aftermarketd", "accountitem": "BODY SHOP_PAA", "accountname": "Aftermarket", "accountnumber": "Aftermarket"}, {"name": "ATP", "accountdesc": "ATPd", "accountitem": "BODY SHOP_ATP", "accountname": "ATP", "accountnumber": "ATP"}, {"name": "Body", "accountdesc": "BODY SHOP SALESLABOR:BODY", "accountitem": "BODY SHOP_LAB", "accountname": "BODY SHOP SALES:LABOR:BODY", "accountnumber": "5002"}, {"name": "Detail", "accountdesc": "Detaild", "accountitem": "BODY SHOP_DET", "accountname": "Detail", "accountnumber": "Detail"}, {"name": "Daignostic", "accountdesc": "Daignosticd", "accountitem": "BODY SHOP_LAD", "accountname": "Daignostic", "accountnumber": "Daignostic"}, {"name": "Electrical", "accountdesc": "Electricald", "accountitem": "BODY SHOP_LAE", "accountname": "Electrical", "accountnumber": "Electrical"}, {"name": "Chrome", "accountdesc": "Chromed", "accountitem": "BODY SHOP_PAC", "accountname": "Chrome", "accountnumber": "Chrome"}, {"name": "Frame", "accountdesc": "Framed", "accountitem": "BODY SHOP_LAF", "accountname": "Frame", "accountnumber": "Frame"}, {"name": "Mechanical", "accountdesc": "Mechanicald", "accountitem": "BODY SHOP_LAM", "accountname": "Mechanical", "accountnumber": "Mechanical"}, {"name": "Refinish", "accountdesc": "BODY SHOP SALES:LABOR:REFINISH", "accountitem": "BODY SHOP_LAR", "accountname": "BODY SHOP SALES:LABOR:REFINISH", "accountnumber": "5003"}, {"name": "Structural", "accountdesc": "Structurald", "accountitem": "BODY SHOP_LAS", "accountname": "Structural", "accountnumber": "Structural"}, {"name": "Existing", "accountdesc": "Existingd", "accountitem": "BODY SHOP_PAE", "accountname": "Existing", "accountnumber": "Existing"}, {"name": "Glass", "accountdesc": "Glassd", "accountitem": "BODY SHOP_PAG", "accountname": "Glass", "accountnumber": "Glass"}, {"name": "LKQ", "accountdesc": "LKQd", "accountitem": "BODY SHOP_PAL", "accountname": "LKQ", "accountnumber": "LKQ"}, {"name": "OEM", "accountdesc": "BODY SHOP SALES:PARTS:OEM", "accountitem": "BODY SHOP_PAN", "accountname": "BODY SHOP SALES:PARTS:OEM", "accountnumber": "OEM"}, {"name": "OEM Partial", "accountdesc": "Partiald", "accountitem": "BODY SHOP_PAP", "accountname": "OEM Partial", "accountnumber": "OEM Partial"}, {"name": "Re-cored", "accountdesc": "coredd", "accountitem": "BODY SHOP_PAO", "accountname": "Re-cored", "accountnumber": "Re-cored"}, {"name": "Remanufactured", "accountdesc": "Remanufacturedd", "accountitem": "BODY SHOP_PAO", "accountname": "Remanufactured", "accountnumber": "Remanufactured"}, {"name": "Other", "accountdesc": "Otherd", "accountitem": "BODY SHOP_PAO", "accountname": "Other", "accountnumber": "Other"}, {"name": "Sublet", "accountdesc": "Subletd", "accountitem": "BODY SHOP_PAS", "accountname": "Sublet", "accountnumber": "Sublet"}, {"name": "Towing", "accountdesc": "Towingd", "accountitem": "BODY SHOP_TOW", "accountname": "Towing", "accountnumber": "Towing"}, {"name": "paint", "accountdesc": "paintd", "accountitem": "BODY SHOP_MAPA", "accountname": "paint", "accountnumber": "paint"}, {"name": "shop", "accountdesc": "shopd", "accountitem": "BODY SHOP_MASH", "accountname": "shop", "accountnumber": "shop"}], "defaults": {"costs": {"ATP": "ATP", "LAB": "Body", "LAD": "Daignostic", "LAE": "Electrical", "LAF": "Frame", "LAG": "Glass", "LAM": "Mechanical", "LAR": "Refinish", "LAS": "Structural", "LAU": "Detail", "PAA": "Aftermarket", "PAC": "Chrome", "PAL": "LKQ", "PAM": "Remanufactured", "PAN": "OEM", "PAO": "Other", "PAP": "OEM Partial", "PAR": "Re-cored", "PAS": "Sublet", "TOW": "Towing", "MAPA": "Paint Mat", "MASH": "shop mat"}, "profits": {"ATP": "ATP", "LAB": "Body", "LAD": "Daignostic", "LAE": "Electrical", "LAF": "Frame", "LAG": "Glass", "LAM": "Mechanical", "LAR": "Refinish", "LAS": "Structural", "LAU": "Detail", "PAA": "Aftermarket", "PAC": "Chrome", "PAL": "LKQ", "PAM": "Remanufactured", "PAN": "OEM", "PAO": "Other", "PAP": "OEM Partial", "PAR": "Re-cored", "PAS": "Sublet", "TOW": "Towing", "MAPA": "paint", "MASH": "shop"}}} +{"ap": {"name": "AP", "accountdesc": "Pay to Others", "accountitem": "A/P", "accountname": "AP Acc#", "accountnumber": " +Accounts Payable"}, "ar": {"name": "AR", "accountdesc": "1100", "accountitem": "A/R", "accountname": "ACCOUNTS +RECEIVABLE", "accountnumber": "1100"}, " +costs": [{"name": "Aftermarket", "accountdesc": "Aftermarketd", "accountitem": "Aftermarketi", "accountname": "BODY SHOP COST:PARTS:AFTERMARKET", "accountnumber": "Aftermarket"}, {"name": "ATP", "accountdesc": "ATPd", "accountitem": "BODY SHOP_ATP", "accountname": "BODY SHOP COST:ATP", "accountnumber": "ATP"}, {"name": "Body", "accountdesc": "BODY SHOP COST:LABOR", "accountitem": "BODY SHOP_LAB", "accountname": "BODY SHOP COST:LABOR:BODY", "accountnumber": "5001"}, {"name": "Detail", "accountdesc": "Detaild", "accountitem": "Detaili", "accountname": "BODY SHOP COST:LABOR:DETAIL", "accountnumber": "Detail"}, {"name": "Daignostic", "accountdesc": "Daignosticd", "accountitem": "Daignostici", "accountname": "Daignostic", "accountnumber": "Daignostic"}, {"name": "Electrical", "accountdesc": "Electricald", "accountitem": "Electricali", "accountname": "Electrical", "accountnumber": "Electrical"}, {"name": "Chrome", "accountdesc": "Chromed", "accountitem": "Chromei", "accountname": "Chrome", "accountnumber": "Chrome"}, {"name": "Frame", "accountdesc": "Framed", "accountitem": "Framei", "accountname": "BODY SHOP COST:LABOR:Frame", "accountnumber": "Frame"}, {"name": "Mechanical", "accountdesc": "Mechanicald", "accountitem": "Mechanicali", "accountname": "BODY SHOP COST:LABOR:MECHANICAL", "accountnumber": "Mechanical"}, {"name": "Refinish", "accountdesc": "Refinishd", "accountitem": "BODY SHOP_LAR", "accountname": "BODY SHOP COST:LABOR:REFINISH", "accountnumber": "5003"}, {"name": "Structural", "accountdesc": "Structurald", "accountitem": "Structurali", "accountname": "Structural", "accountnumber": "Structural"}, {"name": "Existing", "accountdesc": "Existingd", "accountitem": "Existingi", "accountname": "Existing", "accountnumber": "Existing"}, {"name": "Glass", "accountdesc": "Glassd", "accountitem": "Glassi", "accountname": "BODY SHOP COST:PARTS:Glass", "accountnumber": "Glass"}, {"name": "LKQ", "accountdesc": "LKQd", "accountitem": "LKQi", "accountname": "BODY SHOP COST:PARTS:LKQ", "accountnumber": "LKQ"}, {"name": "OEM", "accountdesc": "OEMd", "accountitem": "OEMi", "accountname": "BODY SHOP COST:PARTS:OEM", "accountnumber": "OEM"}, {"name": "OEM Partial", "accountdesc": "Partiald", "accountitem": "Partial", "accountname": "BODY SHOP COST:PARTS:OEM Partial", "accountnumber": "OEM Partial"}, {"name": "Re-cored", "accountdesc": "coredd", "accountitem": "coredi", "accountname": "Re-cored", "accountnumber": "Re-cored"}, {"name": "Remanufactured", "accountdesc": "Remanufacturedd", "accountitem": "Remanufacturedi", "accountname": "Remanufactured", "accountnumber": "Remanufactured"}, {"name": "Other", "accountdesc": "Otherd", "accountitem": "Otheri", "accountname": "Other", "accountnumber": "Other"}, {"name": "Sublet", "accountdesc": "Subletd", "accountitem": "Subleti", "accountname": "BODY SHOP COST:SUBLET", "accountnumber": "Sublet"}, {"name": "Towing", "accountdesc": "Towingd", "accountitem": "Towingi", "accountname": "BODY SHOP COST:TOWING", "accountnumber": "Towing"}, {"name": "Paint Mat", "accountdesc": "matd", "accountitem": "mati", "accountname": "BODY SHOP COST:PARTS:Materials", "accountnumber": "paint mat"}, {"name": "shop mat", "accountdesc": "shopd", "accountitem": "shopi", "accountname": "BODY SHOP COST:PARTS:Materials", "accountnumber": "shop"}], " +taxes": {"local": {"name": "n", "rate": 0, "accountdesc": "n", "accountitem": "n", "accountname": "n", " +accountnumber": "n"}, "state": {"name": "PST", "rate": 7, "accountdesc": "Ministry of Finance (BC)", "accountitem": "PST +On Sales", "accountname": "PST Payable", "accountnumber": "2220"}, "federal": {"name": "GST", "rate": 5, " +accountdesc": "Receiver General - GST", "accountitem": "GST On Sales", "accountname": "GST DUE-NET:GST Collected", " +accountnumber": "2200a"}}, " +profits": [{"name": "Aftermarket", "accountdesc": "Aftermarketd", "accountitem": "BODY SHOP_PAA", "accountname": "Aftermarket", "accountnumber": "Aftermarket"}, {"name": "ATP", "accountdesc": "ATPd", "accountitem": "BODY SHOP_ATP", "accountname": "ATP", "accountnumber": "ATP"}, {"name": "Body", "accountdesc": "BODY SHOP SALESLABOR:BODY", "accountitem": "BODY SHOP_LAB", "accountname": "BODY SHOP SALES:LABOR:BODY", "accountnumber": "5002"}, {"name": "Detail", "accountdesc": "Detaild", "accountitem": "BODY SHOP_DET", "accountname": "Detail", "accountnumber": "Detail"}, {"name": "Daignostic", "accountdesc": "Daignosticd", "accountitem": "BODY SHOP_LAD", "accountname": "Daignostic", "accountnumber": "Daignostic"}, {"name": "Electrical", "accountdesc": "Electricald", "accountitem": "BODY SHOP_LAE", "accountname": "Electrical", "accountnumber": "Electrical"}, {"name": "Chrome", "accountdesc": "Chromed", "accountitem": "BODY SHOP_PAC", "accountname": "Chrome", "accountnumber": "Chrome"}, {"name": "Frame", "accountdesc": "Framed", "accountitem": "BODY SHOP_LAF", "accountname": "Frame", "accountnumber": "Frame"}, {"name": "Mechanical", "accountdesc": "Mechanicald", "accountitem": "BODY SHOP_LAM", "accountname": "Mechanical", "accountnumber": "Mechanical"}, {"name": "Refinish", "accountdesc": "BODY SHOP SALES:LABOR:REFINISH", "accountitem": "BODY SHOP_LAR", "accountname": "BODY SHOP SALES:LABOR:REFINISH", "accountnumber": "5003"}, {"name": "Structural", "accountdesc": "Structurald", "accountitem": "BODY SHOP_LAS", "accountname": "Structural", "accountnumber": "Structural"}, {"name": "Existing", "accountdesc": "Existingd", "accountitem": "BODY SHOP_PAE", "accountname": "Existing", "accountnumber": "Existing"}, {"name": "Glass", "accountdesc": "Glassd", "accountitem": "BODY SHOP_PAG", "accountname": "Glass", "accountnumber": "Glass"}, {"name": "LKQ", "accountdesc": "LKQd", "accountitem": "BODY SHOP_PAL", "accountname": "LKQ", "accountnumber": "LKQ"}, {"name": "OEM", "accountdesc": "BODY SHOP SALES:PARTS:OEM", "accountitem": "BODY SHOP_PAN", "accountname": "BODY SHOP SALES:PARTS:OEM", "accountnumber": "OEM"}, {"name": "OEM Partial", "accountdesc": "Partiald", "accountitem": "BODY SHOP_PAP", "accountname": "OEM Partial", "accountnumber": "OEM Partial"}, {"name": "Re-cored", "accountdesc": "coredd", "accountitem": "BODY SHOP_PAO", "accountname": "Re-cored", "accountnumber": "Re-cored"}, {"name": "Remanufactured", "accountdesc": "Remanufacturedd", "accountitem": "BODY SHOP_PAO", "accountname": "Remanufactured", "accountnumber": "Remanufactured"}, {"name": "Other", "accountdesc": "Otherd", "accountitem": "BODY SHOP_PAO", "accountname": "Other", "accountnumber": "Other"}, {"name": "Sublet", "accountdesc": "Subletd", "accountitem": "BODY SHOP_PAS", "accountname": "Sublet", "accountnumber": "Sublet"}, {"name": "Towing", "accountdesc": "Towingd", "accountitem": "BODY SHOP_TOW", "accountname": "Towing", "accountnumber": "Towing"}, {"name": "paint", "accountdesc": "paintd", "accountitem": "BODY SHOP_MAPA", "accountname": "paint", "accountnumber": "paint"}, {"name": "shop", "accountdesc": "shopd", "accountitem": "BODY SHOP_MASH", "accountname": "shop", "accountnumber": "shop"}], " +defaults": {"costs": {"ATP": "ATP", "LAB": "Body", "LAD": "Daignostic", "LAE": "Electrical", "LAF": "Frame", "LAG": " +Glass", "LAM": "Mechanical", "LAR": "Refinish", "LAS": "Structural", "LAU": "Detail", "PAA": "Aftermarket", "PAC": " +Chrome", "PAL": "LKQ", "PAM": "Remanufactured", "PAN": "OEM", "PAO": "Other", "PAP": "OEM Partial", "PAR": "Re-cored", " +PAS": "Sublet", "TOW": "Towing", "MAPA": "Paint Mat", "MASH": "shop mat"}, "profits": {"ATP": "ATP", "LAB": "Body", " +LAD": "Daignostic", "LAE": "Electrical", "LAF": "Frame", "LAG": "Glass", "LAM": "Mechanical", "LAR": "Refinish", " +LAS": "Structural", "LAU": "Detail", "PAA": "Aftermarket", "PAC": "Chrome", "PAL": "LKQ", "PAM": "Remanufactured", " +PAN": "OEM", "PAO": "Other", "PAP": "OEM Partial", "PAR": "Re-cored", "PAS": "Sublet", "TOW": "Towing", "MAPA": " +paint", "MASH": "shop"}}} shoprates: {"rate_atp": 8.68} -productionconfig: {"columnKeys": [{"key": "alert", "width": 57}, {"key": "ro_number", "width": 65}, {"key": "vehicle", "width": 264.1333465576172}, {"key": "clm_no", "width": 127.39999389648438}, {"key": "ownr", "width": 143}, {"key": "labhrs", "width": 48}, {"key": "larhrs", "width": 53.35003662109375}, {"key": "scheduled_completion", "width": 176}, {"key": "status", "width": 101}, {"key": "note", "width": 179}, {"key": "ct", "width": 74}, {"key": "clm_total"}], "tableState": {"sortedInfo": {"order": "descend", "columnKey": "larhrs"}, "filteredInfo": {}}} +productionconfig: {" +columnKeys": [{"key": "alert", "width": 57}, {"key": "ro_number", "width": 65}, {"key": "vehicle", "width": 264.1333465576172}, {"key": "clm_no", "width": 127.39999389648438}, {"key": "ownr", "width": 143}, {"key": "labhrs", "width": 48}, {"key": "larhrs", "width": 53.35003662109375}, {"key": "scheduled_completion", "width": 176}, {"key": "status", "width": 101}, {"key": "note", "width": 179}, {"key": "ct", "width": 74}, {"key": "clm_total"}], " +tableState": {"sortedInfo": {"order": "descend", "columnKey": "larhrs"}, "filteredInfo": {}}} invoicetaxrates {"local_tax_rate": 0, "state_tax_rate": 7, "federal_tax_rate": 5} intakechecklist -{"form": [{"name": "item1", "type": "checkbox", "label": "Checklist Item 1", "required": true}, {"name": "item2", "type": "checkbox", "label": "Checklist Item 2", "required": true}, {"name": "item3", "type": "checkbox", "label": "Checklist Item 3", "required": true}, {"name": "item4", "type": "checkbox", "label": "Checklist Item 4", "required": true}], "templates": ["estimate_detail", "estimate_detail2"]} +{" +form": [{"name": "item1", "type": "checkbox", "label": "Checklist Item 1", "required": true}, {"name": "item2", "type": "checkbox", "label": "Checklist Item 2", "required": true}, {"name": "item3", "type": "checkbox", "label": "Checklist Item 3", "required": true}, {"name": "item4", "type": "checkbox", "label": "Checklist Item 4", "required": true}], " +templates": ["estimate_detail", "estimate_detail2"]} ssbucekts [{"id": "express", "lt": 10, "gte": 0, "label": "express", "target": 1}, {"id": "small", "lt": 20, "gte": 10, "label": "small", "target": 2}, {"id": "medium", "lt": 30, "gte": 20, "label": "medium", "target": 3}, {"id": "large", "lt": 40, "gte": 30, "label": "large", "target": 4}, {"id": "heavy", "lt": 60, "gte": 40, "label": "heavy", "target": 5}, {"id": "Insane", "gte": 60, "label": "Insane", "target": 1}] \ No newline at end of file diff --git a/_reference/Test_CDK_Acct Config.json b/_reference/Test_CDK_Acct Config.json index 2689c8b78..44a140906 100644 --- a/_reference/Test_CDK_Acct Config.json +++ b/_reference/Test_CDK_Acct Config.json @@ -1 +1,570 @@ -{"ar":{"accountname":"ACCOUNTS RECEIVABLE"},"costs":[{"name":"Sublet","accountdesc":"C/S SUBLET REPAIRS/BODY SHOP","accountitem":"Aftermarketi","accountname":"C/S SUBLET REPAIRS/BODY SHOP","accountnumber":"Aftermarket","dms_acctnumber":"676","dms_wip_acctnumber":"247B"},{"name":"Shop Materials","accountdesc":"C/S PAINT & BODY SHOP MATERI","accountname":"C/S PAINT & BODY SHOP MATERI","dms_acctnumber":"679","dms_wip_acctnumber":"245"},{"name":"Paint Materials","accountdesc":"C/S PAINT & BODY SHOP MATERI","accountname":"C/S PAINT & BODY SHOP MATERI","dms_acctnumber":"679","dms_wip_acctnumber":"245"},{"name":"Glass","accountdesc":"C/S BS BODY LABOR C&T","accountname":"C/S BS BODY LABOR C&T","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Aftermarket","accountdesc":"C/S P&A-CUST C&T REPAIRS-B/S","accountname":"C/S P&A-CUST C&T REPAIRS-B/S","dms_acctnumber":"677","dms_wip_acctnumber":"247B"},{"name":"Body","accountdesc":"BS BODY (LAB)","accountname":"BS BODY (LAB)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Refinish","accountdesc":"BS BODY (REF)","accountname":"BS BODY (REF)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"OEM","accountdesc":"OEM","accountname":"OEM","dms_acctnumber":"677","dms_wip_acctnumber":"247B"},{"name":"Mechanical","accountdesc":"BS BODY (LAM)","accountname":"BS BODY (LAM)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"LA1","accountdesc":"BS BODY (LAM)","accountname":"BS BODY (LAM)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"LA2","accountdesc":"BS BODY (LAM)","accountname":"BS BODY (LAM)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"LA3","accountdesc":"BS BODY (LAM)","accountname":"BS BODY (LAM)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"LA4","accountdesc":"BS BODY (LAM)","accountname":"BS BODY (LAM)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Aluminum","accountdesc":"BS BODY (LAA)","accountname":"BS BODY (LAA)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Diagnostic","accountdesc":"BS BODY (LAB)","accountname":"BS BODY (LAB)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Electrical","accountdesc":"BS BODY (LAB)","accountname":"BS BODY (LAB)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Frame","accountdesc":"BS BODY (LAB)","accountname":"BS BODY (LAB)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Structural","accountdesc":"BS BODY (LAB)","accountname":"BS BODY (LAB)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Detail","accountdesc":"BS BODY (LAB)","accountname":"BS BODY (LAB)","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"ATS","accountdesc":"C/S INTERNAL LABOR-BODY SHOP","accountname":"C/S INTERNAL LABOR-BODY SHOP","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Towing","accountdesc":"C/S SUBLET REPAIRS/BODY SHOP","accountname":"C/S SUBLET REPAIRS/BODY SHOP","dms_acctnumber":"671","dms_wip_acctnumber":"247B"},{"name":"Sublet (L)","accountdesc":"C/S SUBLET REPAIRS/BODY SHOP","accountname":"C/S SUBLET REPAIRS/BODY SHOP","dms_acctnumber":"676","dms_wip_acctnumber":"247B"},{"name":"Chrome","accountdesc":"C/S P&A-CUST C&T REPAIRS-B/S","accountname":"C/S P&A-CUST C&T REPAIRS-B/S","dms_acctnumber":"677","dms_wip_acctnumber":"247B"},{"name":"LKQ","accountdesc":"C/S P&A-CUST C&T REPAIRS-B/S","accountname":"C/S P&A-CUST C&T REPAIRS-B/S","dms_acctnumber":"677","dms_wip_acctnumber":"247B"},{"name":"Remanufactured","accountdesc":"C/S P&A-CUST C&T REPAIRS-B/S","accountname":"C/S P&A-CUST C&T REPAIRS-B/S","dms_acctnumber":"677","dms_wip_acctnumber":"247B"},{"name":"OEM Partial","accountdesc":"C/S P&A-CUST C&T REPAIRS-B/S","accountname":"C/S P&A-CUST C&T REPAIRS-B/S","dms_acctnumber":"677","dms_wip_acctnumber":"247B"},{"name":"Recored","accountdesc":"C/S P&A-CUST C&T REPAIRS-B/S","accountname":"C/S P&A-CUST C&T REPAIRS-B/S","dms_acctnumber":"677","dms_wip_acctnumber":"247B"},{"name":"Other","accountdesc":"C/S P&A-CUST C&T REPAIRS-B/S","accountname":"C/S P&A-CUST C&T REPAIRS-B/S","dms_acctnumber":"677","dms_wip_acctnumber":"247B"}],"taxes":{"local":{"name":"n","rate":0,"accountdesc":"n","accountitem":"n","dms_acctnumber":"aa"},"state":{"name":"PST PAYABLE","rate":7,"accountdesc":"Ministry of Finance (BC)","accountitem":"PST On Sales","dms_acctnumber":"324"},"federal":{"name":"GST/HST PAYABLE","rate":5,"accountdesc":"Receiver General - GST","accountitem":"GST On Sales","dms_acctnumber":"324"}},"refund":{"accountitem":"BODY SHOP_CUSTPAY"},"profits":[{"name":"Paint Materials","accountdesc":"PAINT & BODY SHOP MATERIALS","accountitem":"PAINT & BODY SHOP MATERIALS","accountname":"Aftermarket","accountnumber":"Aftermarket","dms_acctnumber":"479"},{"name":"INTERNAL LABOR/BODY SHOP","accountdesc":"INTERNAL LABOR/BODY SHOP","accountitem":"INTERNAL LABOR/BODY SHOP","dms_acctnumber":"473"},{"name":"SUBLET REPAIRS/BODY SHOP","accountdesc":"SUBLET REPAIRS/BODY SHOP","accountitem":"SUBLET REPAIRS/BODY SHOP","dms_acctnumber":"476"},{"name":"PARTS-CUST C&T R O-BODY SHOP","accountdesc":"PARTS-CUST C&T R O-BODY SHOP","accountitem":"PARTS-CUST C&T R O-BODY SHOP","dms_acctnumber":"477"},{"name":"ATS","accountdesc":"ATS","accountitem":"ATS","dms_acctnumber":"477"},{"name":"BS LABOR (LAB)","accountdesc":"LAB","accountitem":"LAB","dms_acctnumber":"470"},{"name":"BS LABOR (LAD)","accountdesc":"LAD","accountitem":"LAD","dms_acctnumber":"470"},{"name":"BS LABOR (LAE)","accountdesc":"LAE","accountitem":"LAE","dms_acctnumber":"470"},{"name":"BS LABOR (LAF)","accountdesc":"LAF","accountitem":"LAF","dms_acctnumber":"470"},{"name":"BS LABOR (LAG)","accountdesc":"LAG","accountitem":"LAG","dms_acctnumber":"470"},{"name":"BS LABOR (LAM)","accountdesc":"LAM","accountitem":"LAM","dms_acctnumber":"470"},{"name":"BS LABOR (LAR)","accountdesc":"LAR","accountitem":"LAR","dms_acctnumber":"470"},{"name":"BS LABOR (LAS)","accountdesc":"LAS","accountitem":"LAS","dms_acctnumber":"470"},{"name":"BS LABOR (LAU)","accountdesc":"LAU","accountitem":"LAU","dms_acctnumber":"470"},{"name":"BS LABOR (LA1)","accountdesc":"LA1","accountitem":"LA1","dms_acctnumber":"470"},{"name":"BS LABOR (LA2)","accountdesc":"LA2","accountitem":"LA2","dms_acctnumber":"470"},{"name":"BS LABOR (LA3)","accountdesc":"LA3","accountitem":"LA4","dms_acctnumber":"470"},{"name":"BS LABOR (LA4)","accountdesc":"LA4","accountitem":"LA4","dms_acctnumber":"470"},{"name":"OEM","accountdesc":"OEM","accountitem":"OEM","dms_acctnumber":"477"},{"name":"AFTERMARKET","accountdesc":"AFTERMARKET","accountitem":"AFTERMARKET","dms_acctnumber":"477"},{"name":"CHROME","accountdesc":"CHROME","accountitem":"CHROME","dms_acctnumber":"477"},{"name":"LKQ","accountdesc":"LKQ","accountitem":"LKQ","dms_acctnumber":"477"},{"name":"REMAN","accountdesc":"REMAN","accountitem":"REMAN","dms_acctnumber":"477"},{"name":"OTHER","accountdesc":"OTHER","accountitem":"OTHER","dms_acctnumber":"477"},{"name":"OE PARTIAL","accountdesc":"OE","accountitem":"OE","dms_acctnumber":"477"},{"name":"RECORED","accountdesc":"RECORED","accountitem":"RECORED","dms_acctnumber":"477"},{"name":"SUBLET","accountdesc":"SUBLET","accountitem":"SUBLET","dms_acctnumber":"476"},{"name":"SUBLET L","accountdesc":"SUBLET L","accountitem":"SUBLET L","dms_acctnumber":"476"},{"name":"TOWING","accountdesc":"TOWING","accountitem":"TOWING","dms_acctnumber":"476"},{"name":"Aluminum","accountdesc":"LAA","accountitem":"LAA","dms_acctnumber":"470"},{"name":"Shop Materials","accountdesc":"PAINT & BODY SHOP MATERIALS","accountitem":"PAINT & BODY SHOP MATERIALS","dms_acctnumber":"479"}],"defaults":{"costs":{"ATS":"ATS","LA1":"LA1","LA2":"LA2","LA3":"LA3","LA4":"LA4","LAA":"Aluminum","LAB":"Body","LAD":"Diagnostic","LAE":"Electrical","LAF":"Frame","LAG":"Glass","LAM":"Mechanical","LAR":"Refinish","LAS":"Structural","LAU":"Detail","PAA":"Aftermarket","PAC":"Chrome","PAL":"LKQ","PAM":"Remanufactured","PAN":"OEM","PAO":"Other","PAP":"OEM Partial","PAR":"Recored","PAS":"Sublet","TOW":"Towing","MAPA":"Paint Materials","MASH":"Shop Materials","PASL":"Sublet (L)"},"profits":{"ATS":"ATS","LA1":"BS LABOR (LA1)","LA2":"BS LABOR (LA2)","LA3":"BS LABOR (LA3)","LA4":"BS LABOR (LA4)","LAA":"Aluminum","LAB":"BS LABOR (LAB)","LAD":"BS LABOR (LAD)","LAE":"BS LABOR (LAE)","LAF":"BS LABOR (LAF)","LAG":"BS LABOR (LAG)","LAM":"BS LABOR (LAM)","LAR":"BS LABOR (LAR)","LAS":"BS LABOR (LAS)","LAU":"BS LABOR (LAU)","PAA":"AFTERMARKET","PAC":"CHROME","PAL":"LKQ","PAM":"REMAN","PAN":"OEM","PAO":"OTHER","PAP":"OE PARTIAL","PAR":"RECORED","PAS":"SUBLET","TOW":"TOWING","MAPA":"Paint Materials","MASH":"Shop Materials","PASL":"SUBLET L"}},"dms_defaults":[{"name":"BS WORK","costs":{"ATS":"ATS","LA1":"LA1","LA2":"LA2","LA3":"LA3","LA4":"LA4","LAA":"Aluminum","LAB":"Body","LAD":"Diagnostic","LAE":"Electrical","LAF":"Frame","LAG":"Glass","LAM":"Mechanical","LAR":"Refinish","LAS":"Structural","LAU":"Detail","PAA":"Aftermarket","PAC":"Chrome","PAL":"LKQ","PAM":"Remanufactured","PAN":"OEM","PAO":"Other","PAP":"OEM Partial","PAR":"Recored","PAS":"Sublet","TOW":"Towing","MAPA":"Paint Materials","MASH":"Shop Materials","PASL":"Sublet (L)"},"profits":{"ATS":"ATS","LA1":"BS LABOR (LA1)","LA2":"BS LABOR (LA2)","LA3":"BS LABOR (LA3)","LA4":"BS LABOR (LA4)","LAA":"Aluminum","LAB":"BS LABOR (LAB)","LAD":"BS LABOR (LAD)","LAE":"BS LABOR (LAE)","LAF":"BS LABOR (LAF)","LAG":"BS LABOR (LAG)","LAM":"BS LABOR (LAM)","LAR":"BS LABOR (LAR)","LAS":"BS LABOR (LAS)","LAU":"BS LABOR (LAU)","PAA":"AFTERMARKET","PAC":"CHROME","PAL":"LKQ","PAM":"REMAN","PAN":"OEM","PAO":"OTHER","PAP":"OE PARTIAL","PAR":"RECORED","PAS":"SUBLET","TOW":"TOWING","MAPA":"Paint Materials","MASH":"Shop Materials","PASL":"SUBLET L"}}],"sales_tax_codes":[{"code":"G","local":false,"state":false,"federal":true,"description":"GST Only"},{"code":"S","state":true,"federal":true,"description":"Both"},{"code":"E","local":false,"state":false,"federal":false,"description":"Exempt"}]} \ No newline at end of file +{ + "ar": { + "accountname": "ACCOUNTS RECEIVABLE" + }, + "costs": [ + { + "name": "Sublet", + "accountdesc": "C/S SUBLET REPAIRS/BODY SHOP", + "accountitem": "Aftermarketi", + "accountname": "C/S SUBLET REPAIRS/BODY SHOP", + "accountnumber": "Aftermarket", + "dms_acctnumber": "676", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Shop Materials", + "accountdesc": "C/S PAINT & BODY SHOP MATERI", + "accountname": "C/S PAINT & BODY SHOP MATERI", + "dms_acctnumber": "679", + "dms_wip_acctnumber": "245" + }, + { + "name": "Paint Materials", + "accountdesc": "C/S PAINT & BODY SHOP MATERI", + "accountname": "C/S PAINT & BODY SHOP MATERI", + "dms_acctnumber": "679", + "dms_wip_acctnumber": "245" + }, + { + "name": "Glass", + "accountdesc": "C/S BS BODY LABOR C&T", + "accountname": "C/S BS BODY LABOR C&T", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Aftermarket", + "accountdesc": "C/S P&A-CUST C&T REPAIRS-B/S", + "accountname": "C/S P&A-CUST C&T REPAIRS-B/S", + "dms_acctnumber": "677", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Body", + "accountdesc": "BS BODY (LAB)", + "accountname": "BS BODY (LAB)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Refinish", + "accountdesc": "BS BODY (REF)", + "accountname": "BS BODY (REF)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "OEM", + "accountdesc": "OEM", + "accountname": "OEM", + "dms_acctnumber": "677", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Mechanical", + "accountdesc": "BS BODY (LAM)", + "accountname": "BS BODY (LAM)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "LA1", + "accountdesc": "BS BODY (LAM)", + "accountname": "BS BODY (LAM)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "LA2", + "accountdesc": "BS BODY (LAM)", + "accountname": "BS BODY (LAM)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "LA3", + "accountdesc": "BS BODY (LAM)", + "accountname": "BS BODY (LAM)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "LA4", + "accountdesc": "BS BODY (LAM)", + "accountname": "BS BODY (LAM)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Aluminum", + "accountdesc": "BS BODY (LAA)", + "accountname": "BS BODY (LAA)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Diagnostic", + "accountdesc": "BS BODY (LAB)", + "accountname": "BS BODY (LAB)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Electrical", + "accountdesc": "BS BODY (LAB)", + "accountname": "BS BODY (LAB)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Frame", + "accountdesc": "BS BODY (LAB)", + "accountname": "BS BODY (LAB)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Structural", + "accountdesc": "BS BODY (LAB)", + "accountname": "BS BODY (LAB)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Detail", + "accountdesc": "BS BODY (LAB)", + "accountname": "BS BODY (LAB)", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "ATS", + "accountdesc": "C/S INTERNAL LABOR-BODY SHOP", + "accountname": "C/S INTERNAL LABOR-BODY SHOP", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Towing", + "accountdesc": "C/S SUBLET REPAIRS/BODY SHOP", + "accountname": "C/S SUBLET REPAIRS/BODY SHOP", + "dms_acctnumber": "671", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Sublet (L)", + "accountdesc": "C/S SUBLET REPAIRS/BODY SHOP", + "accountname": "C/S SUBLET REPAIRS/BODY SHOP", + "dms_acctnumber": "676", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Chrome", + "accountdesc": "C/S P&A-CUST C&T REPAIRS-B/S", + "accountname": "C/S P&A-CUST C&T REPAIRS-B/S", + "dms_acctnumber": "677", + "dms_wip_acctnumber": "247B" + }, + { + "name": "LKQ", + "accountdesc": "C/S P&A-CUST C&T REPAIRS-B/S", + "accountname": "C/S P&A-CUST C&T REPAIRS-B/S", + "dms_acctnumber": "677", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Remanufactured", + "accountdesc": "C/S P&A-CUST C&T REPAIRS-B/S", + "accountname": "C/S P&A-CUST C&T REPAIRS-B/S", + "dms_acctnumber": "677", + "dms_wip_acctnumber": "247B" + }, + { + "name": "OEM Partial", + "accountdesc": "C/S P&A-CUST C&T REPAIRS-B/S", + "accountname": "C/S P&A-CUST C&T REPAIRS-B/S", + "dms_acctnumber": "677", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Recored", + "accountdesc": "C/S P&A-CUST C&T REPAIRS-B/S", + "accountname": "C/S P&A-CUST C&T REPAIRS-B/S", + "dms_acctnumber": "677", + "dms_wip_acctnumber": "247B" + }, + { + "name": "Other", + "accountdesc": "C/S P&A-CUST C&T REPAIRS-B/S", + "accountname": "C/S P&A-CUST C&T REPAIRS-B/S", + "dms_acctnumber": "677", + "dms_wip_acctnumber": "247B" + } + ], + "taxes": { + "local": { + "name": "n", + "rate": 0, + "accountdesc": "n", + "accountitem": "n", + "dms_acctnumber": "aa" + }, + "state": { + "name": "PST PAYABLE", + "rate": 7, + "accountdesc": "Ministry of Finance (BC)", + "accountitem": "PST On Sales", + "dms_acctnumber": "324" + }, + "federal": { + "name": "GST/HST PAYABLE", + "rate": 5, + "accountdesc": "Receiver General - GST", + "accountitem": "GST On Sales", + "dms_acctnumber": "324" + } + }, + "refund": { + "accountitem": "BODY SHOP_CUSTPAY" + }, + "profits": [ + { + "name": "Paint Materials", + "accountdesc": "PAINT & BODY SHOP MATERIALS", + "accountitem": "PAINT & BODY SHOP MATERIALS", + "accountname": "Aftermarket", + "accountnumber": "Aftermarket", + "dms_acctnumber": "479" + }, + { + "name": "INTERNAL LABOR/BODY SHOP", + "accountdesc": "INTERNAL LABOR/BODY SHOP", + "accountitem": "INTERNAL LABOR/BODY SHOP", + "dms_acctnumber": "473" + }, + { + "name": "SUBLET REPAIRS/BODY SHOP", + "accountdesc": "SUBLET REPAIRS/BODY SHOP", + "accountitem": "SUBLET REPAIRS/BODY SHOP", + "dms_acctnumber": "476" + }, + { + "name": "PARTS-CUST C&T R O-BODY SHOP", + "accountdesc": "PARTS-CUST C&T R O-BODY SHOP", + "accountitem": "PARTS-CUST C&T R O-BODY SHOP", + "dms_acctnumber": "477" + }, + { + "name": "ATS", + "accountdesc": "ATS", + "accountitem": "ATS", + "dms_acctnumber": "477" + }, + { + "name": "BS LABOR (LAB)", + "accountdesc": "LAB", + "accountitem": "LAB", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LAD)", + "accountdesc": "LAD", + "accountitem": "LAD", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LAE)", + "accountdesc": "LAE", + "accountitem": "LAE", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LAF)", + "accountdesc": "LAF", + "accountitem": "LAF", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LAG)", + "accountdesc": "LAG", + "accountitem": "LAG", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LAM)", + "accountdesc": "LAM", + "accountitem": "LAM", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LAR)", + "accountdesc": "LAR", + "accountitem": "LAR", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LAS)", + "accountdesc": "LAS", + "accountitem": "LAS", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LAU)", + "accountdesc": "LAU", + "accountitem": "LAU", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LA1)", + "accountdesc": "LA1", + "accountitem": "LA1", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LA2)", + "accountdesc": "LA2", + "accountitem": "LA2", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LA3)", + "accountdesc": "LA3", + "accountitem": "LA4", + "dms_acctnumber": "470" + }, + { + "name": "BS LABOR (LA4)", + "accountdesc": "LA4", + "accountitem": "LA4", + "dms_acctnumber": "470" + }, + { + "name": "OEM", + "accountdesc": "OEM", + "accountitem": "OEM", + "dms_acctnumber": "477" + }, + { + "name": "AFTERMARKET", + "accountdesc": "AFTERMARKET", + "accountitem": "AFTERMARKET", + "dms_acctnumber": "477" + }, + { + "name": "CHROME", + "accountdesc": "CHROME", + "accountitem": "CHROME", + "dms_acctnumber": "477" + }, + { + "name": "LKQ", + "accountdesc": "LKQ", + "accountitem": "LKQ", + "dms_acctnumber": "477" + }, + { + "name": "REMAN", + "accountdesc": "REMAN", + "accountitem": "REMAN", + "dms_acctnumber": "477" + }, + { + "name": "OTHER", + "accountdesc": "OTHER", + "accountitem": "OTHER", + "dms_acctnumber": "477" + }, + { + "name": "OE PARTIAL", + "accountdesc": "OE", + "accountitem": "OE", + "dms_acctnumber": "477" + }, + { + "name": "RECORED", + "accountdesc": "RECORED", + "accountitem": "RECORED", + "dms_acctnumber": "477" + }, + { + "name": "SUBLET", + "accountdesc": "SUBLET", + "accountitem": "SUBLET", + "dms_acctnumber": "476" + }, + { + "name": "SUBLET L", + "accountdesc": "SUBLET L", + "accountitem": "SUBLET L", + "dms_acctnumber": "476" + }, + { + "name": "TOWING", + "accountdesc": "TOWING", + "accountitem": "TOWING", + "dms_acctnumber": "476" + }, + { + "name": "Aluminum", + "accountdesc": "LAA", + "accountitem": "LAA", + "dms_acctnumber": "470" + }, + { + "name": "Shop Materials", + "accountdesc": "PAINT & BODY SHOP MATERIALS", + "accountitem": "PAINT & BODY SHOP MATERIALS", + "dms_acctnumber": "479" + } + ], + "defaults": { + "costs": { + "ATS": "ATS", + "LA1": "LA1", + "LA2": "LA2", + "LA3": "LA3", + "LA4": "LA4", + "LAA": "Aluminum", + "LAB": "Body", + "LAD": "Diagnostic", + "LAE": "Electrical", + "LAF": "Frame", + "LAG": "Glass", + "LAM": "Mechanical", + "LAR": "Refinish", + "LAS": "Structural", + "LAU": "Detail", + "PAA": "Aftermarket", + "PAC": "Chrome", + "PAL": "LKQ", + "PAM": "Remanufactured", + "PAN": "OEM", + "PAO": "Other", + "PAP": "OEM Partial", + "PAR": "Recored", + "PAS": "Sublet", + "TOW": "Towing", + "MAPA": "Paint Materials", + "MASH": "Shop Materials", + "PASL": "Sublet (L)" + }, + "profits": { + "ATS": "ATS", + "LA1": "BS LABOR (LA1)", + "LA2": "BS LABOR (LA2)", + "LA3": "BS LABOR (LA3)", + "LA4": "BS LABOR (LA4)", + "LAA": "Aluminum", + "LAB": "BS LABOR (LAB)", + "LAD": "BS LABOR (LAD)", + "LAE": "BS LABOR (LAE)", + "LAF": "BS LABOR (LAF)", + "LAG": "BS LABOR (LAG)", + "LAM": "BS LABOR (LAM)", + "LAR": "BS LABOR (LAR)", + "LAS": "BS LABOR (LAS)", + "LAU": "BS LABOR (LAU)", + "PAA": "AFTERMARKET", + "PAC": "CHROME", + "PAL": "LKQ", + "PAM": "REMAN", + "PAN": "OEM", + "PAO": "OTHER", + "PAP": "OE PARTIAL", + "PAR": "RECORED", + "PAS": "SUBLET", + "TOW": "TOWING", + "MAPA": "Paint Materials", + "MASH": "Shop Materials", + "PASL": "SUBLET L" + } + }, + "dms_defaults": [ + { + "name": "BS WORK", + "costs": { + "ATS": "ATS", + "LA1": "LA1", + "LA2": "LA2", + "LA3": "LA3", + "LA4": "LA4", + "LAA": "Aluminum", + "LAB": "Body", + "LAD": "Diagnostic", + "LAE": "Electrical", + "LAF": "Frame", + "LAG": "Glass", + "LAM": "Mechanical", + "LAR": "Refinish", + "LAS": "Structural", + "LAU": "Detail", + "PAA": "Aftermarket", + "PAC": "Chrome", + "PAL": "LKQ", + "PAM": "Remanufactured", + "PAN": "OEM", + "PAO": "Other", + "PAP": "OEM Partial", + "PAR": "Recored", + "PAS": "Sublet", + "TOW": "Towing", + "MAPA": "Paint Materials", + "MASH": "Shop Materials", + "PASL": "Sublet (L)" + }, + "profits": { + "ATS": "ATS", + "LA1": "BS LABOR (LA1)", + "LA2": "BS LABOR (LA2)", + "LA3": "BS LABOR (LA3)", + "LA4": "BS LABOR (LA4)", + "LAA": "Aluminum", + "LAB": "BS LABOR (LAB)", + "LAD": "BS LABOR (LAD)", + "LAE": "BS LABOR (LAE)", + "LAF": "BS LABOR (LAF)", + "LAG": "BS LABOR (LAG)", + "LAM": "BS LABOR (LAM)", + "LAR": "BS LABOR (LAR)", + "LAS": "BS LABOR (LAS)", + "LAU": "BS LABOR (LAU)", + "PAA": "AFTERMARKET", + "PAC": "CHROME", + "PAL": "LKQ", + "PAM": "REMAN", + "PAN": "OEM", + "PAO": "OTHER", + "PAP": "OE PARTIAL", + "PAR": "RECORED", + "PAS": "SUBLET", + "TOW": "TOWING", + "MAPA": "Paint Materials", + "MASH": "Shop Materials", + "PASL": "SUBLET L" + } + } + ], + "sales_tax_codes": [ + { + "code": "G", + "local": false, + "state": false, + "federal": true, + "description": "GST Only" + }, + { + "code": "S", + "state": true, + "federal": true, + "description": "Both" + }, + { + "code": "E", + "local": false, + "state": false, + "federal": false, + "description": "Exempt" + } + ] +} \ No newline at end of file diff --git a/_reference/dropletSetup.md b/_reference/dropletSetup.md index 34118319f..e7eb7caee 100644 --- a/_reference/dropletSetup.md +++ b/_reference/dropletSetup.md @@ -13,47 +13,47 @@ Copy the new key to clipboard: Add the SSH key to the drop creation screen. 1. Create a new user to replace root user - 1. # adduser imex - 2. # usermod -aG sudo imex - 3. # su - imex - 4. $ mkdir ~/.ssh - 5. $ chmod 700 ~/.ssh - 6. $ nano ~/.ssh/authorized_keys - 7. Add the copied SSH key and save. - 8. $ chmod 600 ~/.ssh/authorized_keys #Restrict access to authorized keys. + 1. # adduser imex + 2. # usermod -aG sudo imex + 3. # su - imex + 4. $ mkdir ~/.ssh + 5. $ chmod 700 ~/.ssh + 6. $ nano ~/.ssh/authorized_keys + 7. Add the copied SSH key and save. + 8. $ chmod 600 ~/.ssh/authorized_keys #Restrict access to authorized keys. 2. Setup the Firewall - 1. $ sudo ufw allow OpenSSH. - 2. $ sudo ufw enable + 1. $ sudo ufw allow OpenSSH. + 2. $ sudo ufw enable 3. Add Nginx & Configure - 1. $ sudo apt-get update - 2. $ sudo apt-get install nginx - 3. $ sudo ufw allow 'Nginx Full' - 4. $ sudo ufw app list - 1. Nginx Full: Opens both port 80 (normal, unencrypted web traffic) and port 443 (TLS/SSL encrypted traffic) - 2. Nginx Http: Opens only port 80 (normal, unencrypted web traffic) - 3. Nginx Https: Opens only port 443 (TLS/SSL encrypted traffic) - 5. Should now be able to go to IP and see nginx responding with a blank page. + 1. $ sudo apt-get update + 2. $ sudo apt-get install nginx + 3. $ sudo ufw allow 'Nginx Full' + 4. $ sudo ufw app list + 1. Nginx Full: Opens both port 80 (normal, unencrypted web traffic) and port 443 (TLS/SSL encrypted traffic) + 2. Nginx Http: Opens only port 80 (normal, unencrypted web traffic) + 3. Nginx Https: Opens only port 443 (TLS/SSL encrypted traffic) + 5. Should now be able to go to IP and see nginx responding with a blank page. 4. Install NodeJs - 1. $ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - - 2. $ sudo apt install nodejs - 3. $ node --version + 1. $ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - + 2. $ sudo apt install nodejs + 3. $ node --version 5. Clone Source Code - 1. $ git clone git@bitbucket.org:snaptsoft/bodyshop.git //Requires SSH setup. - 2. $ cd bodyshop && npm install //Install all server dependencies. + 1. $ git clone git@bitbucket.org:snaptsoft/bodyshop.git //Requires SSH setup. + 2. $ cd bodyshop && npm install //Install all server dependencies. 6. Setup PM2 - 1. $ npm install pm2 -g //Had to be run as root. - 2. $ pm2 start ecosystem.config.js - 3. $ pm2 startup ubuntu //Ensure it starts when server does. + 1. $ npm install pm2 -g //Had to be run as root. + 2. $ pm2 start ecosystem.config.js + 3. $ pm2 startup ubuntu //Ensure it starts when server does. 7. Alter Nginx config - 1. sudo nano /etc/nginx/sites-available/default - 2. //Add Appropriate server names to the file. www. and non-www. - 3. Add the following inside the location of the server block: (Remove the 404 bit.) - proxy_pass http://localhost:5000; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; + 1. sudo nano /etc/nginx/sites-available/default + 2. //Add Appropriate server names to the file. www. and non-www. + 3. Add the following inside the location of the server block: (Remove the 404 bit.) + proxy_pass http://localhost:5000; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; 8. Install Certbot 9. $ sudo add-apt-repository ppa:certbot/certbot //Potential issue on ubuntu 20.04 10. $ sudo apt-get update diff --git a/_reference/firebase.md b/_reference/firebase.md index ceb800e04..22352e4bd 100644 --- a/_reference/firebase.md +++ b/_reference/firebase.md @@ -1,16 +1,16 @@ 1. Create a new project 2. Setup sign in methods to be user and email only. -3. Update .env to include config. -4. Setup the Firebase CLI - 1. cd to client firebase at server directory. - 2. ensure all dependencies installed - 1. $ npm install firebase-functions@latest firebase-admin@latest --save - 2. $ npm install -g firebase-tools - 3. $ firebase login //Login as needed. +3. Update .env to include config. +4. Setup the Firebase CLI + 1. cd to client firebase at server directory. + 2. ensure all dependencies installed + 1. $ npm install firebase-functions@latest firebase-admin@latest --save + 2. $ npm install -g firebase-tools + 3. $ firebase login //Login as needed. 5. Set the current projct - 1. firebase use + 1. firebase use 6. Deploy the function - 1. $ firebase deploy --only functions -7. Add the allowed domains. + 1. $ firebase deploy --only functions +7. Add the allowed domains. 8. Update server variables including FIREBASE_ADMINSDK_JSON, FIREBASE_DATABASE_URL 9. Create the firestore and copy the rules from dev for userinstances. \ No newline at end of file diff --git a/_reference/test-ecoystem.config.js b/_reference/test-ecoystem.config.js index 7ff9eddca..37bae797c 100644 --- a/_reference/test-ecoystem.config.js +++ b/_reference/test-ecoystem.config.js @@ -1,20 +1,20 @@ module.exports = { - apps: [ - { - name: "IO Test API", - cwd: "./io", - script: "./server.js", - env: { - NODE_ENV: "test", - }, - }, + apps: [ + { + name: "IO Test API", + cwd: "./io", + script: "./server.js", + env: { + NODE_ENV: "test", + }, + }, - { - name: "Bitbucket Webhook", - script: "./webhook/index.js", - env: { - NODE_ENV: "production", - }, - }, - ], + { + name: "Bitbucket Webhook", + script: "./webhook/index.js", + env: { + NODE_ENV: "production", + }, + }, + ], }; diff --git a/client/README.md b/client/README.md index 89b278ae3..43081e849 100644 --- a/client/README.md +++ b/client/README.md @@ -15,7 +15,8 @@ You will also see any lint errors in the console. ### `yarn test` Launches the test runner in the interactive watch mode.
-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` @@ -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!** -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 -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/). @@ -65,4 +72,5 @@ This section has moved here: https://facebook.github.io/create-react-app/docs/de ### `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 diff --git a/client/cypress.config.js b/client/cypress.config.js index 2f81c734b..f227b0b40 100644 --- a/client/cypress.config.js +++ b/client/cypress.config.js @@ -1,17 +1,17 @@ -const { defineConfig } = require('cypress') +const {defineConfig} = require('cypress') module.exports = defineConfig({ - experimentalStudio: true, - env: { - FIREBASE_USERNAME: 'cypress@imex.test', - FIREBASE_PASSWORD: 'cypress', - }, - e2e: { - // We've imported your old cypress plugins here. - // You may want to clean this up later by importing these. - setupNodeEvents(on, config) { - return require('./cypress/plugins/index.js')(on, config) + experimentalStudio: true, + env: { + FIREBASE_USERNAME: 'cypress@imex.test', + FIREBASE_PASSWORD: 'cypress', + }, + e2e: { + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + setupNodeEvents(on, config) { + return require('./cypress/plugins/index.js')(on, config) + }, + baseUrl: 'http://localhost:3000', }, - baseUrl: 'http://localhost:3000', - }, }) diff --git a/client/cypress/e2e/01-General Render/01-home.cy.js b/client/cypress/e2e/01-General Render/01-home.cy.js index 32ec9d565..120baa84f 100644 --- a/client/cypress/e2e/01-General Render/01-home.cy.js +++ b/client/cypress/e2e/01-General Render/01-home.cy.js @@ -1,23 +1,24 @@ /// -const { FIREBASE_USERNAME, FIREBASE_PASSWORcD } = Cypress.env(); +const {FIREBASE_USERNAME, FIREBASE_PASSWORcD} = Cypress.env(); describe("Renders the General Page", () => { - beforeEach(() => { - cy.visit("/"); - }); - it("Renders Correctly", () => {}); - it("Has the Slogan", () => { - cy.findByText("A whole x22new kind of shop management system.").should( - "exist" - ); - /* ==== Generated with Cypress Studio ==== */ - cy.get( - ".ant-menu-item-active > .ant-menu-title-content > .header0-item-block" - ).click(); - cy.get("#email").clear(); - cy.get("#email").type("patrick@imex.dev"); - cy.get("#password").clear(); - cy.get("#password").type("patrick123{enter}"); - cy.get(".ant-form > .ant-btn").click(); - /* ==== End Cypress Studio ==== */ - }); + beforeEach(() => { + cy.visit("/"); + }); + it("Renders Correctly", () => { + }); + it("Has the Slogan", () => { + cy.findByText("A whole x22new kind of shop management system.").should( + "exist" + ); + /* ==== Generated with Cypress Studio ==== */ + cy.get( + ".ant-menu-item-active > .ant-menu-title-content > .header0-item-block" + ).click(); + cy.get("#email").clear(); + cy.get("#email").type("patrick@imex.dev"); + cy.get("#password").clear(); + cy.get("#password").type("patrick123{enter}"); + cy.get(".ant-form > .ant-btn").click(); + /* ==== End Cypress Studio ==== */ + }); }); diff --git a/client/cypress/e2e/1-getting-started/todo.cy.js b/client/cypress/e2e/1-getting-started/todo.cy.js index 4768ff923..28c0f35e1 100644 --- a/client/cypress/e2e/1-getting-started/todo.cy.js +++ b/client/cypress/e2e/1-getting-started/todo.cy.js @@ -12,132 +12,132 @@ // https://on.cypress.io/introduction-to-cypress describe('example to-do app', () => { - beforeEach(() => { - // Cypress starts out with a blank slate for each test - // so we must tell it to visit our website with the `cy.visit()` command. - // Since we want to visit the same URL at the start of all our tests, - // we include it in our beforeEach function so that it runs before each test - cy.visit('https://example.cypress.io/todo') - }) - - it('displays two todo items by default', () => { - // We use the `cy.get()` command to get all elements that match the selector. - // Then, we use `should` to assert that there are two matched items, - // which are the two default items. - cy.get('.todo-list li').should('have.length', 2) - - // We can go even further and check that the default todos each contain - // the correct text. We use the `first` and `last` functions - // to get just the first and last matched elements individually, - // and then perform an assertion with `should`. - cy.get('.todo-list li').first().should('have.text', 'Pay electric bill') - cy.get('.todo-list li').last().should('have.text', 'Walk the dog') - }) - - it('can add new todo items', () => { - // We'll store our item text in a variable so we can reuse it - const newItem = 'Feed the cat' - - // Let's get the input element and use the `type` command to - // input our new list item. After typing the content of our item, - // we need to type the enter key as well in order to submit the input. - // This input has a data-test attribute so we'll use that to select the - // element in accordance with best practices: - // https://on.cypress.io/selecting-elements - cy.get('[data-test=new-todo]').type(`${newItem}{enter}`) - - // Now that we've typed our new item, let's check that it actually was added to the list. - // Since it's the newest item, it should exist as the last element in the list. - // In addition, with the two default items, we should have a total of 3 elements in the list. - // Since assertions yield the element that was asserted on, - // we can chain both of these assertions together into a single statement. - cy.get('.todo-list li') - .should('have.length', 3) - .last() - .should('have.text', newItem) - }) - - it('can check off an item as completed', () => { - // In addition to using the `get` command to get an element by selector, - // we can also use the `contains` command to get an element by its contents. - // However, this will yield the