feature/csv-correccion-clientes

This commit is contained in:
2026-05-12 09:22:30 -06:00
parent ee9ac4f64f
commit e3cbb738e0
8 changed files with 105 additions and 149 deletions

View File

@@ -845,13 +845,21 @@ export const api = {
// CSV import for Clientes y Proveedores (flujo propio en clients_and_providers/imports)
clientProviderImports: {
upload: (file: File, companyId: number, uploadOptions?: CsvFormDataUploadOptions) => {
upload: (
file: File,
companyId: number,
options?: { actualizar?: boolean; onUploadProgress?: CsvFormDataUploadOptions['onUploadProgress'] }
) => {
const formData = new FormData();
formData.append('file', file);
const params = new URLSearchParams({ company_id: String(companyId) });
if (options?.actualizar !== undefined) params.set('actualizar', String(options.actualizar));
const uploadOpts =
options?.onUploadProgress != null ? { onUploadProgress: options.onUploadProgress } : undefined;
return fetchApiFormDataPost(
`/v1/a76/clients-providers/imports/upload?company_id=${companyId}`,
`/v1/a76/clients-providers/imports/upload?${params.toString()}`,
formData,
uploadOptions
uploadOpts
);
},
status: (jobId: string) => api.get(`/v1/a76/clients-providers/imports/${jobId}/status`),

View File

@@ -67,7 +67,19 @@ export interface CreateClientProviderData extends Omit<ClientProvider, 'id' | 'a
export interface UpdateClientProviderData extends Partial<CreateClientProviderData> {}
export const clientsProvidersApi = {
list: (companyId: number, page = 1, pageSize = 50, filters?: Record<string, any>) => {
list: (
companyId: number,
page = 1,
pageSize = 50,
filters?: Partial<{
name: string;
rfc: string;
/** Clave corta; el backend filtra por coincidencia exacta sin distinguir mayúsculas/minúsculas */
short_name: string;
type: string;
active: string | boolean;
}>
) => {
const params = new URLSearchParams({
company_id: companyId.toString(),
page: page.toString(),

View File

@@ -649,7 +649,10 @@
if (useClientProviderImport) {
try {
const catalogosSettings = allSettings['catalogos'] || {};
const actualizar = catalogosSettings['mode'] === 'update';
const res = await api.clientProviderImports.upload(file, companyId, {
actualizar,
onUploadProgress: onCsvFileUploadProgress
});
if (res.data?.job_id) {