shareneus 1.0.5

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.
Files changed (125) hide show
  1. package/dist/aggregation/aggregation.js +60 -0
  2. package/dist/enums/cache-enums.js +37 -0
  3. package/dist/enums/code-enums.js +288 -0
  4. package/dist/enums/enums.js +362 -0
  5. package/dist/enums/industry-enums.js +24 -0
  6. package/dist/excel-files/GSTR-RO-excel.service.js +935 -0
  7. package/dist/excel-files/GSTR1-excel.service.js +295 -0
  8. package/dist/excel-files/GSTR2-excel.service.js +295 -0
  9. package/dist/excel-files/analysis-excel.service.js +297 -0
  10. package/dist/excel-files/category-wise-item-excel.service.js +274 -0
  11. package/dist/excel-files/cust-balance-excel.service.js +287 -0
  12. package/dist/excel-files/cust-wise-sales-details.js +320 -0
  13. package/dist/excel-files/cust-wise-sales-summary-excel.service.js +302 -0
  14. package/dist/excel-files/expiring-drugs-excel.service.js +292 -0
  15. package/dist/excel-files/insurance-expire-excel.service.js +301 -0
  16. package/dist/excel-files/invoice-wise-excel.service.js +857 -0
  17. package/dist/excel-files/item-wise-doctor-sale-excel.service.js +258 -0
  18. package/dist/excel-files/item-wise-mout-details.js +292 -0
  19. package/dist/excel-files/item-wise-mout-summary.js +286 -0
  20. package/dist/excel-files/items-wise-sales-excel.service.js +314 -0
  21. package/dist/excel-files/manf-wise-sales-excel.service.js +276 -0
  22. package/dist/excel-files/operator-wise-details.js +265 -0
  23. package/dist/excel-files/operator-wise-summary.js +266 -0
  24. package/dist/excel-files/payment-receive-excel.service.js +225 -0
  25. package/dist/excel-files/payments-made-excel.service.js +302 -0
  26. package/dist/excel-files/repair-orders-excel.service.js +255 -0
  27. package/dist/excel-files/sa-wise-labor-sales-excel.service.js +232 -0
  28. package/dist/excel-files/sa-wise-part-sales-excel.service.js +232 -0
  29. package/dist/excel-files/sale-summary-excel.service.js +326 -0
  30. package/dist/excel-files/sales-by-service-details-excel.service.js +1 -0
  31. package/dist/excel-files/sales-by-service-summary-excel.service.js +422 -0
  32. package/dist/excel-files/scheduled-drug-summary-excel.service.js +367 -0
  33. package/dist/excel-files/scheduled-drugs-excel.service.js +366 -0
  34. package/dist/excel-files/spares-issue-excel.service.js +492 -0
  35. package/dist/excel-files/stock-excel.service.js +283 -0
  36. package/dist/excel-files/tally-sales-import.service.js +765 -0
  37. package/dist/excel-files/ven-balance-excel.service.js +293 -0
  38. package/dist/index.js +237 -0
  39. package/dist/services/analysis-pdf.service.js +105 -0
  40. package/dist/services/appointment-total.service.js +253 -0
  41. package/dist/services/auto-sales-receipt-pdf.service.js +539 -0
  42. package/dist/services/category-wise-item-pdf.service.js +98 -0
  43. package/dist/services/checklist-pdf.js +140 -0
  44. package/dist/services/checklists-pdf.js +124 -0
  45. package/dist/services/cn-print.service.js +211 -0
  46. package/dist/services/consultation-fee-receipt.service.js +378 -0
  47. package/dist/services/consultation-full-pdf.service.js +220 -0
  48. package/dist/services/consultation-pdf.service.js +360 -0
  49. package/dist/services/credit-note-pdf.service.js +578 -0
  50. package/dist/services/credit-note-totals.service.js +328 -0
  51. package/dist/services/cust-wise-sales-details-pdf.service.js +118 -0
  52. package/dist/services/cust-wise-sales-summary-pdf.service.js +111 -0
  53. package/dist/services/customer-balances-pdf.service.js +169 -0
  54. package/dist/services/dc-landscape-pdf.service.js +903 -0
  55. package/dist/services/dc-landscape-without-price-pdf.service.js +853 -0
  56. package/dist/services/dc-without-price-pdf.service.js +489 -0
  57. package/dist/services/debit-note-pdf.service.js +673 -0
  58. package/dist/services/debit-note-print.service.js +234 -0
  59. package/dist/services/debit-note-totals.service.js +293 -0
  60. package/dist/services/delivery-challan-pdf.service.js +434 -0
  61. package/dist/services/delivery-challan-print.service.js +177 -0
  62. package/dist/services/delivery-challan-totals.js +339 -0
  63. package/dist/services/equipment-design-pdf.service.js +144 -0
  64. package/dist/services/est.print-service.js +1053 -0
  65. package/dist/services/expiring-drugs-pdf.service.js +156 -0
  66. package/dist/services/hc-inv-pdf.service.js +837 -0
  67. package/dist/services/insurance-expire-pdf.service.js +99 -0
  68. package/dist/services/inv-pdf.service.js +785 -0
  69. package/dist/services/inv-print.service.js +415 -0
  70. package/dist/services/invoice-landscape-pdf.service.js +909 -0
  71. package/dist/services/invoice-total.service.js +659 -0
  72. package/dist/services/issue-parts-pdf.service.js +763 -0
  73. package/dist/services/item-detais-pdf.js +136 -0
  74. package/dist/services/item-wise-doctor-sale-pdf.service.js +164 -0
  75. package/dist/services/item-wise-mout-details-pdf.js +107 -0
  76. package/dist/services/item-wise-mout-summary-pdf.js +99 -0
  77. package/dist/services/item-wise-sales-pdf.service.js +178 -0
  78. package/dist/services/manf-wise-sales-pdf.service.js +173 -0
  79. package/dist/services/meeting-pdf.js +369 -0
  80. package/dist/services/mout-pdf.service.js +503 -0
  81. package/dist/services/operator-wise-details-pdf.service.js +103 -0
  82. package/dist/services/operator-wise-summary-pdf.js +101 -0
  83. package/dist/services/pack-ship-pdf.service.js +105 -0
  84. package/dist/services/pack-ship-print.service.js +167 -0
  85. package/dist/services/payment-pdf.service.js +373 -0
  86. package/dist/services/payment-report-pdf.service.js +106 -0
  87. package/dist/services/po-totals.service.js +279 -0
  88. package/dist/services/pos-receipt-pdf.js +438 -0
  89. package/dist/services/purchase-order-pdf.service.js +924 -0
  90. package/dist/services/purchase-order-print.service.js +150 -0
  91. package/dist/services/purchase-order-totals.service.js +280 -0
  92. package/dist/services/receipt-print.service.js +50 -0
  93. package/dist/services/reorder-point-pdf.service.js +151 -0
  94. package/dist/services/repair-orders-pdf.service.js +172 -0
  95. package/dist/services/ro-pdf.service.js +1764 -0
  96. package/dist/services/ro-print-service.js +737 -0
  97. package/dist/services/ro-totals.service.js +1241 -0
  98. package/dist/services/sales-by-service-pdf.service.js +116 -0
  99. package/dist/services/sales-pdf.service.js +630 -0
  100. package/dist/services/sales-print.service.js +305 -0
  101. package/dist/services/sales-receipt-pdf.service.js +611 -0
  102. package/dist/services/sales-receipt-print.service.js +425 -0
  103. package/dist/services/sales-totals.service.js +339 -0
  104. package/dist/services/scheduled-drug-pdf.service.js +176 -0
  105. package/dist/services/scheduled-drug-summary-pdf.service.js +188 -0
  106. package/dist/services/separate-wo-print.service.js +351 -0
  107. package/dist/services/shared-inv-pdf.service.js +763 -0
  108. package/dist/services/shared-pdf.service.js +2569 -0
  109. package/dist/services/shared-print.service.js +885 -0
  110. package/dist/services/task-pdf.service.js +220 -0
  111. package/dist/services/task-reports-pdf.service.js +296 -0
  112. package/dist/services/technician-pdf.service.js +238 -0
  113. package/dist/services/technician-print.service.js +87 -0
  114. package/dist/services/transfer-order-pdf.service.js +139 -0
  115. package/dist/services/vendor-balances-pdf.service.js +101 -0
  116. package/dist/services/vendor-credit-note-pdf.service.js +1007 -0
  117. package/dist/services/vendor-credit-note-print.service.js +104 -0
  118. package/dist/services/vendor-credit-note-totals.service.js +327 -0
  119. package/dist/services/vendor-debit-note-pdf.service.js +561 -0
  120. package/dist/services/vendor-debit-note-print.service.js +245 -0
  121. package/dist/services/vendor-debit-note-totals.service.js +305 -0
  122. package/dist/utils/my-date.js +652 -0
  123. package/dist/utils/tr-utils.js +354 -0
  124. package/package.json +24 -0
  125. package/tsconfig.json +109 -0
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskPDfService = void 0;
4
+ const my_date_1 = require("../utils/my-date");
5
+ const tr_utils_1 = require("../utils/tr-utils");
6
+ const shared_pdf_service_1 = require("./shared-pdf.service");
7
+ const shared_print_service_1 = require("./shared-print.service");
8
+ class TaskPDfService {
9
+ static GetPdfForUnAssignedTasks(TaskData, Image) {
10
+ let Images;
11
+ // let IsThere: boolean = false;
12
+ // Images = this.imageExists(meetingData.image);
13
+ // console.log(Images);
14
+ // TaskData.image = 'assets/images/1013/logo.jpg';
15
+ shared_pdf_service_1.SharedPDFService.convertImgToBase64URL(Image, function (base64Img) {
16
+ Images = base64Img.toString();
17
+ }, function (ntg) {
18
+ Images = null;
19
+ });
20
+ shared_pdf_service_1.SharedPDFService.convertImgToBase64URL(Image, function (base64Img) {
21
+ }, function (ntg) {
22
+ });
23
+ setTimeout(() => {
24
+ var dd = {
25
+ info: {
26
+ title: 'Tasks',
27
+ },
28
+ header: function (currentPage, pageCount) {
29
+ return { text: currentPage.toString() + ' of ' + pageCount, alignment: 'right', marginRight: 7, fontSize: 8, marginTop: 2 };
30
+ },
31
+ pageMargins: [20, 20, 20, 15],
32
+ content: [
33
+ this.HeaderContent(Images, TaskData),
34
+ this.HeaderAfterLine(),
35
+ this.GetTaskSubHeadre(TaskData),
36
+ // this.HeaderAfterLine(),
37
+ this.GetTaskDetails(TaskData),
38
+ ],
39
+ styles: shared_pdf_service_1.SharedPDFService.GetStyles(),
40
+ };
41
+ pdfMake.createPdf(dd).open();
42
+ }, 400);
43
+ }
44
+ static GetHeader(task) {
45
+ return {
46
+ stack: [{ text: '[' + task.Code + ']' + ' ' + task.Name, alignment: 'center', bold: true, fontSize: 13, marginBottom: 5 },
47
+ // { text: task.Name, alignment: 'left', fontSize: 13, bold: true },
48
+ // { text: this.GetDescription(task), alignment: 'left', fontSize: 10, marginTop: 10 },
49
+ // { text: 'Details', alignment: 'left', fontSize: 10, bold: true, marginTop: 7 },
50
+ ]
51
+ };
52
+ }
53
+ static GetTaskSubHeadre(task) {
54
+ return {
55
+ stack: [
56
+ { text: this.GetDescription(task), alignment: 'left', fontSize: 10, marginTop: 10 },
57
+ { text: 'Details', alignment: 'left', fontSize: 10, bold: true, marginTop: 7 },
58
+ ]
59
+ };
60
+ }
61
+ static HeaderContent(Images, TaskData) {
62
+ if (tr_utils_1.TrUtils.IsNull(Images)) {
63
+ return { columns: [this.GetHeader(TaskData)], width: '*', marginBottom: 5 };
64
+ }
65
+ else {
66
+ return {
67
+ columns: [{ image: Images, width: 40 * 1 },
68
+ // { text: 'Task Details', alignment: 'center', bold: true, fontSize: 16, marginRight: 15 }
69
+ this.GetHeader(TaskData),
70
+ ], marginBottom: 3
71
+ };
72
+ }
73
+ }
74
+ static GetDescription(task) {
75
+ if (!tr_utils_1.TrUtils.IsNull(task.Desc)) {
76
+ // var plainText = HtmlUtilities.ConvertToPlainText(task.Desc);
77
+ let plainText = this.stripHtml(task.Desc);
78
+ return plainText;
79
+ }
80
+ else {
81
+ return 'No Description';
82
+ }
83
+ }
84
+ static stripHtml(html) {
85
+ // Create a new div element
86
+ var temporalDivElement = document.createElement("div");
87
+ // Set the HTML content with the providen
88
+ temporalDivElement.innerHTML = html;
89
+ // Retrieve the text property of the element (cross-browser support)
90
+ return temporalDivElement.textContent || temporalDivElement.innerText || "";
91
+ }
92
+ static GetTaskDetails(TaskData) {
93
+ return {
94
+ stack: [
95
+ this.GetTableHeadersForApproval(TaskData),
96
+ ]
97
+ };
98
+ }
99
+ static GetTableHeadersForApproval(TaskData) {
100
+ let headersNames = [
101
+ { name: 'Status', value: this.GetValue(TaskData.Sts) },
102
+ { name: 'Start date', value: this.GetValue(my_date_1.MyDate.ConvertUTCDateToReadable(TaskData.EstStDt)) },
103
+ { name: 'Due date', value: this.GetValue(my_date_1.MyDate.ConvertUTCDateToReadable(TaskData.EstEnDt)) },
104
+ { name: 'Estimated Time', value: this.GetTime(TaskData.EstEnDt) },
105
+ { name: 'Priority', value: this.GetPriority(TaskData.Prty) },
106
+ { name: 'Progress', value: this.GetProgress(TaskData.CoPerc) },
107
+ { name: 'Assingned To', value: this.GetValue(this.GetAssinessList(TaskData.Members)) },
108
+ { name: 'Assingned by', value: this.GetValue(this.GetOwner(TaskData.Members)) },
109
+ ];
110
+ return this.GetDetails(headersNames);
111
+ }
112
+ static GetValue(value) {
113
+ if (!tr_utils_1.TrUtils.IsEmpty(value)) {
114
+ return value;
115
+ }
116
+ else {
117
+ return 'Not specified';
118
+ }
119
+ }
120
+ static GetProgress(value) {
121
+ if (!tr_utils_1.TrUtils.IsEmpty(value)) {
122
+ return value + '%';
123
+ }
124
+ else {
125
+ return '0' + '%';
126
+ }
127
+ }
128
+ static GetPriority(value) {
129
+ if (!tr_utils_1.TrUtils.IsEmpty(value)) {
130
+ return value;
131
+ }
132
+ else {
133
+ return 'None';
134
+ }
135
+ }
136
+ static GetTime(date) {
137
+ if (!tr_utils_1.TrUtils.IsNull(date)) {
138
+ let time = my_date_1.MyDate.ConvertUTCDateTimeToReadable(date);
139
+ return time;
140
+ }
141
+ else {
142
+ return 'Not specified';
143
+ }
144
+ }
145
+ static GetAssinessList(Members) {
146
+ let Assignees = '';
147
+ let membersData = Members.filter((member) => {
148
+ return !tr_utils_1.TrUtils.IsNull(member.Ass) && tr_utils_1.TrUtils.IsNull(member.EnDt);
149
+ });
150
+ membersData.forEach((member, index) => {
151
+ if (member.Role === 'Assignee') {
152
+ let comma = ' , ';
153
+ if (membersData.length === index + 1) {
154
+ comma = ' ';
155
+ }
156
+ let date = my_date_1.MyDate.ConvertUTCDateToReadable(member.Ass);
157
+ Assignees = Assignees + member.Name + ' (' + date + ')' + comma;
158
+ }
159
+ });
160
+ return Assignees;
161
+ }
162
+ static GetOwner(Members) {
163
+ let Owner = '';
164
+ Members.forEach((member) => {
165
+ if (member.Role === 'Owner') {
166
+ Owner = member.Name;
167
+ }
168
+ });
169
+ return Owner;
170
+ }
171
+ static GetDetails(data) {
172
+ return {
173
+ style: 'tableExample',
174
+ fontSize: this.BodySize,
175
+ lineHeight: 1,
176
+ marginTop: 5,
177
+ table: {
178
+ widths: [150, '*'],
179
+ body: this.GetDetailsTable(data)
180
+ },
181
+ layout: shared_print_service_1.PrintSharedService.LayOutStyle()
182
+ };
183
+ }
184
+ static GetDetailsTable(data) {
185
+ var body = [];
186
+ data.forEach((row) => {
187
+ if (!tr_utils_1.TrUtils.IsEmpty(row.value)) {
188
+ var dataRow = [];
189
+ dataRow.push({ text: (row.name).toString(), noWrap: true, bold: true, fontSize: 10, margin: 5, fillColor: '#FAF9F8' });
190
+ dataRow.push({ text: (row.value).toString(), lineHeight: 1, fontSize: 10, margin: 5 });
191
+ body.push(dataRow);
192
+ }
193
+ });
194
+ return body;
195
+ }
196
+ static HeaderAfterLine() {
197
+ return {
198
+ canvas: [
199
+ {
200
+ type: 'line',
201
+ lineColor: 'black',
202
+ x1: 0,
203
+ y1: 0,
204
+ x2: 555,
205
+ y2: 0,
206
+ lineWidth: 1.5
207
+ }
208
+ ]
209
+ };
210
+ }
211
+ static uniqueBy(a, key) {
212
+ var seen = {};
213
+ return a.filter(function (item) {
214
+ var k = key(item);
215
+ return seen.hasOwnProperty(k) ? false : (seen[k] = true);
216
+ });
217
+ }
218
+ }
219
+ exports.TaskPDfService = TaskPDfService;
220
+ TaskPDfService.BodySize = 8;
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskReportsPDfService = void 0;
4
+ const my_date_1 = require("../utils/my-date");
5
+ const tr_utils_1 = require("../utils/tr-utils");
6
+ const shared_pdf_service_1 = require("./shared-pdf.service");
7
+ const shared_print_service_1 = require("./shared-print.service");
8
+ class Group {
9
+ constructor() {
10
+ this.level = 0;
11
+ this.expanded = true;
12
+ this.Assignee = '';
13
+ }
14
+ get visible() {
15
+ return !this.parent || (this.parent.visible && this.parent.expanded);
16
+ }
17
+ }
18
+ class TaskReportsPDfService {
19
+ static GetPdfForUnAssignedTasks(TaskData, IsLandScape, ReportType, Image) {
20
+ let Images;
21
+ shared_pdf_service_1.SharedPDFService.convertImgToBase64URL(Image, function (base64Img) {
22
+ Images = base64Img.toString();
23
+ }, function (ntg) {
24
+ Images = null;
25
+ });
26
+ setTimeout(() => {
27
+ var dd = {
28
+ // header: function () {
29
+ // return { text: ReportType.toString(), alignment: 'center', margin: 10, fontSize: 14 };
30
+ // },
31
+ info: {
32
+ title: 'TaskReport',
33
+ },
34
+ pageMargins: [10, 15, 10, 15],
35
+ pageOrientation: IsLandScape ? 'landscape' : 'portrait',
36
+ content: [
37
+ this.GetHeader(Images, ReportType),
38
+ // { text: ReportType.toString(), alignment: 'center', margin: 10, fontSize: 14 },
39
+ this.GetTableForApproval(TaskData, ReportType),
40
+ ],
41
+ styles: shared_pdf_service_1.SharedPDFService.GetStyles(),
42
+ };
43
+ pdfMake.createPdf(dd).open();
44
+ }, 400);
45
+ // return dd;
46
+ }
47
+ static GetHeader(Images, ReportType) {
48
+ if (tr_utils_1.TrUtils.IsNull(Images)) {
49
+ return {
50
+ stack: [{ text: 'REPORT', alignment: 'center', bold: true, fontSize: 16, marginBottom: 5 },
51
+ { text: ReportType.toString(), alignment: 'center', fontSize: 14 }]
52
+ };
53
+ }
54
+ else {
55
+ return {
56
+ columns: [{ image: Images, width: 40 * 1 }, {
57
+ stack: [{ text: 'REPORT', alignment: 'center', bold: true, fontSize: 16, marginBottom: 5 },
58
+ { text: ReportType.toString(), alignment: 'center', fontSize: 14 }]
59
+ }]
60
+ };
61
+ }
62
+ }
63
+ static GetTableForApproval(TaskData, ReportType) {
64
+ return {
65
+ style: 'tableExample',
66
+ marginTop: 7,
67
+ lineHeight: 1,
68
+ dontBreakRows: true,
69
+ table: {
70
+ // widths: [30, 50, 200, 60, 100, 60],
71
+ widths: [30, 50, '*', 200, 50, 50],
72
+ body: this.GetApprovalTableHeaderBody(TaskData, ReportType)
73
+ },
74
+ layout: shared_print_service_1.PrintSharedService.LayOutStyle()
75
+ };
76
+ }
77
+ static GetApprovalTableHeaderBody(TaskData, ReportType) {
78
+ var body = [];
79
+ let SNo = 1;
80
+ let columns = this.GetTableHeadersForApproval();
81
+ body.push(columns);
82
+ TaskData.forEach((task) => {
83
+ var dataRow = [];
84
+ columns.forEach((column) => {
85
+ if (!tr_utils_1.TrUtils.IsFixedZero(task[column.Field]) && !tr_utils_1.TrUtils.IsNull(task[column.Field])) {
86
+ if (column.Field === 'SNo') {
87
+ dataRow.push(task[column.Field].toString());
88
+ }
89
+ else {
90
+ if (!tr_utils_1.TrUtils.IsNull(task['EstEnDt']) && column.Field === 'EstEnDt') {
91
+ dataRow.push({ text: this.GetDueDate(task), alignment: 'left', nowrap: true });
92
+ }
93
+ else {
94
+ dataRow.push({ text: task[column.Field].toString(), alignment: 'left', nowrap: true });
95
+ }
96
+ }
97
+ }
98
+ else {
99
+ if (column.Field === 'SNo') {
100
+ task[column.Field] = SNo;
101
+ SNo = SNo + 1;
102
+ }
103
+ else {
104
+ task[column.Field] = '';
105
+ }
106
+ dataRow.push({ text: task[column.Field].toString(), alignment: 'left' });
107
+ }
108
+ });
109
+ body.push(dataRow);
110
+ });
111
+ return body;
112
+ }
113
+ static GetTableHeadersForApproval() {
114
+ let headersNames = [
115
+ { text: 'S.No.', style: 'tableheader', Field: 'SNo' },
116
+ { text: 'Task #', style: 'tableheader', Field: 'Code' },
117
+ { text: 'Task Name', style: 'tableheader', Field: 'Name' },
118
+ { text: 'Due Date', style: 'tableheader', Field: 'EstEnDt' },
119
+ { text: 'Priority', style: 'tableheader', Field: 'Prty' },
120
+ { text: 'Status', style: 'tableheader', Field: 'Sts' },
121
+ ];
122
+ return headersNames;
123
+ }
124
+ static GetOverDuePrint(TaskData, IsLandScape, ReportType, Image) {
125
+ TaskData = this.PrepareDataForTable(TaskData);
126
+ let Images;
127
+ shared_pdf_service_1.SharedPDFService.convertImgToBase64URL(Image, function (base64Img) {
128
+ Images = base64Img.toString();
129
+ }, function (ntg) {
130
+ Images = null;
131
+ });
132
+ setTimeout(() => {
133
+ var dd = {
134
+ // header: function () {
135
+ // return { text: ReportType.toString(), alignment: 'center', margin: 10, fontSize: 14 };
136
+ // },
137
+ pageMargins: [10, 15, 10, 15],
138
+ pageOrientation: IsLandScape ? 'landscape' : 'portrait',
139
+ content: [
140
+ this.GetHeader(Images, ReportType),
141
+ // { text: ReportType.toString(), alignment: 'center', margin: 10, fontSize: 14 },
142
+ this.GetTableForApprovalUnAssignedTasks(TaskData, ReportType),
143
+ ],
144
+ styles: shared_pdf_service_1.SharedPDFService.GetStyles()
145
+ };
146
+ pdfMake.createPdf(dd).open();
147
+ }, 400);
148
+ // return dd;
149
+ }
150
+ static GetTableForApprovalUnAssignedTasks(TaskData, ReportType) {
151
+ return {
152
+ style: 'tableExample',
153
+ marginTop: 7,
154
+ lineHeight: 1,
155
+ dontBreakRows: true,
156
+ table: {
157
+ widths: [30, 50, '*', 100, 180],
158
+ body: this.GetApprovalTableHeaderUnAssignedTasksBody(TaskData, ReportType)
159
+ },
160
+ layout: shared_print_service_1.PrintSharedService.LayOutStyle()
161
+ };
162
+ }
163
+ static GetApprovalTableHeaderUnAssignedTasksBody(TaskData, ReportType) {
164
+ var body = [];
165
+ let SNo = 1;
166
+ let columns = this.GetOverDueTableHeadersForApproval();
167
+ body.push(columns);
168
+ TaskData.forEach((task) => {
169
+ var dataRow = [];
170
+ columns.forEach((column) => {
171
+ if (!tr_utils_1.TrUtils.IsNull(task.level) && column.Field === 'SNo') {
172
+ dataRow.push({ text: task.Assignee.toString(), alignment: 'left', bold: true, colSpan: 5, nowrap: true, fillColor: 'lightgrey' });
173
+ }
174
+ else if (tr_utils_1.TrUtils.IsNull(task.level)) {
175
+ if (!tr_utils_1.TrUtils.IsFixedZero(task[column.Field]) && !tr_utils_1.TrUtils.IsNull(task[column.Field])) {
176
+ if (column.Field === 'SNo') {
177
+ dataRow.push(task[column.Field].toString());
178
+ }
179
+ else {
180
+ dataRow.push({ text: task[column.Field].toString(), alignment: 'left', nowrap: true });
181
+ }
182
+ }
183
+ else {
184
+ if (column.Field === 'SNo') {
185
+ task[column.Field] = SNo;
186
+ SNo = SNo + 1;
187
+ }
188
+ else {
189
+ task[column.Field] = '';
190
+ }
191
+ dataRow.push({ text: task[column.Field].toString(), alignment: 'left' });
192
+ }
193
+ }
194
+ else {
195
+ dataRow.push({});
196
+ }
197
+ });
198
+ body.push(dataRow);
199
+ });
200
+ return body;
201
+ }
202
+ static GetOverDueTableHeadersForApproval() {
203
+ let headersNames = [
204
+ { text: 'S.No.', style: 'tableheader', Field: 'SNo' },
205
+ { text: 'Task #', style: 'tableheader', Field: 'TId' },
206
+ { text: 'Task Name', style: 'tableheader', Field: 'Name' },
207
+ { text: 'Assign Date', style: 'tableheader', Field: 'AssDate' },
208
+ { text: 'Due Date', style: 'tableheader', Field: 'DueDt' }
209
+ ];
210
+ return headersNames;
211
+ }
212
+ static GetDueDate(params) {
213
+ if (!tr_utils_1.TrUtils.IsEmpty(params.EstEnDt)) {
214
+ let DueDays;
215
+ let TodayDate = my_date_1.MyDate.GetDateTimeNowInUTC();
216
+ let Days = my_date_1.MyDate.GetDaysDiffBetween(TodayDate, params.EstEnDt);
217
+ if (Days > 1) {
218
+ DueDays = 'Due in' + ' ' + Days + ' ' + 'days';
219
+ }
220
+ else if (Days === 1) {
221
+ DueDays = 'Due tomorrow';
222
+ }
223
+ else if (Days === 0) {
224
+ DueDays = 'Due today';
225
+ }
226
+ else {
227
+ let days = Math.abs(Days);
228
+ if (days === 1) {
229
+ DueDays = '1 day overdue';
230
+ }
231
+ else {
232
+ DueDays = Math.abs(Days) + ' ' + 'days overdue';
233
+ }
234
+ }
235
+ return my_date_1.MyDate.GetWeekAndDate(params.EstEnDt) + ' , ' + DueDays;
236
+ }
237
+ return '';
238
+ }
239
+ static PrepareDataForTable(overdueEmpTasks) {
240
+ this.overdueTasks = [];
241
+ overdueEmpTasks.forEach((overdueEmpTask) => {
242
+ overdueEmpTask.Tasks.forEach((Task) => {
243
+ let TaskInfo = {
244
+ UserId: overdueEmpTask._id,
245
+ TId: Task.Code,
246
+ DueDt: this.GetDueDate(Task),
247
+ Name: Task.Name,
248
+ Assignee: Task.Assignee.Name,
249
+ AssDate: (Task.Assignee.Ass === true || Task.Assignee.Ass === false) ? '' : my_date_1.MyDate.GetWeekAndDate(Task.Assignee.Ass)
250
+ };
251
+ this.overdueTasks.push(TaskInfo);
252
+ });
253
+ });
254
+ let TableData = this.addGroups(this.overdueTasks, this.groupByColumns);
255
+ return TableData;
256
+ }
257
+ static addGroups(data, groupByColumns) {
258
+ var rootGroup = new Group();
259
+ return this.getSublevel(data, 0, groupByColumns, rootGroup);
260
+ }
261
+ static getSublevel(data, level, groupByColumns, parent) {
262
+ // Recursive function, stop when there are no more levels.
263
+ if (level >= groupByColumns.length)
264
+ return data;
265
+ var groups = this.uniqueBy(data.map(row => {
266
+ var result = new Group();
267
+ result.level = level + 1;
268
+ result.parent = parent;
269
+ for (var i = 0; i <= level; i++)
270
+ result[groupByColumns[i]] = row[groupByColumns[i]];
271
+ return result;
272
+ }), JSON.stringify);
273
+ const currentColumn = groupByColumns[level];
274
+ var subGroups = [];
275
+ groups.forEach((group) => {
276
+ let rowsInGroup = data.filter(row => group[currentColumn] === row[currentColumn]);
277
+ if (rowsInGroup.length !== 0) {
278
+ group.Assignee = rowsInGroup[0].Assignee;
279
+ }
280
+ let subGroup = this.getSublevel(rowsInGroup, level + 1, groupByColumns, group);
281
+ subGroup.unshift(group);
282
+ subGroups = subGroups.concat(subGroup);
283
+ });
284
+ return subGroups;
285
+ }
286
+ static uniqueBy(a, key) {
287
+ var seen = {};
288
+ return a.filter(function (item) {
289
+ var k = key(item);
290
+ return seen.hasOwnProperty(k) ? false : (seen[k] = true);
291
+ });
292
+ }
293
+ }
294
+ exports.TaskReportsPDfService = TaskReportsPDfService;
295
+ TaskReportsPDfService.overdueTasks = [];
296
+ TaskReportsPDfService.groupByColumns = ['UserId'];