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
@@ -1,15 +1,13 @@
<form [formGroup]="form" (submit)="submit()" class="flex flex-col gap-4">
<field-name [control]="$any(form).controls.name" />
<field-economic-code [control]="$any(form).controls.economic_code" />
<field-fiscal-code [control]="$any(form).controls.fiscal_code" />
<field-fiscal-code [control]="$any(form).controls.fiscal_id" />
<field-partner-token [control]="$any(form).controls.partner_token" />
<field-guild-id [control]="$any(form).controls.guild_id" />
@if (!editMode) {
<p-divider align="center"> اطلاعات لایسنس </p-divider>
<field-license-starts-at
[control]="$any(form).controls.license_starts_at"
/>
<field-license-starts-at [control]="$any(form).controls.license_starts_at" />
}
<app-form-footer-actions [submitLabel]="'ذخیره'" [loading]="submitLoading()" (onCancel)="close()" />
@@ -1,7 +1,7 @@
import { AbstractForm } from '@/shared/abstractClasses';
import {
EconomicCodeComponent,
FiscalCodeComponent,
FiscalIdComponent,
GuildIdComponent,
LicenseStartsAtComponent,
NameComponent,
@@ -22,7 +22,7 @@ import { PartnerConsumerBusinessActivitiesService } from '../../services/busines
ReactiveFormsModule,
NameComponent,
EconomicCodeComponent,
FiscalCodeComponent,
FiscalIdComponent,
PartnerTokenComponent,
GuildIdComponent,
LicenseStartsAtComponent,
@@ -43,7 +43,7 @@ export class ConsumerBusinessActivitiesFormComponent extends AbstractForm<
const 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 || ''),
guild_id: fieldControl.guild_id(this.initialValues?.guild?.id || ''),
license_starts_at: [''],
@@ -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;
@@ -15,7 +15,7 @@ export interface IBusinessActivityResponse extends IBusinessActivityRawResponse
export interface IBusinessActivityRequest {
name: string;
economic_code: string;
fiscal_code: string;
fiscal_id: string;
partner_token: string;
guild_id: string;
license_starts_at?: string;