⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 views.sql

📁 Java写的ERP系统
💻 SQL
📖 第 1 页 / 共 2 页
字号:
--	Product Transactions Detail

CREATE OR REPLACE VIEW RV_M_Transaction AS
SELECT t.AD_Client_ID,t.AD_Org_ID, t.MovementDate, t.MovementQty, 
	t.M_Product_ID, t.M_Locator_ID,
	p.M_Product_Category_ID, p.Value, 
	po.C_BPartner_ID, po.PricePO, po.PriceLastPO, po.PriceList
FROM M_Transaction t, M_Product p, M_Product_PO po
WHERE t.M_Product_ID=p.M_Product_ID
AND t.M_Product_ID=po.M_Product_ID AND po.IsCurrentVendor='Y'
/

--	Business Partners

CREATE OR REPLACE VIEW RV_BPartner 
AS
SELECT p.AD_Client_ID, p.AD_Org_ID,
	p.C_BPartner_ID, p.Value, p.Name, p.ReferenceNo,
	p.SO_CreditLimit - p.SO_CreditUsed AS SO_CreditAvailable, 
	p.SO_CreditLimit, p.SO_CreditUsed, p.IsCustomer, p.IsVendor,
	p.ActualLifetimeValue AS Revenue,
	c.Name AS Contact, c.Phone,
	a.Postal, a.City, c.EMail
FROM C_BPartner p, C_BPartner_Contact c, C_BPartner_Location l, C_Location a
WHERE p.C_BPartner_ID=c.C_BPartner_ID (+) 
 AND p.C_BPartner_ID=l.C_BPartner_ID (+) 
 AND l.C_Location_ID=a.C_Location_ID (+)
/

--	Open Items

CREATE OR REPLACE VIEW RV_OpenItem 
AS
SELECT i.AD_Org_ID, i.AD_Client_ID, 
	i.DocumentNo, i.C_Invoice_ID, i.C_Order_ID, i.C_BPartner_ID, i.IsSOTrx,
	i.DateInvoiced, p.NetDays, 
	i.DateInvoiced+p.NetDays AS DateDue,
	C_PaymentTerm_DueDays(i.C_PaymentTerm_ID, i.DateInvoiced, SysDate) AS DaysDue,
	i.GrandTotal, 
	C_Invoice_Paid(i.C_Invoice_ID, i.C_Currency_ID, 1) AS PaidAmt,
	C_Invoice_Open(i.C_Invoice_ID) AS OpenAmt
FROM RV_C_Invoice i, C_PaymentTerm p
WHERE i.IsPaid='N' -- AND C_Invoice_Open(i.C_Invoice_ID) <> 0
  AND i.C_PaymentTerm_ID=p.C_PaymentTerm_ID
/

--	Open Orders

CREATE OR REPLACE VIEW RV_Order_Open
AS
SELECT l.AD_Client_ID, l.AD_Org_ID, 
	l.IsActive, l.Created, l.CreatedBy, l.Updated, l.UpdatedBy,
	o.C_Order_ID, o.DocStatus, o.DocAction, o.C_DocType_ID, o.IsApproved, o.IsCreditApproved,
	o.SalesRep_ID, o.C_BPartner_ID, o.C_BPartner_Location_ID, o.C_BPartner_Contact_ID,
	o.POReference, o.C_Currency_ID, o.IsSOTrx,
	l.C_OrderLine_ID, l.DateOrdered, l.DatePromised, l.M_Product_ID, l.M_WareHouse_ID, l.DirectShip,
	l.C_UOM_ID, l.QtyOrdered, l.QtyReserved, l.QtyDelivered, l.QtyInvoiced, l.PriceActual,
	l.QtyOrdered-l.QtyDelivered AS QtyToDeliver,
	l.QtyOrdered-l.QtyInvoiced AS QtyToInvoice,
	(l.QtyOrdered-l.QtyInvoiced)*l.PriceActual AS NetAmtToInvoice
FROM C_Order o, C_OrderLine l
WHERE o.C_Order_ID=l.C_Order_ID
  AND (l.QtyOrdered<>l.QtyDelivered OR l.QtyOrdered<>l.QtyInvoiced)
/

--	Cash Journal Detail

CREATE OR REPLACE VIEW RV_Cash_Detail
AS
SELECT cl.C_Cash_ID, cl.C_CashLine_ID,
	c.AD_Client_ID, c.AD_Org_ID, cl.IsActive, cl.Created, cl.CreatedBy, cl.Updated, cl.UpdatedBy,
	c.C_CashBook_ID, c.Name, c.StatementDate, c.DateAcct, c.Processed, c.Posted,
	cl.Line, cl.Description, cl.CashType, cl.C_Currency_ID, cl.Amount, 
	C_Currency_Convert(cl.Amount,cl.C_Currency_ID,cb.C_Currency_ID,c.StatementDate,null, c.AD_Client_ID, c.AD_Org_ID) AS ConvertedAmt,
	cl.C_BankAccount_ID, cl.C_Invoice_ID, cl.C_Charge_ID
