import { IPaginatedResponse } from '@/core/models/service.model'; import { ISaleInvoiceFullResponse } from '@/domains/consumer/models'; import { ISaleInvoiceFullRawResponse } from '@/shared/components/invoices/sale-invoice-full-response.model'; import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { POS_SALE_INVOICES_API_ROUTES } from '../constants'; import { IPosSaleInvoiceFiscalActionResponse, IPosSaleInvoiceFiscalAttemptsResponse, IPosSaleInvoiceFiscalStatusResponse, IPosSaleInvoicesFilterDto, IPosSaleInvoicesSummaryRawResponse, IPosSaleInvoicesSummaryResponse, } from '../models'; import { IPosReturnFromSaleRequest } from '../models/returnFromSale'; @Injectable({ providedIn: 'root' }) export class PosSaleInvoicesService { constructor(private http: HttpClient) {} private apiRoutes = POS_SALE_INVOICES_API_ROUTES; getAll( query: IPosSaleInvoicesFilterDto = {} ): Observable> { return this.http.get>( this.apiRoutes.list(), { params: query as Record } ); } getSingle(invoiceId: string): Observable { return this.http.get(this.apiRoutes.single(invoiceId)); } sendToTsp(invoiceId: string): Observable { return this.http.post( this.apiRoutes.tsp.send(invoiceId), {} ); } retrySendToTsp(invoiceId: string): Observable { return this.http.post( this.apiRoutes.tsp.retry(invoiceId), {} ); } getFiscalStatus(invoiceId: string): Observable { return this.http.get(this.apiRoutes.tsp.status(invoiceId)); } getInquiry(invoiceId: string): Observable { return this.http.get( this.apiRoutes.tsp.getInquiry(invoiceId), {} ); } correction(data: any, invoiceId: string): Observable { return this.http.post( this.apiRoutes.tsp.correction(invoiceId), data ); } returnFromSale( data: IPosReturnFromSaleRequest, invoiceId: string ): Observable { return this.http.post( this.apiRoutes.tsp.returnFromSale(invoiceId), data ); } revoke(invoiceId: string): Observable { return this.http.post( this.apiRoutes.tsp.revoke(invoiceId), {} ); } getFiscalAttempts(invoiceId: string): Observable { return this.http.get( this.apiRoutes.tsp.attempts(invoiceId) ); } }