<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SmartDukaan &#x2013; /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 08 Oct 2026 23:46:42 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?isdir=1&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Wed, 30 Sep 2026 16:02:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37816 – fix(einvoice): save the e-way bill whenever NIC returns EwbNo, not ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(einvoice): save the e-way bill whenever NIC returns EwbNo, not only with the EWBPPD note&lt;br /&gt;
&lt;br /&gt;
GstProService saved EWB details only when InfoDtls held EWBPPD. NIC sends that&lt;br /&gt;
note (its pin-to-pin distance) only when we pass Distance=0, and the DUPIRN&lt;br /&gt;
get-by-IRN response carries no InfoDtls at all. So every partner with a&lt;br /&gt;
warehouse_partner_distance_mapping row, and every IRN recovered after a&lt;br /&gt;
timeout, lost its EWB although NIC had filed it (13 + 2 invoices in 30 days,&lt;br /&gt;
backfilled 2026-09-30), and a false &quot;EWB Not Generated&quot; mail was sent.&lt;br /&gt;
&lt;br /&gt;
- Key on EwbNo; distance from EWBPPD, else the distance we sent, else none.&lt;br /&gt;
- Invoice PDF prints the &quot;[distance]&quot; suffix only when a distance is known&lt;br /&gt;
  (was &quot;[null]&quot;).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37816</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37816</guid></item>
<item><pubDate>Tue, 01 Sep 2026 16:59:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37504 – Stop invoice read paths creating directories (AccessDeniedException 500s)  getInvoicePath ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Stop invoice read paths creating directories (AccessDeniedException 500s)&lt;br /&gt;
&lt;br /&gt;
getInvoicePath called Files.createDirectories, and getInvoiceFile called it on every&lt;br /&gt;
download. Invoices are generated by the cron app as root, so /SaholicInvoices/&amp;lt;month&gt;&lt;br /&gt;
is 755 root-owned; a download served by Tomcat cannot create a retailer subdirectory&lt;br /&gt;
and threw AccessDeniedException.&lt;br /&gt;
&lt;br /&gt;
It threw on line 1 of getInvoiceFile, before the Files.exists check, so the&lt;br /&gt;
ProfitMandiBusinessException on the next line was unreachable and the callers&apos;&lt;br /&gt;
deliberate 404 handler (&quot;Invoice not yet generated, please retry shortly&quot;) never ran.&lt;br /&gt;
Downloads for a not-yet-generated invoice 500ed instead of 404ing - the exact log&lt;br /&gt;
noise that handler was added to remove.&lt;br /&gt;
&lt;br /&gt;
Split the path computation out: resolveInvoicePath is side-effect free and used by&lt;br /&gt;
getInvoiceFile; getInvoicePath keeps the mkdir for the two generation callers&lt;br /&gt;
(InvoiceService:558, GstProService:952). The legacy relocation branch creates the&lt;br /&gt;
target directory only when there is actually a file to move.&lt;br /&gt;
&lt;br /&gt;
No ops change needed - generation as root already works.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37504</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37504</guid></item>
<item><pubDate>Wed, 26 Aug 2026 16:47:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37421 – EWB: recover existing e-way bill on NIC 604 instead of ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;EWB: recover existing e-way bill on NIC 604 instead of storing a placeholder&lt;br /&gt;
&lt;br /&gt;
DCNSUPDL948 generated EWB 451765074092 at NIC, then the transaction rolled back and&lt;br /&gt;
the number was lost. Every retry hit 604 and stored the literal EXISTING-LOOKUP-NEEDED&lt;br /&gt;
with no validity date, which routed the PDF down the transporter branch and NPE&apos;d on a&lt;br /&gt;
self-pickup dispatch with no warehouse_provider row. ~640 retries in 55 minutes, and&lt;br /&gt;
because the failure surfaced as an Error it escaped catch(Exception) and blocked six&lt;br /&gt;
other documents behind it.&lt;br /&gt;
&lt;br /&gt;
- GstProService: on 604, look the bill up via GetEwayBillsByDate + docNo match and&lt;br /&gt;
  return it in GENEWAYBILL shape; stamp NIC&apos;s generation time instead of now().&lt;br /&gt;
  Throw when it cannot be recovered rather than persist a placeholder.&lt;br /&gt;