FROM C_Cash c, C_CashLine cl, C_CashBook cb
WHERE c.C_Cash_ID=cl.C_Cash_ID
  AND c.C_CashBook_ID=cb.C_CashBook_ID
/

CREATE OR REPLACE VIEW RV_Product_Costing
AS
SELECT	pc.M_Product_ID, pc.C_AcctSchema_ID, p.Value, p.Name, p.M_Product_Category_ID,
	pc.AD_Client_ID, pc.AD_Org_ID, pc.IsActive, pc.Created,pc.CreatedBy,pc.Updated,pc.UpdatedBy,
	pc.CurrentCostPrice,
	--	Standard Costing
	pc.FutureCostPrice, pc.CostStandard, 
	pc.CostStandardPOQty, pc.CostStandardPOAmt, 
	DECODE (pc.CostStandardPOQty,0,0, pc.CostStandardPOAmt/pc.CostStandardPOQty) AS CostStandardPODiff,
	pc.CostStandardCumQty, pc.CostStandardCumAmt,
	DECODE (pc.CostStandardCumQty,0,0, pc.CostStandardCumAmt/pc.CostStandardCumQty) AS CostStandardInvDiff,
	--	Average Costing
	pc.CostAverage,
	pc.CostAverageCumQty, pc.CostAverageCumAmt,
	pc.TotalInvQty, pc.TotalInvAmt,
	DECODE (pc.TotalInvQty,0,0, pc.TotalInvAmt/pc.TotalInvQty) AS TotalInvCost,
	--	LastPrice
	pc.PriceLastPO, pc.PriceLastInv
FROM	M_Product_Costing pc, M_Product p
WHERE	pc.M_Product_ID=p.M_Product_ID
/

-------------------------------------------------------------------------------

CREATE OR REPLACE VIEW R_Request_v 
AS
SELECT	*
FROM	R_Request
WHERE	IsActive='Y' AND Processed='N' 
  AND	SysDate > DateNextAction
/

-------------------------------------------------------------------------------
--	Corrected for Credit Memo (See RV_C_Invoice)

CREATE OR REPLACE VIEW C_Invoice_v 
AS
SELECT i.C_Invoice_ID, i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created, i.CreatedBy, i.Updated, i.UpdatedBy, 
i.IsSOTrx, i.DocumentNo, i.DocStatus, i.DocAction, i.Processing, i.Processed, i.C_DocType_ID, 
i.C_DocTypeTarget_ID, i.C_Order_ID, i.Description, i.IsApproved, i.IsTransferred, 
i.SalesRep_ID, i.DateInvoiced, i.DatePrinted, i.DateAcct, i.C_BPartner_ID, i.C_BPartner_Location_ID, 
i.C_BPartner_Contact_ID, i.POReference, i.DateOrdered, i.C_Currency_ID, i.PaymentRule, 
i.C_PaymentTerm_ID, i.C_Charge_ID, i.M_PriceList_ID, i.C_Campaign_ID, i.C_Project_ID, 
i.C_Activity_ID, i.IsPrinted, i.IsDiscountPrinted, i.IsPaid,
CASE WHEN SUBSTR(d.DocBaseType,3)='C' THEN i.ChargeAmt*-1 ELSE i.ChargeAmt END AS ChargeAmt, 
CASE WHEN SUBSTR(d.DocBaseType,3)='C' THEN i.TotalLines*-1 ELSE i.TotalLines END AS TotalLines, 
CASE WHEN SUBSTR(d.DocBaseType,3)='C' THEN i.GrandTotal*-1 ELSE i.GrandTotal END AS GrandTotal, 
CASE WHEN SUBSTR(d.DocBaseType,3)='C' THEN -1 ELSE 1 END AS Multiplier,
CASE WHEN SUBSTR(d.DocBaseType,2,1)='P' THEN -1 ELSE 1 END AS MultiplierAP,
d.DocBaseType
FROM C_Invoice i
 INNER JOIN C_DocType d ON (i.C_DocType_ID=d.C_DocType_ID)
