BF [ 2117416 ] Invoice Rule Order Complete not working
This commit is contained in:
parent
76aca236c6
commit
642f11b088
|
@ -20,8 +20,9 @@ WHERE o.DocStatus IN ('CO','CL','IP') -- Standard Orders are IP
|
||||||
AND (
|
AND (
|
||||||
-- Immediate
|
-- Immediate
|
||||||
o.InvoiceRule='I'
|
o.InvoiceRule='I'
|
||||||
-- Order compete ** not supported **
|
-- Order complete
|
||||||
OR o.InvoiceRule='O'
|
OR (o.InvoiceRule='O' AND NOT EXISTS (SELECT 1 FROM C_OrderLine zz1
|
||||||
|
WHERE zz1.C_Order_ID=o.C_Order_ID AND zz1.QtyOrdered<>zz1.QtyDelivered))
|
||||||
-- Delivery
|
-- Delivery
|
||||||
OR (o.InvoiceRule='D' AND l.QtyInvoiced<>l.QtyDelivered)
|
OR (o.InvoiceRule='D' AND l.QtyInvoiced<>l.QtyDelivered)
|
||||||
-- Order Schedule, but none defined on Business Partner level
|
-- Order Schedule, but none defined on Business Partner level
|
||||||
|
|
|
@ -20,8 +20,9 @@ WHERE o.DocStatus IN ('CO','CL','IP') -- Standard Orders are IP
|
||||||
AND (
|
AND (
|
||||||
-- Immediate
|
-- Immediate
|
||||||
o.InvoiceRule='I'
|
o.InvoiceRule='I'
|
||||||
-- Order compete ** not supported **
|
-- Order complete
|
||||||
OR o.InvoiceRule='O'
|
OR (o.InvoiceRule='O' AND NOT EXISTS (SELECT 1 FROM C_OrderLine zz1
|
||||||
|
WHERE zz1.C_Order_ID=o.C_Order_ID AND zz1.QtyOrdered<>zz1.QtyDelivered))
|
||||||
-- Delivery
|
-- Delivery
|
||||||
OR (o.InvoiceRule='D' AND l.QtyInvoiced<>l.QtyDelivered)
|
OR (o.InvoiceRule='D' AND l.QtyInvoiced<>l.QtyDelivered)
|
||||||
-- Order Schedule, but none defined on Business Partner level
|
-- Order Schedule, but none defined on Business Partner level
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
CREATE OR REPLACE VIEW C_INVOICE_CANDIDATE_V
|
||||||
|
(AD_CLIENT_ID, AD_ORG_ID, C_BPARTNER_ID, C_ORDER_ID, DOCUMENTNO,
|
||||||
|
DATEORDERED, C_DOCTYPE_ID, TOTALLINES)
|
||||||
|
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 complete
|
||||||
|
OR (o.InvoiceRule='O' AND NOT EXISTS (SELECT 1 FROM C_OrderLine zz1
|
||||||
|
WHERE zz1.C_Order_ID=o.C_Order_ID AND zz1.QtyOrdered<>zz1.QtyDelivered))
|
||||||
|
-- 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) <= firstOf(getdate(),'MM')+si.InvoiceDayCutoff-1
|
||||||
|
AND TRUNC(getdate()) >= firstOf(o.DateOrdered,'MM')+si.InvoiceDay-1)
|
||||||
|
OR (TRUNC(o.DateOrdered) <= firstOf(getdate(),'MM')+si.InvoiceDayCutoff+14
|
||||||
|
AND TRUNC(getdate()) >= firstOf(o.DateOrdered,'MM')+si.InvoiceDay+14))
|
||||||
|
)
|
||||||
|
-- Monthly
|
||||||
|
OR (si.InvoiceFrequency='M'
|
||||||
|
AND TRUNC(o.DateOrdered) <= firstOf(getdate(),'MM')+si.InvoiceDayCutoff-1 -- after cutoff
|
||||||
|
AND TRUNC(getdate()) >= firstOf(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;
|
||||||
|
/
|
|
@ -0,0 +1,52 @@
|
||||||
|
CREATE OR REPLACE VIEW C_INVOICE_CANDIDATE_V
|
||||||
|
(AD_CLIENT_ID, AD_ORG_ID, C_BPARTNER_ID, C_ORDER_ID, DOCUMENTNO,
|
||||||
|
DATEORDERED, C_DOCTYPE_ID, TOTALLINES)
|
||||||
|
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 complete
|
||||||
|
OR (o.InvoiceRule='O' AND NOT EXISTS (SELECT 1 FROM C_OrderLine zz1
|
||||||
|
WHERE zz1.C_Order_ID=o.C_Order_ID AND zz1.QtyOrdered<>zz1.QtyDelivered))
|
||||||
|
-- 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) <= firstOf(getdate(),'MM')+si.InvoiceDayCutoff-1
|
||||||
|
AND TRUNC(getdate()) >= firstOf(o.DateOrdered,'MM')+si.InvoiceDay-1)
|
||||||
|
OR (TRUNC(o.DateOrdered) <= firstOf(getdate(),'MM')+si.InvoiceDayCutoff+14
|
||||||
|
AND TRUNC(getdate()) >= firstOf(o.DateOrdered,'MM')+si.InvoiceDay+14))
|
||||||
|
)
|
||||||
|
-- Monthly
|
||||||
|
OR (si.InvoiceFrequency='M'
|
||||||
|
AND TRUNC(o.DateOrdered) <= firstOf(getdate(),'MM')+si.InvoiceDayCutoff-1 -- after cutoff
|
||||||
|
AND TRUNC(getdate()) >= firstOf(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;
|
Loading…
Reference in New Issue