100 lines
2.9 KiB
JavaScript
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; |