<?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/test/java/com/spice/profitmandi/dao/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 08 Oct 2026 02:54:09 +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%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%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%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Mon, 28 Sep 2026 15:37:36 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37792 – feat(cart): carry bag at Rs 1 per smartphone over Rs ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 11 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(cart): carry bag at Rs 1 per smartphone over Rs 12,000, extras at listing price&lt;br /&gt;
&lt;br /&gt;
One carry bag (item 32046) is priced at Rs 1 for each smartphone (category&lt;br /&gt;
10006) in the cart selling above Rs 12,000; bags beyond that count are priced&lt;br /&gt;
at the carry bag&apos;s listing price, and Bronze partners pay listing for all.&lt;br /&gt;
Closes the leak where bag-only carts of hundreds of bags at Rs 1 were placed&lt;br /&gt;
from the old app. CarryBagQuote (via CartService.getCarryBagQuote) is the&lt;br /&gt;
single rule; the cart carries it as one line at a blended price.&lt;br /&gt;
&lt;br /&gt;
- CartService/CartServiceImpl, CartResponse, OpenCartValidationResult: expose&lt;br /&gt;
  the quote on the cart.&lt;br /&gt;
- OrderLineAllocator: an item may now have more than one cart line (the flat&lt;br /&gt;
  and listing-priced parts); its units fill the lines in order.&lt;br /&gt;
- TransactionServiceImpl: item quantities merge instead of failing on a&lt;br /&gt;
  duplicate item id.&lt;br /&gt;
- PurchaseServiceImpl: partner GRN creates one stock record per billed price;&lt;br /&gt;
  the GRN screen shows the blended unit price; dead&lt;br /&gt;
  createScannedNonSerializedItem removed.&lt;br /&gt;
- PurchaseReturnServiceImpl: debit-note PDF picks the order billed at the&lt;br /&gt;
  returned stock&apos;s price; refundOrder spreads a non-serialized return over the&lt;br /&gt;
  item&apos;s orders with room left (same price first) instead of loading it all&lt;br /&gt;
  on the first order.&lt;br /&gt;
&lt;br /&gt;
Tests: CarryBagQuoteTest 6/6, OrderLineAllocatorTest 13/13.&lt;br /&gt;
Deploy with profitmandi-web (same change) and the partner apps.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/CartService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/CartServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/OpenCartValidationResult.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/CarryBagQuote.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/CartResponse.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/inventory/PurchaseServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/OrderLineAllocator.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/model/CarryBagQuoteTest.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction/OrderLineAllocatorTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2F&amp;isdir=1&amp;rev=37792</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2F&amp;isdir=1&amp;rev=37792</guid></item>
<item><pubDate>Thu, 03 Sep 2026 17:43:36 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37525 – offer circular: division aliases, portal-editable scope, web offer sync (dao) ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 11 file(s) modified&lt;/strong&gt;&lt;br/&gt;offer circular: division aliases, portal-editable scope, web offer sync (dao)&lt;br /&gt;
&lt;br /&gt;
- division_alias support: CircularIngestRepository.selectDivisionAliases so an&lt;br /&gt;
  alternate OEM label resolves onto an existing division instead of dropping the&lt;br /&gt;
  rows as UNKNOWN. Both pdf_label columns are ALIASED - Hibernate discovers&lt;br /&gt;
  native-query results by name and throws NonUniqueDiscoveredSqlAlias on a dup.&lt;br /&gt;
&lt;br /&gt;
- OfferScopeRepository{,Impl}: write side for scope config (add/edit a division,&lt;br /&gt;
  in_scope toggle, label aliases). Kept apart from OfferCurationRepository, whose&lt;br /&gt;
  contract is limited to product_alias - a bad alias mismaps one product, a bad&lt;br /&gt;
  scope change silently drops a whole brand.&lt;br /&gt;
&lt;br /&gt;
- OfferCircularRepositoryImpl: label-side division join now resolves through&lt;br /&gt;
  division_alias (dva), otherwise an UNPARSED row under an aliased label is hidden&lt;br /&gt;
  by the inScopeOnly filter - exactly the rows the review screen exists to show.&lt;br /&gt;
  Also isoDate(): period_month left as java.sql.Date serialised to epoch millis,&lt;br /&gt;
  which an &amp;lt;input type=date&gt; silently rejects, so the circular filter cleared&lt;br /&gt;
  itself and every circular showed every row.&lt;br /&gt;
&lt;br /&gt;
- WebOfferSyncRepository{,Impl} + migration: publish a parsed circular into&lt;br /&gt;
  dtr.web_offer / web_offer_product. Anchored on (document, page, row) stored as&lt;br /&gt;
  VALUES, never offers.offer.id, which is recreated on every re-ingest. source&lt;br /&gt;
  defaults to MANUAL so the 3850 hand-typed rows are untouched; web_offer_sync_shadow&lt;br /&gt;
  is what lets a human edit win over a later sync.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/offers/CircularIngestRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/offers/CircularIngestRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/offers/OfferCircularRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/offers/OfferScopeRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/offers/OfferScopeRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/offers/WebOfferSyncRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/offers/WebOfferSyncRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/add_web_offer_circular_sync.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/repository&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/repository/offers&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/repository/offers/OfferCircularDateSerialisationTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2F&amp;isdir=1&amp;rev=37525</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2F&amp;isdir=1&amp;rev=37525</guid></item>
<item><pubDate>Tue, 04 Aug 2026 12:28:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37204 – external api v2: category spec + client category entities, cached ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 16 file(s) modified&lt;/strong&gt;&lt;br/&gt;external api v2: category spec + client category entities, cached category exposure, title util, item.brand_identifier, ContentPojo categoryId/categorySpecs&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/CategorySpecDefinition.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Item.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ApiClientCategory.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/CategorySpecPojo.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/ContentPojo.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/external/ExternalTitleUtil.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CategorySpecDefinitionRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CategorySpecDefinitionRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external/ApiClientRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external/ApiClientRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external/ApiClientAuthService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external/ApiClientAuthServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/model&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/model/external&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/model/external/ExternalTitleUtilTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2F&amp;isdir=1&amp;rev=37204</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2F&amp;isdir=1&amp;rev=37204</guid></item>
</channel></rss>