This template can be used to printer category wise sales report with it’s parent category and profit.
Maintenance > Resources
Use this template in Printer.CloseCash/Printer.PartialCash/Printer.CloseCashMail
<!-- CATEGORY SALE REPORT WITH PARENT CATEGORY START -->
<line>
<text bold="true">Category Sales Report</text>
</line>
<line>
<text align ="left" length="23">Name</text>
<text align ="left" length="10">Units</text>
<text align ="right" length="15">Total</text>
</line>
<line>
<text>------------------------------------------------</text>
</line>
#set($cat = "@")
#set($parcat = "@")
#set($catTotal = 0)
#set($parcatTotal = 0)
#set($catUnits = 0)
#set($parcatUnits = 0)
#set($catcost = 0.00)
#set($parcatcost = 0.00)
#set($netcatcost = 0.00)
#set($catNetTotal = 0)
#set($catNetUnits = 0)
#set($flag = 0)
#foreach ($line in $payments.getProductSalesLines())
#if($cat.equals("@"))
#set($cat=$line.printCategoryName())
#set($parcat=$line.printParentCategoryName())
#end
#if (!$cat.equals($line.printCategoryName()))
#set($profit=$catTotal - $catcost)
#set($pct= $profit * 100 / $catcost)
<line>
<text align ="left" length="23">${cat}</text>
<text align ="left" length="10">${catUnits}</text>
<text align ="right" length="15">$payments.formatCurrency(${catTotal})</text>
</line>
<line>
<text align ="left" length="20">Cost: $payments.formatCurrency(${catcost})</text>
<text align ="left" length="28">Profit: $payments.formatCurrency(${profit}) ($payments.roundDouble($pct,2)%)</text>
</line>
#set($parcatTotal = $catTotal + $parcatTotal)
#set($parcatUnits = $catUnits + $parcatUnits)
#set($parcatcost = $catcost + $parcatcost)
#set($cat=$line.printCategoryName())
#set($catTotal = $line.getProductPrice())
#set($catUnits = $line.getProductUnits())
#set($catcost = $line.getCost())
#if (!$parcat.equals($line.printParentCategoryName()))
#set($parprofit=$parcatTotal - $parcatcost)
#set($parpct= $profit * 100 / $parcatcost)
<line>
<text>------------------------------------------------</text>
</line>
<line>
<text align ="left" bold="true" length="23">${parcat}</text>
<text align ="left" bold="true" length="10">${parcatUnits}</text>
<text align ="right" bold="true" length="15">$payments.formatCurrency(${parcatTotal})</text>
</line>
<line>
<text align ="left" length="20" bold="true">Cost: $payments.formatCurrency(${parcatcost})</text>
<text align ="left" length="28" bold="true">Profit: $payments.formatCurrency(${parprofit}) ($payments.roundDouble($parpct,2)%)</text>
</line>
<line></line>
#set($parcat=$line.printParentCategoryName())
#set($parcatTotal = 0.00)
#set($parcatUnits = 0.00)
#set($parcatcost = 0.00)
#end
#else
$flag=1
#set($catTotal = $catTotal + $line.getProductPrice())
#set($catUnits = $catUnits + $line.getProductUnits())
#set($catcost = $catcost + $line.getCost())
#end
#set($catNetTotal = $catNetTotal + $line.getProductPrice())
#set($catNetUnits = $catNetUnits + $line.getProductUnits())
#set($netcatcost = $netcatcost + $line.getCost())
#end
#set($profit=$catTotal - $catcost)
#set($pct= $profit * 100 / $catcost)
<line>
<text align ="left" length="23">${cat}</text>
<text align ="left" length="10">${catUnits}</text>
<text align ="right" length="15">$payments.formatCurrency(${catTotal})</text>
</line>
<line>
<text align ="left" length="20">Cost: $payments.formatCurrency(${catcost})</text>
<text align ="left" length="28">Profit: $payments.formatCurrency(${profit}) ($payments.roundDouble($pct,2)%)</text>
</line>
#set($parcatTotal = $catTotal + $parcatTotal)
#set($parcatUnits = $catUnits + $parcatUnits)
#set($parprofit=$parcatTotal - $parcatcost)
#set($parpct= $profit * 100 / $parcatcost)
<line>
<text>------------------------------------------------</text>
</line>
<line>
<text align ="left" bold="true" length="23">${parcat}</text>
<text align ="left" bold="true" length="10">${parcatUnits}</text>
<text align ="right" bold="true" length="15">$payments.formatCurrency(${parcatTotal})</text>
</line>
<line>
<text align ="left" length="20" bold="true">Cost: $payments.formatCurrency(${parcatcost})</text>
<text align ="left" length="28" bold="true">Profit: $payments.formatCurrency(${parprofit}) ($payments.roundDouble($parpct,2)%)</text>
</line>
<line></line>
<line>
<text>------------------------------------------------</text>
</line>
<line>
<text>------------------------------------------------</text>
</line>
#set($netprofit=$catNetTotal - $netcatcost)
#set($netpct= $netprofit * 100 / $netcatcost)
<line size="1">
<text align ="left" length="23" bold="true">Total</text>
<text align ="left" length="10" bold="true">${catNetUnits}</text>
<text align ="right" length="15" bold="true">$payments.formatCurrency(${catNetTotal})</text>
</line>
<line size="1">
<text align ="left" length="20" bold="true">Cost: $payments.formatCurrency(${netcatcost})</text>
<text align ="left" length="28" bold="true">Profit: $payments.formatCurrency(${netprofit}) ($payments.roundDouble($netpct,2)%)</text>
</line>
<!-- CATEGORY SALE REPORT WITH PARET CATEGORY END -->
Save & restart
Leave a Reply