SELECT VENDPACKINGSLIPTRANS.DeliveryDate,PurchLine.PURCHID,PurchLine.ITEMID,PurchLine.INVENTTRANSID,
VENDPACKINGSLIPTRANS.INVENTTRANSID, VENDPACKINGSLIPTRANS.INVENTREFTRANSID,* FROM PurchLine
JOIN PurchTable
ON PurchLine.PurchId = PurchTable.PurchId
JOIN VENDPACKINGSLIPTRANS
ON PurchLine.INVENTTRANSID = VENDPACKINGSLIPTRANS.INVENTTRANSID
WHERE ((IsDeleted = 0))
AND (( VENDPACKINGSLIPTRANS.DeliveryDate>={ts '2024-01-01 00:00:00.000'}
AND VENDPACKINGSLIPTRANS.DeliveryDate<={ts '2024-02-28 00:00:00.000'}))
qnew = q;
qbdsVendPackingSlipJour = qnew.dataSourceTable(tablenum(PurchTable)).addDataSource(tablenum(VendPackingSlipJour));
qbdsVendPackingSlipJour.relations(false);
qbdsVendPackingSlipJour.joinMode(JoinMode::InnerJoin);
qbdsVendPackingSlipJour.addLink(fieldNum(VendPackingSlipJour, PurchId),fieldNum(PurchTable, PurchId));
qbdsVendPackingSlipJour.orderMode(OrderMode::GroupBy);
qbdsVendPackingSlipJour.addGroupByField(fieldNum(PurchLine, ItemId));
qbdsVendPackingSlipJour.addRange(fieldNum(VendPackingSlipJour, DeliveryDate)).value(queryRange(fromDate, toDate));
qr = new QueryRun(qnew);
SELECT * FROM PurchLine(PurchLine) WHERE ((IsDeleted = 0))
JOIN * FROM PurchTable(PurchTable)
ON PurchLine.PurchId = PurchTable.PurchId
JOIN * FROM VendPackingSlipJour(VendPackingSlipJour_1)
ON PurchTable.PurchId = VendPackingSlipJour.PurchId
AND ((DeliveryDate>={ts '2024-01-01 00:00:00.000'} AND DeliveryDate<={ts '2024-02-29 00:00:00.000'}))}
[
SRSReportQueryAttribute(queryStr(DTRecivedNotInvoicedQue)),
SRSReportParameterAttribute(classstr(DTRecievedButNotInvoicedContract))
]
class DTRecivedButNotInvoicedDp extends SRSReportDataProviderBase
{
DTRcvdNotInvoicedTmp DTRcvdNotInvoicedTmp;
Purchline purchline,purchlineLoc;
LedgerJournalTrans ledgerJournalTrans;
VendPackingSlipTrans vendPackingSlipTrans;
VendInvoiceJour vendInvoiceJour;
VendInvoiceTrans vendInvoiceTrans;
PurchTable purchTable;
VendAccount vendAccount;
str name;
ExchRate rate;
AmountCur invamt,notinvamt;
PurchQty qty,notinvqty,cancelqty,lineQty;
[SrsReportDataSetAttribute(tableStr('DTRcvdNotInvoicedTmp'))]
public DTRcvdNotInvoicedTmp GetDTRcvdNotInvoicedTmp()
{
select * from DTRcvdNotInvoicedTmp;
return DTRcvdNotInvoicedTmp;
}
Public void processReport()
{
Query q;
Query qnew = new Query();
QueryRun qr;
QueryBuildDataSource qbdsVendPackingSlipJour;
QueryBuildDataSource qbdsobjDirPartyTable;
QueryBuildDataSource qbdsobjLogisticsPostalAddress;
QueryBuildRange qbr;
TransDate fromDate;
TransDate toDate;
DTRecievedButNotInvoicedContract contract =
this.parmDataContract() as DTRecievedButNotInvoicedContract;
fromDate = contract.parmFromDate();
toDate = contract.parmToDate();
DTRcvdNotInvoicedTmp.clear();
q = this.parmQuery();
q.dataSourceName(tableStr(PurchLine)).addRange(fieldNum(PurchLine,IsDeleted)).value(queryValue(0));
if(fromDate && toDate)
{
qnew = q;
qbdsVendPackingSlipJour = qnew.dataSourceTable(tablenum(PurchTable)).addDataSource(tablenum(VendPackingSlipJour));
qbdsVendPackingSlipJour.relations(false);
qbdsVendPackingSlipJour.joinMode(JoinMode::InnerJoin);
qbdsVendPackingSlipJour.addLink(fieldNum(VendPackingSlipJour, PurchId),fieldNum(PurchTable, PurchId));
qbdsVendPackingSlipJour.orderMode(OrderMode::GroupBy);
qbdsVendPackingSlipJour.addGroupByField(fieldNum(PurchLine, ItemId));
qbdsVendPackingSlipJour.addRange(fieldNum(VendPackingSlipJour, DeliveryDate)).value(queryRange(fromDate, toDate));
qr = new QueryRun(qnew);
}
else
{
qr = new QueryRun(q);
}
while(qr.next())
{
purchTable = qr.get(tableNum(PurchTable));
purchline = qr.get(tableNum(Purchline));
DTRcvdNotInvoicedTmp.clear();
DTRcvdNotInvoicedTmp.PurchId = purchTable.PurchId;
DTRcvdNotInvoicedTmp.PurchName = purchTable.PurchName;
DTRcvdNotInvoicedTmp.LineNumber = purchline.LineNumber;
DTRcvdNotInvoicedTmp.ItemId = purchline.ItemId;
DTRcvdNotInvoicedTmp.ItemName = purchline.itemName();
DTRcvdNotInvoicedTmp.PurchQty = purchline.PurchQty;
select sum(LineAmount)from purchlineLoc
where purchlineLoc.PurchId == purchTable.PurchId;
DTRcvdNotInvoicedTmp.POTotalAmount = purchlineLoc.LineAmount;
select sum(Qty),sum(ValueMST) from vendPackingSlipTrans
where vendPackingSlipTrans.ItemId == purchline.ItemId
&& vendPackingSlipTrans.InventTransId == purchline.InventTransId;
rate = ExchangeRateHelper::getExchangeRate1_Static(Ledger::current(),purchTable.CurrencyCode,today())/100;
DTRcvdNotInvoicedTmp.RecivedQty = vendPackingSlipTrans.Qty;
DTRcvdNotInvoicedTmp.RecivedAmount = vendPackingSlipTrans.ValueMST/rate;
qty = 0;
invamt = 0;
while select * from vendInvoiceTrans
join vendInvoiceJour
where vendInvoiceTrans.InvoiceId == vendInvoiceJour.InvoiceId
&& vendInvoiceTrans.InvoiceDate == vendInvoiceJour.InvoiceDate
&& vendInvoiceTrans.numberSequenceGroup == vendInvoiceJour.numberSequenceGroup
&& vendInvoiceTrans.InternalInvoiceId == vendInvoiceJour.InternalInvoiceId
&& vendInvoiceTrans.OrigPurchId == purchTable.PurchId
&& vendInvoiceTrans.PurchaseLineLineNumber == purchline.LineNumber
&& vendInvoiceTrans.ItemId == purchline.ItemId
{
qty += vendInvoiceTrans.Qty;
invamt += vendInvoiceTrans.lineAmountInclTax();
}
DTRcvdNotInvoicedTmp.InvoicedQty = qty;
DTRcvdNotInvoicedTmp.InvoiceAmount = invamt;
notinvqty = 0;
notinvamt = 0;
cancelqty = 0;
lineQty = 0;
lineQty = purchline.PurchQty;
if(qty <= lineQty)
{
cancelqty = purchline.PurchQty - vendPackingSlipTrans.Qty;
}
else
{
cancelqty = 0;
}
if(cancelqty != 0
&& purchline.RemainPurchPhysical == 0 )
{
DTRcvdNotInvoicedTmp.CancelQty = cancelqty;
}
notinvqty = purchline.RemainPurchFinancial + purchline.RemainPurchPhysical;
notinvamt = notinvqty * purchline.PurchPrice;
DTRcvdNotInvoicedTmp.NotInvoicedQty = notinvqty ;
DTRcvdNotInvoicedTmp.NotInvoiceAmount = notinvamt;
DTRcvdNotInvoicedTmp.NotInvoiceAmountSupplier = vendPackingSlipTrans.ValueMST/rate -invamt ;
DTRcvdNotInvoicedTmp.insert();
}
}
}
Martin Dráb
456
Most Valuable Professional
Abhilash Warrier
310
Saalim Ansari
261