From 0e73b9fc2479781941be8d51bb0af85451c6b022 Mon Sep 17 00:00:00 2001 From: Divyanshu Shrivastava Date: Wed, 11 Dec 2024 00:39:45 +0530 Subject: [PATCH 01/10] Tally template component created --- .../out-tempate/out.template.component.html | 21 +- .../tally-template-a.component.html | 316 +++++++++ .../tally-template-a.component.scss | 607 ++++++++++++++++++ .../tally-template-a.component.ts | 113 ++++ .../templates/invoice.templates.module.ts | 4 +- 5 files changed, 1059 insertions(+), 2 deletions(-) create mode 100644 apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.html create mode 100644 apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.scss create mode 100644 apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.ts diff --git a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/out.template.component.html b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/out.template.component.html index 481962a2dd7..82bebd29ca2 100644 --- a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/out.template.component.html +++ b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/out.template.component.html @@ -6,7 +6,7 @@ + + + + + + + + + + + + +
+ +
+ + diff --git a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.scss b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.scss new file mode 100644 index 00000000000..7ca2623bcc0 --- /dev/null +++ b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.scss @@ -0,0 +1,607 @@ +* { + border: 0; + box-sizing: content-box; + color: var(--color-nero); + font-style: inherit; + font-weight: inherit; + list-style: none; + margin: 0; + padding: 0; + text-decoration: none; + vertical-align: top; +} + +.strong { + font-weight: bold; +} + +.font-12 { + font-size: var(--font-size-12) !important; +} + +.pb-1 { + padding-bottom: 10px; +} + +p { + line-height: 17px; +} +.mr-b05 { + margin-bottom: 5px; +} +/* heading */ +#default header h1 { + /* color: #df4927; */ + font-size: var(--font-size-15); +} + +#default header h2 { + /* color: #df4927; */ + font-size: var(--font-size-15); + font-weight: bold; +} +/* table */ +#default table { + /* font-size: 93%; */ + table-layout: fixed; + width: 100%; + border-collapse: inherit; +} + +/* page */ + +#default { + overflow: auto; + /* font-size: 93%; */ + background: var(--color-white-tertiary); + border: 1px solid var(--color-common-secondary-border); + padding: 0; +} + +#default body { + box-sizing: border-box; + font-size: var(--font-size-12); + margin: 0 auto; + overflow: hidden; + padding: 0.1in; + letter-spacing: 0; + width: 100%; + border-radius: 1px; +} + +/* header */ + +#default header { + margin: 0; + background: var(--color-primary-invoice-preview-background); + padding: 10px; +} + +#default header:after { + clear: both; + content: ""; + display: table; +} + +.pull-right tr td { + text-align: right !important; +} + +#default header .number-detail-series strong { + width: 50px; + float: left; +} + +#default .meta { + padding: 0 10px; + /* margin-bottom: 10px; */ +} + +#default .meta tbody tr td, +#default .meta tbody tr th { + border: 0; + padding: 5px 0; +} + +#default .meta tbody tr th { + background: none; + border: 0; + padding: 0; + text-align: left; + color: var(--color-nero); +} + +.hidden-label { + opacity: 0; +} + +#default .meta tbody tr td { + padding: 6px 0; + line-height: 1.3rem; +} + +/*#default .meta tbody tr td:nth-child(2)>table tbody tr td{background: #f2f2f2;padding: 0 10px;line-height: 2rem;margin: 4px 0; display: -webkit-box;}*/ + +#default header figure { + margin: 0 0 0.3em 0; + width: 100%; + padding: 0px; +} + +#default header figure p { + margin: 0 0 0.25em; +} + +#default header span, +header img { + display: block; + float: right; +} + +#default header span { + margin: 0 0 1em 1em; + max-height: 25%; + max-width: 60%; + position: relative; +} + +#default header img { + max-height: 100%; + max-width: 180px; + float: left; + margin-bottom: 10px; +} + +#default header table tr td { + border: 0; + /* padding: 4px 0; */ +} + +/* article */ + +#default article { + margin-bottom: 10px; +} + +#default article:after { + clear: both; + content: ""; + display: table; +} + +#default article h1 { + clip: rect(0 0 0 0); + position: absolute; +} + +#default article address { + float: left; + font-weight: bold; +} + +#default .table-item { + overflow-x: scroll; + width: 100%; +} + +.text-right { + text-align: right; +} + +.text-left { + text-align: left; +} + +.word-break { + word-break: break-word; +} +/* table items */ + +#default table.item { + clear: both; + width: 100%; + table-layout: auto; +} + +#default table.item th, +#default table.item tfoot tr th { + position: relative; + padding: 8px 7px; + line-height: 1.2rem; +} +#default table.item tfoot tr th { + padding-right: 7px; + border-top: 1px solid var(--color-iron); +} +/* tcs */ +.tcs hr { + margin-top: 50px; + width: 100%; + border-bottom: 1px solid var(--color-red); +} +.tcs table { + margin: 50px 0px; + clear: both; + width: 100%; + border-collapse: collapse !important; +} +.tcs table td, +.tcs table th { + border-radius: 0; + padding: 5px; + border: 1px solid var(--color-common-secondary-border); + vertical-align: top; + text-align: right; +} + +.tcs table td:first-child { + text-align: left; +} + +.tcs table th, +.tcs table tfoot tr th { + position: relative; + padding: 5px; + font-weight: bold; +} + +.tcs table th, +.tcs table tfoot tr th { + position: relative; + padding: 5px; + text-align: right; +} + +.tcs table th:first-child, +.tcs table tfoot tr th:first-child { + text-align: left; +} + +.br0 { + border-right: 0px !important; +} + +.bl0 { + border-left: 0px !important; +} + +#default table.item td { + border-radius: 0; + padding: 7px; + border-top: 1px solid var(--color-table-primary-content-bar-border); + line-height: 1.2rem; + vertical-align: top; +} + +#default table.item td p { + color: var(--color-abbey); +} + +#default table.balance { + width: 85%; + float: right; + margin: 10px 7px 10px; +} + +#default table.balance th, +#default table.balance td { + width: 50%; + text-align: right; + padding: 0 2px; +} + +/* aside */ + +#default aside h1 { + border: none; + border-width: 0 0 1px; + margin: 0 0 1em; +} + +#default aside h1 { + border-color: var(--color-common-secondary-border); + border-bottom-style: solid; +} + +/*footer*/ + +#default footer { + border-top: 1px solid; + padding: 16px 0px 10px 0; + margin: 8px 0 0; + background: var(--color-primary-invoice-preview-background); +} + +#default aside { + line-height: 1.5rem; +} + +#default .subfooter { + padding: 10px 10px 0px 10px; + .notes2-default-text { + white-space: pre-line; + } +} + +#default .subfooter hr { + width: 100%; + border-bottom: 1px solid var(--color-common-secondary-border); + margin: 3px 0; +} + +#default .subfooter h4 { + margin-top: 5px; + margin-bottom: 5px; +} + +#default .docTitle { + width: 100%; + line-height: 20px; + text-align: center; + height: 26px; + position: relative; +} + +#default .docTitle h2 { + text-align: center; + position: absolute; + right: 0; + left: 0; + width: 100%; +} + +#default .docTitle h2:after { + content: attr(title); + width: auto; + position: relative; + background: var(--color-primary-invoice-preview-background); + margin: 0 auto; + padding: 6px 16px; + right: 0; + line-height: 24px; + vertical-align: middle; + z-index: 0; + left: 0; +} + +#default .docTitle h2.no-content:after { + content: ""; + background: transparent; +} + +#default p { + margin: 0; +} + +#default h2 { + margin: 0; + font-size: inherit; +} + +#default table.item th .bgClr { + position: absolute; + top: 0; + bottom: 0; + background: var(--color-blue); + left: 0; + right: 0; + width: 100%; + opacity: 0.05; + z-index: 0; +} + +#default header .qr-image img { + width: 160px; + height: 100%; + float: right !important; + margin-bottom: 0px !important; + max-width: 100% !important; +} + +.docTitle hr { + position: absolute; + height: 2px; + top: 50%; + width: 100%; + height: 1px; +} + +strong { + font-weight: bold; +} + +.invoice-head { + width: 50%; + word-break: break-word; +} + +.width-40 { + width: 40%; +} + +/* common template css */ + +.disabled-area { + position: relative; + float: left; + width: 100%; + margin-bottom: 10px; +} + +.disabled-area:after { + content: " "; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + pointer-events: none; + background: rgba(204, 204, 204, 0.5); + border: 1px dashed var(--color-common-secondary-border); +} + +.edit-template { + position: absolute; + top: 0; + right: 0; + padding: 4px; + height: 15px; + z-index: 1; + background: var(--color-primary-invoice-preview-background); + width: 20px; +} + +.edit-template i { + background: url("data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ2OS4zMzEgNDY5LjMzMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDY5LjMzMSA0NjkuMzMxOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxnPgoJPHBhdGggZD0iTTQzOC45MzEsMzAuNDAzYy00MC40LTQwLjUtMTA2LjEtNDAuNS0xNDYuNSwwbC0yNjguNiwyNjguNWMtMi4xLDIuMS0zLjQsNC44LTMuOCw3LjdsLTE5LjksMTQ3LjQgICBjLTAuNiw0LjIsMC45LDguNCwzLjgsMTEuM2MyLjUsMi41LDYsNCw5LjUsNGMwLjYsMCwxLjIsMCwxLjgtMC4xbDg4LjgtMTJjNy40LTEsMTIuNi03LjgsMTEuNi0xNS4yYy0xLTcuNC03LjgtMTIuNi0xNS4yLTExLjYgICBsLTcxLjIsOS42bDEzLjktMTAyLjhsMTA4LjIsMTA4LjJjMi41LDIuNSw2LDQsOS41LDRzNy0xLjQsOS41LTRsMjY4LjYtMjY4LjVjMTkuNi0xOS42LDMwLjQtNDUuNiwzMC40LTczLjMgICBTNDU4LjUzMSw0OS45MDMsNDM4LjkzMSwzMC40MDN6IE0yOTcuNjMxLDYzLjQwM2w0NS4xLDQ1LjFsLTI0NS4xLDI0NS4xbC00NS4xLTQ1LjFMMjk3LjYzMSw2My40MDN6IE0xNjAuOTMxLDQxNi44MDNsLTQ0LjEtNDQuMSAgIGwyNDUuMS0yNDUuMWw0NC4xLDQ0LjFMMTYwLjkzMSw0MTYuODAzeiBNNDI0LjgzMSwxNTIuNDAzbC0xMDcuOS0xMDcuOWMxMy43LTExLjMsMzAuOC0xNy41LDQ4LjgtMTcuNWMyMC41LDAsMzkuNyw4LDU0LjIsMjIuNCAgIHMyMi40LDMzLjcsMjIuNCw1NC4yQzQ0Mi4zMzEsMTIxLjcwMyw0MzYuMTMxLDEzOC43MDMsNDI0LjgzMSwxNTIuNDAzeiIgZmlsbD0iIzAwMDAwMCIvPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=") + no-repeat; + width: 17px; + position: absolute; + right: 1px; + background-size: 14px; + height: 18px; +} + +.slogan-pre-line { + display: block; + white-space: pre-line; + line-height: 1.2em; + text-align: center; + font-size: var(--font-size-12); +} + +.inner { + width: 60%; + height: 1px; + margin: 0px 0 auto auto; + border-bottom: 1px solid var(--color-common-secondary-border); +} + +.green-row { + border-bottom: solid 1px var(--color-teal); + padding: 6px 16px; +} +.tax-table p { + color: var(--color-abbey); +} + +.tax-table tfoot th { + font-weight: bold; +} +.tax-table { + table-layout: fixed; + min-width: 100% !important; +} + +.tax-table thead tr th:nth-child(1) { + width: 20%; +} + +.tax-table thead tr th, +.tax-table tbody tr td, +.tax-table tfoot tr th { + padding: 6px; + border-right: 1px solid var(--color-table-primary-header-bar-border); +} + +.tax-table thead tr th:last-child, +.tax-table tbody tr td:last-child, +.tax-table tfoot tr th:last-child { + border-right: 0px solid; +} + +table.tax-table.item { + padding-top: 0px !important; +} +.tax-table.item tfoot tr th { + border-bottom: 1px solid var(--color-table-primary-header-bar-border); +} +.tax-table tbody tr td { + border-top: 0px solid; +} +.warehouse-table { + width: 100%; + border-bottom: 1px solid var(--color-table-primary-content-bar-border); + margin-bottom: 10px; + padding-bottom: 5px; + padding-right: 0px; + padding-left: 0px; +} +.warehouse-table tbody tr td { + padding: 0px 20px 5px 10px; +} +.img-signature { + text-align: center; + vertical-align: bottom; + width: 35%; +} +.inner-img-signature { + height: 60px; + min-width: 40px; +} + +.header-table { + vertical-align: bottom; + display: flex; + justify-content: flex-end; + align-items: flex-end; +} + +table { + width: 100%; + border-collapse: collapse !important; + page-break-inside: auto; + page-break-after: auto; +} + +table tr th, +td { + border: 1px solid black; + text-align: left; + padding: 8px; +} +table.table-row-height tr td { + height: 50px; +} + +.vertical-align-top { + vertical-align: top; +} +.vertical-align-middle { + vertical-align: middle; +} +.vertical-align-bottom { + vertical-align: bottom; +} +.border-none { + border: none; +} +.border-top { + border-top: 1px solid currentColor; +} +.border-bottom { + border-bottom: 1px solid currentColor; +} +.border-left { + border-left: 1px solid currentColor; +} +.border-right { + border-right: 1px solid currentColor; +} +.text-center { + text-align: center; +} +.text-right { + text-align: right; +} +.margin-0 { + margin: 0; +} +.mr-r1 { + margin-right: 10px !important; +} +.pd-r1 { + padding-right: 10px !important; +} +.padding-0 { + padding: 0; +} \ No newline at end of file diff --git a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.ts b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.ts new file mode 100644 index 00000000000..600065e8c16 --- /dev/null +++ b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.ts @@ -0,0 +1,113 @@ +import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core'; +import { select, Store } from '@ngrx/store'; +import { cloneDeep } from 'apps/web-giddh/src/app/lodash-optimized'; +import { AppState } from 'apps/web-giddh/src/app/store'; +import { Observable, of as observableOf, ReplaySubject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { SettingsProfileActions } from '../../../../../../actions/settings/profile/settings.profile.action'; +import { CustomTemplateResponse } from '../../../../../../models/api-models/Invoice'; +import { TemplateContentUISectionVisibility } from '../../../../../../services/invoice.ui.data.service'; + +@Component({ + selector: 'tally-template-a', + templateUrl: './tally-template-a.component.html', + styleUrls: ['./tally-template-a.component.scss'] +}) + +export class TallyTemplateAComponent implements OnInit, OnDestroy, OnChanges { + + @Input() public fieldsAndVisibility: any = null; + @Input() public isPreviewMode: boolean = false; + @Input() public showLogo: boolean = true; + @Input() public showCompanyName: boolean; + @Input() public companyGSTIN: string; + @Input() public companyPAN: string; + @Input() public inputTemplate: CustomTemplateResponse = new CustomTemplateResponse(); + @Input() public logoSrc: string; + @Input() public imageSignatureSrc: string; + @Input() public showImageSignature: boolean; + @Input() public templateUISectionVisibility: TemplateContentUISectionVisibility = new TemplateContentUISectionVisibility(); + /* This will hold the value if Gst Composition will show/hide */ + @Input() public showGstComposition: boolean = false; + @Input() public voucherType: string; + + @Output() public sectionName: EventEmitter = new EventEmitter(); + public companySetting$: Observable = observableOf(null); + public companyAddress: string = ''; + public columnsVisibled: number; + private destroyed$: ReplaySubject = new ReplaySubject(1); + public dollarSymbol = '$'; + public isBaseCurrencyRupee = true; + public rupeeSymbol = '₹'; + /* This will hold active company*/ + @Input() public activeCompany : any; + + + constructor( + private store: Store, + private settingsProfileActions: SettingsProfileActions) { + this.companySetting$ = this.store.pipe(select(s => s.settings.profile), takeUntil(this.destroyed$)); + } + + public ngOnInit() { + this.companySetting$.subscribe(a => { + if (a && a.address) { + this.companyAddress = cloneDeep(a.address); + } else if (!a) { + this.store.dispatch(this.settingsProfileActions.GetProfileInfo()); + } + }); + } + + public onClickSection(sectionName: string) { + if (!this.isPreviewMode) { + this.sectionName.emit(sectionName); + } + } + + public ngOnDestroy() { + this.destroyed$.next(true); + this.destroyed$.complete(); + } + + public ngOnChanges(changes: SimpleChanges) { + if ((changes.fieldsAndVisibility && changes.fieldsAndVisibility.previousValue && changes.fieldsAndVisibility.currentValue !== changes.fieldsAndVisibility.previousValue) || changes.fieldsAndVisibility && changes.fieldsAndVisibility.firstChange) { + this.columnsVisibled = 0; + if (changes.fieldsAndVisibility.currentValue.table) { + if (changes.fieldsAndVisibility.currentValue.table.sNo && changes.fieldsAndVisibility.currentValue.table.sNo?.display) { + this.columnsVisibled++; + } + if ((changes.fieldsAndVisibility.currentValue.table.item && changes.fieldsAndVisibility.currentValue.table.item?.display) || (changes.fieldsAndVisibility.currentValue.table.date && changes.fieldsAndVisibility.currentValue.table.date?.display)) { + this.columnsVisibled++; + } + if (changes.fieldsAndVisibility.currentValue.table.hsnSac && changes.fieldsAndVisibility.currentValue.table.hsnSac?.display) { + this.columnsVisibled++; + } + if (changes.fieldsAndVisibility.currentValue.table.quantity && changes.fieldsAndVisibility.currentValue.table.quantity?.display) { + this.columnsVisibled++; + } + if (changes.fieldsAndVisibility.currentValue.table.rate && changes.fieldsAndVisibility.currentValue.table.rate?.display) { + this.columnsVisibled++; + } + if (changes.fieldsAndVisibility.currentValue.table.discount && changes.fieldsAndVisibility.currentValue.table.discount?.display) { + this.columnsVisibled++; + } + if (changes.fieldsAndVisibility.currentValue.table.taxableValue && changes.fieldsAndVisibility.currentValue.table.taxableValue?.display) { + this.columnsVisibled++; + } + if (changes.fieldsAndVisibility.currentValue.table.taxes && changes.fieldsAndVisibility.currentValue.table.taxes?.display) { + this.columnsVisibled++; + } + if (changes?.fieldsAndVisibility?.currentValue?.table?.displayBaseCurrency && changes.fieldsAndVisibility.currentValue.table.displayBaseCurrency?.display) { + this.columnsVisibled++; + } + if (this.columnsVisibled) { + this.columnsVisibled++; + this.columnsVisibled++; + this.columnsVisibled++; + this.columnsVisibled++; + } + } + } + } +} diff --git a/apps/web-giddh/src/app/invoice/templates/invoice.templates.module.ts b/apps/web-giddh/src/app/invoice/templates/invoice.templates.module.ts index f8d863055bc..bba6b5a04ee 100644 --- a/apps/web-giddh/src/app/invoice/templates/invoice.templates.module.ts +++ b/apps/web-giddh/src/app/invoice/templates/invoice.templates.module.ts @@ -19,6 +19,7 @@ import { InvoiceTemplatePreviewModelComponent } from './edit-template/modals/tem import { DesignFiltersContainerComponent } from './edit-template/filters-container/design-filters/design.filters.component'; import { ClickOutsideModule } from 'ng-click-outside'; import { DecimalDigitsModule } from '../../shared/helpers/directives/decimalDigits/decimalDigits.module'; +import { TallyTemplateAComponent } from './edit-template/out-tempate/templates/tally-template-a/tally-template-a.component'; @NgModule({ imports: [ @@ -44,7 +45,8 @@ import { DecimalDigitsModule } from '../../shared/helpers/directives/decimalDigi ThermalTemplateComponent, EditInvoiceComponent, InvoiceTemplateModalComponent, - EditFiltersContainersComponent + EditFiltersContainersComponent, + TallyTemplateAComponent ], exports: [ OutTemplateComponent, From 5a243da5ae0f4ea90e9845043ca18210feaff2c3 Mon Sep 17 00:00:00 2001 From: Divyanshu Shrivastava Date: Thu, 12 Dec 2024 01:08:13 +0530 Subject: [PATCH 02/10] Working on tally template header --- .../gst-template-a.component.scss | 63 ++ .../gst-template-a.component.ts | 1 - .../templates/tally-template-a/response.json | 368 +++++++++++ .../tally-template-a.component.html | 587 ++++++++++-------- .../tally-template-a.component.ts | 2 + 5 files changed, 755 insertions(+), 266 deletions(-) create mode 100644 apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/response.json diff --git a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/gst-template-a/gst-template-a.component.scss b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/gst-template-a/gst-template-a.component.scss index b090fe45d7c..5f7c7802072 100644 --- a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/gst-template-a/gst-template-a.component.scss +++ b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/gst-template-a/gst-template-a.component.scss @@ -545,3 +545,66 @@ table.tax-table.item { justify-content: flex-end; align-items: flex-end; } + +table { + width: 100%; + border-collapse: collapse !important; + page-break-inside: auto; + page-break-after: auto; +} + +table tr th, +td { + border: 1px solid black; + text-align: left; + padding: 8px; +} +table.table-row-height tr td { + height: 50px; +} + +.vertical-align-top { + vertical-align: top; +} +.vertical-align-middle { + vertical-align: middle; +} +.vertical-align-bottom { + vertical-align: bottom; +} +.border-none { + border: none; +} +.border-top { + border-top: 1px solid currentColor; +} +.border-bottom { + border-bottom: 1px solid currentColor; +} +.border-left { + border-left: 1px solid currentColor; +} +.border-right { + border-right: 1px solid currentColor; +} +.text-center { + text-align: center; +} +.text-right { + text-align: right; +} +.margin-0 { + margin: 0; +} +.mr-r1 { + margin-right: 10px !important; +} +.pd-r1 { + padding-right: 10px !important; +} +.padding-0 { + padding: 0; +} +table tr.border-top-none th { + border-top: none !important; +} \ No newline at end of file diff --git a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/gst-template-a/gst-template-a.component.ts b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/gst-template-a/gst-template-a.component.ts index 8f4952b739c..23ac42571cc 100644 --- a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/gst-template-a/gst-template-a.component.ts +++ b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/gst-template-a/gst-template-a.component.ts @@ -31,7 +31,6 @@ export class GstTemplateAComponent implements OnInit, OnDestroy, OnChanges { /* This will hold the value if Gst Composition will show/hide */ @Input() public showGstComposition: boolean = false; @Input() public voucherType: string; - @Output() public sectionName: EventEmitter = new EventEmitter(); public companySetting$: Observable = observableOf(null); public companyAddress: string = ''; diff --git a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/response.json b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/response.json new file mode 100644 index 00000000000..6092744a3dd --- /dev/null +++ b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/response.json @@ -0,0 +1,368 @@ +{ + "header": { + "shippingDate": { + "label": "Ship Date", + "display": true, + "width": null + }, + "showEInvoiceDetails": { + "label": "", + "display": false, + "width": null + }, + "customField1": { + "label": "", + "display": true, + "width": null + }, + "customField2": { + "label": "", + "display": true, + "width": null + }, + "shippedVia": { + "label": "Ship Via", + "display": true, + "width": null + }, + "customField3": { + "label": "", + "display": true, + "width": null + }, + "companyName": { + "label": "Multiple Variant Testing", + "display": true, + "width": null + }, + "displayExchangeRate": { + "label": "", + "display": false, + "width": null + }, + "displayLutNumber": { + "label": "", + "display": false, + "width": null + }, + "displayPlaceOfSupply": { + "label": "", + "display": false, + "width": null + }, + "displayPlaceOfCountry": { + "label": "", + "display": false, + "width": null + }, + "dueDate": { + "label": "Due Date", + "display": true, + "width": null + }, + "gstComposition": { + "label": "", + "display": true, + "width": null + }, + "gstin": { + "label": "GSTIN", + "display": true, + "width": null + }, + "shippingGstin": { + "label": "GSTIN", + "display": true, + "width": null + }, + "voucherNumber": { + "label": "Voucher No.", + "display": true, + "width": null + }, + "customerEmail": { + "label": "", + "display": true, + "width": null + }, + "invoiceNumber": { + "label": "Invoice No.", + "display": true, + "width": null + }, + "showQrCode": { + "label": "", + "display": false, + "width": null + }, + "voucherDate": { + "label": "Voucher Date", + "display": true, + "width": null + }, + "customerMobileNumber": { + "label": "", + "display": true, + "width": null + }, + "attentionTo": { + "label": "Attention To", + "display": true, + "width": null + }, + "pan": { + "label": "PAN", + "display": true, + "width": null + }, + "trackingNumber": { + "label": "Tracking No.", + "display": true, + "width": null + }, + "formNameInvoice": { + "label": "INVOICE", + "display": true, + "width": null + }, + "billingGstin": { + "label": "GSTIN", + "display": true, + "width": null + }, + "address": { + "label": "", + "display": true, + "width": null + }, + "billingState": { + "label": "State", + "display": true, + "width": null + }, + "invoiceDate": { + "label": "Invoice Date", + "display": true, + "width": null + }, + "customerName": { + "label": "", + "display": true, + "width": null + }, + "formNameTaxInvoice": { + "label": "TAX INVOICE", + "display": true, + "width": null + }, + "shippingAddress": { + "label": "Shipping Address", + "display": true, + "width": null + }, + "shippingState": { + "label": "State", + "display": true, + "width": null + }, + "billingAddress": { + "label": "Billing Address", + "display": true, + "width": null + }, + "warehouseAddress": { + "label": "", + "display": true, + "width": null + }, + "showCompanyAddress": { + "label": "", + "display": true, + "width": null + } + }, + "table": { + "date": { + "label": "Date", + "display": true, + "width": "10" + }, + "item": { + "label": "Description", + "display": true, + "width": "10" + }, + "total": { + "label": "Total", + "display": true, + "width": "10" + }, + "quantity": { + "label": "Qty.", + "display": true, + "width": "10" + }, + "sNo": { + "label": "#", + "display": true, + "width": "10" + }, + "rate": { + "label": "Rate/ Item", + "display": true, + "width": "10" + }, + "taxableValue": { + "label": "Taxable Amt.", + "display": true, + "width": "10" + }, + "previousDue": { + "label": "Previous Due", + "display": false, + "width": null + }, + "description": { + "label": "Some label", + "display": true, + "width": "10" + }, + "discount": { + "label": "Dis./ Item", + "display": true, + "width": "10" + }, + "taxes": { + "label": "Taxes", + "display": true, + "width": "10" + }, + "displayBaseCurrency": { + "label": "", + "display": true, + "width": null + }, + "showDescriptionInRows": { + "label": "", + "display": false, + "width": null + }, + "amountBeforeDiscount": { + "label": "Total Before Dis.", + "display": true, + "width": null + }, + "hsnSac": { + "label": "HSN/SAC", + "display": true, + "width": "10" + }, + "otherTaxBifurcation": { + "label": "TCS", + "display": true, + "width": null + }, + "totalQuantity": { + "label": "Total Quantity", + "display": true, + "width": null + } + }, + "footer": { + "totalTax": { + "label": "Total Tax*", + "display": true, + "width": null + }, + "displayExportMessage": { + "label": "", + "display": false, + "width": null + }, + "thanks": { + "label": "", + "display": true, + "width": null + }, + "taxableAmount": { + "label": "Sub Total", + "display": true, + "width": null + }, + "otherDeduction": { + "label": "", + "display": true, + "width": null + }, + "imageSignature": { + "label": "", + "display": false, + "width": null + }, + "grandTotal": { + "label": "Invoice Total", + "display": true, + "width": null + }, + "totalInWords": { + "label": "Invoice Total (In words)", + "display": true, + "width": null + }, + "totalDue": { + "label": "Total Due", + "display": true, + "width": null + }, + "companyAddress": { + "label": "", + "display": true, + "width": null + }, + "companyName": { + "label": "Multiple Variant Testing", + "display": true, + "width": null + }, + "slogan": { + "label": "", + "display": true, + "width": null + }, + "textUnderSlogan": { + "label": "", + "display": true, + "width": null + }, + "showNotesAtLastPage": { + "label": "", + "display": false, + "width": null + }, + "message1": { + "label": "", + "display": true, + "width": null + }, + "showMessage2": { + "label": "", + "display": true, + "width": null + }, + "tcs": { + "label": "TCS", + "display": true, + "width": null + }, + "tds": { + "label": "TDS", + "display": true, + "width": null + }, + "taxBifurcation": { + "label": "Tax Bifurcation", + "display": false, + "width": null + } + } +} \ No newline at end of file diff --git a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.html b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.html index 45911c71914..6cd4ea38fb0 100644 --- a/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.html +++ b/apps/web-giddh/src/app/invoice/templates/edit-template/out-tempate/templates/tally-template-a/tally-template-a.component.html @@ -1,316 +1,373 @@ - - - - - - - -
-