Subversion Repositories SmartDukaan

Rev

Show changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
37119 3 d 9 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/ old version app disabled for rbm  
37110 4 d 9 h aman /trunk/ Business-agreement e-sign gate between Full Stock Payment and PO creation

New AGREEMENT_ESIGN onboarding stage, verified by Legal (Gaurav Sharma):
- Hard-blocks first PO creation until the e-sign is verified (BulkOrderService),
mirroring the existing Full Stock Payment block.
- Agreement E-Sign panel (Partner Acquisition menu) listing FSP-done partners who
have not yet created their first PO: upload signed agreement + Gaurav-only verify.
- New agreement_esign table/entity + repository for the signed doc and audit trail.
- Timeline grid column + stepper stage for the new event.

Prod DB (separate, with sign-off): CREATE TABLE user.agreement_esign;
INSERT auth.menu + auth.menu_category rows for the panel.
 
37102 4 d 10 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Remove dead Counter/PrivateDealUser code: drop unused isFofo, bulkShipmentAmountLimit, verifiedOn, documentVerified fields and accessors; remove dead selectByIds repo methods; drop redundant Counter/PrivateDealUser repository injections in OrderServiceImpl and InvoiceService  
37091 6 d 6 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/ Bulk orders: enforce combo requirements for RBM/SALES creators

Bulk PO path skipped combo validation, letting RBM/SALES-created bulk orders bill a
combo main without its required side(s). Now, when the creator holds an RBM(18) or
SALES(4) position, run the existing cart-path comboService.validateCombo on the
per-partner cart (already built via cartService.setCartItems) right before the
transaction is created. Restrict-only: throws 'Missing required Qty for Combo' if a
side is missing; never auto-injects. Gate fail-open; other creators (incl AUTO PO) unaffected.
 
37067 10 d 6 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/ Fix null state code on FOFO partner-to-customer sale-return credit note: populate partner/customer address state codes via StateRepository lookup (were unset)  
36958 20 d 10 h amit /trunk/profitmandi-dao/src/main/ Flagship credit: fire interest-free limits at billing + per-IMEI conversion

- createLoanForBilling now detects flagship lines inside the billing transaction (fixes the
REQUIRES_NEW visibility bug where flagship detection re-queried uncommitted invoice_number and
never fired). Creates one combined flagship limit (is_flagship=1, limit_block=1, 30-day deadline)
plus one transaction.loan_imei row per device.
- convertFlagshipOnSale / IMEI activation now convert only the sold device's slice (matched by IMEI),
so same-model siblings and other billing tranches keep their interest-free window; full convert at
30-day expiry. Lock order aligned (loan -> loan_imei) to avoid sale/expiry deadlock.
- New transaction.loan_imei table + LoanImei entity/repository (migration_loan_imei_table.sql).
- selectAllLoansByInvoice: PurchaseReturn now settles BOTH the real loan and the flagship limit on a
flagship-invoice return (prevents credit leak from a stranded limit).
- Cap guard (flagship credit never exceeds amount drawn) and robust limit settlement (paisa threshold
instead of exact float equality).
 
36936 24 d 12 h vikas /trunk/ Update Email Ids  
36613 61 d 6 h aman /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/ Fix:Update L3 to L4 for first po approval mail  
36578 64 d 10 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Flagship credit: fix sale conversion to use invoice reference, add IMEI activation trigger

- Sale flow: removed unnecessary model_flagship table lookup at sale time. The flagship loan's invoice number already links to the purchase orders, making the date-based check redundant and incorrect (would miss conversions if flagship entry removed after billing).
- IMEI activation: added flagship conversion in addActivatedImeis() for newly activated serials. Groups by partner, checks flagship limits, converts via invoice matching. Covers Samsung/Vivo/Oppo/Realme activation crons and manual UI uploads.
- Repository: added date-parameterized selectActiveFlagshipCatalogIds(catalogIds, asOfDate) overload for future use. Existing method delegates with LocalDate.now().
 
