Notifications
Announcements
No record found.
[ 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; 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) { qbdsVendPackingSlipJour = q.addDataSource(tableNum(VendPackingSlipJour)); qbdsVendPackingSlipJour.relations(false); qbdsVendPackingSlipJour.addLink(fieldNum(PurchLine, PurchId),fieldNum(VendPackingSlipJour, PurchId)); q.dataSourceName(tableStr(VendPackingSlipJour)).addRange(fieldNum(VendPackingSlipJour, DeliveryDate)).value(queryRange(fromDate, toDate)); } 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.insert(); } } }
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(); } } }
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);
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
As AI tools become more common, we’re introducing a Responsible AI Use…
We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…
These are the community rock stars!
Stay up to date on forum activity by subscribing.
André Arnaud de Cal... 449 Super User 2025 Season 2
Martin Dráb 422 Most Valuable Professional
BillurSamdancioglu 239 Most Valuable Professional