[
DataContractAttribute,
SysOperationContractProcessingAttribute(classstr(GOD_RevenueUIBuilder))
]
class GOD_RevenueContract
{
FromDate fromDate;
ToDate toDate;
List verticalDimensionList;
}
[DataMemberAttribute("fromDate")]
public FromDate parmFromDate(FromDate _fromDate = fromDate)
{
fromDate = _fromDate;
return fromDate;
}
[DataMemberAttribute("toDate")]
public ToDate parmToDate(ToDate _toDate = toDate)
{
toDate = _toDate;
return toDate;
}
[
DataMemberAttribute("verticalDimensionList"),
AifCollectionTypeAttribute("verticalDimensionList", Types::String),
SysOperationLabelAttribute(literalStr("@SYS62571"))
]
public List parmverticalDimensionList(List _verticalDimensionList = verticalDimensionList)
{
verticalDimensionList = _verticalDimensionList;
return verticalDimensionList;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
[
SRSReportParameterAttribute(classStr(GOD_RevenueContract))
]
class GOD_RevenueDP extends SRSReportDataProviderBase//SrsReportDataProviderPreProcess// //
{
GOD_RevenueContract contract;
GOD_RevenueTmp tempTable;
ListIterator dimListIterator;
FromDate fromDate;
ToDate toDate;
#GOD_DefaultDimension
}
[
SRSReportDataSetAttribute(tableStr(GOD_RevenueTmp))
]
public GOD_RevenueTmp getTmpTable()
{
select * from tempTable;
return tempTable;
}
[SysEntryPointAttribute]
public void processReport()
{
CustInvoiceJour custInvoiceJour;
MainAccount mainAccount;
GOD_IntegrationPostingProfile postingProfile;
DimensionValue dimvalue;
int dimExists;
TaxTrans taxTrans;
boolean isTaxInserted = false;
container vertDims = conNull();
GOD_GeneralJournalSubledgerVoucher generalJournalEntry;
contract = this.parmDataContract() as GOD_RevenueContract;
fromDate = contract.parmFromDate();
toDate = contract.parmToDate();
if(contract.parmverticalDimensionList())
{
dimListIterator = new ListIterator(contract.parmverticalDimensionList());
while(dimListIterator.more())
{
vertDims += dimListIterator.value();
dimListIterator.next();
}
}
while select LedgerVoucher,InvoiceId,InvoiceDate from custInvoiceJour
where custInvoiceJour.InvoiceDate >= fromDate &&
custInvoiceJour.InvoiceDate <= toDate// && custInvoiceJour.InvoiceId == 'IMTM-000001'
{
generalJournalEntry.clear();
isTaxInserted = false;
while select Voucher,LedgerDimension,MainAccount,AccountingCurrencyAmount from generalJournalEntry
where generalJournalEntry.Voucher == custInvoiceJour.LedgerVoucher
{
mainAccount = MainAccount::find(generalJournalEntry.MainAccount);
select firstonly postingProfile where postingProfile.MainAccountId == mainAccount.MainAccountId;
if(postingProfile)// || generalJournalEntry.PostingType == LedgerPostingType::ServiceTax_IN)
{
dimvalue = conPeek(GOD_getDimAttrFromLedgerDimension(#Vertical,generalJournalEntry.LedgerDimension),1);
dimExists = conFind(vertDims,dimvalue);
if(dimExists || !vertDims)
{
tempTable.InvoiceId = custInvoiceJour.InvoiceId;
tempTable.InvoiceDate = custInvoiceJour.InvoiceDate;
tempTable.DiscAmount = custInvoiceJour.CashDisc;
tempTable.MainAccount = mainAccount.Name;
tempTable.Vertical = dimvalue;
tempTable.EventName = conPeek(GOD_getDimAttrFromLedgerDimension(#Event,generalJournalEntry.LedgerDimension),2);
tempTable.AccountingCurrencyAmount = generalJournalEntry.AccountingCurrencyAmount;
if(isTaxInserted == false)
{
select sum(TaxAmount) from taxTrans where taxTrans.Voucher == generalJournalEntry.Voucher
&& taxTrans.GOD_isSBT == NoYes::No;
tempTable.STAmount = taxTrans.TaxAmount;
taxTrans.clear();
select sum(TaxAmount) from taxTrans where taxTrans.Voucher == generalJournalEntry.Voucher
&& taxTrans.GOD_isSBT == NoYes::Yes;
tempTable.SBAmount = taxTrans.TaxAmount;
isTaxInserted = true;
}
else
{
tempTable.STAmount = 0;
tempTable.SBAmount = 0;
}
tempTable.insert();
}
}
}
}
}
///////////////////////
class GOD_RevenueUIBuilder extends SrsReportDataContractUIBuilder
{
#GOD_DefaultDimension
DialogField dialogfromDate,dialogtoDate,dialogDimName;
GOD_RevenueContract contract;
}
public void build()
{
contract = this.dataContractObject();
dialogfromDate = this.addDialogField(methodStr(GOD_RevenueContract, parmFromDate),contract);
dialogtoDate = this.addDialogField(methodStr(GOD_RevenueContract, parmToDate),contract);
dialogDimName = this.addDialogField(methodStr(GOD_RevenueContract, parmverticalDimensionList),contract);
dialogDimName.value("");
//dialogproductSubGroup.value("");
}
private void dimNameValueLookUp(FormStringControl dimNameLookUp)
{
Query query = new Query();
container conDim;
DimensionAttributeDirCategory dimAttributeDirCategory;
DimensionAttribute dimensionAttribute;
;
select firstonly Type, RecId from dimensionAttribute where dimensionAttribute.Name == #Vertical;
if(dimensionAttribute.Type == DimensionAttributeType::CustomList)
{
select firstonly DirCategory from dimAttributeDirCategory where dimAttributeDirCategory.DimensionAttribute == dimensionAttribute.RecId;
query.addDataSource(tableNum(DimensionFinancialTag)).
addRange(fieldNum(DimensionFinancialTag, FinancialTagCategory)).
value(queryValue(dimAttributeDirCategory.DirCategory));
SysLookupMultiSelectGrid::lookup(query,dimNameLookUp,dimNameLookUp,conDim);
}
}
public void getFromDialog()
{
contract = this.dataContractObject();
super();
}
public void postBuild()
{
super();
dialogfromDate = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_RevenueContract, parmFromDate));
dialogtoDate = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_RevenueContract, parmToDate));
dialogDimName = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_RevenueContract, parmverticalDimensionList));
dialogDimName.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(GOD_RevenueUIBuilder,dimNameValueLookUp), this);
if (dialogDimName)
{
dialogDimName.lookupButton(2);
}
}
public void postRun()
{
//super();
}
////
[DataContractAttribute,
SysOperationContractProcessingAttribute(classstr(GOD_ServiceTaxPayUIBuilder))]
class GOD_ServiceTaxPayContract_New
{
DimensionValue vertical;
yearBase fromYear;
}
[DataMemberAttribute("year"),
SysOperationLabelAttribute(literalStr("@IMT197")),
SysOperationHelpTextAttribute(literalStr("@SYS107162")),
SysOperationDisplayOrderAttribute('2')]
public YearBase parmFromYear(YearBase _fromYear = fromYear)
{
fromYear = _fromYear;
return fromYear;
}
[DataMemberAttribute("DimensionValue"),
SysOperationLabelAttribute(literalStr("@SYS62571")),
SysOperationHelpTextAttribute(literalStr("@SYS62571")),
SysOperationDisplayOrderAttribute('1')]
public DimensionValue parmVertical(DimensionValue _vertical = vertical)
{
vertical = _vertical;
return vertical;
}
//
//////////////////////////////////////////////////////////
[ SRSReportParameterAttribute(classstr(GOD_ServiceTaxPayContract))]
public class GOD_ServiceTaxPayDP extends SRSReportDataProviderBase//SrsReportDataProviderPreProcess//
{
#define.ServiceTax("Serv. Tax")
#define.VAT("VAT")
#GOD_DefaultDimension
GOD_ServiceTaxPayTmp god_ServiceTaxTmp,god_ServiceTaxTmpCust;
CustInvoiceJour custInvoiceJour;
TaxTrans_IN taxTrans;
MonthsOfYear MonthsOfYear;
TransDate fromDate,toDate,curDate;
Amount preClosingBal;
DimensionValue vertical;
GeneralJournalAccountEntry generalJournalAccountEntry;
YearBase fromYear;
}
///////////////////////
//////////////
class GOD_ServiceTaxPayUIBuilder extends SrsReportDataContractUIBuilder
{
DialogField dialogvertical,dialogyear;
boolean enable;
GOD_ServiceTaxPayContract contract;
}
public void build()
{
contract = this.dataContractObject();
dialogvertical = this.addDialogField(methodStr(GOD_ServiceTaxPayContract, parmVertical),contract);
dialogyear = this.addDialogField(methodStr(GOD_ServiceTaxPayContract, parmFromYear),contract);
dialogvertical.value("");
}
public void getFromDialog()
{
contract = this.dataContractObject();
super();
}
public void postBuild()
{
super();
dialogvertical = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_ServiceTaxPayContract, parmVertical));
dialogyear = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_ServiceTaxPayContract, parmFromYear));
dialogvertical.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(GOD_ServiceTaxPayUIBuilder,verticalLookup), this);
}
private void verticalLookup(FormStringControl verticalLookup)
{
#define.DimensionName("VERTICALS")
Query query;
QueryBuildDataSource qbds,qbds1;
SysTableLookup sysTableLookup;
DimensionAttribute dimAttr;
;
dimAttr = DimensionAttribute::findByName(#DimensionName);
sysTableLookup = SysTableLookup::newParameters(tablenum(DimensionFinancialTag),verticalLookup);
sysTableLookup.addLookupfield(fieldnum(DimensionFinancialTag, Value));
sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag,Description));
query = new Query();
qbds = query.addDataSource(tableNum(DimensionFinancialTag));
qbds1 = qbds.addDataSource(tableNum(DimensionAttributeDirCategory));
qbds1.addLink(fieldNum(DimensionFinancialTag,FinancialTagCategory),fieldnum(DimensionAttributeDirCategory,RecId));
qbds1.addRange(fieldNum(DimensionAttributeDirCategory, DimensionAttribute)).value(queryvalue(dimAttr.recid));
sysTableLookup.parmQuery(query);
sysTableLookup.parmUseLookupValue(False);
sysTableLookup.performFormLookup();
}
///////////////
DataContractAttribute,
SysOperationContractProcessingAttribute(classstr(GOD_RevenueUIBuilder))
]
class GOD_RevenueContract
{
FromDate fromDate;
ToDate toDate;
List verticalDimensionList;
}
[DataMemberAttribute("fromDate")]
public FromDate parmFromDate(FromDate _fromDate = fromDate)
{
fromDate = _fromDate;
return fromDate;
}
[DataMemberAttribute("toDate")]
public ToDate parmToDate(ToDate _toDate = toDate)
{
toDate = _toDate;
return toDate;
}
[
DataMemberAttribute("verticalDimensionList"),
AifCollectionTypeAttribute("verticalDimensionList", Types::String),
SysOperationLabelAttribute(literalStr("@SYS62571"))
]
public List parmverticalDimensionList(List _verticalDimensionList = verticalDimensionList)
{
verticalDimensionList = _verticalDimensionList;
return verticalDimensionList;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
[
SRSReportParameterAttribute(classStr(GOD_RevenueContract))
]
class GOD_RevenueDP extends SRSReportDataProviderBase//SrsReportDataProviderPreProcess// //
{
GOD_RevenueContract contract;
GOD_RevenueTmp tempTable;
ListIterator dimListIterator;
FromDate fromDate;
ToDate toDate;
#GOD_DefaultDimension
}
[
SRSReportDataSetAttribute(tableStr(GOD_RevenueTmp))
]
public GOD_RevenueTmp getTmpTable()
{
select * from tempTable;
return tempTable;
}
[SysEntryPointAttribute]
public void processReport()
{
CustInvoiceJour custInvoiceJour;
MainAccount mainAccount;
GOD_IntegrationPostingProfile postingProfile;
DimensionValue dimvalue;
int dimExists;
TaxTrans taxTrans;
boolean isTaxInserted = false;
container vertDims = conNull();
GOD_GeneralJournalSubledgerVoucher generalJournalEntry;
contract = this.parmDataContract() as GOD_RevenueContract;
fromDate = contract.parmFromDate();
toDate = contract.parmToDate();
if(contract.parmverticalDimensionList())
{
dimListIterator = new ListIterator(contract.parmverticalDimensionList());
while(dimListIterator.more())
{
vertDims += dimListIterator.value();
dimListIterator.next();
}
}
while select LedgerVoucher,InvoiceId,InvoiceDate from custInvoiceJour
where custInvoiceJour.InvoiceDate >= fromDate &&
custInvoiceJour.InvoiceDate <= toDate// && custInvoiceJour.InvoiceId == 'IMTM-000001'
{
generalJournalEntry.clear();
isTaxInserted = false;
while select Voucher,LedgerDimension,MainAccount,AccountingCurrencyAmount from generalJournalEntry
where generalJournalEntry.Voucher == custInvoiceJour.LedgerVoucher
{
mainAccount = MainAccount::find(generalJournalEntry.MainAccount);
select firstonly postingProfile where postingProfile.MainAccountId == mainAccount.MainAccountId;
if(postingProfile)// || generalJournalEntry.PostingType == LedgerPostingType::ServiceTax_IN)
{
dimvalue = conPeek(GOD_getDimAttrFromLedgerDimension(#Vertical,generalJournalEntry.LedgerDimension),1);
dimExists = conFind(vertDims,dimvalue);
if(dimExists || !vertDims)
{
tempTable.InvoiceId = custInvoiceJour.InvoiceId;
tempTable.InvoiceDate = custInvoiceJour.InvoiceDate;
tempTable.DiscAmount = custInvoiceJour.CashDisc;
tempTable.MainAccount = mainAccount.Name;
tempTable.Vertical = dimvalue;
tempTable.EventName = conPeek(GOD_getDimAttrFromLedgerDimension(#Event,generalJournalEntry.LedgerDimension),2);
tempTable.AccountingCurrencyAmount = generalJournalEntry.AccountingCurrencyAmount;
if(isTaxInserted == false)
{
select sum(TaxAmount) from taxTrans where taxTrans.Voucher == generalJournalEntry.Voucher
&& taxTrans.GOD_isSBT == NoYes::No;
tempTable.STAmount = taxTrans.TaxAmount;
taxTrans.clear();
select sum(TaxAmount) from taxTrans where taxTrans.Voucher == generalJournalEntry.Voucher
&& taxTrans.GOD_isSBT == NoYes::Yes;
tempTable.SBAmount = taxTrans.TaxAmount;
isTaxInserted = true;
}
else
{
tempTable.STAmount = 0;
tempTable.SBAmount = 0;
}
tempTable.insert();
}
}
}
}
}
///////////////////////
class GOD_RevenueUIBuilder extends SrsReportDataContractUIBuilder
{
#GOD_DefaultDimension
DialogField dialogfromDate,dialogtoDate,dialogDimName;
GOD_RevenueContract contract;
}
public void build()
{
contract = this.dataContractObject();
dialogfromDate = this.addDialogField(methodStr(GOD_RevenueContract, parmFromDate),contract);
dialogtoDate = this.addDialogField(methodStr(GOD_RevenueContract, parmToDate),contract);
dialogDimName = this.addDialogField(methodStr(GOD_RevenueContract, parmverticalDimensionList),contract);
dialogDimName.value("");
//dialogproductSubGroup.value("");
}
private void dimNameValueLookUp(FormStringControl dimNameLookUp)
{
Query query = new Query();
container conDim;
DimensionAttributeDirCategory dimAttributeDirCategory;
DimensionAttribute dimensionAttribute;
;
select firstonly Type, RecId from dimensionAttribute where dimensionAttribute.Name == #Vertical;
if(dimensionAttribute.Type == DimensionAttributeType::CustomList)
{
select firstonly DirCategory from dimAttributeDirCategory where dimAttributeDirCategory.DimensionAttribute == dimensionAttribute.RecId;
query.addDataSource(tableNum(DimensionFinancialTag)).
addRange(fieldNum(DimensionFinancialTag, FinancialTagCategory)).
value(queryValue(dimAttributeDirCategory.DirCategory));
SysLookupMultiSelectGrid::lookup(query,dimNameLookUp,dimNameLookUp,conDim);
}
}
public void getFromDialog()
{
contract = this.dataContractObject();
super();
}
public void postBuild()
{
super();
dialogfromDate = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_RevenueContract, parmFromDate));
dialogtoDate = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_RevenueContract, parmToDate));
dialogDimName = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_RevenueContract, parmverticalDimensionList));
dialogDimName.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(GOD_RevenueUIBuilder,dimNameValueLookUp), this);
if (dialogDimName)
{
dialogDimName.lookupButton(2);
}
}
public void postRun()
{
//super();
}
////
[DataContractAttribute,
SysOperationContractProcessingAttribute(classstr(GOD_ServiceTaxPayUIBuilder))]
class GOD_ServiceTaxPayContract_New
{
DimensionValue vertical;
yearBase fromYear;
}
[DataMemberAttribute("year"),
SysOperationLabelAttribute(literalStr("@IMT197")),
SysOperationHelpTextAttribute(literalStr("@SYS107162")),
SysOperationDisplayOrderAttribute('2')]
public YearBase parmFromYear(YearBase _fromYear = fromYear)
{
fromYear = _fromYear;
return fromYear;
}
[DataMemberAttribute("DimensionValue"),
SysOperationLabelAttribute(literalStr("@SYS62571")),
SysOperationHelpTextAttribute(literalStr("@SYS62571")),
SysOperationDisplayOrderAttribute('1')]
public DimensionValue parmVertical(DimensionValue _vertical = vertical)
{
vertical = _vertical;
return vertical;
}
//
//////////////////////////////////////////////////////////
[ SRSReportParameterAttribute(classstr(GOD_ServiceTaxPayContract))]
public class GOD_ServiceTaxPayDP extends SRSReportDataProviderBase//SrsReportDataProviderPreProcess//
{
#define.ServiceTax("Serv. Tax")
#define.VAT("VAT")
#GOD_DefaultDimension
GOD_ServiceTaxPayTmp god_ServiceTaxTmp,god_ServiceTaxTmpCust;
CustInvoiceJour custInvoiceJour;
TaxTrans_IN taxTrans;
MonthsOfYear MonthsOfYear;
TransDate fromDate,toDate,curDate;
Amount preClosingBal;
DimensionValue vertical;
GeneralJournalAccountEntry generalJournalAccountEntry;
YearBase fromYear;
}
private Amount getAdditionsAmt(TransDate _transdate)
{
TransDate fromd,tod;
TaxTrans_IN taxTransInOpening;
;
fromd = mkDate(1,mthOfYr(_transdate),year(_transdate));
tod = nextMth(fromd);
select sum(TaxAmount) from taxTransInOpening
where taxTransInOpening.Source == TaxModuleType::Purch ||
taxTransInOpening.Source == TaxModuleType::Voucher &&
taxTransInOpening.TransDate >= fromd &&
taxTransInOpening.TransDate <= tod;
return taxTransInOpening.TaxAmount;
}
public boolean getDimensionCombinationValues(GeneralJournalAccountEntry gjAccEntry)
{
DimensionAttributeValueCombination dimAttrValueComb;
DimensionStorage dimensionStorage;
DimensionStorageSegment segment;
int segmentCount, segmentIndex;
int hierarchyCount, hierarchyIndex;
str segmentName;
SysDim segmentValue;
;
dimAttrValueComb = DimensionAttributeValueCombination::find(gjAccEntry.LedgerDimension);
dimensionStorage = DimensionStorage::findById(gjAccEntry.LedgerDimension);
if (dimensionStorage == null)
{
throw error("@SYS83964");
}
hierarchyCount = dimensionStorage.hierarchyCount();
for(hierarchyIndex = 1; hierarchyIndex <= hierarchyCount; hierarchyIndex++)
{
segmentCount = dimensionStorage.segmentCountForHierarchy(hierarchyIndex);
for (segmentIndex = 1; segmentIndex <= segmentCount; segmentIndex++)
{
segment = dimensionStorage.getSegmentForHierarchy(hierarchyIndex, segmentIndex);
if (segment.parmDimensionAttributeValueId() != 0)
{
segmentName = DimensionAttribute::find(DimensionAttributeValue::find(segment.parmDimensionAttributeValueId()).DimensionAttribute).Name;
segmentValue = segment.parmDisplayValue();
if(segmentName == #Vertical && segmentValue == vertical)
{
return true;
}
else
{
return false;
}
}
}
}
return false;
}
private int getMonthNum(MonthsOfYear _month)
{
switch(_month)
{
case MonthsOfYear::April :
return 1;
case MonthsOfYear::May :
return 2;
case MonthsOfYear::June :
return 3;
case MonthsOfYear::July :
return 4;
case MonthsOfYear::August :
return 5;
case MonthsOfYear::September :
return 6;
case MonthsOfYear::October :
return 7;
case MonthsOfYear::November :
return 8;
case MonthsOfYear::December :
return 9;
case MonthsOfYear::January :
return 10;
case MonthsOfYear::February :
return 11;
case MonthsOfYear::March :
return 12;
}
return 0;
}
private Amount getOpeningBalance(TransDate _asOnDate)
{
TaxTrans_IN taxTransInOpening;
GeneralJournalAccountEntry generalJournalAccEntry;
GeneralJournalEntry generalJournalEntry;
MainAccount mainAccnt;
Amount openingBal;
while select TaxAmount from taxTransInOpening
where taxTransInOpening.TransDate < _asOnDate
join SubledgerVoucher, RecId from generalJournalEntry
where generalJournalEntry.SubledgerVoucher == taxTransInOpening.Voucher
join MainAccount, PostingType from generalJournalAccEntry
where generalJournalAccEntry.GeneralJournalEntry == generalJournalEntry.RecId &&
generalJournalAccEntry.PostingType == LedgerPostingType::ServiceTax_IN
join MainAccountId from mainAccnt
where mainAccnt.RecId == generalJournalAccEntry.MainAccount &&
mainAccnt.MainAccountId == "2001314"
{
if(this.getDimensionCombinationValues(generalJournalAccEntry))
{
openingBal += taxTransInOpening.TaxAmount;
}
}
return openingBal;
}
[SRSReportDataSetAttribute(tablestr(GOD_ServiceTaxPayTmp))]
public GOD_ServiceTaxPayTmp getServiceTaxPayTmpDetails()
{
select god_ServiceTaxTmp;
return god_ServiceTaxTmp;
}
public void insertFromCustTrans()
{
TransDate currentDate;
CustTrans custTrans;
DimensionAttributeValueSetItem dimensionAttributeValueSetItem;
DimensionAttributeValue dimensionAttributeValue;
DimensionAttribute dimensionAttribute;
TransDate fd,td;
while select forUpdate god_ServiceTaxTmpCust
{
if(god_ServiceTaxTmpCust.MonthNumber != 1)
{
god_ServiceTaxTmpCust.OpeningBal = preClosingBal;
}
if(god_ServiceTaxTmpCust.MonthNumber <= 9)
{
fd = mkDate(1,god_ServiceTaxTmpCust.MonthNumber + 3,fromYear);
}
else
{
fd = mkDate(1,god_ServiceTaxTmpCust.MonthNumber - 9,fromYear + 1);
}
td = endmth(fd);
select sum(SourceBaseAmountCur) from taxTrans
where taxTrans.Source == TaxModuleType::FreeTxtInvoice &&
taxTrans.TransDate >= fd &&
taxTrans.TransDate <= td
join custTrans
where taxTrans.Voucher == custTrans.Voucher
join dimensionAttributeValueSetItem
where dimensionAttributeValueSetItem.DimensionAttributeValueSet == custTrans.DefaultDimension &&
dimensionAttributeValueSetItem.DisplayValue == vertical
join dimensionAttributeValue
where dimensionAttributeValue.RecId == dimensionAttributeValueSetItem.DimensionAttributeValue
join dimensionAttribute
where dimensionAttribute.RecId == dimensionAttributeValue.DimensionAttribute &&
dimensionAttribute.Name == #Vertical;
god_ServiceTaxTmpCust.TaxableAdvance = abs(taxTrans.SourceBaseAmountCur);
select sum(SourceBaseAmountCur) from taxTrans
where taxTrans.Source == TaxModuleType::Voucher &&
taxTrans.TransDate >= fd &&
taxTrans.TransDate <= td
join custTrans
where taxTrans.Voucher == custTrans.Voucher
join dimensionAttributeValueSetItem
where dimensionAttributeValueSetItem.DimensionAttributeValueSet == custTrans.DefaultDimension &&
dimensionAttributeValueSetItem.DisplayValue == vertical
join dimensionAttributeValue
where dimensionAttributeValue.RecId == dimensionAttributeValueSetItem.DimensionAttributeValue
join dimensionAttribute
where dimensionAttribute.RecId == dimensionAttributeValue.DimensionAttribute &&
dimensionAttribute.Name == #Vertical;
god_ServiceTaxTmpCust.TaxableIncome = abs(taxTrans.SourceBaseAmountCur);
select sum(TaxAmount) from taxTrans
where taxTrans.TaxPeriod == #VAT &&
taxTrans.TransDate >= fd &&
taxTrans.TransDate <= td
join custTrans
where taxTrans.Voucher == custTrans.Voucher
join dimensionAttributeValueSetItem
where dimensionAttributeValueSetItem.DimensionAttributeValueSet == custTrans.DefaultDimension &&
dimensionAttributeValueSetItem.DisplayValue == vertical
join dimensionAttributeValue
where dimensionAttributeValue.RecId == dimensionAttributeValueSetItem.DimensionAttributeValue
join dimensionAttribute
where dimensionAttribute.RecId == dimensionAttributeValue.DimensionAttribute &&
dimensionAttribute.Name == #Vertical;
god_ServiceTaxTmpCust.VAT = abs(taxTrans.TaxAmount);
select sum(TaxAmount) from taxTrans
where taxTrans.TaxPeriod == #ServiceTax &&
taxTrans.TransDate >= fd &&
taxTrans.TransDate <= td
join DefaultDimension, Voucher from custTrans
where taxTrans.Voucher == custTrans.Voucher
join DimensionAttributeValue, DisplayValue from dimensionAttributeValueSetItem
where dimensionAttributeValueSetItem.DimensionAttributeValueSet == custTrans.DefaultDimension &&
dimensionAttributeValueSetItem.DisplayValue == vertical
join DimensionAttribute from dimensionAttributeValue
where dimensionAttributeValue.RecId == dimensionAttributeValueSetItem.DimensionAttributeValue
join Name from dimensionAttribute
where dimensionAttribute.RecId == dimensionAttributeValue.DimensionAttribute &&
dimensionAttribute.Name == #Vertical;
god_ServiceTaxTmpCust.ServiceTax = abs(taxTrans.TaxAmount);
god_ServiceTaxTmpCust.Total = god_ServiceTaxTmpCust.VAT + god_ServiceTaxTmpCust.ServiceTax;
this.insertFromVendTrans(fd,td);
if(god_ServiceTaxTmpCust.Total > (god_ServiceTaxTmpCust.Additions + god_ServiceTaxTmpCust.OpeningBal))
{
god_ServiceTaxTmpCust.Utilisations = god_ServiceTaxTmpCust.Additions + god_ServiceTaxTmpCust.OpeningBal;
god_ServiceTaxTmpCust.ClosingBalance = 0;
}
else
{
god_ServiceTaxTmpCust.Utilisations = god_ServiceTaxTmpCust.Total;
god_ServiceTaxTmpCust.ClosingBalance = god_ServiceTaxTmpCust.Utilisations - (god_ServiceTaxTmpCust.Additions + god_ServiceTaxTmpCust.OpeningBal);
}
preClosingBal = god_ServiceTaxTmpCust.ClosingBalance;
currentDate = nextMth(fd);
if(god_ServiceTaxTmpCust.MonthNumber == 12)
{
god_ServiceTaxTmpCust.DueDate = mkDate(31,mthOfYr(fd),year(fd));
}
else
{
god_ServiceTaxTmpCust.DueDate = mkDate(5,mthOfYr(currentDate),year(currentDate));
}
god_ServiceTaxTmpCust.update();
}
}
public void insertFromVendTrans(FromDate _fd, ToDate _td)
{
VendTrans vendTrans;
DimensionAttributeValueSetItem dimensionAttributeValueSetItem;
DimensionAttributeValue dimensionAttributeValue;
DimensionAttribute dimensionAttribute;
select sum(TaxAmount) from taxTrans
where taxTrans.TaxPeriod == #ServiceTax &&
taxTrans.TransDate >= _fd &&
taxTrans.TransDate <= _td
join DefaultDimension, Voucher from vendTrans
where taxTrans.Voucher == vendTrans.Voucher
join DimensionAttributeValue, DisplayValue from dimensionAttributeValueSetItem
where dimensionAttributeValueSetItem.DimensionAttributeValueSet == vendTrans.DefaultDimension &&
dimensionAttributeValueSetItem.DisplayValue == vertical
join DimensionAttribute from dimensionAttributeValue
where dimensionAttributeValue.RecId == dimensionAttributeValueSetItem.DimensionAttributeValue
join Name from dimensionAttribute
where dimensionAttribute.RecId == dimensionAttributeValue.DimensionAttribute &&
dimensionAttribute.Name == #Vertical;
god_ServiceTaxTmpCust.Additions = taxTrans.TaxAmount;
}
[SysEntryPointAttribute(false)]
public void processReport()
{
#define.VERTICALS("VERTICALS")
GOD_ServiceTaxPayContract dataContract;
int flag = 0;
TransDate fd;
delete_from god_ServiceTaxTmp;
dataContract = this.parmDataContract() as GOD_ServiceTaxPayContract;
vertical = dataContract.parmVertical();
fromYear = dataContract.parmFromYear();
fromDate = mkDate(1,4,fromYear);
fd = fromDate;
toDate = mkDate(31,3,fromYear+1);
ttsBegin;
while(fd < toDate)
{
god_ServiceTaxTmp.clear();
god_ServiceTaxTmp.month = str2enum(MonthsOfYear,mthName(mthOfYr(fd)));
god_ServiceTaxTmp.MonthNumber = this.getMonthNum(god_ServiceTaxTmp.month);
god_ServiceTaxTmp.FromDate = fromDate;
god_ServiceTaxTmp.ToDate = toDate;
if(god_ServiceTaxTmp.MonthNumber == 1)
{
god_ServiceTaxTmp.OpeningBal = this.getOpeningBalance(fromDate);
}
else
{
god_ServiceTaxTmp.OpeningBal = 0;
}
god_ServiceTaxTmp.insert();
fd = nextMth(fd);
}
this.insertFromCustTrans();
ttsCommit;
}
private void updateClosingBalance()
{
GOD_ServiceTaxPayTmp god_ServiceTaxPayTmpUp;
while select god_ServiceTaxPayTmpUp
{
god_ServiceTaxPayTmpUp.selectForUpdate(true);
ttsBegin;
god_ServiceTaxPayTmpUp.Total = god_ServiceTaxPayTmpUp.VAT + god_ServiceTaxPayTmpUp.ServiceTax;
if((god_ServiceTaxPayTmpUp.Additions + god_ServiceTaxPayTmpUp.OpeningBal) < god_ServiceTaxPayTmpUp.Total)
{
god_ServiceTaxPayTmpUp.OpeningBal = preClosingBal;
god_ServiceTaxPayTmpUp.Utilisations = god_ServiceTaxPayTmpUp.Additions + god_ServiceTaxPayTmpUp.OpeningBal;
god_ServiceTaxPayTmpUp.NetServiceTax = god_ServiceTaxPayTmpUp.Total -(god_ServiceTaxPayTmpUp.OpeningBal + god_ServiceTaxPayTmpUp.Additions);
god_ServiceTaxPayTmpUp.ClosingBalance = 0;
}
else
{
god_ServiceTaxPayTmpUp.OpeningBal = preClosingBal;
god_ServiceTaxPayTmpUp.Utilisations = god_ServiceTaxPayTmpUp.Total;
god_ServiceTaxPayTmpUp.NetServiceTax = 0;
god_ServiceTaxPayTmpUp.ClosingBalance = (god_ServiceTaxPayTmpUp.Additions + god_ServiceTaxPayTmpUp.OpeningBal) - god_ServiceTaxPayTmpUp.Total;
}
preClosingBal = god_ServiceTaxPayTmpUp.ClosingBalance;
if((god_ServiceTaxPayTmpUp.DateOfPaym - god_ServiceTaxPayTmpUp.DueDate) > 0)
{
god_ServiceTaxPayTmpUp.Delay = god_ServiceTaxPayTmpUp.DateOfPaym - god_ServiceTaxPayTmpUp.DueDate;
}
else
{
god_ServiceTaxPayTmpUp.Delay = 0;
}
god_ServiceTaxPayTmpUp.update();
ttsCommit;
}
}
private void updateServiceTaxPayTmp(GOD_ServiceTaxPayTmp _god_ServiceTaxTmp)
{
if(_god_ServiceTaxTmp)
{
_god_ServiceTaxTmp.selectForUpdate(true);
ttsBegin;
if(taxTrans.Source == TaxModuleType::FreeTxtInvoice)
{
god_ServiceTaxTmp.TaxableIncome += abs(taxTrans.SourceBaseAmountCur);
}
if(taxTrans.Source == TaxModuleType::Voucher)
{
god_ServiceTaxTmp.TaxableAdvance += abs(taxTrans.SourceBaseAmountCur);
}
if(taxTrans.TaxPeriod == #ServiceTax)
{
_god_ServiceTaxTmp.ServiceTax += abs(taxTrans.TaxAmount);
}
if(taxTrans.TaxPeriod == #VAT)
{
_god_ServiceTaxTmp.VAT += abs(taxTrans.TaxAmount);
}
_god_ServiceTaxTmp.update();
ttsCommit;
}
}
//////////////
class GOD_ServiceTaxPayUIBuilder extends SrsReportDataContractUIBuilder
{
DialogField dialogvertical,dialogyear;
boolean enable;
GOD_ServiceTaxPayContract contract;
}
public void build()
{
contract = this.dataContractObject();
dialogvertical = this.addDialogField(methodStr(GOD_ServiceTaxPayContract, parmVertical),contract);
dialogyear = this.addDialogField(methodStr(GOD_ServiceTaxPayContract, parmFromYear),contract);
dialogvertical.value("");
}
public void getFromDialog()
{
contract = this.dataContractObject();
super();
}
public void postBuild()
{
super();
dialogvertical = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_ServiceTaxPayContract, parmVertical));
dialogyear = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(GOD_ServiceTaxPayContract, parmFromYear));
dialogvertical.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(GOD_ServiceTaxPayUIBuilder,verticalLookup), this);
}
private void verticalLookup(FormStringControl verticalLookup)
{
#define.DimensionName("VERTICALS")
Query query;
QueryBuildDataSource qbds,qbds1;
SysTableLookup sysTableLookup;
DimensionAttribute dimAttr;
;
dimAttr = DimensionAttribute::findByName(#DimensionName);
sysTableLookup = SysTableLookup::newParameters(tablenum(DimensionFinancialTag),verticalLookup);
sysTableLookup.addLookupfield(fieldnum(DimensionFinancialTag, Value));
sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag,Description));
query = new Query();
qbds = query.addDataSource(tableNum(DimensionFinancialTag));
qbds1 = qbds.addDataSource(tableNum(DimensionAttributeDirCategory));
qbds1.addLink(fieldNum(DimensionFinancialTag,FinancialTagCategory),fieldnum(DimensionAttributeDirCategory,RecId));
qbds1.addRange(fieldNum(DimensionAttributeDirCategory, DimensionAttribute)).value(queryvalue(dimAttr.recid));
sysTableLookup.parmQuery(query);
sysTableLookup.parmUseLookupValue(False);
sysTableLookup.performFormLookup();
}
No comments:
Post a Comment