tango-app-ui-manage-billing 3.3.0-beta.4 → 3.3.0-beta.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.
|
@@ -45,17 +45,23 @@ export class CreditNoteComponent {
|
|
|
45
45
|
this.creditnoteform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
46
46
|
if (e) {
|
|
47
47
|
this.amount = this.creditnoteform.get('amount')?.value;
|
|
48
|
-
|
|
49
|
-
this.
|
|
50
|
-
|
|
51
|
-
this.
|
|
48
|
+
console.log(this.amount);
|
|
49
|
+
if (this.amount) {
|
|
50
|
+
this.discount = ((this.amount - e) / this.amount * 100).toFixed(2);
|
|
51
|
+
this.revisedAmount = e;
|
|
52
|
+
if (this.discount > 10 || isNaN(e) || this.discount < 0 || e < 0) {
|
|
53
|
+
this.moreThanTenPercent = true;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.moreThanTenPercent = false;
|
|
57
|
+
}
|
|
58
|
+
this.creditnoteform.get('discount')?.setValue(this.discount, {
|
|
59
|
+
emitEvent: false
|
|
60
|
+
});
|
|
52
61
|
}
|
|
53
62
|
else {
|
|
54
|
-
this.
|
|
63
|
+
this.toast.getErrorToast("Please select one Invoice");
|
|
55
64
|
}
|
|
56
|
-
this.creditnoteform.get('discount')?.setValue(this.discount, {
|
|
57
|
-
emitEvent: false
|
|
58
|
-
});
|
|
59
65
|
}
|
|
60
66
|
else {
|
|
61
67
|
let emptdiscount = '';
|
|
@@ -170,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
170
176
|
type: HostListener,
|
|
171
177
|
args: ['document:click', ['$event']]
|
|
172
178
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LW5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLWJpbGxpbmcvc3JjL2xpYi9jb21wb25lbnRzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL2NyZWRpdC1ub3RlL2NyZWRpdC1ub3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1tYW5hZ2UtYmlsbGluZy9jcmVkaXQtbm90ZS9jcmVkaXQtbm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFnQyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUgsT0FBTyxFQUEwQixVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW1CO0lBb0JyQjtJQUFvQztJQUF3QztJQUEwQztJQUF3QjtJQW5COUksUUFBUSxDQUFLO0lBQ3RCLFlBQVksQ0FBTTtJQUNsQixXQUFXLEdBQXNDLEVBQUUsQ0FBQztJQUNwRCxtQkFBbUIsR0FBVyxLQUFLLENBQUM7SUFDcEMsY0FBYyxDQUFZO0lBQzFCLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsUUFBUSxDQUFNO0lBQ2QsYUFBYSxHQUFXLENBQUMsQ0FBQTtJQUN6QixrQkFBa0IsR0FBVyxLQUFLLENBQUE7SUFDbEMsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUVmLGdCQUFnQixHQUFXLEVBQUUsQ0FBQTtJQUUxQixTQUFTLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUQsV0FBVyxDQUFN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QVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN4QywyQ0FBMkM7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDcEM7UUFBQSxDQUFDLEVBQ0YsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsQ0FBQztRQUNOLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUUsaURBQWlEO1FBQ3RFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBaUI7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO3dHQXJKVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiwwT0NkaEMsOGdQQTRGTTs7NEZEOUVPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7cU1BS2xCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBV0MsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVNLFNBQVM7c0JBQWxCLE1BQU07Z0JBcUlQLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBsZWZ0IH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmlsbGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9iaWxsaW5nLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JlZGl0LW5vdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVkaXQtbm90ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NyZWRpdC1ub3RlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlZGl0Tm90ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGNsaWVudElkOmFueTtcclxuICBpbnZvaWNlSXNzdWU6IGFueTtcclxuICBpbnZvaWNldHlwZTogeyBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdID0gW107IFxyXG4gIGludm9pY2V0eXBlZHJvcERvd246Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIGNyZWRpdG5vdGVmb3JtOiBGb3JtR3JvdXA7XHJcbiAgYW1vdW50OiBudW1iZXIgPSAwO1xyXG4gIGRpc2NvdW50OiBhbnk7XHJcbiAgcmV2aXNlZEFtb3VudDogbnVtYmVyID0gMFxyXG4gIG1vcmVUaGFuVGVuUGVyY2VudDpib29sZWFuID0gZmFsc2VcclxuICBjdXJyZW5jeTogc3RyaW5nID0gJyc7XHJcblxyXG5ASW5wdXQoKSB0cmFuc2FjdGlvbnZhbHVlOiBzdHJpbmcgPSBcIlwiXHJcblxyXG4gIEBPdXRwdXQoKSBwYXNzRW50cnk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGludm9pY2VpdGVtOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLHByaXZhdGUgQmlsbGluZ1NlcnZpY2U6IEJpbGxpbmdTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZVxyXG4gICkgeyBcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVkaXRub3RlKCk7XHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGludm9pY2V0eXBlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBhbW91bnQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFxyXG4gICAgICByZXZpc2VkQW1vdW50OlsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0gLFxyXG4gICAgICBkaXNjb3VudDogWycnLFsgVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXgoMTApXV0sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk/LnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmKGUpIHsgXHJcbiAgICAgICAgdGhpcy5hbW91bnQgPSB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnYW1vdW50Jyk/LnZhbHVlO1xyXG4gICAgICAgIHRoaXMuZGlzY291bnQgPSAoKHRoaXMuYW1vdW50IC0gZSkgLyB0aGlzLmFtb3VudCAqIDEwMCkudG9GaXhlZCgyKTtcclxuICAgICAgICB0aGlzLnJldmlzZWRBbW91bnQ9ZTtcclxuICAgICAgICBpZih0aGlzLmRpc2NvdW50PjEwIHx8IGlzTmFOKGUpIHx8IHRoaXMuZGlzY291bnQgPCAwIHx8IGUgPCAwKXtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gdHJ1ZTsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk/LnNldFZhbHVlKHRoaXMuZGlzY291bnQsIHtcclxuICAgICAgICAgIGVtaXRFdmVudFxyXG4gICAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBsZXQgZW1wdGRpc2NvdW50ID0gJydcclxuICAgICAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnZGlzY291bnQnKT8uc2V0VmFsdWUoZW1wdGRpc2NvdW50LCB7XHJcbiAgICAgICAgICBlbWl0RXZlbnRcclxuICAgICAgICAgICAgOiBmYWxzZSB9KTtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7IFxyXG4gICAgICB9IFxyXG4gICAgfSlcclxuICAgIFxyXG4gICAgdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk/LnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmKGUpIHtcclxuICAgICAgICB0aGlzLmFtb3VudCA9IHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdhbW91bnQnKT8udmFsdWU7XHJcbiAgICAgICAgdGhpcy5yZXZpc2VkQW1vdW50ID0gdGhpcy5hbW91bnQgKiAoMSAtIGUgLyAxMDApO1xyXG4gICAgICAgIHRoaXMucmV2aXNlZEFtb3VudCA9IHBhcnNlSW50KHRoaXMucmV2aXNlZEFtb3VudC50b0ZpeGVkKCkpXHJcbiAgICAgICAgdGhpcy5kaXNjb3VudD1lO1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2NvdW50PjEwIHx8IGlzTmFOKGUpIHx8IGUgPCAwIHx8IHRoaXMucmV2aXNlZEFtb3VudCA8IDApe1xyXG4gICAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSB0cnVlOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgncmV2aXNlZEFtb3VudCcpPy5zZXRWYWx1ZSh0aGlzLnJldmlzZWRBbW91bnQsIHtcclxuICAgICAgICAgIGVtaXRFdmVudFxyXG4gICAgICAgICAgOiBmYWxzZSB9KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbGV0IGVtcHRkaXNjb3VudCA9ICcnXHJcbiAgICAgICAgdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ3JldmlzZWRBbW91bnQnKT8uc2V0VmFsdWUoZW1wdGRpc2NvdW50LCB7XHJcbiAgICAgICAgICBlbWl0RXZlbnRcclxuICAgICAgICAgICAgOiBmYWxzZSB9KTtcclxuICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IGZhbHNlOyBcclxuICAgICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXQgcmV2aXNlZGFtb3VudCgpIHsgcmV0dXJuIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk7IH1cclxuICBnZXQgZGlzY291bnRzKCkgeyByZXR1cm4gdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk7IH1cclxuICBcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGNyZWRpdG5vdGUoKXtcclxuICAgIGxldCBwYXlsb2FkOmFueT17XHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWRcclxuICAgIH1cclxuICB0aGlzLkJpbGxpbmdTZXJ2aWNlLnBlbmRpbmdJbnZvaWNlcyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuaW52b2ljZWl0ZW0gPSByZXM/LmRhdGE7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlSXNzdWUgPSB0aGlzLmludm9pY2VpdGVtWzBdPy5pbnZvaWNlO1xyXG4gICAgICAgIGNvbnN0IGFtb3VudCA9IHRoaXMuaW52b2ljZWl0ZW1bMF0/LmFtb3VudCB8fCBcIlwiO1xyXG4gICAgICAgIHRoaXMuY3VycmVuY3kgPSB0aGlzLmludm9pY2VpdGVtWzBdPy5jdXJyZW5jeSB8fCBcIlwiO1xyXG4gICAgICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICBhbW91bnQ6IGFtb3VudCxcclxuICAgICAgICAgIGRpc2NvdW50OnRoaXMuaW52b2ljZWl0ZW0/LmRpc2NvdW50XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgfSk7XHJcbiAgfVxyXG5cclxuICBpbnZvaWNlSXRlbShpbnZvaWNldmFsdWU6YW55KXtcclxuICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGFtb3VudDogaW52b2ljZXZhbHVlLmFtb3VudCxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8uZGlzY291bnQgPyB7ZGlzY291bnQ6aW52b2ljZXZhbHVlPy5kaXNjb3VudH0gOiB7ZGlzY291bnQ6Jyd9KSxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudCA/IHtyZXZpc2VkQW1vdW50Omludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudH0gOiB7cmV2aXNlZEFtb3VudDonJ30pXHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW52b2ljZUlzc3VlID0gaW52b2ljZXZhbHVlLmludm9pY2U7XHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnaW52b2ljZXR5cGUnKT8uc2V0VmFsdWUodGhpcy5pbnZvaWNlSXNzdWUpXHJcbiAgICB0aGlzLmludm9pY2V0eXBlZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcbiAgaW52b2ljZXR5cGVEcm9wZG93bihldmVudDpNb3VzZUV2ZW50KXtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gIXRoaXMuaW52b2ljZXR5cGVkcm9wRG93bjtcclxuICAgIHRoaXMucmV2aXNlZEFtb3VudCAgIFxyXG4gIH1cclxuICBzdWNjZXNzY3JlZGl0KCkge1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIGludm9pY2U6dGhpcy5pbnZvaWNlSXNzdWUsXHJcbiAgICAgIHJldmlzZWRBbW91bnQ6dGhpcy5yZXZpc2VkQW1vdW50LFxyXG4gICAgICBkaXNjb3VudDp0aGlzLmRpc2NvdW50XHJcbiAgICB9O1xyXG4gICAgdGhpcy5CaWxsaW5nU2VydmljZS5hcHBseURpc2NvdW50KHJlcXVlc3REYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlICgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWNjZXNzY3JlZGl0Jyk7XHJcbiAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRQcmltYXJ5VG9hc3QocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH19LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzdWJtaXR0aW5nIHVwZGF0ZTonLCBlcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIG9taXRfc3BlY2lhbF9jaGFyKGV2ZW50OiBhbnkpIHtcclxuICAgIHZhciBrO1xyXG4gICAgayA9IGV2ZW50LmNoYXJDb2RlOyAgLy8gICAgICAgICBrID0gZXZlbnQua2V5Q29kZTsgIChCb3RoIGNhbiBiZSB1c2VkKVxyXG4gICAgcmV0dXJuIChrID09IDggfHwgayA9PSAzMiB8fCAoayA+PSA0OCAmJiBrIDw9IDU3KSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNSBweC02XCI+XHJcbiAgICAgICAgPCEtLSA8ZGl2PjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvcGx1cy1pY29uLnN2Z1wiIGFsdD1cIlwiPjwvZGl2PiAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyBtdC00IG1zLTFcIj5BZGQgQ3JlZGl0IE5vdGU8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudHRleHQgbXQtNFwiPlxyXG4gICAgICAgICAgICBZb3UgaGF2ZSB0aGUgZmxleGliaWxpdHkgdG8gc2VsZWN0IGEgbW9udGggaW4gd2hpY2ggdGhlIGJyYW5kIGNhbiBtYWtlIGNyZWRpdCBwYXltZW50cy5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IG1iLThcIj5cclxuICAgICAgICA8IS0tYmVnaW46OkZvcm0tLT5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNyZWRpdG5vdGVmb3JtXCIgY2xhc3M9XCJmb3JtIGZ2LXBsdWdpbnMtYm9vdHN0cmFwNSBmdi1wbHVnaW5zLWZyYW1ld29ya1wiIGFjdGlvbj1cIiNcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaW52b2ljZXR5cGVcIiBjbGFzcz1cImhlYWRpbmd0ZXh0IG1iLTJcIj5JbnZvaWNlIElEPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VsZWN0IGRyb3BzZWxlY3RcIiBpZD1cImludm9pY2V0eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZvaWNldHlwZURyb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlZmF1bHQgc2VsZWN0IGV4YW1wbGVcIj57e2ludm9pY2VJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNldHlwZWRyb3BEb3duXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZCBweS0yIHctMTAwIGludm9pY2VpZHNlbGVjdCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTEgaW52b2ljZURyb3BEb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW52b2ljZWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuaW52b2ljZUlzc3VlID09PSBpdGVtPy5pbnZvaWNlID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdHRleHQgcHgtNSBpdGVtcyBjdXJzb3ItcG9pbnRlciBweS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VJdGVtKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbT8uaW52b2ljZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZvcj1cImFtb3VudFwiIGNsYXNzPVwiZm9ybS1ncm91cCBweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiIGhlYWRpbmd0ZXh0IG1iLTIgXCI+VG90YWwgQW1vdW50PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjdXJyZW5jeSA9PT0gJ2lucidcIiBjbGFzcz1cImRvbGxhci1zaWduXCI+4oK5PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VycmVuY3kgPT09ICdkb2xsYXInXCIgY2xhc3M9XCJkb2xsYXItc2lnblwiPiQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJhbW91bnRcIiAgdHlwZT1cInRleHRcIiByZWFkb25seSBjbGFzcz1cIm5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZCBhbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1wiPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmb3I9XCJyZXZpc2VkQW1vdW50XCIgY2xhc3M9XCJmb3JtLWdyb3VwIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCIgaGVhZGluZ3RleHQgbWItMlwiPiBSZXZpc2VkIEFtb3VudDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkcm9wc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImN1cnJlbmN5ID09PSAnaW5yJ1wiIGNsYXNzPVwiZG9sbGFyLXNpZ25cIj7igrk8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VycmVuY3kgPT09ICdkb2xsYXInXCIgY2xhc3M9XCJkb2xsYXItc2lnblwiPiQ8L3NwYW4+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiAgZm9ybUNvbnRyb2xOYW1lPVwicmV2aXNlZEFtb3VudFwiICBbbmdDbGFzc109XCJtb3JlVGhhblRlblBlcmNlbnQgPyAnZXJyb3JpbnB1dCcgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uXCIgKm5nSWY9XCJtb3JlVGhhblRlblBlcmNlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzc1MTNfMzY2ODkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk03Ljk5OTY3IDUuMzMzMDFWNy45OTk2N003Ljk5OTY3IDEwLjY2NjNIOC4wMDYzNE0xNC42NjYzIDcuOTk5NjdDMTQuNjY2MyAxMS42ODE2IDExLjY4MTYgMTQuNjY2MyA3Ljk5OTY3IDE0LjY2NjNDNC4zMTc3OCAxNC42NjYzIDEuMzMzMDEgMTEuNjgxNiAxLjMzMzAxIDcuOTk5NjdDMS4zMzMwMSA0LjMxNzc4IDQuMzE3NzggMS4zMzMwMSA3Ljk5OTY3IDEuMzMzMDFDMTEuNjgxNiAxLjMzMzAxIDE0LjY2NjMgNC4zMTc3OCAxNC42NjYzIDcuOTk5NjdaXCIgc3Ryb2tlPVwiI0YwNDQzOFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzc1MTNfMzY2ODlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW1vcmVUaGFuVGVuUGVyY2VudFwiICBjbGFzcz1cImhlYWRpbmd0ZXh0IGNvbnRlbnR0ZXh0XCI+TW9yZSB0aGFuIDEwJSBjYW7igJl0IGJlIHJldmlzZWQgZnJvbSB0b3RhbCBhbW91bnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb3JlVGhhblRlblBlcmNlbnRcIiBjbGFzcz1cInRleHQtZGFuZ2VyIGNvbnRlbnR0ZXh0XCI+TW9yZSB0aGFuIDEwJSBjYW7igJl0IGJlIHJldmlzZWQgZnJvbSB0b3RhbCBhbW91bnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZm9yPVwiZGlzY291bnRcIiBjbGFzcz1cImZvcm0tZ3JvdXAgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCIgaGVhZGluZ3RleHQgbWItMlwiPiBEaXNjb3VudDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+ICA8aW5wdXQgdHlwZT1cInRleHRcIiAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiICBmb3JtQ29udHJvbE5hbWU9XCJkaXNjb3VudFwiIGNsYXNzPVwiYW1vdW50XCIgW25nQ2xhc3NdPVwibW9yZVRoYW5UZW5QZXJjZW50ID8gJ2Vycm9yaW5wdXQnIDogJydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvblwiICpuZ0lmPVwiIW1vcmVUaGFuVGVuUGVyY2VudFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNjY3IDMuMzMzNjZMMy4zMzM2NiAxMi42NjdNNi4wMDAzMyA0LjMzMzY2QzYuMDAwMzMgNS4yNTQxMyA1LjI1NDEzIDYuMDAwMzMgNC4zMzM2NiA2LjAwMDMzQzMuNDEzMTggNi4wMDAzMyAyLjY2Njk5IDUuMjU0MTMgMi42NjY5OSA0LjMzMzY2QzIuNjY2OTkgMy40MTMxOCAzLjQxMzE4IDIuNjY2OTkgNC4zMzM2NiAyLjY2Njk5QzUuMjU0MTMgMi42NjY5OSA2LjAwMDMzIDMuNDEzMTggNi4wMDAzMyA0LjMzMzY2Wk0xMy4zMzM3IDExLjY2N0MxMy4zMzM3IDEyLjU4NzUgMTIuNTg3NSAxMy4zMzM3IDExLjY2NyAxMy4zMzM3QzEwLjc0NjUgMTMuMzMzNyAxMC4wMDAzIDEyLjU4NzUgMTAuMDAwMyAxMS42NjdDMTAuMDAwMyAxMC43NDY1IDEwLjc0NjUgMTAuMDAwMyAxMS42NjcgMTAuMDAwM0MxMi41ODc1IDEwLjAwMDMgMTMuMzMzNyAxMC43NDY1IDEzLjMzMzcgMTEuNjY3WlwiIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvblwiICpuZ0lmPVwibW9yZVRoYW5UZW5QZXJjZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi42NjcgMy4zMzM2NkwzLjMzMzY2IDEyLjY2N002LjAwMDMzIDQuMzMzNjZDNi4wMDAzMyA1LjI1NDEzIDUuMjU0MTMgNi4wMDAzMyA0LjMzMzY2IDYuMDAwMzNDMy40MTMxOCA2LjAwMDMzIDIuNjY2OTkgNS4yNTQxMyAyLjY2Njk5IDQuMzMzNjZDMi42NjY5OSAzLjQxMzE4IDMuNDEzMTggMi42NjY5OSA0LjMzMzY2IDIuNjY2OTlDNS4yNTQxMyAyLjY2Njk5IDYuMDAwMzMgMy40MTMxOCA2LjAwMDMzIDQuMzMzNjZaTTEzLjMzMzcgMTEuNjY3QzEzLjMzMzcgMTIuNTg3NSAxMi41ODc1IDEzLjMzMzcgMTEuNjY3IDEzLjMzMzdDMTAuNzQ2NSAxMy4zMzM3IDEwLjAwMDMgMTIuNTg3NSAxMC4wMDAzIDExLjY2N0MxMC4wMDAzIDEwLjc0NjUgMTAuNzQ2NSAxMC4wMDAzIDExLjY2NyAxMC4wMDAzQzEyLjU4NzUgMTAuMDAwMyAxMy4zMzM3IDEwLjc0NjUgMTMuMzMzNyAxMS42NjdaXCIgc3Ryb2tlPVwiI0YwNDQzOFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW1vcmVUaGFuVGVuUGVyY2VudFwiICBjbGFzcz1cImhlYWRpbmd0ZXh0IGNvbnRlbnR0ZXh0XCI+SW4gcGVyY2VudGFnZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibW9yZVRoYW5UZW5QZXJjZW50XCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBjb250ZW50dGV4dFwiPkluIHBlcmNlbnRhZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJhY3RpdmVNb2RhbC5kaXNtaXNzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGNhbmNlbCBtZS00IHctNTBcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIm1vcmVUaGFuVGVuUGVyY2VudFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3VjY2Vzc2NyZWRpdCgpXCIgdGFiaW5kZXg9XCIwXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBuZy1zdGFyLWluc2VydGVkIHctNTBcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWJtaXRcIj5BcHBseSA8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LW5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLWJpbGxpbmcvc3JjL2xpYi9jb21wb25lbnRzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL2NyZWRpdC1ub3RlL2NyZWRpdC1ub3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1tYW5hZ2UtYmlsbGluZy9jcmVkaXQtbm90ZS9jcmVkaXQtbm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFnQyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUgsT0FBTyxFQUEwQixVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW1CO0lBb0JyQjtJQUFvQztJQUF3QztJQUEwQztJQUF3QjtJQW5COUksUUFBUSxDQUFLO0lBQ3RCLFlBQVksQ0FBTTtJQUNsQixXQUFXLEdBQXNDLEVBQUUsQ0FBQztJQUNwRCxtQkFBbUIsR0FBVyxLQUFLLENBQUM7SUFDcEMsY0FBYyxDQUFZO0lBQzFCLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsUUFBUSxDQUFNO0lBQ2QsYUFBYSxHQUFXLENBQUMsQ0FBQTtJQUN6QixrQkFBa0IsR0FBVyxLQUFLLENBQUE7SUFDbEMsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUVmLGdCQUFnQixHQUFXLEVBQUUsQ0FBQTtJQUUxQixTQUFTLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUQsV0FBVyxDQUFN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Z0JBRU0sU0FBUztzQkFBbEIsTUFBTTtnQkEySVAsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCAgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IGxlZnQgfSBmcm9tICdAcG9wcGVyanMvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCaWxsaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2JpbGxpbmcuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jcmVkaXQtbm90ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWRpdC1ub3RlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JlZGl0LW5vdGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVkaXROb3RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgY2xpZW50SWQ6YW55O1xyXG4gIGludm9pY2VJc3N1ZTogYW55O1xyXG4gIGludm9pY2V0eXBlOiB7IG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9W10gPSBbXTsgXHJcbiAgaW52b2ljZXR5cGVkcm9wRG93bjpib29sZWFuID0gZmFsc2U7XHJcbiAgY3JlZGl0bm90ZWZvcm06IEZvcm1Hcm91cDtcclxuICBhbW91bnQ6IG51bWJlciA9IDA7XHJcbiAgZGlzY291bnQ6IGFueTtcclxuICByZXZpc2VkQW1vdW50OiBudW1iZXIgPSAwXHJcbiAgbW9yZVRoYW5UZW5QZXJjZW50OmJvb2xlYW4gPSBmYWxzZVxyXG4gIGN1cnJlbmN5OiBzdHJpbmcgPSAnJztcclxuXHJcbkBJbnB1dCgpIHRyYW5zYWN0aW9udmFsdWU6IHN0cmluZyA9IFwiXCJcclxuXHJcbiAgQE91dHB1dCgpIHBhc3NFbnRyeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaW52b2ljZWl0ZW06IGFueTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwscHJpdmF0ZSBCaWxsaW5nU2VydmljZTogQmlsbGluZ1NlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlXHJcbiAgKSB7IFxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWRpdG5vdGUoKTtcclxuICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgaW52b2ljZXR5cGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIGFtb3VudDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSwgXHJcbiAgICAgIHJldmlzZWRBbW91bnQ6WycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSAsXHJcbiAgICAgIGRpc2NvdW50OiBbJycsWyBWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heCgxMCldXSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ3JldmlzZWRBbW91bnQnKT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYoZSkgeyBcclxuICAgICAgICB0aGlzLmFtb3VudCA9IHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdhbW91bnQnKT8udmFsdWU7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5hbW91bnQpXHJcbiAgICAgICAgaWYodGhpcy5hbW91bnQpe1xyXG4gICAgICAgICAgdGhpcy5kaXNjb3VudCA9ICgodGhpcy5hbW91bnQgLSBlKSAvIHRoaXMuYW1vdW50ICogMTAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICAgICAgdGhpcy5yZXZpc2VkQW1vdW50PWU7XHJcbiAgICAgICAgICBpZih0aGlzLmRpc2NvdW50PjEwIHx8IGlzTmFOKGUpIHx8IHRoaXMuZGlzY291bnQgPCAwIHx8IGUgPCAwKXtcclxuICAgICAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSB0cnVlOyBcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk/LnNldFZhbHVlKHRoaXMuZGlzY291bnQsIHtcclxuICAgICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICAgICAgOiBmYWxzZSB9KTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBzZWxlY3Qgb25lIEludm9pY2VcIilcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGxldCBlbXB0ZGlzY291bnQgPSAnJ1xyXG4gICAgICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdkaXNjb3VudCcpPy5zZXRWYWx1ZShlbXB0ZGlzY291bnQsIHtcclxuICAgICAgICAgIGVtaXRFdmVudFxyXG4gICAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSBmYWxzZTsgXHJcbiAgICAgIH0gXHJcbiAgICB9KVxyXG4gICAgXHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnZGlzY291bnQnKT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYoZSkge1xyXG4gICAgICAgIHRoaXMuYW1vdW50ID0gdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ2Ftb3VudCcpPy52YWx1ZTtcclxuICAgICAgICB0aGlzLnJldmlzZWRBbW91bnQgPSB0aGlzLmFtb3VudCAqICgxIC0gZSAvIDEwMCk7XHJcbiAgICAgICAgdGhpcy5yZXZpc2VkQW1vdW50ID0gcGFyc2VJbnQodGhpcy5yZXZpc2VkQW1vdW50LnRvRml4ZWQoKSlcclxuICAgICAgICB0aGlzLmRpc2NvdW50PWU7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzY291bnQ+MTAgfHwgaXNOYU4oZSkgfHwgZSA8IDAgfHwgdGhpcy5yZXZpc2VkQW1vdW50IDwgMCl7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IHRydWU7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk/LnNldFZhbHVlKHRoaXMucmV2aXNlZEFtb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBsZXQgZW1wdGRpc2NvdW50ID0gJydcclxuICAgICAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgncmV2aXNlZEFtb3VudCcpPy5zZXRWYWx1ZShlbXB0ZGlzY291bnQsIHtcclxuICAgICAgICAgIGVtaXRFdmVudFxyXG4gICAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7IFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldCByZXZpc2VkYW1vdW50KCkgeyByZXR1cm4gdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ3JldmlzZWRBbW91bnQnKTsgfVxyXG4gIGdldCBkaXNjb3VudHMoKSB7IHJldHVybiB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnZGlzY291bnQnKTsgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgY3JlZGl0bm90ZSgpe1xyXG4gICAgbGV0IHBheWxvYWQ6YW55PXtcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZFxyXG4gICAgfVxyXG4gIHRoaXMuQmlsbGluZ1NlcnZpY2UucGVuZGluZ0ludm9pY2VzKHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlaXRlbSA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLmludm9pY2VJc3N1ZSA9IHRoaXMuaW52b2ljZWl0ZW1bMF0/Lmludm9pY2U7XHJcbiAgICAgICAgY29uc3QgYW1vdW50ID0gdGhpcy5pbnZvaWNlaXRlbVswXT8uYW1vdW50IHx8IFwiXCI7XHJcbiAgICAgICAgdGhpcy5jdXJyZW5jeSA9IHRoaXMuaW52b2ljZWl0ZW1bMF0/LmN1cnJlbmN5IHx8IFwiXCI7XHJcbiAgICAgICAgdGhpcy5jcmVkaXRub3RlZm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgIGFtb3VudDogYW1vdW50LFxyXG4gICAgICAgICAgZGlzY291bnQ6dGhpcy5pbnZvaWNlaXRlbT8uZGlzY291bnRcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICB9KTtcclxuICB9XHJcblxyXG4gIGludm9pY2VJdGVtKGludm9pY2V2YWx1ZTphbnkpe1xyXG4gICAgdGhpcy5jcmVkaXRub3RlZm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgYW1vdW50OiBpbnZvaWNldmFsdWUuYW1vdW50LFxyXG4gICAgICAuLi4oaW52b2ljZXZhbHVlPy5kaXNjb3VudCA/IHtkaXNjb3VudDppbnZvaWNldmFsdWU/LmRpc2NvdW50fSA6IHtkaXNjb3VudDonJ30pLFxyXG4gICAgICAuLi4oaW52b2ljZXZhbHVlPy5yZXZpc2VkQW1vdW50ID8ge3JldmlzZWRBbW91bnQ6aW52b2ljZXZhbHVlPy5yZXZpc2VkQW1vdW50fSA6IHtyZXZpc2VkQW1vdW50OicnfSlcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbnZvaWNlSXNzdWUgPSBpbnZvaWNldmFsdWUuaW52b2ljZTtcclxuICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdpbnZvaWNldHlwZScpPy5zZXRWYWx1ZSh0aGlzLmludm9pY2VJc3N1ZSlcclxuICAgIHRoaXMuaW52b2ljZXR5cGVkcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuICBpbnZvaWNldHlwZURyb3Bkb3duKGV2ZW50Ok1vdXNlRXZlbnQpe1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmludm9pY2V0eXBlZHJvcERvd24gPSAhdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duO1xyXG4gICAgdGhpcy5yZXZpc2VkQW1vdW50ICAgXHJcbiAgfVxyXG4gIHN1Y2Nlc3NjcmVkaXQoKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgaW52b2ljZTp0aGlzLmludm9pY2VJc3N1ZSxcclxuICAgICAgcmV2aXNlZEFtb3VudDp0aGlzLnJldmlzZWRBbW91bnQsXHJcbiAgICAgIGRpc2NvdW50OnRoaXMuZGlzY291bnRcclxuICAgIH07XHJcbiAgICB0aGlzLkJpbGxpbmdTZXJ2aWNlLmFwcGx5RGlzY291bnQocmVxdWVzdERhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUgKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ3N1Y2Nlc3NjcmVkaXQnKTtcclxuICAgICAgICAvLyB0aGlzLnRvYXN0LmdldFByaW1hcnlUb2FzdChyZXMubWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgfX0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHN1Ym1pdHRpbmcgdXBkYXRlOicsIGVycm9yKTtcclxuICAgICAgfSlcclxuICB9XHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7ICAvLyAgICAgICAgIGsgPSBldmVudC5rZXlDb2RlOyAgKEJvdGggY2FuIGJlIHVzZWQpXHJcbiAgICByZXR1cm4gKGsgPT0gOCB8fCBrID09IDMyIHx8IChrID49IDQ4ICYmIGsgPD0gNTcpKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICB0aGlzLmludm9pY2V0eXBlZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC01IHB4LTZcIj5cclxuICAgICAgICA8IS0tIDxkaXY+PGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9wbHVzLWljb24uc3ZnXCIgYWx0PVwiXCI+PC9kaXY+IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nIG10LTQgbXMtMVwiPkFkZCBDcmVkaXQgTm90ZTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50dGV4dCBtdC00XCI+XHJcbiAgICAgICAgICAgIFlvdSBoYXZlIHRoZSBmbGV4aWJpbGl0eSB0byBzZWxlY3QgYSBtb250aCBpbiB3aGljaCB0aGUgYnJhbmQgY2FuIG1ha2UgY3JlZGl0IHBheW1lbnRzLlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgbWItOFwiPlxyXG4gICAgICAgIDwhLS1iZWdpbjo6Rm9ybS0tPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiY3JlZGl0bm90ZWZvcm1cIiBjbGFzcz1cImZvcm0gZnYtcGx1Z2lucy1ib290c3RyYXA1IGZ2LXBsdWdpbnMtZnJhbWV3b3JrXCIgYWN0aW9uPVwiI1wiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNldHlwZVwiIGNsYXNzPVwiaGVhZGluZ3RleHQgbWItMlwiPkludm9pY2UgSUQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWxlY3QgZHJvcHNlbGVjdFwiIGlkPVwiaW52b2ljZXR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2V0eXBlRHJvcGRvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVmYXVsdCBzZWxlY3QgZXhhbXBsZVwiPnt7aW52b2ljZUlzc3VlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImludm9pY2V0eXBlZHJvcERvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkIHB5LTIgdy0xMDAgaW52b2ljZWlkc2VsZWN0IHBvc2l0aW9uLWFic29sdXRlIGVuZC0wIHotMSBpbnZvaWNlRHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnZvaWNlaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwidGhpcy5pbnZvaWNlSXNzdWUgPT09IGl0ZW0/Lmludm9pY2UgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0dGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2ljZUl0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtPy5pbnZvaWNlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZm9yPVwiYW1vdW50XCIgY2xhc3M9XCJmb3JtLWdyb3VwIHB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCIgaGVhZGluZ3RleHQgbWItMiBcIj5Ub3RhbCBBbW91bnQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImN1cnJlbmN5ID09PSAnaW5yJ1wiIGNsYXNzPVwiZG9sbGFyLXNpZ25cIj7igrk8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW5jeSA9PT0gJ2RvbGxhcidcIiBjbGFzcz1cImRvbGxhci1zaWduXCI+JDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImFtb3VudFwiICB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IGNsYXNzPVwibmctcHJpc3RpbmUgbmctaW52YWxpZCBuZy10b3VjaGVkIGFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZvcj1cInJldmlzZWRBbW91bnRcIiBjbGFzcz1cImZvcm0tZ3JvdXAgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIiBoZWFkaW5ndGV4dCBtYi0yXCI+IFJldmlzZWQgQW1vdW50PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGRyb3BzZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3VycmVuY3kgPT09ICdpbnInXCIgY2xhc3M9XCJkb2xsYXItc2lnblwiPuKCuTwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW5jeSA9PT0gJ2RvbGxhcidcIiBjbGFzcz1cImRvbGxhci1zaWduXCI+JDwvc3Bhbj48aW5wdXQgdHlwZT1cInRleHRcIiAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiICBmb3JtQ29udHJvbE5hbWU9XCJyZXZpc2VkQW1vdW50XCIgIFtuZ0NsYXNzXT1cIm1vcmVUaGFuVGVuUGVyY2VudCA/ICdlcnJvcmlucHV0JyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb25cIiAqbmdJZj1cIm1vcmVUaGFuVGVuUGVyY2VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNzUxM18zNjY4OSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTcuOTk5NjcgNS4zMzMwMVY3Ljk5OTY3TTcuOTk5NjcgMTAuNjY2M0g4LjAwNjM0TTE0LjY2NjMgNy45OTk2N0MxNC42NjYzIDExLjY4MTYgMTEuNjgxNiAxNC42NjYzIDcuOTk5NjcgMTQuNjY2M0M0LjMxNzc4IDE0LjY2NjMgMS4zMzMwMSAxMS42ODE2IDEuMzMzMDEgNy45OTk2N0MxLjMzMzAxIDQuMzE3NzggNC4zMTc3OCAxLjMzMzAxIDcuOTk5NjcgMS4zMzMwMUMxMS42ODE2IDEuMzMzMDEgMTQuNjY2MyA0LjMxNzc4IDE0LjY2NjMgNy45OTk2N1pcIiBzdHJva2U9XCIjRjA0NDM4XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNzUxM18zNjY4OVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbW9yZVRoYW5UZW5QZXJjZW50XCIgIGNsYXNzPVwiaGVhZGluZ3RleHQgY29udGVudHRleHRcIj5Nb3JlIHRoYW4gMTAlIGNhbuKAmXQgYmUgcmV2aXNlZCBmcm9tIHRvdGFsIGFtb3VudDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1vcmVUaGFuVGVuUGVyY2VudFwiIGNsYXNzPVwidGV4dC1kYW5nZXIgY29udGVudHRleHRcIj5Nb3JlIHRoYW4gMTAlIGNhbuKAmXQgYmUgcmV2aXNlZCBmcm9tIHRvdGFsIGFtb3VudDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmb3I9XCJkaXNjb3VudFwiIGNsYXNzPVwiZm9ybS1ncm91cCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIiBoZWFkaW5ndGV4dCBtYi0yXCI+IERpc2NvdW50PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj4gIDxpbnB1dCB0eXBlPVwidGV4dFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCIgIGZvcm1Db250cm9sTmFtZT1cImRpc2NvdW50XCIgY2xhc3M9XCJhbW91bnRcIiBbbmdDbGFzc109XCJtb3JlVGhhblRlblBlcmNlbnQgPyAnZXJyb3JpbnB1dCcgOiAnJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uXCIgKm5nSWY9XCIhbW9yZVRoYW5UZW5QZXJjZW50XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi42NjcgMy4zMzM2NkwzLjMzMzY2IDEyLjY2N002LjAwMDMzIDQuMzMzNjZDNi4wMDAzMyA1LjI1NDEzIDUuMjU0MTMgNi4wMDAzMyA0LjMzMzY2IDYuMDAwMzNDMy40MTMxOCA2LjAwMDMzIDIuNjY2OTkgNS4yNTQxMyAyLjY2Njk5IDQuMzMzNjZDMi42NjY5OSAzLjQxMzE4IDMuNDEzMTggMi42NjY5OSA0LjMzMzY2IDIuNjY2OTlDNS4yNTQxMyAyLjY2Njk5IDYuMDAwMzMgMy40MTMxOCA2LjAwMDMzIDQuMzMzNjZaTTEzLjMzMzcgMTEuNjY3QzEzLjMzMzcgMTIuNTg3NSAxMi41ODc1IDEzLjMzMzcgMTEuNjY3IDEzLjMzMzdDMTAuNzQ2NSAxMy4zMzM3IDEwLjAwMDMgMTIuNTg3NSAxMC4wMDAzIDExLjY2N0MxMC4wMDAzIDEwLjc0NjUgMTAuNzQ2NSAxMC4wMDAzIDExLjY2NyAxMC4wMDAzQzEyLjU4NzUgMTAuMDAwMyAxMy4zMzM3IDEwLjc0NjUgMTMuMzMzNyAxMS42NjdaXCIgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uXCIgKm5nSWY9XCJtb3JlVGhhblRlblBlcmNlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjY2NyAzLjMzMzY2TDMuMzMzNjYgMTIuNjY3TTYuMDAwMzMgNC4zMzM2NkM2LjAwMDMzIDUuMjU0MTMgNS4yNTQxMyA2LjAwMDMzIDQuMzMzNjYgNi4wMDAzM0MzLjQxMzE4IDYuMDAwMzMgMi42NjY5OSA1LjI1NDEzIDIuNjY2OTkgNC4zMzM2NkMyLjY2Njk5IDMuNDEzMTggMy40MTMxOCAyLjY2Njk5IDQuMzMzNjYgMi42NjY5OUM1LjI1NDEzIDIuNjY2OTkgNi4wMDAzMyAzLjQxMzE4IDYuMDAwMzMgNC4zMzM2NlpNMTMuMzMzNyAxMS42NjdDMTMuMzMzNyAxMi41ODc1IDEyLjU4NzUgMTMuMzMzNyAxMS42NjcgMTMuMzMzN0MxMC43NDY1IDEzLjMzMzcgMTAuMDAwMyAxMi41ODc1IDEwLjAwMDMgMTEuNjY3QzEwLjAwMDMgMTAuNzQ2NSAxMC43NDY1IDEwLjAwMDMgMTEuNjY3IDEwLjAwMDNDMTIuNTg3NSAxMC4wMDAzIDEzLjMzMzcgMTAuNzQ2NSAxMy4zMzM3IDExLjY2N1pcIiBzdHJva2U9XCIjRjA0NDM4XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbW9yZVRoYW5UZW5QZXJjZW50XCIgIGNsYXNzPVwiaGVhZGluZ3RleHQgY29udGVudHRleHRcIj5JbiBwZXJjZW50YWdlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb3JlVGhhblRlblBlcmNlbnRcIiBjbGFzcz1cInRleHQtZGFuZ2VyIGNvbnRlbnR0ZXh0XCI+SW4gcGVyY2VudGFnZTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmRpc21pc3MoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gY2FuY2VsIG1lLTQgdy01MFwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwibW9yZVRoYW5UZW5QZXJjZW50XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdWNjZXNzY3JlZGl0KClcIiB0YWJpbmRleD1cIjBcIiBcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IG5nLXN0YXItaW5zZXJ0ZWQgdy01MFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1Ym1pdFwiPkFwcGx5IDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, EventEmitter,
|
|
2
|
+
import { Injectable, EventEmitter, HostListener, Output, Input, Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i5$1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i4 from '@angular/router';
|
|
@@ -164,17 +164,23 @@ class CreditNoteComponent {
|
|
|
164
164
|
this.creditnoteform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
165
165
|
if (e) {
|
|
166
166
|
this.amount = this.creditnoteform.get('amount')?.value;
|
|
167
|
-
|
|
168
|
-
this.
|
|
169
|
-
|
|
170
|
-
this.
|
|
167
|
+
console.log(this.amount);
|
|
168
|
+
if (this.amount) {
|
|
169
|
+
this.discount = ((this.amount - e) / this.amount * 100).toFixed(2);
|
|
170
|
+
this.revisedAmount = e;
|
|
171
|
+
if (this.discount > 10 || isNaN(e) || this.discount < 0 || e < 0) {
|
|
172
|
+
this.moreThanTenPercent = true;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
this.moreThanTenPercent = false;
|
|
176
|
+
}
|
|
177
|
+
this.creditnoteform.get('discount')?.setValue(this.discount, {
|
|
178
|
+
emitEvent: false
|
|
179
|
+
});
|
|
171
180
|
}
|
|
172
181
|
else {
|
|
173
|
-
this.
|
|
182
|
+
this.toast.getErrorToast("Please select one Invoice");
|
|
174
183
|
}
|
|
175
|
-
this.creditnoteform.get('discount')?.setValue(this.discount, {
|
|
176
|
-
emitEvent: false
|
|
177
|
-
});
|
|
178
184
|
}
|
|
179
185
|
else {
|
|
180
186
|
let emptdiscount = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tango-app-ui-manage-billing.mjs","sources":["../../../projects/tango-manage-billing/src/lib/components/services/billing.service.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/credit-note/credit-note.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/credit-note/credit-note.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/one-time-fee/one-time-fee.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/one-time-fee/one-time-fee.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/request-confirmation/request-confirmation.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/request-confirmation/request-confirmation.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/regerate-invoice/regerate-invoice.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/regerate-invoice/regerate-invoice.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/payment-statuschange/payment-statuschange.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/payment-statuschange/payment-statuschange.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/tango-manage-billing.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/tango-manage-billing.component.html","../../../projects/tango-manage-billing/src/lib/tango-manage-billing-routing.module.ts","../../../projects/tango-manage-billing/src/lib/tango-manage-billing.module.ts","../../../projects/tango-manage-billing/src/public-api.ts","../../../projects/tango-manage-billing/src/tango-app-ui-manage-billing.ts"],"sourcesContent":["import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable,OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil, catchError, map,throwError } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BillingService {\r\n invoiceApiUrl:string;\r\n paymentSubscriptionApiUrl:any;\r\n\r\n private reloadDataSubject = new BehaviorSubject<boolean>(false);\r\n reloadData$ = this.reloadDataSubject.asObservable();\r\n\r\n paymentinvoiceFormData = new BehaviorSubject<any>({value:null, type:null, form:null})\r\n billingApiUrl: any;\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.pipe(takeUntil(this.destroy$)).subscribe((env) => {\r\n if (env) {\r\n this.paymentSubscriptionApiUrl = env.paymentSubscriptionApiUrl;\r\n this.invoiceApiUrl = env.invoiceApiUrl\r\n this.billingApiUrl = env.billingApiUrl\r\n\r\n // this.clientId.next('11')\r\n }\r\n });\r\n // this.gs.selectedClient.pipe(takeUntil(this.destroy$)).subscribe((e:any)=>{\r\n // if(e){\r\n // console.log(e,'e');\r\n // }\r\n // })\r\n }\r\n triggerReload() {\r\n this.reloadDataSubject.next(true);\r\n }\r\n\r\n \r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n \r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'list'+ EXCEL_EXTENSION);\r\n }\r\n \r\n public saveAsTemplate(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n private readonly destroy$ = new Subject();\r\n\r\n// ngOnDestroy(): void {\r\n// this.destroy$.next(true);\r\n// this.destroy$.complete();\r\n// }\r\ninvoiceTableData( data:any):Observable<any>{\r\n return this.http.post(`${this.invoiceApiUrl}/clientInvoiceList`, data)\r\n}\r\nupdateClientFilters(filters:any){\r\n this.gs.dataRangeValue.next(filters);\r\n}\r\ninvoiceTableDataExport( data:any):Observable<any>{\r\n return this.http.post(`${this.invoiceApiUrl}/clientInvoiceList`, data, {responseType: 'arraybuffer'})\r\n}\r\nclientBillingInfo(params?: any): Observable<any> {\r\n return this.http\r\n .get(`${this.paymentSubscriptionApiUrl}/clientBillingSubscriptionInfo/${params}`)\r\n}\r\ninvoiceDownload(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/invoiceDownload/${data._id}`, data, {responseType: 'arraybuffer'})\r\n}\r\ninvoiceregerate(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/createInvoice/`, data)\r\n}\r\n\r\npaymentStatusChange(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/paymentStatusChange/`, data)\r\n}\r\ninvoiceSent(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/invoiceDownload/${data._id}`, data)\r\n}\r\ngetinvoice(id?: any): Observable<any> {\r\n return this.http.get(`${this.paymentSubscriptionApiUrl}/creditNotes/invoiceList/${id}`)\r\n}\r\ntransactionList(data?: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/creditTransactionlist`,data)\r\n}\r\ntransactionTableExport(data?: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/creditTransactionlist`,data,{responseType: 'arraybuffer'})\r\n}\r\ncreditnoteupdate( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/creditNotes`, data)\r\n}\r\napplyDiscount( data:any):Observable<any>{\r\n return this.http.post(`${this.invoiceApiUrl}/applyDiscount`, data)\r\n}\r\noneTimeFee( data:any,invoiceId:any):Observable<any>{\r\n return this.http.post(`${this.billingApiUrl}/onetime-payment/${invoiceId}`, data)\r\n}\r\npendingInvoices(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/pendingInvoices`, data)\r\n}\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { left } from '@popperjs/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { BillingService } from '../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'lib-credit-note',\r\n templateUrl: './credit-note.component.html',\r\n styleUrl: './credit-note.component.scss'\r\n})\r\nexport class CreditNoteComponent implements OnInit,OnDestroy {\r\n @Input() clientId:any;\r\n invoiceIssue: any;\r\n invoicetype: { name: string, value: string }[] = []; \r\n invoicetypedropDown:boolean = false;\r\n creditnoteform: FormGroup;\r\n amount: number = 0;\r\n discount: any;\r\n revisedAmount: number = 0\r\n moreThanTenPercent:boolean = false\r\n currency: string = '';\r\n\r\n@Input() transactionvalue: string = \"\"\r\n\r\n @Output() passEntry: EventEmitter<any> = new EventEmitter();\r\n invoiceitem: any;\r\n\r\n private readonly destroy$ = new Subject();\r\n \r\n constructor(\r\n public activeModal: NgbActiveModal,private BillingService: BillingService, private changeDetector: ChangeDetectorRef,private fb: FormBuilder,private toast:ToastService\r\n ) { \r\n }\r\n\r\n ngOnInit(): void {\r\n this.creditnote();\r\n this.creditnoteform = this.fb.group({\r\n invoicetype: ['', Validators.required],\r\n amount: ['', Validators.required], \r\n revisedAmount:['', Validators.required] ,\r\n discount: ['',[ Validators.required, Validators.max(10)]],\r\n });\r\n this.creditnoteform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) { \r\n this.amount = this.creditnoteform.get('amount')?.value;\r\n this.discount = ((this.amount - e) / this.amount * 100).toFixed(2);\r\n this.revisedAmount=e;\r\n if(this.discount>10 || isNaN(e) || this.discount < 0 || e < 0){\r\n this.moreThanTenPercent = true; \r\n }\r\n else {\r\n this.moreThanTenPercent = false;\r\n }\r\n this.creditnoteform.get('discount')?.setValue(this.discount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.creditnoteform.get('discount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = false; \r\n } \r\n })\r\n \r\n this.creditnoteform.get('discount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) {\r\n this.amount = this.creditnoteform.get('amount')?.value;\r\n this.revisedAmount = this.amount * (1 - e / 100);\r\n this.revisedAmount = parseInt(this.revisedAmount.toFixed())\r\n this.discount=e;\r\n if (this.discount>10 || isNaN(e) || e < 0 || this.revisedAmount < 0){\r\n this.moreThanTenPercent = true; \r\n }\r\n else {\r\n this.moreThanTenPercent = false;\r\n }\r\n this.creditnoteform.get('revisedAmount')?.setValue(this.revisedAmount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.creditnoteform.get('revisedAmount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = false; \r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n\r\n })\r\n }\r\n get revisedamount() { return this.creditnoteform.get('revisedAmount'); }\r\n get discounts() { return this.creditnoteform.get('discount'); }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n \r\n creditnote(){\r\n let payload:any={\r\n clientId:this.clientId\r\n }\r\n this.BillingService.pendingInvoices(payload).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.invoiceitem = res?.data;\r\n this.invoiceIssue = this.invoiceitem[0]?.invoice;\r\n const amount = this.invoiceitem[0]?.amount || \"\";\r\n this.currency = this.invoiceitem[0]?.currency || \"\";\r\n this.creditnoteform.patchValue({\r\n amount: amount,\r\n discount:this.invoiceitem?.discount\r\n });\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n invoiceItem(invoicevalue:any){\r\n this.creditnoteform.patchValue({\r\n amount: invoicevalue.amount,\r\n ...(invoicevalue?.discount ? {discount:invoicevalue?.discount} : {discount:''}),\r\n ...(invoicevalue?.revisedAmount ? {revisedAmount:invoicevalue?.revisedAmount} : {revisedAmount:''})\r\n });\r\n this.invoiceIssue = invoicevalue.invoice;\r\n this.creditnoteform.get('invoicetype')?.setValue(this.invoiceIssue)\r\n this.invoicetypedropDown = false;\r\n }\r\n invoicetypeDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this.invoicetypedropDown = !this.invoicetypedropDown;\r\n this.revisedAmount \r\n }\r\n successcredit() {\r\n const requestData = {\r\n invoice:this.invoiceIssue,\r\n revisedAmount:this.revisedAmount,\r\n discount:this.discount\r\n };\r\n this.BillingService.applyDiscount(requestData).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModal.close('successcredit');\r\n // this.toast.getPrimaryToast(res.message);\r\n this.changeDetector.detectChanges()\r\n }},\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n })\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n this.invoicetypedropDown = false;\r\n }\r\n}\r\n\r\n","<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <!-- <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div> -->\r\n <div class=\"heading mt-4 ms-1\">Add Credit Note</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"creditnoteform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\"\r\n (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"amount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Total Amount</label>\r\n <div class=\"input-group\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">₹</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input formControlName=\"amount\" type=\"text\" readonly class=\"ng-pristine ng-invalid ng-touched amount\"\r\n style=\"text-transform: capitalize;\"></div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Revised Amount</label>\r\n <div class=\"input-group dropselect\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">₹</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span><input type=\"text\" (keypress)=\"omit_special_char($event)\" formControlName=\"revisedAmount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\"\r\n style=\"text-transform: capitalize;\">\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7513_36689)\">\r\n <path d=\"M7.99967 5.33301V7.99967M7.99967 10.6663H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7513_36689\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can’t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can’t be revised from total amount</span>\r\n </div>\r\n <div for=\"discount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Discount</label>\r\n <div class=\"input-group\"> <input type=\"text\" (keypress)=\"omit_special_char($event)\" formControlName=\"discount\" class=\"amount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\" >\r\n <span class=\"icon\" *ngIf=\"!moreThanTenPercent\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#98A2B3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n \r\n </div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">In percentage</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">In percentage</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button [disabled]=\"moreThanTenPercent\" type=\"button\" (click)=\"successcredit()\" tabindex=\"0\" \r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { left } from '@popperjs/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { BillingService } from '../../services/billing.service';\r\n@Component({\r\n selector: 'app-one-time-fee',\r\n templateUrl: './one-time-fee.component.html',\r\n styleUrl: './one-time-fee.component.scss'\r\n})\r\nexport class OneTimeFeeComponent implements OnInit,OnDestroy {\r\n @Input() clientId:any;\r\n invoiceIssue: any;\r\n invoicetype: { name: string, value: string }[] = []; \r\n invoicetypedropDown:boolean = false;\r\n onetimefeeform: FormGroup;\r\n amount: number = 0;\r\n discount: any;\r\n revisedAmount: number = 0\r\n moreThanTenPercent:boolean = true;\r\n currency: string = '';\r\n totalAmount: number = 0;\r\n\r\n@Input() transactionvalue: string = \"\"\r\n\r\n @Output() passEntry: EventEmitter<any> = new EventEmitter();\r\n invoiceitem: any;\r\n\r\n private readonly destroy$ = new Subject();\r\n \r\n constructor(\r\n public activeModal: NgbActiveModal,private BillingService: BillingService, private changeDetector: ChangeDetectorRef,private fb: FormBuilder,private toast:ToastService\r\n ) { \r\n }\r\n\r\n ngOnInit(): void {\r\n this.creditnote();\r\n this.onetimefeeform = this.fb.group({\r\n invoicetype: ['', Validators.required],\r\n amount: ['', Validators.required], \r\n revisedAmount:['', Validators.required] ,\r\n discount: ['',[ Validators.required, Validators.max(10)]],\r\n });\r\n this.onetimefeeform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) { \r\n this.amount = this.onetimefeeform.get('amount')?.value;\r\n this.discount = ((this.amount - e) / this.amount * 100).toFixed(2);\r\n this.revisedAmount=e;\r\n if(this.discount>10 || isNaN(e) || this.discount < 0 || e < 0){\r\n this.moreThanTenPercent = false; \r\n }\r\n else {\r\n this.moreThanTenPercent = true;\r\n }\r\n this.onetimefeeform.get('discount')?.setValue(this.discount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.onetimefeeform.get('discount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = true; \r\n } \r\n })\r\n \r\n this.onetimefeeform.get('discount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) {\r\n this.amount = this.onetimefeeform.get('amount')?.value;\r\n this.revisedAmount = this.amount * (1 - e / 100);\r\n this.revisedAmount = parseInt(this.revisedAmount.toFixed())\r\n this.discount=e;\r\n if (this.discount>10 || isNaN(e) || e < 0 || this.revisedAmount < 0){\r\n this.moreThanTenPercent = false; \r\n }\r\n else {\r\n this.moreThanTenPercent = true;\r\n }\r\n this.onetimefeeform.get('revisedAmount')?.setValue(this.revisedAmount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.onetimefeeform.get('revisedAmount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = true; \r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n\r\n })\r\n this.onetimefeeform.valueChanges.subscribe(() => this.calculateTotal());\r\n }\r\n get revisedamount() { return this.onetimefeeform.get('revisedAmount'); }\r\n get discounts() { return this.onetimefeeform.get('discount'); }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n \r\n creditnote(){ \r\n let payload:any={\r\n clientId:this.clientId\r\n }\r\n this.BillingService.pendingInvoices(payload).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.invoiceitem = res?.data;\r\n this.invoiceIssue = this.invoiceitem[0]?.invoice;\r\n const amount = this.invoiceitem[0]?.amount || \"\";\r\n this.currency = this.invoiceitem[0]?.currency || \"\";\r\n this.onetimefeeform.patchValue({\r\n amount: amount,\r\n discount:this.invoiceitem?.discount\r\n });\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n invoiceItem(invoicevalue:any){\r\n this.currency = invoicevalue?.currency || \"\";\r\n this.onetimefeeform.patchValue({\r\n amount: invoicevalue.amount,\r\n ...(invoicevalue?.discount ? {discount:invoicevalue?.discount} : {discount:''}),\r\n ...(invoicevalue?.revisedAmount ? {revisedAmount:invoicevalue?.revisedAmount} : {revisedAmount:''})\r\n });\r\n this.invoiceIssue = invoicevalue.invoice;\r\n this.onetimefeeform.get('invoicetype')?.setValue(this.invoiceIssue)\r\n this.invoicetypedropDown = false;\r\n }\r\n invoicetypeDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this.invoicetypedropDown = !this.invoicetypedropDown;\r\n this.revisedAmount \r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n successcredit() {\r\n const requestData = {\r\n oneTimeFee:this.revisedAmount\r\n };\r\n this.BillingService.oneTimeFee(requestData,this.invoiceIssue).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModal.close('successcredit');\r\n // this.toast.getPrimaryToast(res.message);\r\n this.changeDetector.detectChanges()\r\n }},\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n })\r\n }\r\n \r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n this.invoicetypedropDown = false;\r\n }\r\n calculateTotal(): void {\r\n const amount = parseFloat(this.onetimefeeform.get('amount')?.value || '0');\r\n const revisedAmount = parseFloat(this.onetimefeeform.get('revisedAmount')?.value || '0'); \r\n this.totalAmount = parseFloat((amount + revisedAmount).toFixed(2));\r\n }\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <!-- <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div> -->\r\n <div class=\"heading mt-4 ms-1\">Add One Time Fee</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"onetimefeeform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\" (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"amount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Current Invoice Amount</label>\r\n <div class=\"input-group\">\r\n <!-- <span class=\"dollar-sign amount\">₹</span> -->\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">₹</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input formControlName=\"amount\" type=\"text\"\r\n readonly class=\"ng-pristine ng-invalid ng-touched amount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\">One Time Fee (Installation) </label>\r\n <div class=\"input-group dropselect\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">₹</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input type=\"text\" formControlName=\"revisedAmount\" (keypress)=\"omit_special_char($event)\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n </div>\r\n <!-- <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can’t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can’t be revised from total amount</span> -->\r\n </div>\r\n <div class=\"d-flex flex-stack mt-3\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">{{currency === 'inr' ? '₹' : '$'}}{{totalAmount.toFixed(2)}}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"d-flex flex-stack\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">₹23,000</span>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"successcredit()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'lib-request-confirmation',\r\n templateUrl: './request-confirmation.component.html',\r\n styleUrl: './request-confirmation.component.scss'\r\n})\r\nexport class RequestConfirmationComponent {\r\n\r\n constructor(public activeModal:NgbActiveModal){}\r\n\r\n}\r\n","<span class=\"mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24V28M27.9998 32H28.0098M26.2898 18.86L17.8198 33C17.6451 33.3024 17.5527 33.6453 17.5518 33.9945C17.5508 34.3437 17.6413 34.6871 17.8142 34.9905C17.9871 35.2939 18.2365 35.5467 18.5375 35.7238C18.8385 35.9009 19.1806 35.9961 19.5298 36H36.4698C36.819 35.9961 37.1611 35.9009 37.4621 35.7238C37.7631 35.5467 38.0124 35.2939 38.1854 34.9905C38.3583 34.6871 38.4488 34.3437 38.4478 33.9945C38.4468 33.6453 38.3544 33.3024 38.1798 33L29.7098 18.86C29.5315 18.5661 29.2805 18.3231 28.981 18.1544C28.6814 17.9858 28.3435 17.8972 27.9998 17.8972C27.656 17.8972 27.3181 17.9858 27.0186 18.1544C26.7191 18.3231 26.468 18.5661 26.2898 18.86Z\"\r\n stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</span>\r\n\r\n<span class=\"mb-3 title\">\r\n Approve Invoice?\r\n</span>\r\n\r\n<span class=\"mb-5 description\">\r\n Are you sure you want to approve this invoice? This action cannot be undone.\"\r\n</span>\r\n\r\n<div class=\"row\">\r\n <div class=\"col-6\" >\r\n <button (click)=\"activeModal.close('No')\" class=\"btn btn-outline w-100\">No</button>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <button (click)=\"activeModal.close('Yes')\" class=\"btn btn-primary w-100\" style=\"padding: 8.5px;\">Yes</button>\r\n </div>\r\n\r\n</div>","import { Component } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n@Component({\r\n selector: 'lib-regerate-invoice',\r\n templateUrl: './regerate-invoice.component.html',\r\n styleUrl: './regerate-invoice.component.scss'\r\n})\r\nexport class RegerateInvoiceComponent {\r\n constructor(public activeModal:NgbActiveModal){}\r\n}\r\n","<span class=\"mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24V28M27.9998 32H28.0098M26.2898 18.86L17.8198 33C17.6451 33.3024 17.5527 33.6453 17.5518 33.9945C17.5508 34.3437 17.6413 34.6871 17.8142 34.9905C17.9871 35.2939 18.2365 35.5467 18.5375 35.7238C18.8385 35.9009 19.1806 35.9961 19.5298 36H36.4698C36.819 35.9961 37.1611 35.9009 37.4621 35.7238C37.7631 35.5467 38.0124 35.2939 38.1854 34.9905C38.3583 34.6871 38.4488 34.3437 38.4478 33.9945C38.4468 33.6453 38.3544 33.3024 38.1798 33L29.7098 18.86C29.5315 18.5661 29.2805 18.3231 28.981 18.1544C28.6814 17.9858 28.3435 17.8972 27.9998 17.8972C27.656 17.8972 27.3181 17.9858 27.0186 18.1544C26.7191 18.3231 26.468 18.5661 26.2898 18.86Z\"\r\n stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</span>\r\n\r\n<span class=\"mb-3 title\">\r\n Regenerate Invoice?\r\n</span>\r\n\r\n<span class=\"mb-5 description\">\r\n Are you sure you want to regenerate this invoice? The existing invoice will be replaced.\r\n</span>\r\n\r\n<div class=\"row\">\r\n <div class=\"col-6\" >\r\n <button (click)=\"activeModal.close('No')\" class=\"btn btn-outline w-100\">No</button>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <button (click)=\"activeModal.close('Yes')\" class=\"btn btn-primary w-100\" style=\"padding: 8.5px;\">Yes</button>\r\n </div>\r\n\r\n</div>","import { Component } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n@Component({\r\n selector: 'lib-payment-statuschange',\r\n templateUrl: './payment-statuschange.component.html',\r\n styleUrl: './payment-statuschange.component.scss'\r\n})\r\nexport class PaymentStatuschangeComponent {\r\n constructor(public activeModal:NgbActiveModal){\r\n \r\n }\r\n}\r\n","<span class=\"mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24V28M27.9998 32H28.0098M26.2898 18.86L17.8198 33C17.6451 33.3024 17.5527 33.6453 17.5518 33.9945C17.5508 34.3437 17.6413 34.6871 17.8142 34.9905C17.9871 35.2939 18.2365 35.5467 18.5375 35.7238C18.8385 35.9009 19.1806 35.9961 19.5298 36H36.4698C36.819 35.9961 37.1611 35.9009 37.4621 35.7238C37.7631 35.5467 38.0124 35.2939 38.1854 34.9905C38.3583 34.6871 38.4488 34.3437 38.4478 33.9945C38.4468 33.6453 38.3544 33.3024 38.1798 33L29.7098 18.86C29.5315 18.5661 29.2805 18.3231 28.981 18.1544C28.6814 17.9858 28.3435 17.8972 27.9998 17.8972C27.656 17.8972 27.3181 17.9858 27.0186 18.1544C26.7191 18.3231 26.468 18.5661 26.2898 18.86Z\"\r\n stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</span>\r\n\r\n<span class=\"mb-3 title\">\r\n Payment Status Change?\r\n</span>\r\n\r\n<span class=\"mb-5 description\">\r\n Are you sure you want to change this invoice payment Status? \r\n</span>\r\n\r\n<div class=\"row\">\r\n <div class=\"col-6\" >\r\n <button (click)=\"activeModal.close('No')\" class=\"btn btn-outline w-100\">No</button>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <button (click)=\"activeModal.close('Yes')\" class=\"btn btn-primary w-100\" style=\"padding: 8.5px;\">Yes</button>\r\n </div>\r\n\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, HostListener } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n// import { PaynowComponent } from './paynow/paynow.component';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BillingService } from '../services/billing.service';\r\nimport { CreditNoteComponent } from './credit-note/credit-note.component';\r\nimport { OneTimeFeeComponent } from './one-time-fee/one-time-fee.component';\r\nimport { RequestConfirmationComponent } from './request-confirmation/request-confirmation.component';\r\nimport { RegerateInvoiceComponent } from './regerate-invoice/regerate-invoice.component';\r\nimport { Router } from '@angular/router';\r\nimport { PaymentStatuschangeComponent } from './payment-statuschange/payment-statuschange.component';\r\n\r\n@Component({\r\n selector: 'lib-tango-manage-billing',\r\n templateUrl: './tango-manage-billing.component.html',\r\n styleUrl: './tango-manage-billing.component.scss'\r\n})\r\n\r\nexport class TangoManageBillingComponent {\r\n invoicetransaction: boolean = true;\r\n invoiceplans: string = 'invoice';\r\n len: any;\r\n searchDisabled: any = false;\r\n pageSize = 10;\r\n currentPage = 1;\r\n currenttranPage = 1;\r\n pagetransSize=10;\r\n DurationFilter = 'current';\r\n paymentFilter: any = [];\r\n ApprovalFilter: any = [];\r\n\r\n clientId: string = '';\r\n sortColumName: string = \"clientName\";\r\n sortBy: number = -1;\r\n dynamicData: any = {\r\n limit: 10,\r\n offset: 1,\r\n clientId: \"\",\r\n searchValue: \"\",\r\n sortColumn: '',\r\n sortBy: '',\r\n product: [],\r\n store: [],\r\n location: []\r\n }\r\n userType: any = '';\r\n invoiceList: any = [];\r\n invoiceLoading: boolean = true;\r\n invoiceNoData: boolean = false;\r\n transactionNoData: boolean = false;\r\n transactionLoading: boolean = true;\r\n\r\n totalItems = 0;\r\n clientinfo: any;\r\n itemsPerPage = 10;\r\n paginationSizes = [10, 20, 30];\r\n itemsPerPagetran = 10;\r\n paginationSizestran = [10, 20, 30];\r\n expandedRowIndex: number | null = null;\r\n producttraildropDown: boolean = false;\r\n\r\n options: { label: string }[] = [\r\n { label: 'Credit Note' },\r\n { label: 'Add one time fee' }\r\n ];\r\n isDropdownOpen = false;\r\n dropdownId: number;\r\n activeDropdownId: number | null = null;\r\n paymentStatus: string;\r\n invoice: { paymentStatus: string } = { paymentStatus: 'unpaid' };\r\n openDropdownIndex: number | null = null;\r\n\r\n private readonly destroy$ = new Subject();\r\n transactionList: any;\r\n transactionItems: any;\r\n sortColumNametran: any = 'clientName';\r\n sortBytran: any = 1;\r\n\r\n invoiceFilterObject = [\r\n { Description: 'Duration', type: 'single', Issues: [{ id: 'current', text: \"Current Month\" }, { id: 'prev', text: \"Previous Month\" }, { id: 'last', text: \"Last 3 Months\" }] },\r\n { Description: 'Payment Status', type: 'multi', Issues: [{ id: 'paid', text: \"Paid\" }, { id: 'unpaid', text: \"Unpaid\" }] },\r\n { Description: 'Approval Status', type: 'multi', Issues: [{ id: 'approved', text: \"Approved\" }, { id: 'pending', text: \"Pending\" }] },\r\n ];\r\n\r\n constructor(\r\n private fb: FormBuilder, private BillingService: BillingService, private changeDetector: ChangeDetectorRef, private toast: ToastService,private router:Router, public gs: GlobalStateService, private elementRef: ElementRef, public modalService: NgbModal,private pageInfo:PageInfoService\r\n ) {\r\n this.BillingService.paymentinvoiceFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'payment-invoice') {\r\n // this.getpaymentinvoice(res.value)\r\n }\r\n }\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.setPageData()\r\n this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if (data) {\r\n this.clientId = data.clients;\r\n this.dynamicData.clientId = this.clientId\r\n this.gs.userAccess.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if (data) {\r\n this.userType = data.userType;\r\n if (data?.userType == 'tango') {\r\n this.transactionLoading = true\r\n this.invoiceTableData();\r\n this.creditTransactionlist()\r\n\r\n }\r\n }\r\n })\r\n }\r\n });\r\n\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle('Billing')\r\n this.pageInfo.setDescription('Edit and configure billing details')\r\n this.pageInfo.setBreadcrumbs([\r\n { title: 'Manage', path: '/manage', isActive: false, isSeparator: false },\r\n { title: 'Manage', path: '/manage', isActive: false, isSeparator: true },\r\n ])\r\n }\r\n\r\n\r\n\r\n\r\n selectInvoicePlan(invoiceplans: string) {\r\n this.invoiceplans = invoiceplans;\r\n this.creditTransactionlist()\r\n\r\n }\r\n invoiceTableData() {\r\n this.searchDisabled = false;\r\n this.invoiceLoading = true;\r\n this.invoiceNoData = true;\r\n let filters: Record<string, any> = {\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n filter: this.DurationFilter,\r\n paymentStatus: this.paymentFilter,\r\n status: this.ApprovalFilter,\r\n clientId: this.clientId,\r\n searchValue: this.len,\r\n export: false,\r\n sortColumName: this.sortColumName,\r\n sortBy: this.sortBy\r\n }\r\n this.BillingService.invoiceTableData(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n\r\n next: (e) => {\r\n\r\n if (e?.data?.count) {\r\n this.invoiceLoading = false;\r\n this.invoiceNoData = false;\r\n this.invoiceList = e.data?.data\r\n this.totalItems = e.data?.count\r\n this.changeDetector.detectChanges()\r\n } else {\r\n this.invoiceLoading = false;\r\n this.invoiceNoData = true;\r\n this.searchDisabled = true;\r\n if (this.len?.length) {\r\n this.searchDisabled = false\r\n }\r\n this.invoiceList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n\r\n },\r\n error: (e) => {\r\n this.invoiceList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n })\r\n }\r\n dataValue(data: any) {\r\n this.router.navigate([\"/manage/stores\"])\r\n const datavalue: any = JSON.parse(\r\n localStorage.getItem(\"header-filters\") || \"{}\"\r\n );\r\n datavalue.client = data.clientId.toString();\r\n datavalue.clientName = data.clientName\r\n this.changeDetector.detectChanges()\r\n this.BillingService.updateClientFilters(data);\r\n localStorage.setItem('header-filters', JSON.stringify(datavalue))\r\n this.gs.dataRangeValue.next(datavalue)\r\n}\r\n\r\n creditTransactionlist() {\r\n this.transactionLoading = true;\r\n this.transactionNoData = true;\r\n this.searchDisabled = false;\r\n let filters: Record<string, any> = {\r\n limit: this.pagetransSize,\r\n offset: this.currenttranPage,\r\n clientId: this.clientId,\r\n searchValue: this.len,\r\n export: false,\r\n sortColumName: this.sortColumNametran,\r\n sortBy: this.sortBytran\r\n }\r\n this.BillingService.transactionList(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n\r\n next: (e) => {\r\n\r\n if (e?.data?.count) {\r\n\r\n this.transactionLoading = false;\r\n this.transactionNoData = false;\r\n this.transactionList = e.data?.data\r\n this.transactionItems = e.data?.count\r\n this.changeDetector.detectChanges()\r\n } else {\r\n this.transactionLoading = false;\r\n this.transactionNoData = true;\r\n this.searchDisabled = true;\r\n if (this.len?.length) {\r\n this.searchDisabled = false\r\n }\r\n this.transactionList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n\r\n },\r\n error: (e) => {\r\n this.transactionList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n })\r\n }\r\n onExport() {\r\n this.currentPage = 1;\r\n let filters: Record<string, any> = {\r\n filter: this.DurationFilter,\r\n paymentStatus: this.paymentFilter,\r\n status: this.ApprovalFilter,\r\n clientId: this.clientId,\r\n searchValue: this.len,\r\n export: true,\r\n sortColumName: this.sortColumName,\r\n sortBy: this.sortBy\r\n }\r\n this.BillingService.invoiceTableDataExport(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.BillingService.saveAsExcelFile(res, 'invoice');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n })\r\n }\r\n onExportTransaction() {\r\n this.currentPage = 1;\r\n let filters: Record<string, any> = {\r\n filter: this.DurationFilter,\r\n clientId: this.clientId,\r\n searchValue: this.len,\r\n export: true\r\n }\r\n this.BillingService.transactionTableExport(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.BillingService.saveAsExcelFile(res, 'Transaction');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n })\r\n }\r\n regenerateInvoice(data: any) {\r\n const modalRef = this.modalService.open(RegerateInvoiceComponent, {\r\n centered: true, size: 'md', scrollable: true,\r\n });\r\n modalRef.result.then((result: any) => {\r\n if (result) {\r\n if (result === 'Yes') {\r\n let payload = {\r\n invoiceId: data.invoice,\r\n allClient: false\r\n }\r\n this.BillingService.invoiceregerate(payload).subscribe((res: any) => {\r\n if (res) {\r\n this.toast.getPrimaryToast('The invoice has been successfully regenerated.');\r\n this.invoiceTableData()\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n paymentstatusChange(data: any) {\r\n const modalRef = this.modalService.open(PaymentStatuschangeComponent, {\r\n centered: true, size: 'md', scrollable: true,\r\n });\r\n modalRef.result.then((result: any) => {\r\n if (result) {\r\n if (result === 'Yes') {\r\n console.log(data.paymentStatus)\r\n let payload = {\r\n invoiceId: data.invoice,\r\n status:data.paymentStatus==\"paid\"?\"unpaid\":\"paid\"\r\n }\r\n this.BillingService.paymentStatusChange(payload).subscribe((res: any) => {\r\n if (res) {\r\n this.toast.getPrimaryToast(res.message);\r\n this.invoiceTableData()\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n approveInvoice(data: any) {\r\n const modalRef = this.modalService.open(RequestConfirmationComponent, {\r\n centered: true, size: 'md', scrollable: true,\r\n });\r\n modalRef.result.then((result: any) => {\r\n if (result) {\r\n if (result === 'Yes') {\r\n data.sendInvoice = true\r\n data.status = 'approved'\r\n this.BillingService.invoiceDownload(data).subscribe((res: any) => {\r\n if (res) {\r\n this.toast.getPrimaryToast('The invoice has been successfully approved');\r\n this.invoiceTableData()\r\n\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.pageSize = parseInt(pageSize)\r\n this.invoiceTableData()\r\n \r\n }\r\n onPageSizeChangeTran(pageSize: any) {\r\n this.currenttranPage = 1;\r\n this.pagetransSize = parseInt(pageSize) \r\n this.creditTransactionlist()\r\n }\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = parseInt(pageOffset)\r\n this.invoiceTableData()\r\n \r\n }\r\n onPageChangetran(pageOffset: any) {\r\n this.currenttranPage = parseInt(pageOffset)\r\n this.creditTransactionlist()\r\n }\r\n invoiceFilter() {\r\n this.currentPage = 1\r\n this.invoiceTableData()\r\n this.creditTransactionlist()\r\n\r\n }\r\n\r\n sortData(column: any) {\r\n this.sortColumName = column\r\n this.sortBy *= -1;\r\n this.changeDetector.detectChanges();\r\n this.invoiceTableData()\r\n }\r\n sortDataTrans(column: any) {\r\n if (this.sortColumNametran === column) {\r\n this.sortBytran = this.sortBytran === 1 ? -1 : 1;\r\n } else {\r\n this.sortColumNametran = column;\r\n this.sortBytran = 1;\r\n }\r\n this.changeDetector.detectChanges();\r\n this.creditTransactionlist()\r\n }\r\n searchField() {\r\n this.invoiceTableData()\r\n this.creditTransactionlist()\r\n }\r\n\r\n showProduct(data: string) {\r\n return data.slice(2 - data.length)\r\n }\r\n clientBillingInfo(id: any) {\r\n this.BillingService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.clientinfo = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n }\r\n downloadInvoice(data: any) {\r\n const req = {...data}\r\n req.clientId = [data.clientId]\r\n this.BillingService.invoiceDownload(req).subscribe((res: any) => {\r\n if (res) {\r\n const blob = new Blob([res], { type: 'application/pdf' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n\r\n })\r\n }\r\n toggleDropdown(index: number): void {\r\n if (this.openDropdownIndex === index) {\r\n this.openDropdownIndex = null;\r\n } else {\r\n this.openDropdownIndex = index;\r\n }\r\n }\r\n\r\n\r\n selectOption(option: any, clientId: any): void {\r\n this.openDropdownIndex = null;\r\n this.isDropdownOpen = false;\r\n if (option.label === 'Credit Note') {\r\n this.creditnote(clientId);\r\n } else if (option.label === 'Add one time fee') {\r\n this.onetimefee(clientId);\r\n }\r\n }\r\n\r\n creditnote(clientId: any) {\r\n const modalRef = this.modalService.open(CreditNoteComponent, {\r\n centered: true,\r\n size: 'md',\r\n scrollable: true\r\n });\r\n modalRef.componentInstance.clientId = clientId;\r\n modalRef.result.then((result) => {\r\n if (result === 'successcredit') {\r\n this.toast.getPrimaryToast('The invoice has been sent to the respective email IDs with the discount.');\r\n }\r\n });\r\n }\r\n onetimefee(clientId: any) {\r\n const modalRef = this.modalService.open(OneTimeFeeComponent, {\r\n centered: true,\r\n size: 'md',\r\n scrollable: true\r\n });\r\n modalRef.componentInstance.clientId = clientId;\r\n modalRef.result.then((result) => {\r\n if (result == 'successcredit') {\r\n this.toast.getPrimaryToast('One time fee added successfully.');\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n // paynow() {\r\n // const modalRef = this.modalService.open(PaynowComponent, {\r\n // centered: true,\r\n // size: 'lg',\r\n // scrollable: true\r\n // });\r\n // modalRef.componentInstance.clientId = this.clientId;\r\n // modalRef.result.then((result) => {\r\n // // if (result == 'successcredit') {\r\n // // this.toast.getPrimaryToast('The invoice has been sent to the respective email IDs with the discount.');\r\n // // // this.invoiceTableData();\r\n // // }\r\n // });\r\n // }\r\n toggleRow(index: number): void {\r\n this.expandedRowIndex = this.expandedRowIndex === index ? null : index;\r\n }\r\n\r\n applyInvoiceFilters(event: any) {\r\n if (event?.length) {\r\n console.log(event)\r\n event.forEach((element: any) => {\r\n if (element.Description === \"Duration\") {\r\n this.DurationFilter = element.Issues.id;\r\n }\r\n if (element.Description === \"Payment Status\") {\r\n if(element.Issues.length>0){\r\n element.Issues.forEach((data: any) => {\r\n this.paymentFilter.push(data.id);\r\n })\r\n }else{\r\n this.paymentFilter = []\r\n }\r\n \r\n }\r\n if (element.Description === \"Approval Status\") {\r\n if(element.Issues.length>0){\r\n element.Issues.forEach((data: any) => {\r\n this.ApprovalFilter.push(data.id);\r\n })\r\n }else{\r\n this.ApprovalFilter = []\r\n }\r\n }\r\n })\r\n }\r\n this.currentPage = 1\r\n this.invoiceTableData()\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickout(event: Event): void {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.table-title')) {\r\n this.openDropdownIndex = null;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","<div class=\"card\">\r\n <div *ngIf=\"invoicetransaction\" class=\"mt-4 paymenthistory\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"invoiceplans === 'invoice' ? 'activePlanBtnprimary' : 'inactivePlanBtn'\"\r\n data-kt-plan=\"invoice\" (click)=\"selectInvoicePlan('invoice')\">\r\n Invoice\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"invoiceplans === 'credittransaction' ? 'activePlanBtnprimary' : 'inactivePlanBtn'\"\r\n data-kt-plan=\"credittransaction\" (click)=\"selectInvoicePlan('credittransaction')\">\r\n Credit Transactions\r\n </button>\r\n </div>\r\n <div class=\"card-header paymenthistory border-0\">\r\n <div *ngIf=\"invoiceplans === 'invoice'\" class=\"billingheader ms-1 mt-6\">Invoice</div>\r\n <div *ngIf=\"invoiceplans === 'credittransaction'\" class=\"billingheader ms-1 mt-6\">Credit Transactions</div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon invoicesearch svg-icon-1 position-absolute mt-6 ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\">\r\n </rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input [(ngModel)]=\"len\" type=\"text\" class=\"form-control ps-14 invoicesearch\"\r\n placeholder=\"Search...\" autocomplete=\"off\" (change)=\"searchField()\"\r\n [disabled]=\"searchDisabled\" />\r\n <lib-filters *ngIf=\"invoiceplans === 'invoice'\" [dataObject]=\"invoiceFilterObject\" (appliedFilters)=\"applyInvoiceFilters($event)\"></lib-filters>\r\n\r\n <!-- <div class=\"me-3 monthwidth\">\r\n <div class=\"dropdown invheader\">\r\n <select class=\"form-select invheader\" aria-label=\"Default select example\"\r\n [(ngModel)]=\"isFilter\" (change)=\"invoiceFilter()\">\r\n <option value=\"current\">Current Month</option>\r\n <option value=\"prev\">Previous Month</option>\r\n <option value=\"last\">Last 3 Months</option>\r\n </select>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <button (click)=\"creditnote()\" type=\"button\"\r\n class=\"btn-outline btn align-items-end invheader text-nowrap me-4\"\r\n *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && (gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"\r\n [disabled]=\"!invoiceList.length\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.16675V15.8334M4.66602 10.0001H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span>Credit Note</span> </button> -->\r\n <button type=\"button\" (click)=\"onExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader\"\r\n *ngIf=\"invoiceplans === 'invoice'\"\r\n [disabled]=\"!invoiceList.length\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\"></span> Export</button>\r\n\r\n\r\n <button type=\"button\" (click)=\"onExportTransaction()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader ms-4\"\r\n *ngIf=\"invoiceplans === 'credittransaction'\"\r\n [disabled]=\"!transactionList.length\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\"></span> Export</button>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"invoiceplans === 'invoice'\">\r\n <ng-container *ngIf=\"invoiceLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"invoiceNoData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- invoice table start -->\r\n <div *ngIf=\"!invoiceLoading && !invoiceNoData\" class=\"table-responsive\">\r\n <table class=\"table accordion table bottom-border invoivetable \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('clientName')\" >Client Name\r\n <svg [ngClass]=\"sortColumName === 'clientName' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'clientName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('invoice')\" >Invoice #\r\n <svg [ngClass]=\"sortColumName === 'invoice' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'invoice' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('billingDate')\" >Billing date \r\n <svg [ngClass]=\"sortColumName === 'billingDate' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'billingDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('groupName')\" > Group Name\r\n <svg [ngClass]=\"sortColumName === 'groupName' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'groupName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('totalAmount')\" > Amount\r\n <svg [ngClass]=\"sortColumName === 'totalAmount' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'totalAmount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('stores')\" > Stores\r\n <svg [ngClass]=\"sortColumName === 'stores' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'stores' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('paymentStatus')\" > Payment Status\r\n <svg [ngClass]=\"sortColumName === 'paymentStatus' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'paymentStatus' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('status')\" > Approval Status\r\n <svg [ngClass]=\"sortColumName === 'status' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'status' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n \r\n <th scope=\"col\">Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let invoice of invoiceList; let i = index\">\r\n <td>\r\n <div class=\"table-title table-title-primary d-flex \">\r\n <div class=\"symbol symbol-35px symbol-circle me-2\"><span\r\n class=\"symbol-label text-symbol\">\r\n <span *ngIf=\"!invoice?.logo\" class=\"symbol-label bg-light-primary text-symbol\">\r\n {{invoice?.clientName?.charAt(0)}} </span>\r\n <img *ngIf=\"invoice?.logo\" class=\"logo-img\" [src]=\"invoice?.logo\" alt=\"\">\r\n </span></div>\r\n <div><u> {{invoice?.clientName}}</u></div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title table-title-primary\">\r\n {{invoice?.invoice}}\r\n </div>\r\n\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{invoice?.billingDate ? (invoice?.billingDate|customDateFormat) :\r\n '--'}}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{invoice?.groupName}}</div>\r\n </td>\r\n <!-- <span\r\n *ngIf=\"clientinfo?.currentPlanInfo?.currencyType === 'inr'\"></span><span\r\n *ngIf=\"clientinfo?.currentPlanInfo?.currencyType === 'dollar'\">$</span> -->\r\n <td>\r\n <div class=\"table-title\">\r\n <span *ngIf=\"invoice?.currencyType === 'inr'\">₹</span><span\r\n *ngIf=\"invoice?.currencyType === 'dollar'\">$</span>\r\n {{invoice?.totalAmount}}\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">{{invoice?.stores}} Stores</div>\r\n </td>\r\n <td>\r\n <div [ngClass]=\"invoice.paymentStatus === 'paid'? 'badge badge-light-success' :'badge badge-light-warning'\"\r\n class=\"mt-3\">{{invoice?.paymentStatus| titlecase}}\r\n\r\n </div>\r\n </td>\r\n <td>\r\n <div [ngClass]=\"invoice.status === 'approved'? 'badge badge-light-success' :'badge badge-light-warning'\"\r\n class=\"mt-3 \">{{invoice?.status | titlecase}}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title d-flex justify-content-around \">\r\n <span class=\"cursor-pointer\" (click)=\"approveInvoice(invoice)\"\r\n *ngIf=\"invoice.status==='pending' && (gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\">\r\n\r\n <svg width=\"44\" height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_16478_43040)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <g clip-path=\"url(#clip0_16478_43040)\">\r\n <path\r\n d=\"M30.3346 20.2335V21.0002C30.3336 22.7972 29.7517 24.5458 28.6757 25.9851C27.5998 27.4244 26.0874 28.4773 24.3641 28.9868C22.6408 29.4963 20.799 29.4351 19.1134 28.8124C17.4277 28.1896 15.9885 27.0386 15.0104 25.5311C14.0324 24.0236 13.5678 22.2403 13.686 20.4471C13.8043 18.654 14.499 16.9472 15.6665 15.5811C16.8341 14.2151 18.412 13.263 20.1648 12.867C21.9176 12.471 23.7515 12.6522 25.393 13.3835M30.3346 14.3335L22.0013 22.6752L19.5013 20.1752\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_16478_43040\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_16478_43040\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_16478_43040\" result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_16478_43040\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(12 11)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"invoice.status==='approved' && (gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"44\" height=\"44\" viewBox=\"0 0 44 44\"\r\n fill=\"none\">\r\n <g filter=\"url(#filter0_d_16630_8062)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#EAECF0\" />\r\n <g clip-path=\"url(#clip0_16630_8062)\">\r\n <path\r\n d=\"M30.3346 20.2335V21.0002C30.3336 22.7972 29.7517 24.5458 28.6757 25.9851C27.5998 27.4244 26.0874 28.4773 24.3641 28.9868C22.6408 29.4963 20.799 29.4351 19.1134 28.8124C17.4277 28.1896 15.9885 27.0386 15.0104 25.5311C14.0324 24.0236 13.5678 22.2403 13.686 20.4471C13.8043 18.654 14.499 16.9472 15.6665 15.5811C16.8341 14.2151 18.412 13.263 20.1648 12.867C21.9176 12.471 23.7515 12.6522 25.393 13.3835M30.3346 14.3335L22.0013 22.6752L19.5013 20.1752\"\r\n stroke=\"#D0D5DD\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_16630_8062\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_16630_8062\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_16630_8062\" result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_16630_8062\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(12 11)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span *ngIf=\"(gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\" class=\"cursor-pointer\" (click)=\"regenerateInvoice(invoice)\"><svg width=\"44\"\r\n height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#33B5FF\" />\r\n <g filter=\"url(#filter0_d_15530_60395)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M31.1654 14.3333V19.3333M31.1654 19.3333H26.1654M31.1654 19.3333L27.2987 15.7C26.4031 14.8039 25.2951 14.1493 24.078 13.7973C22.861 13.4453 21.5746 13.4073 20.3389 13.6869C19.1033 13.9665 17.9585 14.5545 17.0116 15.3962C16.0646 16.2378 15.3463 17.3056 14.9237 18.5M12.832 27.6666V22.6666M12.832 22.6666H17.832M12.832 22.6666L16.6987 26.3C17.5943 27.1961 18.7023 27.8506 19.9194 28.2027C21.1364 28.5547 22.4228 28.5927 23.6585 28.3131C24.8941 28.0335 26.0389 27.4455 26.9858 26.6038C27.9328 25.7621 28.6511 24.6943 29.0737 23.5\"\r\n stroke=\"#344054\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_15530_60395\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_15530_60395\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_15530_60395\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"(gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\" class=\"cursor-pointer\" (click)=\"paymentstatusChange(invoice)\" >\r\n <svg width=\"44\"\r\n height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#33B5FF\" />\r\n <g filter=\"url(#filter0_d_15530_60395)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M14.9987 20.0007V18.334C14.9987 17.0079 15.5255 15.7361 16.4632 14.7985C17.4008 13.8608 18.6726 13.334 19.9987 13.334C21.3248 13.334 22.5966 13.8608 23.5342 14.7985C24.4719 15.7361 24.9987 17.0079 24.9987 18.334V20.0007M13.332 25.0007C13.332 25.4427 13.5076 25.8666 13.8202 26.1792C14.1327 26.4917 14.5567 26.6673 14.9987 26.6673C15.4407 26.6673 15.8646 26.4917 16.1772 26.1792C16.4898 25.8666 16.6654 25.4427 16.6654 25.0007C16.6654 24.5586 16.4898 24.1347 16.1772 23.8221C15.8646 23.5096 15.4407 23.334 14.9987 23.334C14.5567 23.334 14.1327 23.5096 13.8202 23.8221C13.5076 24.1347 13.332 24.5586 13.332 25.0007ZM23.332 25.0007C23.332 25.4427 23.5076 25.8666 23.8202 26.1792C24.1327 26.4917 24.5567 26.6673 24.9987 26.6673C25.4407 26.6673 25.8646 26.4917 26.1772 26.1792C26.4898 25.8666 26.6654 25.4427 26.6654 25.0007C26.6654 24.5586 26.4898 24.1347 26.1772 23.8221C25.8646 23.5096 25.4407 23.334 24.9987 23.334C24.5567 23.334 24.1327 23.5096 23.8202 23.8221C23.5076 24.1347 23.332 24.5586 23.332 25.0007Z\" stroke=\"#667085\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_15530_60395\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_15530_60395\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_15530_60395\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n \r\n </span>\r\n <!-- (click)=\"downloadInvoice(invoice)\" -->\r\n <span (click)=\"downloadInvoice(invoice)\" class=\"cursor-pointer\"><svg width=\"44\"\r\n height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#33B5FF\" />\r\n <g filter=\"url(#filter0_d_15530_60396)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M29.5 23.5V26.8333C29.5 27.2754 29.3244 27.6993 29.0118 28.0118C28.6993 28.3244 28.2754 28.5 27.8333 28.5H16.1667C15.7246 28.5 15.3007 28.3244 14.9882 28.0118C14.6756 27.6993 14.5 27.2754 14.5 26.8333V23.5M17.8333 19.3333L22 23.5M22 23.5L26.1667 19.3333M22 23.5V13.5\"\r\n stroke=\"#344054\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_15530_60396\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_15530_60396\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_15530_60396\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div *ngIf=\"!invoiceLoading && !invoiceNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"invoiceplans === 'credittransaction'\">\r\n <ng-container *ngIf=\"transactionLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"transactionNoData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n <div class=\"table-responsive\" *ngIf=\"!transactionLoading && !transactionNoData\">\r\n <table class=\"table accordion table bottom-border \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortDataTrans('clientName')\" >Client Name\r\n <svg [ngClass]=\"sortColumNametran === 'clientName' && sortBytran === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumNametran === 'clientName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortDataTrans('credit')\" >Balance Credits\r\n <svg [ngClass]=\"sortColumNametran === 'credit' && sortBytran === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumNametran === 'credit' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"(gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\" scope=\"col\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container>\r\n <tr *ngFor=\"let transaction of transactionList; let i = index\">\r\n <td>\r\n <div class=\"table-title table-title-primary d-flex \">\r\n <div class=\"symbol symbol-35px symbol-circle me-2\"><span\r\n class=\"symbol-label text-symbol\">\r\n <span *ngIf=\"!transaction?.logo\"\r\n class=\"symbol-label bg-light-primary text-symbol\">\r\n {{transaction?.clientName?.charAt(0)}} </span>\r\n <img *ngIf=\"transaction?.logo\" class=\"logo-img\" [src]=\"transaction?.logo\"\r\n alt=\"\">\r\n </span></div>\r\n <div><u> {{transaction?.clientName}}</u>\r\n </div>\r\n </div>\r\n \r\n </td>\r\n \r\n <td>\r\n <div class=\"table-title\">\r\n <span *ngIf=\"transaction?.currencyType === 'inr'\">₹</span>\r\n <span *ngIf=\"transaction?.currencyType === 'dollar'\">$</span>\r\n {{transaction?.credit}}\r\n </div>\r\n </td>\r\n <td *ngIf=\"(gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\">\r\n <div class=\"table-title position-relative\">\r\n <div class=\"position-relative cursor-pointer\" (click)=\"toggleDropdown(i)\">\r\n <div class=\"ms-5\">\r\n <span class=\"justify-content-end cursor-pointer\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_16522_57254)\">\r\n <path\r\n d=\"M19.9987 22.5006C21.3794 22.5006 22.4987 21.3814 22.4987 20.0007C22.4987 18.6199 21.3794 17.5007 19.9987 17.5007C18.618 17.5007 17.4987 18.6199 17.4987 20.0007C17.4987 21.3814 18.618 22.5006 19.9987 22.5006Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M26.1654 22.5006C26.0544 22.752 26.0213 23.0308 26.0704 23.3011C26.1194 23.5715 26.2482 23.8209 26.4404 24.0173L26.4904 24.0673C26.6453 24.2221 26.7683 24.4059 26.8521 24.6082C26.936 24.8106 26.9792 25.0275 26.9792 25.2465C26.9792 25.4655 26.936 25.6824 26.8521 25.8847C26.7683 26.087 26.6453 26.2709 26.4904 26.4256C26.3356 26.5806 26.1518 26.7035 25.9494 26.7874C25.7471 26.8713 25.5302 26.9145 25.3112 26.9145C25.0922 26.9145 24.8753 26.8713 24.673 26.7874C24.4706 26.7035 24.2868 26.5806 24.132 26.4256L24.082 26.3756C23.8856 26.1835 23.6362 26.0547 23.3659 26.0056C23.0955 25.9566 22.8167 25.9897 22.5654 26.1006C22.3189 26.2063 22.1087 26.3817 21.9606 26.6053C21.8126 26.8288 21.7331 27.0908 21.732 27.359V27.5006C21.732 27.9427 21.5564 28.3666 21.2439 28.6792C20.9313 28.9917 20.5074 29.1673 20.0654 29.1673C19.6233 29.1673 19.1994 28.9917 18.8869 28.6792C18.5743 28.3666 18.3987 27.9427 18.3987 27.5006V27.4256C18.3922 27.1498 18.303 26.8823 18.1425 26.6579C17.9819 26.4335 17.7576 26.2626 17.4987 26.1673C17.2474 26.0564 16.9685 26.0233 16.6982 26.0723C16.4279 26.1213 16.1784 26.2502 15.982 26.4423L15.932 26.4923C15.7772 26.6473 15.5934 26.7702 15.3911 26.8541C15.1888 26.938 14.9719 26.9811 14.7529 26.9811C14.5338 26.9811 14.317 26.938 14.1146 26.8541C13.9123 26.7702 13.7285 26.6473 13.5737 26.4923C13.4187 26.3375 13.2958 26.1537 13.2119 25.9514C13.1281 25.7491 13.0849 25.5322 13.0849 25.3131C13.0849 25.0941 13.1281 24.8772 13.2119 24.6749C13.2958 24.4726 13.4187 24.2888 13.5737 24.134L13.6237 24.084C13.8158 23.8876 13.9447 23.6381 13.9937 23.3678C14.0427 23.0975 14.0096 22.8187 13.8987 22.5673C13.7931 22.3208 13.6177 22.1106 13.3941 21.9626C13.1705 21.8145 12.9085 21.7351 12.6404 21.734H12.4987C12.0567 21.734 11.6327 21.5584 11.3202 21.2458C11.0076 20.9333 10.832 20.5093 10.832 20.0673C10.832 19.6253 11.0076 19.2014 11.3202 18.8888C11.6327 18.5762 12.0567 18.4007 12.4987 18.4007H12.5737C12.8495 18.3942 13.117 18.3049 13.3414 18.1444C13.5659 17.9839 13.7368 17.7596 13.832 17.5007C13.943 17.2493 13.9761 16.9705 13.927 16.7002C13.878 16.4298 13.7491 16.1804 13.557 15.984L13.507 15.934C13.3521 15.7792 13.2291 15.5954 13.1453 15.3931C13.0614 15.1907 13.0182 14.9738 13.0182 14.7548C13.0182 14.5358 13.0614 14.3189 13.1453 14.1166C13.2291 13.9143 13.3521 13.7304 13.507 13.5757C13.6618 13.4207 13.8456 13.2978 14.048 13.2139C14.2503 13.13 14.4672 13.0868 14.6862 13.0868C14.9052 13.0868 15.1221 13.13 15.3244 13.2139C15.5268 13.2978 15.7106 13.4207 15.8654 13.5757L15.9154 13.6257C16.1118 13.8178 16.3612 13.9466 16.6315 13.9957C16.9019 14.0447 17.1807 14.0116 17.432 13.9007H17.4987C17.7452 13.795 17.9554 13.6196 18.1034 13.396C18.2515 13.1725 18.331 12.9105 18.332 12.6423V12.5007C18.332 12.0586 18.5076 11.6347 18.8202 11.3221C19.1327 11.0096 19.5567 10.834 19.9987 10.834C20.4407 10.834 20.8646 11.0096 21.1772 11.3221C21.4898 11.6347 21.6654 12.0586 21.6654 12.5007V12.5757C21.6664 12.8438 21.7459 13.1058 21.894 13.3294C22.042 13.5529 22.2522 13.7283 22.4987 13.834C22.75 13.9449 23.0289 13.978 23.2992 13.929C23.5695 13.88 23.819 13.7511 24.0154 13.559L24.0654 13.509C24.2202 13.354 24.404 13.2311 24.6063 13.1472C24.8086 13.0633 25.0255 13.0202 25.2445 13.0202C25.4636 13.0202 25.6804 13.0633 25.8828 13.1472C26.0851 13.2311 26.2689 13.354 26.4237 13.509C26.5787 13.6638 26.7016 13.8476 26.7855 14.0499C26.8693 14.2522 26.9125 14.4691 26.9125 14.6882C26.9125 14.9072 26.8693 15.1241 26.7855 15.3264C26.7016 15.5287 26.5787 15.7125 26.4237 15.8673L26.3737 15.9173C26.1816 16.1137 26.0527 16.3632 26.0037 16.6335C25.9547 16.9038 25.9878 17.1826 26.0987 17.434V17.5007C26.2043 17.7471 26.3797 17.9573 26.6033 18.1054C26.8269 18.2535 27.0889 18.3329 27.357 18.334H27.4987C27.9407 18.334 28.3646 18.5096 28.6772 18.8221C28.9898 19.1347 29.1654 19.5586 29.1654 20.0007C29.1654 20.4427 28.9898 20.8666 28.6772 21.1792C28.3646 21.4917 27.9407 21.6673 27.4987 21.6673H27.4237C27.1555 21.6684 26.8936 21.7478 26.67 21.8959C26.4464 22.044 26.271 22.2542 26.1654 22.5006Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_16522_57254\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu position-absolute mt-2 bg-white shadow rounded\"\r\n [ngClass]=\"{'d-block': openDropdownIndex === i, 'd-none': openDropdownIndex !== i}\">\r\n <div class=\"dropdown-item\" *ngFor=\"let option of options\"\r\n (click)=\"selectOption(option,transaction?.clientId)\">\r\n {{ option.label }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n \r\n </tbody>\r\n </table>\r\n <div *ngIf=\"!transactionLoading && !transactionNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPagetran\" [currentPage]=\"currenttranPage\"\r\n [totalItems]=\"transactionItems\" [paginationSizes]=\"paginationSizestran\" [pageSize]=\"pagetransSize\"\r\n (pageChange)=\"onPageChangetran($event)\" (pageSizeChange)=\"onPageSizeChangeTran($event)\"></lib-pagination>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n</div>\r\n<!-- invoice table end -->\r\n<!-- invoice table start -->\r\n\r\n\r\n<!-- invoice table end -->","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoManageBillingComponent } from './components/tango-manage-billing/tango-manage-billing.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component:TangoManageBillingComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoManageBillingRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TangoManageBillingRoutingModule } from './tango-manage-billing-routing.module';\r\nimport { TangoManageBillingComponent } from './components/tango-manage-billing/tango-manage-billing.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CreditNoteComponent } from './components/tango-manage-billing/credit-note/credit-note.component';\r\nimport { OneTimeFeeComponent } from './components/tango-manage-billing/one-time-fee/one-time-fee.component';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { RequestConfirmationComponent } from './components/tango-manage-billing/request-confirmation/request-confirmation.component';\r\nimport { RegerateInvoiceComponent } from './components/tango-manage-billing/regerate-invoice/regerate-invoice.component';\r\nimport { PaymentStatuschangeComponent } from './components/tango-manage-billing/payment-statuschange/payment-statuschange.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoManageBillingComponent,\r\n CreditNoteComponent,\r\n OneTimeFeeComponent,\r\n RequestConfirmationComponent,\r\n RegerateInvoiceComponent,\r\n PaymentStatuschangeComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoManageBillingRoutingModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n NgbTooltipModule,\r\n CommonSharedModule\r\n]\r\n})\r\nexport class TangoManageBillingModule { }\r\n","/*\r\n * Public API Surface of tango-manage-brands\r\n */\r\n\r\nexport * from './lib/tango-manage-billing.module';\r\nexport * from './lib/components/tango-manage-billing/tango-manage-billing.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i2.BillingService","i4","i5","i3","i6","i7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tango-app-ui-manage-billing.mjs","sources":["../../../projects/tango-manage-billing/src/lib/components/services/billing.service.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/credit-note/credit-note.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/credit-note/credit-note.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/one-time-fee/one-time-fee.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/one-time-fee/one-time-fee.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/request-confirmation/request-confirmation.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/request-confirmation/request-confirmation.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/regerate-invoice/regerate-invoice.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/regerate-invoice/regerate-invoice.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/payment-statuschange/payment-statuschange.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/payment-statuschange/payment-statuschange.component.html","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/tango-manage-billing.component.ts","../../../projects/tango-manage-billing/src/lib/components/tango-manage-billing/tango-manage-billing.component.html","../../../projects/tango-manage-billing/src/lib/tango-manage-billing-routing.module.ts","../../../projects/tango-manage-billing/src/lib/tango-manage-billing.module.ts","../../../projects/tango-manage-billing/src/public-api.ts","../../../projects/tango-manage-billing/src/tango-app-ui-manage-billing.ts"],"sourcesContent":["import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable,OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil, catchError, map,throwError } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BillingService {\r\n invoiceApiUrl:string;\r\n paymentSubscriptionApiUrl:any;\r\n\r\n private reloadDataSubject = new BehaviorSubject<boolean>(false);\r\n reloadData$ = this.reloadDataSubject.asObservable();\r\n\r\n paymentinvoiceFormData = new BehaviorSubject<any>({value:null, type:null, form:null})\r\n billingApiUrl: any;\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.pipe(takeUntil(this.destroy$)).subscribe((env) => {\r\n if (env) {\r\n this.paymentSubscriptionApiUrl = env.paymentSubscriptionApiUrl;\r\n this.invoiceApiUrl = env.invoiceApiUrl\r\n this.billingApiUrl = env.billingApiUrl\r\n\r\n // this.clientId.next('11')\r\n }\r\n });\r\n // this.gs.selectedClient.pipe(takeUntil(this.destroy$)).subscribe((e:any)=>{\r\n // if(e){\r\n // console.log(e,'e');\r\n // }\r\n // })\r\n }\r\n triggerReload() {\r\n this.reloadDataSubject.next(true);\r\n }\r\n\r\n \r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n \r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'list'+ EXCEL_EXTENSION);\r\n }\r\n \r\n public saveAsTemplate(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n private readonly destroy$ = new Subject();\r\n\r\n// ngOnDestroy(): void {\r\n// this.destroy$.next(true);\r\n// this.destroy$.complete();\r\n// }\r\ninvoiceTableData( data:any):Observable<any>{\r\n return this.http.post(`${this.invoiceApiUrl}/clientInvoiceList`, data)\r\n}\r\nupdateClientFilters(filters:any){\r\n this.gs.dataRangeValue.next(filters);\r\n}\r\ninvoiceTableDataExport( data:any):Observable<any>{\r\n return this.http.post(`${this.invoiceApiUrl}/clientInvoiceList`, data, {responseType: 'arraybuffer'})\r\n}\r\nclientBillingInfo(params?: any): Observable<any> {\r\n return this.http\r\n .get(`${this.paymentSubscriptionApiUrl}/clientBillingSubscriptionInfo/${params}`)\r\n}\r\ninvoiceDownload(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/invoiceDownload/${data._id}`, data, {responseType: 'arraybuffer'})\r\n}\r\ninvoiceregerate(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/createInvoice/`, data)\r\n}\r\n\r\npaymentStatusChange(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/paymentStatusChange/`, data)\r\n}\r\ninvoiceSent(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/invoiceDownload/${data._id}`, data)\r\n}\r\ngetinvoice(id?: any): Observable<any> {\r\n return this.http.get(`${this.paymentSubscriptionApiUrl}/creditNotes/invoiceList/${id}`)\r\n}\r\ntransactionList(data?: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/creditTransactionlist`,data)\r\n}\r\ntransactionTableExport(data?: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/creditTransactionlist`,data,{responseType: 'arraybuffer'})\r\n}\r\ncreditnoteupdate( data:any):Observable<any>{\r\n return this.http.post(`${this.paymentSubscriptionApiUrl}/creditNotes`, data)\r\n}\r\napplyDiscount( data:any):Observable<any>{\r\n return this.http.post(`${this.invoiceApiUrl}/applyDiscount`, data)\r\n}\r\noneTimeFee( data:any,invoiceId:any):Observable<any>{\r\n return this.http.post(`${this.billingApiUrl}/onetime-payment/${invoiceId}`, data)\r\n}\r\npendingInvoices(data: any): Observable<any> {\r\n return this.http.post(`${this.invoiceApiUrl}/pendingInvoices`, data)\r\n}\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { left } from '@popperjs/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { BillingService } from '../../services/billing.service';\r\n\r\n@Component({\r\n selector: 'lib-credit-note',\r\n templateUrl: './credit-note.component.html',\r\n styleUrl: './credit-note.component.scss'\r\n})\r\nexport class CreditNoteComponent implements OnInit,OnDestroy {\r\n @Input() clientId:any;\r\n invoiceIssue: any;\r\n invoicetype: { name: string, value: string }[] = []; \r\n invoicetypedropDown:boolean = false;\r\n creditnoteform: FormGroup;\r\n amount: number = 0;\r\n discount: any;\r\n revisedAmount: number = 0\r\n moreThanTenPercent:boolean = false\r\n currency: string = '';\r\n\r\n@Input() transactionvalue: string = \"\"\r\n\r\n @Output() passEntry: EventEmitter<any> = new EventEmitter();\r\n invoiceitem: any;\r\n\r\n private readonly destroy$ = new Subject();\r\n \r\n constructor(\r\n public activeModal: NgbActiveModal,private BillingService: BillingService, private changeDetector: ChangeDetectorRef,private fb: FormBuilder,private toast:ToastService\r\n ) { \r\n }\r\n\r\n ngOnInit(): void {\r\n this.creditnote();\r\n this.creditnoteform = this.fb.group({\r\n invoicetype: ['', Validators.required],\r\n amount: ['', Validators.required], \r\n revisedAmount:['', Validators.required] ,\r\n discount: ['',[ Validators.required, Validators.max(10)]],\r\n });\r\n this.creditnoteform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) { \r\n this.amount = this.creditnoteform.get('amount')?.value;\r\n console.log(this.amount)\r\n if(this.amount){\r\n this.discount = ((this.amount - e) / this.amount * 100).toFixed(2);\r\n this.revisedAmount=e;\r\n if(this.discount>10 || isNaN(e) || this.discount < 0 || e < 0){\r\n this.moreThanTenPercent = true; \r\n }\r\n else {\r\n this.moreThanTenPercent = false;\r\n }\r\n this.creditnoteform.get('discount')?.setValue(this.discount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n this.toast.getErrorToast(\"Please select one Invoice\")\r\n }\r\n \r\n }else{\r\n let emptdiscount = ''\r\n this.creditnoteform.get('discount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = false; \r\n } \r\n })\r\n \r\n this.creditnoteform.get('discount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) {\r\n this.amount = this.creditnoteform.get('amount')?.value;\r\n this.revisedAmount = this.amount * (1 - e / 100);\r\n this.revisedAmount = parseInt(this.revisedAmount.toFixed())\r\n this.discount=e;\r\n if (this.discount>10 || isNaN(e) || e < 0 || this.revisedAmount < 0){\r\n this.moreThanTenPercent = true; \r\n }\r\n else {\r\n this.moreThanTenPercent = false;\r\n }\r\n this.creditnoteform.get('revisedAmount')?.setValue(this.revisedAmount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.creditnoteform.get('revisedAmount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = false; \r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n\r\n })\r\n }\r\n get revisedamount() { return this.creditnoteform.get('revisedAmount'); }\r\n get discounts() { return this.creditnoteform.get('discount'); }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n \r\n creditnote(){\r\n let payload:any={\r\n clientId:this.clientId\r\n }\r\n this.BillingService.pendingInvoices(payload).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.invoiceitem = res?.data;\r\n this.invoiceIssue = this.invoiceitem[0]?.invoice;\r\n const amount = this.invoiceitem[0]?.amount || \"\";\r\n this.currency = this.invoiceitem[0]?.currency || \"\";\r\n this.creditnoteform.patchValue({\r\n amount: amount,\r\n discount:this.invoiceitem?.discount\r\n });\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n invoiceItem(invoicevalue:any){\r\n this.creditnoteform.patchValue({\r\n amount: invoicevalue.amount,\r\n ...(invoicevalue?.discount ? {discount:invoicevalue?.discount} : {discount:''}),\r\n ...(invoicevalue?.revisedAmount ? {revisedAmount:invoicevalue?.revisedAmount} : {revisedAmount:''})\r\n });\r\n this.invoiceIssue = invoicevalue.invoice;\r\n this.creditnoteform.get('invoicetype')?.setValue(this.invoiceIssue)\r\n this.invoicetypedropDown = false;\r\n }\r\n invoicetypeDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this.invoicetypedropDown = !this.invoicetypedropDown;\r\n this.revisedAmount \r\n }\r\n successcredit() {\r\n const requestData = {\r\n invoice:this.invoiceIssue,\r\n revisedAmount:this.revisedAmount,\r\n discount:this.discount\r\n };\r\n this.BillingService.applyDiscount(requestData).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModal.close('successcredit');\r\n // this.toast.getPrimaryToast(res.message);\r\n this.changeDetector.detectChanges()\r\n }},\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n })\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n this.invoicetypedropDown = false;\r\n }\r\n}\r\n\r\n","<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <!-- <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div> -->\r\n <div class=\"heading mt-4 ms-1\">Add Credit Note</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"creditnoteform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\"\r\n (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"amount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Total Amount</label>\r\n <div class=\"input-group\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">₹</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input formControlName=\"amount\" type=\"text\" readonly class=\"ng-pristine ng-invalid ng-touched amount\"\r\n style=\"text-transform: capitalize;\"></div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Revised Amount</label>\r\n <div class=\"input-group dropselect\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">₹</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span><input type=\"text\" (keypress)=\"omit_special_char($event)\" formControlName=\"revisedAmount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\"\r\n style=\"text-transform: capitalize;\">\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7513_36689)\">\r\n <path d=\"M7.99967 5.33301V7.99967M7.99967 10.6663H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7513_36689\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can’t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can’t be revised from total amount</span>\r\n </div>\r\n <div for=\"discount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Discount</label>\r\n <div class=\"input-group\"> <input type=\"text\" (keypress)=\"omit_special_char($event)\" formControlName=\"discount\" class=\"amount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\" >\r\n <span class=\"icon\" *ngIf=\"!moreThanTenPercent\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#98A2B3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n \r\n </div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">In percentage</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">In percentage</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button [disabled]=\"moreThanTenPercent\" type=\"button\" (click)=\"successcredit()\" tabindex=\"0\" \r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport Swal from 'sweetalert2';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { left } from '@popperjs/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { BillingService } from '../../services/billing.service';\r\n@Component({\r\n selector: 'app-one-time-fee',\r\n templateUrl: './one-time-fee.component.html',\r\n styleUrl: './one-time-fee.component.scss'\r\n})\r\nexport class OneTimeFeeComponent implements OnInit,OnDestroy {\r\n @Input() clientId:any;\r\n invoiceIssue: any;\r\n invoicetype: { name: string, value: string }[] = []; \r\n invoicetypedropDown:boolean = false;\r\n onetimefeeform: FormGroup;\r\n amount: number = 0;\r\n discount: any;\r\n revisedAmount: number = 0\r\n moreThanTenPercent:boolean = true;\r\n currency: string = '';\r\n totalAmount: number = 0;\r\n\r\n@Input() transactionvalue: string = \"\"\r\n\r\n @Output() passEntry: EventEmitter<any> = new EventEmitter();\r\n invoiceitem: any;\r\n\r\n private readonly destroy$ = new Subject();\r\n \r\n constructor(\r\n public activeModal: NgbActiveModal,private BillingService: BillingService, private changeDetector: ChangeDetectorRef,private fb: FormBuilder,private toast:ToastService\r\n ) { \r\n }\r\n\r\n ngOnInit(): void {\r\n this.creditnote();\r\n this.onetimefeeform = this.fb.group({\r\n invoicetype: ['', Validators.required],\r\n amount: ['', Validators.required], \r\n revisedAmount:['', Validators.required] ,\r\n discount: ['',[ Validators.required, Validators.max(10)]],\r\n });\r\n this.onetimefeeform.get('revisedAmount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) { \r\n this.amount = this.onetimefeeform.get('amount')?.value;\r\n this.discount = ((this.amount - e) / this.amount * 100).toFixed(2);\r\n this.revisedAmount=e;\r\n if(this.discount>10 || isNaN(e) || this.discount < 0 || e < 0){\r\n this.moreThanTenPercent = false; \r\n }\r\n else {\r\n this.moreThanTenPercent = true;\r\n }\r\n this.onetimefeeform.get('discount')?.setValue(this.discount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.onetimefeeform.get('discount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = true; \r\n } \r\n })\r\n \r\n this.onetimefeeform.get('discount')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {\r\n if(e) {\r\n this.amount = this.onetimefeeform.get('amount')?.value;\r\n this.revisedAmount = this.amount * (1 - e / 100);\r\n this.revisedAmount = parseInt(this.revisedAmount.toFixed())\r\n this.discount=e;\r\n if (this.discount>10 || isNaN(e) || e < 0 || this.revisedAmount < 0){\r\n this.moreThanTenPercent = false; \r\n }\r\n else {\r\n this.moreThanTenPercent = true;\r\n }\r\n this.onetimefeeform.get('revisedAmount')?.setValue(this.revisedAmount, {\r\n emitEvent\r\n : false });\r\n }else{\r\n let emptdiscount = ''\r\n this.onetimefeeform.get('revisedAmount')?.setValue(emptdiscount, {\r\n emitEvent\r\n : false });\r\n this.moreThanTenPercent = true; \r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n\r\n })\r\n this.onetimefeeform.valueChanges.subscribe(() => this.calculateTotal());\r\n }\r\n get revisedamount() { return this.onetimefeeform.get('revisedAmount'); }\r\n get discounts() { return this.onetimefeeform.get('discount'); }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n \r\n creditnote(){ \r\n let payload:any={\r\n clientId:this.clientId\r\n }\r\n this.BillingService.pendingInvoices(payload).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.invoiceitem = res?.data;\r\n this.invoiceIssue = this.invoiceitem[0]?.invoice;\r\n const amount = this.invoiceitem[0]?.amount || \"\";\r\n this.currency = this.invoiceitem[0]?.currency || \"\";\r\n this.onetimefeeform.patchValue({\r\n amount: amount,\r\n discount:this.invoiceitem?.discount\r\n });\r\n this.changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n invoiceItem(invoicevalue:any){\r\n this.currency = invoicevalue?.currency || \"\";\r\n this.onetimefeeform.patchValue({\r\n amount: invoicevalue.amount,\r\n ...(invoicevalue?.discount ? {discount:invoicevalue?.discount} : {discount:''}),\r\n ...(invoicevalue?.revisedAmount ? {revisedAmount:invoicevalue?.revisedAmount} : {revisedAmount:''})\r\n });\r\n this.invoiceIssue = invoicevalue.invoice;\r\n this.onetimefeeform.get('invoicetype')?.setValue(this.invoiceIssue)\r\n this.invoicetypedropDown = false;\r\n }\r\n invoicetypeDropdown(event:MouseEvent){\r\n event.stopPropagation();\r\n this.invoicetypedropDown = !this.invoicetypedropDown;\r\n this.revisedAmount \r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n successcredit() {\r\n const requestData = {\r\n oneTimeFee:this.revisedAmount\r\n };\r\n this.BillingService.oneTimeFee(requestData,this.invoiceIssue).pipe(takeUntil(this.destroy$)).subscribe ((res: any) => {\r\n if (res && res.code == 200) {\r\n this.activeModal.close('successcredit');\r\n // this.toast.getPrimaryToast(res.message);\r\n this.changeDetector.detectChanges()\r\n }},\r\n (error) => {\r\n console.error('Error submitting update:', error);\r\n })\r\n }\r\n \r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n this.invoicetypedropDown = false;\r\n }\r\n calculateTotal(): void {\r\n const amount = parseFloat(this.onetimefeeform.get('amount')?.value || '0');\r\n const revisedAmount = parseFloat(this.onetimefeeform.get('revisedAmount')?.value || '0'); \r\n this.totalAmount = parseFloat((amount + revisedAmount).toFixed(2));\r\n }\r\n}\r\n","<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <!-- <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div> -->\r\n <div class=\"heading mt-4 ms-1\">Add One Time Fee</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"onetimefeeform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\" (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"amount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Current Invoice Amount</label>\r\n <div class=\"input-group\">\r\n <!-- <span class=\"dollar-sign amount\">₹</span> -->\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">₹</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input formControlName=\"amount\" type=\"text\"\r\n readonly class=\"ng-pristine ng-invalid ng-touched amount\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\">One Time Fee (Installation) </label>\r\n <div class=\"input-group dropselect\">\r\n <span *ngIf=\"currency === 'inr'\" class=\"dollar-sign\">₹</span><span\r\n *ngIf=\"currency === 'dollar'\" class=\"dollar-sign\">$</span>\r\n <input type=\"text\" formControlName=\"revisedAmount\" (keypress)=\"omit_special_char($event)\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n </div>\r\n <!-- <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can’t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can’t be revised from total amount</span> -->\r\n </div>\r\n <div class=\"d-flex flex-stack mt-3\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">{{currency === 'inr' ? '₹' : '$'}}{{totalAmount.toFixed(2)}}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"d-flex flex-stack\">\r\n <div class=\"selectedinvoicetext me-2\">Selected Invoice Amount + One Time Fee</div>\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"selectedinvoicevalue\">₹23,000</span>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" (click)=\"successcredit()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'lib-request-confirmation',\r\n templateUrl: './request-confirmation.component.html',\r\n styleUrl: './request-confirmation.component.scss'\r\n})\r\nexport class RequestConfirmationComponent {\r\n\r\n constructor(public activeModal:NgbActiveModal){}\r\n\r\n}\r\n","<span class=\"mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24V28M27.9998 32H28.0098M26.2898 18.86L17.8198 33C17.6451 33.3024 17.5527 33.6453 17.5518 33.9945C17.5508 34.3437 17.6413 34.6871 17.8142 34.9905C17.9871 35.2939 18.2365 35.5467 18.5375 35.7238C18.8385 35.9009 19.1806 35.9961 19.5298 36H36.4698C36.819 35.9961 37.1611 35.9009 37.4621 35.7238C37.7631 35.5467 38.0124 35.2939 38.1854 34.9905C38.3583 34.6871 38.4488 34.3437 38.4478 33.9945C38.4468 33.6453 38.3544 33.3024 38.1798 33L29.7098 18.86C29.5315 18.5661 29.2805 18.3231 28.981 18.1544C28.6814 17.9858 28.3435 17.8972 27.9998 17.8972C27.656 17.8972 27.3181 17.9858 27.0186 18.1544C26.7191 18.3231 26.468 18.5661 26.2898 18.86Z\"\r\n stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</span>\r\n\r\n<span class=\"mb-3 title\">\r\n Approve Invoice?\r\n</span>\r\n\r\n<span class=\"mb-5 description\">\r\n Are you sure you want to approve this invoice? This action cannot be undone.\"\r\n</span>\r\n\r\n<div class=\"row\">\r\n <div class=\"col-6\" >\r\n <button (click)=\"activeModal.close('No')\" class=\"btn btn-outline w-100\">No</button>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <button (click)=\"activeModal.close('Yes')\" class=\"btn btn-primary w-100\" style=\"padding: 8.5px;\">Yes</button>\r\n </div>\r\n\r\n</div>","import { Component } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n@Component({\r\n selector: 'lib-regerate-invoice',\r\n templateUrl: './regerate-invoice.component.html',\r\n styleUrl: './regerate-invoice.component.scss'\r\n})\r\nexport class RegerateInvoiceComponent {\r\n constructor(public activeModal:NgbActiveModal){}\r\n}\r\n","<span class=\"mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24V28M27.9998 32H28.0098M26.2898 18.86L17.8198 33C17.6451 33.3024 17.5527 33.6453 17.5518 33.9945C17.5508 34.3437 17.6413 34.6871 17.8142 34.9905C17.9871 35.2939 18.2365 35.5467 18.5375 35.7238C18.8385 35.9009 19.1806 35.9961 19.5298 36H36.4698C36.819 35.9961 37.1611 35.9009 37.4621 35.7238C37.7631 35.5467 38.0124 35.2939 38.1854 34.9905C38.3583 34.6871 38.4488 34.3437 38.4478 33.9945C38.4468 33.6453 38.3544 33.3024 38.1798 33L29.7098 18.86C29.5315 18.5661 29.2805 18.3231 28.981 18.1544C28.6814 17.9858 28.3435 17.8972 27.9998 17.8972C27.656 17.8972 27.3181 17.9858 27.0186 18.1544C26.7191 18.3231 26.468 18.5661 26.2898 18.86Z\"\r\n stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</span>\r\n\r\n<span class=\"mb-3 title\">\r\n Regenerate Invoice?\r\n</span>\r\n\r\n<span class=\"mb-5 description\">\r\n Are you sure you want to regenerate this invoice? The existing invoice will be replaced.\r\n</span>\r\n\r\n<div class=\"row\">\r\n <div class=\"col-6\" >\r\n <button (click)=\"activeModal.close('No')\" class=\"btn btn-outline w-100\">No</button>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <button (click)=\"activeModal.close('Yes')\" class=\"btn btn-primary w-100\" style=\"padding: 8.5px;\">Yes</button>\r\n </div>\r\n\r\n</div>","import { Component } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n@Component({\r\n selector: 'lib-payment-statuschange',\r\n templateUrl: './payment-statuschange.component.html',\r\n styleUrl: './payment-statuschange.component.scss'\r\n})\r\nexport class PaymentStatuschangeComponent {\r\n constructor(public activeModal:NgbActiveModal){\r\n \r\n }\r\n}\r\n","<span class=\"mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24V28M27.9998 32H28.0098M26.2898 18.86L17.8198 33C17.6451 33.3024 17.5527 33.6453 17.5518 33.9945C17.5508 34.3437 17.6413 34.6871 17.8142 34.9905C17.9871 35.2939 18.2365 35.5467 18.5375 35.7238C18.8385 35.9009 19.1806 35.9961 19.5298 36H36.4698C36.819 35.9961 37.1611 35.9009 37.4621 35.7238C37.7631 35.5467 38.0124 35.2939 38.1854 34.9905C38.3583 34.6871 38.4488 34.3437 38.4478 33.9945C38.4468 33.6453 38.3544 33.3024 38.1798 33L29.7098 18.86C29.5315 18.5661 29.2805 18.3231 28.981 18.1544C28.6814 17.9858 28.3435 17.8972 27.9998 17.8972C27.656 17.8972 27.3181 17.9858 27.0186 18.1544C26.7191 18.3231 26.468 18.5661 26.2898 18.86Z\"\r\n stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</span>\r\n\r\n<span class=\"mb-3 title\">\r\n Payment Status Change?\r\n</span>\r\n\r\n<span class=\"mb-5 description\">\r\n Are you sure you want to change this invoice payment Status? \r\n</span>\r\n\r\n<div class=\"row\">\r\n <div class=\"col-6\" >\r\n <button (click)=\"activeModal.close('No')\" class=\"btn btn-outline w-100\">No</button>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <button (click)=\"activeModal.close('Yes')\" class=\"btn btn-primary w-100\" style=\"padding: 8.5px;\">Yes</button>\r\n </div>\r\n\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, HostListener } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n// import { PaynowComponent } from './paynow/paynow.component';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BillingService } from '../services/billing.service';\r\nimport { CreditNoteComponent } from './credit-note/credit-note.component';\r\nimport { OneTimeFeeComponent } from './one-time-fee/one-time-fee.component';\r\nimport { RequestConfirmationComponent } from './request-confirmation/request-confirmation.component';\r\nimport { RegerateInvoiceComponent } from './regerate-invoice/regerate-invoice.component';\r\nimport { Router } from '@angular/router';\r\nimport { PaymentStatuschangeComponent } from './payment-statuschange/payment-statuschange.component';\r\n\r\n@Component({\r\n selector: 'lib-tango-manage-billing',\r\n templateUrl: './tango-manage-billing.component.html',\r\n styleUrl: './tango-manage-billing.component.scss'\r\n})\r\n\r\nexport class TangoManageBillingComponent {\r\n invoicetransaction: boolean = true;\r\n invoiceplans: string = 'invoice';\r\n len: any;\r\n searchDisabled: any = false;\r\n pageSize = 10;\r\n currentPage = 1;\r\n currenttranPage = 1;\r\n pagetransSize=10;\r\n DurationFilter = 'current';\r\n paymentFilter: any = [];\r\n ApprovalFilter: any = [];\r\n\r\n clientId: string = '';\r\n sortColumName: string = \"clientName\";\r\n sortBy: number = -1;\r\n dynamicData: any = {\r\n limit: 10,\r\n offset: 1,\r\n clientId: \"\",\r\n searchValue: \"\",\r\n sortColumn: '',\r\n sortBy: '',\r\n product: [],\r\n store: [],\r\n location: []\r\n }\r\n userType: any = '';\r\n invoiceList: any = [];\r\n invoiceLoading: boolean = true;\r\n invoiceNoData: boolean = false;\r\n transactionNoData: boolean = false;\r\n transactionLoading: boolean = true;\r\n\r\n totalItems = 0;\r\n clientinfo: any;\r\n itemsPerPage = 10;\r\n paginationSizes = [10, 20, 30];\r\n itemsPerPagetran = 10;\r\n paginationSizestran = [10, 20, 30];\r\n expandedRowIndex: number | null = null;\r\n producttraildropDown: boolean = false;\r\n\r\n options: { label: string }[] = [\r\n { label: 'Credit Note' },\r\n { label: 'Add one time fee' }\r\n ];\r\n isDropdownOpen = false;\r\n dropdownId: number;\r\n activeDropdownId: number | null = null;\r\n paymentStatus: string;\r\n invoice: { paymentStatus: string } = { paymentStatus: 'unpaid' };\r\n openDropdownIndex: number | null = null;\r\n\r\n private readonly destroy$ = new Subject();\r\n transactionList: any;\r\n transactionItems: any;\r\n sortColumNametran: any = 'clientName';\r\n sortBytran: any = 1;\r\n\r\n invoiceFilterObject = [\r\n { Description: 'Duration', type: 'single', Issues: [{ id: 'current', text: \"Current Month\" }, { id: 'prev', text: \"Previous Month\" }, { id: 'last', text: \"Last 3 Months\" }] },\r\n { Description: 'Payment Status', type: 'multi', Issues: [{ id: 'paid', text: \"Paid\" }, { id: 'unpaid', text: \"Unpaid\" }] },\r\n { Description: 'Approval Status', type: 'multi', Issues: [{ id: 'approved', text: \"Approved\" }, { id: 'pending', text: \"Pending\" }] },\r\n ];\r\n\r\n constructor(\r\n private fb: FormBuilder, private BillingService: BillingService, private changeDetector: ChangeDetectorRef, private toast: ToastService,private router:Router, public gs: GlobalStateService, private elementRef: ElementRef, public modalService: NgbModal,private pageInfo:PageInfoService\r\n ) {\r\n this.BillingService.paymentinvoiceFormData.pipe(takeUntil(this.destroy$)).subscribe((res) => {\r\n if (res) {\r\n if (res.type === 'input' && res.form === 'payment-invoice') {\r\n // this.getpaymentinvoice(res.value)\r\n }\r\n }\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.setPageData()\r\n this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if (data) {\r\n this.clientId = data.clients;\r\n this.dynamicData.clientId = this.clientId\r\n this.gs.userAccess.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if (data) {\r\n this.userType = data.userType;\r\n if (data?.userType == 'tango') {\r\n this.transactionLoading = true\r\n this.invoiceTableData();\r\n this.creditTransactionlist()\r\n\r\n }\r\n }\r\n })\r\n }\r\n });\r\n\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle('Billing')\r\n this.pageInfo.setDescription('Edit and configure billing details')\r\n this.pageInfo.setBreadcrumbs([\r\n { title: 'Manage', path: '/manage', isActive: false, isSeparator: false },\r\n { title: 'Manage', path: '/manage', isActive: false, isSeparator: true },\r\n ])\r\n }\r\n\r\n\r\n\r\n\r\n selectInvoicePlan(invoiceplans: string) {\r\n this.invoiceplans = invoiceplans;\r\n this.creditTransactionlist()\r\n\r\n }\r\n invoiceTableData() {\r\n this.searchDisabled = false;\r\n this.invoiceLoading = true;\r\n this.invoiceNoData = true;\r\n let filters: Record<string, any> = {\r\n limit: this.pageSize,\r\n offset: this.currentPage,\r\n filter: this.DurationFilter,\r\n paymentStatus: this.paymentFilter,\r\n status: this.ApprovalFilter,\r\n clientId: this.clientId,\r\n searchValue: this.len,\r\n export: false,\r\n sortColumName: this.sortColumName,\r\n sortBy: this.sortBy\r\n }\r\n this.BillingService.invoiceTableData(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n\r\n next: (e) => {\r\n\r\n if (e?.data?.count) {\r\n this.invoiceLoading = false;\r\n this.invoiceNoData = false;\r\n this.invoiceList = e.data?.data\r\n this.totalItems = e.data?.count\r\n this.changeDetector.detectChanges()\r\n } else {\r\n this.invoiceLoading = false;\r\n this.invoiceNoData = true;\r\n this.searchDisabled = true;\r\n if (this.len?.length) {\r\n this.searchDisabled = false\r\n }\r\n this.invoiceList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n\r\n },\r\n error: (e) => {\r\n this.invoiceList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n })\r\n }\r\n dataValue(data: any) {\r\n this.router.navigate([\"/manage/stores\"])\r\n const datavalue: any = JSON.parse(\r\n localStorage.getItem(\"header-filters\") || \"{}\"\r\n );\r\n datavalue.client = data.clientId.toString();\r\n datavalue.clientName = data.clientName\r\n this.changeDetector.detectChanges()\r\n this.BillingService.updateClientFilters(data);\r\n localStorage.setItem('header-filters', JSON.stringify(datavalue))\r\n this.gs.dataRangeValue.next(datavalue)\r\n}\r\n\r\n creditTransactionlist() {\r\n this.transactionLoading = true;\r\n this.transactionNoData = true;\r\n this.searchDisabled = false;\r\n let filters: Record<string, any> = {\r\n limit: this.pagetransSize,\r\n offset: this.currenttranPage,\r\n clientId: this.clientId,\r\n searchValue: this.len,\r\n export: false,\r\n sortColumName: this.sortColumNametran,\r\n sortBy: this.sortBytran\r\n }\r\n this.BillingService.transactionList(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n\r\n next: (e) => {\r\n\r\n if (e?.data?.count) {\r\n\r\n this.transactionLoading = false;\r\n this.transactionNoData = false;\r\n this.transactionList = e.data?.data\r\n this.transactionItems = e.data?.count\r\n this.changeDetector.detectChanges()\r\n } else {\r\n this.transactionLoading = false;\r\n this.transactionNoData = true;\r\n this.searchDisabled = true;\r\n if (this.len?.length) {\r\n this.searchDisabled = false\r\n }\r\n this.transactionList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n\r\n },\r\n error: (e) => {\r\n this.transactionList = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n })\r\n }\r\n onExport() {\r\n this.currentPage = 1;\r\n let filters: Record<string, any> = {\r\n filter: this.DurationFilter,\r\n paymentStatus: this.paymentFilter,\r\n status: this.ApprovalFilter,\r\n clientId: this.clientId,\r\n searchValue: this.len,\r\n export: true,\r\n sortColumName: this.sortColumName,\r\n sortBy: this.sortBy\r\n }\r\n this.BillingService.invoiceTableDataExport(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.BillingService.saveAsExcelFile(res, 'invoice');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n })\r\n }\r\n onExportTransaction() {\r\n this.currentPage = 1;\r\n let filters: Record<string, any> = {\r\n filter: this.DurationFilter,\r\n clientId: this.clientId,\r\n searchValue: this.len,\r\n export: true\r\n }\r\n this.BillingService.transactionTableExport(filters).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.BillingService.saveAsExcelFile(res, 'Transaction');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n })\r\n }\r\n regenerateInvoice(data: any) {\r\n const modalRef = this.modalService.open(RegerateInvoiceComponent, {\r\n centered: true, size: 'md', scrollable: true,\r\n });\r\n modalRef.result.then((result: any) => {\r\n if (result) {\r\n if (result === 'Yes') {\r\n let payload = {\r\n invoiceId: data.invoice,\r\n allClient: false\r\n }\r\n this.BillingService.invoiceregerate(payload).subscribe((res: any) => {\r\n if (res) {\r\n this.toast.getPrimaryToast('The invoice has been successfully regenerated.');\r\n this.invoiceTableData()\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n paymentstatusChange(data: any) {\r\n const modalRef = this.modalService.open(PaymentStatuschangeComponent, {\r\n centered: true, size: 'md', scrollable: true,\r\n });\r\n modalRef.result.then((result: any) => {\r\n if (result) {\r\n if (result === 'Yes') {\r\n console.log(data.paymentStatus)\r\n let payload = {\r\n invoiceId: data.invoice,\r\n status:data.paymentStatus==\"paid\"?\"unpaid\":\"paid\"\r\n }\r\n this.BillingService.paymentStatusChange(payload).subscribe((res: any) => {\r\n if (res) {\r\n this.toast.getPrimaryToast(res.message);\r\n this.invoiceTableData()\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n approveInvoice(data: any) {\r\n const modalRef = this.modalService.open(RequestConfirmationComponent, {\r\n centered: true, size: 'md', scrollable: true,\r\n });\r\n modalRef.result.then((result: any) => {\r\n if (result) {\r\n if (result === 'Yes') {\r\n data.sendInvoice = true\r\n data.status = 'approved'\r\n this.BillingService.invoiceDownload(data).subscribe((res: any) => {\r\n if (res) {\r\n this.toast.getPrimaryToast('The invoice has been successfully approved');\r\n this.invoiceTableData()\r\n\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.pageSize = parseInt(pageSize)\r\n this.invoiceTableData()\r\n \r\n }\r\n onPageSizeChangeTran(pageSize: any) {\r\n this.currenttranPage = 1;\r\n this.pagetransSize = parseInt(pageSize) \r\n this.creditTransactionlist()\r\n }\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = parseInt(pageOffset)\r\n this.invoiceTableData()\r\n \r\n }\r\n onPageChangetran(pageOffset: any) {\r\n this.currenttranPage = parseInt(pageOffset)\r\n this.creditTransactionlist()\r\n }\r\n invoiceFilter() {\r\n this.currentPage = 1\r\n this.invoiceTableData()\r\n this.creditTransactionlist()\r\n\r\n }\r\n\r\n sortData(column: any) {\r\n this.sortColumName = column\r\n this.sortBy *= -1;\r\n this.changeDetector.detectChanges();\r\n this.invoiceTableData()\r\n }\r\n sortDataTrans(column: any) {\r\n if (this.sortColumNametran === column) {\r\n this.sortBytran = this.sortBytran === 1 ? -1 : 1;\r\n } else {\r\n this.sortColumNametran = column;\r\n this.sortBytran = 1;\r\n }\r\n this.changeDetector.detectChanges();\r\n this.creditTransactionlist()\r\n }\r\n searchField() {\r\n this.invoiceTableData()\r\n this.creditTransactionlist()\r\n }\r\n\r\n showProduct(data: string) {\r\n return data.slice(2 - data.length)\r\n }\r\n clientBillingInfo(id: any) {\r\n this.BillingService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n this.clientinfo = res.data;\r\n this.changeDetector.detectChanges();\r\n }\r\n })\r\n\r\n }\r\n downloadInvoice(data: any) {\r\n const req = {...data}\r\n req.clientId = [data.clientId]\r\n this.BillingService.invoiceDownload(req).subscribe((res: any) => {\r\n if (res) {\r\n const blob = new Blob([res], { type: 'application/pdf' });\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.target = '_blank';\r\n link.click();\r\n }\r\n\r\n })\r\n }\r\n toggleDropdown(index: number): void {\r\n if (this.openDropdownIndex === index) {\r\n this.openDropdownIndex = null;\r\n } else {\r\n this.openDropdownIndex = index;\r\n }\r\n }\r\n\r\n\r\n selectOption(option: any, clientId: any): void {\r\n this.openDropdownIndex = null;\r\n this.isDropdownOpen = false;\r\n if (option.label === 'Credit Note') {\r\n this.creditnote(clientId);\r\n } else if (option.label === 'Add one time fee') {\r\n this.onetimefee(clientId);\r\n }\r\n }\r\n\r\n creditnote(clientId: any) {\r\n const modalRef = this.modalService.open(CreditNoteComponent, {\r\n centered: true,\r\n size: 'md',\r\n scrollable: true\r\n });\r\n modalRef.componentInstance.clientId = clientId;\r\n modalRef.result.then((result) => {\r\n if (result === 'successcredit') {\r\n this.toast.getPrimaryToast('The invoice has been sent to the respective email IDs with the discount.');\r\n }\r\n });\r\n }\r\n onetimefee(clientId: any) {\r\n const modalRef = this.modalService.open(OneTimeFeeComponent, {\r\n centered: true,\r\n size: 'md',\r\n scrollable: true\r\n });\r\n modalRef.componentInstance.clientId = clientId;\r\n modalRef.result.then((result) => {\r\n if (result == 'successcredit') {\r\n this.toast.getPrimaryToast('One time fee added successfully.');\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n // paynow() {\r\n // const modalRef = this.modalService.open(PaynowComponent, {\r\n // centered: true,\r\n // size: 'lg',\r\n // scrollable: true\r\n // });\r\n // modalRef.componentInstance.clientId = this.clientId;\r\n // modalRef.result.then((result) => {\r\n // // if (result == 'successcredit') {\r\n // // this.toast.getPrimaryToast('The invoice has been sent to the respective email IDs with the discount.');\r\n // // // this.invoiceTableData();\r\n // // }\r\n // });\r\n // }\r\n toggleRow(index: number): void {\r\n this.expandedRowIndex = this.expandedRowIndex === index ? null : index;\r\n }\r\n\r\n applyInvoiceFilters(event: any) {\r\n if (event?.length) {\r\n console.log(event)\r\n event.forEach((element: any) => {\r\n if (element.Description === \"Duration\") {\r\n this.DurationFilter = element.Issues.id;\r\n }\r\n if (element.Description === \"Payment Status\") {\r\n if(element.Issues.length>0){\r\n element.Issues.forEach((data: any) => {\r\n this.paymentFilter.push(data.id);\r\n })\r\n }else{\r\n this.paymentFilter = []\r\n }\r\n \r\n }\r\n if (element.Description === \"Approval Status\") {\r\n if(element.Issues.length>0){\r\n element.Issues.forEach((data: any) => {\r\n this.ApprovalFilter.push(data.id);\r\n })\r\n }else{\r\n this.ApprovalFilter = []\r\n }\r\n }\r\n })\r\n }\r\n this.currentPage = 1\r\n this.invoiceTableData()\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickout(event: Event): void {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.table-title')) {\r\n this.openDropdownIndex = null;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","<div class=\"card\">\r\n <div *ngIf=\"invoicetransaction\" class=\"mt-4 paymenthistory\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"invoiceplans === 'invoice' ? 'activePlanBtnprimary' : 'inactivePlanBtn'\"\r\n data-kt-plan=\"invoice\" (click)=\"selectInvoicePlan('invoice')\">\r\n Invoice\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"invoiceplans === 'credittransaction' ? 'activePlanBtnprimary' : 'inactivePlanBtn'\"\r\n data-kt-plan=\"credittransaction\" (click)=\"selectInvoicePlan('credittransaction')\">\r\n Credit Transactions\r\n </button>\r\n </div>\r\n <div class=\"card-header paymenthistory border-0\">\r\n <div *ngIf=\"invoiceplans === 'invoice'\" class=\"billingheader ms-1 mt-6\">Invoice</div>\r\n <div *ngIf=\"invoiceplans === 'credittransaction'\" class=\"billingheader ms-1 mt-6\">Credit Transactions</div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon invoicesearch svg-icon-1 position-absolute mt-6 ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\">\r\n </rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input [(ngModel)]=\"len\" type=\"text\" class=\"form-control ps-14 invoicesearch\"\r\n placeholder=\"Search...\" autocomplete=\"off\" (change)=\"searchField()\"\r\n [disabled]=\"searchDisabled\" />\r\n <lib-filters *ngIf=\"invoiceplans === 'invoice'\" [dataObject]=\"invoiceFilterObject\" (appliedFilters)=\"applyInvoiceFilters($event)\"></lib-filters>\r\n\r\n <!-- <div class=\"me-3 monthwidth\">\r\n <div class=\"dropdown invheader\">\r\n <select class=\"form-select invheader\" aria-label=\"Default select example\"\r\n [(ngModel)]=\"isFilter\" (change)=\"invoiceFilter()\">\r\n <option value=\"current\">Current Month</option>\r\n <option value=\"prev\">Previous Month</option>\r\n <option value=\"last\">Last 3 Months</option>\r\n </select>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <button (click)=\"creditnote()\" type=\"button\"\r\n class=\"btn-outline btn align-items-end invheader text-nowrap me-4\"\r\n *ngIf=\"(gs.userAccess | async)?.userType === 'tango' && (gs.userAccess | async)?.settings_paymentSubscriptions_isEdit\"\r\n [disabled]=\"!invoiceList.length\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\"\r\n viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M10.4993 4.16675V15.8334M4.66602 10.0001H16.3327\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span>Credit Note</span> </button> -->\r\n <button type=\"button\" (click)=\"onExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader\"\r\n *ngIf=\"invoiceplans === 'invoice'\"\r\n [disabled]=\"!invoiceList.length\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\"></span> Export</button>\r\n\r\n\r\n <button type=\"button\" (click)=\"onExportTransaction()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader ms-4\"\r\n *ngIf=\"invoiceplans === 'credittransaction'\"\r\n [disabled]=\"!transactionList.length\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\"></span> Export</button>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"invoiceplans === 'invoice'\">\r\n <ng-container *ngIf=\"invoiceLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"invoiceNoData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- invoice table start -->\r\n <div *ngIf=\"!invoiceLoading && !invoiceNoData\" class=\"table-responsive\">\r\n <table class=\"table accordion table bottom-border invoivetable \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('clientName')\" >Client Name\r\n <svg [ngClass]=\"sortColumName === 'clientName' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'clientName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('invoice')\" >Invoice #\r\n <svg [ngClass]=\"sortColumName === 'invoice' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'invoice' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('billingDate')\" >Billing date \r\n <svg [ngClass]=\"sortColumName === 'billingDate' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'billingDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('groupName')\" > Group Name\r\n <svg [ngClass]=\"sortColumName === 'groupName' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'groupName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('totalAmount')\" > Amount\r\n <svg [ngClass]=\"sortColumName === 'totalAmount' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'totalAmount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('stores')\" > Stores\r\n <svg [ngClass]=\"sortColumName === 'stores' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'stores' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('paymentStatus')\" > Payment Status\r\n <svg [ngClass]=\"sortColumName === 'paymentStatus' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'paymentStatus' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortData('status')\" > Approval Status\r\n <svg [ngClass]=\"sortColumName === 'status' && sortBy === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'status' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n \r\n <th scope=\"col\">Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let invoice of invoiceList; let i = index\">\r\n <td>\r\n <div class=\"table-title table-title-primary d-flex \">\r\n <div class=\"symbol symbol-35px symbol-circle me-2\"><span\r\n class=\"symbol-label text-symbol\">\r\n <span *ngIf=\"!invoice?.logo\" class=\"symbol-label bg-light-primary text-symbol\">\r\n {{invoice?.clientName?.charAt(0)}} </span>\r\n <img *ngIf=\"invoice?.logo\" class=\"logo-img\" [src]=\"invoice?.logo\" alt=\"\">\r\n </span></div>\r\n <div><u> {{invoice?.clientName}}</u></div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title table-title-primary\">\r\n {{invoice?.invoice}}\r\n </div>\r\n\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{invoice?.billingDate ? (invoice?.billingDate|customDateFormat) :\r\n '--'}}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{invoice?.groupName}}</div>\r\n </td>\r\n <!-- <span\r\n *ngIf=\"clientinfo?.currentPlanInfo?.currencyType === 'inr'\"></span><span\r\n *ngIf=\"clientinfo?.currentPlanInfo?.currencyType === 'dollar'\">$</span> -->\r\n <td>\r\n <div class=\"table-title\">\r\n <span *ngIf=\"invoice?.currencyType === 'inr'\">₹</span><span\r\n *ngIf=\"invoice?.currencyType === 'dollar'\">$</span>\r\n {{invoice?.totalAmount}}\r\n </div>\r\n </td>\r\n\r\n <td>\r\n <div class=\"table-title\">{{invoice?.stores}} Stores</div>\r\n </td>\r\n <td>\r\n <div [ngClass]=\"invoice.paymentStatus === 'paid'? 'badge badge-light-success' :'badge badge-light-warning'\"\r\n class=\"mt-3\">{{invoice?.paymentStatus| titlecase}}\r\n\r\n </div>\r\n </td>\r\n <td>\r\n <div [ngClass]=\"invoice.status === 'approved'? 'badge badge-light-success' :'badge badge-light-warning'\"\r\n class=\"mt-3 \">{{invoice?.status | titlecase}}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title d-flex justify-content-around \">\r\n <span class=\"cursor-pointer\" (click)=\"approveInvoice(invoice)\"\r\n *ngIf=\"invoice.status==='pending' && (gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\">\r\n\r\n <svg width=\"44\" height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_16478_43040)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <g clip-path=\"url(#clip0_16478_43040)\">\r\n <path\r\n d=\"M30.3346 20.2335V21.0002C30.3336 22.7972 29.7517 24.5458 28.6757 25.9851C27.5998 27.4244 26.0874 28.4773 24.3641 28.9868C22.6408 29.4963 20.799 29.4351 19.1134 28.8124C17.4277 28.1896 15.9885 27.0386 15.0104 25.5311C14.0324 24.0236 13.5678 22.2403 13.686 20.4471C13.8043 18.654 14.499 16.9472 15.6665 15.5811C16.8341 14.2151 18.412 13.263 20.1648 12.867C21.9176 12.471 23.7515 12.6522 25.393 13.3835M30.3346 14.3335L22.0013 22.6752L19.5013 20.1752\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_16478_43040\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_16478_43040\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_16478_43040\" result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_16478_43040\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(12 11)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"invoice.status==='approved' && (gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"44\" height=\"44\" viewBox=\"0 0 44 44\"\r\n fill=\"none\">\r\n <g filter=\"url(#filter0_d_16630_8062)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#EAECF0\" />\r\n <g clip-path=\"url(#clip0_16630_8062)\">\r\n <path\r\n d=\"M30.3346 20.2335V21.0002C30.3336 22.7972 29.7517 24.5458 28.6757 25.9851C27.5998 27.4244 26.0874 28.4773 24.3641 28.9868C22.6408 29.4963 20.799 29.4351 19.1134 28.8124C17.4277 28.1896 15.9885 27.0386 15.0104 25.5311C14.0324 24.0236 13.5678 22.2403 13.686 20.4471C13.8043 18.654 14.499 16.9472 15.6665 15.5811C16.8341 14.2151 18.412 13.263 20.1648 12.867C21.9176 12.471 23.7515 12.6522 25.393 13.3835M30.3346 14.3335L22.0013 22.6752L19.5013 20.1752\"\r\n stroke=\"#D0D5DD\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_16630_8062\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_16630_8062\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_16630_8062\" result=\"shape\" />\r\n </filter>\r\n <clipPath id=\"clip0_16630_8062\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(12 11)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span *ngIf=\"(gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\" class=\"cursor-pointer\" (click)=\"regenerateInvoice(invoice)\"><svg width=\"44\"\r\n height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#33B5FF\" />\r\n <g filter=\"url(#filter0_d_15530_60395)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M31.1654 14.3333V19.3333M31.1654 19.3333H26.1654M31.1654 19.3333L27.2987 15.7C26.4031 14.8039 25.2951 14.1493 24.078 13.7973C22.861 13.4453 21.5746 13.4073 20.3389 13.6869C19.1033 13.9665 17.9585 14.5545 17.0116 15.3962C16.0646 16.2378 15.3463 17.3056 14.9237 18.5M12.832 27.6666V22.6666M12.832 22.6666H17.832M12.832 22.6666L16.6987 26.3C17.5943 27.1961 18.7023 27.8506 19.9194 28.2027C21.1364 28.5547 22.4228 28.5927 23.6585 28.3131C24.8941 28.0335 26.0389 27.4455 26.9858 26.6038C27.9328 25.7621 28.6511 24.6943 29.0737 23.5\"\r\n stroke=\"#344054\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_15530_60395\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_15530_60395\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_15530_60395\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"(gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\" class=\"cursor-pointer\" (click)=\"paymentstatusChange(invoice)\" >\r\n <svg width=\"44\"\r\n height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#33B5FF\" />\r\n <g filter=\"url(#filter0_d_15530_60395)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M14.9987 20.0007V18.334C14.9987 17.0079 15.5255 15.7361 16.4632 14.7985C17.4008 13.8608 18.6726 13.334 19.9987 13.334C21.3248 13.334 22.5966 13.8608 23.5342 14.7985C24.4719 15.7361 24.9987 17.0079 24.9987 18.334V20.0007M13.332 25.0007C13.332 25.4427 13.5076 25.8666 13.8202 26.1792C14.1327 26.4917 14.5567 26.6673 14.9987 26.6673C15.4407 26.6673 15.8646 26.4917 16.1772 26.1792C16.4898 25.8666 16.6654 25.4427 16.6654 25.0007C16.6654 24.5586 16.4898 24.1347 16.1772 23.8221C15.8646 23.5096 15.4407 23.334 14.9987 23.334C14.5567 23.334 14.1327 23.5096 13.8202 23.8221C13.5076 24.1347 13.332 24.5586 13.332 25.0007ZM23.332 25.0007C23.332 25.4427 23.5076 25.8666 23.8202 26.1792C24.1327 26.4917 24.5567 26.6673 24.9987 26.6673C25.4407 26.6673 25.8646 26.4917 26.1772 26.1792C26.4898 25.8666 26.6654 25.4427 26.6654 25.0007C26.6654 24.5586 26.4898 24.1347 26.1772 23.8221C25.8646 23.5096 25.4407 23.334 24.9987 23.334C24.5567 23.334 24.1327 23.5096 23.8202 23.8221C23.5076 24.1347 23.332 24.5586 23.332 25.0007Z\" stroke=\"#667085\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_15530_60395\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_15530_60395\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_15530_60395\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n \r\n </span>\r\n <!-- (click)=\"downloadInvoice(invoice)\" -->\r\n <span (click)=\"downloadInvoice(invoice)\" class=\"cursor-pointer\"><svg width=\"44\"\r\n height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#33B5FF\" />\r\n <g filter=\"url(#filter0_d_15530_60396)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M29.5 23.5V26.8333C29.5 27.2754 29.3244 27.6993 29.0118 28.0118C28.6993 28.3244 28.2754 28.5 27.8333 28.5H16.1667C15.7246 28.5 15.3007 28.3244 14.9882 28.0118C14.6756 27.6993 14.5 27.2754 14.5 26.8333V23.5M17.8333 19.3333L22 23.5M22 23.5L26.1667 19.3333M22 23.5V13.5\"\r\n stroke=\"#344054\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_15530_60396\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_15530_60396\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow_15530_60396\" result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div *ngIf=\"!invoiceLoading && !invoiceNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"invoiceplans === 'credittransaction'\">\r\n <ng-container *ngIf=\"transactionLoading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"transactionNoData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n <div class=\"table-responsive\" *ngIf=\"!transactionLoading && !transactionNoData\">\r\n <table class=\"table accordion table bottom-border \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortDataTrans('clientName')\" >Client Name\r\n <svg [ngClass]=\"sortColumNametran === 'clientName' && sortBytran === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumNametran === 'clientName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> \r\n <th class=\"cursor-pointer\" (click)=\"sortDataTrans('credit')\" >Balance Credits\r\n <svg [ngClass]=\"sortColumNametran === 'credit' && sortBytran === 1 ? 'rotate' : ''\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumNametran === 'credit' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"(gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\" scope=\"col\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container>\r\n <tr *ngFor=\"let transaction of transactionList; let i = index\">\r\n <td>\r\n <div class=\"table-title table-title-primary d-flex \">\r\n <div class=\"symbol symbol-35px symbol-circle me-2\"><span\r\n class=\"symbol-label text-symbol\">\r\n <span *ngIf=\"!transaction?.logo\"\r\n class=\"symbol-label bg-light-primary text-symbol\">\r\n {{transaction?.clientName?.charAt(0)}} </span>\r\n <img *ngIf=\"transaction?.logo\" class=\"logo-img\" [src]=\"transaction?.logo\"\r\n alt=\"\">\r\n </span></div>\r\n <div><u> {{transaction?.clientName}}</u>\r\n </div>\r\n </div>\r\n \r\n </td>\r\n \r\n <td>\r\n <div class=\"table-title\">\r\n <span *ngIf=\"transaction?.currencyType === 'inr'\">₹</span>\r\n <span *ngIf=\"transaction?.currencyType === 'dollar'\">$</span>\r\n {{transaction?.credit}}\r\n </div>\r\n </td>\r\n <td *ngIf=\"(gs.userAccess | async)?.TangoAdmin_invoiceApproval_isEdit\">\r\n <div class=\"table-title position-relative\">\r\n <div class=\"position-relative cursor-pointer\" (click)=\"toggleDropdown(i)\">\r\n <div class=\"ms-5\">\r\n <span class=\"justify-content-end cursor-pointer\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_16522_57254)\">\r\n <path\r\n d=\"M19.9987 22.5006C21.3794 22.5006 22.4987 21.3814 22.4987 20.0007C22.4987 18.6199 21.3794 17.5007 19.9987 17.5007C18.618 17.5007 17.4987 18.6199 17.4987 20.0007C17.4987 21.3814 18.618 22.5006 19.9987 22.5006Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M26.1654 22.5006C26.0544 22.752 26.0213 23.0308 26.0704 23.3011C26.1194 23.5715 26.2482 23.8209 26.4404 24.0173L26.4904 24.0673C26.6453 24.2221 26.7683 24.4059 26.8521 24.6082C26.936 24.8106 26.9792 25.0275 26.9792 25.2465C26.9792 25.4655 26.936 25.6824 26.8521 25.8847C26.7683 26.087 26.6453 26.2709 26.4904 26.4256C26.3356 26.5806 26.1518 26.7035 25.9494 26.7874C25.7471 26.8713 25.5302 26.9145 25.3112 26.9145C25.0922 26.9145 24.8753 26.8713 24.673 26.7874C24.4706 26.7035 24.2868 26.5806 24.132 26.4256L24.082 26.3756C23.8856 26.1835 23.6362 26.0547 23.3659 26.0056C23.0955 25.9566 22.8167 25.9897 22.5654 26.1006C22.3189 26.2063 22.1087 26.3817 21.9606 26.6053C21.8126 26.8288 21.7331 27.0908 21.732 27.359V27.5006C21.732 27.9427 21.5564 28.3666 21.2439 28.6792C20.9313 28.9917 20.5074 29.1673 20.0654 29.1673C19.6233 29.1673 19.1994 28.9917 18.8869 28.6792C18.5743 28.3666 18.3987 27.9427 18.3987 27.5006V27.4256C18.3922 27.1498 18.303 26.8823 18.1425 26.6579C17.9819 26.4335 17.7576 26.2626 17.4987 26.1673C17.2474 26.0564 16.9685 26.0233 16.6982 26.0723C16.4279 26.1213 16.1784 26.2502 15.982 26.4423L15.932 26.4923C15.7772 26.6473 15.5934 26.7702 15.3911 26.8541C15.1888 26.938 14.9719 26.9811 14.7529 26.9811C14.5338 26.9811 14.317 26.938 14.1146 26.8541C13.9123 26.7702 13.7285 26.6473 13.5737 26.4923C13.4187 26.3375 13.2958 26.1537 13.2119 25.9514C13.1281 25.7491 13.0849 25.5322 13.0849 25.3131C13.0849 25.0941 13.1281 24.8772 13.2119 24.6749C13.2958 24.4726 13.4187 24.2888 13.5737 24.134L13.6237 24.084C13.8158 23.8876 13.9447 23.6381 13.9937 23.3678C14.0427 23.0975 14.0096 22.8187 13.8987 22.5673C13.7931 22.3208 13.6177 22.1106 13.3941 21.9626C13.1705 21.8145 12.9085 21.7351 12.6404 21.734H12.4987C12.0567 21.734 11.6327 21.5584 11.3202 21.2458C11.0076 20.9333 10.832 20.5093 10.832 20.0673C10.832 19.6253 11.0076 19.2014 11.3202 18.8888C11.6327 18.5762 12.0567 18.4007 12.4987 18.4007H12.5737C12.8495 18.3942 13.117 18.3049 13.3414 18.1444C13.5659 17.9839 13.7368 17.7596 13.832 17.5007C13.943 17.2493 13.9761 16.9705 13.927 16.7002C13.878 16.4298 13.7491 16.1804 13.557 15.984L13.507 15.934C13.3521 15.7792 13.2291 15.5954 13.1453 15.3931C13.0614 15.1907 13.0182 14.9738 13.0182 14.7548C13.0182 14.5358 13.0614 14.3189 13.1453 14.1166C13.2291 13.9143 13.3521 13.7304 13.507 13.5757C13.6618 13.4207 13.8456 13.2978 14.048 13.2139C14.2503 13.13 14.4672 13.0868 14.6862 13.0868C14.9052 13.0868 15.1221 13.13 15.3244 13.2139C15.5268 13.2978 15.7106 13.4207 15.8654 13.5757L15.9154 13.6257C16.1118 13.8178 16.3612 13.9466 16.6315 13.9957C16.9019 14.0447 17.1807 14.0116 17.432 13.9007H17.4987C17.7452 13.795 17.9554 13.6196 18.1034 13.396C18.2515 13.1725 18.331 12.9105 18.332 12.6423V12.5007C18.332 12.0586 18.5076 11.6347 18.8202 11.3221C19.1327 11.0096 19.5567 10.834 19.9987 10.834C20.4407 10.834 20.8646 11.0096 21.1772 11.3221C21.4898 11.6347 21.6654 12.0586 21.6654 12.5007V12.5757C21.6664 12.8438 21.7459 13.1058 21.894 13.3294C22.042 13.5529 22.2522 13.7283 22.4987 13.834C22.75 13.9449 23.0289 13.978 23.2992 13.929C23.5695 13.88 23.819 13.7511 24.0154 13.559L24.0654 13.509C24.2202 13.354 24.404 13.2311 24.6063 13.1472C24.8086 13.0633 25.0255 13.0202 25.2445 13.0202C25.4636 13.0202 25.6804 13.0633 25.8828 13.1472C26.0851 13.2311 26.2689 13.354 26.4237 13.509C26.5787 13.6638 26.7016 13.8476 26.7855 14.0499C26.8693 14.2522 26.9125 14.4691 26.9125 14.6882C26.9125 14.9072 26.8693 15.1241 26.7855 15.3264C26.7016 15.5287 26.5787 15.7125 26.4237 15.8673L26.3737 15.9173C26.1816 16.1137 26.0527 16.3632 26.0037 16.6335C25.9547 16.9038 25.9878 17.1826 26.0987 17.434V17.5007C26.2043 17.7471 26.3797 17.9573 26.6033 18.1054C26.8269 18.2535 27.0889 18.3329 27.357 18.334H27.4987C27.9407 18.334 28.3646 18.5096 28.6772 18.8221C28.9898 19.1347 29.1654 19.5586 29.1654 20.0007C29.1654 20.4427 28.9898 20.8666 28.6772 21.1792C28.3646 21.4917 27.9407 21.6673 27.4987 21.6673H27.4237C27.1555 21.6684 26.8936 21.7478 26.67 21.8959C26.4464 22.044 26.271 22.2542 26.1654 22.5006Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_16522_57254\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu position-absolute mt-2 bg-white shadow rounded\"\r\n [ngClass]=\"{'d-block': openDropdownIndex === i, 'd-none': openDropdownIndex !== i}\">\r\n <div class=\"dropdown-item\" *ngFor=\"let option of options\"\r\n (click)=\"selectOption(option,transaction?.clientId)\">\r\n {{ option.label }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n \r\n </tbody>\r\n </table>\r\n <div *ngIf=\"!transactionLoading && !transactionNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPagetran\" [currentPage]=\"currenttranPage\"\r\n [totalItems]=\"transactionItems\" [paginationSizes]=\"paginationSizestran\" [pageSize]=\"pagetransSize\"\r\n (pageChange)=\"onPageChangetran($event)\" (pageSizeChange)=\"onPageSizeChangeTran($event)\"></lib-pagination>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n</div>\r\n<!-- invoice table end -->\r\n<!-- invoice table start -->\r\n\r\n\r\n<!-- invoice table end -->","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoManageBillingComponent } from './components/tango-manage-billing/tango-manage-billing.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component:TangoManageBillingComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoManageBillingRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TangoManageBillingRoutingModule } from './tango-manage-billing-routing.module';\r\nimport { TangoManageBillingComponent } from './components/tango-manage-billing/tango-manage-billing.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CreditNoteComponent } from './components/tango-manage-billing/credit-note/credit-note.component';\r\nimport { OneTimeFeeComponent } from './components/tango-manage-billing/one-time-fee/one-time-fee.component';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { RequestConfirmationComponent } from './components/tango-manage-billing/request-confirmation/request-confirmation.component';\r\nimport { RegerateInvoiceComponent } from './components/tango-manage-billing/regerate-invoice/regerate-invoice.component';\r\nimport { PaymentStatuschangeComponent } from './components/tango-manage-billing/payment-statuschange/payment-statuschange.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoManageBillingComponent,\r\n CreditNoteComponent,\r\n OneTimeFeeComponent,\r\n RequestConfirmationComponent,\r\n RegerateInvoiceComponent,\r\n PaymentStatuschangeComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoManageBillingRoutingModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n NgbTooltipModule,\r\n CommonSharedModule\r\n]\r\n})\r\nexport class TangoManageBillingModule { }\r\n","/*\r\n * Public API Surface of tango-manage-brands\r\n */\r\n\r\nexport * from './lib/tango-manage-billing.module';\r\nexport * from './lib/components/tango-manage-billing/tango-manage-billing.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i2.BillingService","i4","i5","i3","i6","i7"],"mappings":"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"}
|