Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

122 строки
5.4 KiB

  1. <div class="spt-container">
  2. <div class="d-flex justify-content-between align-items-start">
  3. <h2>{{ 'basic.sales' | translate }}</h2>
  4. <button class="btn btn-primary" (click)="openModalNewSale()">{{ 'basic.new-sale' | translate }}</button>
  5. </div>
  6. <div class="sales-summary-container mb-4" *ngFor="let saleSummary of saleSummaries">
  7. <p><strong>{{ saleSummary.ownerName }}</strong></p>
  8. <div class="sales-summary-bar">
  9. <div>
  10. <span class="sales-summary-turnover"
  11. [ngStyle]="{ 'width.%': calculateWidthPercentage(Number(saleSummary.turnover), saleSummaryMaxTurnover)}">
  12. {{ 'sales.turnover' | translate }}: <strong>{{ saleSummary.turnover | currency: 'EUR' }}</strong>
  13. </span>
  14. </div>
  15. </div>
  16. <div class="sales-summary-bar">
  17. <div>
  18. <span class="sales-summary-profit"
  19. [ngStyle]="{ 'width.%': calculateWidthPercentage(Number(saleSummary.profit), saleSummaryMaxTurnover)}">
  20. {{ 'sales.profit' | translate }}: <strong>{{ saleSummary.profit | currency: 'EUR' }}</strong>
  21. </span>
  22. </div>
  23. </div>
  24. </div>
  25. <table mat-table [dataSource]="dataSource" matSort (matSortChange)="onSortChange($event)"
  26. class="mat-elevation-z8 mb-3">
  27. <ng-container matColumnDef="pos">
  28. <th mat-header-cell *matHeaderCellDef>
  29. {{ 'overview.number' | translate }}
  30. </th>
  31. <td mat-cell
  32. *matCellDef="let element">{{ (pageSize * pageIndex) + dataSource.filteredData.indexOf(element) + 1 }}
  33. </td>
  34. </ng-container>
  35. <ng-container matColumnDef="user">
  36. <th mat-header-cell *matHeaderCellDef mat-sort-header
  37. sortActionDescription="{{ 'overview.sort' | translate }}: {{ 'overview.sale-user' | translate }}">
  38. {{ 'overview.sale-user' | translate }}
  39. </th>
  40. <td mat-cell *matCellDef="let element">
  41. {{ element.ownerName }}
  42. </td>
  43. </ng-container>
  44. <ng-container matColumnDef="partner">
  45. <th mat-header-cell *matHeaderCellDef mat-sort-header="address"
  46. sortActionDescription="{{ 'overview.sort' | translate }}: {{ 'overview.sale-partner' | translate }}">
  47. {{ 'overview.sale-partner' | translate }}
  48. </th>
  49. <td mat-cell *matCellDef="let element">
  50. <a [routerLink]="['/customer', ApiConverter.extractId(element.partner)]">{{ element.partnerName }}</a>
  51. </td>
  52. </ng-container>
  53. <ng-container matColumnDef="product">
  54. <th mat-header-cell *matHeaderCellDef mat-sort-header
  55. sortActionDescription="{{ 'overview.sort' | translate }}: {{ 'overview.productname' | translate }}">
  56. {{ 'overview.productname' | translate }}
  57. </th>
  58. <td mat-cell *matCellDef="let element">
  59. <a [routerLink]="['/products', ApiConverter.extractId(element.product)]">{{ element.productName }}</a>
  60. </td>
  61. </ng-container>
  62. <ng-container matColumnDef="turnover">
  63. <th mat-header-cell *matHeaderCellDef mat-sort-header
  64. sortActionDescription="{{ 'overview.sort' | translate }}: {{ 'overview.turnover' | translate }}">
  65. {{ 'overview.turnover' | translate }}
  66. </th>
  67. <td mat-cell *matCellDef="let element">
  68. {{ element.turnover | currency: 'EUR' }}
  69. </td>
  70. </ng-container>
  71. <ng-container matColumnDef="profit">
  72. <th mat-header-cell *matHeaderCellDef mat-sort-header
  73. sortActionDescription="{{ 'overview.sort' | translate }}: {{ 'overview.profit' | translate }}">
  74. {{ 'overview.profit' | translate }}
  75. </th>
  76. <td mat-cell *matCellDef="let element">
  77. {{ element.profit | currency: 'EUR' }}
  78. </td>
  79. </ng-container>
  80. <ng-container matColumnDef="date">
  81. <th mat-header-cell *matHeaderCellDef mat-sort-header
  82. sortActionDescription="{{ 'overview.sort' | translate }}: {{ 'overview.createdAt' | translate }}">
  83. {{ 'overview.createdAt' | translate }}
  84. </th>
  85. <td mat-cell *matCellDef="let element">
  86. {{ element.createdAt | date:'dd.MM.YYYY HH:mm' }}
  87. </td>
  88. </ng-container>
  89. <ng-container matColumnDef="details">
  90. <th mat-header-cell *matHeaderCellDef>
  91. {{ 'overview.details' | translate }}
  92. </th>
  93. <td mat-cell *matCellDef="let element">
  94. <span class="btn btn-primary bi bi-zoom-in p-2-4"
  95. data-type="user-tool" data-action="edit" (click)="navigateToSaleDetails(element)"></span>
  96. </td>
  97. </ng-container>
  98. <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
  99. <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
  100. </table>
  101. <mat-paginator class="rounded-1"
  102. [pageSizeOptions]="[10,25,50]"
  103. [length]="length"
  104. (page)="handlePageEvent($event)"
  105. [pageSize]="pageSize"
  106. [pageIndex]="pageIndex"
  107. showFirstLastButtons>
  108. </mat-paginator>
  109. </div>