configurable commission setting

This commit is contained in:
Satyam-Rastogi
2026-05-12 15:54:01 +05:30
parent d32b3ced21
commit c82cadd547
3 changed files with 626 additions and 25 deletions
+31 -1
View File
@@ -4917,6 +4917,16 @@ export const MockStoreProvider = ({ children }) => {
const [kanbanColumns, setKanbanColumns] = useState(KANBAN_COLUMNS_INITIAL);
const [kanbanLeads, setKanbanLeads] = useState(KANBAN_LEADS_INITIAL);
// Commission Settings Org defaults + per-user overrides
const [orgCommissionDefaults, setOrgCommissionDefaults] = useState({
type: 'percent_gross',
rate: 10,
});
const [userCommissionOverrides, setUserCommissionOverrides] = useState([
{ userId: 'p1', userName: 'Jesus Gonzales', enabled: true, type: 'percent_gross', rate: 12 },
{ userId: 'p2', userName: 'Sarah Sales', enabled: true, type: 'flat', rate: 2000 },
]);
// Initialize properties once
useEffect(() => {
const data = generateProperties();
@@ -5104,7 +5114,27 @@ export const MockStoreProvider = ({ children }) => {
},
assignAgent,
markLeadContacted,
sendReminder
sendReminder,
// Commission Settings
orgCommissionDefaults,
userCommissionOverrides,
updateOrgCommissionDefaults: (defaults) => {
setOrgCommissionDefaults(prev => ({ ...prev, ...defaults }));
},
setUserCommissionOverride: (override) => {
setUserCommissionOverrides(prev => {
const idx = prev.findIndex(o => o.userId === override.userId);
if (idx >= 0) return prev.map((o, i) => i === idx ? { ...o, ...override } : o);
return [...prev, override];
});
},
removeUserCommissionOverride: (userId) => {
setUserCommissionOverrides(prev => prev.filter(o => o.userId !== userId));
},
updateProject: (projectId, data) => {
setProjects(prev => prev.map(p => p.id === projectId ? { ...p, ...data } : p));
},
}}>
{children}
</MockStoreContext.Provider>