681 lines
28 KiB
JavaScript
681 lines
28 KiB
JavaScript
import axios from 'axios';
|
|
import { OpenToast } from 'components/third-party/OpenToast';
|
|
import dayjs from 'dayjs';
|
|
const userid = localStorage.getItem('userid');
|
|
|
|
// ==============================|| getRiderPeriodicLogs ||============================== //
|
|
// Returns the rider's latest periodic log entry — battery, GPS, status, current
|
|
// order. Used by the Rider Info modal on the Dispatch page.
|
|
export const getRiderPeriodicLogs = async (userid) => {
|
|
const url = `${process.env.REACT_APP_URL}/utils/getriderperiodiclogs${userid ? `?userid=${userid}` : ''}`;
|
|
const response = await axios.get(url);
|
|
if (response.data && response.data.status) return response.data.data;
|
|
return null;
|
|
};
|
|
|
|
// ==============================|| fetchAppLocations||============================== //
|
|
|
|
export const fetchAppLocations = async () => {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${userid}`);
|
|
const updatedLocations = [
|
|
...response.data.details,
|
|
{ locationname: 'All', applocationid: 0 } // Add your new object here
|
|
];
|
|
|
|
return updatedLocations;
|
|
};
|
|
|
|
// ==============================|| fetchPercentageData (orders) ||============================== //
|
|
|
|
export const fetchPercentageData = async (appId) => {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/orders/getordersummary/?applocationid=${appId}`);
|
|
const details = response.data.details;
|
|
|
|
return {
|
|
created: details.created.toString(),
|
|
uncoveredOrders: details.pending.toString(),
|
|
coveredOrders: details.delivered.toString(),
|
|
cancelled: details.cancelled.toString(),
|
|
percentage1: (Math.round((details.created / details.total) * 100) || 0).toString(),
|
|
percentage2: (Math.round((details.pending / details.total) * 100) || 0).toString(),
|
|
percentage3: (Math.round((details.delivered / details.total) * 100) || 0).toString(),
|
|
percentage4: (Math.round((details.cancelled / details.total) * 100) || 0).toString()
|
|
};
|
|
};
|
|
// ===================================================== || getTenants || =====================================================
|
|
|
|
export const getTenants = async (appId) => {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenants/?applocationid=${appId}&status=active`);
|
|
if (response.data.status) {
|
|
let arr = [];
|
|
response.data.details.map((val) => {
|
|
arr.push({
|
|
...val,
|
|
label: `${val.tenantname}`
|
|
});
|
|
});
|
|
return arr;
|
|
}
|
|
};
|
|
// ============================================= || gettenantlocations (branches) || =============================================
|
|
export const gettenantlocations = async (appId) => {
|
|
try {
|
|
const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${appId}`);
|
|
return res.data.details;
|
|
} catch (err) {
|
|
console.log('gettenantlocations', err);
|
|
}
|
|
};
|
|
// ==============================|| fetchorderscount (orders) ||============================== //
|
|
|
|
export const fetchorderscount = async ({ queryKey }) => {
|
|
const [, appId, startdate, enddate, currentStatus, tenantid, locationid] = queryKey;
|
|
|
|
const url = `${process.env.REACT_APP_URL}/orders/getordersummary/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}&status=${currentStatus}`;
|
|
|
|
const response = await axios.get(url);
|
|
|
|
return response.data.details;
|
|
};
|
|
|
|
// ==============================|| fetchOrders (orders) ||============================== //
|
|
|
|
// export const fetchOrders = async ({ queryKey }) => {
|
|
// const [, appId, currentStatus, searchword, startdate, enddate, page, rowsPerPage, tenantid, locationid] = queryKey;
|
|
// const url = `${
|
|
// process.env.REACT_APP_URL
|
|
// }/orders/getorders/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${
|
|
// page + 1
|
|
// }&pagesize=${rowsPerPage}&keyword=${searchword}`;
|
|
// const response = await axios.get(url);
|
|
// return response.data.details.map((val, i) => ({ ...val, sno: i + 1 }));
|
|
// };
|
|
export const fetchOrders = async ({ pageParam = 1, queryKey }) => {
|
|
const [, appId, currentStatus, debouncedSearch, startdate, enddate, rowsPerPage, tenantid, locationid] = queryKey;
|
|
|
|
const url = `${process.env.REACT_APP_URL}/orders/tenant/getorders/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&keyword=${debouncedSearch}&pageno=${pageParam}&pagesize=${rowsPerPage}`;
|
|
|
|
const response = await axios.get(url);
|
|
|
|
return {
|
|
rows: response.data.details,
|
|
nextPage: response.data.details.length === Number(rowsPerPage) ? pageParam + 1 : undefined
|
|
};
|
|
};
|
|
|
|
// ==============================|| fetchPaymentType (orders) ||============================== //
|
|
|
|
export const fetchPaymentType = async () => {
|
|
const { data } = await axios.get(`${process.env.REACT_APP_URL}/utils/getapptypes/?tag=paymentmode`);
|
|
return data.details.map((val) => ({
|
|
...val,
|
|
label: val.typename
|
|
}));
|
|
};
|
|
|
|
// ==============================|| fetchRidersList (orders) ||============================== //
|
|
|
|
export const fetchRidersList = async ({ queryKey }) => {
|
|
try {
|
|
const [, appId] = queryKey; // Extract appId from queryKey
|
|
const { data } = await axios.get(`${process.env.REACT_APP_URL}/partners/getriders/?applocationid=${appId}`);
|
|
console.log('data', data);
|
|
const response = data?.details
|
|
? data?.details.map((val) => ({
|
|
...val,
|
|
label: `${val.firstname} ${val.lastname} | ${val.contactno}`
|
|
}))
|
|
: [];
|
|
return response;
|
|
} catch (err) {
|
|
OpenToast(err.message, 'error', 2000);
|
|
throw err; // 🔥 REQUIRED
|
|
}
|
|
};
|
|
|
|
// ==============================|| createOptimisationDeliveries (orders) Arrange the order ||============================== //
|
|
|
|
export const createOptimisationDeliveries = async (deliveryData) => {
|
|
// optimse the orders
|
|
const response = await axios.post(`https://routes.workolik.com/api/v1/optimization/createdeliveries`, deliveryData.deliveries);
|
|
return response.data;
|
|
};
|
|
// ==============================|| reconcileSteps (Preview - validate rider/order step assignments) ||============================== //
|
|
|
|
export const reconcileSteps = async ({ riders }) => {
|
|
const response = await axios.post(
|
|
`https://routes.workolik.com/api/v1/optimization/reconcile-steps`,
|
|
{ riders }
|
|
);
|
|
return response.data;
|
|
};
|
|
|
|
// ==============================|| fetchBatchEfficiency (Dispatch - Analysis view) ||============================== //
|
|
// Calls POST /api/v1/batch/efficiency with a JSON body { batch, tenant_id }.
|
|
// `batch` is one of: 'morning' | 'afternoon' | 'evening'.
|
|
|
|
export const fetchBatchEfficiency = async ({ batch, tenantId }) => {
|
|
const response = await axios.post(
|
|
`https://routes.workolik.com/api/v1/batch/efficiency`,
|
|
{
|
|
batch,
|
|
tenant_id: tenantId
|
|
},
|
|
{
|
|
headers: { 'Content-Type': 'application/json' },
|
|
// Let success:false envelopes flow through so the UI can surface the
|
|
// server's own error message (instead of axios throwing on 4xx/5xx).
|
|
validateStatus: () => true
|
|
}
|
|
);
|
|
return response.data;
|
|
};
|
|
// ==============================|| finalCreatedeliveries (orders) ||============================== //
|
|
|
|
export const finalCreatedeliveries = async (deliveryData) => {
|
|
// Go backend types Deliveries.userid (and rider_id) as int. Coerce at the
|
|
// boundary so any upstream string — including ones that only surface in the
|
|
// deployed build's data flow — can't cause a 500 unmarshal error.
|
|
const toInt = (v) => {
|
|
const n = Number(v);
|
|
return Number.isFinite(n) ? n : v;
|
|
};
|
|
const deliveries = (deliveryData.deliveries || []).map((d) => ({
|
|
...d,
|
|
userid: toInt(d.userid),
|
|
rider_id: toInt(d.rider_id)
|
|
}));
|
|
console.log('deliveryData', deliveries);
|
|
const response = await axios.post(`https://jupiter.nearle.app/live/api/v1/deliveries/createdeliveries`, deliveries);
|
|
return response.data;
|
|
};
|
|
// ==============================|| createAutomationDeliveries (orders) Auto rider Assign ||============================== //
|
|
|
|
export const createAutomationDeliveries = async (variables) => {
|
|
console.log('variables', variables);
|
|
|
|
const absentRiders = Array.isArray(variables.absent_riders) ? variables.absent_riders : [];
|
|
|
|
// Bike mode (routes.workolik) historically accepted just the deliveries
|
|
// array as the body. To carry the operator's "Absent Riders" picks
|
|
// through to the AI assignment, we now wrap the body as
|
|
// { deliveries: [...], absent_riders: [...] }
|
|
// for that endpoint. Auto mode (routemate) already uses a structured
|
|
// body via `variables.data`, so we just merge absent_riders into it.
|
|
const url =
|
|
variables.selectedMode.value == 1
|
|
? `https://routes.workolik.com/api/v1/optimization/riderassign?hypertuning_params=${variables.hypertuning_params}`
|
|
: `https://routemate.workolik.com/api/v1/optimization/riderassign?strategy=multi_trip`;
|
|
|
|
const body =
|
|
variables.selectedMode.value == 1
|
|
? { deliveries: variables.deliveries, absent_riders: absentRiders }
|
|
: { ...(variables.data || {}), absent_riders: absentRiders };
|
|
|
|
console.log('createAutomationDeliveries body', body);
|
|
|
|
const response = await axios.post(url, body);
|
|
return response.data;
|
|
};
|
|
|
|
// ==============================|| notifyRider (orders / deliveries) ||============================== //
|
|
|
|
export const notifyRider = async (riderToken) => {
|
|
if (!riderToken) {
|
|
throw new Error('Invalid rider token');
|
|
}
|
|
console.log('notify rider called');
|
|
console.log('riderToken', riderToken);
|
|
const response = await axios.post(`${process.env.REACT_APP_URL}/utils/notifyuser`, {
|
|
token: riderToken,
|
|
notification: {
|
|
title: 'NearleXpress',
|
|
body: 'Orders have been placed for delivery. Kindly accept and process deliveries',
|
|
sound: 'ring',
|
|
image: ''
|
|
}
|
|
});
|
|
return response.data;
|
|
};
|
|
|
|
// ==============================|| cancelOrder (orders) ||============================== //
|
|
|
|
export const cancelOrder = async (orderheaderid) => {
|
|
const response = await axios.put(`${process.env.REACT_APP_URL}/orders/updateorder`, {
|
|
orderheaderid: orderheaderid,
|
|
orderstatus: 'cancelled',
|
|
cancelled: dayjs().format('YYYY-MM-DD HH:mm:ss')
|
|
});
|
|
|
|
return response.data;
|
|
};
|
|
// ==============================|| cancelMultipleOrder (orders) ||============================== //
|
|
|
|
export const cancelMultipleOrder = async (orderlist) => {
|
|
console.log('data', orderlist);
|
|
|
|
const data = orderlist?.map((e) => ({
|
|
orderheaderid: e.orderheaderid,
|
|
orderstatus: 'cancelled',
|
|
cancelled: dayjs().format('YYYY-MM-DD HH:mm:ss')
|
|
}));
|
|
|
|
// Send request if needed
|
|
const response = await axios.put(`${process.env.REACT_APP_URL}/orders/updatemultipleorders`, data);
|
|
return response.data;
|
|
};
|
|
// ==============================|| fetchDeliveries (deliveries) ||============================== //
|
|
|
|
export const fetchDeliveries = async ({ pageParam = 1, queryKey }) => {
|
|
let [, appId, userid, currentStatus, startdate, enddate, rowsPerPage, searchword, tenantid, locationid, riderid] = queryKey;
|
|
currentStatus = currentStatus == 'All' ? 'all' : currentStatus;
|
|
const url =
|
|
appId === 0
|
|
? `${process.env.REACT_APP_URL}/deliveries/getdeliveries/?appuserid=${userid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${pageParam}&pagesize=${rowsPerPage}&keyword=${searchword}&tenantid=${tenantid}&locationid=${locationid}&userid=${riderid}`
|
|
: `${process.env.REACT_APP_URL}/deliveries/getdeliveries/?applocationid=${appId}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${pageParam}&pagesize=${rowsPerPage}&keyword=${searchword}&tenantid=${tenantid}&locationid=${locationid}&userid=${riderid}`;
|
|
const response = await axios.get(url);
|
|
|
|
return {
|
|
rows: response.data.details,
|
|
nextPage: response.data.details.length === Number(rowsPerPage) ? pageParam + 1 : undefined
|
|
};
|
|
};
|
|
|
|
// ==============================|| fetchPercentageAPI (deliveries) ||============================== //
|
|
|
|
export const fetchPercentageAPI = async (appId) => {
|
|
const url = `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?applocationid=${appId}`;
|
|
const response = await axios.get(url);
|
|
|
|
const data = response.data.details;
|
|
|
|
return {
|
|
coveredOrders: data.delivered.toString(),
|
|
cancelledOrders: data.cancelled.toString(),
|
|
uncoveredOrders: data.pending.toString(),
|
|
assignedOrders: data.accepted.toString(),
|
|
createdOrders: data.created.toString(),
|
|
closedOrders: data.delivered.toString(),
|
|
pickedOrders: data.picked.toString(),
|
|
percentage1: (Math.round((data.pending / data.total) * 100) || 0).toString(),
|
|
percentage2: (Math.round((data.accepted / data.total) * 100) || 0).toString(),
|
|
percentage3: (Math.round((data.picked / data.total) * 100) || 0).toString(),
|
|
percentage4: (Math.round((data.delivered / data.total) * 100) || 0).toString()
|
|
};
|
|
};
|
|
|
|
// ==============================|| fetchCountAPI (deliveries) ||============================== //
|
|
|
|
export const fetchCountAPI = async (appId, userid, startdate, enddate, rowsPerPage, debouncedSearch, tenantid, locationid, riderid) => {
|
|
const url =
|
|
appId == 0
|
|
? `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?appuserid=${userid}&fromdate=${startdate}&todate=${enddate}`
|
|
: `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?applocationid=${appId}&fromdate=${startdate}&todate=${enddate}&tenantid=${tenantid}&locationid=${locationid}&userid=${riderid}`;
|
|
const response = await axios.get(url);
|
|
const data = response.data.details;
|
|
return {
|
|
uncoveredLength: data.pending,
|
|
assignedLength: data.accepted,
|
|
arrivedLength: data.arrived,
|
|
pickedLength: data.picked,
|
|
activeLength: data.active,
|
|
coveredLength: data.delivered,
|
|
cancelLength: data.cancelled,
|
|
skippedLength: data.skipped
|
|
};
|
|
};
|
|
|
|
// ==============================|| cancelDeliveryAPI (deliveries) ||============================== //
|
|
|
|
export const cancelDeliveryAPI = async (selectedRow, cancelFeed) => {
|
|
const payload = {
|
|
deliveryid: selectedRow.deliveryid,
|
|
orderheaderid: selectedRow.orderheaderid,
|
|
orderstatus: 'cancelled',
|
|
canceltime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
|
feedback: cancelFeed
|
|
};
|
|
const response = await axios.put(`${process.env.REACT_APP_URL}/deliveries/updatedelivery`, payload);
|
|
return response.data;
|
|
};
|
|
// ==============================|| getorderdetails (deliveries) ||============================== //
|
|
export const getorderdetails = async (orderHeaderid) => {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/orders/getorderdetails?orderheaderid=${orderHeaderid}`);
|
|
return response.data;
|
|
};
|
|
|
|
// ==============================|| changeRiderAPI (deliveries) ||============================== //
|
|
|
|
export const changeRiderAPI = async (selectedRider, selectedRow) => {
|
|
console.log('selectedRider', selectedRider);
|
|
console.log('selectedRow', selectedRow);
|
|
|
|
return axios.put(`${process.env.REACT_APP_URL}/deliveries/updatedelivery`, {
|
|
userid: selectedRider.userid,
|
|
deliveryid: selectedRow.deliveryid,
|
|
orderheaderid: selectedRow.orderheaderid,
|
|
orderstatus: 'pending',
|
|
assigntime: dayjs().format('YYYY-MM-DD HH:mm:ss')
|
|
});
|
|
};
|
|
// ==============================|| updateDeliveryAPI (deliveries) ||============================== //
|
|
|
|
export const updateDeliveryAPI = async (orderData) => {
|
|
return axios.put(`${process.env.REACT_APP_URL}/deliveries/updatedelivery`, orderData);
|
|
};
|
|
|
|
// ==============================|| getalltenants (tenants) ||============================== //
|
|
|
|
export const getalltenants = async ({ queryKey }) => {
|
|
const [, appId, debouncedSearch, status, page, rowsPerPage] = queryKey;
|
|
try {
|
|
let url = `${process.env.REACT_APP_URL
|
|
}/tenants/getalltenants/?status=${status}&applocationid=${appId}&keyword=${debouncedSearch}&pageno=${page + 1
|
|
}&pagesize=${rowsPerPage}&moduleid=6`;
|
|
const response = await axios.get(url);
|
|
return response.data.details; // return only data, keep it clean
|
|
} catch (err) {
|
|
const message = err.response?.data?.message || err.message || 'Something went wrong';
|
|
OpenToast(message);
|
|
return null; // return null for failure
|
|
}
|
|
};
|
|
// ==============================|| gettenantsummary (tenants) ||============================== //
|
|
|
|
export const gettenantsummary = async ({ queryKey }) => {
|
|
const [, appId] = queryKey;
|
|
try {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantsummary/?moduleid=6&applocationid=${appId}`);
|
|
return response.data.summary; // return only data, keep it clean
|
|
} catch (err) {
|
|
const message = err.response?.data?.message || err.message || 'Something went wrong';
|
|
OpenToast(message);
|
|
return null; // return null for failure
|
|
}
|
|
};
|
|
// ==============================|| getpricinglist (tenants) ||============================== //
|
|
|
|
export const getpricinglist = async ({ queryKey }) => {
|
|
const [, appId] = queryKey;
|
|
try {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/tenants/getpricinglist/?moduleid=6&applocationid=${appId}`);
|
|
return response.data.summary; // return only data, keep it clean
|
|
} catch (err) {
|
|
const message = err.response?.data?.message || err.message || 'Something went wrong';
|
|
OpenToast(message);
|
|
return null; // return null for failure
|
|
}
|
|
};
|
|
// ==============================|| getallpricing (clientPricing) ||============================== //
|
|
|
|
export const getallpricing = async ({ queryKey }) => {
|
|
const [, appId] = queryKey;
|
|
try {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/utils/getallpricing/?applocationid=${appId}`);
|
|
return response.data.details || [];
|
|
} catch (err) {
|
|
const message = err.response?.data?.message || err.message || 'Something went wrong';
|
|
OpenToast(message);
|
|
return [];
|
|
}
|
|
};
|
|
|
|
// ==============================|| getcustomersummary (customers) ||============================== //
|
|
|
|
export const getcustomersummary = async ({ queryKey }) => {
|
|
const [, appId] = queryKey;
|
|
try {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/customers/getcustomersummary?applocationid=${appId}`);
|
|
return response.data.summary;
|
|
} catch (err) {
|
|
const message = err.response?.data?.message || err.message || 'Something went wrong';
|
|
OpenToast(message);
|
|
return null; // return null for failure
|
|
}
|
|
};
|
|
|
|
// ==============================|| getallcustomers (customers) ||============================== //
|
|
|
|
export const getallcustomers = async ({ pageParam = 1, queryKey }) => {
|
|
const [, appId, debouncedSearch, rowsPerPage] = queryKey;
|
|
|
|
try {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/customers/getallcustomers/`, {
|
|
params: {
|
|
applocationid: appId,
|
|
keyword: debouncedSearch,
|
|
pageno: pageParam,
|
|
pagesize: rowsPerPage
|
|
}
|
|
});
|
|
|
|
return {
|
|
data: response.data.details || [],
|
|
nextPage: response.data.details?.length === rowsPerPage ? pageParam + 1 : undefined
|
|
};
|
|
} catch (err) {
|
|
const message = err.response?.data?.message || err.message || 'Something went wrong';
|
|
|
|
OpenToast(message);
|
|
throw err; // IMPORTANT for React Query
|
|
}
|
|
};
|
|
|
|
// ==============================|| fetchAllRiders (riders) ||============================== //
|
|
export const fetchAllRiders = async ({ pageParam = 1, queryKey }) => {
|
|
try {
|
|
const [, appId, debouncedSearch, tabvalue] = queryKey;
|
|
|
|
const url = `${process.env.REACT_APP_URL
|
|
}/partners/getallriders/?applocationid=${appId}&pageno=${pageParam}&pagesize=${20}&keyword=${debouncedSearch}&status=${tabvalue == 0 ? '' : 'Active'
|
|
}`;
|
|
const res = await axios.get(url);
|
|
return {
|
|
details: res.data.details,
|
|
nextPage: res.data.details.length === 20 ? pageParam + 1 : undefined
|
|
};
|
|
} catch (err) {
|
|
console.log('fetchAllRiders err', err.message);
|
|
return [];
|
|
}
|
|
};
|
|
// ==============================|| getallridersummary (riders) ||============================== //
|
|
export const getallridersummary = async ({ queryKey }) => {
|
|
try {
|
|
const [, appId, tabvalue] = queryKey;
|
|
const response = await axios.get(
|
|
`${process.env.REACT_APP_URL}/partners/getallridersummary/?applocationid=${appId}&status=${tabvalue == 0 ? '' : 'Active'}`
|
|
);
|
|
return response.data.details;
|
|
} catch (err) {
|
|
console.log('getallridersummary err', err.message);
|
|
return [];
|
|
}
|
|
};
|
|
|
|
// ==============================|| fetchRiders (riders), active riders ||============================== //
|
|
|
|
export const fetchRiders = async ({ pageParam = 1, queryKey }) => {
|
|
try {
|
|
const [, appId, debouncedSearch] = queryKey;
|
|
|
|
const url = `${process.env.REACT_APP_URL
|
|
}/partners/getriders/?applocationid=${appId}&pageno=${pageParam}&pagesize=${20}&keyword=${debouncedSearch}`;
|
|
|
|
const res = await axios.get(url);
|
|
return {
|
|
details: res.data.details,
|
|
nextPage: res.data.details.length === 20 ? pageParam + 1 : undefined
|
|
};
|
|
} catch (err) {
|
|
console.log('fetchRiders err', err.message);
|
|
return [];
|
|
}
|
|
};
|
|
|
|
// ==============================|| getriderstatus (riders)||============================== //
|
|
export const getriderstatus = async () => {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/utils/getriderstatus`);
|
|
return response.data.data;
|
|
};
|
|
|
|
// ==============================|| getreportsummary (orders summary)||============================== //
|
|
export const getreportsummary = async ({ queryKey }) => {
|
|
console.log('queryKey for getreportsummary', queryKey);
|
|
const [appId, tenantid, locationid, startdate, enddate] = queryKey;
|
|
const response = await axios.get(
|
|
`${process.env.REACT_APP_URL}/deliveries/getreportsummary/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}`
|
|
);
|
|
console.log('getreportsummary', response.data.details);
|
|
|
|
return response.data.details;
|
|
};
|
|
|
|
// ==============================|| getreportlocationsummary (orders summary)||============================== //
|
|
export const getreportlocationsummary = async ({ queryKey }) => {
|
|
console.log('queryKey for getreportlocationsummary', queryKey);
|
|
const [appId, tenantid, locationid, startdate, enddate] = queryKey;
|
|
const response = await axios.get(
|
|
`${process.env.REACT_APP_URL}/deliveries/getreportlocationsummary/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}`
|
|
);
|
|
console.log('getreportlocationsummary', response.data.details);
|
|
|
|
return response.data.details;
|
|
};
|
|
// ==============================|| fetchorderdetails (orders detail)||============================== //
|
|
export const fetchorderdetails = async ({ queryKey }) => {
|
|
console.log('queryKey of fetchorderdetails', queryKey);
|
|
|
|
const [appId, startdate, enddate, page, rowsPerPage] = queryKey;
|
|
|
|
const response = await axios.get(
|
|
appId == 0
|
|
? `${process.env.REACT_APP_URL2}/orders/getorders/?appuserid=${userid}&fromdate=${startdate}&todate=${enddate}&pageno=${page + 1
|
|
}&pagesize=${rowsPerPage}`
|
|
: `${process.env.REACT_APP_URL2}/orders/getorders/?fromdate=${startdate}&todate=${enddate}&applocationid=${appId}&pageno=${page}&pagesize=${rowsPerPage}`
|
|
);
|
|
const detailsWithSNo = response.data.details.map((item, index) => ({
|
|
...item,
|
|
sno: index + 1
|
|
}));
|
|
console.log('fetchorderdetails', detailsWithSNo);
|
|
return detailsWithSNo;
|
|
};
|
|
|
|
// ==============================|| getriderbydelivery (orders detail)||============================== //
|
|
|
|
export const getriderbydelivery = async (startdate, enddate, appId = 0, tenantid = 0, locationid = 0) => {
|
|
// const [, startdate, enddate] = queryKey;
|
|
|
|
try {
|
|
const response = await axios.get(
|
|
`${process.env.REACT_APP_URL}/deliveries/getriderbydelivery/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}`
|
|
);
|
|
return response.data.details || [];
|
|
} catch (err) {
|
|
console.log('getriderbydelivery', err.message);
|
|
return [];
|
|
}
|
|
};
|
|
|
|
// ==============================|| fetchCount (orders detail)||============================== //
|
|
|
|
export const fetchCount = async ({ queryKey }) => {
|
|
console.log('queryKey of fetchCount', queryKey);
|
|
const [appId, startdate, enddate] = queryKey;
|
|
let url =
|
|
appId == 0
|
|
? `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?fromdate=${startdate}&todate=${enddate}`
|
|
: `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?applocationid=${appId}&fromdate=${startdate}&todate=${enddate}`;
|
|
|
|
const response = await axios.get(url);
|
|
return response.data.details;
|
|
};
|
|
|
|
// ==============================|| fetchRidersSummary (riders summary)||============================== //
|
|
|
|
export const fetchRidersSummary = async ({ queryKey }) => {
|
|
console.log('queryKey for fetchRidersSummary', queryKey);
|
|
const [, appId, startdate, enddate] = queryKey;
|
|
const response = await axios.get(
|
|
`${process.env.REACT_APP_URL}/deliveries/getridersummary/?applocationid=${appId}&fromdate=${startdate}&todate=${enddate}`
|
|
);
|
|
console.log('fetchRidersSummary', response.data.details);
|
|
|
|
return response.data.details;
|
|
};
|
|
|
|
// ==============================|| fetchLocations (orders summary))||============================== //
|
|
export const fetchLocations = async () => {
|
|
const response = await axios.get(`${process.env.REACT_APP_URL}/partners/getpartners`);
|
|
const updatedLocations = [
|
|
...response.data.details,
|
|
{ partnername: 'All', partnerid: -1 } // Add your new object here
|
|
];
|
|
console.log('fetchLocations', updatedLocations);
|
|
return updatedLocations;
|
|
};
|
|
|
|
// ==============================|| fetchinvoiceinsight (Invoice)||============================== //
|
|
|
|
export const fetchinvoiceinsight = async () => {
|
|
const insightResponse = await axios.get(`${process.env.REACT_APP_URL}/invoice/getinvoiceinsight`);
|
|
return insightResponse.data.details;
|
|
};
|
|
|
|
// ==============================|| fetchdeliverylist (Invoice)||============================== //
|
|
|
|
export const fetchdeliverylist = async ({ queryKey }) => {
|
|
const [billStatus] = queryKey;
|
|
const deliveyResponse = await axios.get(`${process.env.REACT_APP_URL}/invoice/getallinvoice/?billstatus=${billStatus}`);
|
|
console.log('fetchdeliverylist', deliveyResponse.data.details);
|
|
return deliveyResponse.data.details;
|
|
};
|
|
// ==============================|| fetchRidersLogs (RiderLogs)||============================== //
|
|
|
|
export const fetchRidersLogs = async ({ queryKey }) => {
|
|
const [appId, startdate, riderSearch = ''] = queryKey;
|
|
const riderLogsResponse = await axios.get(
|
|
`${process.env.REACT_APP_URL2}/partners/getriderlogs/?applocationid=${appId}&fromdate=${startdate || ''}&todate=${startdate}&keyword=${riderSearch || ''
|
|
} `
|
|
);
|
|
console.log('fetchRidersLogs', riderLogsResponse.data.details);
|
|
return riderLogsResponse.data.details;
|
|
};
|
|
|
|
// ==============================|| getorders (Locations)||============================== //
|
|
// fetchOrders.js
|
|
|
|
export const fetchOrders1 = async ({ pageParam = 1, queryKey }) => {
|
|
const [, tenantid, locationid, status, startdate, enddate, searchword, rowsPerPage] = queryKey;
|
|
|
|
const res = await axios.get(
|
|
`${process.env.REACT_APP_URL}/orders/tenant/getorders/?tenantid=${tenantid}&locationid=${locationid}&status=${status}&fromdate=${startdate}&todate=${enddate}&pageno=${pageParam}&pagesize=${rowsPerPage}&keyword=${searchword}`
|
|
);
|
|
|
|
return {
|
|
details: res.data.details,
|
|
nextPage: res.data.details.length === rowsPerPage ? pageParam + 1 : undefined
|
|
};
|
|
};
|
|
// ==============================|| getusers (viewProfile)||============================== //
|
|
|
|
export const getusers = async () => {
|
|
try {
|
|
const res = await axios.get(`${process.env.REACT_APP_URL}/users/getusers/?configid=9&userid=${userid}`);
|
|
return res.data.details;
|
|
} catch (err) {
|
|
console.log('getusers', err.message);
|
|
}
|
|
};
|
|
// ==============================|| getallriders (order)||============================== //
|
|
|
|
export const getallriders = async () => {
|
|
try {
|
|
const res = await axios.get(`${process.env.REACT_APP_URL}/partners/getallriders?partnerid=64`);
|
|
return res.data.details;
|
|
} catch (err) {
|
|
console.log('getallriders', err.message);
|
|
}
|
|
};
|