/
COMMENT ON TABLE C_Invoice_v IS 'Invoice Information corrected for Credit Memos'
/
CREATE OR REPLACE VIEW C_InvoiceLine_v 
AS
SELECT il.AD_Client_ID, il.AD_Org_ID, 
	il.C_InvoiceLine_ID, i.C_Invoice_ID, i.SalesRep_ID, 
	i.C_BPartner_ID, il.M_Product_ID,  
	i.DocumentNo, i.DateInvoiced, i.DateAcct,
	i.IsSOTrx, i.DocStatus,
	ROUND(i.Multiplier*LineNetAmt, 2) AS LineNetAmt,
	ROUND(i.Multiplier*PriceList*QtyInvoiced, 2) AS LineListAmt,
	DECODE(NVL(il.PriceLimit, 0), 0, ROUND(i.Multiplier*LineNetAmt,2), ROUND(i.Multiplier*PriceLimit*QtyInvoiced,2)) AS LineLimitAmt,
	ROUND(i.Multiplier*PriceList*QtyInvoiced-LineNetAmt,2) AS LineDiscountAmt,
	DECODE(NVL(il.PriceLimit,0), 0, 0, ROUND(i.Multiplier*LineNetAmt-PriceLimit*QtyInvoiced,2)) AS LineOverLimitAmt,
	il.QtyInvoiced AS QtyInvoiced,
	il.Line, il.C_OrderLine_ID, il.C_UOM_ID
FROM C_Invoice_v i, C_InvoiceLine il
WHERE i.C_Invoice_ID=il.C_Invoice_ID
/
COMMENT ON TABLE C_InvoiceLine_v IS 'Invoice Line Summary for Reporting Views - Corrected for Credit Memos'
/

-------------------------------------------------------------------------------

CREATE OR REPLACE VIEW C_Invoice_Candidate_v 
AS
SELECT	
	o.AD_Client_ID, o.AD_Org_ID, o.C_BPartner_ID, o.C_Order_ID,
	o.DocumentNo, o.DateOrdered, o.C_DocType_ID,
	SUM((l.QtyOrdered-l.QtyInvoiced)*l.PriceActual) AS TotalLines
FROM	C_Order o
  INNER JOIN C_OrderLine l ON (o.C_Order_ID=l.C_Order_ID)
  INNER JOIN C_BPartner bp ON (o.C_BPartner_ID=bp.C_BPartner_ID)
  LEFT OUTER JOIN C_InvoiceSchedule si ON (bp.C_InvoiceSchedule_ID=si.C_InvoiceSchedule_ID)
WHERE	o.DocStatus IN ('CO','CL','IP')	-- Standard Orders are IP
	--	not Offers and open Walkin-Receipts
	AND o.C_DocType_ID IN (SELECT C_DocType_ID FROM C_DocType
		WHERE DocBaseType='SOO' AND DocSubTypeSO NOT IN ('ON','OB','WR'))
	--	we need to invoice
	AND	l.QtyOrdered <> l.QtyInvoiced
	--
	AND (
		--	Immediate
		o.InvoiceRule='I'
		--	Order compete ** not supported **
		OR	o.InvoiceRule='O'
		--	Delivery
		OR	(o.InvoiceRule='D' AND l.QtyInvoiced<>l.QtyDelivered)
		--	Order Schedule, but none defined on Business Partner level
		OR	(o.InvoiceRule='S' AND bp.C_InvoiceSchedule_ID IS NULL)
		--	Schedule defined at BP
		OR	(o.InvoiceRule='S' AND bp.C_InvoiceSchedule_ID IS NOT NULL AND
				(
				--	Daily or none
					(si.InvoiceFrequency IS NULL OR si.InvoiceFrequency='D')
				--	Weekly
				OR	(si.InvoiceFrequency='W')
				--	Bi-Monthly
				OR	(si.InvoiceFrequency='T'
					AND (TRUNC(o.DateOrdered) <= TRUNC(SysDate,'MM')+si.InvoiceDayCutoff-1
						AND TRUNC(SysDate) >= TRUNC(o.DateOrdered,'MM')+si.InvoiceDay-1)
					OR	(TRUNC(o.DateOrdered) <= TRUNC(SysDate,'MM')+si.InvoiceDayCutoff+14
						AND TRUNC(SysDate) >= TRUNC(o.DateOrdered,'MM')+si.InvoiceDay+14)
					)
				--	Monthly
				OR	(si.InvoiceFrequency='M'
					AND TRUNC(o.DateOrdered) <= TRUNC(SysDate,'MM')+si.InvoiceDayCutoff-1	-- after cutoff
					AND TRUNC(SysDate) >= TRUNC(o.DateOrdered,'MM')+si.InvoiceDay-1)			-- after invoice day
				)
			)
		)
GROUP BY o.AD_Client_ID, o.AD_Org_ID, o.C_BPartner_ID, o.C_Order_ID,
	o.DocumentNo, o.DateOrdered, o.C_DocType_ID
/

