pdv.frontend/src/services/returnsService.js
2026-01-27 16:36:59 -06:00

100 lines
2.9 KiB
JavaScript

import { api, apiURL } from '@Services/Api';
/**
* Servicio para gestionar devoluciones
*/
const returnsService = {
/**
* Obtener lista de devoluciones con paginación
* @param {Object} filters - Filtros de búsqueda (page, q, status, etc.)
* @returns {Promise}
*/
async getReturns(filters = {}) {
return new Promise((resolve, reject) => {
api.get(apiURL('returns'), {
params: filters,
onSuccess: (response) => {
resolve(response.returns || response.models || response);
},
onError: (error) => {
reject(error);
}
});
});
},
/**
* Obtener detalle completo de una devolución con items y seriales
* @param {Number} returnId - ID de la devolución
* @returns {Promise}
*/
async getReturnDetails(returnId) {
return new Promise((resolve, reject) => {
api.get(apiURL(`returns/${returnId}`), {
onSuccess: (response) => {
resolve(response.return || response.model || response);
},
onError: (error) => {
reject(error);
}
});
});
},
/**
* Obtener items devolvibles de una venta
* @param {Number} saleId - ID de la venta
* @returns {Promise}
*/
async getReturnableItems(saleId) {
return new Promise((resolve, reject) => {
api.get(apiURL(`sales/${saleId}/returnable`), {
onSuccess: (response) => {
resolve(response);
},
onError: (error) => {
reject(error);
}
});
});
},
/**
* Crear una nueva devolución
* @param {Object} returnData - Datos de la devolución
* @returns {Promise}
*/
async createReturn(returnData) {
return new Promise((resolve, reject) => {
api.post(apiURL('returns'), {
data: returnData,
onSuccess: (response) => {
resolve(response.return || response.model || response);
},
onError: (error) => {
reject(error);
}
});
});
},
/**
* Cancelar una devolución
* @param {Number} returnId - ID de la devolución
* @returns {Promise}
*/
async cancelReturn(returnId) {
return new Promise((resolve, reject) => {
api.put(apiURL(`returns/${returnId}/cancel`), {
onSuccess: (response) => {
resolve(response.return || response.model || response);
},
onError: (error) => {
reject(error);
}
});
});
}
};
export default returnsService;