﻿import { ServiciosRutas, GetHeaderRequest, GetResponseBody, GetResponseBodyFecth } from './RutasConfig.jsx';
import axios from 'axios';

/////////////////// CATALOGO ///////////////////

export const Catalogo_Lista_Request = async (pToken, pEmpresa, pTipo) => {
    const data = { pEmpresa, pTipo }
    const result = await fetch(ServiciosRutas.Catalogo_Lista, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_Lista_Tipos_Request = async (pToken, pEmpresa, pTipos) => {
    const data = { pEmpresa, pTipos }
    const result = await fetch(ServiciosRutas.Catalogo_Lista_Tipos, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_ListarTablaSaldos_Request = async (pToken, pEmpresa, pCuenta, pCC) => {
    const data = { pEmpresa, pCuenta, pCC }
    const result = await fetch(ServiciosRutas.Catalogo_ListarTablaSaldos, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_Consulta_Request = async (pToken, pEmpresa, pCuenta) => {
    const data = { pEmpresa, pCuenta }
    const result = await fetch(ServiciosRutas.Catalogo_Consulta, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Consulta_Comprometidos_Request = async (pToken, pEmpresa, pCuenta, pFecha) => {
    const data = { pEmpresa, pCuenta, pFecha }
    const result = await fetch(ServiciosRutas.Consulta_Comprometidos, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_ConsultaCuenta_Request = async (pToken, pEmpresa, pCuenta) => {
    const data = { pEmpresa, pCuenta }
    const result = await fetch(ServiciosRutas.Catalogo_ConsultaCuenta, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}


export const Catalogo_Guardar_Request = async (pToken, pDatos, pEmpresas) => {
    const data = { pDatos, pEmpresas }
    const result = await fetch(ServiciosRutas.Catalogo_Guardar, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_Guardar_Masivo_Request = async (pToken, pEmpresa, pCuentasId, pNombre, pCuenta, pUtilizaNombre) => {
    const data = { pEmpresa, pCuentasId, pNombre, pCuenta, pUtilizaNombre }
    const result = await fetch(ServiciosRutas.Catalogo_Guardar_Masivo, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_Modificar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await fetch(ServiciosRutas.Catalogo_Modificar, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_ModificarCatTipo_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await fetch(ServiciosRutas.Catalogo_ModificarCatTipo, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_Eliminar_Request = async (pToken, pEmpresa, pCuenta, pUsuario) => {
    const data = { pEmpresa, pCuenta, pUsuario }
    const result = await fetch(ServiciosRutas.Catalogo_Eliminar, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_HayCatalogoCuentas_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await fetch(ServiciosRutas.Catalogo_HayCatalogoCuentas, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Catalogo_ImportarCatalogo_Request = async (pToken, pEmpresaF, pEmpresaD, pImportaCC, pUsuario) => {
    const data = { pEmpresaF, pEmpresaD, pImportaCC, pUsuario }
    const result = await axios.post(ServiciosRutas.Catalogo_ImportarCatalogo, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);

}

/////////////////// CENTRO DE COSTOS ///////////////////

export const CentroCosto_Lista_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(ServiciosRutas.CentroCosto_Lista, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentroCosto_Consulta_Request = async (pToken, pEmpresa, pId) => {
    const data = { pEmpresa, pId }
    const result = await axios.post(ServiciosRutas.CentroCosto_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentroCosto_ConsultaCCosto_Request = async (pToken, pEmpresa, pCCosto) => {
    const data = { pEmpresa, pCCosto }
    const result = await axios.post(ServiciosRutas.CentroCosto_ConsultaCCosto, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentroCosto_Lista_CXCC_Request = async (pToken, pEmpresa, pCuenta) => {
    const data = { pEmpresa, pCuenta }
    const result = await axios.post(ServiciosRutas.CentroCosto_Lista_CXCC, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentroCosto_Lista_CXCCEmpresa_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(ServiciosRutas.CentroCosto_Lista_CXCCEmpresa, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentroCosto_Lista_CCC_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(ServiciosRutas.CentroCosto_Lista_CCC, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentroCosto_Consulta_CXCC_Request = async (pToken, pEmpresa, pCuenta, pCentroC) => {
    const data = { pEmpresa, pCuenta, pCentroC }
    const result = await axios.post(ServiciosRutas.CentroCosto_Consulta_CXCC, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CentroCostos_CentroDefault_Request = async (pToken, pEmpresa, pCuenta) => {
    const data = { pEmpresa, pCuenta }
    const result = await axios.post(ServiciosRutas.CentroCostos_CentroDefault, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const CatalogoCentroCosto_Guardar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(ServiciosRutas.CatalogoCentroCosto_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CatalogoCentroCosto_GuardarCC_Request = async (pToken, pDatos, pEmpresas) => {
    const data = { pDatos, pEmpresas }
    const result = await axios.post(ServiciosRutas.CatalogoCentroCosto_GuardarCC, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CatalogoCentroCosto_Modificar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(ServiciosRutas.CatalogoCentroCosto_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CatalogoCentroCosto_ModificarCC_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(ServiciosRutas.CatalogoCentroCosto_ModificarCC, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CatalogoCentroCosto_Eliminar_Request = async (pToken, pEmpresa, pId) => {
    const data = { pEmpresa, pId }
    const result = await axios.post(ServiciosRutas.CatalogoCentroCosto_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const CatalogoCentroCosto_EliminarCC_Request = async (pToken, pEmpresa, pId, pUsuario) => {
    const data = { pEmpresa, pId, pUsuario }
    const result = await axios.post(ServiciosRutas.CatalogoCentroCosto_EliminarCC, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

/////////////////// CXC Clientes ///////////////////

export const CXCClientes_Listar_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(ServiciosRutas.Clientes_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

/////////////////// CXP Proveedores ///////////////////

export const CXPProveedores_Listar_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(ServiciosRutas.Proveedores_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

/////////////////// PARAMETROS ///////////////////


export const ParametrosPlanilla_Consulta_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await axios.post(ServiciosRutas.ParametrosPlanilla_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const Monedas_Consulta_Request = async (pToken) => {
    const data = {}
    const result = await axios.post(ServiciosRutas.Monedas_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


//////////////PARAMETROS GENERALES///////////////////////

export const ParametroGenerales_Consulta_Request = async (pToken, pNombre) => {
    const data = { pNombre }
    const result = await axios.post(ServiciosRutas.ParametroGenerales_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const ParametroGenerales_Listar_Request = async (pToken) => {
    const data = {}
    const result = await axios.post(ServiciosRutas.ParametroGenerales_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const ParametroGenerales_Guardar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(ServiciosRutas.ParametroGenerales_Guardar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}

export const ParametroGenerales_Modificar_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await axios.post(ServiciosRutas.ParametroGenerales_Modificar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


export const ParametrosGenerales_GuardarAct_Request = async (pToken, pParametrosGral) => {
    try {
        const data = { pParametrosGral }
        const result = await axios.post(ServiciosRutas.ParametrosGenerales_GuardarActualizar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
        return await GetResponseBody(result);
    } catch (error) {
        let pResult = {};
        pResult.status = 401;
        let _result = GetResponseBodyError(pResult);
        return _result;
    }
}


export const ParametroGenerales_Eliminar_Request = async (pToken, pNombre) => {
    const data = { pNombre }
    const result = await axios.post(ServiciosRutas.ParametroGenerales_Eliminar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}


//////////////PARAMETROS GENERALES DATOS///////////////////////
export const DatosGral_Consulta_Request = async (pToken) => {
    const data = {}
    const result = await fetch(ServiciosRutas.DatosGral_Consulta, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

//////////////////////CIERRES DE MES//////////////////////////
export const MesesCerrados_Consulta_Request = async (pToken, pEmpresa, pPeriodo) => {
    const data = { pEmpresa, pPeriodo }
    const result = await axios.post(ServiciosRutas.MesesCerrados_Consulta, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
    return await GetResponseBody(result);
}
