Subversion Repositories SmartDukaan

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
37953 3 d 12 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Flag a store whose GSTIN NIC refuses and block billing until Accounts revalidates

NIC refuses an IRN when the buyer's GSTIN is cancelled (HRHIS1445 06JHOPS3042G1Z0:
NSHRGGN794 on 19-Oct, NSHRGGN1058 on 23-Oct). Nothing recorded it against the store, so
billing kept printing the dead GSTIN on invoices that can never be filed, and each one
then got stuck at return/cancellation.

FofoStore: gst_invalid / gst_invalid_reason / gst_invalid_timestamp (DDL in
claude-data/sql-migrations/store_gst_invalid_flag_20261023.sql - must be applied BEFORE
this is deployed, the entity maps the columns).

GstProService.getEInvoice: when NIC's refusal is about the buyer's GSTIN
(isInvalidBuyerGstin - not state-code, not our seller, not transporter) the store is
flagged in the same filing transaction. One way only; internal stores skipped.
revalidateStoreGst: the only way the flag clears - a live GSTIN lookup of the store's
current GSTIN must return Active; otherwise the flag stays and the reason is returned.
fetchGstDetails: uncached lookup; getGstDetails keeps its fortnightly cache and delegates.

TransactionServiceImpl.addBillingDetailsForGrouppedOrders: validateBuyerGstinForBilling
refuses billing to a flagged store, before the lock, next to the transporter check.
 
37948 3 d 15 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ FofoStore: drop the legacy closed field; store_status is the only source  
37946 3 d 15 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/ FofoStore: drop the legacy active field; store_status is the only source  
37943 3 d 21 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Store status: readers use store_status instead of the active / closed columns

- HQL named queries and repository lookups: active = ACTIVE + PAUSED, inactive = SUSPENDED + CLOSED,
not closed = store_status <> CLOSED
- Native SQL report / snapshot / ageing / delist queries moved to fofo_store.store_status
- PAUSED stores now count as active everywhere (incl. the internal stores whose active column is still 0)
 
37935 4 d 14 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Store status lifecycle: ACTIVE / PAUSED / SUSPENDED / CLOSED with a status log

- fofo_store.store_status is the source of truth; active / closed are written in step for old readers
- StoreStatusService is the only writer: transition rules, permissions (pause: Tarun, Kamini, Sales L5+
for their partners; suspend / activate / temp: Tarun, Kamini, Neeraj, Accounts L4+; close: Tarun,
Kamini, Accounts L3+), mandatory reason, fofo.store_status_log row, status-change mail
- Closure only from SUSPENDED with a zero wallet and no open loan (limit blocks included)
- Revival: SUSPENDED comes back on the same store, CLOSED gets a new store; both kept in fofo.store_revival
- PAUSED blocks partner wallet spends (recharge, prebooking, insurance at sale)
- Temporary activation expiry and the weekly closure reminder
- selectInActiveStore renamed selectInactiveStores (SUSPENDED + CLOSED, uncached)
 
37850 21 d 13 h amit /trunk/profitmandi-dao/src/main/ refactor(warehouse): retire hardcoded Delhi ids - allocation fallback vendor warehouse 7573 -> 13368 (central HR-NSSPL/GGN); Vivo Noida/Ghaziabad partner-sale rule 7573 -> 13370; drop unused InventoryWarehouse WH_DL/WH_HR_DL/WAREHOUSE_IDS; migration 20261005_hr_ggn_central_brand_mapping.sql (13368 central for every ACTIVE warehouse, all brands except Oppo/Vivo, 532 rows, applied on hadb1)  
37804 28 d 8 h amit /trunk/profitmandi-dao/src/main/ fix(fofo-store): store every GSTIN in upper case at the entity setter

FofoStore.setGstNumber now normalises through StringUtils.normalizeGstNumber,
so no write path can store a mixed-case GSTIN. Only the partner-update path
normalised before; the LOI and trial-form paths wrote the field directly,
which is how 06bmlpk3545g1z0 and 03AAccn9802g1zp reached the table. NIC
expects upper case, and case-sensitive comparisons (including the own-seller
GSTIN check behind a NIC refusal) silently failed to match.

uppercase_fofo_store_gstin_20260928.sql corrects the four rows already on
record; it is already applied on hadb1 (0 mixed-case GSTINs remain).
 
36727 151 d 16 h ranu /trunk/ beat plan info commit  
36439 178 d 20 h amit /trunk/profitmandi-dao/src/main/ Add outlet_name field to FofoStore entity, set from address.name on store creation

Adds outlet_name (VARCHAR 255) to FofoStore entity so the store's display
name is persisted directly on fofo_store instead of requiring a join through
retailer_registered_address -> address every time it is needed.

Sets fofoStore.setOutletName(retailerAddress.getName()) in both creation
paths: RetailerServiceImpl.createFofoStoreCodeByRetailerId (primary) and
RetailerController.createFofoStore (secondary).

Includes migration SQL script (migration_outlet_name_to_fofo_store.sql) to
ALTER TABLE and backfill existing rows from address.name. Must be run during
low-traffic window - fofo_store is heavily queried and ALTER takes a metadata
lock that blocks all concurrent SELECTs.
 
36242 199 d 13 h aman /trunk/ Fix:Attachment is Full-stock payment approval ,Timeline ui graphical summary, wod initianl mail after store code creation  
35961 233 d 19 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ Add closed state to FofoStore - permanent store closure with store code confirmation. Closed stores cannot be reactivated.  
35848 243 d 17 h amit /trunk/ Refactor investment logic to use own investment (total - utilized), remove minimumInvestmentOld, add OK_INVESTMENT_SHORT_PERCENTAGE constant, update thresholds CUTOFF_INVESTMENT=10 MIN_INVESTMENT_PERCENTAGE=5  
35463 310 d 4 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/ Optimize /getMobileBrandWise and /getMobileLMSGraph queries

- Replace concat(year(), month()) pattern with date range comparisons
- Enables index usage on create_timestamp and activation_timestamp columns
- Update repository methods to pass date range parameters instead of string patterns
 
35323 334 d 17 h amit /trunk/ Fixed changes regarding to FofoStore having expired field now ignored  
35301 341 d 14 h amit /trunk/ Fixed minimum investment logic  
35297 342 d 14 h amit /trunk/ Added logic to handle retailer  
35289 345 d 23 h amit /trunk/ Added trial franchisee feature  
35284 347 d 7 h aman /trunk/ Fix:Monthly acceories sale  
35079 395 d 20 h vikas /trunk/ Live Tracking and Shopify Products List Sync  
33124 951 d 17 h ranu /trunk/ area territory for fofo store(phase one)  

Show All