feat(payment): update payment bridge and form components
- Refactor PosPaymentBridgeAbstract to enforce PosPaymentResult type for emitPaymentResultForTest method. - Simplify PosPaymentBridgeService by removing commented-out code and improving error handling. - Replace PosPaymentFormDialogComponent with SharedInvoicePaymentFormDialog in root.component.html for better payment handling. - Enhance root.component.ts to manage payment form visibility and submission logic. - Update light-bottomsheet.component.html for improved styling. - Add new return form features including item removal and total price calculation in returnForm components. - Introduce new payment form dialog for handling invoice payments with detailed structure and validation. - Implement payment handling logic in sale-invoice-single-view component to support correction payments. - Ensure proper integration of payment components in the shared components index.
This commit is contained in:
@@ -4,13 +4,13 @@ import { NavigationService } from '@/core/services/navigation.service';
|
||||
import { ToastService } from '@/core/services/toast.service';
|
||||
import { PosConfigPrintService } from '@/domains/pos/modules/configs/components/print/services/main.service';
|
||||
import { IPosReturnFromSaleRequest } from '@/domains/pos/modules/saleInvoices/models/returnFromSale';
|
||||
import { IPosOrderItem } from '@/domains/pos/modules/shop/models';
|
||||
import { IPayment, IPosOrderItem } from '@/domains/pos/modules/shop/models';
|
||||
import { PosInfoStore } from '@/domains/pos/store';
|
||||
import { TspProviderResponseStatus } from '@/shared/catalog';
|
||||
import { SharedLightBottomsheetComponent } from '@/shared/components';
|
||||
import { PosPaymentFormDialogComponent } from '@/shared/components/invoices/payment';
|
||||
import { ISaleInvoiceFullResponse } from '@/shared/components/invoices/sale-invoice-full-response.model';
|
||||
import { PageLoadingComponent } from '@/shared/components/page-loading.component';
|
||||
import { PriceMaskDirective } from '@/shared/directives';
|
||||
import { UikitEmptyStateComponent } from '@/uikit';
|
||||
import {
|
||||
Component,
|
||||
@@ -67,8 +67,8 @@ type TActionMenuItem = {
|
||||
SaleInvoiceSingleInfoCardComponent,
|
||||
QRCodeComponent,
|
||||
Card,
|
||||
PriceMaskDirective,
|
||||
Menu,
|
||||
PosPaymentFormDialogComponent,
|
||||
],
|
||||
})
|
||||
export class SharedSaleInvoiceSingleViewComponent {
|
||||
@@ -105,7 +105,6 @@ export class SharedSaleInvoiceSingleViewComponent {
|
||||
showQrCodeDialog = signal(false);
|
||||
showCorrectionPaymentDialog = signal(false);
|
||||
correctionRequiredPayment = signal(0);
|
||||
correctionPaymentAmount = signal(0);
|
||||
readonly isApplication = config.isPosApplication;
|
||||
private pendingCorrectionSubmitResolver: Maybe<(allowed: boolean) => void> = null;
|
||||
|
||||
@@ -292,7 +291,6 @@ export class SharedSaleInvoiceSingleViewComponent {
|
||||
|
||||
const requiredAmount = newTotalAmount - oldTotalAmount;
|
||||
this.correctionRequiredPayment.set(requiredAmount);
|
||||
this.correctionPaymentAmount.set(requiredAmount);
|
||||
this.showCorrectionPaymentDialog.set(true);
|
||||
|
||||
const allowByDialog = await new Promise<boolean>((resolve) => {
|
||||
@@ -306,17 +304,10 @@ export class SharedSaleInvoiceSingleViewComponent {
|
||||
return (await this.beforeCorrectionSubmit?.(mapped)) ?? true;
|
||||
}
|
||||
|
||||
onCorrectionPaymentAmountChange(event: Event) {
|
||||
const value = Number((event.target as HTMLInputElement)?.value || 0);
|
||||
this.correctionPaymentAmount.set(Number.isFinite(value) ? value : 0);
|
||||
}
|
||||
|
||||
confirmCorrectionPayment() {
|
||||
if (this.correctionPaymentAmount() < this.correctionRequiredPayment()) {
|
||||
this.toastService.warn({ text: 'مبلغ پرداختی باید حداقل برابر با افزایش مبلغ باشد.' });
|
||||
return;
|
||||
}
|
||||
|
||||
confirmCorrectionPayment(_event: {
|
||||
payment: IPayment;
|
||||
settlementType: 'CASH' | 'CREDIT' | 'MIXED';
|
||||
}) {
|
||||
this.showCorrectionPaymentDialog.set(false);
|
||||
this.pendingCorrectionSubmitResolver?.(true);
|
||||
this.pendingCorrectionSubmitResolver = null;
|
||||
|
||||
Reference in New Issue
Block a user