shareneus 1.1.5 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -53,7 +53,9 @@ class InvPrintService {
53
53
  }
54
54
  InvoicePrintData.Consolidate = ConsolidateGST;
55
55
  InvoicePrintData.ShowDiscountColumn = false;
56
+ console.log(ForInsurance, ConsolidateGST);
56
57
  if (!ForInsurance && !ConsolidateGST) {
58
+ console.log(shared_print_service_1.PrintSharedService.CheckItemIndexWithDisc(InvoicePrintData));
57
59
  if (shared_print_service_1.PrintSharedService.CheckItemIndexWithDisc(InvoicePrintData) !== -1) {
58
60
  // InvoicePrintData.ShowDiscountColumn = (InvoicePrintData.Settings.DiscLvl === 'ITM' || InvoicePrintData.Settings.DiscLvl === 'RECITM') ? true : false;
59
61
  InvoicePrintData.ShowDiscountColumn = true;
@@ -244,6 +246,14 @@ class InvPrintService {
244
246
  Item.CGSTAmt = tr_utils_1.TrUtils.FixPriceValue(Item.CGST);
245
247
  Item.SGSTAmt = tr_utils_1.TrUtils.FixPriceValue(Item.SGST);
246
248
  Item.IGSTAmt = tr_utils_1.TrUtils.FixPriceValue(Item.IGST);
249
+ Item.TaxName = this.getTaxName(Item.TCode, TaxCodes);
250
+ if (!tr_utils_1.TrUtils.IsEmpty(Item.Perc)) {
251
+ Item.DiscPerc = Item.Perc;
252
+ }
253
+ else {
254
+ Item.DiscPerc = Item.Perc;
255
+ Item.DiscPerc = (0, aggregation_1.division)((0, aggregation_1.multiply)(100, Item.Disc), Item.UnPr);
256
+ }
247
257
  Item.CGSTPerc = shared_print_service_1.PrintSharedService.GetCGSTValueBasedOnTaxCode(Item.TCode, TaxCodes);
248
258
  Item.SGSTPerc = shared_print_service_1.PrintSharedService.GetSGSTValueBasedOnTaxCode(Item.TCode, TaxCodes);
249
259
  Item.IGSTPerc = shared_print_service_1.PrintSharedService.GetIGSTValueBasedOnTaxCode(Item.TCode, TaxCodes);
@@ -259,9 +269,21 @@ class InvPrintService {
259
269
  else {
260
270
  Item.QtyAndUoM = Item.Qty + '';
261
271
  }
272
+ if (!tr_utils_1.TrUtils.IsZero(Item.OfQty) && !tr_utils_1.TrUtils.CheckInvalidSelect(Item.UoM)) {
273
+ Item.OfQtyAndUoM = Item.OfQty + ' ' + Item.UoM;
274
+ }
275
+ else {
276
+ Item.OfQtyAndUoM = Item.OfQty + '';
277
+ }
262
278
  });
263
279
  return Items;
264
280
  }
281
+ static getTaxName(TCode, TaxCodes) {
282
+ let Index = TaxCodes.findIndex((TaxCode) => {
283
+ return Number(TCode) === TaxCode._id;
284
+ });
285
+ return (Index !== -1) ? TaxCodes[Index].Name : '';
286
+ }
265
287
  static ReverseItemsForInvoicePrint(argInvoiceData) {
266
288
  argInvoiceData.Ops = argInvoiceData.Ops;
267
289
  argInvoiceData.Items = argInvoiceData.Items;
@@ -156,6 +156,7 @@ class InvoiceLandscapePdfService {
156
156
  ];
157
157
  }
158
158
  static PreparesparePartsTable(ROPrintData) {
159
+ console.log('ROPrintData', ROPrintData);
159
160
  let List = [];
160
161
  if (ROPrintData.Entity.Body === 1) {
161
162
  for (let i = 0; i < ROPrintData.PrintInfo.length; i++) {
@@ -0,0 +1,636 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvoicePortraitPrintService = void 0;
4
+ const enums_1 = require("../enums/enums");
5
+ const my_date_1 = require("../utils/my-date");
6
+ const tr_utils_1 = require("../utils/tr-utils");
7
+ class InvoicePortraitPrintService {
8
+ static GetPrint(InvoicePDFData, size, printOptions) {
9
+ // console.log('InvoicePDFData', InvoicePDFData);
10
+ if (tr_utils_1.TrUtils.IsNull(InvoicePDFData.Name)) {
11
+ InvoicePDFData.Name = '';
12
+ }
13
+ let dd = {
14
+ info: {
15
+ title: 'CounterSale',
16
+ },
17
+ header: function (currentPage, pageCount, pageSize) {
18
+ return { text: currentPage.toString() + ' of ' + pageCount, alignment: 'right', marginRight: 25, fontSize: 8, marginTop: 2 };
19
+ },
20
+ pageMargins: this.GetMarginsBasedOnPaperSize(size),
21
+ pageSize: 'A4',
22
+ content: [
23
+ { text: InvoicePDFData.Entity.CName, style: ['headerstyle'], alignment: 'center', fontSize: 15 },
24
+ { text: this.GetAddress(InvoicePDFData.Entity), alignment: 'center', style: ['headerstyle'] },
25
+ {
26
+ columns: this.GetHeaderInfo(InvoicePDFData)
27
+ },
28
+ {
29
+ style: 'tableExample',
30
+ table: {
31
+ widths: [200, '*', 'auto'],
32
+ body: this.GetCustomerAndBankDetails(InvoicePDFData)
33
+ },
34
+ layout: this.HeaderLayOut()
35
+ },
36
+ this.GetItemsTable(InvoicePDFData.Items, InvoicePDFData.ShowTaxColumn, InvoicePDFData.Settings.PoS.SType, printOptions, size),
37
+ [this.TotalDetails(InvoicePDFData)],
38
+ this.GetSignatures(InvoicePDFData.Entity.CName, InvoicePDFData.Type, InvoicePDFData.For),
39
+ ],
40
+ styles: {
41
+ headerstyle: {
42
+ fontFamily: 'Calibri',
43
+ fontSize: 9
44
+ },
45
+ Sign: {
46
+ fontSize: 8,
47
+ margin: [0, 15, 0, 5]
48
+ },
49
+ forCompany: {
50
+ // margin: [0, 10, 30, 0],
51
+ marginRight: 5,
52
+ marginTop: 10,
53
+ fontSize: 9,
54
+ alignment: 'right'
55
+ },
56
+ forCompany1: {
57
+ margin: [0, 5, 15, 0],
58
+ fontSize: 8
59
+ },
60
+ tableheader: {
61
+ bold: true,
62
+ fontFamily: 'Calibri',
63
+ margin: [0, 1, 0, 5],
64
+ alignment: 'center'
65
+ },
66
+ tableheader1: {
67
+ bold: true,
68
+ fontFamily: 'Calibri',
69
+ margin: [0, 2, 0, 2],
70
+ alignment: 'center'
71
+ },
72
+ tableExample: {
73
+ fontSize: 9
74
+ },
75
+ tableExample1: {
76
+ fontSize: 8
77
+ }
78
+ }
79
+ };
80
+ return dd;
81
+ }
82
+ static GetCustomerAndBankDetails(InvoicePDFData) {
83
+ let CustDetails = [];
84
+ CustDetails.push([{
85
+ marginLeft: 3,
86
+ stack: [
87
+ this.GetCustomerDetails(InvoicePDFData.Customer, InvoicePDFData.Type, null, null, 'Customer Name & Address')
88
+ ]
89
+ },
90
+ {
91
+ marginLeft: 5,
92
+ marginRight: 5,
93
+ stack: [this.GetCustomerGSTIN(InvoicePDFData.Customer), this.GetCustomerDLNo(InvoicePDFData.Customer)]
94
+ },
95
+ {
96
+ marginRight: 5,
97
+ stack: [{ text: 'Invoice No : ' + InvoicePDFData._id, style: ['headerstyle'] },
98
+ { text: 'Date : ' + InvoicePDFData.CrDate, style: ['headerstyle'] }]
99
+ }]);
100
+ if (InvoicePDFData.Entity.PrBank) {
101
+ CustDetails.push([{ text: 'Note: OUR BANK A/C: ' + InvoicePDFData.Entity.Bank.ACNo + ', IFSC CODE: ' + InvoicePDFData.Entity.Bank.IFSC + ', Account Holder Name: ' + InvoicePDFData.Entity.Bank.ACName + ', BANK NAME: ' + InvoicePDFData.Entity.Bank.Name, colSpan: 3, fontSize: 8 }]);
102
+ }
103
+ return CustDetails;
104
+ }
105
+ static GetAddress1(Customer) {
106
+ var Address = this.GetFormatAddress(Customer);
107
+ if (Address.length !== 5) {
108
+ return Address;
109
+ }
110
+ else {
111
+ let a = '';
112
+ return a;
113
+ }
114
+ }
115
+ static GetFormatAddress(CustomerObj) {
116
+ var Addressnew = '';
117
+ if (!tr_utils_1.TrUtils.IsNull(CustomerObj.Adrs)) {
118
+ CustomerObj.Adrs.forEach((Adrs, index) => {
119
+ Addressnew = Addressnew + Adrs;
120
+ if (CustomerObj.Adrs.length > (index + 1)) {
121
+ Addressnew = Addressnew + ', ';
122
+ }
123
+ });
124
+ }
125
+ return Addressnew;
126
+ }
127
+ static GetCustomerDetails(Customer, Type, Vehicle, Settings, CustHeader) {
128
+ if (tr_utils_1.TrUtils.IsNull(Customer)) {
129
+ return this.emptyObject();
130
+ }
131
+ let Data = [{ text: CustHeader + ':', style: 'hed', bold: true },
132
+ { text: Customer.Name, marginTop: 2 },
133
+ { text: this.GetAddress1(Customer), marginTop: 3, fontSize: 7 },
134
+ this.GetCustPhoneNumber(Customer, Type),
135
+ this.GetCustomerName(Customer.CustName)];
136
+ return {
137
+ style: 'colum1',
138
+ stack: Data
139
+ };
140
+ }
141
+ static GetFormatContact(CustomerObj) {
142
+ var contactnew = '';
143
+ if (!tr_utils_1.TrUtils.IsNull(CustomerObj.Cons)) {
144
+ CustomerObj.Cons.forEach((Contact) => {
145
+ contactnew = contactnew + '(' + Contact.Type + '):' + Contact.No + '\n';
146
+ });
147
+ }
148
+ return contactnew;
149
+ }
150
+ static GetCustPhoneNumber(Customer, Type) {
151
+ if (Type !== 'Technician Copy') {
152
+ var contact = this.GetFormatContact(Customer);
153
+ if (contact.length !== 0) {
154
+ return { columns: [{ text: 'Phone', width: 27, style: 'hed' }, contact] };
155
+ }
156
+ else {
157
+ return this.emptyObject();
158
+ }
159
+ }
160
+ else {
161
+ return this.emptyObject();
162
+ }
163
+ }
164
+ static emptyObject() {
165
+ let a = {};
166
+ return a;
167
+ }
168
+ static GetCustomerName(Customer) {
169
+ if (!tr_utils_1.TrUtils.IsEmpty(Customer)) {
170
+ let GSTIN = { columns: [{ text: 'Customer Name :', width: 65, bold: true }, { text: Customer }] };
171
+ return GSTIN;
172
+ }
173
+ else {
174
+ return this.emptyObject();
175
+ }
176
+ }
177
+ static GetCustomerGSTIN(Customer) {
178
+ if (!tr_utils_1.TrUtils.IsEmpty(Customer.GSTIN)) {
179
+ let GSTIN = { columns: [{ text: 'GSTIN :', width: 33, style: 'hed' }, { text: Customer.GSTIN, marginTop: 1.5 }] };
180
+ return GSTIN;
181
+ }
182
+ else {
183
+ return this.emptyObject();
184
+ }
185
+ }
186
+ static GetCustomerDLNo(Customer) {
187
+ if (!tr_utils_1.TrUtils.IsEmpty(Customer.DLNo)) {
188
+ let GSTIN = { columns: [{ text: 'DL No :', width: 33, style: 'hed' }, { text: Customer.DLNo, marginTop: 1.5 }] };
189
+ return GSTIN;
190
+ }
191
+ else {
192
+ return this.emptyObject();
193
+ }
194
+ }
195
+ static HeaderLayOut() {
196
+ return {
197
+ hLineWidth: function (i, node) {
198
+ return (i === 0 || i === 1 || i === node.table.body.length) ? 1 : 0;
199
+ },
200
+ vLineWidth: function (i, node) {
201
+ return (i === 0 || i === node.table.widths.length) ? 1 : 0;
202
+ },
203
+ hLineColor: function (i, node) {
204
+ return 'gray';
205
+ },
206
+ vLineColor: function (i, node) {
207
+ return 'gray';
208
+ },
209
+ };
210
+ }
211
+ static GetHeaderInfo(InvoicePDFData) {
212
+ let TaxInfo = [];
213
+ if (!tr_utils_1.TrUtils.IsEmpty(InvoicePDFData.Entity.GSTIN)) {
214
+ TaxInfo.push({ text: 'GSTIN : ' + InvoicePDFData.Entity.GSTIN, marginTop: 2, marginLeft: 5, alignment: 'left', fontSize: 9, width: 'auto' });
215
+ }
216
+ if (!tr_utils_1.TrUtils.IsEmpty(InvoicePDFData.Entity.DLNo)) {
217
+ TaxInfo.push({ text: 'D.L.NO : ' + InvoicePDFData.Entity.DLNo, marginTop: 2, marginLeft: 5, alignment: 'left', fontSize: 9, width: '*' });
218
+ }
219
+ TaxInfo.push(this.GetBillofSupplyName(InvoicePDFData.Settings));
220
+ return TaxInfo;
221
+ }
222
+ static GetMarginsBasedOnPaperSize(size) {
223
+ if (size === 'full') {
224
+ return [20, 15, 20, 15];
225
+ }
226
+ else {
227
+ return [20, 15, 20, 435.945];
228
+ }
229
+ }
230
+ static GrandTotalTable(data) {
231
+ var body = [];
232
+ data.forEach((row) => {
233
+ if (!tr_utils_1.TrUtils.IsFixedZero(row.value) || row.name === 'Total') {
234
+ var dataRow = [];
235
+ dataRow.push({ text: (row.name).toString(), noWrap: true });
236
+ dataRow.push(':');
237
+ if (row.name === 'Final Total') {
238
+ dataRow.push({ text: (row.value).toString(), noWrap: true, bold: true, fontSize: 12, alignment: 'right' });
239
+ }
240
+ else if (!tr_utils_1.TrUtils.IsNull(row.value)) {
241
+ dataRow.push({ text: (row.value).toString(), noWrap: true, alignment: 'right' });
242
+ }
243
+ else {
244
+ dataRow.push({ text: '', noWrap: true, alignment: 'right' });
245
+ }
246
+ body.push(dataRow);
247
+ }
248
+ });
249
+ return body;
250
+ }
251
+ static GetBillofSupplyName(Settings) {
252
+ return { text: Settings.Tax === 'BS' ? ' Bill of Supply' : null, alignment: 'center', marginLeft: 15, marginTop: 2, marginBottom: 3, fontSize: 9, width: 'auto' };
253
+ }
254
+ static GetDiscountOverall(InvoicePDFData) {
255
+ return tr_utils_1.TrUtils.FixPriceValue(Number(InvoicePDFData.FixedDisc));
256
+ }
257
+ static CustomerAndVehicleDetailsAfterLine(size) {
258
+ let length = 575;
259
+ if (size === 'A3') {
260
+ length = 820;
261
+ }
262
+ else if (size === 'Custom') {
263
+ length = 575;
264
+ }
265
+ return {
266
+ canvas: [
267
+ {
268
+ type: 'line',
269
+ lineColor: 'gray',
270
+ x1: 0,
271
+ y1: 0,
272
+ x2: 540,
273
+ y2: 0,
274
+ lineWidth: 1
275
+ }
276
+ ]
277
+ };
278
+ }
279
+ static GetSignatures(CName, For, Type) {
280
+ return {
281
+ columns: [{
282
+ stack: [
283
+ { columns: ['', '', this.CompanyName(CName)] }
284
+ ]
285
+ }],
286
+ };
287
+ }
288
+ static CompanyName(CName) {
289
+ return {
290
+ style: 'forCompany1',
291
+ text: ['For ', { text: CName, bold: 'true' }],
292
+ };
293
+ }
294
+ static Authorizedsignature() {
295
+ return {
296
+ style: 'Sign',
297
+ text: ['Authorized Signatory'],
298
+ };
299
+ }
300
+ static CustomerSignature() {
301
+ return {
302
+ style: 'Sign',
303
+ text: ['Customer Signature'], marginLeft: 90
304
+ };
305
+ }
306
+ static GetItemsTable(Items, ShowTaxColumn, SType, printOptions, size) {
307
+ return {
308
+ style: 'tableExample',
309
+ marginTop: 3,
310
+ marginBottom: 5,
311
+ table: {
312
+ widths: this.GetWidths(ShowTaxColumn, printOptions),
313
+ headerRows: 1,
314
+ body: this.BuildTableBodyForLaborAndParts(Items, ShowTaxColumn, SType, printOptions, size)
315
+ },
316
+ layout: {
317
+ hLineWidth: function (i, node) {
318
+ return (i === 0 || i === 1 || i === node.table.body.length) ? 1 : 0;
319
+ },
320
+ vLineWidth: function (i, node) {
321
+ return (i === 0 || i === node.table.widths.length) ? 1 : 0.5;
322
+ },
323
+ hLineColor: function (i, node) {
324
+ return 'gray';
325
+ },
326
+ vLineColor: function (i, node) {
327
+ return 'gray';
328
+ },
329
+ }
330
+ };
331
+ }
332
+ static GetWidths(ShowTaxColumn, printOptions) {
333
+ if (ShowTaxColumn && printOptions.Tax !== 'NO') {
334
+ if (printOptions.Disc === 'NO') {
335
+ return [16, '*', 40, 45, 25, 20, 20, 45, 45, 30, 50];
336
+ }
337
+ else {
338
+ return [16, '*', 40, 45, 25, 20, 20, 45, 45, 35, 30, 50];
339
+ }
340
+ }
341
+ else {
342
+ if (printOptions.Disc === 'NO') {
343
+ return [22, '*', 40, 45, 25, 20, 20, 50, 50, 50];
344
+ }
345
+ else {
346
+ return [22, '*', 40, 45, 25, 20, 20, 50, 50, 50, 50];
347
+ }
348
+ }
349
+ }
350
+ static GetAddress(Entity) {
351
+ return Entity.Adrs1 + ', ' + Entity.Adrs2 + ', ' + Entity.City + '-' + Entity.PIN + ', Cell : ' + Entity.Phone;
352
+ }
353
+ static BuildTableBodyForLaborAndParts(Items, ShowTaxColumn, SType, printOptions, size) {
354
+ let body = this.GetHeaderNames(ShowTaxColumn, SType, printOptions);
355
+ let j = 1;
356
+ Items.forEach((item, index) => {
357
+ var _a, _b;
358
+ let dataRow = [];
359
+ dataRow.push({ text: index + 1, });
360
+ dataRow.push({ text: item.Desc, });
361
+ if (ShowTaxColumn) {
362
+ dataRow.push({ text: item.HSN, alignment: 'center', style: ['headerstyle'], });
363
+ }
364
+ dataRow.push({ text: (_a = item.Batch) === null || _a === void 0 ? void 0 : _a.BN, alignment: 'center', style: ['headerstyle'], });
365
+ dataRow.push({ text: my_date_1.MyDate.ConvertUTCDateToReadableExDate(item['Batch'].ExDt), alignment: 'center', style: ['headerstyle'], });
366
+ dataRow.push({ text: item.QtyAndUoM, alignment: 'right', style: ['headerstyle'], });
367
+ dataRow.push({ text: item.OfQty, alignment: 'right', style: ['headerstyle'], });
368
+ dataRow.push({ text: tr_utils_1.TrUtils.FixPriceValue(item.MRP), alignment: 'right', style: ['headerstyle'], });
369
+ dataRow.push({ text: tr_utils_1.TrUtils.FixPriceValue(item.UnPr), alignment: 'right', style: ['headerstyle'], });
370
+ if (printOptions.Disc !== 'NO') {
371
+ if (printOptions.Disc === 'PERC') {
372
+ dataRow.push({ text: tr_utils_1.TrUtils.FixPriceValue(item.DiscPerc), alignment: 'right', style: ['headerstyle'], });
373
+ }
374
+ else {
375
+ dataRow.push({ text: tr_utils_1.TrUtils.FixPriceValue(item.Disc), alignment: 'right', style: ['headerstyle'], });
376
+ }
377
+ }
378
+ if (ShowTaxColumn && printOptions.Tax !== 'NO') {
379
+ let Tax = (_b = item.TaxName) === null || _b === void 0 ? void 0 : _b.split('%');
380
+ dataRow.push({ text: tr_utils_1.TrUtils.IsNull(Tax) ? '' : Tax[0], alignment: 'right', style: ['headerstyle'], });
381
+ }
382
+ dataRow.push({ text: item.Ret ? '-' + tr_utils_1.TrUtils.FixPriceValue(item.LineTotal) : tr_utils_1.TrUtils.FixPriceValue(item.LineTotal), alignment: 'right', style: ['headerstyle'], });
383
+ body.push(dataRow);
384
+ if (index + 1 === j * 9) {
385
+ j++;
386
+ if (size === 'diff') {
387
+ let dataRow1 = [{ text: '', pageBreak: 'after' }, '', '', '', '', ''];
388
+ if (ShowTaxColumn) {
389
+ dataRow1.push('');
390
+ dataRow1.push('');
391
+ }
392
+ body.push(dataRow1);
393
+ }
394
+ }
395
+ });
396
+ return body;
397
+ }
398
+ static GetHeaderNames(ShowTaxColumn, SType, printOptions) {
399
+ let HeadingNames;
400
+ if (ShowTaxColumn) {
401
+ HeadingNames = [[{ text: 'S.No', style: 'tableheader1', Field: 'SNo', alignment: 'left', fontSize: 7 },
402
+ { text: 'Item Name', style: 'tableheader1', Field: 'Desc', alignment: 'left', line: true },
403
+ { text: 'HSN', style: 'tableheader1', Field: 'HSN' },
404
+ { text: 'Batch No.', style: 'tableheader1', Field: 'Batches' },
405
+ { text: 'Ex.Dt', style: 'tableheader1', Field: 'ExDate' },
406
+ { text: 'Qty', style: 'tableheader1', Field: 'Qty', alignment: 'right' },
407
+ { text: 'Free', style: 'tableheader1', Field: 'OfQty', alignment: 'right' },
408
+ { text: 'MRP', style: 'tableheader1', Field: 'MRP', alignment: 'right' },
409
+ { text: 'Price', style: 'tableheader1', Field: 'UnPr', alignment: 'right' },
410
+ { text: 'Line Total', style: 'tableheader1', Field: 'LineTotal', alignment: 'right' }]];
411
+ if (printOptions.Disc !== 'NO') {
412
+ HeadingNames[0].splice(9, 0, { text: (printOptions.Disc === 'PERC') ? 'Disc(%)' : 'Disc(Rs)', style: 'tableheader1', Field: 'Disc' });
413
+ }
414
+ if (printOptions.Tax !== 'NO') {
415
+ HeadingNames[0].splice(10, 0, { text: (SType === 'Intra') ? 'GST(%)' : 'IGST(%)', style: 'tableheader1', Field: 'TaxAmount', alignment: 'right' });
416
+ }
417
+ }
418
+ else {
419
+ HeadingNames = [[{ text: 'S.No', style: 'tableheader1', Field: 'SNo', alignment: 'left' },
420
+ { text: 'Item Name', style: 'tableheader1', Field: 'Desc', alignment: 'left', line: true },
421
+ { text: 'Batch No.', style: 'tableheader1', Field: 'Batches', alignment: 'left' },
422
+ { text: 'Ex.Dt', style: 'tableheader1', Field: 'ExDate', alignment: 'left' },
423
+ { text: 'Qty', style: 'tableheader1', Field: 'Qty', alignment: 'right' },
424
+ { text: 'Free', style: 'tableheader1', Field: 'OfQty', alignment: 'right' },
425
+ { text: 'MRP', style: 'tableheader1', Field: 'MRP', alignment: 'right' },
426
+ { text: 'Price', style: 'tableheader1', Field: 'UnPr', alignment: 'right' },
427
+ // { text: 'Disc(%)', style: 'tableheader1', Field: 'Disc' },
428
+ { text: 'Line Total', style: 'tableheader1', Field: 'LineTotal', alignment: 'right' }]];
429
+ if (printOptions.Disc !== 'NO') {
430
+ HeadingNames[0].splice(8, 0, { text: (printOptions.Disc === 'PERC') ? 'Disc(%)' : 'Disc(Rs)', style: 'tableheader1', Field: 'Disc' });
431
+ }
432
+ }
433
+ return HeadingNames;
434
+ }
435
+ static TotalDetails(ROPrintData) {
436
+ let totalDisc;
437
+ let totalTax;
438
+ if (!ROPrintData.Consolidate) {
439
+ totalTax = tr_utils_1.TrUtils.FixPriceValue(Number(0) + Number(ROPrintData.CustPartITax));
440
+ if (tr_utils_1.TrUtils.isTaxable(ROPrintData.Settings.Tax)) {
441
+ totalDisc = tr_utils_1.TrUtils.FixPriceValue(Number(0) + Number(ROPrintData.CustPartsDiscTotal));
442
+ }
443
+ else {
444
+ totalDisc = tr_utils_1.TrUtils.FixPriceValue(Number(0) + Number(ROPrintData.CustPartsDiscTotal) + Number(ROPrintData.FixedDisc));
445
+ }
446
+ }
447
+ return [
448
+ {
449
+ style: 'tableExample',
450
+ marginTop: -3,
451
+ table: {
452
+ widths: ['*', '*'],
453
+ body: [
454
+ [
455
+ this.PartsTaxAmounts(ROPrintData.CustTaxGroupData, true, ROPrintData.ShowIGST, ROPrintData.ShowTaxColumn),
456
+ {
457
+ columns: [{ text: '', width: 150 }, this.GrandTotal('0.00', ROPrintData.CustPartsTotalBeforeDisc, totalDisc, totalTax, ROPrintData.For, ROPrintData.FixedTotal, ROPrintData.CustTotalRoundedBy, ROPrintData.CustRoundedTotal, null, ROPrintData.Consolidate, null)]
458
+ }
459
+ ],
460
+ ]
461
+ },
462
+ layout: 'noBorders'
463
+ },
464
+ ];
465
+ }
466
+ static PartsTaxAmounts(PartsTaxInfo, ShowAccParts, ShowIGST, ShowTaxColumn) {
467
+ if (ShowTaxColumn) {
468
+ return {
469
+ stack: [this.AllHSNPartCGSTTaxListTable(PartsTaxInfo, ShowAccParts, ShowIGST, ShowTaxColumn)]
470
+ };
471
+ }
472
+ else {
473
+ return '';
474
+ }
475
+ }
476
+ static GrandTotal(LaborAfterGST, PartsAfterGST, OverAllRecordDiscount, totalTax, For, OverAllRecordTotal, Rounded, GrandTotal, Adj, Consolidate, subTotal) {
477
+ let AccountFields = [
478
+ { name: 'Total Disc.', value: OverAllRecordDiscount },
479
+ ];
480
+ if (!Consolidate && !tr_utils_1.TrUtils.IsNull(subTotal)) {
481
+ AccountFields.unshift({ name: 'SubTotal', value: tr_utils_1.TrUtils.FixPriceValue(tr_utils_1.TrUtils.SetValueToZeroIfNull(Number(subTotal))) });
482
+ }
483
+ else {
484
+ if (!Consolidate) {
485
+ AccountFields.unshift({ name: 'SubTotal', value: tr_utils_1.TrUtils.FixPriceValue(tr_utils_1.TrUtils.SetValueToZeroIfNull(Number(LaborAfterGST)) + tr_utils_1.TrUtils.SetValueToZeroIfNull(Number(PartsAfterGST))) });
486
+ }
487
+ }
488
+ if (!tr_utils_1.TrUtils.IsEmpty(totalTax)) {
489
+ AccountFields.push({ name: 'Total Tax', value: totalTax });
490
+ }
491
+ if (!tr_utils_1.TrUtils.IsEmpty(Adj)) {
492
+ if (Adj > 0) {
493
+ Adj = '+' + tr_utils_1.TrUtils.FixPriceValue(Adj);
494
+ }
495
+ AccountFields.push({ name: 'Adjust', value: Adj });
496
+ }
497
+ if (For === enums_1.PayTypeEnum.Insurance) {
498
+ let total = {
499
+ name: 'Total',
500
+ value: OverAllRecordTotal
501
+ };
502
+ let Rounding = { name: 'Rounding', value: Rounded };
503
+ if (Rounding.value > 0) {
504
+ Rounding.value = '+' + Rounding.value;
505
+ }
506
+ let FinalTotal = { name: 'Final Total', value: GrandTotal, bold: true, fontSize: 12 };
507
+ AccountFields.push(total);
508
+ AccountFields.push(Rounding);
509
+ if (!tr_utils_1.TrUtils.IsFixedZero(Rounded)) {
510
+ AccountFields.push(FinalTotal);
511
+ }
512
+ }
513
+ else {
514
+ let total = {
515
+ name: 'Total',
516
+ value: OverAllRecordTotal
517
+ };
518
+ let Rounding = { name: 'Rounding', value: Rounded };
519
+ let FinalTotal = { name: 'Final Total', value: GrandTotal };
520
+ if (Rounding.value > 0) {
521
+ Rounding.value = '+' + Rounding.value;
522
+ }
523
+ // AccountFields.push(total);
524
+ AccountFields.push(Rounding);
525
+ if (!tr_utils_1.TrUtils.IsFixedZero(Rounded)) {
526
+ AccountFields.push(FinalTotal);
527
+ }
528
+ }
529
+ return {
530
+ style: ['columnheader', 'TotalsStyles'],
531
+ lineHeight: 0.7,
532
+ marginBottom: 5,
533
+ width: 'auto',
534
+ table: {
535
+ widths: ['auto', 'auto', 60],
536
+ body: this.GrandTotalTable(AccountFields)
537
+ },
538
+ layout: 'noBorders'
539
+ };
540
+ }
541
+ static AllHSNPartCGSTTaxListTable(PartsTaxInfo, ShowAccParts, ShowIGST, ShowTaxColumn) {
542
+ if (ShowIGST) {
543
+ return {
544
+ style: 'tableExample1',
545
+ table: {
546
+ widths: [50, 30, 45, 45],
547
+ headerRows: 1,
548
+ body: this.CreateHSNTaxTable(PartsTaxInfo, ShowAccParts, ShowIGST, ShowTaxColumn)
549
+ },
550
+ layout: this.HeaderLineStyle(),
551
+ };
552
+ }
553
+ else {
554
+ return {
555
+ style: 'tableExample1',
556
+ table: {
557
+ widths: [50, 30, 30, 60, 60],
558
+ headerRows: 1,
559
+ body: this.CreateHSNTaxTable(PartsTaxInfo, ShowAccParts, ShowIGST, ShowTaxColumn)
560
+ },
561
+ layout: this.HeaderLineStyle(),
562
+ };
563
+ }
564
+ }
565
+ static CreateHeadingAllHSNTaxList(ShowIGST) {
566
+ let HeaderNames = [{ text: 'HSN', style: 'tableheader', fontSize: 6, lineHeight: 0.3, Field: 'HSN', alignment: 'right' },
567
+ { text: 'Taxable Value', style: 'tableheader', fontSize: 6, lineHeight: 0.3, Field: 'TotalTaxableAmount', alignment: 'right' },
568
+ { text: 'Amount', style: 'tableheader', fontSize: 6, lineHeight: 0.3, Field: 'TotalTaxAmount', alignment: 'right' },
569
+ ];
570
+ if (ShowIGST) {
571
+ HeaderNames.splice(1, 0, { text: 'IGST', style: 'tableheader', fontSize: 6, lineHeight: 0.3, Field: 'IGST', alignment: 'right' });
572
+ }
573
+ else {
574
+ HeaderNames.splice(1, 0, { text: 'CGST', style: 'tableheader', fontSize: 6, lineHeight: 0.3, Field: 'CGST', alignment: 'right' });
575
+ HeaderNames.splice(2, 0, { text: 'SGST', style: 'tableheader', fontSize: 6, lineHeight: 0.3, Field: 'SGST', alignment: 'right' });
576
+ }
577
+ return HeaderNames;
578
+ }
579
+ static CreateHSNTaxTable(PartsTaxInfo, ShowAccParts, ShowIGST, ShowTaxColumn) {
580
+ if (!tr_utils_1.TrUtils.IsNull(PartsTaxInfo) && PartsTaxInfo.length !== 0 && ShowAccParts && ShowTaxColumn) {
581
+ var body = [];
582
+ let columns = this.CreateHeadingAllHSNTaxList(ShowIGST);
583
+ body.push(columns);
584
+ PartsTaxInfo.forEach((part) => {
585
+ var dataRow = [];
586
+ columns.forEach((column) => {
587
+ if (!tr_utils_1.TrUtils.IsFixedZero(part[column.Field]) &&
588
+ !tr_utils_1.TrUtils.IsNull(part[column.Field]) || column.Field === 'SGST' || column.Field === 'CGST'
589
+ || column.Field === 'TotalTaxAmount') {
590
+ if (column.Field === 'HSN') {
591
+ dataRow.push({ text: part[column.Field].toString(), alignment: 'right', nowrap: true });
592
+ }
593
+ else {
594
+ dataRow.push({ text: tr_utils_1.TrUtils.FixPriceValue(part[column.Field]).toString(), alignment: 'right', nowrap: true });
595
+ }
596
+ }
597
+ else {
598
+ part[column.Field] = '';
599
+ dataRow.push({ text: part[column.Field].toString(), alignment: 'right' });
600
+ }
601
+ });
602
+ body.push(dataRow);
603
+ });
604
+ return body;
605
+ }
606
+ else {
607
+ return [{}];
608
+ }
609
+ }
610
+ static HeaderLineStyle() {
611
+ return {
612
+ hLineWidth: function (i, node) {
613
+ return (i === 1) ? 0.1 : 0;
614
+ },
615
+ vLineWidth: function (i, node) {
616
+ return (i === 0 || i === node.table.widths.length) ? 0 : 0;
617
+ },
618
+ hLineColor: function (i, node) {
619
+ let color;
620
+ if (i === 0 || i === node.table.body.length) {
621
+ color = 'black';
622
+ }
623
+ else {
624
+ if (i === 1) {
625
+ color = 'lightgray';
626
+ }
627
+ else {
628
+ color = 'lightgray';
629
+ }
630
+ }
631
+ return color;
632
+ },
633
+ };
634
+ }
635
+ }
636
+ exports.InvoicePortraitPrintService = InvoicePortraitPrintService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shareneus",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",