core-jgi/migration/oracle/253a-253b/migration-replace-views.sql

252 lines
18 KiB
SQL

/* upgrading database from compiere 253a to 253b
Written by Karsten Thiemann, kt@schaeffer-ag.de
Feel free to change everything you want, but you are using it at your own risk!
Creates new 253b views, recreates views with differences between a and b.
If you changed any of these views, make a backup (via toad or sqldeveloper) and reapply your changes later.
*/
CREATE OR REPLACE FORCE VIEW "T_INVOICEGL_V" ("AD_CLIENT_ID", "AD_ORG_ID", "ISACTIVE", "CREATED", "CREATEDBY", "UPDATED", "UPDATEDBY", "C_INVOICE_ID", "ISSOTRX", "DOCUMENTNO", "DOCSTATUS", "C_DOCTYPE_ID", "C_ORDER_ID", "DESCRIPTION", "SALESREP_ID", "DATEINVOICED", "DATEACCT", "C_PAYMENTTERM_ID", "C_BPARTNER_ID", "C_BPARTNER_LOCATION_ID", "AD_USER_ID", "ISSELFSERVICE", "C_CURRENCY_ID", "C_CONVERSIONTYPE_ID", "GRANDTOTAL", "ISTAXINCLUDED", "C_CAMPAIGN_ID", "C_PROJECT_ID", "C_ACTIVITY_ID", "AD_ORGTRX_ID", "USER1_ID", "USER2_ID", "C_LOCFROM_ID", "C_LOCTO_ID", "C_SALESREGION_ID", "FACT_ACCT_ID", "C_ACCTSCHEMA_ID", "ACCOUNT_ID", "C_PERIOD_ID", "GL_CATEGORY_ID", "GL_BUDGET_ID", "C_TAX_ID", "M_LOCATOR_ID", "POSTINGTYPE", "AMTSOURCEDR", "AMTSOURCECR", "AMTACCTDR", "AMTACCTCR", "C_UOM_ID", "QTY", "AD_PINSTANCE_ID", "APAR", "OPENAMT", "PERCENT", "AMTREVALDR", "AMTREVALCR", "DATEREVAL", "C_CONVERSIONTYPEREVAL_ID", "AMTSOURCEBALANCE", "AMTACCTBALANCE", "C_DOCTYPEREVAL_ID", "AMTREVALDRDIFF", "AMTREVALCRDIFF", "ISALLCURRENCIES") AS
SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated,i.UpdatedBy,
i.C_Invoice_ID, i.IsSOTrx, i.DocumentNo, i.DocStatus, i.C_DocType_ID, i.C_Order_ID,
i.Description, i.SalesRep_ID, i.DateInvoiced, i.DateAcct, i.C_PaymentTerm_ID,
i.C_BPartner_ID, i.C_BPartner_Location_ID, i.AD_User_ID, i.IsSelfService,
i.C_Currency_ID, i.C_ConversionType_ID, i.GrandTotal, i.IsTaxIncluded,
-- References
i.C_Campaign_ID, i.C_Project_ID, i.C_Activity_ID,
i.AD_OrgTrx_ID, i.User1_ID, i.User2_ID,
fa.C_LocFrom_ID, fa.C_LocTo_ID, fa.C_SalesRegion_ID,
-- Accounting
fa.Fact_Acct_ID, fa.C_AcctSchema_ID, fa.Account_ID, fa.C_Period_ID, fa.GL_Category_ID, fa.GL_Budget_ID,
fa.C_Tax_ID, fa.M_Locator_ID,
fa.PostingType, fa.AmtSourceDr, fa.AmtSourceCr, fa.AmtAcctDr, fa.AmtAcctCr,
fa.C_UOM_ID, fa.Qty,
-- GL
gl.AD_PInstance_ID, gl.APAR, gl.OpenAmt, gl.Percent,
gl.AmtRevalDr, gl.AmtRevalCr, gl.DateReval, gl.C_ConversionTypeReval_ID,
gl.AmtSourceBalance, gl.AmtAcctBalance, gl.C_DocTypeReval_ID,
gl.AmtRevalDrDiff, gl.AmtRevalCrDiff, gl.IsAllCurrencies
FROM T_InvoiceGL gl
INNER JOIN C_Invoice i ON (gl.C_Invoice_ID=i.C_Invoice_ID)
INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID)
;
CREATE OR REPLACE FORCE VIEW "T_INVOICEGL_VT" ("AD_CLIENT_ID", "AD_ORG_ID", "ISACTIVE", "CREATED", "CREATEDBY", "UPDATED", "UPDATEDBY", "C_INVOICE_ID", "ISSOTRX", "DOCUMENTNO", "DOCSTATUS", "C_DOCTYPE_ID", "C_ORDER_ID", "DESCRIPTION", "SALESREP_ID", "DATEINVOICED", "DATEACCT", "C_PAYMENTTERM_ID", "C_BPARTNER_ID", "C_BPARTNER_LOCATION_ID", "AD_USER_ID", "ISSELFSERVICE", "C_CURRENCY_ID", "C_CONVERSIONTYPE_ID", "GRANDTOTAL", "ISTAXINCLUDED", "C_CAMPAIGN_ID", "C_PROJECT_ID", "C_ACTIVITY_ID", "AD_ORGTRX_ID", "USER1_ID", "USER2_ID", "C_LOCFROM_ID", "C_LOCTO_ID", "C_SALESREGION_ID", "FACT_ACCT_ID", "C_ACCTSCHEMA_ID", "ACCOUNT_ID", "C_PERIOD_ID", "GL_CATEGORY_ID", "GL_BUDGET_ID", "C_TAX_ID", "M_LOCATOR_ID", "POSTINGTYPE", "AMTSOURCEDR", "AMTSOURCECR", "AMTACCTDR", "AMTACCTCR", "C_UOM_ID", "QTY", "AD_PINSTANCE_ID", "APAR", "OPENAMT", "PERCENT", "AMTREVALDR", "AMTREVALCR", "DATEREVAL", "C_CONVERSIONTYPEREVAL_ID", "AMTSOURCEBALANCE", "AMTACCTBALANCE", "C_DOCTYPEREVAL_ID", "AMTREVALDRDIFF", "AMTREVALCRDIFF", "ISALLCURRENCIES") AS
SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated,i.UpdatedBy,
i.C_Invoice_ID, i.IsSOTrx, i.DocumentNo, i.DocStatus, i.C_DocType_ID, i.C_Order_ID,
i.Description, i.SalesRep_ID, i.DateInvoiced, i.DateAcct, i.C_PaymentTerm_ID,
i.C_BPartner_ID, i.C_BPartner_Location_ID, i.AD_User_ID, i.IsSelfService,
i.C_Currency_ID, i.C_ConversionType_ID, i.GrandTotal, i.IsTaxIncluded,
-- References
i.C_Campaign_ID, i.C_Project_ID, i.C_Activity_ID,
i.AD_OrgTrx_ID, i.User1_ID, i.User2_ID,
fa.C_LocFrom_ID, fa.C_LocTo_ID, fa.C_SalesRegion_ID,
-- Accounting
fa.Fact_Acct_ID, fa.C_AcctSchema_ID, fa.Account_ID, fa.C_Period_ID, fa.GL_Category_ID, fa.GL_Budget_ID,
fa.C_Tax_ID, fa.M_Locator_ID,
fa.PostingType, fa.AmtSourceDr, fa.AmtSourceCr, fa.AmtAcctDr, fa.AmtAcctCr,
fa.C_UOM_ID, fa.Qty,
-- GL
gl.AD_PInstance_ID, gl.APAR, gl.OpenAmt, gl.Percent,
gl.AmtRevalDr, gl.AmtRevalCr, gl.DateReval, gl.C_ConversionTypeReval_ID,
gl.AmtSourceBalance, gl.AmtAcctBalance, gl.C_DocTypeReval_ID,
gl.AmtRevalDrDiff, gl.AmtRevalCrDiff, gl.IsAllCurrencies
FROM T_InvoiceGL gl
INNER JOIN C_Invoice i ON (gl.C_Invoice_ID=i.C_Invoice_ID)
INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID)
;
CREATE OR REPLACE FORCE VIEW "M_INOUTLINEMA_VT" ("AD_CLIENT_ID", "AD_ORG_ID", "ISACTIVE", "CREATED", "CREATEDBY", "UPDATED", "UPDATEDBY", "M_INOUT_ID", "M_INOUTLINE_ID", "LINE", "M_PRODUCT_ID", "M_ATTRIBUTESETINSTANCE_ID", "MOVEMENTQTY", "M_LOCATOR_ID") AS
SELECT m.AD_Client_ID, m.AD_Org_ID, m.IsActive, m.Created, m.CreatedBy, m.Updated, m.UpdatedBy,
l.M_InOut_ID, m.M_InOutLine_ID, l.Line, l.M_Product_ID,
m.M_AttributeSetInstance_ID, m.MovementQty, l.M_Locator_ID
FROM M_InOutLineMA m INNER JOIN M_InOutLine l ON (m.M_InOutLine_ID=l.M_InOutLine_ID)
UNION
SELECT AD_Client_ID, AD_Org_ID, IsActive, Created, CreatedBy, Updated, UpdatedBy,
M_InOut_ID, M_InOutLine_ID, Line, M_Product_ID,
M_AttributeSetInstance_ID, MovementQty, M_Locator_ID
FROM M_InOutLine
;
CREATE OR REPLACE FORCE VIEW "M_MOVEMENTLINEMA_VT" ("AD_CLIENT_ID", "AD_ORG_ID", "ISACTIVE", "CREATED", "CREATEDBY", "UPDATED", "UPDATEDBY", "M_MOVEMENT_ID", "M_MOVEMENTLINE_ID", "LINE", "M_PRODUCT_ID", "M_ATTRIBUTESETINSTANCE_ID", "MOVEMENTQTY", "M_LOCATOR_ID", "M_LOCATORTO_ID") AS
SELECT m.AD_Client_ID, m.AD_Org_ID, m.IsActive, m.Created, m.CreatedBy, m.Updated, m.UpdatedBy,
l.M_Movement_ID, m.M_MovementLine_ID, l.Line, l.M_Product_ID,
m.M_AttributeSetInstance_ID, m.MovementQty, l.M_Locator_ID, l.M_LocatorTo_ID
FROM M_MovementLineMA m INNER JOIN M_MovementLine l ON (m.M_MovementLine_ID=l.M_MovementLine_ID)
UNION
SELECT AD_Client_ID, AD_Org_ID, IsActive, Created, CreatedBy, Updated, UpdatedBy,
M_Movement_ID, M_MovementLine_ID, Line, M_Product_ID,
M_AttributeSetInstance_ID, MovementQty, M_Locator_ID, M_LocatorTo_ID
FROM M_MovementLine
;
CREATE OR REPLACE FORCE VIEW "RV_C_INVOICE_PRODUCTMONTH" ("AD_CLIENT_ID", "AD_ORG_ID", "M_PRODUCT_ID", "DATEINVOICED", "LINENETAMT", "LINELISTAMT", "LINELIMITAMT", "LINEDISCOUNTAMT", "LINEDISCOUNT", "LINEOVERLIMITAMT", "LINEOVERLIMIT", "QTYINVOICED", "ISSOTRX") AS
SELECT il.AD_Client_ID, il.AD_Org_ID, il.M_Product_ID,
firstOf(il.DateInvoiced, 'MM') AS DateInvoiced,
SUM(il.LineNetAmt) AS LineNetAmt,
SUM(il.LineListAmt) AS LineListAmt,
SUM(il.LineLimitAmt) AS LineLimitAmt,
SUM(il.LineDiscountAmt) AS LineDiscountAmt,
CASE WHEN SUM(LineListAmt)=0 THEN 0 ELSE
ROUND((SUM(LineListAmt)-SUM(LineNetAmt))/SUM(LineListAmt)*100,2) END AS LineDiscount,
SUM(LineOverLimitAmt) AS LineOverLimitAmt,
CASE WHEN SUM(LineNetAmt)=0 THEN 0 ELSE
100-ROUND((SUM(LineNetAmt)-SUM(LineOverLimitAmt))/SUM(LineNetAmt)*100,2) END AS LineOverLimit,
SUM(QtyInvoiced) AS QtyInvoiced, IsSOTrx
FROM RV_C_InvoiceLine il
GROUP BY il.AD_Client_ID, il.AD_Org_ID, il.M_Product_ID,
firstOf(il.DateInvoiced, 'MM'), IsSOTrx
;
CREATE OR REPLACE FORCE VIEW "RV_C_INVOICE_PRODUCTQTR" ("AD_CLIENT_ID", "AD_ORG_ID", "M_PRODUCT_ID", "DATEINVOICED", "LINENETAMT", "LINELISTAMT", "LINELIMITAMT", "LINEDISCOUNTAMT", "LINEDISCOUNT", "LINEOVERLIMITAMT", "LINEOVERLIMIT", "QTYINVOICED", "ISSOTRX") AS
SELECT il.AD_Client_ID, il.AD_Org_ID, il.M_Product_ID,
firstOf(il.DateInvoiced, 'Q') AS DateInvoiced,
SUM(il.LineNetAmt) AS LineNetAmt,
SUM(il.LineListAmt) AS LineListAmt,
SUM(il.LineLimitAmt) AS LineLimitAmt,
SUM(il.LineDiscountAmt) AS LineDiscountAmt,
CASE WHEN SUM(LineListAmt)=0 THEN 0 ELSE
ROUND((SUM(LineListAmt)-SUM(LineNetAmt))/SUM(LineListAmt)*100,2) END AS LineDiscount,
SUM(LineOverLimitAmt) AS LineOverLimitAmt,
CASE WHEN SUM(LineNetAmt)=0 THEN 0 ELSE
100-ROUND((SUM(LineNetAmt)-SUM(LineOverLimitAmt))/SUM(LineNetAmt)*100,2) END AS LineOverLimit,
SUM(QtyInvoiced) AS QtyInvoiced, IsSOTrx
FROM RV_C_InvoiceLine il
GROUP BY il.AD_Client_ID, il.AD_Org_ID, il.M_Product_ID,
firstOf(il.DateInvoiced, 'Q'), IsSOTrx
;
CREATE OR REPLACE FORCE VIEW "R_REQUEST_V" ("R_REQUEST_ID", "AD_CLIENT_ID", "AD_ORG_ID", "ISACTIVE", "CREATED", "CREATEDBY", "UPDATED", "UPDATEDBY", "DOCUMENTNO", "R_REQUESTTYPE_ID", "R_GROUP_ID", "R_CATEGORY_ID", "R_STATUS_ID", "R_RESOLUTION_ID", "R_REQUESTRELATED_ID", "PRIORITY", "PRIORITYUSER", "DUETYPE", "SUMMARY", "CONFIDENTIALTYPE", "ISESCALATED", "ISSELFSERVICE", "SALESREP_ID", "AD_ROLE_ID", "DATELASTACTION", "DATELASTALERT", "LASTRESULT", "PROCESSED", "ISINVOICED", "C_BPARTNER_ID", "AD_USER_ID", "C_CAMPAIGN_ID", "C_ORDER_ID", "C_INVOICE_ID", "C_PAYMENT_ID", "M_PRODUCT_ID", "C_PROJECT_ID", "A_ASSET_ID", "M_INOUT_ID", "M_RMA_ID", "AD_TABLE_ID", "RECORD_ID", "REQUESTAMT", "R_MAILTEXT_ID", "RESULT", "CONFIDENTIALTYPEENTRY", "R_STANDARDRESPONSE_ID", "NEXTACTION", "DATENEXTACTION", "STARTTIME", "ENDTIME", "QTYSPENT", "QTYINVOICED", "M_PRODUCTSPENT_ID", "C_ACTIVITY_ID", "STARTDATE", "CLOSEDATE", "C_INVOICEREQUEST_ID", "M_CHANGEREQUEST_ID", "TASKSTATUS", "QTYPLAN", "DATECOMPLETEPLAN", "DATESTARTPLAN", "M_FIXCHANGENOTICE_ID") AS
SELECT "R_REQUEST_ID","AD_CLIENT_ID","AD_ORG_ID","ISACTIVE","CREATED","CREATEDBY","UPDATED","UPDATEDBY","DOCUMENTNO","R_REQUESTTYPE_ID","R_GROUP_ID","R_CATEGORY_ID","R_STATUS_ID","R_RESOLUTION_ID","R_REQUESTRELATED_ID","PRIORITY","PRIORITYUSER","DUETYPE","SUMMARY","CONFIDENTIALTYPE","ISESCALATED","ISSELFSERVICE","SALESREP_ID","AD_ROLE_ID","DATELASTACTION","DATELASTALERT","LASTRESULT","PROCESSED","ISINVOICED","C_BPARTNER_ID","AD_USER_ID","C_CAMPAIGN_ID","C_ORDER_ID","C_INVOICE_ID","C_PAYMENT_ID","M_PRODUCT_ID","C_PROJECT_ID","A_ASSET_ID","M_INOUT_ID","M_RMA_ID","AD_TABLE_ID","RECORD_ID","REQUESTAMT","R_MAILTEXT_ID","RESULT","CONFIDENTIALTYPEENTRY","R_STANDARDRESPONSE_ID","NEXTACTION","DATENEXTACTION","STARTTIME","ENDTIME","QTYSPENT","QTYINVOICED","M_PRODUCTSPENT_ID","C_ACTIVITY_ID","STARTDATE","CLOSEDATE","C_INVOICEREQUEST_ID","M_CHANGEREQUEST_ID","TASKSTATUS","QTYPLAN","DATECOMPLETEPLAN","DATESTARTPLAN","M_FIXCHANGENOTICE_ID"
FROM R_Request
WHERE IsActive='Y' AND Processed='N'
AND getdate() > DateNextAction
;
CREATE OR REPLACE FORCE VIEW "RV_C_INVOICELINE" ("AD_CLIENT_ID", "AD_ORG_ID", "ISACTIVE", "CREATED", "CREATEDBY", "UPDATED", "UPDATEDBY", "C_INVOICELINE_ID", "C_INVOICE_ID", "SALESREP_ID", "C_BPARTNER_ID", "C_BP_GROUP_ID", "M_PRODUCT_ID", "M_PRODUCT_CATEGORY_ID", "DATEINVOICED", "DATEACCT", "ISSOTRX", "C_DOCTYPE_ID", "DOCSTATUS", "ISPAID", "QTYINVOICED", "QTYENTERED", "M_ATTRIBUTESETINSTANCE_ID", "PRODUCTATTRIBUTE", "M_ATTRIBUTESET_ID", "M_LOT_ID", "GUARANTEEDATE", "LOT", "SERNO", "PRICELIST", "PRICEACTUAL", "PRICELIMIT", "PRICEENTERED", "DISCOUNT", "MARGIN", "MARGINAMT", "LINENETAMT", "LINELISTAMT", "LINELIMITAMT", "LINEDISCOUNTAMT", "LINEOVERLIMITAMT") AS
SELECT
il.AD_Client_ID, il.AD_Org_ID, il.IsActive, il.Created, il.CreatedBy, il.Updated, il.UpdatedBy,
il.C_InvoiceLine_ID, i.C_Invoice_ID, i.SalesRep_ID,
i.C_BPartner_ID, i.C_BP_Group_ID,
il.M_Product_ID, p.M_Product_Category_ID,
i.DateInvoiced, i.DateAcct, i.IsSOTrx, i.C_DocType_ID, i.DocStatus, i.IsPaid,
-- Qty
il.QtyInvoiced*i.Multiplier AS QtyInvoiced,
il.QtyEntered*i.Multiplier AS QtyEntered,
-- Attributes
il.M_AttributeSetInstance_ID, productAttribute(il.M_AttributeSetInstance_ID) AS ProductAttribute,
pasi.M_AttributeSet_ID, pasi.M_Lot_ID, pasi.GuaranteeDate, pasi.Lot, pasi.SerNo,
-- Item Amounts
il.PriceList, il.PriceActual, il.PriceLimit, il.PriceEntered,
CASE WHEN PriceList=0 THEN 0 ELSE
ROUND((PriceList-PriceActual)/PriceList*100,2) END AS Discount,
CASE WHEN PriceLimit=0 THEN 0 ELSE
ROUND((PriceActual-PriceLimit)/PriceLimit*100,2) END AS Margin,
CASE WHEN PriceLimit=0 THEN 0 ELSE
(PriceActual-PriceLimit)*QtyInvoiced END AS MarginAmt,
-- Line Amounts
ROUND(i.Multiplier*LineNetAmt, 2) AS LineNetAmt,
ROUND(i.Multiplier*PriceList*QtyInvoiced, 2) AS LineListAmt,
CASE WHEN COALESCE(il.PriceLimit, 0)=0 THEN ROUND(i.Multiplier*LineNetAmt,2) ELSE
ROUND(i.Multiplier*PriceLimit*QtyInvoiced,2) END AS LineLimitAmt,
ROUND(i.Multiplier*PriceList*QtyInvoiced-LineNetAmt,2) AS LineDiscountAmt,
CASE WHEN COALESCE(il.PriceLimit,0)=0 THEN 0 ELSE
ROUND(i.Multiplier*LineNetAmt-PriceLimit*QtyInvoiced,2) END AS LineOverLimitAmt
FROM RV_C_Invoice i
INNER JOIN C_InvoiceLine il ON (i.C_Invoice_ID=il.C_Invoice_ID)
LEFT OUTER JOIN M_Product p ON (il.M_Product_ID=p.M_Product_ID)
LEFT OUTER JOIN M_AttributeSetInstance pasi ON (il.M_AttributeSetInstance_ID=pasi.M_AttributeSetInstance_ID)
;
-- CHANGED VIEWS - but check them first - don't overwrite your customizations...
CREATE OR REPLACE FORCE VIEW AD_ORG_V
AS SELECT o.AD_Client_ID, o.AD_Org_ID,
o.IsActive, o.Created, o.CreatedBy, o.Updated, o.UpdatedBy,
o.Value, o.Name, o.Description, o.IsSummary,
i.C_Location_ID, i.DUNS, i.TaxID,
i.Supervisor_ID, i.Parent_Org_ID,
i.AD_OrgType_ID, i.M_Warehouse_ID,
bp.C_BPartner_ID
FROM AD_Org o
INNER JOIN AD_OrgInfo i ON (o.AD_Org_ID=i.AD_Org_ID)
LEFT OUTER JOIN C_BPartner bp ON (o.AD_Org_ID=bp.AD_OrgBP_ID)
;
CREATE OR REPLACE FORCE VIEW RV_BPARTNER
AS SELECT bp.AD_Client_ID, bp.AD_Org_ID,
bp.IsActive, bp.Created, bp.CreatedBy, bp.Updated, bp.UpdatedBy,
bp.C_BPartner_ID, bp.Value, bp.Name, bp.Name2, bp.Description, bp.IsSummary,
bp.C_BP_Group_ID, bp.IsOneTime, bp.IsProspect, bp.IsVendor, bp.IsCustomer, bp.IsEmployee, bp.IsSalesRep,
bp.ReferenceNo, bp.Duns, bp.URL, bp.AD_Language, bp.TaxID, bp.IsTaxExempt,
bp.C_InvoiceSchedule_ID, bp.Rating, bp.SalesVolume, bp.NumberEmployees, bp.NAICS,
bp.FirstSale, bp.AcqusitionCost, bp.PotentialLifeTimeValue, bp.ActualLifeTimeValue,
bp.ShareOfCustomer, bp.PaymentRule,
bp.SO_CreditLimit, bp.SO_CreditUsed, bp.SO_CreditUsed-bp.SO_CreditLimit AS SO_CreditAvailable,
bp.C_PaymentTerm_ID, bp.M_PriceList_ID, bp.M_DiscountSchema_ID, bp.C_Dunning_ID,
bp.IsDiscountPrinted, bp.SO_Description, bp.POReference, PaymentRulePO,
bp.PO_PriceList_ID, bp.PO_DiscountSchema_ID, bp.PO_PaymentTerm_ID,
bp.DocumentCopies, bp.C_Greeting_ID, bp.InvoiceRule, bp.DeliveryRule,
bp.FreightCostRule, bp.DeliveryViaRule, bp.SalesRep_ID,
bp.SendEMail, bp.BPartner_Parent_ID, bp.Invoice_PrintFormat_ID,
bp.SOCreditStatus, bp.ShelfLifeMinPct, bp.AD_OrgBP_ID,
bp.FlatDiscount, bp.TotalOpenBalance,
-- Contact
c.AD_User_ID, c.Name AS ContactName, c.Description AS ContactDescription,
c.EMail, c.Supervisor_ID,
c.EMailUser, c.C_Greeting_ID AS BPContactGreeting,
c.Title, c.Comments, c.Phone, c.Phone2, c.Fax,
c.LastContact, c.LastResult, c.BirthDay, c.AD_OrgTrx_ID,
c.EMailVerify, c.LDAPUser, c.EMailVerifyDate, c.NotificationType,
-- Location
l.C_BPartner_Location_ID, a.Postal, a.City, a.Address1, a.Address2, a.Address3,
a.C_Region_ID, COALESCE(r.Name,a.RegionName) AS RegionName,
a.C_Country_ID, cc.Name AS CountryName
FROM C_BPartner bp
LEFT OUTER JOIN C_BPartner_Location l ON (bp.C_BPartner_ID=l.C_BPartner_ID AND l.IsActive='Y')
LEFT OUTER JOIN AD_User c ON (bp.C_BPartner_ID=c.C_BPartner_ID AND (c.C_BPartner_Location_ID IS NULL OR c.C_BPartner_Location_ID=l.C_BPartner_Location_ID) AND c.IsActive='Y')
LEFT OUTER JOIN C_Location a ON (l.C_Location_ID=a.C_Location_ID)
LEFT OUTER JOIN C_Region r ON (a.C_Region_ID=r.C_Region_ID)
INNER JOIN C_Country cc ON (a.C_Country_ID=cc.C_Country_ID)
;
CREATE OR REPLACE FORCE 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,
o.POReference, o.Description, o.SalesRep_ID,
l.M_Warehouse_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') -- Status must be CO - not CL/RE
-- 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'))
-- Delivery Rule - not manual
AND o.DeliveryRule<>'M'
AND (l.M_Product_ID IS NULL OR EXISTS
(SELECT * FROM M_Product p
WHERE l.M_Product_ID=p.M_Product_ID AND p.IsExcludeAutoDelivery='N'))
-- we need to ship
AND l.QtyOrdered <> l.QtyDelivered
AND o.IsDropShip='N'
AND (l.M_Product_ID IS NOT NULL OR l.C_Charge_ID IS NOT NULL)
-- Not confirmed shipment
AND NOT EXISTS (SELECT * FROM M_InOutLine iol
INNER JOIN M_InOut io ON (iol.M_InOut_ID=io.M_InOut_ID)
WHERE iol.C_OrderLine_ID=l.C_OrderLine_ID AND io.DocStatus IN ('IP','WC'))
--
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,
o.POReference, o.Description, o.SalesRep_ID, l.M_Warehouse_ID
;
update AD_System set version='2006-01-20';
COMMIT;