feat(pos): add shop and statistics modules with components, services, and routing

- Implemented shop module with root component, loading state, and invoice handling.
- Created statistics module with invoice type card component, API routes, and data models.
- Added season picker component for selecting year and season.
- Integrated services for fetching statistics data and managing state.
- Established routing for statistics and shop views.
This commit is contained in:
2026-05-23 18:09:44 +03:30
parent 8c07dc7c3f
commit 6ad1a73c16
100 changed files with 768 additions and 231 deletions
@@ -0,0 +1,33 @@
<shared-light-bottomsheet [(visible)]="visible">
<div class="mt-1">
<label class="mb-1 block text-sm font-medium text-slate-600">انتخاب سال</label>
<select
[(ngModel)]="selectedYearDraft"
class="w-full rounded-xl border border-slate-200 bg-white px-3 py-2 text-slate-700 outline-none">
@for (yearItem of years; track yearItem.value) {
<option [value]="yearItem.value">{{ yearItem.year }}</option>
}
</select>
</div>
<div class="mt-4 grid grid-cols-2 gap-2">
@for (seasonItem of seasons; track seasonItem.key) {
<button
pButton
type="button"
[label]="seasonItem.label"
[severity]="seasonItem.severity"
outlined
(click)="selectedSeasonDraft.set(seasonItem.key)"></button>
}
<!-- [disabled]="selectedYear <= selectedYearDraft() && selectedSeason <= selectedSeasonDraft()" -->
</div>
<div class="mt-4">
<app-form-footer-actions
submitLabel="تایید"
cancelLabel="انصراف"
(onCancel)="visibleChange.emit(false)"
(onSubmit)="onSubmit()" />
</div>
</shared-light-bottomsheet>