Subversion Repositories SmartDukaan

Rev

Show changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
37646 1 h 56 m amit /trunk/profitmandi-dao/src/main/resources/sql/ Hot Deal brand: dedupe model_hot_deal to one row per catalog before the unique key (prod had one Realme duplicate from the old windowed model)  
37645 2 h 41 m ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ ticket download option given and some enhancement on notification panel  
37644 2 h 43 m amit /trunk/ Cron batch infra: count real SUCCESS rows instead of deriving them, add INCOMPLETE status for runs that died mid-loop, stale-batch reaper, admin force-finalize; markItemSuccess joins the work transaction  
37643 2 h 56 m amit /trunk/profitmandi-fofo/src/main/ Hot Deal brand: admin edits attributes + optional OEM catalog mapping; brand/date/cap controls removed; jsVersion 424  
37642 2 h 57 m amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Hot Deal brand: remove the 00:20 window-sync job and its CLI flag - no date windows any more  
37641 2 h 57 m amit /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ Hot Deal brand: badge from brand, /fofo/hotDeals/brands facet, real availability on every listing, drop legacy hot-deals pause endpoints  
37640 2 h 57 m amit /trunk/profitmandi-dao/src/ Hot Deal brand: brand-driven membership, model_hot_deal reduced to attributes + oem_brand + oem_catalog_id, migration SQL  
37639 2 h 57 m amit /trunk/profitmandi-dao/src/main/resources/sql/ chore(sql): second internal vendor catalog pricing cleanup, as run on prod 2026-09-15

- 100 internal rows recreated 2026-09-14 18:07 for 325/326/371/382/406 (guard r37634 not yet deployed) and supplier 452, switched to internal 2026-09-15
- Backups _bak_vcp_internal_20260915 (251) / _bak_vcpl_internal_20260915 (367)
 
37638 2 h 57 m amit /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/ Hot Deal brand: HOT_DEAL_BRAND constant, oem_brand_s facet and hot-deal brand filter routing  
37637 3 h 13 m amit /trunk/profitmandi-fofo/src/ feat(pricing): log tag_listing price changes; reference TP instead of vendoritempricing in price drop and tag listing

- Add Pricing and price drop set DP/MOP/MRP via TagListingPriceService (logged with user; price drop logs carry price_drop_id)
- Price drop no longer writes vendoritempricing or vendor catalog pricing; old TP and prefill TP from reference TP
- Tag listing download TP from reference TP; drop unused VendorItemPricingRepository
- TagListingPricingTest: local-DB tests for the price log, reference TP and internal supplier guard
 
37636 3 h 13 m amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ refactor(cron): remove vendoritempricing one-offs; log catalog migration listing prices

- Remove migrateVendorItemPricing (2023 one-off) and its flag; fixOrders no longer reads vendoritempricing
- CatalogMigration sets listing prices via TagListingPriceService
 
37635 3 h 13 m amit /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ feat(pricing): V2 log tag_listing price changes; reference TP instead of vendoritempricing in price drop and tag listing  
37634 3 h 13 m amit /trunk/profitmandi-dao/src/main/ feat(pricing): tag_listing price change log; retire vendoritempricing writes/reads in dao; price drops no longer touch vendor catalog pricing

- New catalog.tag_listing_price_log (sql/create_tag_listing_price_log_20260915.sql, applied on prod 2026-09-15) + TagListingPriceService: the single setter for tag_listing DP/MOP/MRP, logging old/new values, source and user
- Remove applyPriceDrop (r37622): price drops write only price_drop + tag_listing; sql/revert_price_drop_vendor_catalog_pricing_20260915.sql restores the 30 rows it wrote (run on prod)
- VendorCatalogPricingService: reference TP = latest approved external TP (single + batched); internal suppliers rejected on create, bulk upload and approval
- Stop copying pricing into vendoritempricing on approval and item upload; tag listing detail TP from reference TP; indent DP from tag_listing only
 
37633 3 h 22 m ranu /trunk/ preffered app version revert on server side it will be client side  
37632 6 h 21 m aman /trunk/ fix(loi): don't leave an LOI half signed when the signed PDF fails to save

Confirm Sign stores the partner OTP (/validateLoiOtp) before the browser builds and uploads the
signed PDF (/saveLoiDoc). When that second step failed - html2pdf not loaded from cdnjs, upload
rejected, tab closed, server error - nothing was shown, no LOI mail went out, no onboarding was
created, and because loiOtpPresent hid Generate LOI the filler could never re-sign (LOI 734).

- pendingFormList: loiOtpPresent only when OTP AND loiDoc are both saved; new loiSignIncomplete
flag shows a red "signed LOI not saved" note on the Pending LOI list (web + V2 app).
- loi-form.js Confirm Sign: every failure after the OTP says the LOI was NOT saved and how to
retry; checks html2pdf is loaded; success alert only after /saveLoiDoc confirms; no double submit.
- /saveLoiDoc (fofo + V2): refuses a document without a verified OTP; a repeat call for an
already saved LOI is a no-op (no second mail / completion).
- /validateLoiOtp (fofo + V2): clear message when no OTP was sent in 24h; reports the real
rejection reason (e.g. OTP already used) instead of always "wrong".
- sendSignedLoiPdfToPartner: filler without a manager no longer throws and rolls back the save.
- OtpProcessor.generateOtp: never hands back an already verified OTP under the 2-minute throttle.
- AppConfig version 423 for loi-form.js.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RhJD2sc6pf3Zd7f4hyGxhH
 
37631 7 h 20 m amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ feat(mail): wire inactive-recipient filter, clean addresses, remove attendance alerts

Wire MailRecipientFilter into both mail senders. Remove inactive hardcoded recipients, fix typo addresses, send market-share reminder to tech@. Delete sendAttendanceMorningAlert/EveningAlert, sendMailToHR and their CLI options.
 
37630 7 h 20 m amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/ feat(mail): wire inactive-recipient filter and clean hardcoded addresses

Wire MailRecipientFilter into googleMailSender and gmailRelaySender. Remove inactive/unknown addresses from recipient and access lists, bulk uploader gate to akhil.kumar.
 
37629 7 h 20 m amit /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ feat(mail): wire inactive-recipient filter and clean hardcoded addresses

Wire MailRecipientFilter into googleMailSender and gmailRelaySender. Remove inactive/unknown addresses from recipient and access lists, fix typo addresses, bulk uploader gate to akhil.kumar, V2 brand fee gate to kamini.sharma.
 
37628 7 h 20 m amit /trunk/profitmandi-dao/src/ feat(mail): filter inactive auth users from outgoing mail

InactiveAuthUserRecipientFilter drops @smartdukaan.com recipients whose auth.auth_user is inactive (cached, 5 min refresh, fail-open). Remove inactive hardcoded recipients (sm@, praveen.sharma, tejus.lohani).
 
37627 7 h 20 m amit /trunk/profitmandi-common/src/ feat(mail): drop inactive recipients before send

Add MailRecipientFilter and RecipientFilteringMailSender, which strips To/Cc/Bcc addresses the filter reports inactive and skips a mail left with no recipients instead of failing. AuthenticatedIdentityMailSender now extends it.
 

Show All