diff --git a/src/app/domains/pos/layouts/layout.component.ts b/src/app/domains/pos/layouts/layout.component.ts
index 95c011d..70b9c55 100644
--- a/src/app/domains/pos/layouts/layout.component.ts
+++ b/src/app/domains/pos/layouts/layout.component.ts
@@ -8,8 +8,7 @@ import { ButtonDirective } from 'primeng/button';
import { Card } from 'primeng/card';
import { Menu } from 'primeng/menu';
import images from 'src/assets/images';
-import { PosProfileStore } from '../store';
-import { PosStore } from '../store/pos.store';
+import { PosInfoStore, PosProfileStore } from '../store';
import { PosChooseCardsComponent } from './choose-pos.component';
@Component({
@@ -28,19 +27,20 @@ import { PosChooseCardsComponent } from './choose-pos.component';
export class PosLayoutComponent {
constructor() {}
- private readonly posInfoStore = inject(PosStore);
private readonly posProfileStore = inject(PosProfileStore);
+ private readonly posInfoStore = inject(PosInfoStore);
private readonly authService = inject(AuthService);
- readonly posInfoLoading = computed(() => this.posInfoStore.loading());
- readonly posInfo = computed(() => this.posInfoStore.entity());
- readonly posInfoError = computed(() => this.posInfoStore.error());
readonly posProfileLoading = computed(() => this.posProfileStore.loading());
readonly posProfile = computed(() => this.posProfileStore.entity());
readonly posProfileError = computed(() => this.posProfileStore.error());
- readonly loading = computed(() => this.posInfoLoading() || this.posProfileLoading());
- readonly error = computed(() => this.posInfoError() || this.posProfileError());
+ readonly posInfoLoading = computed(() => this.posInfoStore.loading());
+ readonly posInfo = computed(() => this.posInfoStore.entity());
+ readonly posInfoError = computed(() => this.posInfoStore.error());
+
+ readonly loading = computed(() => this.posProfileLoading());
+ readonly error = computed(() => this.posProfileError());
logout = () => {
this.authService.logout();
@@ -64,8 +64,11 @@ export class PosLayoutComponent {
now = new Date();
getData() {
- this.posProfileStore.getData().subscribe();
- this.posInfoStore.getData().subscribe();
+ this.posProfileStore.getData().subscribe({
+ next: () => {
+ this.posInfoStore.getData().subscribe();
+ },
+ });
}
onChoosePos() {
diff --git a/src/app/domains/pos/modules/landing/components/payloads/gold/form.component.ts b/src/app/domains/pos/modules/landing/components/payloads/gold/form.component.ts
index c4d34df..acbd92e 100644
--- a/src/app/domains/pos/modules/landing/components/payloads/gold/form.component.ts
+++ b/src/app/domains/pos/modules/landing/components/payloads/gold/form.component.ts
@@ -120,6 +120,7 @@ export class PosGoldPayloadFormComponent extends AbstractForm<
const baseTotalAmount = totalAmountBeforeProfit + profitAmount;
const baseAmountForDiscountCalculation =
this.discountType() === 1 ? profitAmount : baseTotalAmount;
+
const taxAmount = (profitAmount + commissionAmount + wageAmount - discountAmount) * 0.1;
const totalAmount = baseTotalAmount - discountAmount + taxAmount;
diff --git a/src/app/domains/pos/modules/landing/views/root.component.html b/src/app/domains/pos/modules/landing/views/root.component.html
index 1bcb707..d658399 100644
--- a/src/app/domains/pos/modules/landing/views/root.component.html
+++ b/src/app/domains/pos/modules/landing/views/root.component.html
@@ -1,10 +1,13 @@
-
- @if (posInfo()) {
+@if (loading()) {
+
+
+} @else if (pos()) {
+
+
+}
diff --git a/src/app/domains/pos/modules/landing/views/root.component.ts b/src/app/domains/pos/modules/landing/views/root.component.ts
index 283f7a2..93447b4 100644
--- a/src/app/domains/pos/modules/landing/views/root.component.ts
+++ b/src/app/domains/pos/modules/landing/views/root.component.ts
@@ -1,5 +1,6 @@
// import { CatalogRoleTagComponent } from '@/shared/catalog/roles';
-import { PosStore } from '@/domains/pos/store/pos.store';
+import { PosInfoStore } from '@/domains/pos/store/pos.store';
+import { PageLoadingComponent } from '@/shared/components/page-loading.component';
import { Component, computed, inject } from '@angular/core';
import { PosGoodsComponent } from '../components/goods.component';
import { PosOrderSectionComponent } from '../components/order/order-section.component';
@@ -9,10 +10,16 @@ import { PosOrderSectionComponent } from '../components/order/order-section.comp
templateUrl: './root.component.html',
host: { class: 'grow overflow-hidden' },
- imports: [PosGoodsComponent, PosOrderSectionComponent],
+ imports: [PosGoodsComponent, PosOrderSectionComponent, PageLoadingComponent],
})
export class PosLandingComponent {
- private readonly posStore = inject(PosStore);
+ private readonly store = inject(PosInfoStore);
- readonly posInfo = computed(() => this.posStore.entity());
+ readonly loading = computed(() => this.store.loading());
+ readonly pos = computed(() => this.store.entity());
+ readonly error = computed(() => this.store.error());
+
+ getData() {
+ this.store.getData().subscribe();
+ }
}
diff --git a/src/app/domains/pos/store/pos.store.ts b/src/app/domains/pos/store/pos.store.ts
index 84f43c2..811abea 100644
--- a/src/app/domains/pos/store/pos.store.ts
+++ b/src/app/domains/pos/store/pos.store.ts
@@ -14,7 +14,7 @@ interface PosState extends EntityState
{
@Injectable({
providedIn: 'root',
})
-export class PosStore extends EntityStore {
+export class PosInfoStore extends EntityStore {
private readonly service = inject(PosService);
constructor(private readonly cookieService: CookieService) {
diff --git a/src/app/domains/superAdmin/modules/partners/components/chargeAccount/charge-account-form-dialog.component.ts b/src/app/domains/superAdmin/modules/partners/components/chargeAccount/charge-account-form-dialog.component.ts
index 0df0b11..975760b 100644
--- a/src/app/domains/superAdmin/modules/partners/components/chargeAccount/charge-account-form-dialog.component.ts
+++ b/src/app/domains/superAdmin/modules/partners/components/chargeAccount/charge-account-form-dialog.component.ts
@@ -6,11 +6,11 @@ import { nowJalali } from '@/utils';
import { Component, inject, Input } from '@angular/core';
import { ReactiveFormsModule, Validators } from '@angular/forms';
import { Dialog } from 'primeng/dialog';
-import { IPartnerChargeAccountRequest } from '../../models/chargeAccount_io';
+import { IAdminPartnerChargeAccountRequest } from '../../models/chargeAccount_io';
import { AdminPartnerChargeAccountService } from '../../services/chargeAccount.service';
@Component({
- selector: 'partner-charge-account-form-dialog',
+ selector: 'admin-partner-charge-account-form-dialog',
templateUrl: './charge-account-form-dialog.component.html',
imports: [
Dialog,
@@ -20,8 +20,8 @@ import { AdminPartnerChargeAccountService } from '../../services/chargeAccount.s
UikitFlatpickrJalaliComponent,
],
})
-export class PartnerChargeAccountFormDialogComponent extends AbstractFormDialog<
- IPartnerChargeAccountRequest,
+export class AdminPartnerChargeAccountFormDialogComponent extends AbstractFormDialog<
+ IAdminPartnerChargeAccountRequest,
any
> {
@Input({ required: true }) partnerId!: string;
@@ -35,7 +35,7 @@ export class PartnerChargeAccountFormDialogComponent extends AbstractFormDialog<
minDate = nowJalali();
- submitForm(payload: IPartnerChargeAccountRequest) {
+ submitForm(payload: IAdminPartnerChargeAccountRequest) {
return this.service.charge(this.partnerId, payload);
}
}
diff --git a/src/app/domains/superAdmin/modules/partners/components/chargeAccount/list.component.ts b/src/app/domains/superAdmin/modules/partners/components/chargeAccount/list.component.ts
index ec47171..87349df 100644
--- a/src/app/domains/superAdmin/modules/partners/components/chargeAccount/list.component.ts
+++ b/src/app/domains/superAdmin/modules/partners/components/chargeAccount/list.component.ts
@@ -1,7 +1,7 @@
import { AbstractList } from '@/shared/abstractClasses/abstract-list';
import { PageDataListComponent } from '@/shared/components/pageDataList/page-data-list.component';
import { Component, inject, Input } from '@angular/core';
-import { IPartnerChargeAccountRawResponse } from '../../models';
+import { IAdminPartnerChargeAccountRawResponse } from '../../models';
import { AdminPartnerChargeAccountService } from '../../services/chargeAccount.service';
@Component({
@@ -9,7 +9,7 @@ import { AdminPartnerChargeAccountService } from '../../services/chargeAccount.s
templateUrl: './list.component.html',
imports: [PageDataListComponent],
})
-export class AdminPartnerChargeAccountListComponent extends AbstractList {
+export class AdminPartnerChargeAccountListComponent extends AbstractList {
@Input({ required: true }) partnerId!: string;
private readonly service = inject(AdminPartnerChargeAccountService);
diff --git a/src/app/domains/superAdmin/modules/partners/components/licenses/list.component.ts b/src/app/domains/superAdmin/modules/partners/components/licenses/list.component.ts
index f3fcbcf..33d6ac7 100644
--- a/src/app/domains/superAdmin/modules/partners/components/licenses/list.component.ts
+++ b/src/app/domains/superAdmin/modules/partners/components/licenses/list.component.ts
@@ -2,14 +2,13 @@
import { AbstractList } from '@/shared/abstractClasses/abstract-list';
import { PageDataListComponent } from '@/shared/components/pageDataList/page-data-list.component';
import { Component, inject, Input } from '@angular/core';
-import { ButtonDirective } from 'primeng/button';
import { IPartnerActivatedLicenseResponse } from '../../models';
import { AdminPartnerActivatedLicensesService } from '../../services/licenses.service';
@Component({
selector: 'admin-partner-licenses',
templateUrl: './list.component.html',
- imports: [PageDataListComponent, ButtonDirective],
+ imports: [PageDataListComponent],
})
export class AdminPartnerLicensesComponent extends AbstractList {
@Input({ required: true }) partnerId!: string;
diff --git a/src/app/domains/superAdmin/modules/partners/models/chargeAccount_io.d.ts b/src/app/domains/superAdmin/modules/partners/models/chargeAccount_io.d.ts
index 2982f90..521b72e 100644
--- a/src/app/domains/superAdmin/modules/partners/models/chargeAccount_io.d.ts
+++ b/src/app/domains/superAdmin/modules/partners/models/chargeAccount_io.d.ts
@@ -1,4 +1,4 @@
-export interface IPartnerChargeAccountRawResponse {
+export interface IAdminPartnerChargeAccountRawResponse {
id: string;
created_at: string;
tracking_code: string;
@@ -8,9 +8,9 @@ export interface IPartnerChargeAccountRawResponse {
remained_license_count: number;
}
-export interface IPartnerChargeAccountResponse extends IPartnerChargeAccountRawResponse {}
+export interface IAdminPartnerChargeAccountResponse extends IAdminPartnerChargeAccountRawResponse {}
-export interface IPartnerChargeAccountRequest {
+export interface IAdminPartnerChargeAccountRequest {
quantity: number;
activated_expires_at: string;
}
diff --git a/src/app/domains/superAdmin/modules/partners/services/chargeAccount.service.ts b/src/app/domains/superAdmin/modules/partners/services/chargeAccount.service.ts
index 6d41840..c20ce23 100644
--- a/src/app/domains/superAdmin/modules/partners/services/chargeAccount.service.ts
+++ b/src/app/domains/superAdmin/modules/partners/services/chargeAccount.service.ts
@@ -4,9 +4,9 @@ import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { PARTNER_CHARGE_ACCOUNT_API_ROUTES } from '../constants';
import {
- IPartnerChargeAccountRawResponse,
- IPartnerChargeAccountRequest,
- IPartnerChargeAccountResponse,
+ IAdminPartnerChargeAccountRawResponse,
+ IAdminPartnerChargeAccountRequest,
+ IAdminPartnerChargeAccountResponse,
} from '../models';
@Injectable({ providedIn: 'root' })
@@ -15,16 +15,19 @@ export class AdminPartnerChargeAccountService {
private apiRoutes = PARTNER_CHARGE_ACCOUNT_API_ROUTES;
- getAll(partnerId: string): Observable> {
- return this.http.get>(
+ getAll(partnerId: string): Observable> {
+ return this.http.get>(
this.apiRoutes.single(partnerId),
);
}
charge(
partnerId: string,
- data: IPartnerChargeAccountRequest,
- ): Observable {
- return this.http.post(this.apiRoutes.single(partnerId), data);
+ data: IAdminPartnerChargeAccountRequest,
+ ): Observable {
+ return this.http.post(
+ this.apiRoutes.single(partnerId),
+ data,
+ );
}
}
diff --git a/src/app/domains/superAdmin/modules/partners/views/single.component.html b/src/app/domains/superAdmin/modules/partners/views/single.component.html
index 2ef9b76..b0fadd2 100644
--- a/src/app/domains/superAdmin/modules/partners/views/single.component.html
+++ b/src/app/domains/superAdmin/modules/partners/views/single.component.html
@@ -79,8 +79,8 @@
(onSubmit)="getData()"
/>
-
+>
diff --git a/src/app/domains/superAdmin/modules/partners/views/single.component.ts b/src/app/domains/superAdmin/modules/partners/views/single.component.ts
index cb1fc73..dddce19 100644
--- a/src/app/domains/superAdmin/modules/partners/views/single.component.ts
+++ b/src/app/domains/superAdmin/modules/partners/views/single.component.ts
@@ -6,7 +6,7 @@ import { Button } from 'primeng/button';
import { Divider } from 'primeng/divider';
import { ConsumerAccountListComponent } from '../components/accounts/list.component';
import { PartnerChargeLicenseFormDialogComponent } from '../components/charge-license-form-dialog.component';
-import { PartnerChargeAccountFormDialogComponent } from '../components/chargeAccount/charge-account-form-dialog.component';
+import { AdminPartnerChargeAccountFormDialogComponent } from '../components/chargeAccount/charge-account-form-dialog.component';
import { AdminPartnerChargeAccountListComponent } from '../components/chargeAccount/list.component';
import { AdminPartnerChargeLicenseTransactionListComponent } from '../components/chargeLicenseTransactions/list.component';
import { GuildFormComponent } from '../components/form.component';
@@ -24,7 +24,7 @@ import { PartnerStore } from '../store/partner.store';
ConsumerAccountListComponent,
Button,
AdminPartnerChargeAccountListComponent,
- PartnerChargeAccountFormDialogComponent,
+ AdminPartnerChargeAccountFormDialogComponent,
PartnerChargeLicenseFormDialogComponent,
AdminPartnerLicensesComponent,
AdminPartnerChargeLicenseTransactionListComponent,
diff --git a/src/app/shared/components/card-data.component.html b/src/app/shared/components/card-data.component.html
index e586ed3..44c6b59 100644
--- a/src/app/shared/components/card-data.component.html
+++ b/src/app/shared/components/card-data.component.html
@@ -2,9 +2,12 @@
-
{{ cardTitle }}
+
{{ cardTitle }}
+ @if (showRefresh) {
+
+ }
@if (editable) {