36562 65 d 12 h amit /trunk/profitmandi-dao/src/main/ Flagship credit: date-wise model_flagship table, sale-time conversion with pessimistic locking, batch queries, extracted doConvertFlagshipToLoan helper, removed Catalog.isFlagship  
36560 65 d 13 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Flagship credit: sale-time conversion with FOR UPDATE locking and performance optimizations

- convertFlagshipOnSale: partial conversion at billed price when retailer sells flagship stock
- hasActiveFlagshipLimits: cheap COUNT check to skip catalog lookup for non-flagship partners
- selectActiveFlagshipLimitBlocksForUpdate: pessimistic lock prevents double-conversion from concurrent sales/cron
- selectFlagshipLoansForConversion: added FOR UPDATE lock for cron expiry path
- Batch order fetch instead of per-limit queries
- Wired into OrderServiceImpl.createOrder after stock update
 
36534 68 d 10 h aman /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/ Fix:First Po check (is it pending )  
36518 70 d 10 h aman /trunk/ Fix:Fix first po and edge case for bulk order  
36399 84 d 11 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked  
36362 89 d 6 h amit /trunk/profitmandi-dao/src/main/ Make fofo_order creation idempotent on (fofo_id, invoice_number)

Fixes insert-intention gap-lock deadlocks on idx_invoice_number observed in
SHOW ENGINE INNODB STATUS at 2026-04-22 13:01:54 — two concurrent requests
inserting the same invoice_number for the same customer (client retry /
upstream webhook retry pattern).

- OrderServiceImpl.createAndGetFofoOrder: select-then-insert idempotency.
Fast path returns existing row if already created; slow-race path catches
DataIntegrityViolationException and re-selects the winner's row.
- add_uk_fofo_order_fofo_invoice.sql: adds UNIQUE KEY (fofo_id, invoice_number)
so the loser of a concurrent-insert race gets a clean DIVE instead of a
silent duplicate row (pre-check showed zero existing dup groups, safe).

findExistingFofoOrder wraps the repo call to swallow the repo's declared
ProfitMandiBusinessException — the impl actually returns null on not-found
(constructs an exception but never throws), so the swallow matches reality.
 
36309 92 d 1 h amit /trunk/profitmandi-dao/src/main/ Route phantom orders to per-region Dummy warehouse; complete applyColorChange rename

- Phantom allocations in getFulfillments route to the Dummy/GOOD/OURS warehouse under
vendor 40 for the partner's billing region. WarehouseServiceImpl.ensureDummyForBillingRegion
returns the existing Dummy or creates one on the fly. createVendorWarehouse hook auto-seeds
a Dummy when a new billing region's first warehouse is created.
- WarehouseRepository.selectByVendorBillingAndType supports the lookup.
- OrderService interface: rename notifyColorChange -> applyColorChange to match r36305's impl
rename (r36305 renamed only the impl, leaving trunk inconsistent).
- PurchaseOrderServiceImpl: remove auto-rebalance on PO receive. Real-wh rebalancing and
phantom-to-real binding are now ops-driven via the order billing UI
(changeFulfillmentWarehouse / applyColorChange / moveOrdersFulfilmentWarehouse).
- migration_dummy_warehouses.sql: idempotent seeding script for 14 Dummy/GOOD/OURS warehouses
under vendor 40, one per WAREHOUSE_MAP billing region that lacked one. Already applied to
hadb1 and local.
 
36305 92 d 18 h amit /trunk/profitmandi-dao/src/main/ Batch processing infrastructure + per-partner offer processing + partner limit optimization + investment cache eviction on billing/payment/cancellation with 3hr TTL  
36262 98 d 6 h aman /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Fix:Send Mail for filled loi form to finance team  
36126 110 d 13 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/ Change FOFO invoice PDF title from Retailer Invoice to Tax Invoice  
36093 115 d 6 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/ Remove WOD brand eligibility check from tertiary billing flow  

Show All