| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 37926 |
4 h 0 m |
amit |
/trunk/profitmandi-dao/src/ |
feat(credit): deactivate credit on loan default; only the CEO can reactivate
- credit_account.inactive_reason: AWAITING_ACTIVATION / LOAN_DEFAULT / BLOCKED (internal only)
- blockDefaultedPartners(): defaulted loans (unpaid past 30 days) totalling >= Rs.25,000 -> inactive LOAN_DEFAULT, logged as 'system'
- repayment never reactivates; LOAN_DEFAULT can only be reactivated by tarun.verma (guard in activateCredit)
- a CEO reactivation covers existing defaults; a later default blocks again
- reason now mandatory on unblock/activate; updateRisk high-risk deactivation now records BLOCKED + log
- DDL: claude-data/sql-migrations/2026-10-22_credit_account_inactive_reason.sql (applied on hadb1) |
|
| 37925 |
4 h 55 m |
amit |
/trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ |
fix(cron): stop subtracting a year from Realme activation date
Realme's expiryDate is the activation date (the phonecheck page shows it as
"Activation Date"). Since r37423 the job subtracted a year, storing every
cron-written Realme activation one year early. |
|
| 37924 |
23 h 52 m |
vikas |
/trunk/profitmandi-fofo/src/main/ |
Login Usertype Tracker |
|
| 37923 |
1 d 3 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
feat: add Catalog_Id and HSN_Code columns to warehouse purchase invoices report |
|
| 37922 |
1 d 3 h |
amit |
/trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ |
feat: add catalog id and HSN code to PurchaseInvoiceModel |
|
| 37921 |
2 d 21 h |
ranu |
/trunk/ |
loi bugs fixed |
|
| 37920 |
2 d 22 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/loiForm/ |
loi form submission |
|
| 37919 |
2 d 22 h |
ranu |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
commi tfile for offer radar send to all related department |
|
| 37918 |
2 d 22 h |
amit |
/trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ |
Fixed mail sender everywhere |
|
| 37917 |
3 d 2 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/onboarding/ |
commi tfile for offer radar send to all related department |
|
| 37916 |
3 d 3 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/loiForm/ |
commi tfile for offer radar send to all related department |
|
| 37915 |
3 d 4 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/ |
fix(dao): add Lead.getDisplayLabel() required by fofo r37906
r37906 (BeatJourneyController, "Corrected PJP Data") calls
lead.getDisplayLabel() but the dao side was never committed, so fofo trunk
did not compile. Returns "Outlet (Contact)" per that commit's comment, the
single part if only one exists, or null so beat-journey.vm falls back to the
task name. @JsonIgnore keeps existing Lead JSON responses unchanged.
Reconstructed while the author is on leave. |
|
| 37914 |
3 d 7 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ |
fix(web): todayOffers returns empty list when request has no user token
userInfo is only set by AuthenticationInterceptor for a real JWT; requests
with no Auth-Token or a static token NPE'd. Treat them as no store. |
|
| 37913 |
3 d 7 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/ |
fix(security): fofo /login no longer trusts a request email when Google verification fails
LoginController.login fell back to emailId = emailIdOrMobileNumber whenever
googleTokenUtil.getEmailId(token) threw, so any bogus token plus any email
logged the caller in as that user. Verification failure now fails the login.
GoogleTokenUtil also requires tokeninfo aud == google.api.key (our web client
id, same value the login page uses) and email_verified == true.
Password login is unchanged. |
|
| 37912 |
3 d 7 h |
amit |
/trunk/profitmandi-web/src/main/resources/ |
docs(external-api): document color on SKU records |
|
| 37911 |
3 d 7 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
feat(external-api): restore color on SKU feeds
Re-adds color to skuMaster, stock, catalogSkuMaster and catalogSkus
(reverses the r37295 removal). Value is catalog.item.color with the
legacy f_ prefix and surrounding spaces stripped; blank becomes null. |
|
| 37910 |
3 d 8 h |
amit |
/trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/config/ |
fix(offers): use TxStartTrackingTransactionManager so cron reads respect the offer cache gate (dao r37907) |
|
| 37909 |
3 d 8 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/ |
fix(offers): use TxStartTrackingTransactionManager; drop controller-side offer evictions (dao r37907) |
|
| 37908 |
3 d 8 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/ |
fix(offers): use TxStartTrackingTransactionManager; offer cache eviction moves into the service (dao r37907)
Activate/publishAll no longer evict in the controller; Refresh Cache also clears per-offer caches. |
|
| 37907 |
3 d 8 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
fix(offers): stop stale offer rows being re-cached after an offer change
Readers whose transaction began before an offer write committed could cache
the old row (e.g. offer 10851 shown inactive on Offer History for 6h).
- OfferCacheGate: offer caches refuse fills from readers whose transaction
began before the last offer change (atomic Lua check-and-set)
- TxStartTrackingTransactionManager records each transaction's start time
- offer cache evictions run after the transaction completes, marking the change first
- activate/publishAll evict inside their REQUIRES_NEW transaction
- evictAllOfferCaches(YearMonth) for Refresh Cache; offer cache TTL 6h -> 1h |
|