added expense releated master - Expense Type, status and paymentModa
This commit is contained in:
parent
b9a75efd5c
commit
d580ca0a15
@ -12,213 +12,6 @@ import showToast from "../../services/toastService";
|
||||
|
||||
|
||||
|
||||
// const useMaster = () => {
|
||||
|
||||
// const selectedMaster = useSelector((store)=>store.localVariables.selectedMaster);
|
||||
// const [data, setData] = useState([]);
|
||||
// const [loading, setLoading] = useState(true);
|
||||
// const [error, setError] = useState("");
|
||||
// useEffect(() => {
|
||||
// const fetchData = async () => {
|
||||
// if (!selectedMaster) return;
|
||||
// setLoading(true);
|
||||
// try {
|
||||
// const cachedData = getCachedData(selectedMaster);
|
||||
// if (cachedData) {
|
||||
|
||||
// setData(cachedData);
|
||||
|
||||
// } else {
|
||||
// let response;
|
||||
// switch (selectedMaster) {
|
||||
// case "Application Role":
|
||||
// response = await MasterRespository.getRoles();
|
||||
// response = response.data;
|
||||
// break;
|
||||
// case "Job Role":
|
||||
// response = await MasterRespository.getJobRole();
|
||||
// response = response.data
|
||||
// break;
|
||||
// case "Activity":
|
||||
// response = await MasterRespository.getActivites();
|
||||
// response = response.data
|
||||
// break;
|
||||
// case "Work Category":
|
||||
// response = await MasterRespository.getWorkCategory();
|
||||
// response = response.data
|
||||
// break;
|
||||
// case "Contact Category":
|
||||
// response = await MasterRespository.getContactCategory();
|
||||
// response = response.data
|
||||
// break;
|
||||
// case "Contact Tag":
|
||||
// response = await MasterRespository.getContactTag();
|
||||
// response = response.data
|
||||
// break;
|
||||
// case "Status":
|
||||
// response = [{description: null,featurePermission: null,id: "02dd4761-363c-49ed-8851-3d2489a3e98d",status:"status 1"},{description: null,featurePermission: null,id: "03dy9761-363c-49ed-8851-3d2489a3e98d",status:"status 2"},{description: null,featurePermission: null,id: "03dy7761-263c-49ed-8851-3d2489a3e98d",status:"Status 3"}];
|
||||
// break;
|
||||
// default:
|
||||
// response = [];
|
||||
// }
|
||||
|
||||
// if (response) {
|
||||
// setData(response);
|
||||
// cacheData(selectedMaster, response);
|
||||
// }
|
||||
// }
|
||||
// } catch (err) {
|
||||
// setError("Failed to fetch data.");
|
||||
// } finally {
|
||||
// setLoading(false);
|
||||
// }
|
||||
// };
|
||||
|
||||
// if ( selectedMaster )
|
||||
// {
|
||||
|
||||
// fetchData();
|
||||
// }
|
||||
|
||||
// }, [selectedMaster]);
|
||||
|
||||
|
||||
|
||||
// return { data, loading, error }
|
||||
// };
|
||||
|
||||
|
||||
|
||||
|
||||
// export const useActivitiesMaster = () =>
|
||||
// {
|
||||
// const [ activities, setActivites ] = useState( [] )
|
||||
// const [ loading, setloading ] = useState( false );
|
||||
// const [ error, setError ] = useState()
|
||||
// const fetchActivities =async () => {
|
||||
// setloading(true);
|
||||
// try {
|
||||
// const response = await MasterRespository.getActivites();
|
||||
// setActivites(response.data);
|
||||
// cacheData( "ActivityMaster", response.data );
|
||||
// setloading(false);
|
||||
// } catch (err) {
|
||||
// setError(err);
|
||||
// setloading(false);
|
||||
// }
|
||||
// }
|
||||
// useEffect( () =>
|
||||
// {
|
||||
// const cacheddata = getCachedData( "ActivityMaster" );
|
||||
// if ( !cacheddata )
|
||||
// {
|
||||
// fetchActivities()
|
||||
// } else
|
||||
// {
|
||||
// setActivites(cacheddata);
|
||||
// }
|
||||
// }, [] )
|
||||
|
||||
// return {activities,loading,error}
|
||||
// }
|
||||
|
||||
// export const useWorkCategoriesMaster = () =>
|
||||
// {
|
||||
// const [ categories, setCategories ] = useState( [] )
|
||||
// const [ categoryLoading, setloading ] = useState( false );
|
||||
// const [ categoryError, setError ] = useState( "" )
|
||||
|
||||
// const fetchCategories =async () => {
|
||||
// const cacheddata = getCachedData("Work Category");
|
||||
|
||||
// if (!cacheddata) {
|
||||
// setloading(true);
|
||||
// try {
|
||||
// const response = await MasterRespository.getWorkCategory();
|
||||
// setCategories(response.data);
|
||||
// cacheData("Work Category", response.data);
|
||||
// } catch (err) {
|
||||
// setError(err);
|
||||
// console.log(err);
|
||||
// } finally {
|
||||
// setloading(false);
|
||||
// }
|
||||
// } else {
|
||||
// setCategories(cacheddata);
|
||||
// }
|
||||
// }
|
||||
// useEffect( () =>
|
||||
// {
|
||||
// fetchCategories()
|
||||
// }, [] )
|
||||
|
||||
// return {categories,categoryLoading,categoryError}
|
||||
// }
|
||||
|
||||
// export const useContactCategory = () =>
|
||||
// {
|
||||
// const [ contactCategory, setContactCategory ] = useState( [] )
|
||||
// const [ loading, setLoading ] = useState( false )
|
||||
// const [ Error, setError ] = useState()
|
||||
|
||||
// const fetchConatctCategory = async() =>
|
||||
// {
|
||||
// const cache_Category = getCachedData( "Contact Category" );
|
||||
// if ( !cache_Category )
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// let resp = await MasterRespository.getContactCategory();
|
||||
// setContactCategory( resp.data );
|
||||
// cacheData("Contact Category",resp.data)
|
||||
// } catch ( error )
|
||||
// {
|
||||
// setError(error)
|
||||
// }
|
||||
// } else
|
||||
// {
|
||||
// setContactCategory(cache_Category)
|
||||
// }
|
||||
// }
|
||||
|
||||
// useEffect( () =>
|
||||
// {
|
||||
// fetchConatctCategory()
|
||||
// }, [] )
|
||||
// return { contactCategory,loading,Error}
|
||||
// }
|
||||
// export const useContactTags = () => {
|
||||
// const [contactTags, setContactTags] = useState([]);
|
||||
// const [loading, setLoading] = useState(false);
|
||||
// const [error, setError] = useState(null);
|
||||
|
||||
// useEffect(() => {
|
||||
// const fetchContactTag = async () => {
|
||||
// const cache_Tags = getCachedData("Contact Tag");
|
||||
|
||||
// if (!cache_Tags) {
|
||||
// setLoading(true);
|
||||
// try {
|
||||
// const resp = await MasterRespository.getContactTag();
|
||||
// setContactTags(resp.data);
|
||||
// cacheData("Contact Tag", resp.data);
|
||||
// } catch (err) {
|
||||
// setError(err);
|
||||
// } finally {
|
||||
// setLoading(false);
|
||||
// }
|
||||
// } else {
|
||||
// setContactTags(cache_Tags);
|
||||
// }
|
||||
// };
|
||||
|
||||
// fetchContactTag();
|
||||
// }, []);
|
||||
|
||||
// return { contactTags, loading, error };
|
||||
// };
|
||||
|
||||
// Separate matser-------------
|
||||
|
||||
export const useActivitiesMaster = () =>
|
||||
{
|
||||
@ -300,6 +93,76 @@ export const useContactTags = () => {
|
||||
return { contactTags, loading, error };
|
||||
};
|
||||
|
||||
|
||||
export const useExpenseType =()=>{
|
||||
const {
|
||||
data: ExpenseTypes = [],
|
||||
isLoading: loading,
|
||||
error,
|
||||
} = useQuery({
|
||||
queryKey: ["Expense Type"],
|
||||
queryFn: async () => {
|
||||
const res = await MasterRespository.getExpenseType()
|
||||
return res.data;
|
||||
},
|
||||
onError: (error) => {
|
||||
showToast(
|
||||
error?.response?.data?.message ||
|
||||
error.message ||
|
||||
"Failed to fetch Expense Type",
|
||||
"error"
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
return { ExpenseTypes, loading, error };
|
||||
}
|
||||
export const usePaymentMode =()=>{
|
||||
const {
|
||||
data: PaymentModes = [],
|
||||
isLoading: loading,
|
||||
error,
|
||||
} = useQuery({
|
||||
queryKey: ["Payment Mode"],
|
||||
queryFn: async () => {
|
||||
const res = await MasterRespository.getPaymentMode()
|
||||
return res.data;
|
||||
},
|
||||
onError: (error) => {
|
||||
showToast(
|
||||
error?.response?.data?.message ||
|
||||
error.message ||
|
||||
"Failed to fetch Payment Mode",
|
||||
"error"
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
return { PaymentModes, loading, error };
|
||||
}
|
||||
export const useExpenseStatus =()=>{
|
||||
const {
|
||||
data: ExpenseStatus = [],
|
||||
isLoading: loading,
|
||||
error,
|
||||
} = useQuery({
|
||||
queryKey: ["Expense Status"],
|
||||
queryFn: async () => {
|
||||
const res = await MasterRespository.getExpenseStatus()
|
||||
return res.data;
|
||||
},
|
||||
onError: (error) => {
|
||||
showToast(
|
||||
error?.response?.data?.message ||
|
||||
error.message ||
|
||||
"Failed to fetch Expense Status",
|
||||
"error"
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
return { ExpenseStatus, loading, error };
|
||||
}
|
||||
// ===Application Masters Query=================================================
|
||||
|
||||
const fetchMasterData = async (masterType) => {
|
||||
@ -316,6 +179,12 @@ const fetchMasterData = async (masterType) => {
|
||||
return (await MasterRespository.getContactCategory()).data;
|
||||
case "Contact Tag":
|
||||
return (await MasterRespository.getContactTag()).data;
|
||||
case "Expense Type":
|
||||
return (await MasterRespository.getExpenseType()).data;
|
||||
case "Payment Mode":
|
||||
return (await MasterRespository.getPaymentMode()).data;
|
||||
case "Expense Status":
|
||||
return (await MasterRespository.getExpenseStatus()).data;
|
||||
case "Status":
|
||||
return [
|
||||
{
|
||||
@ -666,6 +535,140 @@ export const useUpdateContactTag = (onSuccessCallback) =>
|
||||
});
|
||||
}
|
||||
|
||||
// ----------------------Expense Type------------------
|
||||
export const useCreateExpenseType = (onSuccessCallback)=>{
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation( {
|
||||
mutationFn: async ( payload ) =>
|
||||
{
|
||||
const resp = await MasterRespository.createExpenseType(payload);
|
||||
return resp.data;
|
||||
},
|
||||
onSuccess: ( data ) =>
|
||||
{
|
||||
queryClient.invalidateQueries( {queryKey:[ "masterData", "Expense Type" ]} )
|
||||
showToast( "Expense Type added successfully", "success" );
|
||||
if(onSuccessCallback) onSuccessCallback(data)
|
||||
},
|
||||
onError: ( error ) =>
|
||||
{
|
||||
showToast(error.message || "Something went wrong", "error");
|
||||
}
|
||||
})
|
||||
}
|
||||
export const useUpdateExpenseType = (onSuccessCallback) =>
|
||||
{
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation({
|
||||
mutationFn: async ( {id, payload} ) =>
|
||||
{
|
||||
const response = await MasterRespository.updateExpenseType(id,payload);
|
||||
return response.data;
|
||||
},
|
||||
onSuccess: (data, variables) => {
|
||||
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: ["masterData", "Expense Type"],
|
||||
});
|
||||
showToast("Expense Type updated successfully.", "success");
|
||||
|
||||
if (onSuccessCallback) onSuccessCallback(data);
|
||||
},
|
||||
onError: (error) => {
|
||||
showToast(error.message || "Something went wrong", "error");
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// -----------------Payment Mode -------------
|
||||
|
||||
export const useCreatePaymentMode = (onSuccessCallback)=>{
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation( {
|
||||
mutationFn: async ( payload ) =>
|
||||
{
|
||||
const resp = await MasterRespository.createPaymentMode(payload);
|
||||
return resp.data;
|
||||
},
|
||||
onSuccess: ( data ) =>
|
||||
{
|
||||
queryClient.invalidateQueries( {queryKey:[ "masterData", "Payment Mode" ]} )
|
||||
showToast( "Payment Mode added successfully", "success" );
|
||||
if(onSuccessCallback) onSuccessCallback(data)
|
||||
},
|
||||
onError: ( error ) =>
|
||||
{
|
||||
showToast(error.message || "Something went wrong", "error");
|
||||
}
|
||||
})
|
||||
}
|
||||
export const useUpdatePaymentMode = (onSuccessCallback)=>{
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation( {
|
||||
mutationFn: async ( {id,payload} ) =>
|
||||
{
|
||||
const resp = await MasterRespository.updatePaymentMode(id,payload);
|
||||
return resp.data;
|
||||
},
|
||||
onSuccess: ( data ) =>
|
||||
{
|
||||
queryClient.invalidateQueries( {queryKey:[ "masterData", "Payment Mode" ]} )
|
||||
showToast( "Payment Mode Updated successfully", "success" );
|
||||
if(onSuccessCallback) onSuccessCallback(data)
|
||||
},
|
||||
onError: ( error ) =>
|
||||
{
|
||||
showToast(error.message || "Something went wrong", "error");
|
||||
}
|
||||
})
|
||||
}
|
||||
// -------------------Expense Status----------------------------------
|
||||
export const useCreateExpenseStatus =(onSuccessCallback)=>{
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation( {
|
||||
mutationFn: async ( payload ) =>
|
||||
{
|
||||
const resp = await MasterRespository.createExpenseStatus(payload);
|
||||
return resp.data;
|
||||
},
|
||||
onSuccess: ( data ) =>
|
||||
{
|
||||
queryClient.invalidateQueries( {queryKey:[ "masterData", "Expense Status" ]} )
|
||||
showToast( "Expense Status added successfully", "success" );
|
||||
if(onSuccessCallback) onSuccessCallback(data)
|
||||
},
|
||||
onError: ( error ) =>
|
||||
{
|
||||
showToast(error.message || "Something went wrong", "error");
|
||||
}
|
||||
})
|
||||
}
|
||||
export const useUpdateExpenseStatus = (onSuccessCallback)=>{
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation( {
|
||||
mutationFn: async ( {id,payload} ) =>
|
||||
{
|
||||
const resp = await MasterRespository.updateExepnseStatus(id,payload);
|
||||
return resp.data;
|
||||
},
|
||||
onSuccess: ( data ) =>
|
||||
{
|
||||
queryClient.invalidateQueries( {queryKey:[ "masterData", "Expense Status" ]} )
|
||||
showToast( "Expense Status Updated successfully", "success" );
|
||||
if(onSuccessCallback) onSuccessCallback(data)
|
||||
},
|
||||
onError: ( error ) =>
|
||||
{
|
||||
showToast(error.message || "Something went wrong", "error");
|
||||
}
|
||||
})
|
||||
}
|
||||
// -Delete Master --------
|
||||
export const useDeleteMasterItem = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
@ -12,50 +12,71 @@ export const RolesRepository = {
|
||||
createRoles: (data) => api.post("/users", data),
|
||||
updateRoles: (id, data) => api.put(`/users/${id}`, data),
|
||||
deleteRoles: (id) => api.delete(`/users/${id}`),
|
||||
|
||||
|
||||
getEmployeeRoles:(id)=>api.get(`/api/employee/roles/${id}`),
|
||||
createEmployeeRoles:(data)=>api.post("/api/roles/assign-roles",data)
|
||||
getEmployeeRoles: (id) => api.get(`/api/employee/roles/${id}`),
|
||||
createEmployeeRoles: (data) => api.post("/api/roles/assign-roles", data),
|
||||
};
|
||||
|
||||
|
||||
export const MasterRespository = {
|
||||
getRoles: () => api.get("/api/roles"),
|
||||
createRole: (data) => api.post("/api/roles", data),
|
||||
updateRoles:(id,data) => api.put(`/api/roles/${id}`,data),
|
||||
getFeatures: () => api.get( `/api/feature` ),
|
||||
updateRoles: (id, data) => api.put(`/api/roles/${id}`, data),
|
||||
getFeatures: () => api.get(`/api/feature`),
|
||||
|
||||
createJobRole: (data) => api.post("api/roles/jobrole", data),
|
||||
getJobRole: () => api.get("/api/roles/jobrole"),
|
||||
updateJobRole: (id, data) => api.put(`/api/roles/jobrole/${id}`, data),
|
||||
|
||||
createJobRole:(data)=>api.post('api/roles/jobrole',data),
|
||||
getJobRole :()=>api.get("/api/roles/jobrole"),
|
||||
updateJobRole: ( id, data ) => api.put( `/api/roles/jobrole/${ id }`, data ),
|
||||
getActivites: () => api.get("api/master/activities"),
|
||||
createActivity: (data) => api.post("api/master/activity", data),
|
||||
updateActivity: (id, data) =>
|
||||
api.post(`api/master/activity/edit/${id}`, data),
|
||||
getIndustries: () => api.get("api/master/industries"),
|
||||
|
||||
|
||||
getActivites: () => api.get( 'api/master/activities' ),
|
||||
createActivity: (data) => api.post( 'api/master/activity',data ),
|
||||
updateActivity:(id,data) =>api.post(`api/master/activity/edit/${id}`,data),
|
||||
getIndustries: () => api.get( 'api/master/industries' ),
|
||||
|
||||
// delete
|
||||
"Job Role": ( id ) => api.delete( `/api/roles/jobrole/${ id }` ),
|
||||
"Activity": ( id ) => api.delete( `/api/master/activity/delete/${ id }` ),
|
||||
"Application Role":(id)=>api.delete(`/api/roles/${id}`),
|
||||
"Work Category": ( id ) => api.delete( `api/master/work-category/${ id }` ),
|
||||
"Contact Category": ( id ) => api.delete( `/api/master/contact-category/${id}` ),
|
||||
"Contact Tag" :(id)=>api.delete(`/api/master/contact-tag/${id}`),
|
||||
"Job Role": (id) => api.delete(`/api/roles/jobrole/${id}`),
|
||||
Activity: (id) => api.delete(`/api/master/activity/delete/${id}`),
|
||||
"Application Role": (id) => api.delete(`/api/roles/${id}`),
|
||||
"Work Category": (id) => api.delete(`api/master/work-category/${id}`),
|
||||
"Contact Category": (id) => api.delete(`/api/master/contact-category/${id}`),
|
||||
"Contact Tag": (id) => api.delete(`/api/master/contact-tag/${id}`),
|
||||
"Expense Type": (id, isActive) =>
|
||||
api.delete(`/api/Master/expenses-type/delete/${id}`, (isActive = false)),
|
||||
"Payment Mode": (id, isActive) =>
|
||||
api.delete(`/api/Master/payment-mode/delete/${id}`, (isActive = false)),
|
||||
"Expense Status": (id, isActive) =>
|
||||
api.delete(`/api/Master/expenses-status/delete/${id}`, (isActive = false)),
|
||||
|
||||
getWorkCategory:() => api.get(`/api/master/work-categories`),
|
||||
createWorkCategory: (data) => api.post(`/api/master/work-category`,data),
|
||||
updateWorkCategory: ( id, data ) => api.post( `/api/master/work-category/edit/${ id }`, data ),
|
||||
|
||||
getContactCategory: () => api.get( `/api/master/contact-categories` ),
|
||||
createContactCategory: (data ) => api.post( `/api/master/contact-category`, data ),
|
||||
updateContactCategory: ( id, data ) => api.post( `/api/master/contact-category/edit/${ id }`, data ),
|
||||
|
||||
getContactTag: () => api.get( `/api/master/contact-tags` ),
|
||||
createContactTag: (data ) => api.post( `/api/master/contact-tag`, data ),
|
||||
updateContactTag: ( id, data ) => api.post( `/api/master/contact-tag/edit/${ id }`, data ),
|
||||
getWorkCategory: () => api.get(`/api/master/work-categories`),
|
||||
createWorkCategory: (data) => api.post(`/api/master/work-category`, data),
|
||||
updateWorkCategory: (id, data) =>
|
||||
api.post(`/api/master/work-category/edit/${id}`, data),
|
||||
|
||||
getAuditStatus:()=>api.get('/api/Master/work-status')
|
||||
|
||||
}
|
||||
getContactCategory: () => api.get(`/api/master/contact-categories`),
|
||||
createContactCategory: (data) =>
|
||||
api.post(`/api/master/contact-category`, data),
|
||||
updateContactCategory: (id, data) =>
|
||||
api.post(`/api/master/contact-category/edit/${id}`, data),
|
||||
|
||||
getContactTag: () => api.get(`/api/master/contact-tags`),
|
||||
createContactTag: (data) => api.post(`/api/master/contact-tag`, data),
|
||||
updateContactTag: (id, data) =>
|
||||
api.post(`/api/master/contact-tag/edit/${id}`, data),
|
||||
|
||||
getAuditStatus: () => api.get("/api/Master/work-status"),
|
||||
|
||||
getExpenseType: () => api.get("/api/Master/expenses-types"),
|
||||
createExpenseType: (data) => api.post("/api/Master/expenses-type", data),
|
||||
updateExpenseType: (id, data) =>
|
||||
api.put(`/api/Master/expenses-type/edit/${id}`, data),
|
||||
|
||||
getPaymentMode: () => api.get("/api/Master/payment-modes"),
|
||||
createPaymentMode: (data) => api.post(`/api/Master/payment-mode`, data),
|
||||
updatePaymentMode: (id, data) =>
|
||||
api.put(`/api/Master/payment-mode/edit/${id}`, data),
|
||||
|
||||
getExpenseStatus: () => api.get("/api/Master/expenses-status"),
|
||||
createExpenseStatus: (data) => api.post("/api/Master/expenses-status", data),
|
||||
updateExepnseStatus: (id, data) =>
|
||||
api.put(`/api/Master/expenses-status/edit/${id}`, data),
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user