import { MantenimientosRutas, GetHeaderRequest, GetResponseBody, GetResponseBodyFecth, GetHeaderRequestFormData } from './RutasConfig.jsx';
import axios from 'axios';

/////////////////// CATALOGO ///////////////////

export const CatalogoHist_ListarTablaSaldos_Request = async (pToken, pEmpresa, pCuenta, pCC, pInicioPeriodo,FinPeriodo) => {
    const data = { pEmpresa, pCuenta, pCC, pInicioPeriodo,FinPeriodo }
    const result = await fetch(MantenimientosRutas.CatalogoHist_ListarTablaSaldos,{
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const CatalogoHist_ListarPeriodos_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await fetch(MantenimientosRutas.CatalogoHist_ListarPeriodos,{
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

/////////////////// CATALOGO X CENTRO COSTO ////////////////////

export const CatalogoXCentroCosto_Consulta_Request = async (pToken, pEmpresa,pID,pCentroCosto) => {
    const data = { pEmpresa,pID, pCentroCosto}
    const result = await axios.post(MantenimientosRutas.CatalogoXCentroCosto_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const CatalogoXCentroCosto_Listar_Request = async (pToken,pEmpresa) => {
    const data = {pEmpresa}
    const result = await axios.post(MantenimientosRutas.CatalogoXCentroCosto_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const CatalogoXCentroCosto_ListarAsociarCC_Request = async (pToken,pEmpresa,pCuenta) => {
    const data = {pEmpresa,pCuenta}
    const result = await axios.post(MantenimientosRutas.CatalogoXCentroCosto_ListarAsociarCC, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const CatalogoXCentroCosto_Guardar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.CatalogoXCentroCosto_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const CatalogoXCentroCosto_Modificar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.CatalogoXCentroCosto_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const CatalogoXCentroCosto_ModificarEstado_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.CatalogoXCentroCosto_ModificarEstado, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const CatalogoXCentroCosto_Eliminar_Request = async (pToken, pEmpresa,pID,pCentroCosto) => {
    const data = {  pEmpresa,pID,pCentroCosto }
    const result = await axios.post(MantenimientosRutas.CatalogoXCentroCosto_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Catalogo_AsociarCuenta_CentroCostoSP_Request = async (pToken,pEmpresa,pCuentaID,pCentroC) => {
    console.log(`Catalogo_AsociarCuenta_CentroCostoSP_Request pToken: ${pToken}, pEmpresa: ${pEmpresa}, pCuentaID: ${pCuentaID}, pCentroC: ${pCentroC}`);
    const data = {pEmpresa,pCuentaID,pCentroC}
    const result = await axios.post(MantenimientosRutas.Catalogo_AsociarCuenta_CentroCostoSP, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

/////////////CENTROS DE COSTOS //////////////////

export const CentrosCost_Guardar_Request = async (pToken, pDatos) => {
    const data = {pDatos}
    const result = await axios.post(MantenimientosRutas.CentrosCost_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentrosCost_Modificar_Request = async (pToken, pDatos) => {
    const data = {pDatos}
    const result = await axios.post(MantenimientosRutas.CentrosCost_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentrosCostos_Modificar_Usuario_Request = async (pToken, pDatos) => {
    const data = {pDatos}
    const result = await axios.post(MantenimientosRutas.CentrosCost_Modificar_Usuario, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const CentrosCostos_Eliminar_Request = async (pToken, pIdCC) => {
    const data = {pIdCC}
    const result = await axios.post(MantenimientosRutas.CentrosCost_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const CentrosCostos_Listar_Request = async (pToken,pEmpresa, pID, pNumero) => {
    const data = {pEmpresa, pID, pNumero}
    const result = await axios.post(MantenimientosRutas.CentrosCost_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentrosCostos_Listar_Porcentaje_Request = async (pToken,pEmpresa, pID, pNumero) => {
    const data = {pEmpresa, pID, pNumero}
    const result = await axios.post(MantenimientosRutas.CentrosCostos_Listar_Porcentaje, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

/////////////CENTROS DE UTILIDAD //////////////////

export const CentrosUtilidad_Guardar_Request = async (pToken, pDatos, pCentroCostos, pCuentas) => {
    const data = { pDatos, pCentroCostos, pCuentas}
    const result = await axios.post(MantenimientosRutas.CentrosUtilidad_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const CentrosUtilidad_Modificar_Request = async (pToken, pDatos, pCentroCostos, pCuentas) => {
    const data = { pDatos, pCentroCostos, pCuentas}
    const result = await axios.post(MantenimientosRutas.CentrosUtilidad_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const CentrosUtilidad_Eliminar_Request = async (pToken, pEmpresa, pId,pUsuario) => {
    const data = {pEmpresa, pId,pUsuario}
    const result = await axios.post(MantenimientosRutas.CentrosUtilidad_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const CentrosUtilidad_Listar_Request = async (pToken,pEmpresa) => {
    const data = {pEmpresa}
    const result = await axios.post(MantenimientosRutas.CentrosUtilidad_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentrosUtilidad_Consulta_Request = async (pToken, pEmpresa, pId) => {
    const data = { pEmpresa, pId }
    const result = await axios.post(MantenimientosRutas.CentrosUtilidad_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
//////////////CONTABILIDAD///////////////////////

export const Contabilidad_CerrarMes_Request = async (pToken, pEmpresa, pUsuario) => {
    const data = { pEmpresa, pUsuario }
    const result = await fetch(MantenimientosRutas.Contabilidad_CerrarMes, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
};

export const Contabilidad_CerrarPeriodo_Request = async (pToken, pEmpresa, pUsuario) => {
    const data = { pEmpresa, pUsuario }
    const result = await fetch(MantenimientosRutas.Contabilidad_CerrarPeriodo, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
};

export const Contabilidad_HayAuxiliaresSinCerrar_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await fetch(MantenimientosRutas.Contabilidad_HayAuxiliaresSinCerrar, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
};

export const Contabilidad_ObtenerContadorAsiento_Request = async (pToken, pEmpresa, pInicio, pNombre) => {
    const data = { pEmpresa, pInicio, pNombre }
    const result = await axios.post(MantenimientosRutas.Contabilidad_ObtenerContadorAsiento, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

//////////////CORPORACION///////////////////////
export const Corporacion_Consulta_Request = async (pToken, pCorporacionId) => {
    const data = { pCorporacionId }
    const result = await axios.post(MantenimientosRutas.Corporacion_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Corporacion_Listar_Request = async (pToken) => {
    const data = {}
    const result = await axios.post(MantenimientosRutas.Corporacion_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Corporacion_Guardar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.Corporacion_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Corporacion_Modificar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.Corporacion_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Corporacion_Eliminar_Request = async (pToken, pCorporacionId) => {
    const data = { pCorporacionId }
    const result = await axios.post(MantenimientosRutas.Corporacion_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

///////////////////DETALLEAASIENTO///////////////////////

export const SaldoComprometidoXCuenta_Request = async (pToken, pEmpresa, pCuenta, pFecha, pEstado) => {
    const data = { pEmpresa, pCuenta, pFecha, pEstado }
    const result = await axios.post(MantenimientosRutas.SaldoComprometidoXCuenta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const DetalleAsiento_Listar_Request = async (pToken, pAsiento) => {
    const data = { pAsiento }
    const result = await axios.post(MantenimientosRutas.DetalleAsiento_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

///////////////////DETALLECENTROCOSTO/////////////////////

export const DetalleCentroCostos_Listar_Request = async (pToken, pCentro, pCuenta) => {
    const data = { pCentro, pCuenta }
    const result = await axios.post(MantenimientosRutas.DetalleCentroCostos_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const DetalleCentroCostos_GuardarLista_Request = async (pToken, pListaDetalles) => {
    const data = { pListaDetalles }
    const result = await axios.post(MantenimientosRutas.DetalleCentroCostos_GuardarLista, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const DetalleCentroCostos_Eliminar_Request = async (pToken, pCentro, pCuenta) => {
    const data = { pCentro, pCuenta }
    const result = await axios.post(MantenimientosRutas.DetalleCentroCostos_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

///////////////////DETALLEPLANTILLA///////////////////////

export const DetallePlantillas_Consultar_Request = async (pToken, pPlantilla) => {
    const data = { pPlantilla }
    const result = await axios.post(MantenimientosRutas.DetallePlantillas_Consultar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const DetallePlantillas_Listar_Request = async (pToken, pPlantilla) => {
    const data = { pPlantilla }
    const result = await axios.post(MantenimientosRutas.DetallePlantillas_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

//////////////DETALLE DENTRO UTILIDADES //////////////////

export const DetalleCentroUtilidad_Listar_Request = async (pToken,pCentro, pTipoRef) => {
    const data = {pCentro, pTipoRef}
    const result = await axios.post(MantenimientosRutas.DetalleCentroUtilidad_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


//////////////Empleado Imagen //////////////////


export const EmpresasImagen_Consulta_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(MantenimientosRutas.EmpresaImagen_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const EmpresasImagen_SubirImagen_Request = async (pToken, pDatos, pFile) => {
    const data = { pDatos, pFile }
    let form = new FormData();
    form.append('pDatos', pDatos);
    form.append('pFile', pFile);
    const result = await axios.post(MantenimientosRutas.EmpresaImagen_SubirImagen, form, { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

///////////////////ENCAPLANTILLAS///////////////////////

export const EncaPlantillas_Consultar_Request = async (pToken, pPlantilla) => {
    const data = { pPlantilla }
    const result = await axios.post(MantenimientosRutas.EncaPlantillas_Consultar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncaPlantillas_Eliminar_Request = async (pToken, pID) => {
    const data = { pID }
    const result = await axios.post(MantenimientosRutas.EncaPlantillas_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncaPlantillas_Guardar_Request = async (pToken, pDatos, pListaDetalle) => {
    const data = { pDatos, pListaDetalle }
    const result = await axios.post(MantenimientosRutas.EncaPlantillas_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncaPlantillas_Listar_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(MantenimientosRutas.EncaPlantillas_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const EncaPlantillas_Modificar_Request = async (pToken, pDatos, pListaDetalle) => {
    const data = { pDatos, pListaDetalle }
    const result = await axios.post(MantenimientosRutas.EncaPlantillas_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncaPlantillas_ModificarFechaAct_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.EncaPlantillas_ModificarFechaAct, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

///////////////////ENCABEZADOASIENTO///////////////////////

export const EncabezadoAsiento_Aplicar_Request = async (pToken, pEmpresa, pAsiento, pAplicaSeleccionado, pPorPeriodo, pPorNumero, pFecha, pNumero, pNumeroHasta, pTipo, pUsuario) => {
    const data = { pEmpresa, pAsiento, pAplicaSeleccionado, pPorPeriodo, pPorNumero, pFecha, pNumero, pNumeroHasta, pTipo, pUsuario }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_Aplicar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_CambiarMes_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_CambiarMes, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_Desbloquear_Request = async (pToken, pListaAsientos, pEmpresa, pUsuario) => {
    const data = { pListaAsientos, pEmpresa, pUsuario }
    const result = await fetch(MantenimientosRutas.EncabezadoAsiento_Desbloquear, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
};

export const EncabezadoAsiento_ExportarAExcel_Request = async (pToken, pEmpresa, pId) => {

    const headers = {
        'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8',
        'Authorization': `Bearer ${pToken}`
    }

    const config = { 
                     method: 'GET', 
                     url: `${MantenimientosRutas.EncabezadoAsiento_ExportarAExcel}?pEmpresa=${pEmpresa}&pId=${pId}`,
                     responseType: 'blob', 
                     headers 
                   };

    console.log(`ReporteGeneralDePlanilla_Request config: ${JSON.stringify(config)}`);
    let datos = await axios(config);
    console.log(`ReporteGeneralDePlanilla_Request config: ${JSON.stringify(datos)}`);
    return datos;
    //return await axios(config);
}

export const HayAsientosCentroCosto_Request = async (pToken, pEmpresa, pCentroCosto) => {
    const data = { pEmpresa, pCentroCosto }
    const result = await fetch(MantenimientosRutas.HayAsientosCentroCosto, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
};

export const EncabezadoAsientos_Existe_Cuenta_Request = async (pToken, pEmpresa, pCuenta) => {
    const data = { pEmpresa, pCuenta }
    const result = await fetch(MantenimientosRutas.EncabezadoAsientos_Existe_Cuenta, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
};

export const EncabezadoAsiento_Guardar_Request = async (pToken, pDatos, pListaDetalle) => {
    const data = { pDatos, pListaDetalle }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_ObtenerContador_Request = async (pToken, pEmpresa, pFecha, pNombre) => {
    const data = { pEmpresa, pFecha, pNombre }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_ObtenerContador, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_ObtenerAsiento_Request = async (pToken, pAsiento) => {
    const data = { pAsiento }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_ObtenerAsiento, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_Listar_Request = async (pToken, pEmpresa, pEstado, pFecha, pTipo) => {
    const data = { pEmpresa, pEstado, pFecha, pTipo }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsientosReporte_Listar = async (pToken, pEmpresa, pEstado, pFecha, pTipo, pNumeroDesde, pNumeroHasta, pFechaDesde, pFechaHasta) => {
    const data = { pEmpresa, pEstado, pFecha, pTipo, pNumeroDesde, pNumeroHasta, pFechaDesde, pFechaHasta }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsientosReporte_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_ListarUtilizado_Request = async (pToken, pEmpresa, pEstado, pFecha, pUtilizado) => {
    const data = { pEmpresa, pEstado, pFecha, pUtilizado }
    const result = await fetch(MantenimientosRutas.EncabezadoAsiento_ListarUtilizado, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
};

export const EncabezadoAsiento_Modificar_Request = async (pToken, pDatos, pListaDetalle) => {
    const data = { pDatos, pListaDetalle }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_ModificarDesdeExcel_Request = async (pToken, pDatos, pListaDetalle, pUsuario_Id) => {
    const data = { pDatos, pListaDetalle, pUsuario_Id }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_ModificarDesdeExcel, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_ModificarEstado_Request = async (pToken, pDatos, pEstadoNuevo, pPorPeriodo, pPorNumero, pPorFechaDigitado, pNumeroIni, pNumeroFin, pFecha1, pFecha2) => {
    const data = { pDatos, pEstadoNuevo, pPorPeriodo, pPorNumero, pPorFechaDigitado, pNumeroIni, pNumeroFin, pFecha1, pFecha2 }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_ModificarEstado, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_ModificarUtilizado_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_ModificarUtilizado, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const EncabezadoAsiento_Reversar_Request = async (pToken, pEmpresa, pAsiento, pDesaplicar, pFecha, pUsuario) => {
    const data = { pEmpresa, pAsiento, pDesaplicar, pFecha, pUsuario }
    const result = await axios.post(MantenimientosRutas.EncabezadoAsiento_Reversar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

////////////FORMATOS/////////////////////////////
export const Cantidad_DecimalesPocentaje_Request = async (pToken) => {
    const data = {}
    const result = await axios.post(MantenimientosRutas.Cantidad_DecimalesPocentaje, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const Cantidad_DecimalesMoneda_Request = async (pToken) => {
    const data = {}
    const result = await axios.post(MantenimientosRutas.Cantidad_DecimalesMoneda, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const Cantidad_DecimalesCantidad_Request = async (pToken) => {
    const data = {}
    const result = await axios.post(MantenimientosRutas.Cantidad_DecimalesCantidad, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

//////////////PARAMETROS///////////////////////
export const Parametros_Consulta_Request = async (pToken, pEmpresa, pTipoAsiento) => {
    const data = { pEmpresa, pTipoAsiento }
    const result = await axios.post(MantenimientosRutas.Parametros_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Parametros_Listar_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(MantenimientosRutas.Parametros_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Parametros_Guardar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.Parametros_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Parametros_Modificar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.Parametros_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const Parametros_Eliminar_Request = async (pToken, pEmpresa, pTipoAsiento) => {
    const data = { pEmpresa, pTipoAsiento }
    const result = await axios.post(MantenimientosRutas.Parametros_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

///////////////////PARAMETRO CADENAS//////////////////////
export const ParametroCadena_Listar_Request = async (pToken, pEmpresa) => {
    const data = {pEmpresa}
    const result = await fetch(MantenimientosRutas.ParametroCadena_Listar,
        {
            method: 'POST',
            headers: GetHeaderRequest(pToken),
            body: JSON.stringify(data)
        });
    return await GetResponseBodyFecth(result);
}


///////////////////SUBTIPOS CUENTAS///////////////////////

export const SubTiposCuentas_Listar_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa: pEmpresa }
    const result = await fetch(MantenimientosRutas.SubTiposCuentas_Listar, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
};

export const SubTiposCuentas_Consulta_Request = async (pToken, pId) => {
    const data = { pId: pId }
    const result = await fetch(MantenimientosRutas.SubTiposCuentas_Consulta, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}
export const SubTiposCuentas_Guardar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await fetch(MantenimientosRutas.SubTiposCuentas_Guardar, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data),
    });
    return await GetResponseBodyFecth(result);
}
export const SubTiposCuentas_Modificar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await fetch(MantenimientosRutas.SubTiposCuentas_Modificar, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data),
    });
    return await GetResponseBodyFecth(result);
}
export const SubTiposCuentas_Eliminar_Request = async (pToken, pId, pUsuario) => {
    const data = { pId, pUsuario }
    const result = await fetch(MantenimientosRutas.SubTiposCuentas_Eliminar, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data),
    });
    return await GetResponseBodyFecth(result);
} 

export const SubTiposCuentas_ListTipoCuentas_Request = async (pToken, pEmpresa, pTipos) => {
    const data = { pEmpresa, pTipos }
    const result = await fetch(MantenimientosRutas.SubTiposCuentas_ListTipoCuentas, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}


///////////////////TIPOS ASIENTOS///////////////////////
export const TipoAsiento_Listar_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(MantenimientosRutas.TipoAsiento_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const TipoAsiento_Consulta_Request = async (pToken, pEmpresa, pTipoAsiento) => {
    const data = { pEmpresa, pTipoAsiento }
    const result = await axios.post(MantenimientosRutas.TipoAsiento_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const TipoAsientos_ObtenerTotalTipoAsiento_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(MantenimientosRutas.TipoAsientos_ObtenerTotalTipoAsiento, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const TipoAsiento_Guardar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.TipoAsiento_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const TipoAsiento_Modificar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(MantenimientosRutas.TipoAsiento_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
export const TipoAsiento_Eliminar_Request = async (pToken, pEmpresa, pTipoAsiento) => {
    const data = { pEmpresa, pTipoAsiento }
    const result = await axios.post(MantenimientosRutas.TipoAsiento_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const TpoAsiento_ImportarTipoAsiento_Request = async (pToken, pEmpresaF, pEmpresaD, pUsuario) => {
    const data = { pEmpresaF, pEmpresaD, pUsuario }
    const result = await axios.post(MantenimientosRutas.TpoAsiento_ImportarTipoAsiento, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

//////////////////PRESUPUESTO//////////////////////
export const Presupuesto_EliminarLista_Request = async (pToken, pListaPresupuestos) => {
    const data = { pListaPresupuestos }
    const result = await axios.post(MantenimientosRutas.Presupuesto_EliminarLista, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const Presupuesto_GuardarLista_Request = async (pToken, pListaPresupuestos) => {
    const data = { pListaPresupuestos }
    const result = await axios.post(MantenimientosRutas.Presupuesto_GuardarLista, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const Presupuesto_Listar_Request = async (pToken, pEmpresa, pCuenta, pCentro) => {
    const data = { pEmpresa, pCuenta, pCentro }
    const result = await axios.post(MantenimientosRutas.Presupuesto_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

//////////////////MÓDULOS CONCILIA//////////////////////
export const ModulosConcilia_Listar_Request = async (pToken, pNombre, pConstante) => {
    const data = { pNombre, pConstante }
    const result = await axios.post(MantenimientosRutas.ModulosConcilia_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

//////////////////CONCILIACIÓN DE AUXILIARES//////////////////////
export const Conciliacion_Busca_Cuentas = async (pToken, pEmpresa, pModulo) => {
    const data = { pEmpresa, pModulo }
    const result = await axios.post(MantenimientosRutas.Conciliacion_Busca_Cuentas, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const Conciliacion_Datos_Concilia = async (pToken, pEmpresa, pModulo, pPeriodo, pCuentas) => {
    const data = { pEmpresa, pModulo, pPeriodo,pCuentas }
    const result = await axios.post(MantenimientosRutas.Conciliacion_Datos_Concilia , JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const ConsularDatos_Reporte_Request = async (pToken, pEmpresa, pModulo, pPeriodo, pCuentas, pTipo) => {
    const data = { pEmpresa, pModulo, pPeriodo, pCuentas, pTipo}
    const result = await axios.post(MantenimientosRutas.ConsultarDatos_Reporte  , JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}