- InvoiceService: saveInvoiceInNewTransaction no longer propagates. It commits&lt;br /&gt;
  irn_generated=0 with the reason so a failed document stops churning; already-filed&lt;br /&gt;
  invoices being re-rendered are left untouched.&lt;br /&gt;
- InvoiceService: cron loop catches Throwable so one bad document cannot skip the batch.&lt;br /&gt;
- InvoiceService: null-guard warehouse_provider; omit the transporter line instead of&lt;br /&gt;
  failing the PDF.&lt;br /&gt;
- recordIrnFailure: transport failures now park at 0 for escalation rather than&lt;br /&gt;
  requeueing for unbounded retry.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37421</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37421</guid></item>
<item><pubDate>Mon, 17 Aug 2026 17:23:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37325 – Add EWB backfill for invoices whose IRN was recovered via ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add EWB backfill for invoices whose IRN was recovered via DUPIRN&lt;br /&gt;
&lt;br /&gt;
When GenerateIRN carries EwbDtls, NIC files the IRN and e-way bill together and reports&lt;br /&gt;
the EWB back only in that response, flagged by InfoDtls[InfCd=EWBPPD]. A read timeout&lt;br /&gt;
sends the retry down the DUPIRN path, which recovers the IRN via the get-e-invoice&lt;br /&gt;
endpoint — that response carries neither InfoDtls nor EWB fields. The EWB therefore&lt;br /&gt;
exists at NIC while ewb_no stays null locally, and since updatePdfModelWithIrnDetails&lt;br /&gt;
gates the entire e-way bill section on ewb_no, the stored PDF omits it altogether.&lt;br /&gt;
&lt;br /&gt;
backfillMissingEwb() looks the EWB up by (seller GSTIN, ack date), matches on docNo, and&lt;br /&gt;
takes actualDist from the per-EWB call since the distance is printed on the invoice. It&lt;br /&gt;
then re-renders the PDF; generateIrnForInvoices returns early once irn_generated is set,&lt;br /&gt;
so nothing is re-filed at NIC.&lt;br /&gt;
&lt;br /&gt;
NIC is queried with the transaction suspended (NOT_SUPPORTED); the write and the&lt;br /&gt;
re-render each run in their own REQUIRES_NEW transaction.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37325</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37325</guid></item>
<item><pubDate>Mon, 17 Aug 2026 16:28:39 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37323 – Drop irn_attempt_count; IRN transport retry is unbounded  Removes the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Drop irn_attempt_count; IRN transport retry is unbounded&lt;br /&gt;
&lt;br /&gt;
Removes the attempt counter added in r37322 along with its pending ALTER TABLE, so the&lt;br /&gt;
change no longer carries a schema dependency.&lt;br /&gt;
&lt;br /&gt;
NIC outages resolve within the day, and an invoice legally requires an IRN, so capping&lt;br /&gt;
the retry would not remove the obligation — it would only stop trying. Transport failures&lt;br /&gt;
now stay queued (irn_generated NULL) until the provider recovers; only a genuine rejection&lt;br /&gt;
from NIC is terminal. The failure reason is still recorded in irn_error_message, which&lt;br /&gt;
distinguishes a requeued transport failure from an invoice never yet attempted.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/EInvoiceDetails.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37323</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37323</guid></item>
<item><pubDate>Mon, 17 Aug 2026 15:45:41 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37322 – Stop treating IRN transport timeouts as terminal; isolate NIC calls ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Stop treating IRN transport timeouts as terminal; isolate NIC calls from batch transaction&lt;br /&gt;
&lt;br /&gt;
A read timeout to GSTPro/NIC was recorded as a final verdict (irn_generated=false),&lt;br /&gt;
so 79 invoices billed on 2026-08-17 were left permanently without an IRN even though&lt;br /&gt;
NIC may well have filed them. A timeout means the call never completed, not that the&lt;br /&gt;
document was rejected.&lt;br /&gt;
&lt;br /&gt;
- markEInvoiceFailed -&gt; recordIrnFailure(invoiceNumber, Throwable): transport failures&lt;br /&gt;
  leave irn_generated NULL so the cron retries (DUPIRN recovers anything NIC did file);&lt;br /&gt;
  only a genuine rejection is terminal. Alert email now fires only when terminal.&lt;br /&gt;
