سفارشها
-
+
+
+
+
@if (!inOrderGoods().length) {
-
+
هیچ سفارشی ثبت نشده است.
@@ -42,7 +55,7 @@
severity="primary"
icon="pi pi-check"
class="w-full"
- [attr.disabled]="inOrderGoods().length === 0 ? true : null"
+ size="large"
(click)="submitAndPay()"
>
diff --git a/src/app/domains/pos/modules/landing/components/order/order-section.component.ts b/src/app/domains/pos/modules/landing/components/order/order-section.component.ts
index 48269af..171637b 100644
--- a/src/app/domains/pos/modules/landing/components/order/order-section.component.ts
+++ b/src/app/domains/pos/modules/landing/components/order/order-section.component.ts
@@ -1,7 +1,7 @@
// import { CustomersSelectComponent } from '@/modules/customers/components/select/select.component';
// import { ICustomerResponse } from '@/modules/customers/models';
import { KeyValueComponent } from '@/shared/components';
-import { Component, computed, inject, signal } from '@angular/core';
+import { Component, computed, EventEmitter, inject, Output, signal } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { ButtonDirective } from 'primeng/button';
import { Card } from 'primeng/card';
@@ -30,6 +30,7 @@ import { POSOrderPriceInfoCardComponent } from './price-info-card.component';
})
export class PosOrderSectionComponent {
private readonly store = inject(PosLandingStore);
+ @Output() onAddMoreGoods = new EventEmitter
();
placeholderImage = images.placeholders.default;
@@ -77,6 +78,10 @@ export class PosOrderSectionComponent {
this.isVisiblePaymentForm.set(true);
}
+ addMoreGoods() {
+ this.onAddMoreGoods.emit();
+ }
+
submitCustomer() {}
submitPayment() {}
}
diff --git a/src/app/domains/pos/modules/landing/components/payload-form.component.html b/src/app/domains/pos/modules/landing/components/payload-form.component.html
index 634398a..29cf5f3 100644
--- a/src/app/domains/pos/modules/landing/components/payload-form.component.html
+++ b/src/app/domains/pos/modules/landing/components/payload-form.component.html
@@ -8,11 +8,12 @@
>
@if (good) {
@if (isGoldMode()) {
-
+
} @else if (isStandardMode()) {
}
diff --git a/src/app/domains/pos/modules/landing/components/payload-form.component.ts b/src/app/domains/pos/modules/landing/components/payload-form.component.ts
index b049040..50991fe 100644
--- a/src/app/domains/pos/modules/landing/components/payload-form.component.ts
+++ b/src/app/domains/pos/modules/landing/components/payload-form.component.ts
@@ -1,11 +1,11 @@
import { IGoodResponse } from '@/domains/pos/models/good.io';
import { AbstractDialog } from '@/shared/abstractClasses/abstract-dialog';
+import { SharedDialogComponent } from '@/shared/components/dialog/dialog.component';
import { Component, computed, EventEmitter, inject, Input, Output, signal } from '@angular/core';
import { IGoldPayload, IPosOrderItem, IStandardPayload, TPosOrderGoodPayload } from '../models';
import { PosLandingStore } from '../store/main.store';
import { PosGoldPayloadFormComponent } from './payloads/gold/form.component';
import { PosStandardPayloadFormComponent } from './payloads/standard/form.component';
-import { SharedDialogComponent } from '@/shared/components/dialog/dialog.component';
@Component({
selector: 'pos-payload-form-dialog',
diff --git a/src/app/domains/pos/modules/landing/components/payloads/gold/form.component.html b/src/app/domains/pos/modules/landing/components/payloads/gold/form.component.html
index 3a267d8..e8f12d0 100644
--- a/src/app/domains/pos/modules/landing/components/payloads/gold/form.component.html
+++ b/src/app/domains/pos/modules/landing/components/payloads/gold/form.component.html
@@ -1,35 +1,37 @@
-
+
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 acbd92e..e3e2cb0 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
@@ -1,12 +1,13 @@
+import { greaterThanValidator } from '@/core/validators/greater.validator';
import { AbstractForm } from '@/shared/abstractClasses';
import { EnumSelectComponent } from '@/shared/apiEnum/select.component';
import { InputComponent } from '@/shared/components';
import { AmountPercentageInputComponent } from '@/shared/components/amountPercentageInput/amount-percentage-input.component';
import { TGoldKarat } from '@/shared/localEnum/constants/goldKarat';
import { formatWithCurrency } from '@/utils';
-import { Component, EventEmitter, Output, signal } from '@angular/core';
-import { ReactiveFormsModule, Validators } from '@angular/forms';
-import { Button } from 'primeng/button';
+import { Component, computed, EventEmitter, Output, signal } from '@angular/core';
+import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
+import { ButtonDirective } from 'primeng/button';
import { SelectButton, SelectButtonChangeEvent } from 'primeng/selectbutton';
import { IGoldPayload, IPosOrderItem } from '../../../models';
import { PosFormDialogAmountCardTemplateComponent } from '../form-dialog-amount-card-template.component';
@@ -15,13 +16,14 @@ import { PosFormDialogAmountCardTemplateComponent } from '../form-dialog-amount-
selector: 'pos-gold-payload-form',
templateUrl: './form.component.html',
imports: [
+ FormsModule,
ReactiveFormsModule,
InputComponent,
EnumSelectComponent,
- Button,
PosFormDialogAmountCardTemplateComponent,
SelectButton,
AmountPercentageInputComponent,
+ ButtonDirective,
],
})
export class PosGoldPayloadFormComponent extends AbstractForm<
@@ -50,10 +52,12 @@ export class PosGoldPayloadFormComponent extends AbstractForm<
taxAmount = signal
(0);
totalAmount = signal(0);
+ preparedCTAText = computed(() => (this.editMode ? 'اعمال ویرایش' : 'افزودن به لیست خرید'));
+
private readonly initialForm = () => {
const form = this.fb.group({
unit_price: [this.initialValues?.unit_price || 0, [Validators.required]],
- quantity: [this.initialValues?.quantity || 0, [Validators.required]],
+ quantity: [this.initialValues?.quantity || 0, [Validators.required, greaterThanValidator(0)]],
discount_amount: [this.initialValues?.discount || 0],
discount_percentage: [0, [Validators.max(100), Validators.min(0)]],
payload: this.fb.group({
diff --git a/src/app/domains/pos/modules/landing/components/payloads/standard/form.component.html b/src/app/domains/pos/modules/landing/components/payloads/standard/form.component.html
index cf1c5e8..ddce49b 100644
--- a/src/app/domains/pos/modules/landing/components/payloads/standard/form.component.html
+++ b/src/app/domains/pos/modules/landing/components/payloads/standard/form.component.html
@@ -27,6 +27,6 @@
[discountAmount]="discountAmount()"
[taxAmount]="taxAmount()"
/>
- افزودن به لیست خرید
+ {{ preparedCTAText() }}
diff --git a/src/app/domains/pos/modules/landing/components/payloads/standard/form.component.ts b/src/app/domains/pos/modules/landing/components/payloads/standard/form.component.ts
index b15a7df..ac7f3fd 100644
--- a/src/app/domains/pos/modules/landing/components/payloads/standard/form.component.ts
+++ b/src/app/domains/pos/modules/landing/components/payloads/standard/form.component.ts
@@ -59,6 +59,8 @@ export class PosStandardPayloadFormComponent extends AbstractForm<
discountAmount = signal