feat: add sale invoice card component with functionality for sending and retrieving invoice status

- Implemented sale invoice card component with HTML and TypeScript files.
- Added API routes for sale invoices including sending, retrying, and checking status.
- Created models for sale invoice fiscal actions and filters.
- Developed service for handling sale invoice operations.
- Introduced store for managing sale invoice state.
- Created views for listing and displaying single sale invoices.
- Added support for managing stock keeping units with forms and services.
- Implemented reusable select components for measure units and SKUs.
- Enhanced shared components for input fields including fiscal ID, SKU type, and VAT.
This commit is contained in:
2026-05-01 19:45:30 +03:30
parent 8104f1b7a7
commit 83f124b910
94 changed files with 1555 additions and 214 deletions
@@ -9,7 +9,7 @@
<form [formGroup]="form" (submit)="submit()" class="flex flex-col gap-4">
<field-name [control]="form.controls.name" />
<field-economic-code [control]="form.controls.economic_code" />
<field-fiscal-code [control]="form.controls.fiscal_code" />
<field-fiscal-code [control]="form.controls.fiscal_id" />
<field-partner-token [control]="form.controls.partner_token" />
<app-form-footer-actions [submitLabel]="'ذخیره'" [loading]="submitLoading()" (onCancel)="close()" />
</form>
@@ -1,17 +1,17 @@
import { AbstractFormDialog } from '@/shared/abstractClasses';
import {
EconomicCodeComponent,
FiscalCodeComponent,
FiscalIdComponent,
NameComponent,
PartnerTokenComponent,
} from '@/shared/components';
import { SharedDialogComponent } from '@/shared/components/dialog/dialog.component';
import { FormFooterActionsComponent } from '@/shared/components/formFooterActions/form-footer-actions.component';
import { fieldControl } from '@/shared/constants/fields';
import { Component, inject, Input } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { IBusinessActivityRequest, IBusinessActivityResponse } from '../models';
import { BusinessActivitiesService } from '../services/main.service';
import { SharedDialogComponent } from '@/shared/components/dialog/dialog.component';
@Component({
selector: 'consumer-businessActivity-form',
@@ -22,7 +22,7 @@ import { SharedDialogComponent } from '@/shared/components/dialog/dialog.compone
FormFooterActionsComponent,
NameComponent,
EconomicCodeComponent,
FiscalCodeComponent,
FiscalIdComponent,
PartnerTokenComponent,
],
})
@@ -36,7 +36,7 @@ export class ConsumerBusinessActivityFormComponent extends AbstractFormDialog<
form = this.fb.group({
name: fieldControl.name(this.initialValues?.name || ''),
economic_code: fieldControl.economic_code(this.initialValues?.economic_code || ''),
fiscal_code: fieldControl.fiscal_code(this.initialValues?.fiscal_code || ''),
fiscal_id: fieldControl.fiscal_id(this.initialValues?.fiscal_id || ''),
partner_token: fieldControl.partner_token(this.initialValues?.partner_token || ''),
});
@@ -4,7 +4,7 @@ export interface IBusinessActivityRawResponse {
id: string;
name: string;
economic_code: string;
fiscal_code: string;
fiscal_id: string;
partner_token: string;
guild: ISummary;
created_at: string;
@@ -14,7 +14,7 @@ export interface IBusinessActivityResponse extends IBusinessActivityRawResponse
export interface IBusinessActivityRequest {
economic_code: string;
fiscal_code: string;
fiscal_id: string;
partner_token: string;
name: string;
}