- New einvoice_details.irn_attempt_count bounds that retry at 10 attempts, reset on&lt;br /&gt;
  success, so a prolonged NIC outage still converges instead of looping forever.&lt;br /&gt;
  Requires the matching ALTER TABLE before deploy.&lt;br /&gt;
- New saveInvoiceInNewTransaction(invoiceNumber): REQUIRES_NEW per invoice, reloading&lt;br /&gt;
  orders inside it. RunOnceTasks has class-level @Transactional wrapping the whole&lt;br /&gt;
  batch loop, so every NIC call previously ran inside one transaction holding write&lt;br /&gt;
  locks on all orders in the batch; at 60s per call that window is unacceptable.&lt;br /&gt;
  updateIrnsToInvoices and regenerateBilledInvoices now carry only invoice numbers,&lt;br /&gt;
  keeping the batch transaction read-only.&lt;br /&gt;
- Route all NIC calls (IRN gen, auth, cancel, EWB) through the 60s regulator profile&lt;br /&gt;
  via GstProAuthService.nicRestClient(). getGstDetails stays on the 10s default since&lt;br /&gt;
  it runs on request threads.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/EInvoiceDetails.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProAuthService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37322</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37322</guid></item>
<item><pubDate>Tue, 11 Aug 2026 02:29:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37290 – Credit Note IRN: credit only the returned units, not the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Credit Note IRN: credit only the returned units, not the whole invoice&lt;br /&gt;
&lt;br /&gt;
refundOrder persisted the CreditNote and its lines from the returned&lt;br /&gt;
inventory items, but then called generateCreditNoteIrn(invoiceNumber, ...),&lt;br /&gt;
which rebuilt the NIC payload by re-reading the original invoice - every&lt;br /&gt;
line at billed quantity. A 1-pc DOA return against NSDL37092 therefore&lt;br /&gt;
tried to register a CN covering the full invoice (2 phones + 27 carry&lt;br /&gt;
bags, Rs 26,664.27) against a Rs 13,332 wallet refund, and the legacy&lt;br /&gt;
4-digit HSN on the carry-bag line failed NIC validation with error 2311.&lt;br /&gt;
&lt;br /&gt;
The wallet credit, the CreditNote row and its lines were always correct;&lt;br /&gt;
only the e-invoice payload was wrong.&lt;br /&gt;
&lt;br /&gt;
- InvoiceService.getInvoicePdfModelForIrn: optional returnedQtyByOrderId&lt;br /&gt;
  restricts the item list to the returned orders and prices each line at&lt;br /&gt;
  the returned quantity. The existing single-arg method delegates with&lt;br /&gt;
  null, so invoice PDF generation is unchanged. Margin-scheme, delivery&lt;br /&gt;
  challan, IMEI-suffix and HSN handling apply to the reduced line as-is.&lt;br /&gt;
- GstProService.generateCreditNoteIrn: 4-arg overload taking the map; the&lt;br /&gt;
  3-arg version delegates with null for whole-invoice returns.&lt;br /&gt;
- PurchaseReturnServiceImpl.refundOrder: passes orderReturnQtyMap, which&lt;br /&gt;
  was already built for the ReturnOrderInfo rows.&lt;br /&gt;