CREATE OR REPLACE VIEW M_InOut_Candidate_v 
AS
SELECT	
	o.AD_Client_ID, o.AD_Org_ID, o.C_BPartner_ID, o.C_Order_ID,
	o.DocumentNo, o.DateOrdered, o.C_DocType_ID,
	SUM((l.QtyOrdered-l.QtyDelivered)*l.PriceActual) AS TotalLines
FROM	C_Order o
  INNER JOIN C_OrderLine l ON (o.C_Order_ID=l.C_Order_ID)
WHERE	(o.DocStatus = 'CO'	AND o.IsDelivered='N')
	--	not Offers and open Walkin-Receipts
	AND o.C_DocType_ID IN (SELECT C_DocType_ID FROM C_DocType
		WHERE DocBaseType='SOO' AND DocSubTypeSO NOT IN ('ON','OB','WR'))
	--	we need to ship
	AND	l.QtyOrdered <> l.QtyDelivered
	AND		l.DirectShip='N' AND l.M_Product_ID IS NOT NULL
	--
GROUP BY o.AD_Client_ID, o.AD_Org_ID, o.C_BPartner_ID, o.C_Order_ID,
	o.DocumentNo, o.DateOrdered, o.C_DocType_ID
/

-------------------------------------------------------------------------------

CREATE OR REPLACE VIEW C_Payment_v 
AS
SELECT C_Payment_ID, AD_Client_ID, AD_Org_ID, IsActive, Created, CreatedBy, Updated, UpdatedBy,
DocumentNo, DateTrx, IsReceipt, C_DocType_ID, TrxType,
C_BankAccount_ID, C_BPartner_ID, C_Invoice_ID, C_BP_BankAccount_ID, C_PaymentBatch_ID,
TenderType, CreditCardType, CreditCardNumber, CreditCardVV, CreditCardExpMM, CreditCardExpYY,
MICR, RoutingNo, AccountNo, CheckNo,
A_Name, A_Street, A_City, A_State, A_Zip, A_Ident_DL, A_Ident_SSN, A_EMail,
VoiceAuthCode, Orig_TrxID, PONum,
C_Currency_ID, 
CASE IsReceipt WHEN 'Y' THEN PayAmt ELSE PayAmt*-1 END AS PayAmt,
CASE IsReceipt WHEN 'Y' THEN DiscountAmt ELSE DiscountAmt*-1 END AS DiscountAmt, 
CASE IsReceipt WHEN 'Y' THEN WriteOffAmt ELSE WriteOffAmt*-1 END AS WriteOffAmt,
CASE IsReceipt WHEN 'Y' THEN TaxAmt ELSE TaxAmt*-1 END AS TaxAmt, 
CASE IsReceipt WHEN 'Y' THEN OverUnderAmt ELSE OverUnderAmt*-1 END AS OverUnderAmt,
CASE IsReceipt WHEN 'Y' THEN 1 ELSE -1 END AS MultiplierAP,
IsOverUnderPayment, IsApproved,
R_PNRef, R_Result, R_RespMsg, R_AuthCode, R_AVSAddr, R_AVSZip, R_Info,
Processing, OProcessing, DocStatus, DocAction,
IsReconciled, IsAllocated, IsOnline, Processed, Posted
FROM C_Payment
/
COMMENT ON TABLE C_Payment_v IS 'Payment Information corrected for AP/AR'
/

-------------------------------------------------------------------------------

CREATE OR REPLACE VIEW GL_JournalLine_Acct_v
AS
SELECT 
	gl.GL_JournalLine_ID, gl.AD_Client_ID, gl.AD_Org_ID, gl.IsActive, 
	gl.Created, gl.CreatedBy, gl.Updated, gl.UpdatedBy, gl.GL_Journal_ID, 
	gl.Line, gl.IsGenerated, gl.Description, 
	gl.AmtSourceDr, gl.AmtSourceCr, gl.C_Currency_ID, 
	gl.CurrencyRateType, gl.CurrencyRate, gl.DateAcct, 
	gl.AmtAcctDr, gl.AmtAcctCr, gl.C_UOM_ID, gl.Qty, gl.C_ValidCombination_ID, 
	vc.C_AcctSchema_ID, vc.Account_ID, vc.M_Product_ID, vc.C_BPartner_ID,
	vc.AD_OrgTrx_ID, vc.C_LocFrom_ID, vc.C_LocTo_ID, vc.C_SalesRegion_ID, 
	vc.C_Project_ID, vc.C_Campaign_ID, vc.User1_ID, vc.User2_ID, 
	vc.IsFullyQualified, vc.C_Activity_ID
FROM GL_JournalLine gl, C_ValidCombination vc
WHERE gl.C_ValidCombination_ID = vc.C_ValidCombination_ID
/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -