Subversion Repositories SmartDukaan

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
35640 17 d 10 h amit /trunk/profitmandi-fofo/src/main/ Skip escalations in ticket overview Message column, compact escalation styling in detail dialog

- Pass lastMessageMap to ticket overview templates for all three views
(myTicket, managerTicket, myPartnerTicket)
- Template Message column prefers lastMessageMap over activityMap
- Escalation activities in detail dialog render as compact centered
system messages with pill styling instead of chat bubbles
- Add .system-activity CSS for compact centered gray pill style
 
35626 18 d 9 h amit /trunk/ Ticket system: add unread tracking, pagination, search, and partner notifications  
35617 20 d 8 h amit /trunk/ Filter invisible subcategory tickets for CRM and end users only

- CRM users: Cannot see tickets with visibility=0 subcategories
- Sales/RBM/ABM users: Can see all tickets (no filtering)
- End users in web module: CRM users filtered, others see all
- Uses getTicketSubCategoryMap() for efficient batch lookup
- Named query filters by tbc.visibility=true for recent tickets
 
35607 20 d 10 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ Fix partner position assignment error for newly added partners

- Changed validation from cached retailerService.getFofoRetailers(false) to direct fofoStoreRepository.selectAll() query
- This ensures newly added partners are validated correctly without waiting for cache to expire (30 mins)
 
35603 20 d 13 h amit /trunk/profitmandi-fofo/src/main/ Allow Sales and RBM teams to resolve their own category tickets

- Sales team can now resolve tickets in Sales category
- RBM team can now resolve tickets in RBM category
- CRM team can still resolve all tickets
- Added isSalesUser, isRbmUser flags and category IDs to template model
- Updated ticket.vm canResolve logic to check user category against ticket category
 
35601 20 d 14 h amit /trunk/profitmandi-fofo/src/main/ Filter out Sales/RBM Escalation tickets from CRM user's My Tickets view

- CRM users should not see Sales Escalation (84) and RBM Escalation (83) subcategory tickets
- These escalation tickets are internal and not relevant for CRM team
 
35594 21 d 6 h amit /trunk/ Ticket system: CRM access, category filtering, UI improvements

CRM Team Access:
- CRM users can see all tickets in myticket and managerTicket views
- CRM users can assign/edit tickets from all views
- Only CRM can mark tickets as resolved

Category Filtering (hidden from CRM):
- Sales category (ID 4) and Sales Escalation subcategory (ID 84)
- RBM category (ID 18) and RBM Escalation subcategory (ID 83)

UI Improvements:
- Partner name link opens partnerPerformance in new tab (reusable via .partner-link class)
- Edit modal shows ticket ID and partner name in title
- Resolve confirm shows ticket ID and partner name
- Fixed duplicate class attributes in buttons
- Modal shows after content loads (removed data-toggle conflicts)

Version bump: JS 313, CSS 34
 
35592 21 d 14 h amit /trunk/ Ticket system improvements: N+1 query fixes, authorization checks, CRM access, UI fixes

- Fix N+1 queries in getSubCategoryIdAndCategoryMap and getAuthUserAndEsclationByPartnerId
- Add authorization checks to ticket endpoints (getActivities, closeTicket, createActivity, editTicket, editPartnerTicket, createLastActivity)
- CRM users can now see all tickets to handle partner communications
- Only CRM team members can mark tickets as resolved
- Fix duplicate HTML IDs in ticket templates (changed to classes)
- Fix getSubCategoryId() bug in edit-ticket modals
- Add message field to create-ticket form
- Update cs.js to use class selectors
 
35590 25 d 7 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ Require at least one partner in createPosition and updatePartnerPosition

- Reject null or empty fofoIds with 'At least one partner must be specified'
- Position must have either [0] (All Partners) or specific partner IDs
 
35589 25 d 7 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ Fix fofoId validation to allow 0 (All Partners) in createPosition and updatePartnerPosition

- fofoId=0 is a sentinel value meaning 'All Partners'
- Skip validation when fofoIds contains only 0
- Reject mixed lists like [0, 123, 456] to prevent inconsistent data
- Fixes regression introduced in r35570/r35571
 
35571 30 d 5 h amit /trunk/profitmandi-fofo/src/main/ Quick wins and medium effort improvements for ticket system

Quick Wins:
- Add input validation to updatePartnerPosition (check positionId, regionId, fofoIds exist)
- Keep SortOrder import (from javax.swing, needed for pagination)

Medium Effort:
- Extract common modal CSS and HTML to shared partials (activity-modal-styles.vm, activity-modal.vm)
- Add null safety checks for maps in getTicket, getMyPartyTicketTicket, getManagerTickets
- Fix N+1 query in getMyPartyTicketTicket: batch fetch tickets using selectAllOpenTickets(fofoIds) instead of loop
 
35570 30 d 6 h amit /trunk/ Ticket system improvements: Fix N+1 query in getActivity, add input validation in createPosition, optimize getManagerTickets

- DocumentRepository: Add selectByIds for batch fetching documents
- CsController.getActivity: Replace N+1 document fetch with batch query, remove incorrect persist during GET
- CsController.createPosition: Add validation for authUserId, categoryId, regionId, and fofoIds before creating position
- CsController.getManagerTickets: Fix duplicate activity query, fetch only required AuthUsers instead of all users
 
35569 30 d 6 h amit /trunk/profitmandi-fofo/src/main/ CRM-only external communication + performance & security improvements

Feature:
- Restrict external communication (COMMUNICATION_OUT) to CRM team only (category_id=9)
- Non-CRM users can only send internal communications
- Hide internal/external checkbox for non-CRM users in UI

Performance:
- Eliminate duplicate AuthUser fetch in getTicket() - reuse variable
- Eliminate duplicate activity query (selectAll called twice)
- Fetch only needed AuthUsers instead of all users for activity display
- Same optimizations applied to getMyPartyTicketTicket()

Security:
- Add escapeHtml() function to prevent XSS in activity messages
- Applied to all user-generated content display

UX:
- Add loading spinner while fetching activities

Code Quality:
- Add ActivityType constants for consistent usage
- Add toBool() helper for cleaner boolean checks
- Refactored loadActivities() for better readability
 
35395 63 d 1 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ Fixed performance  
34913 174 d 1 h ranu /trunk/profitmandi-fofo/src/main/ show all parties ticket to abm  
34908 174 d 15 h ranu /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ abm allowed for csv upload  
33864 495 d 15 h ranu /trunk/profitmandi-fofo/src/main/ created by showed in tickets  
33778 518 d 14 h ranu /trunk/profitmandi-fofo/src/main/ created by showed on manager tickets  
33244 668 d 13 h ranu /trunk/ add signature added profitmandi exception  
33081 708 d 14 h ranu /trunk/profitmandi-fofo/src/main/ ticket category internal and external  

Show All