&lt;br /&gt;
Verified against the NIC sandbox using the real NSDL37092 rows: the old&lt;br /&gt;
payload is rejected with error 2311, the new payload is accepted&lt;br /&gt;
(DocTyp CRN, ItemCnt 1, MainHsnCode 85171300, TotInvVal 13331.99).&lt;br /&gt;
&lt;br /&gt;
Not covered here: applyInvoiceReturnViaCreditNote still sends the whole&lt;br /&gt;
invoice, so an invoice partially returned earlier re-credits those units.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37290</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37290</guid></item>
<item><pubDate>Mon, 10 Aug 2026 11:20:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37274 – Freeze margin-scheme purchase price on the invoice line  Refurbished ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Freeze margin-scheme purchase price on the invoice line&lt;br /&gt;
&lt;br /&gt;
Refurbished (GST Rule 32(5)) lines re-derived their purchase price by serial on&lt;br /&gt;
every read, resolving to the LATEST warehouse.inventoryItem row. A returned&lt;br /&gt;
device gets re-GRNed, sometimes at a different price, so a credit note or a&lt;br /&gt;
regenerated PDF could reverse a margin the invoice never charged. 11 already-&lt;br /&gt;
billed lines resolved to a price they were not sold at; IMEI 353917853695268&lt;br /&gt;
has been sold on six invoices at two different purchase prices.&lt;br /&gt;
&lt;br /&gt;
InvoiceService.freezeMarginPurchasePrices now stamps the value onto&lt;br /&gt;
transaction.lineitem.margin_purchase_price at billing time (saveInvoice step 0,&lt;br /&gt;
inside the billing transaction), and resolveMarginPurchasePrice reads the frozen&lt;br /&gt;
value thereafter, falling back to the live lookup only when null so pre-existing&lt;br /&gt;
lines behave exactly as before.&lt;br /&gt;
&lt;br /&gt;
Requires the column from db-scripts/add_margin_purchase_price_column.sql, which&lt;br /&gt;
must be applied before this is deployed.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/LineItem.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37274</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37274</guid></item>
<item><pubDate>Thu, 16 Jul 2026 15:24:00 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37102 – Remove dead Counter/PrivateDealUser code: drop unused isFofo, bulkShipmentAmountLimit, verifiedOn, documentVerified ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;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&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/Counter.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/PrivateDealUser.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/CounterRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/CounterRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/PrivateDealUserRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/PrivateDealUserRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/util/MigrationUtil.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/OrderServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/RetailerServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37102</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37102</guid></item>
<item><pubDate>Tue, 14 Jul 2026 15:00:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37085 – Show PO No and Order Date on transaction invoices/delivery challans ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Show PO No and Order Date on transaction invoices/delivery challans&lt;br /&gt;
&lt;br /&gt;
Populate InvoicePdfModel.orderDate (order createTimestamp) on every invoice&lt;br /&gt;
and delivery challan. Populate poNumber from the mapped warehouse PO for&lt;br /&gt;
internal-PO-derived orders, falling back to the transaction id as the PO&lt;br /&gt;
number for non-internal orders. Display-only; no e-invoice/IRN impact.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37085</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37085</guid></item>
<item><pubDate>Fri, 10 Jul 2026 14:49:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37059 – Revert order date and PO number wiring from invoice model ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Revert order date and PO number wiring from invoice model in InvoiceService&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37059</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37059</guid></item>
<item><pubDate>Fri, 10 Jul 2026 13:05:08 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37054 – Invoicing: durably record terminal IRN failures via markEInvoiceFailed (REQUIRES_NEW) with ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Invoicing: durably record terminal IRN failures via markEInvoiceFailed (REQUIRES_NEW) with einvoice_details.irn_error_message; add regenerateBilledInvoices for in-place PDF regeneration over a billing window; stamp order date and mapped PO number onto transaction invoices; use the real interest-bearing loan (not the flagship limit block) for credit terms&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37054</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=37054</guid></item>
<item><pubDate>Thu, 02 Jul 2026 13:01:19 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36991 – code commited</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;code commited&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36991</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36991</guid></item>
<item><pubDate>Mon, 01 Jun 2026 16:01:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36750 – Keep e-invoice PrdDesc as IMEI count within NIC 300-char limit ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Keep e-invoice PrdDesc as IMEI count within NIC 300-char limit while invoice PDF lists full IMEIs (complements r36749 IMEI-listing restore)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36750</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36750</guid></item>
<item><pubDate>Mon, 01 Jun 2026 15:48:44 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36749 – code commited miss beat</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;code commited miss beat&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36749</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36749</guid></item>
<item><pubDate>Wed, 27 May 2026 19:02:45 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36715 – Fix Credit Note IRN PrdDesc exceeding 300 char NIC limit ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix Credit Note IRN PrdDesc exceeding 300 char NIC limit — show IMEI count instead of listing all serial numbers, add 300-char safety truncation&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36715</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36715</guid></item>
<item><pubDate>Tue, 26 May 2026 13:48:31 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36684 – Add null check for IRN in updatePdfModelWithIrnDetails - skip QR ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add null check for IRN in updatePdfModelWithIrnDetails - skip QR code generation when einvoice_details has no IRN&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36684</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36684</guid></item>
<item><pubDate>Mon, 25 May 2026 18:48:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36672 – Wrap email sends in try-catch in IRN/EWB error paths to ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Wrap email sends in try-catch in IRN/EWB error paths to prevent mail AuthenticationFailedException from blocking PDF generation&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36672</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36672</guid></item>
<item><pubDate>Mon, 25 May 2026 14:43:00 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36667 – Fixed scroll in offers modal</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed scroll in offers modal&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36667</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36667</guid></item>
<item><pubDate>Sat, 02 May 2026 18:49:12 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36453 – Fix NPE in credit note IRN: modularize InvoiceService.getInvoicePdfModel into core ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix NPE in credit note IRN: modularize InvoiceService.getInvoicePdfModel into core (ForIrn) and enrichment (EWB/eInvoice), switch purchase return CN to model-based IRN builder&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36453</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36453</guid></item>
<item><pubDate>Mon, 27 Apr 2026 14:52:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36399 – Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked</title><description>&lt;div&gt;&lt;strong&gt;amit – 21 file(s) modified&lt;/strong&gt;&lt;br/&gt;Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/BidServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/LocationTrackingServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/loiForm/LoiFormServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OtpProcessor.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/TrialServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/AuthServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/CustomerServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/EmailService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/mail/MailOutboxService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/BulkOrderService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PerformanceServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/scheduled/SDCreditScheduler.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreTimelineTatServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/UserServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36399</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36399</guid></item>
<item><pubDate>Thu, 02 Apr 2026 23:22:40 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36179 – weekly rating system live on calling module</title><description>&lt;div&gt;&lt;strong&gt;ranu – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;weekly rating system live on calling module&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/enumuration/ActivationType.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/knowlarity/KnowlarityAgentInsightsService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/MonitorController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/service/KnowlarityInsightsService.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm_call_target.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36179</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36179</guid></item>
<item><pubDate>Thu, 02 Apr 2026 19:32:50 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36173 – Fix second QR NPE for DCs in getInvoicePdfModel — same ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix second QR NPE for DCs in getInvoicePdfModel — same DC skip needed in both QR code paths&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36173</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36173</guid></item>
<item><pubDate>Thu, 02 Apr 2026 19:23:28 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36172 – Skip IRN/QR code generation for DC challans in PDF - ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Skip IRN/QR code generation for DC challans in PDF - DCs have no IRN, null QR was causing NPE&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36172</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36172</guid></item>
<item><pubDate>Thu, 02 Apr 2026 18:57:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36170 – Prevent infinite API retry loop: set irn_generated=false on any saveInvoice ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Prevent infinite API retry loop: set irn_generated=false on any saveInvoice failure, remove hardcoded RF filter&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36170</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36170</guid></item>
<item><pubDate>Thu, 02 Apr 2026 16:26:33 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36160 – changeList</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;changeList&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36160</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36160</guid></item>
<item><pubDate>Thu, 02 Apr 2026 13:48:18 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36155 – Fix e-invoice/EWB retry loop: set irnGenerated on all failure paths, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix e-invoice/EWB retry loop: set irnGenerated on all failure paths, send email on errors, prevent infinite cron retries&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36155</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36155</guid></item>
<item><pubDate>Wed, 01 Apr 2026 16:10:43 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36130 – Generate standalone EWB for Delivery Challans &gt; 20K  GstProService.generateEwbForDeliveryChallan(): ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Generate standalone EWB for Delivery Challans &gt; 20K&lt;br /&gt;
&lt;br /&gt;
GstProService.generateEwbForDeliveryChallan():&lt;br /&gt;
- Builds GENEWAYBILL payload from order data (seller, buyer, items, transport)&lt;br /&gt;
- docType=CHL, subSupplyType=8, transactionType=4 (intra-state same GSTIN)&lt;br /&gt;
- Zero GST, items aggregated by HSN&lt;br /&gt;
- Stores EWB number in einvoice_details table&lt;br /&gt;
- Skips if EWB already exists for the invoice&lt;br /&gt;
&lt;br /&gt;
InvoiceService.saveInvoice():&lt;br /&gt;
- DC invoices with total &gt; 20K trigger standalone EWB generation&lt;br /&gt;
- EWB failure is non-fatal (logged, doesn&apos;t block PDF generation)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36130</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36130</guid></item>
<item><pubDate>Tue, 31 Mar 2026 19:48:51 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36121 – Set orderId on CustomOrderItem for invoice PDF generation</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Set orderId on CustomOrderItem for invoice PDF generation&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36121</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36121</guid></item>
<item><pubDate>Tue, 31 Mar 2026 18:21:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36117 – Route all invoice PDF generation to generateInvoiceV2</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Route all invoice PDF generation to generateInvoiceV2&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36117</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36117</guid></item>
<item><pubDate>Tue, 31 Mar 2026 12:57:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36110 – Route margin scheme invoices to new generateMarginSchemeInvoice() PDF method</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Route margin scheme invoices to new generateMarginSchemeInvoice() PDF method&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36110</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36110</guid></item>
<item><pubDate>Sun, 29 Mar 2026 03:33:41 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36100 – Fix margin invoice: resolve GRN purchaseId to PO id for ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix margin invoice: resolve GRN purchaseId to PO id for purchase price lookup, rename selectByPurchaseIdItemId to selectByPurchaseOrderIdItemId&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseLineItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseLineItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/GrnRequestServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36100</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36100</guid></item>
<item><pubDate>Sat, 28 Mar 2026 15:55:39 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36096 – persistance logout and other status ...agent live status (deduplication)</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;persistance logout and other status ...agent live status (deduplication)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36096</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36096</guid></item>
<item><pubDate>Sat, 28 Mar 2026 15:53:03 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36095 – persistance logout and other status ...agent live status (deduplication)</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;persistance logout and other status ...agent live status (deduplication)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36095</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36095</guid></item>
<item><pubDate>Fri, 27 Mar 2026 23:06:19 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36094 – persistance logout and other status ...agent live status (deduplication)</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;persistance logout and other status ...agent live status (deduplication)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36094</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36094</guid></item>
<item><pubDate>Thu, 26 Mar 2026 13:22:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36070 – Premium CD days: add partner-type helpers, update credit terms, fix ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Premium CD days: add partner-type helpers, update credit terms, fix CD rejection for 20-day loans, update invoice PDF terms&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/scheme/SchemeServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36070</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36070</guid></item>
<item><pubDate>Mon, 23 Mar 2026 16:38:39 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36038 – Move DC title assignment after invoice number is set in ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Move DC title assignment after invoice number is set in InvoiceService&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36038</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36038</guid></item>
<item><pubDate>Fri, 20 Mar 2026 19:11:31 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36030 – Delivery Challan: DC prefix when seller GST == buyer GST, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Delivery Challan: DC prefix when seller GST == buyer GST, no IRN, zero tax on PDF, title Delivery Challan&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36030</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=36030</guid></item>
<item><pubDate>Thu, 12 Mar 2026 19:13:09 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 35991 – on invoice if customer is internal then shivam number will ...</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;on invoice if customer is internal then shivam number will hit on pdf modal&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=35991</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=35991</guid></item>
<item><pubDate>Mon, 02 Mar 2026 12:44:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 35912 – Store loan-level overdue/penalty rates, dynamic credit terms and TnC via ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Store loan-level overdue/penalty rates, dynamic credit terms and TnC via APIs&lt;br /&gt;
&lt;br /&gt;
- Add overdue_rate and penalty_rate columns to Loan entity (frozen at creation)&lt;br /&gt;
- addInterest()/checkLoans() read from loan instead of global constants&lt;br /&gt;
- SDCreditResponseOut: add overdueRate, penaltyRate, creditTerms fields&lt;br /&gt;
- sdDirectService(): resolve effective credit days by partner type (20 for Diamond/Platinum)&lt;br /&gt;
- InvoiceService: build credit terms from loan rates instead of hardcoded strings&lt;br /&gt;
- Add reusable buildCreditTerms() helper in SDCreditServiceImpl&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Loan.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/SDCreditResponseOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=35912</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2Finvoicing%2F&amp;isdir=1&amp;rev=35912</guid></item>
</channel></rss>