Code: /* Objective(s) - - This code will help to Calculate required stock below than 10 days statement (based on last 10 days sell)below than 10 days - It cal culate as - Number of days = (To Date-From Date) - Sell Per day = Stock Outwords/(Number of days) - DayRemaining = Closing Stock/Sell Per day - StockRequired = Sell Per day* 10-Closing Stock Filter: If DayRemaining < 10 */ [#Menu: Gateway of Tally] Add : Item : Before : @@locQuit : Stock Required : Display : Stock Required [Report: Stock Required] Use: Godown Summary Delete: Form:GodownSummary Add: Form:Stock Required [Form:Stock Required] Use: Godown Summary Add : Button :Refresh TDL Replace:Option:STKGDWN Summary:STKGDWN Summary REQ: NOT ##DSPShowMonthly [!Form:STKGDWN SummaryREQ] Use : DSP Template Bottom Toolbar Buttons : BottomToolBarBtn1, BottomToolBarBtn8, BottomToolBarBtn9, BottomToolBarBtn10, BottomToolBarBtn11 Add : Buttons : ChangeItem, MonthWiseButton, DSPShowConsumption ;;ChangeValue Delete : Bottom Button : Budget Analysis Parts :DSP AccTitles, DSP ColTitles REQ, DSP AccBodyREQ;;this part is only responcible for displaying the data we need to update this #jainitya ;;update Background : @@SV_STOCK Local : Key : MonthWiseButton: Inactive : $$IsSysNameVar:DSPGodownName Local : Line : DSP ItemTitle : Invisible : $$IsSysNameVar:DSPGodownName OR ($$InPrintMode AND @@UseStkGdwnTitle) Local : Field : DSP ItemTitle : Set as : $$LocaleString:@@CurLangGodownName Local : Line : DSP AccLine : Explode : SSGDWN Explosion : $IsGodown ;;AND @@Explodable Local : Line : DSP AccLine : Explode : SSGDWNGRP Explosion REQ : $IsStockGroup ;;AND @@Explodable Local : Line : DSP AccLine : Explode : SSGDWNBATCH Explosion : $IsStockItem AND $BatchwiseOn ;;AND #DSPOutQty>0 AND @@Explodable ;;looks like last one for remote report Local : Part : DSP AccBodyREQ : Repeat : DSP AccLine: GodownGrpItemChildOfGodownNameAndGroupName Local : Field : DSP ItemTitle : Cells : @@StockCellTotalVal Local : Field : DSP CmpTitle : Cells : @@StockCellTotalVal Local : Field : DSP DateTitle : Cells : @@StockCellTotalVal Local : Field : DSP ValuationTitle: Cells : @@StockCellTotalVal Local : Field : DSP BreakupTitle : Cells : @@StockCellTotalVal Local : Field : DSP GodownTitle : Cells : @@StockCellTotalVal Local : Field : DSP CategoryTitle : Cells : @@StockCellTotalVal Local : Field : DSP BudgetTitle : Cells : @@StockCellTotalVal Local : Field : DSP OrderTitle : Cells : @@StockCellTotalVal Local : Field : DSP CurrencyTitle : Cells : @@StockCellTotalVal Local : Field : DSP ColTotTitle : Cells : @@StockCellTotalVal Local : Field : DSP NameTitle : Cells : @@BatchCellVal Local : Field : DSP DispName : Cells : @@BatchCellVal [Part: SSGDWNGRP Explosion REQ] Lines : DSP AccLine Repeat : DSP AccLine : GodownGrpItemChildOfGroupName REQ [Collection: GodownGrpItemChildOfGroupName REQ] Use:GodownGrpItemChildOfGroupName Delete: Collection:ItemInGodownName Add: Collection:ItemInGodownNameREQ [Collection: ItemInGodownNameREQ] use: ItemInGodownName Add: Filter:DayRemainingFilter Add: Compute : SellPerdayMethaod : if ($StkOutQty<1) then "" else (if ($$SellPerday:$StkOutQty<1)then 1 else $$SellPerday:$StkOutQty) Add: Compute : DayRemaining : $StkClBalance/$SellPerdayMethaod Add: Compute : StockRequired : if($DayRemaining<10)then ($SellPerdayMethaod*10-$StkClBalance) else 0 [Function: Sell Per day ] ;; Definition Block Parameter : StkOutQtytemp : Quantity:Primary Units Returns : Number Variable : Sell Per day : Number ;; Procedural Block 01 : SET : Sell Per day : ##StkOutQtytemp/(@@DSPToDate-@@DSPFromDate) 02 : RETURN : ##SellPerday ;; End-of-Function [System: Formula] DayRemainingFilter : ($StkClBalance/(if ($StkOutQty<1) then "" else (if ($$SellPerday:$StkOutQty<1)then 1 else $$SellPerday:$StkOutQty)))<10 [Part: DSP ColTitles REQ] Lines :ColTitlesREQ Common Border : Yes Border : Column Titles [Line: ColTitlesREQ] Lines : DSP ItemTitle, DSP CmpTitle, DSP DateTitle, DSP ValuationTitle, DSP BudgetTitle, DSP CurrencyTitle ;;Option : DSP AddGodownTitle : ##IsGodownReport AND NOT ##IsDirectGodownReport ;;Option : DSP AddCategoryTitle : $$IsCostCategoryOn AND ##IsCCReport AND NOT $$IsSysNameVar:CostCategoryName ;;Option : DSP AddBreakupTitle : ##IsCCBkup Option : DSP AccQtyTitlesREQ : ##IsStockReport ;;Option : DSP AddOrderTitles : ##IsStockReport ;;Option : DSP AccAmtTitles : NOT ##IsStockReport ;;Fields : DSPS Day Remaining [!Line: DSP AccQtyTitlesREQ] Add : Lines : DSP QtyOneTitle, DSP QtyTwoTitleREQ [Line: DSP QtyTwoTitleREQ] Fields : DSP NameTitle, DSP ColQtyTwoTitle, DSP QtyTwoTitleREQ Repeat : DSP QtyTwoTitleREQ Invisible : NOT ##IsStockReport Local : Field : DSP NameTitle : Inactive : Yes [Field: DSP QtyTwoTitleREQ] Fields : DSPQ OpTitle, DSPQ InTitle, DSPQ OutTitle, DSPQ ClTitleREQ Option : WithThinLeft : $$NumSets > 1 Option : WithThinRight : ($$NumSets > 1) AND $$InPrintMode [Field: DSPQ ClTitleREQ] Fields : DSPS Day Remaining,DSPS StockRequires Invisible : NOT ##DSPShowClosing AND $$IsCurrentVar:DSPOrderCombo Border : Thin Left : (##DSPShowOpening OR ##DSPShowInwards OR @@DSPShowOutwards) AND ($$NumSets = 1) [Field: DSPS Day Remaining] Set as : "Day Remaining" Border : Thin Cover [Field: DSPS StockRequires] Set as : "Stock Required" Border : Thin Cover [Part: DSP AccBodyREQ] Use:DSP AccBody Replace: Option:DSP AsStockReport : DSP AsStockReportREQ : ##IsStockReport [!Part: DSP AsStockReportREQ] Local : Line : DSP AccLine : Add : Fields : DSP StkInfoREQ Local : Line : DSP AccLine : Repeat : DSP StkInfoREQ Local : Line : DSP AccLine : Empty : NOT ##DSPShowMonthly AND + NOT ##DSPShowAllAccounts AND + ((((NOT ##DSPShowAllItems OR (##DSPExcludeNonTransItem )) AND $IsEmptyObject) OR ( NOT $IsWithItems)) + OR (($$IsEmpty:$TBalClosing AND $$IsEmpty:$StkClBalance + AND (NOT ##DSPShowAllItems OR (##DSPExcludeNonTransItem AND (NOT $IsWithVouchers))) OR ( NOT $IsWithItems)))) Local : Line : DSP Totals : Add : Fields : DSP StkInfoTotal Local : Line : DSP Totals : Repeat : DSP StkInfoTotal Local : Line : DSP AverageLine: Add : Fields : DSP StkInfoAvg Local : Line : DSP AverageLine: Repeat : DSP StkInfoAvg Local : Line : DSP HiVal : Add : Fields : DSP StkInfoHiLo Local : Line : DSP HiVal : Repeat : DSP StkInfoHiLo Local : Line : DSP LoVal : Add : Fields : DSP StkInfoHiLo Local : Line : DSP LoVal : Repeat : DSP StkInfoHiLo Local : Line : DSP ClPageBreak: Add : Fields : DSP StkInfoTotal Local : Line : DSP ClPageBreak: Repeat : DSP StkInfoTotal Local : Line : DSP OpPageBreak: Add : Fields : DSP StkInfoTotal Local : Line : DSP OpPageBreak: Repeat : DSP StkInfoTotal ;; Local : Field: DSPHLD DrAmt : Align : Centre ;; Local : Field: DSPHLD CrAmt : Align : Centre ;; Local : Field: DSPHLD ClAmt : Align : Centre Option : DSP StkColTotReport : $$NumSets > 1 AND ##DSPColumnTotal [Field: DSP StkInfoREQ] Fields : DSP DayRemaining,DSP StockRequired;;, DSP ClAltQty, DSP ClRate, DSP ClAmtA ;; Invisible : NOT ##DSPShowClosing AND $$IsCurrentVar:DSPOrderCombo ;; Local : Field : DSP ClAmtA : Inactive : No ;; Width : @@DSPWithAltQtyWidth + @@DSPWithQtyWidth + @@DSPWithRateWidth + @@DSPWithAmtWidth [Field: DSP StockRequired] Type: Number Set as : $StockRequired ;;Inactive : ##DSPShowMonthly AND NOT ##DSPAverage AND ($$DateFrom > $LastVoucherDate:Company:##SVCurrentCompany) ;;GraphValue : NOT ##GraphByValue [Field: DSP DayRemaining ] Type : Number Set as :$DayRemaining;; #DSPClQty/#DSPOutQty2 ;;Inactive: ##DSPShowMonthly AND NOT ##DSPAverage AND ($$DateFrom > $LastVoucherDate:Company:##SVCurrentCompany)
this is the updated code Code: /* Objective(s) -[IMG]http://C:\Users\jai\Desktop\Untitled.png[/IMG] - This code will help to Calculate required stock below than 10 days statement (based on last 10 days sell)below than 10 days - It cal culate as - Number of days = (To Date-From Date) - Sell Per day = Stock Outwords/(Number of days) - DayRemaining = Closing Stock/Sell Per day - StockRequired = Sell Per day* 10-Closing Stock Filter: If DayRemaining < 10 */ [Variable:MinmumDayOfStock] Type:Number Default:10 [Variable:StartDateREQ] Type:Date ;; Default:@@DSPFromDate [Variable:EndDateREQ] Type:Date Default:@@DSPToDate [#Menu: Gateway of Tally] Add : Item : Before : @@locQuit : Stock Required : Display : Stock Required [Report: Stock Required] Use: Godown Summary Delete: Form:GodownSummary Add: Form:Stock Required Add: Variable: MinmumDayOfStock Add:Variable:StartDateREQ:Date Set as:@@DSPFromDate Add:Variable:EndDateREQ:Date Set As:@@DSPToDate Replace:PrintSet : PrintFileName : "StockReq" [Form:Stock Required] Use: Godown Summary Add : Button :Refresh TDL Replace:Option:STKGDWN Summary:STKGDWN Summary REQ: NOT ##DSPShowMonthly [!Form:STKGDWN SummaryREQ] Use : DSP Template Bottom Toolbar Buttons : BottomToolBarBtn1, BottomToolBarBtn8, BottomToolBarBtn9,+ BottomToolBarBtn10, BottomToolBarBtn11 Add : Buttons : ChangeItem, MonthWiseButton, DSPShowConsumption ;;ChangeValue Delete : Bottom Button : Budget Analysis Parts :DSP AccTitles, DSP ColTitlesREQ, DSP AccBodyREQ;;this part is only responcible for ;;displaying the data we need to update this #jainitya ;;update Background : @@SV_STOCK Local : Key : MonthWiseButton: Inactive : $$IsSysNameVar:DSPGodownName Local : Line : DSP ItemTitle : Invisible : $$IsSysNameVar:DSPGodownName OR ($$InPrintMode AND @@UseStkGdwnTitle) Local : Field : DSP ItemTitle : Set as : $$LocaleString:@@CurLangGodownName Local : Line : DSP AccLine : Explode : SSGDWN Explosion : $IsGodown ;;AND @@Explodable Local : Line : DSP AccLine : Explode : SSGDWNGRP Explosion REQ : $IsStockGroup ;;AND @@Explodable Local : Line : DSP AccLine : Explode : SSGDWNBATCH Explosion : $IsStockItem AND $BatchwiseOn + AND #DSPOutQty>0 ;;AND @@Explodable ;;looks like last one for remote report Local : Part : DSP AccBodyREQ : Repeat : DSP AccLine: GodownGrpItemChildOfGodownNameAndGroupName Local : Field : DSP ItemTitle : Cells : @@StockCellTotalVal Local : Field : DSP CmpTitle : Cells : @@StockCellTotalVal Local : Field : DSP DateTitle : Cells : @@StockCellTotalVal Local : Field : DSP ValuationTitle: Cells : @@StockCellTotalVal Local : Field : DSP BreakupTitle : Cells : @@StockCellTotalVal Local : Field : DSP GodownTitle : Cells : @@StockCellTotalVal Local : Field : DSP CategoryTitle : Cells : @@StockCellTotalVal Local : Field : DSP BudgetTitle : Cells : @@StockCellTotalVal Local : Field : DSP OrderTitle : Cells : @@StockCellTotalVal Local : Field : DSP CurrencyTitle : Cells : @@StockCellTotalVal Local : Field : DSP ColTotTitle : Cells : @@StockCellTotalVal Local : Field : DSP NameTitle : Cells : @@BatchCellVal Local : Field : DSP DispName : Cells : @@BatchCellVal [Part: SSGDWNGRP Explosion REQ] Lines : DSP AccLine Repeat : DSP AccLine : GodownGrpItemChildOfGroupName REQ [Collection: GodownGrpItemChildOfGroupName REQ] Use:GodownGrpItemChildOfGroupName Delete: Collection:ItemInGodownName Add: Collection:ItemInGodownNameREQ [Collection: ItemInGodownNameREQ] use: ItemInGodownName Add: Filter:DayRemainingFilter Add: Compute : SellPerdayMethaod: if ($StkOutQty<1) then "" else + (if ($$SellPerday:$StkOutQty<1)then 1 else + $$SellPerday:$StkOutQty) Add: Compute : DayRemaining : $StkClBalance/$SellPerdayMethaod Add: Compute : StockRequired : $SellPerdayMethaod*##MinmumDayOfStock-$StkClBalance [Function: Sell Per day ] ;; Definition Block Parameter : StkOutQtytemp : Quantity:Primary Units Returns : Number Variable : Sell Per day : Number ;; Procedural Block 01 : SET : Sell Per day : ##StkOutQtytemp/(@@DSPToDate-@@DSPFromDate) 02 : RETURN : $$Number:##SellPerday ;; End-of-Function [System: Formula] DayRemainingFilter : ($StkClBalance+$StkOutQty)<1 + OR + ($StkClBalance/+ (if ($StkOutQty<1) then "" else + (if ($$SellPerday:$StkOutQty<1)then 1 else $$SellPerday:$StkOutQty)+ )+ )+ <##MinmumDayOfStock OR ($$SellPerday:$StkOutQty + $StkClBalance) [Part: DSP ColTitles REQ] Lines :ColTitlesREQ Common Border : Yes Border : Column Titles [Line: ColTitlesREQ] Lines : DSP ItemTitle, DSP CmpTitle, DSP DateTitle, DSP ValuationTitle, DSP BudgetTitle, DSP CurrencyTitle Option : DSP AccQtyTitlesREQ : ##IsStockReport [!Line: DSP AccQtyTitlesREQ] Add : Lines : DSP QtyOneTitle, DSP QtyTwoTitleREQ [Line: DSP QtyTwoTitleREQ] Fields : DSP NameTitle, DSP ColQtyTwoTitle, DSP QtyTwoTitleREQ Repeat : DSP QtyTwoTitleREQ Invisible : NOT ##IsStockReport Local : Field : DSP NameTitle : Inactive : Yes [Field: DSP QtyTwoTitleREQ] Fields : DSPQ ClTitleREQ Option : WithThinLeft : $$NumSets > 1 Option : WithThinRight : ($$NumSets > 1) AND $$InPrintMode [Field: DSPQ ClTitleREQ] Use:DSP StkInfoREQ Local : Field : Default : Type : String Local : Field : Default : Align : Left Local : Field : Default : Style : Normal Bold Local : Field : DSP StkClBalance : Set as : "Closing" Local : Field : DSP StkOutQty : Set as : "Sell" Local : Field : DSP DayRemaining : Set as : "Day Remaining" Local : Field : DSP StockRequired : Set as : "Stock Required" [Part: DSP AccBodyREQ] Use:DSP AccBody Replace: Option:DSP AsStockReport : DSP AsStockReportREQ : ##IsStockReport [!Part: DSP AsStockReportREQ] Local : Line : DSP AccLine : Add : Fields : DSP StkInfoREQ Local : Line : DSP AccLine : Repeat : DSP StkInfoREQ Local : Line : DSP AccLine : Empty : NOT ##DSPShowMonthly AND + NOT ##DSPShowAllAccounts AND + ((((NOT ##DSPShowAllItems OR (##DSPExcludeNonTransItem )) + AND $IsEmptyObject) OR ( NOT $IsWithItems)) + OR (($$IsEmpty:$TBalClosing AND $$IsEmpty:$StkClBalance + AND (NOT ##DSPShowAllItems OR (##DSPExcludeNonTransItem + AND (NOT $IsWithVouchers))) OR ( NOT $IsWithItems)))) Local : Line : DSP Totals : Add : Fields : DSP StkInfoTotal Local : Line : DSP Totals : Repeat : DSP StkInfoTotal Local : Line : DSP AverageLine: Add : Fields : DSP StkInfoAvg Local : Line : DSP AverageLine: Repeat : DSP StkInfoAvg Local : Line : DSP HiVal : Add : Fields : DSP StkInfoHiLo Local : Line : DSP HiVal : Repeat : DSP StkInfoHiLo Local : Line : DSP LoVal : Add : Fields : DSP StkInfoHiLo Local : Line : DSP LoVal : Repeat : DSP StkInfoHiLo Local : Line : DSP ClPageBreak: Add : Fields : DSP StkInfoTotal Local : Line : DSP ClPageBreak: Repeat : DSP StkInfoTotal Local : Line : DSP OpPageBreak: Add : Fields : DSP StkInfoTotal Local : Line : DSP OpPageBreak: Repeat : DSP StkInfoTotal Option : DSP StkColTotReport : $$NumSets > 1 AND ##DSPColumnTotal [Field: DSP StkInfoREQ] Use:DSP StkInfo Delete:Option : DSPS StkCl Fields :DSP StkClBalance, DSP StkOutQty,DSP DayRemaining,DSP StockRequired ;;,DSP MinmumDayOfStock,DSP StartDate,DSP EndDate;;, DSP ClAltQty, DSP ClRate, DSP ClAmtA [Field: DSP StkClBalance] Type: Number Set as : $StkClBalance Border : Thin Cover Width : 1 inch [Field: DSP StkOutQty] Type: Number Set as : $StkOutQty Border : Thin Cover Width : 1 inch [Field: DSP StockRequired] Type: Number Set as : $StockRequired Border : Thin Cover Width : 1 inch [Field: DSP DayRemaining ] Type : Number Set as :$DayRemaining Border : Thin Cover Width : 1 inch [Field: DSP MinmumDayOfStock] Type: Number Set as : ##MinmumDayOfStock [Field: DSP StartDate] Type: Date Set as : @@DSPFromDate [Field: DSP EndDate] Type: Date Set as : @@DSPToDate [#Menu: Gateway of Tally]
Hello Jai, a very good novel way of reminding the required stock for the business house. May I point out some of the corrections that are required [in my opinion] 1. from the image, I find that closing stock are in negative, which cannot be true. Either some stock to be left or it should show nil balance and not negative value 2. In certain details, day remaining also go into negative value, which cannot be true. 3. Please introduce purchase column and value, like OPENING PURCHASE SALES CLOSING STOCK REQUIRED FOR STOCK STOCK NEXT 10 DAY SALES I appreciate your efforts and your innovative ideas and just shared my ideas. I just pointed out some of the aberrations that I came across and request you to fine tune the tdl. My greatest regards to you and salute your good work. Bye
Hi Priya, Very valid and good points you have raised. I really appreciate your findings and suggestions. could you please go ahead and fine tune the tdl and share with us please. Thanks in Advance!!
Hi Priya 1.from the image, I find that closing stock are in negative=> I have created this tdl for the persone who have negative value in stock ,Reason is They sell the product on credit.(they called it UDHAR) IF we can not have -value in stock then tally should force us to not to do that while creating sales or transfer voucher.(this is not the part of this tdl and if tdl does not show this negative stock then I think that is an defect) 2.In certain details, day remaining also go into negative value=> I tink its clear now from above statment 3.Please introduce purchase column and value=> yes sure you can show as many column as per client requirement OR as you think that is required. Thanks jainitya
Mr. Jai, I appreciate your efforts in replying to my insensitive remarks. But still, in my opinion, closing stock, the very word means that the stock remaining on hand. I am yet to understand your reasons put forth in point 1. Credit sale relate to payment for the sale received after agreed period and not immediately. Once the sale is done, the closing stock reduces and how further sale can be made when there is negative stock and hence delivery cannot be made. Anyway, Jai, my intention is not to criticize anyone, who is making valuable contribution and so please do not mistake me. I just put forth my doubts; seeking clarifications from the members of the forum. If you have made a specific tdl, then I am unaware of it and excuse me for raising such doubts. Thanks again Mr. Jai, for your creativity and the kindness to reply. My congratulations to your efforts. Bye