View: Analytics_Customer
Name | Analytics_Customer |
Note | |
Code | CREATE VIEW [dbo].[Analytics_Customer] AS (SELECT
BRANCHNAME AS [BranchName],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_HEAD AS [AccountNameHeadOffice],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
ACCGROUPPNAME AS [AccountPriceGroupName],
STAFFNAME AS [StaffName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
PAYNAME AS [PaymentTypeName],
TERMSNAME AS [TermsName],
CONTACTNAME AS [ContactName],
ACCNO AS [AccountNumberKeyed],
ACCNO_HEAD AS [AccountNumberHeadOffice],
ACCALPHA AS [AccountAlphaCode],
POSTCODE AS [PostCode],
SALESNO AS [Manager],
BRANCHNO AS [Branch],
CURRENCYNO AS [AccountCurrency],
TAXNO AS [TaxRateNo],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
ACCPRICEGROUP AS [AccountPriceGroup],
ACCTERMS AS [AccountTerms],
ACCSTOPCRED AS [AccountStopCredit],
ACCPRIVATE AS [AccountPrivate],
ACCSTARTDATE AS [AccountStartDate],
ACCLASTUPDATE AS [AccountLastUpdate],
CONTACTNO AS [Contact],
BALFC3 AS [ClosingBalance3MonthsForex],
BALFC2 AS [ClosingBalance2MonthsForex],
BALFC1 AS [ClosingBalance1MonthForex],
BALFC0 AS [ClosingBalanceCurrentForex],
BALFCTOT AS [ClosingBalanceTotalForex],
BALPRIORFC3 AS [PriorBalance3MonthsForex],
BALPRIORFC2 AS [PriorBalance2MonthsForex],
BALPRIORFC1 AS [PriorBalance1MonthForex],
BALPRIORFC0 AS [PriorBalanceCurrentForex],
BALPRIORFCTOT AS [PriorBalanceTotalForex],
CREDLIMITFC AS [CreditLimitForex],
BAL3 AS [ClosingBalance3Months],
BAL2 AS [ClosingBalance2Months],
BAL1 AS [ClosingBalance1Month],
BAL0 AS [ClosingBalanceCurrent],
BALTOT AS [ClosingBalanceTotal],
BALPRIOR3 AS [PriorBalance3Months],
BALPRIOR2 AS [PriorBalance2Months],
BALPRIOR1 AS [PriorBalance1Month],
BALPRIOR0 AS [PriorBalanceCurrent],
BALPRIORTOT AS [PriorBalanceTotal],
CREDLIMIT AS [CreditLimit],
VALUELASTMONTH AS [ValueLastMonth],
VALUELASTYEAR AS [ValueLastYear],
VALUETHISMONTH AS [ValueThisMonth],
VALUETHISYEAR AS [ValueThisYear],
OVALPENDING AS [OrderValuePending],
LASTDATEINVOICED AS [LastDateInvoiced],
LASTDATEPAID AS [LastDatePaid],
AVEDAYS AS [AccountAverageDays] FROM VW_FACT_DEBTOR)
|
View: Analytics_GL
Name | Analytics_GL |
Note | |
Code | CREATE VIEW [dbo].[Analytics_GL] AS (SELECT
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
BRANCHNAME AS [BranchName],
GLACCGROUPNAME AS [GeneralLedgerGroupName],
GLREPCODENAME AS [GeneralLedgerReportCodeName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
GLSIGN AS [GeneralLedgerAccountSign],
GLSECTIONNAME AS [GeneralLedgerSectionName],
AGE AS [AgePeriod],
YEARAGE AS [AgeYear],
PERIODNAME AS [PeriodName],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
BRANCHNO AS [Branch],
COMPANYNO AS [SourceCompanyNo],
PERIODID AS [PeriodID],
TAXNO AS [TaxRateNo],
CURRENCYNO AS [GeneralLedgerAccountCurrency],
GLISACTIVE AS [GeneralLedgerAccountActive],
GLACCGROUP AS [GeneralLedgerGroup],
GLREPCODE AS [GeneralLedgerReportCode],
GLRECONCILABLE AS [GeneralLedgerGroupReconcilable],
GLSECTION AS [GeneralLedgerSection],
GLISBANK AS [GeneralLedgerAccountIsBank],
AVAL AS [ValueLocal],
AVALFC AS [ValueForex],
AEXCHRATE AS [ExchangeRate],
FREQUENCY AS [Frequency] FROM VW_FACT_GL)
|
View: Analytics_Job
Name | Analytics_Job |
Note | |
Code | CREATE VIEW [dbo].[Analytics_Job] AS (SELECT
BRANCHNAME AS [BranchName],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
ACCGROUPPNAME AS [AccountPriceGroupName],
STAFFNAME AS [StaffName],
STAFFNAMEPHYS AS [StaffNamePhysical],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
LOCATIONNAME AS [LocationName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
PROJECTNAME AS [ProjectName],
CATEGORYNAME AS [CategoryName],
JOBTYPENAME AS [JobTypeName],
BILLINGMODENAME AS [BillingModeName],
BRANCHNO AS [Branch],
LOCATION AS [Location],
JOBNO AS [JobNumber],
JOBCODE AS [JobCostingJobCode],
MASTER_JOBNO AS [JobNumberMaster],
CUSTORDNO AS [JobCustomer OrderNo],
TITLE AS [JobTitle],
DESCRIPTION AS [JobDescription],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
ORDSTATUS AS [JobStatus],
ISCONFIRMED AS [Confirmed],
CREATE_DATE AS [CreatedDate],
ORDERDATE AS [JobDate],
ACTIVATION_DATE AS [ActivationDate],
DUEDATE AS [DueDate],
FINALISATION_DATE AS [FinalisationDate],
CALLBACK_DATE AS [FollowUpDate],
SALESNO AS [SalesStaff],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
CATEGORY AS [Category],
JOBTYPE AS [JobType],
BILLINGMODE AS [BillingMode],
PROJECTNO AS [ProjectID],
PHYS_STAFF AS [KeyedByStaff],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
ACCPRICEGROUP AS [AccountPriceGroup],
AVEDAYS AS [AccountAverageDays],
OVALESTIMATE AS [JobValueEstimate],
OVALTIME AS [JobValueTime],
OVALMATERIALS AS [JobValueMaterials],
OVALOVERHEAD AS [JobValueOverhead],
OVALINVOICED AS [JobValueInvoiced],
OVALASSET AS [JobValueAsset],
OVAL AS [JobValue],
OVALESTIMATEFC AS [JobValueForexEstimate],
OVALTIMEFC AS [JobValueForexTime],
OVALMATERIALSFC AS [JobValueForexMaterials],
OVALOVERHEADFC AS [JobValueForexOverhead],
OVALINVOICEDFC AS [JobValueForexInvoiced],
OVALASSETFC AS [JobValueForexAsset],
OVALFC AS [JobValueForex],
OCOSTESTIMATE AS [JobCostEstimate],
OCOSTTIME AS [JobCostTime],
OCOSTMATERIALS AS [JobCostMaterials],
OCOSTINVOICED AS [JobCostInvoiced],
OCOSTWRITEOFF AS [JobCostWrittenOff],
OCOSTASSET AS [JobCostAsset],
OCOST AS [JobCost],
OHOURSESTIMATE AS [JobHoursEstimate],
OHOURS AS [JobHours],
OHOURSALLOWANCE AS [JobHoursAllowance],
OPROFITESTIMATE AS [JobProfitEstimate],
OPROFITTIME AS [JobProfitTime],
OPROFITMATERIALS AS [JobProfitMaterials],
OPROFITINVOICED AS [JobProfitInvoiced],
OPROFITASSET AS [JobProfitAsset],
OPROFIT AS [JobProfit],
OMARKUPPCESTIMATE AS [JobMarkupPercentEstimate],
OMARKUPPCTIME AS [JobMarkupPercentTime],
OMARKUPPCMATERIALS AS [JobMarkupPercentMaterials],
OMARKUPPCINVOICED AS [JobMarkupPercentInvoiced],
OMARKUPPCASSET AS [JobMarkupPercentAsset],
OMARKUPPC AS [JobMarkupPercent],
OMARGINPCESTIMATE AS [JobMarginPercentEstimate],
OMARGINPCTIME AS [JobMarginPercentTime],
OMARGINPCMATERIALS AS [JobMarginPercentMaterials],
OMARGINPCINVOICED AS [JobMarginPercentInvoiced],
OMARGINPCASSET AS [JobMarginPercentAsset],
OMARGINPC AS [JobMarginPercent],
WORKDAYS AS [WorkingDays],
FREQUENCY AS [Frequency] FROM VW_FACT_JOBS)
|
View: Analytics_JobProduct
Name | Analytics_JobProduct |
Note | |
Code | CREATE VIEW [dbo].[Analytics_JobProduct] AS (SELECT
BRANCHNAME AS [BranchName],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCNAME_SUPPLIER AS [SKU_SupplierAccountName],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
ACCGROUPPNAME AS [AccountPriceGroupName],
STAFFNAME AS [StaffName],
STAFFNAMEPHYS AS [StaffNamePhysical],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
LOCATIONNAME AS [LocationName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
STOCKGROUP1NAME AS [PLU_PrimaryStockGroupName],
STOCKGROUP2NAME AS [PLU_SecondaryStockGroupName],
STOCKGROUPPNAME AS [PLU_PriceGroupName],
BOMNAME AS [BillofMaterialsDescription],
PLU_NAME AS [PLU_Name],
SKU_NAME AS [SKU_Name],
STATUSNAME AS [JobStatusName],
COSTGROUPNAME AS [CostGroupName],
COSTTYPENAME AS [CostTypeName],
PROJECTNAME AS [ProjectName],
CATEGORYNAME AS [CategoryName],
JOBTYPENAME AS [JobTypeName],
BILLINGMODENAME AS [BillingModeName],
SKU AS [SKU_StockKeepingItem],
SKU_DESCRIPTION AS [SKU_Description],
PLU AS [PLU_PriceLookupItem],
BOMCODE AS [BillofMaterials],
BRANCHNO AS [Branch],
LOCATION AS [Location],
TAXNO AS [TaxRateNo],
BATCHCODE AS [StockBatchCode],
JOBNO AS [JobNumber],
JOBCODE AS [JobCostingJobCode],
MASTER_JOBNO AS [JobNumberMaster],
CUSTORDNO AS [JobCustomer OrderNo],
TITLE AS [JobTitle],
DESCRIPTION AS [JobDescription],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
BOMTYPE AS [BillofMaterialsType],
PRICEOVERRIDDEN AS [SellPriceOverridden],
ORDLINEID AS [JobLineID],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
ORDSTATUS AS [JobStatus],
ISCONFIRMED AS [Confirmed],
CREATE_DATE AS [CreatedDate],
ORDERDATE AS [JobDate],
ACTIVATION_DATE AS [ActivationDate],
DUEDATE AS [DueDate],
FINALISATION_DATE AS [FinalisationDate],
CALLBACK_DATE AS [FollowUpDate],
SALESNO AS [SalesStaff],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
LINETYPE AS [LineType],
LINESTATUS AS [LineStatus],
LINKEDITEM AS [LinkedItem],
COSTGROUP AS [CostGroup],
COSTTYPE AS [CostType],
PROGRESSINVOICE AS [ProgressInvoice],
SCHEDULENO AS [BillingScheduleID],
BILLINGID AS [BillingID],
BILLINGREF AS [BillingReference],
CATEGORY AS [Category],
JOBTYPE AS [JobType],
BILLINGMODE AS [BillingMode],
PROJECTNO AS [ProjectID],
PHYS_STAFF AS [KeyedByStaff],
PLU_DESCRIPTION AS [PriceLookupItemDescription],
STOCKGROUP AS [PLU_PrimaryStockGroup],
STOCKGROUP2 AS [PLU_SecondaryStockGroup],
STOCKPRICEGROUP AS [PLU_PriceGroup],
SIZEID AS [PLU_Size],
COLOURID AS [PLU_Colour],
SKU_ISACTIVE AS [SKU_Active],
SKU_STATUS AS [SKU_Type],
SKU_BN AS [SKU_HasBatchcodes],
SKU_SN AS [HasSerialNumbers],
SKU_SUPPLIERNO AS [SKU_Supplier],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
ACCPRICEGROUP AS [AccountPriceGroup],
AVEDAYS AS [AccountAverageDays],
OQUANTITY AS [JobQuantity],
OCOST AS [JobCostValue],
OVALDISC AS [JobDiscountValue],
OVAL AS [JobValueTaxExclusive],
OVALLIST AS [JobValueAtListPrice],
OVALTAX AS [JobTaxValue],
OVALTAXINC AS [JobValueTaxInclusive],
OVALFC AS [JobValueForex],
OPROFIT AS [JobProfit],
OMARKUPPC AS [JobMarkupPercent],
OMARGINPC AS [JobMarginPercent],
OEXCHRATE AS [JobExchangeRate],
OUNITCOST AS [JobUnitCost],
OUNITPRICE AS [JobUnitPrice],
OUNITPRICETAXINC AS [JobUnitPriceTaxInclusive],
OUNITPRICEFC AS [JobUnitPriceForex],
OUNINVOICED AS [UninvoicedQuantity],
OVALPENDING AS [JobValuePending],
OVALRETENTION AS [JobValueRetention],
WORKDAYS AS [WorkingDays],
FREQUENCY AS [Frequency] FROM VW_FACT_JOBTRANS)
|
View: Analytics_Product
Name | Analytics_Product |
Note | |
Code | CREATE VIEW [dbo].[Analytics_Product] AS (SELECT
GLSALESCODE AS [GeneralLedgerSalesCode],
GLSALESNAME AS [GeneralLedgerSalesAccountName],
GLSALESSUBNAME AS [GeneralLedgerSalesSubAccountName],
GLPURCHCODE AS [GeneralLedgerPurchasesCode],
GLPURCHNAME AS [GeneralLedgerPurchasesAccountName],
GLPURCHSUBNAME AS [GeneralLedgerPurchasesSubAccountName],
GLCOSCODE AS [GeneralLedgerCostOfSalesCode],
GLCOSNAME AS [GeneralLedgerCostOfSalesAccountName],
GLCOSSUBNAME AS [GeneralLedgerCostOfSalesSubAccountName],
ACCNAME_SUPPLIER AS [SKU_SupplierAccountName],
STOCKGROUP1NAME AS [PLU_PrimaryStockGroupName],
STOCKGROUP2NAME AS [PLU_SecondaryStockGroupName],
STOCKGROUPPNAME AS [PLU_PriceGroupName],
PLU_NAME AS [PLU_Name],
SKU_NAME AS [SKU_Name],
PLU AS [PLU_PriceLookupItem],
PLU_DESCRIPTION AS [PriceLookupItemDescription],
PLU_DISCOUNTABLE AS [PLU_Discountable],
PLU_VARIABLECOST AS [PLU_VariableCost],
SIZEID AS [PLU_Size],
COLOURID AS [PLU_Colour],
DIMENSIONS AS [PLU_Dimensions],
STOCKGROUP AS [PLU_PrimaryStockGroup],
STOCKGROUP2 AS [PLU_SecondaryStockGroup],
STOCKPRICEGROUP AS [PLU_PriceGroup],
STOCKCLASS AS [PLU_Class],
BARCODE1 AS [PLU_Barcode1],
BARCODE2 AS [PLU_Barcode2],
BARCODE3 AS [PLU_Barcode3],
GLSALESACCNO AS [GeneralLedgerSalesAccount],
GLSALESSUBACC AS [GeneralLedgerSalesSubAccount],
GLPURCHACCNO AS [GeneralLedgerPurchasesAccount],
GLPURCHSUBACC AS [GeneralLedgerPurchasesSubAccount],
GLCOSACCNO AS [GeneralLedgerCostOfSalesAccount],
GLCOSSUBACC AS [GeneralLedgerCostOfSalesSubAccount],
SKU AS [SKU_StockKeepingItem],
SKU_DESCRIPTION AS [SKU_Description],
SKU_ISACTIVE AS [SKU_Active],
SKU_STATUS AS [SKU_Type],
SKU_SN AS [HasSerialNumbers],
SKU_BN AS [SKU_HasBatchcodes],
SKU_RESTRICTED AS [SKU_Restricted],
SKU_SUPPLIERNO AS [SKU_Supplier],
QUANTITYTHISMONTH AS [QuantityThisMonth],
VALUETHISMONTH AS [ValueThisMonth],
QUANTITYLASTMONTH AS [QuantityLastMonth],
VALUELASTMONTH AS [ValueLastMonth],
QUANTITYTHISYEAR AS [QuantityThisYear],
VALUETHISYEAR AS [ValueThisYear],
QUANTITYLASTYEAR AS [QuantityLastYear],
VALUELASTYEAR AS [ValueLastYear],
QUANTITYONHAND AS [QuantityOnHand],
VALUEONHAND AS [ValueOnHand],
WEIGHT AS [Weight],
CUBIC AS [Cubic] FROM VW_FACT_STOCK)
|
View: Analytics_PurchaseInvoice
Name | Analytics_PurchaseInvoice |
Note | |
Code | CREATE VIEW [dbo].[Analytics_PurchaseInvoice] AS (SELECT
BRANCHNAME AS [BranchName],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
STAFFNAME AS [StaffName],
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
AGE AS [AgePeriod],
YEARAGE AS [AgeYear],
PERIODNAME AS [PeriodName],
TRANSEQNO AS [TransactionSeqno],
TRANSTYPE AS [TransactionType],
INVNO AS [InvoiceNumber],
REF1 AS [Reference1],
REF2 AS [Reference2],
REF3 AS [Reference3],
PORDER AS [OrderNumber],
BRANCHNO AS [Branch],
SESSIONID AS [SessionID],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
DUEDATE AS [DueDate],
TRANSDATE AS [TransactionDate],
POSTTIME AS [DateTimeKeyed],
SALESNO AS [OrderedBy],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
PERIODID AS [PeriodID],
PTNO AS [PaymentType],
TAXNO AS [TaxRateNo],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
AVEDAYS AS [AccountAverageDays],
IQUANTITY AS [SalesQuantity],
IVALDISC AS [SalesDiscountValue],
IVAL AS [SalesValueTaxExclusive],
IVALTAX AS [SalesTaxValue],
IVALTAXINC AS [SalesValueTaxInclusive],
IVALUNALLOC AS [SalesValueUnallocated],
IVALFC AS [SalesValueForex],
IVALUNALLOCFC AS [SalesValueUnallocatedForex],
INUMLINES AS [InvoiceLinesCount],
IEXCHRATE AS [SalesExchangeRate],
IUNITPRICE AS [SalesUnitPrice],
IUNITPRICETAXINC AS [SalesUnitPriceTaxInclusive],
IUNITPRICEFC AS [SalesUnitPriceForex],
FREQUENCY AS [Frequency] FROM VW_FACT_PURCHTRANS WHERE TRANSTYPE = 1)
|
View: Analytics_PurchaseOrder
Name | Analytics_PurchaseOrder |
Note | |
Code | CREATE VIEW [dbo].[Analytics_PurchaseOrder] AS (SELECT
BRANCHNAME AS [BranchName],
BRANCHNAMEPHYS AS [BranchNamePhysical],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCNAME_SUPPLIER AS [SKU_SupplierAccountName],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
STAFFNAME AS [StaffName],
STAFFNAMEPHYS AS [StaffNamePhysical],
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
LOCATIONNAME AS [LocationName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
STOCKGROUP1NAME AS [PLU_PrimaryStockGroupName],
STOCKGROUP2NAME AS [PLU_SecondaryStockGroupName],
STOCKGROUPPNAME AS [PLU_PriceGroupName],
BOMNAME AS [BillofMaterialsDescription],
PLU_NAME AS [PLU_Name],
SKU_NAME AS [SKU_Name],
SKU AS [SKU_StockKeepingItem],
SKU_DESCRIPTION AS [SKU_Description],
PLU AS [PLU_PriceLookupItem],
BOMCODE AS [BillofMaterials],
BRANCHNO AS [Branch],
LOCATION AS [Location],
TAXNO AS [TaxRateNo],
BATCHCODE AS [StockBatchCode],
JOBCODE AS [JobCostingJobCode],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
BOMTYPE AS [BillofMaterialsType],
PRICEOVERRIDDEN AS [SellPriceOverridden],
ORDLINEID AS [OrderLineID],
PORDER AS [OrderNumber],
LINETYPE AS [LineType],
LINKEDITEM AS [LinkedItem],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
ORDSTATUS AS [OrderStatus],
ISCONFIRMED AS [Confirmed],
DUEDATE AS [DueDate],
ORDERDATE AS [OrderDate],
SALESNO AS [OrderedBy],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
REFERENCE AS [Our Reference],
PHYS_BRANCH AS [KeyedByBranch],
PHYS_STAFF AS [KeyedByStaff],
PLU_DESCRIPTION AS [PriceLookupItemDescription],
STOCKGROUP AS [PLU_PrimaryStockGroup],
STOCKGROUP2 AS [PLU_SecondaryStockGroup],
STOCKPRICEGROUP AS [PLU_PriceGroup],
SIZEID AS [PLU_Size],
COLOURID AS [PLU_Colour],
SKU_ISACTIVE AS [SKU_Active],
SKU_STATUS AS [SKU_Type],
SKU_BN AS [SKU_HasBatchcodes],
SKU_SN AS [HasSerialNumbers],
SKU_SUPPLIERNO AS [SKU_Supplier],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
AVEDAYS AS [AccountAverageDays],
OQUANTITY AS [OrderQuantity],
OCOST AS [OrderCostValue],
OVALDISC AS [OrderDiscountValue],
OVAL AS [OrderValueTaxExclusive],
OVALTAX AS [OrderTaxValue],
OVALTAXINC AS [OrderValueTaxInclusive],
OVALFC AS [OrderValueForex],
OPROFIT AS [OrderProfit],
OMARKUPPC AS [OrderMarkupPercent],
OMARGINPC AS [OrderMarginPercent],
OEXCHRATE AS [OrderExchangeRate],
OUNITCOST AS [OrderUnitCost],
OUNITPRICE AS [OrderUnitPrice],
OUNITPRICETAXINC AS [OrderUnitPriceTaxInclusive],
OUNITPRICEFC AS [OrderUnitPriceForex],
OUNSUPPLIED AS [UnsuppliedQuantity],
OUNINVOICED AS [UninvoicedQuantity],
OCOSTPENDING AS [OrderCostPending],
OVALPENDING AS [OrderValuePending],
WORKDAYS AS [WorkingDays],
FREQUENCY AS [Frequency] FROM VW_FACT_PURCHORD)
|
View: Analytics_PurchaseProduct
Name | Analytics_PurchaseProduct |
Note | |
Code | CREATE VIEW [dbo].[Analytics_PurchaseProduct] AS (SELECT
BRANCHNAME AS [BranchName],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCNAME_SUPPLIER AS [SKU_SupplierAccountName],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
STAFFNAME AS [StaffName],
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
LOCATIONNAME AS [LocationName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
AGE AS [AgePeriod],
YEARAGE AS [AgeYear],
PERIODNAME AS [PeriodName],
STOCKGROUP1NAME AS [PLU_PrimaryStockGroupName],
STOCKGROUP2NAME AS [PLU_SecondaryStockGroupName],
STOCKGROUPPNAME AS [PLU_PriceGroupName],
BOMNAME AS [BillofMaterialsDescription],
PLU_NAME AS [PLU_Name],
SKU_NAME AS [SKU_Name],
SKU AS [SKU_StockKeepingItem],
SKU_DESCRIPTION AS [SKU_Description],
PLU AS [PLU_PriceLookupItem],
BOMCODE AS [BillofMaterials],
BRANCHNO AS [Branch],
LOCATION AS [Location],
TAXNO AS [TaxRateNo],
BATCHCODE AS [StockBatchCode],
JOBCODE AS [JobCostingJobCode],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
BOMTYPE AS [BillofMaterialsType],
PRICEOVERRIDDEN AS [SellPriceOverridden],
INVLINEID AS [InvoiceLineID],
LINETYPE AS [LineType],
LINKEDITEM AS [LinkedItem],
TRANSEQNO AS [TransactionSeqno],
INVNO AS [InvoiceNumber],
REF1 AS [Reference1],
REF2 AS [Reference2],
REF3 AS [Reference3],
SESSIONID AS [SessionID],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
DUEDATE AS [DueDate],
TRANSDATE AS [TransactionDate],
POSTTIME AS [DateTimeKeyed],
SALESNO AS [OrderedBy],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
PERIODID AS [PeriodID],
PLU_DESCRIPTION AS [PriceLookupItemDescription],
STOCKGROUP AS [PLU_PrimaryStockGroup],
STOCKGROUP2 AS [PLU_SecondaryStockGroup],
STOCKPRICEGROUP AS [PLU_PriceGroup],
SIZEID AS [PLU_Size],
COLOURID AS [PLU_Colour],
SKU_ISACTIVE AS [SKU_Active],
SKU_STATUS AS [SKU_Type],
SKU_BN AS [SKU_HasBatchcodes],
SKU_SN AS [HasSerialNumbers],
SKU_SUPPLIERNO AS [SKU_Supplier],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
AVEDAYS AS [AccountAverageDays],
IQUANTITY AS [InvoiceQuantity],
IVALDISC AS [InvoiceDiscountValue],
IVAL AS [InvoiceValueTaxExclusive],
IVALTAX AS [InvoiceTaxValue],
IVALTAXINC AS [InvoiceValueTaxInclusive],
IVALFC AS [InvoiceValueForex],
IEXCHRATE AS [InvoiceExchangeRate],
IUNITPRICE AS [InvoiceUnitPrice],
IUNITPRICETAXINC AS [InvoiceUnitPriceTaxInclusive],
IUNITPRICEFC AS [InvoiceUnitPriceForex],
FREQUENCY AS [Frequency] FROM VW_FACT_PURCHASES)
|
View: Analytics_PurchaseTransaction
Name | Analytics_PurchaseTransaction |
Note | |
Code | CREATE VIEW [dbo].[Analytics_PurchaseTransaction] AS (SELECT
BRANCHNAME AS [BranchName],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
STAFFNAME AS [StaffName],
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
AGE AS [AgePeriod],
YEARAGE AS [AgeYear],
PERIODNAME AS [PeriodName],
TRANSEQNO AS [TransactionSeqno],
TRANSTYPE AS [TransactionType],
INVNO AS [InvoiceNumber],
REF1 AS [Reference1],
REF2 AS [Reference2],
REF3 AS [Reference3],
PORDER AS [OrderNumber],
BRANCHNO AS [Branch],
SESSIONID AS [SessionID],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
DUEDATE AS [DueDate],
TRANSDATE AS [TransactionDate],
POSTTIME AS [DateTimeKeyed],
SALESNO AS [OrderedBy],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
PERIODID AS [PeriodID],
PTNO AS [PaymentType],
TAXNO AS [TaxRateNo],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
AVEDAYS AS [AccountAverageDays],
IQUANTITY AS [SalesQuantity],
IVALDISC AS [SalesDiscountValue],
IVAL AS [SalesValueTaxExclusive],
IVALTAX AS [SalesTaxValue],
IVALTAXINC AS [SalesValueTaxInclusive],
IVALUNALLOC AS [SalesValueUnallocated],
IVALFC AS [SalesValueForex],
IVALUNALLOCFC AS [SalesValueUnallocatedForex],
INUMLINES AS [InvoiceLinesCount],
IEXCHRATE AS [SalesExchangeRate],
IUNITPRICE AS [SalesUnitPrice],
IUNITPRICETAXINC AS [SalesUnitPriceTaxInclusive],
IUNITPRICEFC AS [SalesUnitPriceForex],
FREQUENCY AS [Frequency] FROM VW_FACT_PURCHTRANS)
|
View: Analytics_SaleInvoice
Name | Analytics_SaleInvoice |
Note | |
Code | CREATE VIEW [dbo].[Analytics_SaleInvoice] AS (SELECT
BRANCHNAME AS [BranchName],
BRANCHNAMEPHYS AS [BranchNamePhysical],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
ACCGROUPPNAME AS [AccountPriceGroupName],
STAFFNAME AS [StaffName],
STAFFNAMEPHYS AS [StaffNamePhysical],
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
AGE AS [AgePeriod],
YEARAGE AS [AgeYear],
PERIODNAME AS [PeriodName],
TRANSEQNO AS [TransactionSeqno],
TRANSTYPE AS [TransactionType],
INVNO AS [InvoiceNumber],
REF1 AS [Reference1],
REF2 AS [Reference2],
REF3 AS [Reference3],
SORDER AS [OrderNumber],
BRANCHNO AS [Branch],
SESSIONID AS [SessionID],
SHIFTNO AS [ShiftNumber],
TERMINALID AS [TerminalID],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
DUEDATE AS [DueDate],
TRANSDATE AS [TransactionDate],
POSTTIME AS [DateTimeKeyed],
SALESNO AS [SalesStaff],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
CUSTORDNO AS [Customer OrderNo],
REFERENCE AS [Our Reference],
PHYS_BRANCH AS [KeyedByBranch],
PHYS_STAFF AS [KeyedByStaff],
PERIODID AS [PeriodID],
PTNO AS [PaymentType],
TAXNO AS [TaxRateNo],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
ACCPRICEGROUP AS [AccountPriceGroup],
AVEDAYS AS [AccountAverageDays],
IQUANTITY AS [SalesQuantity],
ICOST AS [SalesCostValue],
IVALDISC AS [SalesDiscountValue],
IVAL AS [SalesValueTaxExclusive],
IVALTAX AS [SalesTaxValue],
IVALTAXINC AS [SalesValueTaxInclusive],
IVALUNALLOC AS [SalesValueUnallocated],
IVALFC AS [SalesValueForex],
IVALUNALLOCFC AS [SalesValueUnallocatedForex],
INUMLINES AS [InvoiceLinesCount],
IPROFIT AS [SalesProfit],
IMARKUPPC AS [SalesMarkupPercent],
IMARGINPC AS [SalesMarginPercent],
IEXCHRATE AS [SalesExchangeRate],
IUNITCOST AS [SalesUnitCost],
IUNITPRICE AS [SalesUnitPrice],
IUNITPRICETAXINC AS [SalesUnitPriceTaxInclusive],
IUNITPRICEFC AS [SalesUnitPriceForex],
FREQUENCY AS [Frequency] FROM VW_FACT_SALESTRANS WHERE TRANSTYPE = 1)
|
View: Analytics_SaleOrder
Name | Analytics_SaleOrder |
Note | |
Code | CREATE VIEW [dbo].[Analytics_SaleOrder] AS (SELECT
BRANCHNAME AS [BranchName],
BRANCHNAMEPHYS AS [BranchNamePhysical],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCNAME_SUPPLIER AS [SKU_SupplierAccountName],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
ACCGROUPPNAME AS [AccountPriceGroupName],
POLICYNAME AS [PolicyName],
STAFFNAME AS [StaffName],
STAFFNAMEPHYS AS [StaffNamePhysical],
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
LOCATIONNAME AS [LocationName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
STOCKGROUP1NAME AS [PLU_PrimaryStockGroupName],
STOCKGROUP2NAME AS [PLU_SecondaryStockGroupName],
STOCKGROUPPNAME AS [PLU_PriceGroupName],
BOMNAME AS [BillofMaterialsDescription],
PLU_NAME AS [PLU_Name],
SKU_NAME AS [SKU_Name],
SKU AS [SKU_StockKeepingItem],
SKU_DESCRIPTION AS [SKU_Description],
PLU AS [PLU_PriceLookupItem],
BOMCODE AS [BillofMaterials],
BRANCHNO AS [Branch],
LOCATION AS [Location],
TAXNO AS [TaxRateNo],
POLICYNO AS [AccountPricingPolicy],
BATCHCODE AS [StockBatchCode],
JOBCODE AS [JobCostingJobCode],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
BOMTYPE AS [BillofMaterialsType],
PRICEOVERRIDDEN AS [SellPriceOverridden],
ORDLINEID AS [OrderLineID],
SORDER AS [OrderNumber],
LINETYPE AS [LineType],
LINKEDITEM AS [LinkedItem],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
ORDSTATUS AS [OrderStatus],
SHIPCOMPLETE AS [ShipComplete],
ISCONFIRMED AS [Confirmed],
WAS_BACKORDERED AS [WasBackordered],
DUEDATE AS [DueDate],
ORDERDATE AS [OrderDate],
SALESNO AS [SalesStaff],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
CUSTORDNO AS [Customer OrderNo],
REFERENCE AS [Our Reference],
PHYS_BRANCH AS [KeyedByBranch],
PHYS_STAFF AS [KeyedByStaff],
PLU_DESCRIPTION AS [PriceLookupItemDescription],
STOCKGROUP AS [PLU_PrimaryStockGroup],
STOCKGROUP2 AS [PLU_SecondaryStockGroup],
STOCKPRICEGROUP AS [PLU_PriceGroup],
SIZEID AS [PLU_Size],
COLOURID AS [PLU_Colour],
SKU_ISACTIVE AS [SKU_Active],
SKU_STATUS AS [SKU_Type],
SKU_BN AS [SKU_HasBatchcodes],
SKU_SN AS [HasSerialNumbers],
SKU_SUPPLIERNO AS [SKU_Supplier],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
ACCPRICEGROUP AS [AccountPriceGroup],
AVEDAYS AS [AccountAverageDays],
OQUANTITY AS [OrderQuantity],
OCOST AS [OrderCostValue],
OVALDISC AS [OrderDiscountValue],
OVAL AS [OrderValueTaxExclusive],
OVALLIST AS [OrderValueAtListPrice],
OVALTAX AS [OrderTaxValue],
OVALTAXINC AS [OrderValueTaxInclusive],
OVALFC AS [OrderValueForex],
OPROFIT AS [OrderProfit],
OMARKUPPC AS [OrderMarkupPercent],
OMARGINPC AS [OrderMarginPercent],
OEXCHRATE AS [OrderExchangeRate],
OUNITCOST AS [OrderUnitCost],
OUNITPRICE AS [OrderUnitPrice],
OUNITPRICETAXINC AS [OrderUnitPriceTaxInclusive],
OUNITPRICEFC AS [OrderUnitPriceForex],
OUNSUPPLIED AS [UnsuppliedQuantity],
OUNINVOICED AS [UninvoicedQuantity],
OBACKORDERED AS [BackorderQuantity],
OCOSTPENDING AS [OrderCostPending],
OVALPENDING AS [OrderValuePending],
DELIVERYCOUNT AS [CountDelivery],
INVOICECOUNT AS [CountInvoice],
WORKDAYS AS [WorkingDays],
FREQUENCY AS [Frequency] FROM VW_FACT_SALESORD)
|
View: Analytics_SaleProduct
Name | Analytics_SaleProduct |
Note | |
Code | CREATE VIEW [dbo].[Analytics_SaleProduct] AS (SELECT
BRANCHNAME AS [BranchName],
BRANCHNAMEPHYS AS [BranchNamePhysical],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCNAME_SUPPLIER AS [SKU_SupplierAccountName],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
ACCGROUPPNAME AS [AccountPriceGroupName],
POLICYNAME AS [PolicyName],
STAFFNAME AS [StaffName],
STAFFNAMEPHYS AS [StaffNamePhysical],
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
LOCATIONNAME AS [LocationName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
AGE AS [AgePeriod],
YEARAGE AS [AgeYear],
PERIODNAME AS [PeriodName],
STOCKGROUP1NAME AS [PLU_PrimaryStockGroupName],
STOCKGROUP2NAME AS [PLU_SecondaryStockGroupName],
STOCKGROUPPNAME AS [PLU_PriceGroupName],
BOMNAME AS [BillofMaterialsDescription],
PLU_NAME AS [PLU_Name],
SKU_NAME AS [SKU_Name],
SKU AS [SKU_StockKeepingItem],
SKU_DESCRIPTION AS [SKUDescription],
PLU AS [PLU_PriceLookupItem],
BOMCODE AS [BillofMaterials],
BRANCHNO AS [Branch],
LOCATION AS [Location],
TAXNO AS [TaxRateNo],
POLICYNO AS [AccountPricingPolicy],
BATCHCODE AS [StockBatchCode],
JOBCODE AS [JobCostingJobCode],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
BOMTYPE AS [BillofMaterialsType],
PRICEOVERRIDDEN AS [SellPriceOverridden],
INVLINEID AS [InvoiceLineID],
LINETYPE AS [LineType],
LINKEDITEM AS [LinkedItem],
TRANSEQNO AS [TransactionSeqno],
INVNO AS [InvoiceNumber],
REF1 AS [Reference1],
REF2 AS [Reference2],
REF3 AS [Reference3],
SESSIONID AS [SessionID],
SHIFTNO AS [ShiftNumber],
TERMINALID AS [TerminalID],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
DUEDATE AS [DueDate],
TRANSDATE AS [TransactionDate],
POSTTIME AS [DateTimeKeyed],
SALESNO AS [SalesStaff],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
CUSTORDNO AS [Customer OrderNo],
REFERENCE AS [Our Reference],
PHYS_BRANCH AS [KeyedByBranch],
PHYS_STAFF AS [KeyedByStaff],
PERIODID AS [PeriodID],
PTNO AS [PaymentType],
PAYNAME AS [PaymentTypeName],
PLU_DESCRIPTION AS [PriceLookupItemDescription],
STOCKGROUP AS [PLU_PrimaryStockGroup],
STOCKGROUP2 AS [PLU_SecondaryStockGroup],
STOCKPRICEGROUP AS [PLU_PriceGroup],
SIZEID AS [PLU_Size],
COLOURID AS [PLU_Colour],
SKU_ISACTIVE AS [SKU_Active],
SKU_STATUS AS [SKU_Type],
SKU_BN AS [SKU_HasBatchcodes],
SKU_SN AS [HasSerialNumbers],
SKU_SUPPLIERNO AS [SKU_Supplier],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
ACCPRICEGROUP AS [AccountPriceGroup],
AVEDAYS AS [AccountAverageDays],
IQUANTITY AS [InvoiceQuantity],
ICOST AS [InvoiceCostValue],
IVALDISC AS [InvoiceDiscountValue],
IVAL AS [InvoiceValueTaxExclusive],
IVALLIST AS [InvoiceValueAtListPrice],
IVALTAX AS [InvoiceTaxValue],
IVALTAXINC AS [InvoiceValueTaxInclusive],
IVALFC AS [InvoiceValueForex],
IPROFIT AS [InvoiceProfit],
IMARKUPPC AS [InvoiceMarkupPercent],
IMARGINPC AS [InvoiceMarginPercent],
IEXCHRATE AS [InvoiceExchangeRate],
IUNITCOST AS [InvoiceUnitCost],
IUNITPRICE AS [InvoiceUnitPrice],
IUNITPRICETAXINC AS [InvoiceUnitPriceTaxInclusive],
IUNITPRICEFC AS [InvoiceUnitPriceForex],
FREQUENCY AS [Frequency] FROM VW_FACT_SALES)
|
View: Analytics_SaleTransaction
Name | Analytics_SaleTransaction |
Note | |
Code | CREATE VIEW [dbo].[Analytics_SaleTransaction] AS (SELECT
BRANCHNAME AS [BranchName],
BRANCHNAMEPHYS AS [BranchNamePhysical],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_SALES AS [AccountNameAnalysis],
ACCNAME_BRANCH AS [AccountNameBranch],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
ACCGROUPPNAME AS [AccountPriceGroupName],
STAFFNAME AS [StaffName],
STAFFNAMEPHYS AS [StaffNamePhysical],
GLCODE AS [GeneralLedgerCode],
GLACCNAME AS [GeneralLedgerAccountName],
GLSUBACCNAME AS [GeneralLedgerSubAccountName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
AGE AS [AgePeriod],
YEARAGE AS [AgeYear],
PERIODNAME AS [PeriodName],
TRANSEQNO AS [TransactionSeqno],
TRANSTYPE AS [TransactionType],
INVNO AS [InvoiceNumber],
REF1 AS [Reference1],
REF2 AS [Reference2],
REF3 AS [Reference3],
SORDER AS [OrderNumber],
BRANCHNO AS [Branch],
SESSIONID AS [SessionID],
SHIFTNO AS [ShiftNumber],
TERMINALID AS [TerminalID],
ACCNO AS [AccountNumberKeyed],
ACCNO_SALES AS [AccountNumberAnalysis],
ACCNO_BRANCH AS [AccountNumberBranch],
DUEDATE AS [DueDate],
TRANSDATE AS [TransactionDate],
POSTTIME AS [DateTimeKeyed],
SALESNO AS [SalesStaff],
CONTACTNO AS [Contact],
CURRENCYNO AS [AccountCurrency],
CUSTORDNO AS [Customer OrderNo],
REFERENCE AS [Our Reference],
PHYS_BRANCH AS [KeyedByBranch],
PHYS_STAFF AS [KeyedByStaff],
PERIODID AS [PeriodID],
PTNO AS [PaymentType],
TAXNO AS [TaxRateNo],
GLACCNO AS [GeneralLedgerAccount],
GLSUBACC AS [GeneralLedgerSubAccount],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
ACCPRICEGROUP AS [AccountPriceGroup],
AVEDAYS AS [AccountAverageDays],
IQUANTITY AS [SalesQuantity],
ICOST AS [SalesCostValue],
IVALDISC AS [SalesDiscountValue],
IVAL AS [SalesValueTaxExclusive],
IVALTAX AS [SalesTaxValue],
IVALTAXINC AS [SalesValueTaxInclusive],
IVALUNALLOC AS [SalesValueUnallocated],
IVALFC AS [SalesValueForex],
IVALUNALLOCFC AS [SalesValueUnallocatedForex],
INUMLINES AS [InvoiceLinesCount],
IPROFIT AS [SalesProfit],
IMARKUPPC AS [SalesMarkupPercent],
IMARGINPC AS [SalesMarginPercent],
IEXCHRATE AS [SalesExchangeRate],
IUNITCOST AS [SalesUnitCost],
IUNITPRICE AS [SalesUnitPrice],
IUNITPRICETAXINC AS [SalesUnitPriceTaxInclusive],
IUNITPRICEFC AS [SalesUnitPriceForex],
FREQUENCY AS [Frequency] FROM VW_FACT_SALESTRANS)
|
View: Analytics_Supplier
Name | Analytics_Supplier |
Note | |
Code | CREATE VIEW [dbo].[Analytics_Supplier] AS (SELECT
BRANCHNAME AS [BranchName],
ACCNAME_ENTERED AS [AccountNameKeyed],
ACCNAME_HEAD AS [AccountNameHeadOffice],
ACCGROUP1NAME AS [AccountPrimaryGroupName],
ACCGROUP2NAME AS [AccountSecondaryGroupName],
STAFFNAME AS [StaffName],
CURRENCYNAME AS [CurrencyName],
CURRENCYCODE AS [CurrencyCode],
TAXNAME AS [TaxName],
PAYNAME AS [PaymentTypeName],
TERMSNAME AS [TermsName],
CONTACTNAME AS [ContactName],
ACCNO AS [AccountNumberKeyed],
ACCNO_HEAD AS [AccountNumberHeadOffice],
ACCALPHA AS [AccountAlphaCode],
POSTCODE AS [PostCode],
SALESNO AS [Manager],
BRANCHNO AS [Branch],
CURRENCYNO AS [AccountCurrency],
TAXNO AS [TaxRateNo],
ACCISACTIVE AS [AccountActive],
ACCGROUP AS [AccountPrimaryGroup],
ACCGROUP2 AS [AccountSecondaryGroup],
ACCTERMS AS [AccountTerms],
ACCSTOPCRED AS [AccountStopCredit],
ACCPRIVATE AS [AccountPrivate],
ACCLASTUPDATE AS [AccountLastUpdate],
CONTACTNO AS [Contact],
BALFC3 AS [ClosingBalance3MonthsForex],
BALFC2 AS [ClosingBalance2MonthsForex],
BALFC1 AS [ClosingBalance1MonthForex],
BALFC0 AS [ClosingBalanceCurrentForex],
BALFCTOT AS [ClosingBalanceTotalForex],
BALPRIORFC3 AS [PriorBalance3MonthsForex],
BALPRIORFC2 AS [PriorBalance2MonthsForex],
BALPRIORFC1 AS [PriorBalance1MonthForex],
BALPRIORFC0 AS [PriorBalanceCurrentForex],
BALPRIORFCTOT AS [PriorBalanceTotalForex],
CREDLIMITFC AS [CreditLimitForex],
BAL3 AS [ClosingBalance3Months],
BAL2 AS [ClosingBalance2Months],
BAL1 AS [ClosingBalance1Month],
BAL0 AS [ClosingBalanceCurrent],
BALTOT AS [ClosingBalanceTotal],
BALPRIOR3 AS [PriorBalance3Months],
BALPRIOR2 AS [PriorBalance2Months],
BALPRIOR1 AS [PriorBalance1Month],
BALPRIOR0 AS [PriorBalanceCurrent],
BALPRIORTOT AS [PriorBalanceTotal],
CREDLIMIT AS [CreditLimit],
VALUELASTMONTH AS [ValueLastMonth],
VALUELASTYEAR AS [ValueLastYear],
VALUETHISMONTH AS [ValueThisMonth],
VALUETHISYEAR AS [ValueThisYear],
OVALPENDING AS [OrderValuePending],
LASTDATEINVOICED AS [LastDateInvoiced],
LASTDATEPAID AS [LastDatePaid],
AVEDAYS AS [AccountAverageDays] FROM VW_FACT_CREDITOR)
|
View: API_COMPANIES_VIEW
Name | API_COMPANIES_VIEW |
Note | |
Code | -- ============================================= -- Description: Companies view used by EXO API -- ============================================= CREATE VIEW [dbo].[API_COMPANIES_VIEW] (ACCNO, COMPANYNAME, PHONE, FAX, EMAIL, CONTACTNAME, SALESNO, CONTACT_SEQNO, ACCTYPE, COMPANYID, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, ADDRESS5, POST_CODE, DELADDR1, DELADDR2, DELADDR3, DELADDR4, DELADDR5, DELADDR6, NOTES, COMPANY_TYPE, WEBSITE, ISACTIVE, LATITUDE, LONGITUDE, GEOCODE_STATUS, ALPHACODE, ISPRIVATE, BALANCE, LAST_UPDATED) AS SELECT D.ACCNO, D.NAME, ISNULL(D.PHONE, '') AS PHONE, ISNULL(D.FAX, '') AS FAX, D.EMAIL, C.FULLNAME, D.SALESNO, DC.CONTACT_SEQNO, 1 ACCTYPE, 'D' + CONVERT(VARCHAR, D.ACCNO), D.ADDRESS1, D.ADDRESS2, D.ADDRESS3, D.ADDRESS4, ISNULL(D.ADDRESS5, '') AS ADDRESS5, D.POST_CODE, D.DELADDR1, D.DELADDR2, D.DELADDR3, D.DELADDR4, D.DELADDR5, ISNULL(D.DELADDR6, '') AS DELADDR6, CONVERT(VARCHAR(8000), D.NOTES), 'Debtor' [DESCRIPTION], ISNULL(D.WEBSITE, '') AS WEBSITE, D.ISACTIVE, D.LATITUDE, D.LONGITUDE, D.GEOCODE_STATUS, D.ALPHACODE, D.PRIVATE_ACC as ISPRIVATE, D.BALANCE, D.LAST_UPDATED FROM DR_ACCS D LEFT JOIN DR_CONTACTS DC ON D.ACCNO = DC.ACCNO AND DC.DEFCONTACT = 'Y' LEFT JOIN CONTACTS C ON DC.CONTACT_SEQNO = C.SEQNO UNION SELECT CR.ACCNO, CR.NAME, ISNULL(CR.PHONE, '') AS PHONE, ISNULL(CR.FAX, '') AS FAX, CR.EMAIL, C.FULLNAME, CR.SALESNO, CC.CONTACT_SEQNO, 2 ACCTYPE, 'C' + CONVERT(VARCHAR, CR.ACCNO), CR.ADDRESS1, CR.ADDRESS2, CR.ADDRESS3, CR.ADDRESS4, ISNULL(CR.ADDRESS5, '') AS ADDRESS5, CR.POST_CODE, CR.DELADDR1, CR.DELADDR2, CR.DELADDR3, CR.DELADDR4, CR.DELADDR5, ISNULL(CR.DELADDR6, '') AS DELADDR6, CONVERT(VARCHAR(8000), CR.NOTES), 'Creditor' [DESCRIPTION], ISNULL(CR.WEBSITE, '') AS WEBSITE, CR.ISACTIVE, CR.LATITUDE, CR.LONGITUDE, CR.GEOCODE_STATUS, CR.ALPHACODE, 'N' AS ISPRIVATE, CR.BALANCE, CR.LAST_UPDATED FROM CR_ACCS CR LEFT JOIN CR_CONTACTS CC ON CR.ACCNO = CC.ACCNO AND CC.DEFCONTACT = 'Y' LEFT JOIN CONTACTS C ON CC.CONTACT_SEQNO = C.SEQNO UNION SELECT P.SEQNO, P.NAME, ISNULL(P.PHONE, '') AS PHONE, ISNULL(P.FAX, '') AS FAX, P.EMAIL, C.FULLNAME, P.SALESNO, PC.CONTACT_SEQNO, 3 ACCTYPE, 'P' + CONVERT(VARCHAR, P.SEQNO) COMPANYID, P.ADDRESS1, P.ADDRESS2, P.ADDRESS3, P.ADDRESS4, ISNULL(P.ADDRESS5, '') AS ADDRESS5, P.POST_CODE, P.DELADDR1, P.DELADDR2, P.DELADDR3, P.DELADDR4, P.DELADDR5, ISNULL(P.DELADDR6, '') AS DELADDR6, CONVERT(VARCHAR(8000), P.NOTES), ISNULL(CT.DESCRIPTION, '-NOT DEFINED-'), ISNULL(P.WEBSITE, '') AS WEBSITE, P.ISACTIVE, P.LATITUDE, P.LONGITUDE, P.GEOCODE_STATUS, P.ALPHACODE, 'N' AS ISPRIVATE, 0.0, P.LAST_UPDATED FROM PROSPECTS P LEFT JOIN PROSPECT_CONTACTS PC ON P.SEQNO = PC.PROSPECT_SEQNO AND PC.DEFCONTACT = 'Y' LEFT JOIN CONTACTS C ON PC.CONTACT_SEQNO = C.SEQNO LEFT JOIN COMPANY_TYPES CT ON CT.SEQNO = P.PROSPECT_TYPE WHERE (P.DRACCNO < 0) AND (P.CRACCNO < 0)
|
View: API_TASKS_VIEW
Name | API_TASKS_VIEW |
Note | |
Code | -- ============================================= -- Description: Tasks view used by EXO API -- ============================================= CREATE VIEW [dbo].[API_TASKS_VIEW] AS SELECT TASKS.*, CASE WHEN (TASKS.EVENTTYPE=0 AND (TASKS.OPTIONS & 1)=1) THEN TASKS.END_DATETIME-1 WHEN (TASKS.EVENTTYPE=1 AND (TASKS.OPTIONS & 1)=1) THEN TASKS.ACTUALFINISH-1 WHEN (TASKS.EVENTTYPE=1 AND (TASKS.OPTIONS & 1)<>1) THEN TASKS.END_DATETIME ELSE TASKS.END_DATETIME END END_DATETIME_FOR_DISPLAY, COMPANIES.COMPANYNAME, COMPANIES.ALPHACODE, COMPANIES.PHONE COMPANY_PHONE, COMPANIES.LATITUDE COMPANY_LATITUDE, COMPANIES.LONGITUDE COMPANY_LONGITUDE, COMPANIES.EMAIL COMPANY_EMAIL, C.FULLNAME CONTACTNAME, C.MOBILE CONTACT_MOBILE, C.DIRECTPHONE CONTACT_DIRECTPHONE, C.DIRECTFAX CONTACT_DIRECTFAX, C.HOMEPHONE CONTACT_HOMEPHONE, C.EMAIL CONTACT_EMAIL, C.LATITUDE CONTACT_LATITUDE, C.LONGITUDE CONTACT_LONGITUDE, TASK_TYPES.DESCRIPTION TASK_TYPE, TASK_STATUSES.DESCRIPTION TASK_STATUS, STAFF_1.NAME CREATED_BY_STAFF, STAFF_2.NAME ASSIGNED_TO_STAFF, STAFF_3.NAME ASSIGNED_BY_STAFF, STAFF_4.NAME MODIFIED_BY_STAFF, SO.CUSTORDERNO, PO.REFERENCE PO_REFERENCE, AR.ASSETCODE, AR.ASSETNAME, AR.DESCRIPTION ASSET_DESCRIPTION FROM TASKS LEFT JOIN API_COMPANIES_VIEW COMPANIES ON TASKS.COMPANYID=COMPANIES.COMPANYID LEFT JOIN CONTACTS C ON TASKS.CONTACTSEQNO = C.SEQNO LEFT JOIN TASK_TYPES ON TASKS.TYPE=TASK_TYPES.SEQNO LEFT JOIN TASK_STATUSES ON TASKS.STATUS=TASK_STATUSES.SEQNO LEFT JOIN STAFF STAFF_1 ON TASKS.CREATEDBY=STAFF_1.STAFFNO LEFT JOIN STAFF STAFF_2 ON TASKS.ASSIGNED_TO=STAFF_2.STAFFNO LEFT JOIN STAFF STAFF_3 ON TASKS.ASSIGNED_BY=STAFF_3.STAFFNO LEFT JOIN STAFF STAFF_4 ON TASKS.MODIFIEDBY=STAFF_4.STAFFNO LEFT JOIN SALESORD_HDR SO ON TASKS.SO_SEQNO = SO.SEQNO LEFT JOIN PURCHORD_HDR PO ON TASKS.PO_SEQNO = PO.SEQNO LEFT JOIN ASSET_REG AR ON TASKS.ASSET_SEQNO = AR.ASSETNO
|
View: BANKFEEDS_MATCHED_TRANSACTIONS
Name | BANKFEEDS_MATCHED_TRANSACTIONS |
Note | |
Code | CREATE VIEW [dbo].[BANKFEEDS_MATCHED_TRANSACTIONS] AS SELECT T.BANKFEED_BANKACCOUNT_SEQNO, X.* FROM BANKFEEDS_TRANSACTIONS T INNER JOIN
( SELECT BL.TRANSACTION_SEQNO, DR.SEQNO, DR.TRANSDATE, DR.REF1 AS REFERENCE, DR.INVNO, 'DR' AS SOURCE, DR.AMOUNT, DR.NAME, ACCNO, 0 SUBACCNO, 0 BRANCHNO FROM DR_TRANS DR INNER JOIN BANKFEEDS_TRANSACTION_LINK BL ON (BL.SOURCE = 'DR' AND BL.SOURCE_SEQNO = DR.SEQNO AND BL.STATUS = 'A') UNION
SELECT BL.TRANSACTION_SEQNO, CR.SEQNO, CR.TRANSDATE, CR.REF1 AS REFERENCE, CR.INVNO, 'CR' AS SOURCE, CR.AMOUNT, NAME, ACCNO, 0 SUBACCNO, 0 BRANCHNO FROM CR_TRANS CR INNER JOIN BANKFEEDS_TRANSACTION_LINK BL ON (BL.SOURCE = 'CR' AND BL.SOURCE_SEQNO = CR.SEQNO AND BL.STATUS = 'A')
UNION
SELECT BL.TRANSACTION_SEQNO, GL.SEQNO, GL.TRANSDATE, GL.CHQNO AS REFERENCE, GL.INVNO, 'GL' AS SOURCE, GL.AMOUNT, GL.DETAILS AS NAME, ACCNO, SUBACCNO, BRANCHNO FROM GLTRANS GL INNER JOIN BANKFEEDS_TRANSACTION_LINK BL ON (BL.SOURCE = 'GL' AND BL.SOURCE_SEQNO = GL.SEQNO AND BL.STATUS = 'A')
) X ON T.SEQNO = X.TRANSACTION_SEQNO
|
View: COMPANIES
Name | COMPANIES |
Note | |
Code | CREATE VIEW [dbo].[COMPANIES](ACCNO, COMPANYNAME, PHONE, FAX, EMAIL, CONTACTNAME, SALESNO, CONTACT_SEQNO, ACCTYPE, COMPANYID, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, ADDRESS5, POST_CODE, DELADDR1, DELADDR2, DELADDR3, DELADDR4, DELADDR5, DELADDR6, NOTES, COMPANY_TYPE, WEBSITE, ISACTIVE , ALPHACODE ) AS SELECT D.ACCNO, D.NAME, ISNULL(D.PHONE, '') AS PHONE, ISNULL(D.FAX, '') AS FAX, D.EMAIL, C.FULLNAME, D.SALESNO, DC.CONTACT_SEQNO, 1 ACCTYPE, 'D' + CONVERT(VARCHAR, D.ACCNO), D.ADDRESS1, D.ADDRESS2, D.ADDRESS3, D.ADDRESS4, ISNULL(D.ADDRESS5, '') AS ADDRESS5, D.POST_CODE, D.DELADDR1, D.DELADDR2, D.DELADDR3, D.DELADDR4, D.DELADDR5, ISNULL(D.DELADDR6, '') AS DELADDR6, CONVERT(VARCHAR(8000), D.NOTES), 'Debtor' [DESCRIPTION], ISNULL(D.WEBSITE, '') AS WEBSITE, D.ISACTIVE , D.ALPHACODE FROM DR_ACCS D LEFT JOIN DR_CONTACTS DC ON D.ACCNO = DC.ACCNO AND DC.DEFCONTACT = 'Y' LEFT JOIN CONTACTS C ON DC.CONTACT_SEQNO = C.SEQNO UNION SELECT CR.ACCNO, CR.NAME, ISNULL(CR.PHONE, '') AS PHONE, ISNULL(CR.FAX, '') AS FAX, CR.EMAIL, C.FULLNAME, CR.SALESNO, CC.CONTACT_SEQNO, 2 ACCTYPE, 'C' + CONVERT(VARCHAR, CR.ACCNO), CR.ADDRESS1, CR.ADDRESS2, CR.ADDRESS3, CR.ADDRESS4, ISNULL(CR.ADDRESS5, '') AS ADDRESS5, CR.POST_CODE, CR.DELADDR1, CR.DELADDR2, CR.DELADDR3, CR.DELADDR4, CR.DELADDR5, ISNULL(CR.DELADDR6, '') AS DELADDR6, CONVERT(VARCHAR(8000), CR.NOTES), 'Creditor' [DESCRIPTION], ISNULL(CR.WEBSITE, '') AS WEBSITE, CR.ISACTIVE , CR.ALPHACODE FROM CR_ACCS CR LEFT JOIN CR_CONTACTS CC ON CR.ACCNO = CC.ACCNO AND CC.DEFCONTACT = 'Y' LEFT JOIN CONTACTS C ON CC.CONTACT_SEQNO = C.SEQNO UNION SELECT P.SEQNO, P.NAME, ISNULL(P.PHONE, '') AS PHONE, ISNULL(P.FAX, '') AS FAX, P.EMAIL, C.FULLNAME, P.SALESNO, PC.CONTACT_SEQNO, 3 ACCTYPE, 'P' + CONVERT(VARCHAR, P.SEQNO) COMPANYID, P.ADDRESS1, P.ADDRESS2, P.ADDRESS3, P.ADDRESS4, ISNULL(P.ADDRESS5, '') AS ADDRESS5, P.POST_CODE, P.DELADDR1, P.DELADDR2, P.DELADDR3, P.DELADDR4, P.DELADDR5, ISNULL(P.DELADDR6, '') AS DELADDR6, CONVERT(VARCHAR(8000), P.NOTES), ISNULL(CT.DESCRIPTION, '-NOT DEFINED-'), ISNULL(P.WEBSITE, '') AS WEBSITE, P.ISACTIVE , P.ALPHACODE FROM PROSPECTS P LEFT JOIN PROSPECT_CONTACTS PC ON P.SEQNO = PC.PROSPECT_SEQNO AND PC.DEFCONTACT = 'Y' LEFT JOIN CONTACTS C ON PC.CONTACT_SEQNO = C.SEQNO LEFT JOIN COMPANY_TYPES CT ON CT.SEQNO = P.PROSPECT_TYPE WHERE (P.DRACCNO < 0) AND (P.CRACCNO < 0)
|
View: CONTACTS_VIEW
Name | CONTACTS_VIEW |
Note | |
Code | CREATE VIEW [dbo].[CONTACTS_VIEW] AS (SELECT C.*, S.NAME AS SALESNAME, AT.DESCRIPTION AS ADVERT_NAME, 1 MARKETING_CLASSES FROM CONTACTS C LEFT JOIN STAFF S ON C.SALESNO = S.STAFFNO LEFT JOIN ADVERT_TYPES AT ON C.ADVERTSOURCE = AT.SEQNO)
|
View: CR_BESTSELLERS_VW
Name | CR_BESTSELLERS_VW |
Note | |
Code | CREATE VIEW [dbo].[CR_BESTSELLERS_VW] AS SELECT [NAME], C.ACCNO, ST.STOCKCODE, S.[DESCRIPTION], QUANTITY, AVEPRICE, TOTALSALE FROM CR_ACCS C LEFT JOIN (SELECT STOCKCODE, ABS(SUM(QUANTITY)) AS QUANTITY, AVG(UNITPRICE) AS AVEPRICE, (ABS(SUM(QUANTITY)) * AVG(ISNULL(UNITPRICE, 0))) AS TOTALSALE, ACCNO FROM STOCK_TRANS GROUP BY ACCNO, STOCKCODE) ST ON C.ACCNO = ST.ACCNO JOIN STOCK_ITEMS S ON ST.STOCKCODE = S.STOCKCODE WHERE ST.QUANTITY > 0
|
View: CR_REF_SEARCH_VW
Name | CR_REF_SEARCH_VW |
Note | |
Code | CREATE VIEW [dbo].[CR_REF_SEARCH_VW] AS
SELECT * FROM ( (SELECT 'CR_TRANS' AS TABLENAME, 'INVNO' AS FIELD_NAME, CONVERT(VARCHAR, INVNO) AS VALUE, SEQNO, INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, BRANCHNO, POSTTIME, ALLOCATEDBAL , ACCNO FROM CR_TRANS) UNION (SELECT 'CR_TRANS' AS TABLENAME, 'REF1' AS FIELD_NAME, CONVERT(VARCHAR, REF1) AS VALUE, SEQNO, INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, BRANCHNO, POSTTIME, ALLOCATEDBAL , ACCNO FROM CR_TRANS) UNION (SELECT 'CR_TRANS' AS TABLENAME, 'REF2' AS FIELD_NAME, CONVERT(VARCHAR, REF2) AS VALUE, SEQNO, INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, BRANCHNO, POSTTIME, ALLOCATEDBAL , ACCNO FROM CR_TRANS) UNION (SELECT 'CR_TRANS' AS TABLENAME, 'REF3' AS FIELD_NAME, CONVERT(VARCHAR, REF3) AS VALUE, SEQNO, INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, BRANCHNO, POSTTIME, ALLOCATEDBAL , ACCNO FROM CR_TRANS) UNION (SELECT 'CR_TRANS' AS TABLENAME, 'NAME' AS FIELD_NAME, CONVERT(VARCHAR, [NAME]) AS VALUE, SEQNO, INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, BRANCHNO, POSTTIME, ALLOCATEDBAL , ACCNO FROM CR_TRANS) UNION (SELECT 'CR_TRANS' AS TABLENAME, 'AMOUNT' AS FIELD_NAME, CONVERT(VARCHAR, AMOUNT) AS VALUE, SEQNO, INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, BRANCHNO, POSTTIME, ALLOCATEDBAL , ACCNO FROM CR_TRANS) UNION (SELECT 'CR_TRANS' AS TABLENAME, 'NARRATIVE' AS FIELD_NAME, CONVERT(VARCHAR, NARRATIVE) AS VALUE, D.SEQNO, INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, BRANCHNO, POSTTIME, ALLOCATEDBAL , ACCNO FROM CR_TRANS D JOIN NARRATIVES N ON D.NARRATIVE_SEQNO = N.SEQNO) UNION (SELECT 'CR_INVLINE' AS TABLENAME, 'STOCKCODE' AS FIELD_NAME, CONVERT(VARCHAR, STOCKCODE) AS VALUE, D.SEQNO, D.INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, D.BRANCHNO, POSTTIME, ALLOCATEDBAL , D.ACCNO FROM CR_INVLINES DI JOIN CR_TRANS D ON DI.HDR_SEQNO = D.SEQNO) UNION (SELECT 'CR_INVLINE' AS TABLENAME, 'DESCRIPTION' AS FIELD_NAME, CONVERT(VARCHAR, [DESCRIPTION]) AS VALUE, D.SEQNO, D.INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, D.BRANCHNO, POSTTIME, ALLOCATEDBAL , D.ACCNO FROM CR_INVLINES DI JOIN CR_TRANS D ON DI.HDR_SEQNO = D.SEQNO) UNION (SELECT 'CR_INVLINE' AS TABLENAME, 'LINKED_STOCKCODE' AS FIELD_NAME, CONVERT(VARCHAR, LINKED_STOCKCODE) AS VALUE, D.SEQNO, D.INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, D.BRANCHNO, POSTTIME, D.ALLOCATEDBAL , D.ACCNO FROM CR_INVLINES DI JOIN CR_TRANS D ON DI.HDR_SEQNO = D.SEQNO) UNION (SELECT 'CR_INVLINES' AS TABLENAME, 'NARRATIVE' AS FIELD_NAME, CONVERT(VARCHAR, NARRATIVE) AS VALUE, D.SEQNO, D.INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, D.BRANCHNO, POSTTIME, D.ALLOCATEDBAL , D.ACCNO FROM CR_INVLINES DI JOIN CR_TRANS D ON DI.HDR_SEQNO = D.SEQNO JOIN NARRATIVES N ON DI.NARRATIVE_SEQNO = N.SEQNO) UNION (SELECT 'PURCHORD_LINE' AS TABLENAME, 'PO_NUMBER' AS FIELD_NAME, CONVERT(VARCHAR, IGL.PO_NUMBER) AS VALUE, C.SEQNO, C.INVNO, TRANSDATE, TRANSTYPE, SUBTOTAL, TAXTOTAL, C.BRANCHNO, POSTTIME, C.ALLOCATEDBAL , C.ACCNO FROM CR_INVLINES CI JOIN INWARDS_GOODS_LINES IGL ON CI.IGRLINESEQNO = IGL.SEQNO JOIN CR_TRANS C ON CI.HDR_SEQNO = C.SEQNO) ) DATASET JOIN (SELECT ACCNO AS CACCNO, NAME, ALPHACODE FROM CR_ACCS) C ON DATASET.ACCNO = C.CACCNO WHERE LEN(ISNULL(VALUE, '')) > 0
|
View: CR_TRANS_PERIOD_SUMMARY_VW
Name | CR_TRANS_PERIOD_SUMMARY_VW |
Note | |
Code | CREATE VIEW [dbo].[CR_TRANS_PERIOD_SUMMARY_VW] AS SELECT TOP 100 PERCENT CR_TRANS.ACCNO, CR_ACCS.NAME, PERIOD_STATUS.PERIOD_SHORTNAME, PERIOD_STATUS.AGE, PERIOD_STATUS.PERIODNAME, CASE WHEN (SUM(CR_TRANS.SUBTOTAL) > 0) AND (TRANSTYPE = 1) THEN SUM(CR_TRANS.SUBTOTAL / CR_TRANS.EXCHRATE) ELSE 0 END AS INVOICES, CASE WHEN (SUM(CR_TRANS.SUBTOTAL) > 0) AND (TRANSTYPE = 1) THEN SUM(CR_TRANS.TAXTOTAL / CR_TRANS.EXCHRATE) ELSE 0 END AS INVOICEGST, CASE WHEN (SUM(CR_TRANS.SUBTOTAL) < 0) AND (TRANSTYPE = 1) THEN SUM(CR_TRANS.SUBTOTAL / CR_TRANS.EXCHRATE) ELSE 0 END AS CREDITS, CASE WHEN (SUM(CR_TRANS.SUBTOTAL) < 0) AND (TRANSTYPE = 1) THEN SUM(CR_TRANS.TAXTOTAL / CR_TRANS.EXCHRATE) ELSE 0 END AS CREDITGST, CASE WHEN (SUM(AMOUNT) < 0) AND (TRANSTYPE = 4) THEN SUM(CR_TRANS.AMOUNT / CR_TRANS.EXCHRATE) ELSE 0 END AS RECEIPTS, CASE WHEN (SUM(AMOUNT) > 0) AND (TRANSTYPE = 4) THEN SUM(CR_TRANS.AMOUNT / CR_TRANS.EXCHRATE) ELSE 0 END AS REFUNDS, CASE WHEN (SUM(AMOUNT) < 0) AND (TRANSTYPE = 5) THEN SUM(CR_TRANS.AMOUNT / CR_TRANS.EXCHRATE) ELSE 0 END AS CRADJUST, CASE WHEN (SUM(AMOUNT) > 0) AND (TRANSTYPE = 5) THEN SUM(CR_TRANS.AMOUNT / CR_TRANS.EXCHRATE) ELSE 0 END AS DRADJUST, SUM(amount) AS amount FROM dbo.CR_TRANS CR_TRANS LEFT OUTER JOIN dbo.PERIOD_STATUS PERIOD_STATUS ON (PERIOD_STATUS.SEQNO = CR_TRANS.PERIOD_SEQNO) INNER JOIN dbo.CR_ACCS CR_ACCS ON (CR_ACCS.ACCNO = CR_TRANS.ACCNO) WHERE (PERIOD_STATUS.LEDGER = 'C') GROUP BY CR_TRANS.ACCNO, PERIOD_STATUS.AGE, PERIOD_STATUS.PERIOD_SHORTNAME, PERIOD_STATUS.PERIODNAME, CR_TRANS.EXCHRATE, CR_ACCS.NAME, transtype ORDER BY CR_TRANS.ACCNO, PERIOD_STATUS.AGE, PERIOD_STATUS.PERIODNAME, PERIOD_STATUS.PERIOD_SHORTNAME, CR_ACCS.NAME
|
View: DR_BESTSELLERS_VW
Name | DR_BESTSELLERS_VW |
Note | |
Code | CREATE VIEW [dbo].[DR_BESTSELLERS_VW] AS SELECT [NAME], D.ACCNO, ST.STOCKCODE, S.[DESCRIPTION], QUANTITY, AVEPRICE, TOTALSALE FROM DR_ACCS D LEFT JOIN (SELECT STOCKCODE, ABS(SUM(QUANTITY)) AS QUANTITY, AVG(UNITPRICE) AS AVEPRICE, (ABS(SUM(QUANTITY)) * AVG(ISNULL(UNITPRICE, 0))) AS TOTALSALE, ACCNO FROM STOCK_TRANS GROUP BY ACCNO, STOCKCODE) ST ON D.ACCNO = ST.ACCNO JOIN STOCK_ITEMS S ON ST.STOCKCODE = S.STOCKCODE WHERE ST.QUANTITY > 0
|
View: DR_REF_SEARCH_VW
Name | DR_REF_SEARCH_VW |
Note | |
Code | CREATE VIEW [dbo].[DR_REF_SEARCH_VW] AS SELECT DATASET.*, DA.ACCNO AS DACCNO, DA.NAME, DA.ALPHACODE FROM ( SELECT 'DR_TRANS' AS TABLENAME, 'INVNO' AS FIELD_NAME, CONVERT(VARCHAR, INVNO) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'REF1' AS FIELD_NAME, CONVERT(VARCHAR, REF1) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'REF2' AS FIELD_NAME, CONVERT(VARCHAR, REF2) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS WHERE REF2 <> '' UNION
SELECT 'DR_TRANS' AS TABLENAME, 'REF3' AS FIELD_NAME, CONVERT(VARCHAR, REF3) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'NAME' AS FIELD_NAME, CONVERT(VARCHAR, [NAME]) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'DELIVADDR1' AS FIELD_NAME, CONVERT(VARCHAR, DELIVADDR1) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'DELIVADDR2' AS FIELD_NAME, CONVERT(VARCHAR, DELIVADDR2) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'DELIVADDR3' AS FIELD_NAME, CONVERT(VARCHAR, DELIVADDR3) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'DELIVADDR4' AS FIELD_NAME, CONVERT(VARCHAR, DELIVADDR4) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'AMOUNT' AS FIELD_NAME, CONVERT(VARCHAR, AMOUNT) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS
UNION
SELECT 'DR_TRANS' AS TABLENAME, 'NARRATIVE' AS FIELD_NAME, CONVERT(VARCHAR, NARRATIVE) AS VALUE, D.SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_TRANS D INNER JOIN NARRATIVES N ON D.NARRATIVE_SEQNO = N.SEQNO
UNION
SELECT 'DR_INVLINES' AS TABLENAME, 'STOCKCODE' AS FIELD_NAME, CONVERT(VARCHAR, STOCKCODE) AS VALUE, D.SEQNO, CONVERT(VARCHAR, D.INVNO) AS INVNO, D.ACCNO, D.TRANSDATE, D.TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, D.BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, D.ALLOCATEDBAL FROM DR_INVLINES DI INNER JOIN DR_TRANS D ON DI.HDR_SEQNO = D.SEQNO
UNION
SELECT 'DR_INVLINES' AS TABLENAME, 'DESCRIPTION' AS FIELD_NAME, CONVERT(VARCHAR, [DESCRIPTION]) AS VALUE, D.SEQNO, CONVERT(VARCHAR, D.INVNO) AS INVNO, D.ACCNO, D.TRANSDATE, D.TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, D.BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, D.ALLOCATEDBAL FROM DR_INVLINES DI INNER JOIN DR_TRANS D ON DI.HDR_SEQNO = D.SEQNO
UNION
SELECT 'DR_INVLINES' AS TABLENAME, 'LINKED_STOCKCODE' AS FIELD_NAME, CONVERT(VARCHAR, LINKED_STOCKCODE) AS VALUE, D.SEQNO, CONVERT(VARCHAR, D.INVNO) AS INVNO, D.ACCNO, D.TRANSDATE, D.TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, D.BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, D.ALLOCATEDBAL FROM DR_INVLINES DI INNER JOIN DR_TRANS D ON DI.HDR_SEQNO = D.SEQNO
UNION
SELECT 'DR_INVLINES' AS TABLENAME, 'NARRATIVE' AS FIELD_NAME, CONVERT(VARCHAR, NARRATIVE) AS VALUE, D.SEQNO, CONVERT(VARCHAR, D.INVNO) AS INVNO, D.ACCNO, D.TRANSDATE, D.TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, D.BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, D.ALLOCATEDBAL FROM DR_INVLINES DI INNER JOIN DR_TRANS D ON DI.HDR_SEQNO = D.SEQNO INNER JOIN NARRATIVES N ON DI.NARRATIVE_SEQNO = N.SEQNO
UNION
SELECT 'DR_ACCS' AS TABLENAME, 'BANK_ACCOUNT' AS FIELD_NAME, CONVERT(VARCHAR, REPLACE(REPLACE(BANK_ACCOUNT, '-', ''), ' ', '')) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, DT.ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, DT.BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_ACCS DA LEFT JOIN DR_TRANS DT ON DA.ACCNO = DT.ACCNO
UNION
SELECT 'DR_ACCS' AS TABLENAME, 'ACCNAME' AS FIELD_NAME, CONVERT(VARCHAR, DA.NAME) AS VALUE, SEQNO, CONVERT(VARCHAR, INVNO) AS INVNO, DT.ACCNO, TRANSDATE, TRANSTYPE, EFTCAID, EFTAUTH, EFTSTAN, SUBTOTAL, TAXTOTAL, DT.BRANCHNO, SESSION_ID, GATEWAYNO, POSTTIME, ALLOCATEDBAL FROM DR_ACCS DA LEFT JOIN DR_TRANS DT ON DA.ACCNO = DT.ACCNO
) DATASET INNER JOIN DR_ACCS DA ON DATASET.ACCNO = DA.ACCNO WHERE VALUE <> ''
|
View: DR_TRANS_PERIOD_SUMMARY_VW
Name | DR_TRANS_PERIOD_SUMMARY_VW |
Note | |
Code | CREATE VIEW [dbo].[DR_TRANS_PERIOD_SUMMARY_VW] AS SELECT TOP 100 PERCENT DR_TRANS.ACCNO, DR_ACCS.NAME, PERIOD_STATUS.PERIOD_SHORTNAME, PERIOD_STATUS.AGE, PERIOD_STATUS.PERIODNAME, CASE WHEN (sum(DR_TRANS.SUBTOTAL) > 0) AND (TRANSTYPE = 1) THEN sum(DR_TRANS.SUBTOTAL / DR_TRANS.EXCHRATE) ELSE 0 END AS INVOICES, CASE WHEN (sum(DR_TRANS.SUBTOTAL) > 0) AND (TRANSTYPE = 1) THEN sum(DR_TRANS.TAXTOTAL / DR_TRANS.EXCHRATE) ELSE 0 END AS INVOICEGST, CASE WHEN (sum(DR_TRANS.SUBTOTAL) < 0) AND (TRANSTYPE = 1) THEN sum(DR_TRANS.SUBTOTAL / DR_TRANS.EXCHRATE) ELSE 0 END AS CREDITS, CASE WHEN (sum(DR_TRANS.SUBTOTAL) < 0) AND (TRANSTYPE = 1) THEN sum(DR_TRANS.TAXTOTAL / DR_TRANS.EXCHRATE) ELSE 0 END AS CREDITGST, CASE WHEN (sum(AMOUNT) < 0) AND (TRANSTYPE = 4) THEN sum(DR_TRANS.AMOUNT / DR_TRANS.EXCHRATE) ELSE 0 END AS RECEIPTS, CASE WHEN (sum(AMOUNT) > 0) AND (TRANSTYPE = 4) THEN sum(DR_TRANS.AMOUNT / DR_TRANS.EXCHRATE) ELSE 0 END AS REFUNDS, CASE WHEN (sum(AMOUNT) < 0) AND (TRANSTYPE = 5) THEN sum(DR_TRANS.AMOUNT / DR_TRANS.EXCHRATE) ELSE 0 END AS CRADJUST, CASE WHEN (sum(AMOUNT) > 0) AND (TRANSTYPE = 5) THEN sum(DR_TRANS.AMOUNT / DR_TRANS.EXCHRATE) ELSE 0 END AS DRADJUST, sum(amount) as amount
FROM dbo.DR_TRANS DR_TRANS LEFT OUTER JOIN dbo.PERIOD_STATUS PERIOD_STATUS ON (PERIOD_STATUS.SEQNO = DR_TRANS.PERIOD_SEQNO) INNER JOIN dbo.DR_ACCS DR_ACCS ON (DR_ACCS.ACCNO = DR_TRANS.ACCNO)
WHERE (PERIOD_STATUS.LEDGER = 'D')
GROUP BY DR_TRANS.ACCNO, PERIOD_STATUS.AGE, PERIOD_STATUS.PERIOD_SHORTNAME, PERIOD_STATUS.PERIODNAME, DR_TRANS.EXCHRATE, DR_ACCS.NAME, transtype
ORDER BY DR_TRANS.ACCNO, PERIOD_STATUS.AGE, PERIOD_STATUS.PERIODNAME, PERIOD_STATUS.PERIOD_SHORTNAME, DR_ACCS.NAME
|
View: GL_BRANCH_VW
Name | GL_BRANCH_VW |
Note | |
Code | CREATE VIEW [dbo].[GL_BRANCH_VW] AS SELECT BRANCHES.BRANCHNO, BRANCHES.BRANCHNAME, BRANCHES.BCODE, GLSUBACCS.ACCNO, GLSUBACCS.SUBACCNO, GLSUBACCS.NAME, GLSUBACCS.REPORTCODE FROM BRANCHES CROSS JOIN GLSUBACCS
|
View: JC_QuoteActuals_VW
Name | JC_QuoteActuals_VW |
Note | |
Code | CREATE VIEW [dbo].[JC_QuoteActuals_VW] AS SELECT TOP 100 PERCENT ISNULL(JOB_COSTGROUPS.COSTDESC, 'Unassigned Cost Group') AS costgroup, ISNULL(JOB_COSTGROUPS.SHORTCODE, '-') AS groupshort, ISNULL(JOB_COSTTYPES.COSTDESC, 'Unassigned Cost Type') AS costtype, ISNULL(JOB_COSTTYPES.SHORTCODE, '-') AS typeshort, JOBCOST_LINES.JOBNO, CASE jobcost_lines.BOMTYPE WHEN 'K' THEN SUM(jobcost_lines.total_quantity * jobcost_lines.Hidden_cost) ELSE SUM(jobcost_lines.total_quantity * jobcost_lines.actual_unitcost) END AS budget, CASE jobcost_lines.BOMTYPE WHEN 'K' THEN SUM((jobcost_lines.Hidden_sell / jobcost_lines.exchrate) * jobcost_lines.total_quantity) ELSE SUM((jobcost_lines.quote_unitpr / jobcost_lines.exchrate) * jobcost_lines.total_quantity) END AS quote, CASE job_transactions.BOMTYPE WHEN 'K' THEN SUM(job_transactions.quantity * job_transactions.Hidden_cost) ELSE SUM(job_transactions.quantity * job_transactions.unitcost) END AS costprice, CASE job_transactions.BOMTYPE WHEN 'K' THEN SUM((job_transactions.Hidden_sell / job_transactions.exchrate) * job_transactions.quantity) ELSE SUM((job_transactions.unitprice / job_transactions.exchrate) * job_transactions.quantity) END AS Sellingprice FROM dbo.JOB_TRANSACTIONS AS JOB_TRANSACTIONS INNER JOIN dbo.JOBCOST_LINES AS JOBCOST_LINES ON JOBCOST_LINES.SEQNO = JOB_TRANSACTIONS.SOURCE_SEQNO LEFT OUTER JOIN dbo.JOB_COSTGROUPS AS JOB_COSTGROUPS ON JOB_COSTGROUPS.SEQNO = JOB_TRANSACTIONS.COST_GROUP LEFT OUTER JOIN dbo.JOB_COSTTYPES AS JOB_COSTTYPES ON JOB_COSTTYPES.SEQNO = JOB_TRANSACTIONS.COST_TYPE WHERE (JOB_TRANSACTIONS.SOURCE_SEQNO <> - 1) AND (JOB_TRANSACTIONS.PROGRESSINVOICE <> 'Y') AND (JOB_TRANSACTIONS.LINE_SOURCE = 'Q') AND (JOB_TRANSACTIONS.LINETYPE <> 2) GROUP BY JOBCOST_LINES.JOBNO, JOB_COSTGROUPS.COSTDESC, JOB_COSTGROUPS.SHORTCODE, JOB_COSTTYPES.COSTDESC, JOB_COSTTYPES.SHORTCODE, JOBCOST_LINES.BOMTYPE, JOB_TRANSACTIONS.BOMTYPE ORDER BY JOBCOST_LINES.JOBNO, JOB_COSTGROUPS.COSTDESC, JOB_COSTGROUPS.SHORTCODE, JOB_COSTTYPES.COSTDESC, JOB_COSTTYPES.SHORTCODE
|
View: JC_QuoteCost_Stockcode_VW
Name | JC_QuoteCost_Stockcode_VW |
Note | |
Code | CREATE VIEW [dbo].[JC_QuoteCost_Stockcode_VW] AS SELECT TOP 100 PERCENT JL.STOCKCODE, ISNULL(JL.COST_CENTRE2, 0) AS COSTGROUPNO, ISNULL(JL.COST_CENTRE, 0) AS COSTTYPENO, ISNULL(CG.COSTDESC, 'Unassigned Cost Group') AS costgroup, ISNULL(CG.SHORTCODE, '-') AS groupshort, ISNULL(CT.COSTDESC, 'Unassigned Cost Type') AS costtype, ISNULL(CT.SHORTCODE, '-') AS typeshort, JL.JOBNO, CASE JL.BOMTYPE WHEN 'K' THEN JL.HIDDEN_COST * JL.TOTAL_QUANTITY ELSE JL.ACTUAL_UNITCOST * JL.TOTAL_QUANTITY END AS QuoteCost, CASE JL.BOMTYPE WHEN 'K' THEN (JL.HIDDEN_SELL / JL.EXCHRATE) * JL.TOTAL_QUANTITY ELSE (JL.QUOTE_UNITPR / JL.EXCHRATE) * JL.TOTAL_QUANTITY END AS QuoteSell, 0 AS ActualCost, 0 AS ActualSell FROM dbo.JOBCOST_LINES AS JL LEFT OUTER JOIN dbo.JOB_COSTGROUPS AS CG ON CG.SEQNO = JL.COST_CENTRE2 LEFT OUTER JOIN dbo.JOB_COSTTYPES AS CT ON CT.SEQNO = JL.COST_CENTRE LEFT OUTER JOIN dbo.JOB_QUOTE_OPTIONS AS JQ ON JQ.JOBNO = JL.JOBNO AND JQ.OPTION_NO = JL.OPTION_NO WHERE (JL.LINETYPE <> 2) AND (JQ.OPTION_SELECTED = 'Y' OR JL.OPTION_NO=0) UNION ALL SELECT TOP 100 PERCENT JT.STOCKCODE, ISNULL(JT.COST_GROUP, 0) AS COSTGROUPNO, ISNULL(JT.COST_TYPE, 0) AS COSTTYPENO, ISNULL(CG.COSTDESC, 'Unassigned Cost Group') AS costgroup, ISNULL(CG.SHORTCODE, '-') AS groupshort, ISNULL(CT.COSTDESC, 'Unassigned Cost Type') AS costtype, ISNULL(CT.SHORTCODE, '-') AS typeshort, JT.JOBNO, 0 AS QuoteCost, 0 AS QuoteSell, CASE JT.BOMTYPE WHEN 'K' THEN JT.HIDDEN_COST * JT.QUANTITY ELSE JT.UNITCOST * JT.QUANTITY END AS ActualCost, CASE JT.BOMTYPE WHEN 'K' THEN (JT.HIDDEN_SELL / JT.EXCHRATE) * JT.QUANTITY ELSE (JT.UNITPRICE / JT.EXCHRATE) * JT.QUANTITY END AS ActualSell FROM dbo.JOB_TRANSACTIONS AS JT LEFT OUTER JOIN dbo.JOB_COSTGROUPS AS CG ON CG.SEQNO = JT.COST_GROUP LEFT OUTER JOIN dbo.JOB_COSTTYPES AS CT ON CT.SEQNO = JT.COST_TYPE WHERE (JT.LINETYPE <> 2) AND (JT.PROGRESSINVOICE <> 'Y')
|
View: OPPORTUNITIES_VIEW
Name | OPPORTUNITIES_VIEW |
Note | |
Code | CREATE VIEW [dbo].[OPPORTUNITIES_VIEW] AS SELECT OPPORTUNITY_TYPE.DESCRIPTION OPP_TYPE, OPPORTUNITY_LEAD.DESCRIPTION OPP_LEAD, OPPORTUNITY_STAGE.DESCRIPTION OPP_STAGE, COMPANIES.COMPANYNAME, COMPANIES.ALPHACODE, CONTACTS.FULLNAME CONTACTNAME, STAFF_A.NAME ASSIGNED_TO_STAFF, STAFF_B.NAME ASSIGNED_BY_STAFF, CASE WHEN OPPORTUNITY.AMOUNT <> 0 THEN OPPORTUNITY.AMOUNT ELSE OPPORTUNITY.ESTIMATE END AS PIPELINE_VALUE, CASE WHEN OPPORTUNITY.AMOUNT <> 0 THEN OPPORTUNITY.WEIGHTED_VALUE ELSE OPPORTUNITY.WEIGHTED_ESTIMATE END AS WEIGTHED_PIPELINE_VALUE, OPPORTUNITY_STAGE.ISCOMPLETE AS COMPLETED, OPPORTUNITY_STAGE.ISARCHIVED AS ARCHIVED, OPPORTUNITY_STAGE.ISACTIVE AS ISACTIVE, OPPORTUNITY.* FROM OPPORTUNITY LEFT JOIN OPPORTUNITY_TYPE ON OPPORTUNITY_TYPE.SEQNO=OPPORTUNITY.OPPORTUNITY_TYPE LEFT JOIN OPPORTUNITY_LEAD ON OPPORTUNITY_LEAD.SEQNO=OPPORTUNITY.OPPORTUNITY_LEAD LEFT JOIN OPPORTUNITY_STAGE ON OPPORTUNITY_STAGE.SEQNO=OPPORTUNITY.OPPORTUNITY_STAGE LEFT JOIN COMPANIES ON OPPORTUNITY.COMPANYID=COMPANIES.COMPANYID LEFT JOIN CONTACTS ON CONTACTS.SEQNO=OPPORTUNITY.CONTACTSEQNO LEFT JOIN STAFF STAFF_A ON OPPORTUNITY.ASSIGNED_TO=STAFF_A.STAFFNO LEFT JOIN STAFF STAFF_B ON OPPORTUNITY.ASSIGNED_BY=STAFF_B.STAFFNO
|
View: PREVIOUS_ITEMS_VIEW
Name | PREVIOUS_ITEMS_VIEW |
Note | |
Code | CREATE VIEW [dbo].[PREVIOUS_ITEMS_VIEW] AS SELECT *, CASE ENTITYTYPE WHEN 0 THEN (SELECT FULLNAME FROM CONTACTS C WHERE C.SEQNO = PI.ENTITYID) WHEN 1 THEN (SELECT NAME FROM DR_ACCS A WHERE A.ACCNO = PI.ENTITYID) WHEN 2 THEN (SELECT NAME FROM CR_ACCS C WHERE C.ACCNO = PI.ENTITYID) WHEN 3 THEN (SELECT NAME FROM PROSPECTS P WHERE P.SEQNO = PI.ENTITYID) WHEN 4 THEN (SELECT DESCRIPTION FROM OPPORTUNITY O WHERE O.SEQNO = PI.ENTITYID) WHEN 5 THEN (SELECT SUBJECT FROM TASKS T WHERE T.SEQNO = PI.ENTITYID) WHEN 6 THEN (SELECT NAME FROM STAFF S WHERE S.STAFFNO = PI.ENTITYID) WHEN 7 THEN (SELECT ASSETNAME FROM ASSET_REG R WHERE R.ASSETNO = PI.ENTITYID) END AS CAPTION FROM PREVIOUS_ITEMS PI
|
View: STAFF_SALES_MONTHYEAR_VIEW
Name | STAFF_SALES_MONTHYEAR_VIEW |
Note | |
Code | CREATE VIEW [dbo].[STAFF_SALES_MONTHYEAR_VIEW] AS SELECT ASSIGNED_TO STAFFNO , ASSIGNED_TO_STAFF STAFFNAME, YEAR(DUE_DATE) THE_YEAR, MONTH(DUE_DATE) THE_MONTH, SUM(AMOUNT) SALES_AMOUNT FROM OPPORTUNITIES_VIEW GROUP BY ASSIGNED_TO, ASSIGNED_TO_STAFF, YEAR(DUE_DATE), MONTH(DUE_DATE)
|
View: STOCK_TRANS_SERIALS_VIEW
Name | STOCK_TRANS_SERIALS_VIEW |
Note | |
Code | CREATE VIEW [dbo].[STOCK_TRANS_SERIALS_VIEW] AS SELECT STS.SERIALNO, ST.* FROM STOCK_TRANS_SERIALS STS LEFT JOIN STOCK_TRANS ST ON STS.STOCKTRANSSEQNO=ST.SEQNO
|
View: TASKS_VIEW
Name | TASKS_VIEW |
Note | |
Code | CREATE VIEW [dbo].[TASKS_VIEW] AS SELECT TASKS.*, CASE WHEN (TASKS.EVENTTYPE=0 AND (TASKS.OPTIONS & 1)=1) THEN TASKS.END_DATETIME-1 WHEN (TASKS.EVENTTYPE=1 AND (TASKS.OPTIONS & 1)=1) THEN TASKS.ACTUALFINISH-1 WHEN (TASKS.EVENTTYPE=1 AND (TASKS.OPTIONS & 1)<>1) THEN TASKS.END_DATETIME ELSE TASKS.END_DATETIME END END_DATETIME_FOR_DISPLAY, COMPANIES.COMPANYNAME, COMPANIES.ALPHACODE, CONTACTS.FULLNAME CONTACTNAME, TASK_TYPES.DESCRIPTION TASK_TYPE, TASK_STATUSES.DESCRIPTION TASK_STATUS, STAFF_A.NAME ASSIGNED_TO_STAFF, STAFF_B.NAME ASSIGNED_BY_STAFF, SO.CUSTORDERNO, PO.REFERENCE PO_REFERENCE, AR.ASSETCODE, AR.ASSETNAME, AR.DESCRIPTION ASSET_DESCRIPTION FROM TASKS LEFT JOIN COMPANIES ON TASKS.COMPANYID=COMPANIES.COMPANYID LEFT JOIN CONTACTS ON TASKS.CONTACTSEQNO=CONTACTS.SEQNO LEFT JOIN TASK_TYPES ON TASKS.TYPE=TASK_TYPES.SEQNO LEFT JOIN TASK_STATUSES ON TASKS.STATUS=TASK_STATUSES.SEQNO LEFT JOIN STAFF STAFF_A ON TASKS.ASSIGNED_TO=STAFF_A.STAFFNO LEFT JOIN STAFF STAFF_B ON TASKS.ASSIGNED_BY=STAFF_B.STAFFNO LEFT JOIN SALESORD_HDR SO ON TASKS.SO_SEQNO = SO.SEQNO LEFT JOIN PURCHORD_HDR PO ON TASKS.PO_SEQNO = PO.SEQNO LEFT JOIN ASSET_REG AR ON TASKS.ASSET_SEQNO = AR.ASSETNO
|
View: vwPRICE_SELECT
Name | vwPRICE_SELECT |
Note | |
Code | CREATE VIEW [dbo].[vwPRICE_SELECT] AS (SELECT STOCKCODE, 1 AS PRICENO, SELLPRICE1 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 2 AS PRICENO, SELLPRICE2 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 3 AS PRICENO, SELLPRICE3 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 4 AS PRICENO, SELLPRICE4 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 5 AS PRICENO, SELLPRICE5 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 6 AS PRICENO, SELLPRICE6 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 7 AS PRICENO, SELLPRICE7 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 8 AS PRICENO, SELLPRICE8 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 9 AS PRICENO, SELLPRICE9 AS SELLPRICE FROM STOCK_ITEMS) UNION ALL (SELECT STOCKCODE, 10 AS PRICENO, SELLPRICE10 AS SELLPRICE FROM STOCK_ITEMS)
|
View: VW_ACTIVITYTYPEFORCUST
Name | VW_ACTIVITYTYPEFORCUST |
Note | |
Code | CREATE VIEW [dbo].[VW_ACTIVITYTYPEFORCUST] AS SELECT TASKS_VIEW.ACTIVITY_TYPE, TASKS_VIEW.COMPANYNAME, TASKS_VIEW.COMPANYID, TASKS_VIEW.START_DATETIME, isnull(case when ACTIVITY_TYPE= 0 then COUNT(*) end, 0) AS TotalAppointment, isnull(case when ACTIVITY_TYPE= 1 then COUNT(*) end, 0) AS TotalTask FROM TASKS_VIEW TASKS_VIEW WHERE SUBSTRING(COMPANYID, 1, 1)='D' GROUP BY TASKS_VIEW.ACTIVITY_TYPE, TASKS_VIEW.COMPANYNAME, TASKS_VIEW.START_DATETIME, TASKS_VIEW.COMPANYID
|
View: VW_ACTIVITY_PIPELINE
Name | VW_ACTIVITY_PIPELINE |
Note | |
Code | CREATE VIEW [dbo].[VW_ACTIVITY_PIPELINE] AS select SUBSTRING(COMPANYID, 2, (LEN(COMPANYID))) As ActivityAccNo, SUBSTRING(COMPANYID, 1, 1) As ActivityCompanyType, TASKS.* from TASKS
|
View: VW_CAMPAIGN_SUMMARY
Name | VW_CAMPAIGN_SUMMARY |
Note | |
Code | CREATE VIEW [dbo].[VW_CAMPAIGN_SUMMARY] AS WITH -- Campaign Details CTE_CAMP (CAMPAIGN_SEQNO, CAMPAIGN_TITLE, CAMPAIGN_REFERENCE , CAMPAIGN_DESCRIPTION, CAMPAIGN_STARTDATE, CAMPAIGN_ENDDATE , ESTIMATED_COST, ESTIMATED_REVENUE, CAMPAIGN_STAGE , STAGE_DESCRIPTION, CAMPAIGN_OWNER, OWNER_NAME) AS (SELECT CA.SEQNO, CA.TITLE , CA.REFERENCE , CA.DESCRIPT, CA.STARTDATE, CA.ENDDATE , CA.EST_COST, CA.EST_REVENUE, CA.CAMPAIGN_STAGE , ST.DESCRIPT, CA.OWNER, STF.NAME FROM CAMPAIGN CA WITH (NOLOCK) LEFT JOIN CAMPAIGN_STAGE ST ON ST.SEQNO=CA.CAMPAIGN_STAGE LEFT JOIN STAFF STF ON STF.STAFFNO=CA.OWNER) , -- Campaign Relevant Summary CTE_SUMM (CAMPAIGN_SEQNO , TOTAL_TARGETS, TOTAL_ACTIVITIES, TOTAL_EMAILED , TOTAL_PRINTED, TOTAL_EXPORTLIST, TOTAL_EXECSQL_CONCURRENT , TOTAL_EXECSQL_CONSECUTIVE, TOTAL_EXTPROGRM_CONCURRENT, TOTAL_EXTPROGRM_CONSECUTIVE , TOTAL_SOCIAL_MEDIA_POSTING, TOTAL_OPPORTUNITIES, TOTAL_QUOTES , TOTAL_SALESORDER, TOTAL_INVOICES , TOTAL_JOBS , OPPORTUNITIES_AMOUNT, QUOTES_AMOUNT, SALESORDER_AMOUNT , INVOICES_AMOUNT, GROSS_PROFIT_AMOUNT , DIRECT_COST_AMOUNT ) AS (SELECT CA.SEQNO -- # OF TARGETS , ISNULL((SELECT COUNT(*) FROM CONTACT_LIST CL, CAMPAIGN_CONTACT_LISTS ID, CONTACT_LIST_ITEM TG, CONTACTS CT WHERE ID.CAMPAIGN_SEQNO=CA.SEQNO AND CL.SEQNO=ID.CONTACT_LIST_SEQNO AND TG.HDR_SEQNO=CL.SEQNO AND TG.ITEM_SEQNO=CT.SEQNO), 0) TOTAL_TARGETS -- # OF Instant/Bulk activities created , ISNULL((SELECT COUNT(*) FROM TASKS TA WHERE TA.CAMPAIGN_SEQNO=CA.SEQNO AND TA.DELETED_FLAG='N'), 0) TOTAL_ACTIVITIES -- # OF MailShot(1) Emailed , ISNULL((SELECT COUNT(*) FROM CAMPAIGN_WAVE_AUDIT WA, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND WA.CAMPAIGN_WAVE_SEQNO=CW.SEQNO AND WA.COMMUNICATION_METHOD=1 AND WA.EXECUTE_TYPE='EMAILED'), 0) TOTAL_EMAILED -- # OF MailShot(1) Printed , ISNULL((SELECT COUNT(*) FROM CAMPAIGN_WAVE_AUDIT WA, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND WA.CAMPAIGN_WAVE_SEQNO=CW.SEQNO AND WA.COMMUNICATION_METHOD=1 AND WA.EXECUTE_TYPE='PRINTED'), 0) TOTAL_PRINTED -- # OF Export List(5) , ISNULL((SELECT COUNT(*) FROM CAMPAIGN_WAVE_AUDIT WA, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND WA.CAMPAIGN_WAVE_SEQNO=CW.SEQNO AND WA.COMMUNICATION_METHOD=5), 0) TOTAL_EXPORTLIST -- # OF ExecSQL(3) Concurrently , ISNULL((SELECT COUNT(*) FROM CAMPAIGN_WAVE_AUDIT WA, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND WA.CAMPAIGN_WAVE_SEQNO=CW.SEQNO AND WA.COMMUNICATION_METHOD=3 AND WA.EXECUTE_TYPE='CONCURRENT'), 0) TOTAL_EXECSQL_CONCURRENT -- # OF ExecSQL(3) Consecutive , ISNULL((SELECT COUNT(*) FROM CAMPAIGN_WAVE_AUDIT WA, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND WA.CAMPAIGN_WAVE_SEQNO=CW.SEQNO AND WA.COMMUNICATION_METHOD=3 AND WA.EXECUTE_TYPE='CONSECUTIVE'), 0) TOTAL_EXECSQL_CONSECUTIVE -- # OF External Program(6) Concurrently , ISNULL((SELECT COUNT(*) FROM CAMPAIGN_WAVE_AUDIT WA, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND WA.CAMPAIGN_WAVE_SEQNO=CW.SEQNO AND WA.COMMUNICATION_METHOD=6 AND WA.EXECUTE_TYPE='CONCURRENT'), 0) TOTAL_EXTPROGRM_CONCURRENT -- # OF External Program(6) Consecutive , ISNULL((SELECT COUNT(*) FROM CAMPAIGN_WAVE_AUDIT WA, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND WA.CAMPAIGN_WAVE_SEQNO=CW.SEQNO AND WA.COMMUNICATION_METHOD=6 AND WA.EXECUTE_TYPE='CONSECUTIVE'), 0) TOTAL_EXTPROGRM_CONSECUTIVE -- # OF Social Media Posting , ISNULL((SELECT SUM(CASE WHEN CW.FACEBOOK_POST_ID IS NULL THEN 0 ELSE 1 END + CASE WHEN CW.TWITTER_POST_ID IS NULL THEN 0 ELSE 1 END + CASE WHEN CW.LINKEDIN_POST_DATE IS NULL THEN 0 ELSE 1 END) FROM CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND CW.COMMUNICATION_METHOD=4), 0) TOTAL_SOCIAL_MEDIA_POSTING -- # OF OPPORTUNITIES , ISNULL((SELECT COUNT(*) FROM OPPORTUNITY OP, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND OP.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) TOTAL_OPPORTUNITIES -- # OF QUOTES , ISNULL((SELECT COUNT(*) FROM SALESORD_HDR QO, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND QO.STATUS=3 AND QO.PROCESSFINALISATION=0 AND QO.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) TOTAL_QUOTES -- # OF SALES ORDERS (NOT PROCESSED ORDER, PARTLY PROCESSED/BACK ORDER, FULLY PROCESSED ORDER) , ISNULL((SELECT COUNT(*) FROM SALESORD_HDR SO, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND SO.STATUS IN (0, 1, 2) AND SO.PROCESSFINALISATION=0 AND SO.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) TOTAL_SALESORDER -- # OF INVOICES , ISNULL((SELECT COUNT(*) FROM VW_FACT_SALESTRANS IV, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND IV.TRANSTYPE=1 AND IV.IVAL > 0 AND IV.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) TOTAL_INVOICES --# OF JOBS , ISNULL((SELECT COUNT(*) FROM JOBCOST_HDR JH, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND JH.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) TOTAL_JOBS --$ OF OPPORTUNITIES , ISNULL((SELECT SUM(ROUND(ISNULL(OP.AMOUNT, 0)/(CASE WHEN ISNULL(OP.EXCHRATE, 0)=0 THEN 1 ELSE OP.EXCHRATE END), 4)) FROM OPPORTUNITY OP, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND OP.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) OPPORTUNITIES_AMOUNT --$ OF QUOTES , ISNULL((SELECT SUM(ISNULL(QO.LOCALVALUE, 0)) FROM SALESORD_HDR QO, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND QO.STATUS=3 AND QO.PROCESSFINALISATION=0 AND QO.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) QUOTES_AMOUNT --$ OF SALES ORDERS (NOT PROCESSED ORDER, PARTLY PROCESSED/BACK ORDER, FULLY PROCESSED ORDER) , ISNULL((SELECT SUM(ISNULL(SO.LOCALVALUE, 0)) FROM SALESORD_HDR SO, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND SO.STATUS IN (0, 1, 2) AND SO.PROCESSFINALISATION=0 AND SO.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) SALESORDER_AMOUNT --$ OF INVOICES , ISNULL((SELECT SUM(ROUND(ISNULL(IV.IVAL, 0), 4)) FROM VW_FACT_SALESTRANS IV, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND IV.TRANSTYPE=1 AND IV.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) INVOICES_AMOUNT --$ OF GROSS PROFIT , ISNULL((SELECT SUM(ISNULL(IV.IPROFIT, 0)) FROM VW_FACT_SALESTRANS IV, CAMPAIGN_WAVE CW WHERE CW.CAMPAIGN_SEQNO=CA.SEQNO AND IV.TRANSTYPE=1 AND IV.CAMPAIGN_WAVE_SEQNO=CW.SEQNO), 0) GROSS_PROFIT_AMOUNT --$ OF ACTUAL/DIRECT COST , ISNULL((SELECT SUM(ISNULL(JH.TOTALCOST, 0)) FROM JOBCOST_HDR JH WHERE JH.JOBNO=CA.JOB_LINK), 0) DIRECT_COST_AMOUNT FROM CAMPAIGN CA WITH (NOLOCK) ) -- The Actual Campaign Summary with formula SELECT CAMP.CAMPAIGN_SEQNO, CAMP.CAMPAIGN_TITLE, CAMP.CAMPAIGN_REFERENCE , CAMP.CAMPAIGN_DESCRIPTION, CAMP.CAMPAIGN_STARTDATE, CAMP.CAMPAIGN_ENDDATE , CAMP.ESTIMATED_COST, CAMP.ESTIMATED_REVENUE, CAMP.CAMPAIGN_STAGE , CAMP.STAGE_DESCRIPTION, CAMP.CAMPAIGN_OWNER, CAMP.OWNER_NAME , SUMM.TOTAL_TARGETS, SUMM.TOTAL_ACTIVITIES, SUMM.TOTAL_EMAILED , SUMM.TOTAL_PRINTED, SUMM.TOTAL_EXPORTLIST, SUMM.TOTAL_EXECSQL_CONCURRENT , SUMM.TOTAL_EXECSQL_CONSECUTIVE, SUMM.TOTAL_EXTPROGRM_CONCURRENT, SUMM.TOTAL_EXTPROGRM_CONSECUTIVE , SUMM.TOTAL_SOCIAL_MEDIA_POSTING, SUMM.TOTAL_OPPORTUNITIES, SUMM.TOTAL_QUOTES , SUMM.TOTAL_SALESORDER, SUMM.TOTAL_INVOICES , SUMM.TOTAL_JOBS , SUMM.OPPORTUNITIES_AMOUNT, SUMM.QUOTES_AMOUNT, SUMM.SALESORDER_AMOUNT , SUMM.INVOICES_AMOUNT, SUMM.GROSS_PROFIT_AMOUNT , SUMM.DIRECT_COST_AMOUNT , CASE WHEN ((ISNULL(SUMM.DIRECT_COST_AMOUNT, 0)=0) AND (ISNULL(SUMM.GROSS_PROFIT_AMOUNT, 0)=0)) THEN 0 WHEN ((ISNULL(SUMM.DIRECT_COST_AMOUNT, 0)=0) AND (ISNULL(SUMM.GROSS_PROFIT_AMOUNT, 0)<>0)) THEN 100 ELSE ROUND(ISNULL(SUMM.GROSS_PROFIT_AMOUNT, 0) / ISNULL(SUMM.DIRECT_COST_AMOUNT, 0) * 100, 2) END AS ACTUAL_ROI , ISNULL(SUMM.TOTAL_ACTIVITIES, 0) + ISNULL(SUMM.TOTAL_EMAILED, 0) + ISNULL(SUMM.TOTAL_PRINTED, 0) + ISNULL(SUMM.TOTAL_EXPORTLIST, 0) + ISNULL(SUMM.TOTAL_EXECSQL_CONCURRENT, 0) + ISNULL(SUMM.TOTAL_EXECSQL_CONSECUTIVE, 0) + ISNULL(SUMM.TOTAL_EXTPROGRM_CONCURRENT, 0) + ISNULL(SUMM.TOTAL_EXTPROGRM_CONSECUTIVE, 0) + ISNULL(SUMM.TOTAL_SOCIAL_MEDIA_POSTING, 0) AS TOTAL_OUTBOUND FROM CTE_CAMP CAMP LEFT JOIN CTE_SUMM SUMM ON SUMM.CAMPAIGN_SEQNO=CAMP.CAMPAIGN_SEQNO
|
View: VW_COMPANY_PIPELINE
Name | VW_COMPANY_PIPELINE |
Note | |
Code | CREATE VIEW [dbo].[VW_COMPANY_PIPELINE] AS select SUBSTRING(COMPANYID, 2, (LEN(COMPANYID))) As ActivityAccNo, SUBSTRING(COMPANYID, 1, 1) As ActivityCompanyType, COMPANIES.COMPANYID from COMPANIES
|
View: VW_CRM_ACTUAL_SALES
Name | VW_CRM_ACTUAL_SALES |
Note | |
Code | CREATE VIEW [dbo].[VW_CRM_ACTUAL_SALES] AS select ACCNO, ACCGROUP, ACCGROUP2, SKU as STOCKCODE, IVAL as LINETOTAL, PERIODID as PERIOD_SEQNO, STOCKGROUP, STOCKGROUP2, SALESNO, TRANSDATE, BRANCHNO from VW_FACT_SALES
|
View: VW_CRM_LYACTUAL_SALES
Name | VW_CRM_LYACTUAL_SALES |
Note | |
Code | CREATE VIEW [dbo].[VW_CRM_LYACTUAL_SALES] AS select ACCNO, ACCGROUP, ACCGROUP2, SKU as STOCKCODE, IVAL as LINETOTAL, PERIODID as PERIOD_SEQNO, STOCKGROUP, STOCKGROUP2, SALESNO, TRANSDATE, BRANCHNO from VW_FACT_SALES
|
View: VW_CR_ATB_BY_DUEDATE
Name | VW_CR_ATB_BY_DUEDATE |
Note | |
Code | CREATE VIEW [dbo].[VW_CR_ATB_BY_DUEDATE] AS
SELECT C.ACCNO, AGEDBALM90D = CONVERT(MONEY, ISNULL(AGEM3.SUMAGEBAL, 0)), AGEDBALM60D = CONVERT(MONEY, ISNULL(AGEM2.SUMAGEBAL, 0)), AGEDBALM30D = CONVERT(MONEY, ISNULL(AGEM1.SUMAGEBAL, 0)), AGEDBALCURRENT = CONVERT(MONEY, ISNULL(AGE0.SUMAGEBAL, 0)), AGEDBAL30D = CONVERT(MONEY, ISNULL(AGE1.SUMAGEBAL, 0)), AGEDBAL60D = CONVERT(MONEY, ISNULL(AGE2.SUMAGEBAL, 0)), AGEDBAL90D = CONVERT(MONEY, ISNULL(AGE3.SUMAGEBAL, 0)), TOTAL = CONVERT(MONEY, ISNULL(AGEM3.SUMAGEBAL, 0) + ISNULL(AGEM2.SUMAGEBAL, 0) + ISNULL(AGEM1.SUMAGEBAL, 0) + ISNULL(AGE0.SUMAGEBAL, 0) + ISNULL(AGE1.SUMAGEBAL, 0) + ISNULL(AGE2.SUMAGEBAL, 0) + ISNULL(AGE3.SUMAGEBAL, 0)), CU.CURRCODE AS CURRENCY, CU.BUYRATE FROM CR_ACCS C LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM CR_ACCS A LEFT JOIN CR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED < 2 WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) < 30 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) > -30 GROUP BY A.ACCNO) AGE0 ON C.ACCNO = AGE0.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM CR_ACCS A LEFT JOIN CR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) <= -30 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) > -60 GROUP BY A.ACCNO) AGE1 ON C.ACCNO = AGE1.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM CR_ACCS A LEFT JOIN CR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) <= -60 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) > -90 GROUP BY A.ACCNO, T.AGE) AGE2 ON C.ACCNO = AGE2.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) SUMAGEBAL FROM CR_ACCS A LEFT JOIN CR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) <= -90 GROUP BY A.ACCNO) AGE3 ON C.ACCNO = AGE3.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM CR_ACCS A LEFT JOIN CR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) >= 30 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) < 60 GROUP BY A.ACCNO) AGEM1 ON C.ACCNO = AGEM1.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM CR_ACCS A LEFT JOIN CR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) >= 60 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) < 90 GROUP BY A.ACCNO, T.AGE) AGEM2 ON C.ACCNO = AGEM2.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM CR_ACCS A LEFT JOIN CR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) >= 90 GROUP BY A.ACCNO) AGEM3 ON C.ACCNO = AGEM3.ACCNO LEFT JOIN CURRENCIES CU ON C.CURRENCYNO = CU.CURRENCYNO GROUP BY C.ACCNO, AGEM1.SUMAGEBAL, AGEM2.SUMAGEBAL, AGEM3.SUMAGEBAL, AGE0.SUMAGEBAL, AGE1.SUMAGEBAL, AGE2.SUMAGEBAL, AGE3.SUMAGEBAL, CU.CURRCODE, CU.BUYRATE
|
View: VW_DR_ATB_BY_DUEDATE
Name | VW_DR_ATB_BY_DUEDATE |
Note | |
Code | CREATE VIEW [dbo].[VW_DR_ATB_BY_DUEDATE] AS
SELECT D.ACCNO, AGEDBALM90D = CONVERT(MONEY, ISNULL(AGEM3.SUMAGEBAL, 0)), AGEDBALM60D = CONVERT(MONEY, ISNULL(AGEM2.SUMAGEBAL, 0)), AGEDBALM30D = CONVERT(MONEY, ISNULL(AGEM1.SUMAGEBAL, 0)), AGEDBALCURRENT = CONVERT(MONEY, ISNULL(AGE0.SUMAGEBAL, 0)), AGEDBAL30D = CONVERT(MONEY, ISNULL(AGE1.SUMAGEBAL, 0)), AGEDBAL60D = CONVERT(MONEY, ISNULL(AGE2.SUMAGEBAL, 0)), AGEDBAL90D = CONVERT(MONEY, ISNULL(AGE3.SUMAGEBAL, 0)), UNALLOC_DEPOSIT = CONVERT(MONEY, ISNULL(DEP.UNALLOC_DEPOSIT, 0)), UNALLOC_RET = CONVERT(MONEY, ISNULL(RET.UNALLOC_RETENSION, 0)), TOTAL = CONVERT(MONEY, ISNULL(AGEM3.SUMAGEBAL, 0) + ISNULL(AGEM2.SUMAGEBAL, 0) + ISNULL(AGEM1.SUMAGEBAL, 0) + ISNULL(AGE0.SUMAGEBAL, 0) + ISNULL(AGE1.SUMAGEBAL, 0) + ISNULL(AGE2.SUMAGEBAL, 0) + ISNULL(AGE3.SUMAGEBAL, 0)), CU.CURRCODE AS CURRENCY, CU.BUYRATE FROM DR_ACCS D LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED < 2 WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) < 30 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) > -30 AND DEPOSIT_STATUS = 0 AND (ANALYSIS IS NULL OR ANALYSIS <> 'RETENT') GROUP BY A.ACCNO) AGE0 ON D.ACCNO = AGE0.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) <= -30 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) > -60 AND DEPOSIT_STATUS = 0 AND (ANALYSIS IS NULL OR ANALYSIS <> 'RETENT') GROUP BY A.ACCNO) AGE1 ON D.ACCNO = AGE1.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) <= -60 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) > -90 AND DEPOSIT_STATUS = 0 AND (ANALYSIS IS NULL OR ANALYSIS <> 'RETENT') GROUP BY A.ACCNO, T.AGE) AGE2 ON D.ACCNO = AGE2.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) SUMAGEBAL FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) <= -90 AND DEPOSIT_STATUS = 0 AND (ANALYSIS IS NULL OR ANALYSIS <> 'RETENT') GROUP BY A.ACCNO) AGE3 ON D.ACCNO = AGE3.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) >= 30 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) < 60 AND DEPOSIT_STATUS = 0 AND (ANALYSIS IS NULL OR ANALYSIS <> 'RETENT') GROUP BY A.ACCNO) AGEM1 ON D.ACCNO = AGEM1.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) >= 60 AND DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) < 90 AND DEPOSIT_STATUS = 0 AND (ANALYSIS IS NULL OR ANALYSIS <> 'RETENT') GROUP BY A.ACCNO, T.AGE) AGEM2 ON D.ACCNO = AGEM2.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS SUMAGEBAL FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND T.ALLOCATED='0' WHERE DATEDIFF(d, GETDATE(), ISNULL(DUEDATE, TRANSDATE)) >= 90 AND DEPOSIT_STATUS = 0 AND (ANALYSIS IS NULL OR ANALYSIS <> 'RETENT') GROUP BY A.ACCNO) AGEM3 ON D.ACCNO = AGEM3.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS UNALLOC_DEPOSIT FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND DEPOSIT_STATUS <> 0 GROUP BY A.ACCNO) DEP ON D.ACCNO = DEP.ACCNO LEFT JOIN (SELECT A.ACCNO, SUM(T.AMOUNT-T.ALLOCATEDBAL) AS UNALLOC_RETENSION FROM DR_ACCS A LEFT JOIN DR_TRANS T ON A.ACCNO=T.ACCNO AND TRANSTYPE = 5 AND (ANALYSIS IS NULL OR ANALYSIS <> 'RETENT') GROUP BY A.ACCNO) RET ON D.ACCNO = RET.ACCNO LEFT JOIN CURRENCIES CU ON D.CURRENCYNO = CU.CURRENCYNO GROUP BY D.ACCNO, AGEM1.SUMAGEBAL, AGEM2.SUMAGEBAL, AGEM3.SUMAGEBAL, AGE0.SUMAGEBAL, AGE1.SUMAGEBAL, AGE2.SUMAGEBAL , AGE3.SUMAGEBAL, DEP.UNALLOC_DEPOSIT, RET.UNALLOC_RETENSION, CU.CURRCODE, CU.BUYRATE
|
View: VW_FACT_CREDITOR
Name | VW_FACT_CREDITOR |
Note | |
Code | -- Fact view for creditors CREATE VIEW [dbo].[VW_FACT_CREDITOR] -- Indexed view WITH SCHEMABINDING AS /** Creditors fact view for creditors CR_ACCS driven **/
/** setup CTEs in such a way AS they can be extended e.g with custom or extra fields. Hopefully the Dimensions and MeASures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliASes AS part of the DTE definition. **/ WITH -- CR_ACCS ------------------------------------------------------------------------ CTE_CAC ( -- Internal (aliAS) -- Dimensions (aliAS) ACCNO, ACCNO_HEAD, NAME, ACCALPHA, POSTCODE, SALESNO, BRANCHNO, CURRENCYNO, TAXNO, PAYNO, ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCTERMS, ACCSTOPCRED, ACCPRIVATE, ACCLASTUPDATE, -- Measures (aliAS) BAL3, BAL2, BAL1, BAL0, BALTOT, BALPRIOR3, BALPRIOR2, BALPRIOR1, BALPRIOR0, BALPRIORTOT, CREDLIMIT, LASTMONTH, LASTYEAR, MONTHVAL, YEARVAL, AVEDAYS, -- Custom (alias) CTE) AS (SELECT -- Internal (database) -- Dimensions (databASe) ACCNO, CASE WHEN ISNULL(HEAD_ACCNO, -1) <0 THEN ACCNO ELSE HEAD_ACCNO END, NAME, ISNULL(ALPHACODE, ''), ISNULL(POST_CODE, ''), ISNULL(SALESNO, -1), ISNULL(BRANCHNO, -1), ISNULL(CURRENCYNO, -1), ISNULL(TAXSTATUS, -1), ISNULL(PAY_TYPE, -1), ISNULL(ISACTIVE, 'Y'), ISNULL(ACCGROUP, -1), ISNULL(ACCGROUP2, -1), ISNULL(CREDITSTATUS, 0), ISNULL(STOPCREDIT, 'N'), ISNULL(PRIVATE_ACC, 'N'), ISNULL(LAST_UPDATED, ''), -- Measures (database) ISNULL(AGEDBAL3, 0), ISNULL(AGEDBAL2, 0), ISNULL(AGEDBAL1, 0), ISNULL(AGEDBAL0, 0), ISNULL(BALANCE, 0), ISNULL(PRIOR_AGEDBAL3, 0), ISNULL(PRIOR_AGEDBAL2, 0), ISNULL(PRIOR_AGEDBAL1, 0), ISNULL(PRIOR_AGEDBAL0, 0), ISNULL(PRIOR_BALANCE, 0), ISNULL(CREDLIMIT, 0), ISNULL(LASTMONTH, 0), ISNULL(LASTYEAR, 0), ISNULL(MONTHVAL, 0), ISNULL(YEARVAL, 0), AVE_DAYS_TO_PAY, -- Custom (databASe) 'CAC' FROM dbo.CR_ACCS CAC WITH (NOLOCK) ) , -- CONTACTS ------------------------------------------------------------------------ CTE_CON (ACCNO, -- Dimensions (aliAS) CONTACTNO, CONT_ISACTIVE, -- Measures (aliAS) CONT_NAME, -- Custom (aliAS) CTE) AS (SELECT ISNULL(CCN.ACCNO, -1), ISNULL(CON.SEQNO, -1), -- Dimensions (database) CON.ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CR_CONTACTS CCN WITH (NOLOCK) INNER JOIN dbo.CONTACTS CON WITH (NOLOCK)ON CCN.CONTACT_SEQNO = CON.SEQNO AND CCN.DEFCONTACT = 'Y' )
/** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(CAC.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST(CAC.ACCNO AS VARCHAR) + '.' + ISNULL(RTRIM(CAC.NAME), 'No Entered Creditor')) AS ACCNAME_ENTERED, (CAST(CAC.ACCNO_HEAD AS VARCHAR) + '.' + ISNULL(RTRIM(CAH.NAME), 'No Head Debtor')) AS ACCNAME_HEAD, (CAST(CAC.ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(CG1.GROUPNAME), 'No Creditor Account Group')) AS ACCGROUP1NAME, (CAST(CAC.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(CG2.GROUPNAME), 'No Creditor Account Group 2')) AS ACCGROUP2NAME, (CAST(CAC.SALESNO AS VARCHAR) + '.' + ISNULL(RTRIM(SFS.NAME), 'No Manager')) AS STAFFNAME, (CAST(CAC.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(CAC.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, (CAST(CAC.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'Default Tax')) AS TAXNAME, (CAST(CAC.PAYNO AS VARCHAR) + '.' + ISNULL(RTRIM(PAY.PTDESC), 'No Payment')) AS PAYNAME, (CAST(CAC.ACCTERMS AS VARCHAR) + '.' + ISNULL(RTRIM(CST.STATUSDESC), 'No Terms')) AS TERMSNAME, (CAST(CON.CONTACTNO AS VARCHAR) + '.' + ISNULL(RTRIM(CON.CONT_NAME), 'No Default Contact')) AS CONTACTNAME, --CAC (debtors account) CAC.ACCNO, CAC.ACCNO_HEAD, CAC.ACCALPHA, CAC.POSTCODE, CAC.SALESNO, CAC.BRANCHNO, CAC.CURRENCYNO, CAC.TAXNO, CAC.ACCISACTIVE, CAC.ACCGROUP, CAC.ACCGROUP2, CAC.ACCTERMS, CAC.ACCSTOPCRED, CAC.ACCPRIVATE, CAC.ACCLASTUPDATE, CON.CONTACTNO, --MeASures --CAC ROUND(BAL3, 2) AS BALFC3, ROUND(BAL2, 2) AS BALFC2, ROUND(BAL1, 2) AS BALFC1, ROUND(BAL0, 2) AS BALFC0, ROUND(BALTOT, 2) AS BALFCTOT, ROUND(BALPRIOR3, 2) AS BALPRIORFC3, ROUND(BALPRIOR2, 2) AS BALPRIORFC2, ROUND(BALPRIOR1, 2) AS BALPRIORFC1, ROUND(BALPRIOR0, 2) AS BALPRIORFC0, ROUND(BALPRIORTOT, 2) AS BALPRIORFCTOT, ROUND(CAC.CREDLIMIT, 2) AS CREDLIMITFC, ROUND(BAL3/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BAL3, ROUND(BAL2/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BAL2, ROUND(BAL1/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BAL1, ROUND(BAL0/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BAL0, ROUND(BALTOT/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BALTOT, ROUND(BALPRIOR3/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BALPRIOR3, ROUND(BALPRIOR2/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BALPRIOR2, ROUND(BALPRIOR1/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BALPRIOR1, ROUND(BALPRIOR0/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BALPRIOR0, ROUND(BALPRIORTOT/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS BALPRIORTOT, ROUND(CAC.CREDLIMIT/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS CREDLIMIT, ROUND(CAC.LASTMONTH/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS VALUELASTMONTH, ROUND(CAC.LASTYEAR/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS VALUELASTYEAR, ROUND(CAC.MONTHVAL/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS VALUETHISMONTH, ROUND(CAC.YEARVAL/CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END, 2) AS VALUETHISYEAR,
(SELECT ROUND(ISNULL(SUM((SUP_QUANT-INV_QUANT)*UNITPRICE*DISCOUNT/100), 0)/ CASE WHEN ISNULL(BUYRATE, 0) = 0 THEN 1 ELSE BUYRATE END , 2) FROM dbo.PURCHORD_LINES POL WHERE POL.ACCNO = CAC.ACCNO AND abs(SUP_QUANT-INV_QUANT) > 0.00009) AS OVALPENDING,
(SELECT ISNULL(MAX(TRANSDATE), '') FROM dbo.CR_TRANS CTI WHERE CTI.ACCNO = CAC.ACCNO and TRANSTYPE =1 and AMOUNT > 0) AS LASTDATEINVOICED,
(SELECT ISNULL(MAX(TRANSDATE), '') FROM dbo.CR_TRANS CTP WHERE CTP.ACCNO = CAC.ACCNO and TRANSTYPE =4 and AMOUNT < 0) AS LASTDATEPAID,
AVEDAYS --Custom -- Join structure FROM CTE_CAC CAC LEFT OUTER JOIN dbo.CR_ACCS CAH WITH (NOLOCK) ON CAC.ACCNO_HEAD = CAH.ACCNO LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON CAC.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.CR_ACCGROUPS CG1 WITH (NOLOCK) ON CAC.ACCGROUP = CG1.ACCGROUP LEFT OUTER JOIN dbo.CR_ACCGROUP2S CG2 WITH (NOLOCK) ON CAC.ACCGROUP2 = CG2.ACCGROUP LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON CAC.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON CAC.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON CAC.TAXNO = TAX.SEQNO LEFT OUTER JOIN dbo.PAYMENT_TYPES PAY WITH (NOLOCK) ON CAC.PAYNO = PAY.PTNO LEFT OUTER JOIN dbo.CREDIT_STATUSES CST WITH (NOLOCK) ON CAC.ACCTERMS = CST.STATUSNO LEFT OUTER JOIN CTE_CON CON ON CAC.ACCNO = CON.ACCNO
|
View: VW_FACT_DEBTOR
Name | VW_FACT_DEBTOR |
Note | |
Code | -- Sales fact view for debtors invoices CREATE VIEW [dbo].[VW_FACT_DEBTOR] -- Indexed view WITH SCHEMABINDING AS /** Debtors fact view for debtors DR_ACCS driven **/
/** setup CTEs in such a way AS they can be extENDed e.g with custom or extra fields. Hopefully the Dimensions and MeASures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliASes AS part of the DTE definition. **/ WITH -- DR_ACCS ------------------------------------------------------------------------ CTE_DAC ( -- Internal (aliAS) -- Dimensions (aliAS) ACCNO, ACCNO_HEAD, NAME, ACCALPHA, POSTCODE, SALESNO, BRANCHNO, CURRENCYNO, TAXNO, PAYNO, ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, ACCTERMS, ACCSTOPCRED, ACCPRIVATE, ACCSTARTDATE, ACCLASTUPDATE, -- Measures (aliAS) BAL3, BAL2, BAL1, BAL0, BALTOT, BALPRIOR3, BALPRIOR2, BALPRIOR1, BALPRIOR0, BALPRIORTOT, CREDLIMIT, LASTMONTH, LASTYEAR, MONTHVAL, YEARVAL, AVEDAYS, -- Custom (alias) CTE) AS (SELECT -- Internal (database) -- Dimensions (databASe) ACCNO, CASE WHEN ISNULL(HEAD_ACCNO, -1) <0 THEN ACCNO ELSE HEAD_ACCNO END, NAME, ISNULL(ALPHACODE, ''), ISNULL(POST_CODE, ''), ISNULL(SALESNO, -1), ISNULL(BRANCHNO, -1), ISNULL(CURRENCYNO, -1), ISNULL(TAXSTATUS, -1), ISNULL(PAY_TYPE, -1), ISNULL(ISACTIVE, 'Y'), ISNULL(ACCGROUP, -1), ISNULL(ACCGROUP2, -1), ISNULL(PRICEGROUP, -1), ISNULL(CREDITSTATUS, 0), ISNULL(STOPCREDIT, 'N'), ISNULL(PRIVATE_ACC, 'N'), ISNULL(STARTDATE, ''), ISNULL(LAST_UPDATED, ''), -- Measures (database) ISNULL(AGEDBAL3, 0), ISNULL(AGEDBAL2, 0), ISNULL(AGEDBAL1, 0), ISNULL(AGEDBAL0, 0), ISNULL(BALANCE, 0), ISNULL(PRIOR_AGEDBAL3, 0), ISNULL(PRIOR_AGEDBAL2, 0), ISNULL(PRIOR_AGEDBAL1, 0), ISNULL(PRIOR_AGEDBAL0, 0), ISNULL(PRIOR_BALANCE, 0), ISNULL(CREDLIMIT, 0), ISNULL(LASTMONTH, 0), ISNULL(LASTYEAR, 0), ISNULL(MONTHVAL, 0), ISNULL(YEARVAL, 0), AVE_DAYS_TO_PAY, -- Custom (databASe) 'DAC' FROM dbo.DR_ACCS DAC WITH (NOLOCK) ) , -- CONTACTS ------------------------------------------------------------------------ CTE_CON (ACCNO, -- Dimensions (aliAS) CONTACTNO, CONT_ISACTIVE, -- Measures (aliAS) CONT_NAME, -- Custom (aliAS) CTE) AS (SELECT ISNULL(DCN.ACCNO, -1), ISNULL(CON.SEQNO, -1), -- Dimensions (database) CON.ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.DR_CONTACTS DCN WITH (NOLOCK) INNER JOIN dbo.CONTACTS CON WITH (NOLOCK)ON DCN.CONTACT_SEQNO = CON.SEQNO AND DCN.DEFCONTACT = 'Y' )
/** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(DAC.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST(DAC.ACCNO AS VARCHAR) + '.' + ISNULL(RTRIM(DAC.NAME), 'No Entered Debtor')) AS ACCNAME_ENTERED, (CAST(DAC.ACCNO_HEAD AS VARCHAR) + '.' + ISNULL(RTRIM(DAH.NAME), 'No Head Debtor')) AS ACCNAME_HEAD, (CAST(DAC.ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(DG1.GROUPNAME), 'No Debtor Account Group')) AS ACCGROUP1NAME, (CAST(DAC.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(DG2.GROUPNAME), 'No Debtor Account Group 2')) AS ACCGROUP2NAME, (CAST(DAC.ACCPRICEGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(DGP.GROUPNAME), 'No Debtor Price Group')) AS ACCGROUPPNAME, (CAST(DAC.SALESNO AS VARCHAR) + '.' + ISNULL(RTRIM(SFS.NAME), 'No Manager')) AS STAFFNAME, (CAST(DAC.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(DAC.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, (CAST(DAC.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'Default Tax')) AS TAXNAME, (CAST(DAC.PAYNO AS VARCHAR) + '.' + ISNULL(RTRIM(PAY.PTDESC), 'No Payment')) AS PAYNAME, (CAST(DAC.ACCTERMS AS VARCHAR) + '.' + ISNULL(RTRIM(CST.STATUSDESC), 'No Terms')) AS TERMSNAME, (CAST(CON.CONTACTNO AS VARCHAR) + '.' + ISNULL(RTRIM(CON.CONT_NAME), 'No Default Contact')) AS CONTACTNAME, --DAC (debtors account) DAC.ACCNO, DAC.ACCNO_HEAD, DAC.ACCALPHA, DAC.POSTCODE, DAC.SALESNO, DAC.BRANCHNO, DAC.CURRENCYNO, DAC.TAXNO, DAC.ACCISACTIVE, DAC.ACCGROUP, DAC.ACCGROUP2, DAC.ACCPRICEGROUP, DAC.ACCTERMS, DAC.ACCSTOPCRED, DAC.ACCPRIVATE, DAC.ACCSTARTDATE, DAC.ACCLASTUPDATE, CON.CONTACTNO, --Measures --DAC ROUND(DAC.BAL3, 2) AS BALFC3, ROUND(DAC.BAL2, 2) AS BALFC2, ROUND(DAC.BAL1, 2) AS BALFC1, ROUND(DAC.BAL0, 2) AS BALFC0, ROUND(DAC.BALTOT, 2) AS BALFCTOT, ROUND(DAC.BALPRIOR3, 2) AS BALPRIORFC3, ROUND(DAC.BALPRIOR2, 2) AS BALPRIORFC2, ROUND(DAC.BALPRIOR1, 2) AS BALPRIORFC1, ROUND(DAC.BALPRIOR0, 2) AS BALPRIORFC0, ROUND(DAC.BALPRIORTOT, 2) AS BALPRIORFCTOT, ROUND(DAC.CREDLIMIT, 2) AS CREDLIMITFC, ROUND(BAL3/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BAL3, ROUND(BAL2/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BAL2, ROUND(BAL1/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BAL1, ROUND(BAL0/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BAL0, ROUND(BALTOT/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BALTOT, ROUND(BALPRIOR3/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BALPRIOR3, ROUND(BALPRIOR2/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BALPRIOR2, ROUND(BALPRIOR1/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BALPRIOR1, ROUND(BALPRIOR0/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BALPRIOR0, ROUND(BALPRIORTOT/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS BALPRIORTOT, ROUND(DAC.CREDLIMIT/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS CREDLIMIT, ROUND(DAC.LASTMONTH/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS VALUELASTMONTH, ROUND(DAC.LASTYEAR/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS VALUELASTYEAR, ROUND(DAC.MONTHVAL/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS VALUETHISMONTH, ROUND(DAC.YEARVAL/CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END, 2) AS VALUETHISYEAR,
(SELECT ROUND(ISNULL(SUM(UNINV_QUANT*UNITPRICE*DISCOUNT/100), 0)/ CASE WHEN ISNULL(SELLRATE, 0) = 0 THEN 1 ELSE SELLRATE END , 2) FROM dbo.SALESORD_LINES SOL WHERE SOL.ACCNO = DAC.ACCNO AND abs(UNINV_QUANT) > 0.00009) AS OVALPENDING,
(SELECT ISNULL(MAX(TRANSDATE), '') FROM dbo.DR_TRANS DTI WHERE DTI.ACCNO = DAC.ACCNO and TRANSTYPE =1 and AMOUNT > 0) AS LASTDATEINVOICED,
(SELECT ISNULL(MAX(TRANSDATE), '') FROM dbo.DR_TRANS DTP WHERE DTP.ACCNO = DAC.ACCNO and TRANSTYPE =4 and AMOUNT < 0) AS LASTDATEPAID,
AVEDAYS --Custom -- Join structure FROM CTE_DAC DAC LEFT OUTER JOIN dbo.DR_ACCS DAH WITH (NOLOCK) ON DAC.ACCNO_HEAD = DAH.ACCNO LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON DAC.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.DR_ACCGROUPS DG1 WITH (NOLOCK) ON DAC.ACCGROUP = DG1.ACCGROUP LEFT OUTER JOIN dbo.DR_ACCGROUP2S DG2 WITH (NOLOCK) ON DAC.ACCGROUP2 = DG2.ACCGROUP LEFT OUTER JOIN dbo.DR_PRICEGROUPS DGP WITH (NOLOCK) ON DAC.ACCPRICEGROUP = DGP.GROUPNO LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON DAC.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON DAC.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON DAC.TAXNO = TAX.SEQNO LEFT OUTER JOIN dbo.PAYMENT_TYPES PAY WITH (NOLOCK) ON DAC.PAYNO = PAY.PTNO LEFT OUTER JOIN dbo.CREDIT_STATUSES CST WITH (NOLOCK) ON DAC.ACCTERMS = CST.STATUSNO LEFT OUTER JOIN CTE_CON CON ON DAC.ACCNO = CON.ACCNO
|
View: VW_FACT_GL
Name | VW_FACT_GL |
Note | |
Code | -- GL fact view for GL movements CREATE VIEW [dbo].[VW_FACT_GL] -- Indexed view --WITH SCHEMABINDING AS /** Sales fact view for debtors invoices DR_INVLINE driven **/
/** setup CTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- GLACCS - General Ledger Account -------------------------------------------------------------------- CTE_GLA ( -- Internal ACCNO, -- Dimensions (alias) NAME, DRCR, SECTION, TAXNO, CURRENCYNO, ACCISACTIVE, ACCGROUP, ALLOWJOURNAL, BSHEETTYPE, ISPRIVATE, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) -- Dimensions (database) NAME, DRCR, SECTION, TAXSTATUS, CURRENCYNO, ISACTIVE, ACCGROUP, ALLOWJOURNAL, BALANCE_SHEET_TYPE, PRIVATE_ACC, -- Measures (database) -- Custom (database) 'GLA' FROM dbo.GLACCS GLA WITH (NOLOCK) ) , -- GLSUBACCS - General Ledger SubAccount -------------------------------------------------------------------- CTE_GLS ( -- Internal ACCNO, SUBACCNO, -- Dimensions (alias) SUBNAME, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT -- Internal (database) ACCNO, SUBACCNO, -- Dimensions (database) NAME, -- Measures (database) -- Custom (database) 'GLA' FROM dbo.GLSUBACCS GLS WITH (NOLOCK) ) , -- GL_ACCGROUPS - General Ledger Account Groups -------------------------------------------------------------------- CTE_GRP ( -- Internal ACCGROUP, -- Dimensions (alias) GROUPNAME, REPCODE, ISRECONCILABLE, REPDESC, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT -- Internal (database) ACCGROUP, -- Dimensions (database) GROUPNAME, ISNULL(GRP.REPCODE, 0), IS_RECONCILABLE, REP.DESCRIPTION, -- Measures (database) -- Custom (database) 'GRP' FROM dbo.GL_ACCGROUPS GRP WITH (NOLOCK) LEFT OUTER JOIN GL_ACCGRP_REPCODE REP ON REP.REPCODE = ISNULL(GRP.REPCODE, 0) ) , -- GLMOVEMENTS - General Ledger Movements -------------------------------------------------------------------- CTE_GLM ( -- Internal SEQNO, -- Dimensions (alias) ACCNO, SUBACCNO, BRANCHNO, COMPANYNO, PERIODID, -- Measures (alias) AVAL, AVALFC, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Internal (database) -- Dimensions (database) ACCNO, SUBACCNO, BRANCHNO, COMPANYNO, PERIOD_SEQNO, -- Measures (database) AMOUNT, AMOUNT_FC, -- Custom (database) 'GLM' FROM dbo.GLMOVEMENTS GLT WITH (NOLOCK) WHERE PERIOD_SEQNO >= ISNULL((SELECT SEQNO FROM dbo.PERIOD_STATUS PS WHERE LEDGER ='G' AND PS.AGE = (SELECT ANALYSIS_AGE_LIMIT FROM dbo.LEDGER_PERIODS LP WHERE LP.SEQNO=4)) , 0) ) , -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE, CAST(CRDEFAULTTAXRATENO AS INT) AS CRDEFAULTTAXRATENO
FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE], [CRDEFAULTTAXRATENO]) ) AS PivotTable ) , -- Permutations -------------------------------------------------------------------- CTE_GPU ( --Dimensions (alias) ACCNO, SUBACCNO, BRANCHNO, COMPANYNO, PERIODID, NAME, SUBNAME, DRCR, SECTION, TAXNO, CURRENCYNO, ACCISACTIVE, ACCGROUP, ALLOWJOURNAL, BSHEETTYPE, ISPRIVATE, GROUPNAME, REPCODE, ISRECONCILABLE, REPDESC, --Measures (alias) AVAL, AVALFC, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) CTE_GLM.ACCNO, CTE_GLM.SUBACCNO, BRANCHNO, COMPANYNO, PERIODID, CTE_GLA.NAME, SUBNAME, ISNULL(DRCR, 'D'), ISNULL(SECTION, 0), ISNULL(TAXNO, -1), ISNULL(CURRENCYNO, 0), ISNULL(ACCISACTIVE, 'Y'), CTE_GLA.ACCGROUP, ISNULL(ALLOWJOURNAL, 'Y'), BSHEETTYPE, ISNULL(ISPRIVATE, 'Y'), GROUPNAME, CTE_GRP.REPCODE, ISNULL(ISRECONCILABLE, 'Y'), REPDESC, --Measures SUM(ISNULL(AVAL, 0)) AS AVAL, SUM(ISNULL(AVALFC, 0)) AS AVALFC, --Custom --Number of rows (and code marker) 'GPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_GLM LEFT OUTER JOIN CTE_GLA ON CTE_GLA.ACCNO = CTE_GLM.ACCNO LEFT OUTER JOIN CTE_GLS ON CTE_GLS.ACCNO = CTE_GLM.ACCNO AND CTE_GLS.SUBACCNO = CTE_GLM.SUBACCNO LEFT OUTER JOIN CTE_GRP ON CTE_GRP.ACCGROUP = CTE_GLA.ACCGROUP GROUP BY CTE_GLM.ACCNO, CTE_GLM.SUBACCNO, BRANCHNO, COMPANYNO, PERIODID, CTE_GLA.NAME, SUBNAME, DRCR, SECTION, TAXNO, CURRENCYNO, ACCISACTIVE, CTE_GLA.ACCGROUP, ALLOWJOURNAL, BSHEETTYPE, ISPRIVATE, GROUPNAME, CTE_GRP.REPCODE, ISRECONCILABLE, REPDESC )
/** Define the Fact view **/ SELECT --Normalised (lookup) (RIGHT('000000000' + CAST(GPU.ACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(GPU.SUBACCNO AS VARCHAR), GLSUBACCSIZE)) AS GLCODE, (RIGHT('000000000' + CAST(ACCNO AS VARCHAR), GLACCNOSIZE) + '.' + ISNULL(RTRIM(GPU.NAME), 'No GL Account')) AS GLACCNAME, (RIGHT('000000000' + CAST(ACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(SUBACCNO AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(SUBNAME), RTRIM(GPU.NAME)), 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(GPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST( ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(GROUPNAME), 'No Account Group')) AS GLACCGROUPNAME, (CAST( REPCODE AS VARCHAR) + '.' + ISNULL(RTRIM(REPDESC), 'No Perport Code') ) AS GLREPCODENAME, (CAST(GPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(GPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, (CAST(GPU.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'No Tax')) AS TAXNAME, ISNULL(DRCR, 'D') AS GLSIGN, CASE WHEN ISNULL(SECTION, 0) = 1 THEN '1.Balance Sheet' ELSE '0.Profit & Loss' END AS GLSECTIONNAME, PES.AGE AS AGE, PES.YEARAGE AS YEARAGE, (CAST(GPU.PERIODID AS VARCHAR) + '.' + PES.PERIODNAME) AS PERIODNAME, --From Permutations ACCNO AS GLACCNO, SUBACCNO AS GLSUBACC, GPU.BRANCHNO, COMPANYNO, PERIODID, CASE WHEN ISNULL(TAXNO, 0) <0 THEN CRDEFAULTTAXRATENO ELSE TAXNO END AS TAXNO, GPU.CURRENCYNO, ACCISACTIVE AS GLISACTIVE, GPU.ACCGROUP AS GLACCGROUP, REPCODE AS GLREPCODE, ISRECONCILABLE AS GLRECONCILABLE, SECTION AS GLSECTION, CASE WHEN 0 < (SELECT COUNT(*) FROM BANK_REC_SETUP BRS WHERE BRS.ACCNO = GPU.ACCNO AND BRS.SUBACCNO = GPU.SUBACCNO) THEN 'Y' ELSE 'N' END AS GLISBANK, --Measures ROUND(AVAL, 2) AS AVAL, ROUND(AVALFC, 2) AS AVALFC, ROUND(CASE WHEN ISNULL(AVALFC, 0) =0 THEN 1 ELSE AVAL/AVALFC END, 4) AS AEXCHRATE, --Custom --Number of rows FREQUENCY --Join structure FROM CTE_GPU GPU LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1 LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON GPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON GPU.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON CASE WHEN TAXNO <0 THEN CRDEFAULTTAXRATENO ELSE TAXNO END = TAX.SEQNO LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON GPU.PERIODID = PES.SEQNO
|
View: VW_FACT_JOBS
Name | VW_FACT_JOBS |
Note | |
Code | -- Job fact view for job cost headers CREATE VIEW [dbo].[VW_FACT_JOBS] -- Indexed view WITH SCHEMABINDING AS
/** setup DTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- DR_ACCS ------------------------------------------------------------------------ CTE_DAC (DAC_ACCNO, -- Internal (alias) DAC_HEAD_ACCNO, -- Dimensions (alias) ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, CURRENCYNO, -- Measures (alias) AVEDAYS, -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) HEAD_ACCNO, -- Dimensions (database) ISACTIVE, ACCGROUP, ACCGROUP2, PRICEGROUP, CURRENCYNO, -- Measures (database) AVE_DAYS_TO_PAY, -- Custom (database) 'DAC' FROM dbo.DR_ACCS DAC WITH (NOLOCK) ), -- CONTACTS ------------------------------------------------------------------------ CTE_CON (CON_SEQNO, -- Dimensions (alias) CONT_ISACTIVE, -- Measures (alias) CONT_NAME, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Dimensions (database) ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CONTACTS CON WITH (NOLOCK) ), -- JOBCOST_HDR ------------------------------------------------------------------------ CTE_JHD ( -- Dimensions (alias) JOBNO, ACCNO, STATUS, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, ISCONFIRMED, CREATE_DATE, ORDERDATE, ACTIVATION_DATE, DUEDATE, FINALISATION_DATE, CALLBACK_DATE, PHYS_STAFF, SALESNO, CONTACTNO, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, GLACCNO, GLSUBACC, BRANCHNO, LOCATION, ---- PERIODID, -- Measures (alias) OVALESTIMATE, OVALTIME, OVALMATERIALS, OVALOVERHEAD, OVALINVOICED, OVALASSET, OVAL, OVALESTIMATEFC, OVALTIMEFC, OVALMATERIALSFC, OVALOVERHEADFC, OVALINVOICEDFC, OVALASSETFC, OVALFC, OCOSTESTIMATE, OCOSTTIME, OCOSTMATERIALS, OCOSTINVOICED, OCOSTWRITEOFF, OCOSTASSET, OCOST, OHOURSESTIMATE, OHOURS, OHOURSALLOWANCE, EXCHRATE, WORKDAYS, -- Custom (alias) CTE) AS (SELECT -- Dimensions (database) JHD.JOBNO, ACCNO, STATUS, ISNULL(JOBCODE, ' '), MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, ISCONFIRMED = (SELECT ISACTIVE FROM dbo.JOB_STATUS WHERE STATUSKEY = STATUS), ENTRYDATE, QUOTEDATE, STARTDATE, DUEDATE, COMPLETED, CALLBACKDATE, ISNULL(ISNULL(JHD.ACTIONBY, JHD.STAFFNO), -1) AS PHYS_STAFF, ISNULL(JHD.STAFFNO, -1), ISNULL(CONTACTNO, -1), ISNULL(CATEGORY, -1), ISNULL(JOBTYPE, -1), ISNULL(BILLINGMODE, -1), ISNULL(PROJ_SEQNO, -1), SALESGL, SALESSUBGL, BRANCHNO, WIPLOC,
---- ISNULL(dbo.FN_GET_PERIOD_SEQNO(ORDERDATE), -1) AS PERIODID, -- Measures (database) ESTIMATE /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALESTIMATE, THETIME /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALTIME, MATERIALS /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALMATERIALS, DEF_OVERHEAD /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALOVERHEAD, INVOICED /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALINVOICED, ASSET_VALUE /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALASSET, TOTALVALUE /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVAL, ESTIMATE, THETIME, MATERIALS, DEF_OVERHEAD, INVOICED, ASSET_VALUE, TOTALVALUE, ESTIMATECOST, THETIMECOST, MATERIALSCOST, INVOICEDCOST, WRITE_OFF_COST, ASSET_COST, TOTALCOST, EST_HOURS, TOTAL_HOURS, ALLOWANCE, EXCHRATE, ISNULL(dbo.FN_GET_MANREP_DAYS(STARTDATE, COMPLETED), 0) AS WORKDAYS, -- Custom (database) 'JHD' FROM dbo.JOBCOST_HDR JHD WITH (NOLOCK) ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable ), -- Sales Permutations -------------------------------------------------------------------- CTE_JPU ( --Dimensions (alias) BRANCHNO, LOCATION, JOBNO, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, GLACCNO, GLSUBACC, ACCNO, ACCNO_SALES, ACCNO_BRANCH, ORDSTATUS, ISCONFIRMED, CREATE_DATE, ORDERDATE, ACTIVATION_DATE, DUEDATE, FINALISATION_DATE, CALLBACK_DATE, PHYS_STAFF, SALESNO, CONTACTNO, CURRENCYNO, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, --Measures (alias) AVEDAYS, OVALESTIMATE, OVALTIME, OVALMATERIALS, OVALOVERHEAD, OVALINVOICED, OVALASSET, OVAL, OVALESTIMATEFC, OVALTIMEFC, OVALMATERIALSFC, OVALOVERHEADFC, OVALINVOICEDFC, OVALASSETFC, OVALFC, OCOSTESTIMATE, OCOSTTIME, OCOSTMATERIALS, OCOSTINVOICED, OCOSTWRITEOFF, OCOSTASSET, OCOST, OHOURSESTIMATE, OHOURS, OHOURSALLOWANCE, WORKDAYS, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) --JHD (job header) BRANCHNO, LOCATION, JOBNO, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, CASE WHEN ISNULL(GLACCNO, 0) > 0 THEN GLACCNO ELSE (SELECT DEF_SALES FROM dbo.GL_CONTROL) END AS GLACCNO, ISNULL(GLSUBACC, 0), ISNULL((CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN CTE_DAC.DAC_HEAD_ACCNO ELSE ACCNO END), ACCNO) AS ACCNO, ACCNO AS ACCNO_SALES, ISNULL((CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN ACCNO ELSE -1 END), ACCNO) AS ACCNO_BRANCH, CTE_JHD.STATUS, ISCONFIRMED, ISNULL(CREATE_DATE, '1899-01-01'), ISNULL(ORDERDATE, '1899-01-01'), ISNULL(ACTIVATION_DATE, '1899-01-01'), ISNULL(DUEDATE, '1899-01-01'), ISNULL(FINALISATION_DATE, '1899-01-01'), ISNULL(CALLBACK_DATE, '1899-01-01'), PHYS_STAFF, SALESNO, CONTACTNO, CURRENCYNO, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, ---- PERIODID, --Measures --DAC MIN(ISNULL(AVEDAYS, 0)) AS AVEDAYS, --JHD SUM(ISNULL(OVALESTIMATE, 0)) AS OVALESTIMATE, SUM(ISNULL(OVALTIME, 0)) AS OVALTIME, SUM(ISNULL(OVALMATERIALS, 0)) AS OVALMATERIALS, SUM(ISNULL(OVALOVERHEAD, 0)) AS OVALOVERHEAD, SUM(ISNULL(OVALINVOICED, 0)) AS OVALINVOICED, SUM(ISNULL(OVALASSET, 0)) AS OVALASSET, SUM(ISNULL(OVAL, 0)) AS OVAL, SUM(ISNULL(OVALESTIMATEFC, 0)) AS OVALESTIMATEFC, SUM(ISNULL(OVALTIMEFC, 0)) AS OVALTIMEFC, SUM(ISNULL(OVALMATERIALSFC, 0)) AS OVALMATERIALSFC, SUM(ISNULL(OVALOVERHEADFC, 0)) AS OVALOVERHEADFC, SUM(ISNULL(OVALINVOICEDFC, 0)) AS OVALINVOICEDFC, SUM(ISNULL(OVALASSETFC, 0)) AS OVALASSETFC, SUM(ISNULL(OVALFC, 0)) AS OVALFC, SUM(ISNULL(OCOSTESTIMATE, 0)) AS OCOSTESTIMATE, SUM(ISNULL(OCOSTTIME, 0)) AS OCOSTTIME, SUM(ISNULL(OCOSTMATERIALS, 0)) AS OCOSTMATERIALS, SUM(ISNULL(OCOSTINVOICED, 0)) AS OCOSTINVOICED, SUM(ISNULL(OCOSTWRITEOFF, 0)) AS OCOSTWRITEOFF, SUM(ISNULL(OCOSTASSET, 0)) AS OCOSTASSET, SUM(ISNULL(OCOST, 0)) AS OCOST, SUM(ISNULL(OHOURSESTIMATE, 0)) AS OHOURSESTIMATE, SUM(ISNULL(OHOURS, 0)) AS OHOURS, SUM(ISNULL(OHOURSALLOWANCE, 0)) AS OHOURSALLOWANCE, SUM(ISNULL(WORKDAYS, 0)) AS WORKDAYS, --Custom --Number of rows (and code marker) 'JPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_JHD LEFT OUTER JOIN CTE_DAC ON CTE_DAC.DAC_ACCNO = CTE_JHD.ACCNO LEFT OUTER JOIN CTE_CON ON CTE_CON.CON_SEQNO = CTE_JHD.CONTACTNO GROUP BY --JTR (job transdactions) BRANCHNO, LOCATION, JOBNO, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, GLACCNO, GLSUBACC, --JHD (job header) CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN CTE_DAC.DAC_HEAD_ACCNO ELSE ACCNO END, ACCNO, CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN ACCNO ELSE -1 END, CTE_JHD.STATUS, ISCONFIRMED, CREATE_DATE, ORDERDATE, ACTIVATION_DATE, DUEDATE, FINALISATION_DATE, CALLBACK_DATE, PHYS_STAFF, SALESNO, CONTACTNO, CURRENCYNO, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, ---- PERIODID, --DAC (debtors account) ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP )
/** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(JPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(BRH.BRANCHNAME, 'No Branch')) AS BRANCHNAME, (CAST(JPU.ACCNO AS VARCHAR) + '.' + ISNULL(DAA.NAME, 'No Entered Debtor')) AS ACCNAME_ENTERED, (CAST(JPU.ACCNO_SALES AS VARCHAR) + '.' + ISNULL(DAS.NAME, 'No Sales Debtor')) AS ACCNAME_SALES, (CAST(JPU.ACCNO_BRANCH AS VARCHAR) + '.' + ISNULL(DAB.NAME, 'No Branch Debtor')) AS ACCNAME_BRANCH, (CAST(JPU.ACCGROUP AS VARCHAR) + '.' + ISNULL(DG1.GROUPNAME, 'No Debtor Account Group')) AS ACCGROUP1NAME, (CAST(JPU.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(DG2.GROUPNAME, 'No Debtor Account Group 2')) AS ACCGROUP2NAME, (CAST(JPU.ACCPRICEGROUP AS VARCHAR) + '.' + ISNULL(DGP.GROUPNAME, 'No Debtor Price Group')) AS ACCGROUPPNAME, (CAST(JPU.SALESNO AS VARCHAR) + '.' + ISNULL(SFS.NAME, 'No Manager')) AS STAFFNAME, (CAST(JPU.PHYS_STAFF AS VARCHAR) + '.' + ISNULL(SFP.NAME, 'No Staff')) AS STAFFNAMEPHYS, (CAST(JPU.GLACCNO AS VARCHAR) + '.' + ISNULL(GLA.NAME, 'No GL Account')) AS GLACCNAME, (CAST(JPU.GLSUBACC AS VARCHAR) + '.' + ISNULL(GLS.NAME, 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(JPU.LOCATION AS VARCHAR) + '.' + ISNULL(LOC.LNAME, 'No Location')) AS LOCATIONNAME, (CAST(JPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(CUY.CURRNAME, 'No Currency')) AS CURRENCYNAME, (CAST(JPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(CUY.CURRCODE, 'No Currency')) AS CURRENCYCODE, ---- PES.AGE AS AGE, ---- PES.YEARAGE AS YEARAGE, ---- (JPU.PERIODID + '.' + PES.PERIODNAME) AS PERIODNAME, (CAST(JPU.PROJECTNO AS VARCHAR) + '.' + ISNULL(JPR.PROJ_TITLE, 'No Project')) AS PROJECTNAME, (CAST(JPU.CATEGORY AS VARCHAR) + '.' + ISNULL(JCY.CATDESC, 'No Category')) AS CATEGORYNAME, (CAST(JPU.JOBTYPE AS VARCHAR) + '.' + ISNULL(JTP.TYPEDESC, 'No Job Type')) AS JOBTYPENAME, (CAST(JPU.BILLINGMODE AS VARCHAR) + '.' + (CASE BILLINGMODE WHEN 0 THEN 'Charge-Up' WHEN 1 THEN 'Invoice Ex-Quote' WHEN 2 THEN 'Manufacture - Output Items' WHEN 3 THEN 'Progress Invoices' ELSE 'No Job Type' END)) AS BILLINGMODENAME,
--From Sales Permutations JPU.BRANCHNO, LOCATION, JOBNO, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, JPU.DESCRIPTION, GLACCNO, JPU.GLSUBACC, JPU.ACCNO, ACCNO_SALES, ACCNO_BRANCH, ORDSTATUS, ISCONFIRMED, CREATE_DATE, ORDERDATE, ACTIVATION_DATE, DUEDATE, FINALISATION_DATE, CALLBACK_DATE, JPU.SALESNO, CONTACTNO, JPU.CURRENCYNO, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, PHYS_STAFF, ---- CTE_SPU.PERIODID, ACCISACTIVE, JPU.ACCGROUP, JPU.ACCGROUP2, ACCPRICEGROUP, --Measures AVEDAYS, -- values local currency ROUND(OVALESTIMATE, 2) AS OVALESTIMATE, ROUND(OVALTIME, 2) AS OVALTIME, ROUND(OVALMATERIALS, 2) AS OVALMATERIALS, ROUND(OVALOVERHEAD, 2) AS OVALOVERHEAD, ROUND(OVALINVOICED, 2) AS OVALINVOICED, ROUND(OVALASSET, 2) AS OVALASSET, ROUND(OVAL, 2) AS OVAL, -- values foreign currency ROUND(OVALESTIMATEFC, 2) AS OVALESTIMATEFC, ROUND(OVALTIMEFC, 2) AS OVALTIMEFC, ROUND(OVALMATERIALSFC, 2) AS OVALMATERIALSFC, ROUND(OVALOVERHEADFC, 2) AS OVALOVERHEADFC, ROUND(OVALINVOICEDFC, 2) AS OVALINVOICEDFC, ROUND(OVALASSETFC, 2) AS OVALASSETFC, ROUND(OVALFC, 2) AS OVALFC, -- costs ROUND(OCOSTESTIMATE, 2) AS OCOSTESTIMATE, ROUND(OCOSTTIME, 2) AS OCOSTTIME, ROUND(OCOSTMATERIALS, 2) AS OCOSTMATERIALS, ROUND(OCOSTINVOICED, 2) AS OCOSTINVOICED, ROUND(OCOSTWRITEOFF, 2) AS OCOSTWRITEOFF, ROUND(OCOSTASSET, 2) AS OCOSTASSET, ROUND(OCOST, 2) AS OCOST, -- time (quantity) ROUND(OHOURSESTIMATE, VDP.QTYDECIMALS) AS OHOURSESTIMATE, ROUND(OHOURS, VDP.QTYDECIMALS) AS OHOURS, ROUND(OHOURSALLOWANCE, VDP.QTYDECIMALS) AS OHOURSALLOWANCE, -- profits ROUND((OVALESTIMATE-OCOSTESTIMATE), 2) AS OPROFITESTIMATE, ROUND((OVALTIME-OCOSTTIME), 2) AS OPROFITTIME, ROUND((OVALMATERIALS-OCOSTMATERIALS), 2) AS OPROFITMATERIALS, ROUND((OVALINVOICED-OCOSTINVOICED), 2) AS OPROFITINVOICED, ROUND((OVALASSET-OCOSTASSET), 2) AS OPROFITASSET, ROUND((OVAL-OCOST), 2) AS OPROFIT, -- markup percentages ROUND(CASE WHEN OCOSTESTIMATE <> 0 THEN (((OVALESTIMATE-OCOSTESTIMATE)/OCOSTESTIMATE)*100) ELSE 100 END, 2) AS OMARKUPPCESTIMATE, ROUND(CASE WHEN OCOSTTIME <> 0 THEN (((OVALTIME-OCOSTTIME)/OCOSTTIME)*100) ELSE 100 END, 2) AS OMARKUPPCTIME, ROUND(CASE WHEN OCOSTMATERIALS <> 0 THEN (((OVALMATERIALS-OCOSTMATERIALS)/OCOSTMATERIALS)*100) ELSE 100 END, 2) AS OMARKUPPCMATERIALS, ROUND(CASE WHEN OCOSTINVOICED <> 0 THEN (((OVALINVOICED-OCOSTINVOICED)/OCOSTINVOICED)*100) ELSE 100 END, 2) AS OMARKUPPCINVOICED, ROUND(CASE WHEN OCOSTASSET <> 0 THEN (((OVALASSET-OCOSTASSET)/OCOSTASSET)*100) ELSE 100 END, 2) AS OMARKUPPCASSET, ROUND(CASE WHEN OCOST <> 0 THEN (((OVAL-OCOST)/OCOST)*100) ELSE 100 END, 2) AS OMARKUPPC, -- margin percentages ROUND(CASE WHEN OVALESTIMATE <> 0 THEN (((OVALESTIMATE-OCOSTESTIMATE)/OVALESTIMATE)*100) ELSE 100 END, 2) AS OMARGINPCESTIMATE, ROUND(CASE WHEN OVALTIME <> 0 THEN (((OVALTIME-OCOSTTIME)/OVALTIME)*100) ELSE 100 END, 2) AS OMARGINPCTIME, ROUND(CASE WHEN OVALMATERIALS <> 0 THEN (((OVALMATERIALS-OCOSTMATERIALS)/OVALMATERIALS)*100) ELSE 100 END, 2) AS OMARGINPCMATERIALS, ROUND(CASE WHEN OVALINVOICED <> 0 THEN (((OVALINVOICED-OCOST)/OVALINVOICED)*100) ELSE 100 END, 2) AS OMARGINPCINVOICED, ROUND(CASE WHEN OVALASSET <> 0 THEN (((OVALASSET-OCOSTASSET)/OVALASSET)*100) ELSE 100 END, 2) AS OMARGINPCASSET, ROUND(CASE WHEN OVAL <> 0 THEN (((OVAL-OCOST)/OVAL)*100) ELSE 100 END, 2) AS OMARGINPC, -- performance WORKDAYS, --Custom --Number of rows FREQUENCY --Join structure FROM CTE_JPU JPU LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON JPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.DR_ACCS DAA WITH (NOLOCK) ON JPU.ACCNO = DAA.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAS WITH (NOLOCK) ON JPU.ACCNO_SALES = DAS.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAB WITH (NOLOCK) ON JPU.ACCNO_BRANCH = DAB.ACCNO LEFT OUTER JOIN dbo.DR_ACCGROUPS DG1 WITH (NOLOCK) ON JPU.ACCGROUP = DG1.ACCGROUP LEFT OUTER JOIN dbo.DR_ACCGROUP2S DG2 WITH (NOLOCK) ON JPU.ACCGROUP2 = DG2.ACCGROUP LEFT OUTER JOIN dbo.DR_PRICEGROUPS DGP WITH (NOLOCK) ON JPU.ACCPRICEGROUP = DGP.GROUPNO LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON JPU.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.STAFF SFP WITH (NOLOCK) ON JPU.PHYS_STAFF = SFP.STAFFNO LEFT OUTER JOIN dbo.GLACCS GLA WITH (NOLOCK) ON JPU.GLACCNO = GLA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GLS WITH (NOLOCK) ON JPU.GLACCNO = GLS.ACCNO AND JPU.GLSUBACC = GLS.SUBACCNO LEFT OUTER JOIN dbo.STOCK_LOCATIONS LOC WITH (NOLOCK) ON JPU.LOCATION = LOC.LOCNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON JPU.CURRENCYNO = CUY.CURRENCYNO ---- LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON CTE_JPU.PERIODID = PES.SEQNO LEFT OUTER JOIN dbo.JOB_STATUS JST WITH (NOLOCK) ON JPU.ORDSTATUS = JST.STATUSKEY LEFT OUTER JOIN dbo.JOBCOST_PROJ JPR WITH (NOLOCK) ON JPU.PROJECTNO = JPR.SEQNO LEFT OUTER JOIN dbo.JOB_CATEGORIES JCY WITH (NOLOCK) ON JPU.CATEGORY = JCY.CATNO LEFT OUTER JOIN dbo.JOB_TYPES JTP WITH (NOLOCK) ON JPU.JOBTYPE = JTP.TYPENO LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_FACT_JOBTRANS
Name | VW_FACT_JOBTRANS |
Note | |
Code | -- Job fact view for job cost headers CREATE VIEW [dbo].[VW_FACT_JOBTRANS] -- Indexed view WITH SCHEMABINDING AS
/** setup DTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- STOCK_ITEMS - Price Lookup Item -------------------------------------------------------------------- CTE_PLU (PLU_STOCKCODE, -- Internal SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, COSCOST, -- Dimensions (alias) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, CASE (SELECT CAST(FIELDVALUE AS INTEGER) FROM dbo.PROFILE_VALUES WHERE FIELDNAME = 'STOCKCOSTMETHOD' AND PROFILEID = -1) WHEN 2 THEN ISNULL(STDCOST, 0) WHEN 1 THEN ISNULL(LATESTCOST, 0) ELSE ISNULL(AVECOST, 0) END AS COSCOST, -- Dimensions (database) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, X_SIZEID, X_COLOURID, -- Measures (database) -- Custom (database) 'PLU' FROM dbo.STOCK_ITEMS PLU WITH (NOLOCK) ) , -- STOCK_ITEMS - Stock Keeping Item -------------------------------------------------------------------- CTE_SKU (SKU_STOCKCODE, -- Internal -- Dimensions (alias) SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) -- Dimensions (database) DESCRIPTION, ISACTIVE, STATUS, HAS_BN, HAS_SN, SUPPLIERNO, -- Measures (database) -- Custom (database) 'SKU' FROM dbo.STOCK_ITEMS SKU WITH (NOLOCK) ) , -- DR_ACCS ------------------------------------------------------------------------ CTE_DAC (DAC_ACCNO, -- Internal (alias) DAC_HEAD_ACCNO, -- Dimensions (alias) ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, -- Measures (alias) AVEDAYS, -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) HEAD_ACCNO, -- Dimensions (database) ISACTIVE, ACCGROUP, ACCGROUP2, PRICEGROUP, -- Measures (database) AVE_DAYS_TO_PAY, -- Custom (database) 'DAC' FROM dbo.DR_ACCS DAC WITH (NOLOCK) ), -- CONTACTS ------------------------------------------------------------------------ CTE_CON (CON_SEQNO, -- Dimensions (alias) CONT_ISACTIVE, -- Measures (alias) CONT_NAME, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Dimensions (database) ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CONTACTS CON WITH (NOLOCK) ), -- JOBCOST_HDR ------------------------------------------------------------------------ CTE_JHD (JOBNO, SALESGL, SALESSUBGL, -- Dimensions (alias) ACCNO, STATUS, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, ISCONFIRMED, CREATE_DATE, ORDERDATE, ACTIVATION_DATE, DUEDATE, FINALISATION_DATE, CALLBACK_DATE, PHYS_STAFF, SALESNO, CONTACTNO, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, ---- PERIODID, -- Measures (alias) WORKDAYS, -- Custom (alias) CTE) AS (SELECT JHD.JOBNO, SALESGL, SALESSUBGL, -- Dimensions (database) ACCNO, STATUS, ISNULL(JOBCODE, ' '), MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, ISCONFIRMED = (SELECT ISACTIVE FROM dbo.JOB_STATUS WHERE STATUSKEY = STATUS), ENTRYDATE, QUOTEDATE, STARTDATE, DUEDATE, COMPLETED, CALLBACKDATE, ISNULL(ISNULL(JHD.ACTIONBY, JHD.STAFFNO), -1) AS PHYS_STAFF, ISNULL(JHD.STAFFNO, -1), ISNULL(CONTACTNO, -1), ISNULL(CATEGORY, -1), ISNULL(JOBTYPE, -1), ISNULL(BILLINGMODE, -1), ISNULL(PROJ_SEQNO, -1),
---- ISNULL(dbo.FN_GET_PERIOD_SEQNO(ORDERDATE), -1) AS PERIODID, -- Measures (database) ISNULL(dbo.FN_GET_MANREP_DAYS(STARTDATE, COMPLETED), 0) AS WORKDAYS, -- Custom (database) 'JHD' FROM dbo.JOBCOST_HDR JHD WITH (NOLOCK) ), -- JOB_TRANSACTIONS ---------------------------------------------------------------------- CTE_JTR (JOBNO, -- Dimensions (alias) PLU, PLU_DESCRIPTION, SKU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, CURRENCYNO, LINETYPE, LINESTATUS, LINKEDITEM, COSTGROUP, COSTTYPE, PROGRESSINVOICE, SCHEDULENO, BILLINGID, BILLINGREF, -- Measures (alias) OQUANTITY, OCOST, OVALDISC, OVALLIST, OVAL, OVALTAX, OVALTAXINC, OVALFC, OUNINVOICED, OVALPENDING, OVALRETENTION, -- Custom (alias) CTE) AS (SELECT JOBNO, -- Dimensions (database) STOCKCODE, JTR.DESCRIPTION, (CASE WHEN(LINKED_STOCKCODE IS NULL OR LINKED_STOCKCODE = '') THEN STOCKCODE ELSE LINKED_STOCKCODE END) AS LINKED_STOCKCODE, ISNULL(KITCODE, ' '), ISNULL(BRANCHNO, 0), ISNULL(LOCATION, 1), TAXNO, ISNULL(BATCHCODE, ' '), GLCODE, SUBCODE, BOMTYPE, PRICE_OVERRIDDEN, JOBLINEID, CURRENCYNO, LINETYPE, LINE_STATUS, LINKEDSTATUS, ISNULL(COST_GROUP, -1), ISNULL(COST_TYPE, -1), ISNULL(PROGRESSINVOICE, 'N'), ISNULL(SCHEDULE_SEQNO, -1), ISNULL(BILLING_ID, -1), ISNULL(BILLING_REF, ' '), -- Measures (database) ISNULL(TOTAL_QUANTITY, 0) AS OQUANTITY, ISNULL(TOTAL_QUANTITY, 0)*ISNULL(UNITCOST, 0) AS OCOST, (ISNULL(TOTAL_QUANTITY, 0)*ISNULL(UNITPRICE, 0)*ISNULL(DISCOUNT, 0)/100) /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALDISC, (ISNULL(TOTAL_QUANTITY, 0)*ISNULL(LISTPRICE, 0)) /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALLIST, ISNULL(LINECHARGE, 0) /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVAL, ISNULL(LINETOTAL_TAX, 0) /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALTAX, ISNULL(LINETOTAL, 0) /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALTAXINC, ISNULL(LINETOTAL, 0) AS OVALFC, CASE WHEN LINE_STATUS NOT IN ('X', 'I', 'W') THEN ISNULL((TOTAL_QUANTITY-INVOICEDQTY), 0) ELSE 0 END AS OUNINVOICED, CASE WHEN LINE_STATUS NOT IN ('X', 'I', 'W') THEN ISNULL((LINETOTAL-INVOICED), 0) /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) ELSE 0 END AS OVALPENDING, ISNULL(RETENTION_AMOUNT, 0) /(CASE WHEN ISNULL(EXCHRATE, 0) = 0 THEN 1 ELSE EXCHRATE END) AS OVALRETENTION, -- Custom (database) 'SOL' FROM dbo.JOB_TRANSACTIONS JTR WITH (NOLOCK) WHERE LINETYPE <> 4 AND NOT (LINETYPE = -1 AND STOCKCODE = ' ') ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable ), -- Sales Permutations -------------------------------------------------------------------- CTE_JPU ( --Dimensions (alias) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBNO, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, ORDSTATUS, ISCONFIRMED, CREATE_DATE, ORDERDATE, ACTIVATION_DATE, DUEDATE, FINALISATION_DATE, CALLBACK_DATE, PHYS_STAFF, SALESNO, CONTACTNO, CURRENCYNO, LINETYPE, LINESTATUS, LINKEDITEM, COSTGROUP, COSTTYPE, PROGRESSINVOICE, SCHEDULENO, BILLINGID, BILLINGREF, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, PLU_DESCRIPTION, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, --Measures (alias) AVEDAYS, OQUANTITY, OCOST, OVALDISC, OVALLIST, OVAL, OVALTAX, OVALTAXINC, OVALFC, OUNINVOICED, OVALPENDING, OVALRETENTION, WORKDAYS, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) --JTR (job transactions) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, CTE_JTR.JOBNO, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, CASE WHEN ISNULL(GLACCNO, 0) > 0 THEN GLACCNO ELSE CASE WHEN ISNULL(CTE_JHD.SALESGL, 0) > 0 THEN CTE_JHD.SALESGL ELSE ISNULL(CTE_PLU.SALES_GL_CODE, (SELECT DEF_SALES FROM dbo.GL_CONTROL)) END END AS GLACCNO, ISNULL(GLSUBACC, SALESSUBGL), BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, --JHD (job header) ISNULL((CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN CTE_DAC.DAC_HEAD_ACCNO ELSE ACCNO END), ACCNO) AS ACCNO, ACCNO AS ACCNO_SALES, ISNULL((CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN ACCNO ELSE -1 END), ACCNO) AS ACCNO_BRANCH, CTE_JHD.STATUS, ISCONFIRMED, ISNULL(CREATE_DATE, '1899-01-01'), ISNULL(ORDERDATE, '1899-01-01'), ISNULL(ACTIVATION_DATE, '1899-01-01'), ISNULL(DUEDATE, '1899-01-01'), ISNULL(FINALISATION_DATE, '1899-01-01'), ISNULL(CALLBACK_DATE, '1899-01-01'), PHYS_STAFF, SALESNO, CONTACTNO, CURRENCYNO, LINETYPE, LINESTATUS, LINKEDITEM, COSTGROUP, COSTTYPE, PROGRESSINVOICE, SCHEDULENO, BILLINGID, BILLINGREF, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, ---- PERIODID, --SKU (stock items) ISNULL(SKU_ISACTIVE, 'N') AS SKU_ISACTIVE, ISNULL(SKU_STATUS, 'L') AS SKU_STATUS, ISNULL(SKU_BN, 'N') AS SKU_BN, ISNULL(SKU_SN, 'N') AS SKU_SN, ISNULL(SKU_SUPPLIERNO, -1) AS SKU_SUPPLIERNO, --PLU (stock items) PLU_DESCRIPTION, ISNULL(STOCKGROUP, -1) AS STOCKGROUP, ISNULL(STOCKGROUP2, -1) AS STOCKGROUP2, ISNULL(STOCKPRICEGROUP, -1) AS STOCKPRICEGROUP, ISNULL(SIZEID, -1) AS SIZEID, ISNULL(COLOURID, -1) AS COLOURID, --DAC (debtors account) ISNULL(ACCISACTIVE, 'N') AS ACCISACTIVE, ISNULL(ACCGROUP, -1) AS ACCGROUP, ISNULL(ACCGROUP2, -1) AS ACCGROUP2, ISNULL(ACCPRICEGROUP, -1) AS ACCPRICEGROUP, --Measures --DAC MIN(ISNULL(AVEDAYS, 0)) AS AVEDAYS, --SOL (invoice line) SUM(ISNULL(OQUANTITY, 0)) AS OQUANTITY, SUM(ISNULL(OCOST, 0)) AS OCOST, SUM(ISNULL(OVALDISC, 0)) AS OVALDISC, SUM(ISNULL(OVALLIST, 0)) AS OVALLIST, SUM(ISNULL(OVAL, 0)) AS OVAL, SUM(ISNULL(OVALTAX, 0)) AS OVALTAX, SUM(ISNULL(OVALTAXINC, 0)) AS OVALTAXINC, SUM(ISNULL(OVALFC, 0)) AS OVALFC, SUM(ISNULL(OUNINVOICED, 0)) AS OUNINVOICED, SUM(ISNULL(OVALPENDING, 0)) AS OVALPENDING, SUM(ISNULL(OVALRETENTION, 0)) AS OVALRETENTION, SUM(ISNULL(WORKDAYS, 0)) AS WORKDAYS, --Custom --Number of rows (and code marker) 'JPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_JTR LEFT OUTER JOIN CTE_JHD ON CTE_JHD.JOBNO = CTE_JTR.JOBNO LEFT OUTER JOIN CTE_DAC ON CTE_DAC.DAC_ACCNO = CTE_JHD.ACCNO LEFT OUTER JOIN CTE_CON ON CTE_CON.CON_SEQNO = CTE_JHD.CONTACTNO LEFT OUTER JOIN CTE_PLU ON CTE_PLU.PLU_STOCKCODE = CTE_JTR.PLU LEFT OUTER JOIN CTE_SKU ON CTE_SKU.SKU_STOCKCODE = CTE_JTR.SKU GROUP BY --JTR (job transdactions) PLU, PLU_DESCRIPTION, SKU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, CTE_JTR.JOBNO, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, DESCRIPTION, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, --JHD (job header) CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN CTE_DAC.DAC_HEAD_ACCNO ELSE ACCNO END, ACCNO, CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN ACCNO ELSE -1 END, CTE_JHD.STATUS, ISCONFIRMED, CREATE_DATE, ORDERDATE, ACTIVATION_DATE, DUEDATE, FINALISATION_DATE, CALLBACK_DATE, PHYS_STAFF, SALESNO, CONTACTNO, CURRENCYNO, LINETYPE, LINESTATUS, LINKEDITEM, COSTGROUP, COSTTYPE, PROGRESSINVOICE, SCHEDULENO, BILLINGID, BILLINGREF, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, SALESGL, SALESSUBGL, ---- PERIODID, --SKU (stock items) SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SKU_SUPPLIERNO, SIZEID, COLOURID, SALES_GL_CODE, SALES_GLSUBCODE, --DAC (debtors account) ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP )
/** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(JPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(BRH.BRANCHNAME, 'No Branch')) AS BRANCHNAME, (CAST(JPU.ACCNO AS VARCHAR) + '.' + ISNULL(DAA.NAME, 'No Entered Debtor')) AS ACCNAME_ENTERED, (CAST(JPU.ACCNO_SALES AS VARCHAR) + '.' + ISNULL(DAS.NAME, 'No Sales Debtor')) AS ACCNAME_SALES, (CAST(JPU.ACCNO_BRANCH AS VARCHAR) + '.' + ISNULL(DAB.NAME, 'No Branch Debtor')) AS ACCNAME_BRANCH, (CAST(JPU.SKU_SUPPLIERNO AS VARCHAR) + '.' + ISNULL(CAS.NAME, 'No Supplier')) AS ACCNAME_SUPPLIER, (CAST(JPU.ACCGROUP AS VARCHAR) + '.' + ISNULL(DG1.GROUPNAME, 'No Debtor Account Group')) AS ACCGROUP1NAME, (CAST(JPU.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(DG2.GROUPNAME, 'No Debtor Account Group 2')) AS ACCGROUP2NAME, (CAST(JPU.ACCPRICEGROUP AS VARCHAR) + '.' + ISNULL(DGP.GROUPNAME, 'No Debtor Price Group')) AS ACCGROUPPNAME, (CAST(JPU.SALESNO AS VARCHAR) + '.' + ISNULL(SFS.NAME, 'No Manager')) AS STAFFNAME, (CAST(JPU.PHYS_STAFF AS VARCHAR) + '.' + ISNULL(SFP.NAME, 'No Staff')) AS STAFFNAMEPHYS, (CAST(JPU.GLACCNO AS VARCHAR) + '.' + ISNULL(GLA.NAME, 'No GL Account')) AS GLACCNAME, (CAST(JPU.GLSUBACC AS VARCHAR) + '.' + ISNULL(GLS.NAME, 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(JPU.LOCATION AS VARCHAR) + '.' + ISNULL(LOC.LNAME, 'No Location')) AS LOCATIONNAME, (CAST(JPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(CUY.CURRNAME, 'No Currency')) AS CURRENCYNAME, (CAST(JPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(CUY.CURRCODE, 'No Currency')) AS CURRENCYCODE, (CAST(JPU.TAXNO AS VARCHAR) + '.' + ISNULL(TAX.NAME, 'No Tax')) AS TAXNAME, ---- PES.AGE AS AGE, ---- PES.YEARAGE AS YEARAGE, ---- (PES.PERIODID + '.' + PES.PERIODNAME) AS PERIODNAME, (CAST(JPU.STOCKGROUP AS VARCHAR) + '.' + ISNULL(SG1.GROUPNAME, 'No Stock Group')) AS STOCKGROUP1NAME, (CAST(JPU.STOCKGROUP2 AS VARCHAR) + '.' + ISNULL(SG2.GROUPNAME, 'No Stock Group 2')) AS STOCKGROUP2NAME, (CAST(JPU.STOCKPRICEGROUP AS VARCHAR) + '.' + ISNULL(SGP.GROUPNAME, 'No Stock Price Group')) AS STOCKGROUPPNAME, (JPU.BOMCODE + '.' + ISNULL(BOM.DESCRIPTION, 'No BOM')) AS BOMNAME, (RTRIM(PLU) + '.' + ISNULL(RTRIM(PLU_DESCRIPTION), 'No PLU')) AS PLU_NAME, (RTRIM(SKU) + '.' + ISNULL(RTRIM(SKU_DESCRIPTION), 'No SKU')) AS SKU_NAME, (JPU.ORDSTATUS + '.' + ISNULL(JST.STATUSDESC, 'No Status')) AS STATUSNAME, (CAST(JPU.COSTGROUP AS VARCHAR) + '.' + ISNULL(JCG.COSTDESC, 'No Cost Group')) AS COSTGROUPNAME, (CAST(JPU.COSTTYPE AS VARCHAR) + '.' + ISNULL(JCT.COSTDESC, 'No Cost Type')) AS COSTTYPENAME, (CAST(JPU.PROJECTNO AS VARCHAR) + '.' + ISNULL(JPR.PROJ_TITLE, 'No Project')) AS PROJECTNAME, (CAST(JPU.CATEGORY AS VARCHAR) + '.' + ISNULL(JCY.CATDESC, 'No Category')) AS CATEGORYNAME, (CAST(JPU.JOBTYPE AS VARCHAR) + '.' + ISNULL(JTP.TYPEDESC, 'No Job Type')) AS JOBTYPENAME, (CAST(JPU.BILLINGMODE AS VARCHAR) + '.' + (CASE BILLINGMODE WHEN 0 THEN 'Charge-Up' WHEN 1 THEN 'Invoice Ex-Quote' WHEN 2 THEN 'Manufacture - Output Items' WHEN 3 THEN 'Progress Invoices' ELSE 'No Job Type' END)) AS BILLINGMODENAME,
--From Sales Permutations --DIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, JPU.BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBNO, JOBCODE, MASTER_JOBNO, CUSTORDNO, TITLE, JPU.DESCRIPTION, GLACCNO, JPU.GLSUBACC, JPU.BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, JPU.ACCNO, ACCNO_SALES, ACCNO_BRANCH, ORDSTATUS, ISCONFIRMED, CREATE_DATE, ORDERDATE, ACTIVATION_DATE, DUEDATE, FINALISATION_DATE, CALLBACK_DATE, JPU.SALESNO, CONTACTNO, JPU.CURRENCYNO, LINETYPE, LINESTATUS, LINKEDITEM, COSTGROUP, COSTTYPE, PROGRESSINVOICE, SCHEDULENO, BILLINGID, BILLINGREF, CATEGORY, JOBTYPE, BILLINGMODE, PROJECTNO, PHYS_STAFF, ---- CTE_SPU.PERIODID, --PLU (stock items) JPU.PLU_DESCRIPTION, JPU.STOCKGROUP, JPU.STOCKGROUP2, JPU.STOCKPRICEGROUP, SIZEID, COLOURID, --SKU (stock items) SKU_ISACTIVE, SKU_STATUS, JPU.SKU_BN, JPU.SKU_SN, SKU_SUPPLIERNO, --DAC (debtors account) ACCISACTIVE, JPU.ACCGROUP, JPU.ACCGROUP2, ACCPRICEGROUP, --Measures --DAC AVEDAYS, --DIL (invoice line) ROUND(OQUANTITY, VDP.QTYDECIMALS) AS OQUANTITY, ROUND(OCOST, 2) AS OCOST, ROUND(OVALDISC, 2) AS OVALDISC, ROUND(OVAL, 2) AS OVAL, ROUND(OVALLIST, 2) AS OVALLIST, ROUND(OVALTAX, 2) AS OVALTAX, ROUND(OVALTAXINC, 2) AS OVALTAXINC, ROUND(OVALFC, 2) AS OVALFC, ROUND((OVAL-OCOST), 2) AS OPROFIT, ROUND(CASE WHEN OCOST <> 0 THEN (((OVAL-OCOST)/OCOST)*100) ELSE 100 END, 2) AS OMARKUPPC, ROUND(CASE WHEN OVAL <> 0 THEN (((OVAL-OCOST)/OVAL)*100) ELSE 100 END, 2) AS OMARGINPC, ROUND(CASE WHEN BUYRATE =0 THEN 1 ELSE BUYRATE END, 4) AS OEXCHRATE, ROUND(CASE WHEN OQUANTITY =0 THEN OCOST ELSE OCOST/ABS(OQUANTITY) END, COSTPRDECIMALS) AS OUNITCOST, ROUND(CASE WHEN OQUANTITY =0 THEN OVAL/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end) ELSE (OVAL/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end))/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICE, ROUND(CASE WHEN OQUANTITY =0 THEN OVALTAXINC/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end) ELSE (OVALTAXINC/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end))/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICETAXINC, ROUND(CASE WHEN OQUANTITY =0 THEN OVALFC ELSE OVALFC/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICEFC, ROUND(OUNINVOICED, VDP.QTYDECIMALS) AS OUNINVOICED, ROUND(OVALPENDING, 2) AS OVALPENDING, ROUND(OVALRETENTION, 2) AS OVALRETENTION, WORKDAYS, --Custom --Number of rows FREQUENCY --Join structure FROM CTE_JPU JPU LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON JPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.DR_ACCS DAA WITH (NOLOCK) ON JPU.ACCNO = DAA.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAS WITH (NOLOCK) ON JPU.ACCNO_SALES = DAS.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAB WITH (NOLOCK) ON JPU.ACCNO_BRANCH = DAB.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAS WITH (NOLOCK) ON JPU.SKU_SUPPLIERNO = CAS.ACCNO LEFT OUTER JOIN dbo.DR_ACCGROUPS DG1 WITH (NOLOCK) ON JPU.ACCGROUP = DG1.ACCGROUP LEFT OUTER JOIN dbo.DR_ACCGROUP2S DG2 WITH (NOLOCK) ON JPU.ACCGROUP2 = DG2.ACCGROUP LEFT OUTER JOIN dbo.DR_PRICEGROUPS DGP WITH (NOLOCK) ON JPU.ACCPRICEGROUP = DGP.GROUPNO LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON JPU.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.STAFF SFP WITH (NOLOCK) ON JPU.PHYS_STAFF = SFP.STAFFNO LEFT OUTER JOIN dbo.GLACCS GLA WITH (NOLOCK) ON JPU.GLACCNO = GLA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GLS WITH (NOLOCK) ON JPU.GLACCNO = GLS.ACCNO AND JPU.GLSUBACC = GLS.SUBACCNO LEFT OUTER JOIN dbo.STOCK_LOCATIONS LOC WITH (NOLOCK) ON JPU.LOCATION = LOC.LOCNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON JPU.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON JPU.TAXNO = TAX.SEQNO ---- LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON CTE_JPU.PERIODID = PES.SEQNO LEFT OUTER JOIN dbo.STOCK_GROUPS SG1 WITH (NOLOCK) ON JPU.STOCKGROUP = SG1.GROUPNO LEFT OUTER JOIN dbo.STOCK_GROUP2S SG2 WITH (NOLOCK) ON JPU.STOCKGROUP2 = SG2.GROUPNO LEFT OUTER JOIN dbo.STOCK_PRICEGROUPS SGP WITH (NOLOCK) ON JPU.STOCKPRICEGROUP = SGP.GROUPNO LEFT OUTER JOIN dbo.BILLOMAT_HDR BOM WITH (NOLOCK) ON JPU.BOMCODE = BOM.BILLCODE LEFT OUTER JOIN dbo.JOB_STATUS JST WITH (NOLOCK) ON JPU.ORDSTATUS = JST.STATUSKEY LEFT OUTER JOIN dbo.JOB_COSTGROUPS JCG WITH (NOLOCK) ON JPU.COSTGROUP = JCG.SEQNO LEFT OUTER JOIN dbo.JOB_COSTTYPES JCT WITH (NOLOCK) ON JPU.COSTTYPE = JCT.SEQNO LEFT OUTER JOIN dbo.JOBCOST_PROJ JPR WITH (NOLOCK) ON JPU.PROJECTNO = JPR.SEQNO LEFT OUTER JOIN dbo.JOB_CATEGORIES JCY WITH (NOLOCK) ON JPU.CATEGORY = JCY.CATNO LEFT OUTER JOIN dbo.JOB_TYPES JTP WITH (NOLOCK) ON JPU.JOBTYPE = JTP.TYPENO LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_FACT_PROPERTIES
Name | VW_FACT_PROPERTIES |
Note | |
Code | /** FIELDLEVEL settings (Same as for PROFILE_FIELDS) 1 N/A flEssential {Business Essentials (Reserved - see notes)} 2 Frequently used flBasic {Basics to check in every setup} 3 Occasionally used flCommon {Detail settings used on some sites} Occasionally used 4 Rarely used flOccasional {Less frequently used features/ detail} 5 Custom lCustom {Custom options - special low use features} 6 N/A flWIP {Feature in development. Special Ctrl-Alt-F12 reveal in ExoCfg} * * Create base view **/ CREATE VIEW [dbo].[VW_FACT_PROPERTIES] AS WITH CTE_OBJ AS (SELECT so.xtype AS TYPE, UPPER(CASE so.xtype WHEN 'TR' THEN 'Trigger' WHEN 'U' THEN 'Table' WHEN 'P' THEN 'Procedure' WHEN 'V' THEN 'View' WHEN 'FN' THEN 'Function' WHEN 'TF' THEN 'Table Function' ELSE 'Unknown' END) AS TYPENAME, so.name AS ONAME, CASE WHEN (sc.text IS NOT NULL AND (sc.text LIKE '%**CUSTOM%' OR sc.text LIKE '%** CUSTOM%')) THEN 'Y' ELSE 'N' END AS FLAGGED_CUSTOM, NULL AS CTYPE, NULL AS CTYPENAME, NULL AS CNAME, 0 AS CSIZE, 0 AS CORDER, NULL AS COLLATION FROM sys.sysobjects AS so LEFT OUTER JOIN sys.syscomments AS sc ON sc.id = so.id WHERE (so.name LIKE '%FACT%') UNION SELECT so.xtype AS TYPE, UPPER(CASE so.xtype WHEN 'TR' THEN 'Trigger' WHEN 'U' THEN 'Table' WHEN 'P' THEN 'Procedure' WHEN 'V' THEN 'View' WHEN 'FN' THEN 'Function' ELSE 'Unknown' END) AS TYPENAME, so.name, 'N' AS FLAGGED_CUSTOM, sf.xusertype AS CTYPE, UPPER(CASE sf.xusertype WHEN 34 THEN 'Image' WHEN 36 THEN 'Unique Identifier' WHEN 35 THEN 'Text' WHEN 48 THEN 'Tiny Int' WHEN 52 THEN 'SmallInt' WHEN 56 THEN 'Integer' WHEN 58 THEN 'SamllDateTime' WHEN 59 THEN 'Real' WHEN 60 THEN 'Money' WHEN 61 THEN 'DateTime' WHEN 62 THEN 'Float' WHEN 98 THEN 'SQL Variant' WHEN 99 THEN 'NText' WHEN 104 THEN 'Bit' WHEN 106 THEN 'Decimal' WHEN 108 THEN 'Numeric' WHEN 122 THEN 'SmallMoney' WHEN 127 THEN 'BigInt' WHEN 167 THEN 'Varchar' WHEN 189 THEN 'TimeStamp' WHEN 173 THEN 'Binary' WHEN 175 THEN 'Char' WHEN 231 THEN 'NVarchar' WHEN 241 THEN 'XML' ELSE 'Unknown' END) AS CTYPENAME, sf.name AS CNAME, sf.length AS CSIZE, 0 AS CORDER, sf.collation FROM sys.syscolumns AS sf LEFT OUTER JOIN sys.sysobjects AS so ON so.id = sf.id WHERE (so.xtype <> 'S')), CTE_OBJ_DESC AS (SELECT t.name AS ObjName, c.name AS ColumnName, ep.value AS MS_Description FROM sys.extended_properties AS ep INNER JOIN sys.views AS t ON ep.major_id = t.object_id INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE (ep.class = 1) AND (ep.name = 'MS_Description')), CTE_OBJ_CLASS AS (SELECT t.name AS ObjName, c.name AS ColumnName, ep.value AS EXO_Class FROM sys.extended_properties AS ep INNER JOIN sys.views AS t ON ep.major_id = t.object_id INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE (ep.class = 1) AND (ep.name = 'EXO_Class')), CTE_OBJ_HIVE AS (SELECT t.name AS ObjName, c.name AS ColumnName, ep.value AS EXO_Hive FROM sys.extended_properties AS ep INNER JOIN sys.views AS t ON ep.major_id = t.object_id INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE (ep.class = 1) AND (ep.name = 'EXO_Hive')), CTE_OBJ_LUOBJ AS (SELECT t.name AS ObjName, c.name AS ColumnName, ep.value AS EXO_LUobj FROM sys.extended_properties AS ep INNER JOIN sys.views AS t ON ep.major_id = t.object_id INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE (ep.class = 1) AND (ep.name = 'EXO_LUobj')), CTE_OBJ_LUCOL AS (SELECT t.name AS ObjName, c.name AS ColumnName, ep.value AS EXO_LUcol FROM sys.extended_properties AS ep INNER JOIN sys.views AS t ON ep.major_id = t.object_id INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE (ep.class = 1) AND (ep.name = 'EXO_LUcol')), CTE_OBJ_LUKEY AS (SELECT t.name AS ObjName, c.name AS ColumnName, ep.value AS EXO_LUkey FROM sys.extended_properties AS ep INNER JOIN sys.views AS t ON ep.major_id = t.object_id INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE (ep.class = 1) AND (ep.name = 'EXO_LUkey')), CTE_OBJ_LUFACT AS (SELECT t.name AS ObjName, c.name AS ColumnName, ep.value AS EXO_LUfact FROM sys.extended_properties AS ep INNER JOIN sys.views AS t ON ep.major_id = t.object_id INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE (ep.class = 1) AND (ep.name = 'EXO_LUfact')), CTE_DISP_NAME AS (SELECT NAMEID, DISPLAYNAME, DISPLAYHINT, CASE WHEN NAMEID LIKE 'CR%' THEN 'VW_FACT_PURCH%' WHEN NAMEID LIKE 'DR%' THEN 'VW_FACT_SALES%' WHEN NAMEID LIKE 'JOB%' THEN 'VW_FACT_JOB%' ELSE 'VW_FACT%' END AS FACT_PREFIX, CASE WHEN NAMEID LIKE 'CR%' THEN REPLACE(REPLACE(REPLACE(NAMEID, 'CR', ''), '_PRIMARY', ''), '_SECONDARY', '2') WHEN NAMEID LIKE 'DR%' THEN REPLACE(REPLACE(REPLACE(NAMEID, 'DR', ''), '_PRIMARY', ''), '_SECONDARY', '2') ELSE REPLACE(REPLACE(NAMEID, '_PRIMARY', ''), '_SECONDARY', '2') END AS FACT_NAME FROM dbo.DISPLAY_NAMES WHERE (NAMEID <> DISPLAYNAME) AND (NAMEID NOT LIKE '%ADDR%')), CTE_FACT AS (SELECT OB.TYPE, OB.TYPENAME, OB.ONAME, OB.FLAGGED_CUSTOM, OB.CTYPE, OB.CTYPENAME, OB.CNAME, OB.CSIZE, OB.CORDER, OB.COLLATION, ISNULL(RTRIM(CAST(OD.MS_Description AS nvarchar(255))), OB.CNAME) AS EDESCRIPTION, ISNULL(RTRIM(CAST(OC.EXO_Class AS nvarchar(255))), 'Dimension') AS ECLASS, ISNULL(RTRIM(CAST(OH.EXO_Hive AS nvarchar(255))), '*') AS EHIVE, RTRIM(CAST(LO.EXO_LUobj AS nvarchar(255))) AS ELUOBJ, RTRIM(CAST(LC.EXO_LUcol AS nvarchar(255))) AS ELUCOL, RTRIM(CAST(LK.EXO_LUkey AS nvarchar(255))) AS ELUKEY, ISNULL(RTRIM(CAST(LF.EXO_LUfact AS nvarchar(255))), OB.CNAME) AS ELUFACT, ISNULL(RTRIM(DN.DISPLAYNAME), ISNULL(RTRIM(CAST(OD.MS_Description AS nvarchar(255))), OB.CNAME)) AS EDPYDESC, ISNULL(FG.NOTES, ' ') AS ENOTES, (CASE isnull(FG.FIELDLEVEL, 0) WHEN 0 THEN 'Commonly used' WHEN 1 THEN 'Essential' WHEN 2 THEN 'Frequently used' WHEN 3 THEN 'Occasionally used' WHEN 4 THEN 'Rarely used' ELSE 'Unknown' END) AS ELEVEL FROM CTE_OBJ AS OB LEFT OUTER JOIN CTE_OBJ_DESC AS OD ON OD.ObjName = OB.ONAME AND OD.ColumnName = OB.CNAME LEFT OUTER JOIN CTE_OBJ_CLASS AS OC ON OC.ObjName = OB.ONAME AND OC.ColumnName = OB.CNAME LEFT OUTER JOIN CTE_OBJ_HIVE AS OH ON OH.ObjName = OB.ONAME AND OH.ColumnName = OB.CNAME LEFT OUTER JOIN CTE_OBJ_LUOBJ AS LO ON LO.ObjName = OB.ONAME AND LO.ColumnName = OB.CNAME LEFT OUTER JOIN CTE_OBJ_LUCOL AS LC ON LC.ObjName = OB.ONAME AND LC.ColumnName = OB.CNAME LEFT OUTER JOIN CTE_OBJ_LUKEY AS LK ON LK.ObjName = OB.ONAME AND LK.ColumnName = OB.CNAME LEFT OUTER JOIN CTE_OBJ_LUFACT AS LF ON LF.ObjName = OB.ONAME AND LF.ColumnName = OB.CNAME LEFT OUTER JOIN CTE_DISP_NAME AS DN ON OB.ONAME LIKE DN.FACT_PREFIX AND DN.FACT_NAME = OB.CNAME LEFT OUTER JOIN dbo.FACT_GLOSSARY AS FG ON FG.FIELDNAME = OB.CNAME WHERE (OB.ONAME LIKE '%FACT%')) SELECT TYPE, TYPENAME, ONAME, FLAGGED_CUSTOM, CTYPE, CTYPENAME, CNAME, CSIZE, CORDER, COLLATION, EDESCRIPTION, ECLASS, EHIVE, ELUOBJ, ELUCOL, ELUKEY, ELUFACT, EDPYDESC, ENOTES, ELEVEL, (CASE WHEN ELUOBJ IS NULL THEN CASE WHEN CTYPEname LIKE '%CHAR%' THEN (CNAME + ' LIKE ''''') ELSE (CNAME + ' = ') END ELSE (ELUFACT + ' IN (SELECT ' + ELUKEY + ' FROM ' + ELUOBJ + ' WHERE ' + ELUCOL + ' LIKE '''')') END) AS ELUSQL FROM CTE_FACT AS FT
|
View: VW_FACT_PURCHASES
Name | VW_FACT_PURCHASES |
Note | |
Code | -- Sales fact view for debtors invoices CREATE VIEW [dbo].[VW_FACT_PURCHASES] -- Indexed view --WITH SCHEMABINDING AS /** Purchases fact view for debtors invoices DR_INVLINE driven **/
/** setup CTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- STOCK_ITEMS - Price Lookup Item -------------------------------------------------------------------- CTE_PLU (PLU_STOCKCODE, -- Internal SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, COSCOST, -- Dimensions (alias) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, CASE (SELECT CAST(FIELDVALUE AS INTEGER) FROM dbo.PROFILE_VALUES WHERE FIELDNAME = 'STOCKCOSTMETHOD' AND PROFILEID = -1) WHEN 2 THEN ISNULL(STDCOST, 0) WHEN 1 THEN ISNULL(LATESTCOST, 0) ELSE ISNULL(AVECOST, 0) END AS COSCOST, -- Dimensions (database) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, X_SIZEID, X_COLOURID, -- Measures (database) -- Custom (database) 'PLU' FROM dbo.STOCK_ITEMS PLU WITH (NOLOCK) ) , -- STOCK_ITEMS - Stock Keeping Item -------------------------------------------------------------------- CTE_SKU (SKU_STOCKCODE, -- Internal -- Dimensions (alias) SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) -- Dimensions (database) DESCRIPTION, ISACTIVE, STATUS, HAS_BN, HAS_SN, SUPPLIERNO, -- Measures (database) -- Custom (database) 'SKU' FROM dbo.STOCK_ITEMS SKU WITH (NOLOCK) ) , -- CR_ACCS ------------------------------------------------------------------------ CTE_CAC (CAC_ACCNO, -- Internal (alias) CAC_HEAD_ACCNO, -- Dimensions (alias) ACCISACTIVE, ACCGROUP, ACCGROUP2, -- Measures (alias) AVEDAYS, -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) HEAD_ACCNO, -- Dimensions (database) ISACTIVE, ACCGROUP, ACCGROUP2, -- Measures (database) AVE_DAYS_TO_PAY, -- Custom (database) 'CAC' FROM dbo.DR_ACCS CAC WITH (NOLOCK) ) , -- CONTACTS ------------------------------------------------------------------------ CTE_CON (CON_SEQNO, -- Dimensions (alias) CONT_ISACTIVE, -- Measures (alias) CONT_NAME, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Dimensions (database) ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CONTACTS CON WITH (NOLOCK) ), -- CR_TRANS (invoices) ------------------------------------------------------------------------ CTE_CT1 (PO_SEQNO, SESSION_ID, -- Dimensions (alias) TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, ACCNO, ACCNO_PURCH, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, PERIODID, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT PO_SEQNO, SESSION_ID, -- Dimensions (database) SEQNO, ISNULL(INVNO, '') AS INVNO, ISNULL(REF1, '') AS REF1, ISNULL(REF2, '') AS REF2, ISNULL(REF3, '') AS REF3, ISNULL(SESSION_ID, -1) AS SESSIONID, ACCNO, PURCH_ACCNO, BRANCH_ACCNO, ISNULL(DUEDATE, ISNULL(TRANSDATE, GETDATE())) AS DUEDATE, ISNULL(TRANSDATE, GETDATE()) AS TRANSDATE, ISNULL(POSTTIME, GETDATE()) AS POSTTIME, ISNULL(SALESNO, -1) AS SALESNO, ISNULL(CONTACT_SEQNO, -1) AS CONTACT_SEQNO, ISNULL(CURRENCYNO, -1) AS CURRENCYNO, ISNULL(PERIOD_SEQNO, -1) AS PERIOD_SEQNO, -- Measures (database) -- Custom (database) 'CT1' FROM dbo.CR_TRANS CT1 WITH (NOLOCK) WHERE TRANSTYPE=1 ), -- CR_INVLINES (invoices) ---------------------------------------------------------------------- CTE_CIL (CIL_HDR_SEQNO, JOBNO, LINE_SOURCE, -- Dimensions (alias) PLU, PLU_DESCRIPTION, SKU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, -- Measures (alias) IQUANTITY, IVALDISC, IVAL, IVALTAX, IVALTAXINC, IVALFC, -- Custom (alias) CTE) AS (SELECT HDR_SEQNO, JOBNO, LINE_SOURCE, -- Dimensions (database) ISNULL(STOCKCODE, '') AS STOCKCODE, ISNULL(CIL.DESCRIPTION, '') AS DESCRIPTION, (CASE WHEN(LINKED_STOCKCODE IS NULL OR LINKED_STOCKCODE = '') THEN STOCKCODE ELSE LINKED_STOCKCODE END) AS LINKED_STOCKCODE, ISNULL(KITCODE, '') AS KITCODE, ISNULL(BRANCHNO, -1) AS BRANCHNO, ISNULL(LOCATION, -1) AS LOCATION, ISNULL(TAXRATE_NO, -1) AS TAXRATE_NO, ISNULL(BATCHCODE, '') AS BATCHCODE, ISNULL(JOBCODE, '') AS JOBCODE, ISNULL(ANALYSIS, -1) AS ANALYSIS, ISNULL(SUBCODE, -1) AS SUBCODE, ISNULL(BOMTYPE, 'N') AS BOMTYPE, ISNULL(PRICE_OVERRIDDEN, 'N') AS PRICE_OVERRIDDEN, ISNULL(LINETYPE, -1), ISNULL(LINKEDSTATUS, 'N'), ISNULL(DRINVLINEID, CIL.SEQNO) AS DRINVLINEID, -- Measures (database) QUANTITY, ((QUANTITY*UNITPRICE*DISCOUNT/100)/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end)) AS DISCVAL, LINETOTAL/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end) AS SELLVAL, LINETOTAL_TAX/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end) AS TAXVAL, LINETOTAL_INCTAX/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end) AS TAXINCVAL, LINETOTAL AS FCVAL, -- Custom (database) 'CIL' FROM dbo.DR_INVLINES CIL WITH (NOLOCK) WHERE LINETYPE <> 4 AND NOT (LINETYPE = -1 AND STOCKCODE = ' ') AND HDR_SEQNO >= ISNULL(( SELECT MINTRANSEQNO FROM dbo.PERIOD_STATUS PS WHERE LEDGER ='C' AND PS.AGE = (SELECT ANALYSIS_AGE_LIMIT FROM dbo.LEDGER_PERIODS LP WHERE LP.SEQNO=1)) , 0) ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable ), -- Sales Permutations -------------------------------------------------------------------- CTE_PPU ( --Dimensions (alias) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, PERIODID, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, PLU_DESCRIPTION, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, ACCISACTIVE, ACCGROUP, ACCGROUP2, --Measures (alias) AVEDAYS, IQUANTITY, IVALDISC, IVAL, IVALTAX, IVALTAXINC, IVALFC, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) --CIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, CASE WHEN ISNULL(GLACCNO, 0) > 0 THEN GLACCNO ELSE ISNULL((SELECT PURCH_GL_CODE FROM CTE_PLU WHERE CTE_PLU.PLU_STOCKCODE = CTE_CIL.PLU) , (SELECT DEF_PURCH FROM dbo.GL_CONTROL)) END AS GLACCNO, GLSUBACC, CTE_CIL.BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, --CT1 (invoice) TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, ACCNO, ISNULL(ACCNO_PURCH, ACCNO) AS ACCNO_SALES, ISNULL(ACCNO_BRANCH, -1) AS ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, PERIODID, --SKU (stock items) ISNULL(SKU_ISACTIVE, 'N') AS SKU_ISACTIVE, ISNULL(SKU_STATUS, 'L') AS SKU_STATUS, ISNULL(SKU_BN, 'N') AS SKU_BN, ISNULL(SKU_SN, 'N') AS SKU_SN, ISNULL(SKU_SUPPLIERNO, -1) AS SKU_SUPPLIERNO, --PLU (stock items) PLU_DESCRIPTION, ISNULL(STOCKGROUP, -1) AS STOCKGROUP, ISNULL(STOCKGROUP2, -1) AS STOCKGROUP2, ISNULL(STOCKPRICEGROUP, -1) AS STOCKPRICEGROUP, ISNULL(SIZEID, -1) AS SIZEID, ISNULL(COLOURID, -1) AS COLOURID, --CAC (debtors account) ISNULL(ACCISACTIVE, 'N') AS ACCISACTIVE, ISNULL(ACCGROUP, -1) AS ACCGROUP, ISNULL(ACCGROUP2, -1) AS ACCGROUP2, --Measures --CAC MIN(ISNULL(AVEDAYS, 0)) AS AVEDAYS, --CIL (invoice line) SUM(ISNULL(IQUANTITY, 0)) AS IQUANTITY, SUM(ISNULL(IVALDISC, 0)) AS IVALDISC, SUM(ISNULL(IVAL, 0)) AS IVAL, SUM(ISNULL(IVALTAX, 0)) AS IVALTAX, SUM(ISNULL(IVALTAXINC, 0)) AS IVALTAXINC, SUM(ISNULL(IVALFC, 0)) AS IVALFC, --Custom --Number of rows (and code marker) 'PPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_CIL LEFT OUTER JOIN CTE_CT1 ON CTE_CT1.TRANSEQNO = CTE_CIL.CIL_HDR_SEQNO LEFT OUTER JOIN CTE_CAC ON CTE_CAC.CAC_ACCNO = CTE_CT1.ACCNO LEFT OUTER JOIN CTE_CON ON CTE_CON.CON_SEQNO = CTE_CT1.CONTACTNO LEFT OUTER JOIN CTE_SKU ON CTE_SKU.SKU_STOCKCODE = CTE_CIL.SKU LEFT OUTER JOIN CTE_PLU ON CTE_PLU.PLU_STOCKCODE = CTE_CIL.PLU GROUP BY --CIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, CTE_CIL.BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, --DT1 (invoice) TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, ACCNO, ISNULL(ACCNO_PURCH, ACCNO), ISNULL(ACCNO_BRANCH, -1), DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, PERIODID, --SKU (stock items) ISNULL(SKU_ISACTIVE, 'N'), ISNULL(SKU_STATUS, 'L'), ISNULL(SKU_BN, 'N'), ISNULL(SKU_SN, 'N'), ISNULL(SKU_SUPPLIERNO, -1), --PLU (stock items) PLU_DESCRIPTION, ISNULL(STOCKGROUP, -1), ISNULL(STOCKGROUP2, -1), ISNULL(STOCKPRICEGROUP, -1), ISNULL(SIZEID, -1), ISNULL(COLOURID, -1), --CAC (debtors account) ISNULL(ACCISACTIVE, 'N'), ISNULL(ACCGROUP, -1), ISNULL(ACCGROUP2, -1) ) /** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(PPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST(PPU.ACCNO AS VARCHAR) + '.' + ISNULL(RTRIM(CAA.NAME), 'No Entered Creditor')) AS ACCNAME_ENTERED, (CAST(PPU.ACCNO_SALES AS VARCHAR) + '.' + ISNULL(RTRIM(CAP.NAME), 'No Sales Creditor')) AS ACCNAME_SALES, (CAST(PPU.ACCNO_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(CAB.NAME), 'No Branch Creditor')) AS ACCNAME_BRANCH, (CAST(PPU.SKU_SUPPLIERNO AS VARCHAR) + '.' + ISNULL(RTRIM(CAS.NAME), 'No Supplier')) AS ACCNAME_SUPPLIER, (CAST(PPU.ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(CG1.GROUPNAME), 'No Creditor Account Group')) AS ACCGROUP1NAME, (CAST(PPU.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(CG2.GROUPNAME), 'No Creditor Account Group 2')) AS ACCGROUP2NAME, (CAST(PPU.SALESNO AS VARCHAR) + '.' + ISNULL(RTRIM(SFS.NAME), 'No Ordered By')) AS STAFFNAME, -- (CAST(PPU.PHYS_STAFF AS VARCHAR) + '.' + ISNULL(RTRIM(SFP.NAME), 'No Staff')) AS STAFFNAMEPHYS, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(PPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLCODE, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GLA.NAME), 'No GL Account')) AS GLACCNAME, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(PPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GLS.NAME), RTRIM(GLA.NAME)), 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(PPU.LOCATION AS VARCHAR) + '.' + ISNULL(RTRIM(LOC.LNAME), 'No Location')) AS LOCATIONNAME, (CAST(PPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(PPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, (CAST(PPU.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'No Tax')) AS TAXNAME, ISNULL(PES.AGE, -1) AS AGE, ISNULL(PES.YEARAGE, -1) AS YEARAGE, (CAST(ISNULL(PPU.PERIODID, -1) AS VARCHAR) + '.' + ISNULL(RTRIM(PES.PERIODNAME), 'No Period')) AS PERIODNAME, (CAST(PPU.STOCKGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(SG1.GROUPNAME), 'No Stock Group')) AS STOCKGROUP1NAME, (CAST(PPU.STOCKGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(SG2.GROUPNAME), 'No Stock Group 2')) AS STOCKGROUP2NAME, (CAST(PPU.STOCKPRICEGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(SGP.GROUPNAME), 'No Stock Price Group')) AS STOCKGROUPPNAME, (RTRIM(PPU.BOMCODE) + '.' + ISNULL(RTRIM(BOM.DESCRIPTION), 'No BOM')) AS BOMNAME, (RTRIM(PLU) + '.' + ISNULL(RTRIM(PLU_DESCRIPTION), 'No PLU')) AS PLU_NAME, (RTRIM(SKU) + '.' + ISNULL(RTRIM(SKU_DESCRIPTION), 'No SKU')) AS SKU_NAME, --From Sales Permutations --CIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, PPU.BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, GLACCNO, PPU.GLSUBACC, PPU.BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, --DT1 (invoice) TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, PPU.ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, PPU.SALESNO, CONTACTNO, PPU.CURRENCYNO, PPU.PERIODID, --PLU (stock items) PPU.PLU_DESCRIPTION, PPU.STOCKGROUP, PPU.STOCKGROUP2, PPU.STOCKPRICEGROUP, SIZEID, COLOURID, --SKU (stock items) SKU_ISACTIVE, SKU_STATUS, PPU.SKU_BN, PPU.SKU_SN, SKU_SUPPLIERNO, --CAC (debtors account) ACCISACTIVE, PPU.ACCGROUP, PPU.ACCGROUP2, --Measures --CAC AVEDAYS, --CIL (invoice line) ROUND(IQUANTITY, VDP.QTYDECIMALS) AS IQUANTITY, ROUND(IVALDISC, 2) AS IVALDISC, ROUND(IVAL, 2) AS IVAL, ROUND(IVALTAX, 2) AS IVALTAX, ROUND(IVALTAXINC, 2) AS IVALTAXINC, ROUND(IVALFC, 2) AS IVALFC, ROUND(CASE WHEN IVALFC =0 THEN 1 ELSE IVAL/IVALFC END, 4) AS IEXCHRATE, ROUND(CASE WHEN IQUANTITY =0 THEN IVAL ELSE IVAL/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICE, ROUND(CASE WHEN IQUANTITY =0 THEN IVAL ELSE IVALTAXINC/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICETAXINC, ROUND(CASE WHEN IQUANTITY =0 THEN IVALFC ELSE IVALFC/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICEFC, --Custom --Number of rows FREQUENCY --Join structure FROM CTE_PPU PPU LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON PPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.CR_ACCS CAA WITH (NOLOCK) ON PPU.ACCNO = CAA.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAP WITH (NOLOCK) ON PPU.ACCNO_SALES = CAP.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAB WITH (NOLOCK) ON PPU.ACCNO_BRANCH = CAB.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAS WITH (NOLOCK) ON PPU.SKU_SUPPLIERNO = CAS.ACCNO LEFT OUTER JOIN dbo.CR_ACCGROUPS CG1 WITH (NOLOCK) ON PPU.ACCGROUP = CG1.ACCGROUP LEFT OUTER JOIN dbo.CR_ACCGROUP2S CG2 WITH (NOLOCK) ON PPU.ACCGROUP2 = CG2.ACCGROUP LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON PPU.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.GLACCS GLA WITH (NOLOCK) ON PPU.GLACCNO = GLA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GLS WITH (NOLOCK) ON PPU.GLACCNO = GLS.ACCNO AND PPU.GLSUBACC = GLS.SUBACCNO LEFT OUTER JOIN dbo.STOCK_LOCATIONS LOC WITH (NOLOCK) ON PPU.LOCATION = LOC.LOCNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON PPU.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON PPU.TAXNO = TAX.SEQNO LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON PPU.PERIODID = PES.SEQNO LEFT OUTER JOIN dbo.STOCK_GROUPS SG1 WITH (NOLOCK) ON PPU.STOCKGROUP = SG1.GROUPNO LEFT OUTER JOIN dbo.STOCK_GROUP2S SG2 WITH (NOLOCK) ON PPU.STOCKGROUP2 = SG2.GROUPNO LEFT OUTER JOIN dbo.STOCK_PRICEGROUPS SGP WITH (NOLOCK) ON PPU.STOCKPRICEGROUP = SGP.GROUPNO LEFT OUTER JOIN dbo.BILLOMAT_HDR BOM WITH (NOLOCK) ON PPU.BOMCODE = BOM.BILLCODE LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_FACT_PURCHORD
Name | VW_FACT_PURCHORD |
Note | |
Code | -- Purchase fact view for creditors purchase orders CREATE VIEW [dbo].[VW_FACT_PURCHORD] -- Indexed view WITH SCHEMABINDING AS
/** setup DTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- STOCK_ITEMS - Price Lookup Item -------------------------------------------------------------------- CTE_PLU (PLU_STOCKCODE, -- Internal SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, COSCOST, -- Dimensions (alias) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, CASE (SELECT CAST(FIELDVALUE AS INTEGER) FROM dbo.PROFILE_VALUES WHERE FIELDNAME = 'STOCKCOSTMETHOD' AND PROFILEID = -1) WHEN 2 THEN ISNULL(STDCOST, 0) WHEN 1 THEN ISNULL(LATESTCOST, 0) ELSE ISNULL(AVECOST, 0) END AS COSCOST, -- Dimensions (database) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, X_SIZEID, X_COLOURID, -- Measures (database) -- Custom (database) 'PLU' FROM dbo.STOCK_ITEMS PLU WITH (NOLOCK) ) , -- STOCK_ITEMS - Stock Keeping Item -------------------------------------------------------------------- CTE_SKU (SKU_STOCKCODE, -- Internal -- Dimensions (alias) SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) -- Dimensions (database) DESCRIPTION, ISACTIVE, STATUS, HAS_BN, HAS_SN, SUPPLIERNO, -- Measures (database) -- Custom (database) 'SKU' FROM dbo.STOCK_ITEMS SKU WITH (NOLOCK) ) , -- CR_ACCS ------------------------------------------------------------------------ CTE_CAC (CAC_ACCNO, -- Internal (alias) CAC_HEAD_ACCNO, -- Dimensions (alias) ACCISACTIVE, ACCGROUP, ACCGROUP2, -- Measures (alias) AVEDAYS, -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) HEAD_ACCNO, -- Dimensions (database) ISACTIVE, ACCGROUP, ACCGROUP2, -- Measures (database) AVE_DAYS_TO_PAY, -- Custom (database) 'CAC' FROM dbo.CR_ACCS DAC WITH (NOLOCK) ), -- CONTACTS ------------------------------------------------------------------------ CTE_CON (CON_SEQNO, -- Dimensions (alias) CONT_ISACTIVE, -- Measures (alias) CONT_NAME, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Dimensions (database) ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CONTACTS CON WITH (NOLOCK) ), -- PURCHORD_HDR ------------------------------------------------------------------------ CTE_PHD (PO, -- Dimensions (alias) ACCNO, STATUS, ISCONFIRMED, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SALESNO, CONTACTNO, CURRENCYNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, ---- PERIODID, -- Measures (alias) WORKDAYS, -- Custom (alias) CTE) AS (SELECT PHD.SEQNO, -- Dimensions (database) ACCNO, STATUS, CASE WHEN STATUS =3 THEN 'N' ELSE 'Y' END AS ISCONFIRMED, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, PHD.SALESNO, CONTACT_SEQNO, CURRENCYNO, ISNULL(REFERENCE, ''), ISNULL(PHT.PHYS_BRANCH, 0) AS PHYS_BRANCH, ISNULL(PHT.PHYS_STAFF, PHD.SALESNO) AS PHYS_STAFF, ---- ISNULL(dbo.FN_GET_PERIOD_SEQNO(ORDERDATE), -1) AS PERIODID, -- Measures (database) ISNULL(dbo.FN_GET_MANREP_DAYS(ACTIVATION_DATE, FINALISATION_DATE), 0) AS WORKDAYS, -- Custom (database) 'SHD' FROM dbo.PURCHORD_HDR PHD WITH (NOLOCK) LEFT OUTER JOIN ( select top 1 PO_HDR_SEQ, PHYS_BRANCH, PHYS_STAFF from dbo.PURCHORD_HIST PHT WITH (NOLOCK) where PHT.EVENT_TYPE = 'N' AND PHT.HISTORYNO =0) PHT ON PHT.PO_HDR_SEQ = PHD.SEQNO ), -- PURCHORD_LINES ---------------------------------------------------------------------- CTE_POL ( -- Dimensions (alias) PLU, PLU_DESCRIPTION, SKU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, PORDER, LINETYPE, LINKEDITEM, -- Measures (alias) OQUANTITY, OVALDISC, OVAL, OVALTAX, OVALTAXINC, OVALFC, OUNSUPPLIED, OUNINVOICED, OVALPENDING, -- Custom (alias) CTE) AS (SELECT -- Dimensions (database) STOCKCODE, POL.DESCRIPTION, (CASE WHEN(LINKED_STOCKCODE IS NULL OR LINKED_STOCKCODE = '') THEN STOCKCODE ELSE LINKED_STOCKCODE END) AS LINKED_STOCKCODE, ISNULL(KITCODE, ' '), ISNULL(BRANCHNO, 0), ISNULL(LOCATION, 1), TAXRATE_NO, ISNULL(BATCHCODE, ' '), ISNULL(JOBCODE, ' '), ANALYSIS, SUBCODE, BOMTYPE, PRICE_OVERRIDDEN, POLINEID, HDR_SEQNO, ISNULL(LINETYPE, -1), ISNULL(LINKEDSTATUS, 'N'), -- Measures (database) CORRECTED_QUANT AS OQUANTITY, (CORRECTED_QUANT*UNITPRICE*DISCOUNT/100) AS OVALDISC, LINETOTAL AS OVAL, LINETAX_OVERRIDE AS OVALTAX, (LINETOTAL+LINETAX_OVERRIDE) AS OVALTAXINC, LINETOTAL AS OVALFC, BKORD_QUANT AS OUNSUPPLIED, (SUP_QUANT-INV_QUANT) AS OUNINVOICED, ((SUP_QUANT-INV_QUANT)*UNITPRICE*DISCOUNT/100) AS OVALPENDING, -- Custom (database) 'POL' FROM dbo.PURCHORD_LINES POL WITH (NOLOCK) WHERE LINETYPE <> 4 AND NOT (LINETYPE = -1 AND STOCKCODE = ' ') ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable ), -- Permutations -------------------------------------------------------------------- CTE_PPU ( --Dimensions (alias) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, PORDER, LINETYPE, LINKEDITEM, ACCNO, ACCNO_SALES, ACCNO_BRANCH, ORDSTATUS, ISCONFIRMED, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SALESNO, CONTACTNO, CURRENCYNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, PLU_DESCRIPTION, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, ACCISACTIVE, ACCGROUP, ACCGROUP2, --Measures (alias) AVEDAYS, OQUANTITY, OCOST, OVALDISC, OVAL, OVALTAX, OVALTAXINC, OVALFC, OUNSUPPLIED, OUNINVOICED, OCOSTPENDING, OVALPENDING, WORKDAYS, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) --POL (purchase order lines) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, CASE WHEN ISNULL(GLACCNO, 0) > 0 THEN GLACCNO ELSE ISNULL(CTE_PLU.PURCH_GL_CODE, (SELECT DEF_PURCH FROM dbo.GL_CONTROL)) END AS GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, PORDER, LINETYPE, LINKEDITEM, --PHD (purchase order header) ISNULL((CASE WHEN CTE_CAC.CAC_HEAD_ACCNO >0 THEN CTE_CAC.CAC_HEAD_ACCNO ELSE ACCNO END), ACCNO) AS ACCNO, ACCNO AS ACCNO_SALES, ISNULL((CASE WHEN CTE_CAC.CAC_HEAD_ACCNO >0 THEN ACCNO ELSE -1 END), -1) AS ACCNO_BRANCH, CTE_PHD.STATUS, ISCONFIRMED, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SALESNO, CONTACTNO, CURRENCYNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, ---- PERIODID, --SKU (stock items) ISNULL(SKU_ISACTIVE, 'N') AS SKU_ISACTIVE, ISNULL(SKU_STATUS, 'L') AS SKU_STATUS, ISNULL(SKU_BN, 'N') AS SKU_BN, ISNULL(SKU_SN, 'N') AS SKU_SN, ISNULL(SKU_SUPPLIERNO, -1) AS SKU_SUPPLIERNO, --PLU (stock items) PLU_DESCRIPTION, ISNULL(STOCKGROUP, -1) AS STOCKGROUP, ISNULL(STOCKGROUP2, -1) AS STOCKGROUP2, ISNULL(STOCKPRICEGROUP, -1) AS STOCKPRICEGROUP, ISNULL(SIZEID, -1) AS SIZEID, ISNULL(COLOURID, -1) AS COLOURID, --DAC (debtors account) ISNULL(ACCISACTIVE, 'N') AS ACCISACTIVE, ISNULL(ACCGROUP, -1) AS ACCGROUP, ISNULL(ACCGROUP2, -1) AS ACCGROUP2, --Measures --DAC MIN(ISNULL(AVEDAYS, 0)) AS AVEDAYS, --SOL (invoice line) SUM(ISNULL(OQUANTITY, 0)) AS OQUANTITY, SUM(ISNULL(OQUANTITY, 0)*ISNULL(CTE_PLU.COSCOST, 0)) AS OCOST, SUM(ISNULL(OVALDISC, 0)) AS OVALDISC, SUM(ISNULL(OVAL, 0)) AS OVAL, SUM(ISNULL(OVALTAX, 0)) AS OVALTAX, SUM(ISNULL(OVALTAXINC, 0)) AS OVALTAXINC, SUM(ISNULL(OVALFC, 0)) AS OVALFC, SUM(ISNULL(OUNSUPPLIED, 0)) AS OUNSUPPLIED, SUM(ISNULL(OUNINVOICED, 0)) AS OUNINVOICED, SUM(ISNULL(OUNSUPPLIED, 0)*ISNULL(CTE_PLU.COSCOST, 0)) AS OCOSTPENDING, SUM(ISNULL(OVALPENDING, 0)) AS OVALPENDING, SUM(ISNULL(WORKDAYS, 0)) AS WORKDAYS, --Custom --Number of rows (and code marker) 'PPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_POL LEFT OUTER JOIN CTE_PHD ON CTE_PHD.PO = CTE_POL.PORDER LEFT OUTER JOIN CTE_CAC ON CTE_CAC.CAC_ACCNO = CTE_PHD.ACCNO LEFT OUTER JOIN CTE_CON ON CTE_CON.CON_SEQNO = CTE_PHD.CONTACTNO LEFT OUTER JOIN CTE_PLU ON CTE_PLU.PLU_STOCKCODE = CTE_POL.PLU LEFT OUTER JOIN CTE_SKU ON CTE_SKU.SKU_STOCKCODE = CTE_POL.SKU GROUP BY --SOL (sales order line) PLU, PLU_DESCRIPTION, SKU, BOMCODE, BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, PORDER, LINETYPE, LINKEDITEM, --SHD (sales order header) CASE WHEN CTE_CAC.CAC_HEAD_ACCNO >0 THEN CTE_CAC.CAC_HEAD_ACCNO ELSE ACCNO END, ACCNO, CASE WHEN CTE_CAC.CAC_HEAD_ACCNO >0 THEN ACCNO ELSE -1 END, CTE_PHD.STATUS, ISCONFIRMED, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SALESNO, CONTACTNO, CURRENCYNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, ---- PERIODID, --SKU (stock items) SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SKU_SUPPLIERNO, SIZEID, COLOURID, PURCH_GL_CODE, PURCH_GLSUBCODE, --DAC (debtors account) ACCISACTIVE, ACCGROUP, ACCGROUP2 ) /** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(PPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST(PPU.PHYS_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(BRP.BRANCHNAME), 'No Branch')) AS BRANCHNAMEPHYS, (CAST(PPU.ACCNO AS VARCHAR) + '.' + ISNULL(RTRIM(CAA.NAME), 'No Entered Creditor')) AS ACCNAME_ENTERED, (CAST(PPU.ACCNO_SALES AS VARCHAR) + '.' + ISNULL(RTRIM(CAP.NAME), 'No Sales Creditor')) AS ACCNAME_SALES, (CAST(PPU.ACCNO_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(CAB.NAME), 'No Branch Creditor')) AS ACCNAME_BRANCH, (CAST(PPU.SKU_SUPPLIERNO AS VARCHAR) + '.' + ISNULL(RTRIM(CAS.NAME), 'No Supplier')) AS ACCNAME_SUPPLIER, (CAST(PPU.ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(CG1.GROUPNAME), 'No Creditor Account Group')) AS ACCGROUP1NAME, (CAST(PPU.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(CG2.GROUPNAME), 'No Creditor Account Group 2')) AS ACCGROUP2NAME, (CAST(PPU.SALESNO AS VARCHAR) + '.' + ISNULL(RTRIM(SFS.NAME), 'No Ordered By')) AS STAFFNAME, (CAST(PPU.PHYS_STAFF AS VARCHAR) + '.' + ISNULL(RTRIM(SFP.NAME), 'No Staff')) AS STAFFNAMEPHYS, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(PPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLCODE, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GLA.NAME), 'No GL Account')) AS GLACCNAME, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(PPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GLS.NAME), RTRIM(GLA.NAME)), 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(PPU.LOCATION AS VARCHAR) + '.' + ISNULL(RTRIM(LOC.LNAME), 'No Location')) AS LOCATIONNAME, (CAST(PPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(PPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, ---- (CAST(PPU.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'No Tax')) AS TAXNAME, ---- PES.AGE AS AGE, ---- PES.YEARAGE AS YEARAGE, ---- (PPU.PERIODID + '.' + ISNULL(RTRIM(PES.PERIODNAME), 'No Period')) AS PERIODNAME, (CAST(PPU.STOCKGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(SG1.GROUPNAME), 'No Stock Group')) AS STOCKGROUP1NAME, (CAST(PPU.STOCKGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(SG2.GROUPNAME), 'No Stock Group 2')) AS STOCKGROUP2NAME, (CAST(PPU.STOCKPRICEGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(SGP.GROUPNAME), 'No Stock Price Group')) AS STOCKGROUPPNAME, (RTRIM(PPU.BOMCODE) + '.' + ISNULL(RTRIM(BOM.DESCRIPTION), 'No BOM')) AS BOMNAME, (RTRIM(PLU) + '.' + ISNULL(RTRIM(PLU_DESCRIPTION), 'No PLU')) AS PLU_NAME, (RTRIM(SKU) + '.' + ISNULL(RTRIM(SKU_DESCRIPTION), 'No SKU')) AS SKU_NAME,
--From Sales Permutations --DIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, PPU.BRANCHNO, LOCATION, TAXNO, BATCHCODE, JOBCODE, GLACCNO, PPU.GLSUBACC, PPU.BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, PORDER, LINETYPE, LINKEDITEM, PPU.ACCNO, ACCNO_SALES, ACCNO_BRANCH, ORDSTATUS, ISCONFIRMED, DUEDATE, ORDERDATE, --!!! OMIT FOR NOW !!! CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, PPU.SALESNO, CONTACTNO, PPU.CURRENCYNO, PPU.REFERENCE, PHYS_BRANCH, PHYS_STAFF, ---- CTE_SPU.PERIODID, --PLU (stock items) PPU.PLU_DESCRIPTION, PPU.STOCKGROUP, PPU.STOCKGROUP2, PPU.STOCKPRICEGROUP, SIZEID, COLOURID, --SKU (stock items) SKU_ISACTIVE, SKU_STATUS, PPU.SKU_BN, PPU.SKU_SN, SKU_SUPPLIERNO, --DAC (debtors account) ACCISACTIVE, PPU.ACCGROUP, PPU.ACCGROUP2, --Measures --DAC AVEDAYS, --DIL (invoice line) ROUND(OQUANTITY, VDP.QTYDECIMALS) AS OQUANTITY, ROUND(OCOST, 2) AS OCOST, ROUND(OVALDISC, 2) AS OVALDISC, ROUND(OVAL, 2) AS OVAL, ROUND(OVALTAX, 2) AS OVALTAX, ROUND(OVALTAXINC, 2) AS OVALTAXINC, ROUND(OVALFC, 2) AS OVALFC, ROUND((OVAL-OCOST), 2) AS OPROFIT, ROUND(CASE WHEN OCOST <> 0 THEN (((OVAL-OCOST)/OCOST)*100) ELSE 100 END, 2) AS OMARKUPPC, ROUND(CASE WHEN OVAL <> 0 THEN (((OVAL-OCOST)/OVAL)*100) ELSE 100 END, 2) AS OMARGINPC, ROUND(CASE WHEN BUYRATE =0 THEN 1 ELSE BUYRATE END, 4) AS OEXCHRATE, ROUND(CASE WHEN OQUANTITY =0 THEN OCOST ELSE OCOST/ABS(OQUANTITY) END, COSTPRDECIMALS) AS OUNITCOST, ROUND(CASE WHEN OQUANTITY =0 THEN OVAL/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end) ELSE (OVAL/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end))/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICE, ROUND(CASE WHEN OQUANTITY =0 THEN OVALTAXINC/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end) ELSE (OVALTAXINC/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end))/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICETAXINC, ROUND(CASE WHEN OQUANTITY =0 THEN OVALFC ELSE OVALFC/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICEFC, ROUND(OUNSUPPLIED, VDP.QTYDECIMALS) AS OUNSUPPLIED, ROUND(OUNINVOICED, VDP.QTYDECIMALS) AS OUNINVOICED, ROUND(OCOSTPENDING, 2) AS OCOSTPENDING, ROUND(OVALPENDING, 2) AS OVALPENDING, WORKDAYS, --Custom --Number of rows FREQUENCY --Join structure FROM CTE_PPU PPU LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON PPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.BRANCHES BRP WITH (NOLOCK) ON PPU.PHYS_BRANCH = BRP.BRANCHNO LEFT OUTER JOIN dbo.CR_ACCS CAA WITH (NOLOCK) ON PPU.ACCNO = CAA.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAP WITH (NOLOCK) ON PPU.ACCNO_SALES = CAP.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAB WITH (NOLOCK) ON PPU.ACCNO_BRANCH = CAB.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAS WITH (NOLOCK) ON PPU.SKU_SUPPLIERNO = CAS.ACCNO LEFT OUTER JOIN dbo.CR_ACCGROUPS CG1 WITH (NOLOCK) ON PPU.ACCGROUP = CG1.ACCGROUP LEFT OUTER JOIN dbo.CR_ACCGROUP2S CG2 WITH (NOLOCK) ON PPU.ACCGROUP2 = CG2.ACCGROUP LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON PPU.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.STAFF SFP WITH (NOLOCK) ON PPU.PHYS_STAFF = SFP.STAFFNO LEFT OUTER JOIN dbo.GLACCS GLA WITH (NOLOCK) ON PPU.GLACCNO = GLA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GLS WITH (NOLOCK) ON PPU.GLACCNO = GLS.ACCNO AND PPU.GLSUBACC = GLS.SUBACCNO LEFT OUTER JOIN dbo.STOCK_LOCATIONS LOC WITH (NOLOCK) ON PPU.LOCATION = LOC.LOCNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON PPU.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON PPU.TAXNO = TAX.SEQNO ---- LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON SPU.PERIODID = PES.SEQNO LEFT OUTER JOIN dbo.STOCK_GROUPS SG1 WITH (NOLOCK) ON PPU.STOCKGROUP = SG1.GROUPNO LEFT OUTER JOIN dbo.STOCK_GROUP2S SG2 WITH (NOLOCK) ON PPU.STOCKGROUP2 = SG2.GROUPNO LEFT OUTER JOIN dbo.STOCK_PRICEGROUPS SGP WITH (NOLOCK) ON PPU.STOCKPRICEGROUP = SGP.GROUPNO LEFT OUTER JOIN dbo.BILLOMAT_HDR BOM WITH (NOLOCK) ON PPU.BOMCODE = BOM.BILLCODE LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_FACT_PURCHTRANS
Name | VW_FACT_PURCHTRANS |
Note | |
Code | -- Sales fact view for debtors invoices CREATE VIEW [dbo].[VW_FACT_PURCHTRANS] -- Indexed view WITH SCHEMABINDING AS /** Purchases fact view for creditors CR_TRANS driven **/
/** setup CTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- CR_ACCS ------------------------------------------------------------------------ CTE_CAC (CAC_ACCNO, -- Internal (alias) CAC_HEAD_ACCNO, -- Dimensions (alias) ACCISACTIVE, ACCGROUP, ACCGROUP2, -- Measures (alias) AVEDAYS, -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) HEAD_ACCNO, -- Dimensions (database) ISACTIVE, ACCGROUP, ACCGROUP2, -- Measures (database) AVE_DAYS_TO_PAY, -- Custom (database) 'CAC' FROM dbo.CR_ACCS CAC WITH (NOLOCK) ) , -- CONTACTS ------------------------------------------------------------------------ CTE_CON (CON_SEQNO, -- Dimensions (alias) CONT_ISACTIVE, -- Measures (alias) CONT_NAME, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Dimensions (database) ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CONTACTS CON WITH (NOLOCK) ), -- CR_TRANS (invoices) ------------------------------------------------------------------------ CTE_CTR ( -- Dimensions (alias) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, PORDER, BRANCHNO, SESSIONID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, PERIODID, PTNO, TAXNO, GLACCNO, GLSUBACC, -- Measures (alias) IQUANTITY, IVALDISC, IVAL, IVALTAX, IVALTAXINC, IVALUNALLOC, IVALFC, IVALUNALLOCFC, INUMLINES, -- Custom (alias) CTE) AS (SELECT -- Dimensions (database) SEQNO, TRANSTYPE, ISNULL(INVNO, '') AS INVNO, ISNULL(REF1, '') AS REF1, ISNULL(REF2, '') AS REF2, ISNULL(REF3, '') AS REF3, ISNULL(PO_SEQNO, -1) AS PORDER, ISNULL(BRANCHNO, -1) AS BRANCHNO, ISNULL(SESSION_ID, -1) AS SESSIONID, ACCNO, ISNULL(PURCH_ACCNO, ACCNO) AS ACCNO_SALES, ISNULL(BRANCH_ACCNO, -1) AS ACCNO_BRANCH, ISNULL(DUEDATE, ISNULL(TRANSDATE, GETDATE())) AS DUEDATE, ISNULL(TRANSDATE, GETDATE()) AS TRANSDATE, ISNULL(POSTTIME, GETDATE()) AS POSTTIME, ISNULL(SALESNO, -1) AS SALESNO, ISNULL(CONTACT_SEQNO, -1) AS CONTACT_SEQNO, ISNULL(CURRENCYNO, -1) AS CURRENCYNO, ISNULL(PERIOD_SEQNO, -1) AS PERIOD_SEQNO, ISNULL(PTNO, CASE WHEN TRANSTYPE <> 4 THEN -1 ELSE ISNULL((SELECT PTNO FROM dbo.PAYMENT_TYPES WHERE SHORTNAME LIKE REF1), -1) END) AS PTNO, ISNULL(TAXRATE_NO, -1) AS TAXNO, CASE WHEN ISNULL(GLCODE, 0) > 0 THEN GLCODE ELSE ISNULL((SELECT DEBTORS FROM dbo.GL_CONTROL), 0) END AS GLACCNO, CASE WHEN ISNULL(GLSUBCODE, -1) > 0 THEN GLSUBCODE ELSE ISNULL((SELECT SUB_DEBTORS FROM dbo.GL_CONTROL), 0) END AS GLSUBACC, -- Measures (database) IQUANTITY, IVALDISC, (SUBTOTAL/EXCHRATE) AS IVAL, (TAXTOTAL/EXCHRATE) AS IVALTAX, (AMOUNT/EXCHRATE) AS IVALTAXINC, ((AMOUNT-ALLOCATEDBAL)/EXCHRATE) AS IVALUNALLOC, SUBTOTAL AS IVALFC, (AMOUNT-ALLOCATEDBAL) AS IVALUNALLOCFC, INUMLINES, -- Custom (database) 'CTR' FROM dbo.CR_TRANS CTR WITH (NOLOCK) LEFT OUTER JOIN (SELECT HDR_SEQNO, SUM(QUANTITY) AS IQUANTITY, SUM((QUANTITY*UNITPRICE*DISCOUNT/100)/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end)) AS IVALDISC, COUNT(HDR_SEQNO) AS INUMLINES FROM dbo.CR_INVLINES GROUP BY HDR_SEQNO) CIL ON CIL.HDR_SEQNO = CTR.SEQNO WHERE SEQNO >= ISNULL(( SELECT MINTRANSEQNO FROM dbo.PERIOD_STATUS PS WHERE LEDGER ='C' AND PS.AGE = (SELECT ANALYSIS_AGE_LIMIT FROM dbo.LEDGER_PERIODS LP WHERE LP.SEQNO=1)) , 0) ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable ), -- Trans Permutations -------------------------------------------------------------------- CTE_PPU ( --Dimensions (alias) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, PORDER, BRANCHNO, SESSIONID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, PERIODID, PTNO, TAXNO, GLACCNO, GLSUBACC, ACCISACTIVE, ACCGROUP, ACCGROUP2, --Measures (alias) AVEDAYS, IQUANTITY, IVALDISC, IVAL, IVALTAX, IVALTAXINC, IVALUNALLOC, IVALFC, IVALUNALLOCFC, INUMLINES, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) --CTR (drtrans) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, PORDER, BRANCHNO, SESSIONID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, PERIODID, PTNO, TAXNO, GLACCNO, GLSUBACC, --CAC (debtors account) ISNULL(ACCISACTIVE, 'N') AS ACCISACTIVE, ISNULL(ACCGROUP, -1) AS ACCGROUP, ISNULL(ACCGROUP2, -1) AS ACCGROUP2, --Measures --CAC MIN(ISNULL(AVEDAYS, 0)) AS AVEDAYS, --CTR (drtrans) SUM(ISNULL(IQUANTITY, 0)) AS IQUANTITY, SUM(ISNULL(IVALDISC, 0)) AS IVALDISC, SUM(ISNULL(IVAL, 0)) AS IVAL, SUM(ISNULL(IVALTAX, 0)) AS IVALTAX, SUM(ISNULL(IVALTAXINC, 0)) AS IVALTAXINC, SUM(ISNULL(IVALUNALLOC, 0)) AS IVALUNALLOC, SUM(ISNULL(IVALFC, 0)) AS IVALFC, SUM(ISNULL(IVALUNALLOCFC, 0)) AS IVALUNALLOCFC, SUM(ISNULL(INUMLINES, 0)) AS INUMLINES, --Custom --Number of rows (and code marker) 'SPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_CTR LEFT OUTER JOIN CTE_CAC ON CTE_CAC.CAC_ACCNO = CTE_CTR.ACCNO LEFT OUTER JOIN CTE_CON ON CTE_CON.CON_SEQNO = CTE_CTR.CONTACTNO GROUP BY --CTR (drtrans) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, PORDER, BRANCHNO, SESSIONID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, PERIODID, PTNO, TAXNO, GLACCNO, GLSUBACC, --CAC (debtors account) ISNULL(ACCISACTIVE, 'N'), ISNULL(ACCGROUP, -1), ISNULL(ACCGROUP2, -1) )
/** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(PPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST(PPU.ACCNO AS VARCHAR) + '.' + ISNULL(RTRIM(CAA.NAME), 'No Entered Creditor')) AS ACCNAME_ENTERED, (CAST(PPU.ACCNO_SALES AS VARCHAR) + '.' + ISNULL(RTRIM(CAP.NAME), 'No Sales Creditor')) AS ACCNAME_SALES, (CAST(PPU.ACCNO_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(CAB.NAME), 'No Branch Creditor')) AS ACCNAME_BRANCH, (CAST(PPU.ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(CG1.GROUPNAME), 'No Creditor Account Group')) AS ACCGROUP1NAME, (CAST(PPU.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(CG2.GROUPNAME), 'No Creditor Account Group 2')) AS ACCGROUP2NAME, (CAST(PPU.SALESNO AS VARCHAR) + '.' + ISNULL(RTRIM(SFS.NAME), 'No Ordered By')) AS STAFFNAME, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(PPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLCODE, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GLA.NAME), 'No GL Account')) AS GLACCNAME, (RIGHT('000000000' + CAST(PPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(PPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GLS.NAME), RTRIM(GLA.NAME)), 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(PPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(PPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, (CAST(PPU.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'No Tax')) AS TAXNAME, ISNULL(PES.AGE, -1) AS AGE, ISNULL(PES.YEARAGE, -1) AS YEARAGE, (CAST(ISNULL(PPU.PERIODID, -1) AS VARCHAR) + '.' + ISNULL(RTRIM(PES.PERIODNAME), 'No Period')) AS PERIODNAME, --From Sales Permutations --CTR (drtrans) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, PORDER, PPU.BRANCHNO, SESSIONID, PPU.ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, PPU.SALESNO, CONTACTNO, PPU.CURRENCYNO, PERIODID, PTNO, TAXNO, GLACCNO, PPU.GLSUBACC, --CAC (creditors account) ACCISACTIVE, PPU.ACCGROUP, PPU.ACCGROUP2, --Measures --CAC AVEDAYS, --CIL (invoice line) ROUND(IQUANTITY, VDP.QTYDECIMALS) AS IQUANTITY, ROUND(IVALDISC, 2) AS IVALDISC, ROUND(IVAL, 2) AS IVAL, ROUND(IVALTAX, 2) AS IVALTAX, ROUND(IVALTAXINC, 2) AS IVALTAXINC, ROUND(IVALUNALLOC, 2) AS IVALUNALLOC, ROUND(IVALFC, 2) AS IVALFC, ROUND(IVALUNALLOCFC, 2) AS IVALUNALLOCFC, INUMLINES, ROUND(CASE WHEN IVALFC =0 THEN 1 ELSE IVAL/IVALFC END, 4) AS IEXCHRATE, ROUND(CASE WHEN IQUANTITY =0 THEN IVAL ELSE IVAL/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICE, ROUND(CASE WHEN IQUANTITY =0 THEN IVAL ELSE IVALTAXINC/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICETAXINC, ROUND(CASE WHEN IQUANTITY =0 THEN IVALFC ELSE IVALFC/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICEFC,
--Custom --Number of rows FREQUENCY -- Join structure FROM CTE_PPU PPU LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON PPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.CR_ACCS CAA WITH (NOLOCK) ON PPU.ACCNO = CAA.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAP WITH (NOLOCK) ON PPU.ACCNO_SALES = CAP.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAB WITH (NOLOCK) ON PPU.ACCNO_BRANCH = CAB.ACCNO LEFT OUTER JOIN dbo.CR_ACCGROUPS CG1 WITH (NOLOCK) ON PPU.ACCGROUP = CG1.ACCGROUP LEFT OUTER JOIN dbo.CR_ACCGROUP2S CG2 WITH (NOLOCK) ON PPU.ACCGROUP2 = CG2.ACCGROUP LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON PPU.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.GLACCS GLA WITH (NOLOCK) ON PPU.GLACCNO = GLA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GLS WITH (NOLOCK) ON PPU.GLACCNO = GLS.ACCNO AND PPU.GLSUBACC = GLS.SUBACCNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON PPU.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON PPU.TAXNO = TAX.SEQNO LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON PPU.PERIODID = PES.SEQNO LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_FACT_SALES
Name | VW_FACT_SALES |
Note | |
Code | -- Sales fact view for debtors invoices CREATE VIEW [dbo].[VW_FACT_SALES] -- Indexed view WITH SCHEMABINDING AS /** Sales fact view for debtors invoices DR_INVLINE driven **/
/** setup CTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- STOCK_ITEMS - Price Lookup Item -------------------------------------------------------------------- CTE_PLU (PLU_STOCKCODE, -- Internal SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, COSCOST, -- Dimensions (alias) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, CASE (SELECT CAST(FIELDVALUE AS INTEGER) FROM dbo.PROFILE_VALUES WHERE FIELDNAME = 'STOCKCOSTMETHOD' AND PROFILEID = -1) WHEN 2 THEN ISNULL(STDCOST, 0) WHEN 1 THEN ISNULL(LATESTCOST, 0) ELSE ISNULL(AVECOST, 0) END AS COSCOST, -- Dimensions (database) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, X_SIZEID, X_COLOURID, -- Measures (database) -- Custom (database) 'PLU' FROM dbo.STOCK_ITEMS PLU WITH (NOLOCK) ) , -- STOCK_ITEMS - Stock Keeping Item -------------------------------------------------------------------- CTE_SKU (SKU_STOCKCODE, -- Internal -- Dimensions (alias) SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) -- Dimensions (database) DESCRIPTION, ISACTIVE, STATUS, HAS_BN, HAS_SN, SUPPLIERNO, -- Measures (database) -- Custom (database) 'SKU' FROM dbo.STOCK_ITEMS SKU WITH (NOLOCK) ) , -- DR_ACCS ------------------------------------------------------------------------ CTE_DAC (DAC_ACCNO, -- Internal (alias) DAC_HEAD_ACCNO, -- Dimensions (alias) ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, -- Measures (alias) AVEDAYS, -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) HEAD_ACCNO, -- Dimensions (database) ISACTIVE, ACCGROUP, ACCGROUP2, PRICEGROUP, -- Measures (database) AVE_DAYS_TO_PAY, -- Custom (database) 'DAC' FROM dbo.DR_ACCS DAC WITH (NOLOCK) ) , -- CONTACTS ------------------------------------------------------------------------ CTE_CON (CON_SEQNO, -- Dimensions (alias) CONT_ISACTIVE, -- Measures (alias) CONT_NAME, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Dimensions (database) ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CONTACTS CON WITH (NOLOCK) ), -- DR_TRANS (invoices) ------------------------------------------------------------------------ CTE_DT1 (SO_SEQNO, SESSION_ID, -- Dimensions (alias) TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, SHIFTNO, TERMINALID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT SO_SEQNO, SESSION_ID, -- Dimensions (database) SEQNO, ISNULL(INVNO, '') AS INVNO, ISNULL(REF1, '') AS REF1, ISNULL(REF2, '') AS REF2, ISNULL(REF3, '') AS REF3, ISNULL(SESSION_ID, -1) AS SESSIONID, ISNULL(SHIFTNO, -1) AS SHIFTNO, ISNULL(TERMINAL_ID, '') AS TERMINALID, ACCNO, SALES_ACCNO, BRANCH_ACCNO, ISNULL(DUEDATE, ISNULL(TRANSDATE, GETDATE())) AS DUEDATE, ISNULL(TRANSDATE, GETDATE()) AS TRANSDATE, ISNULL(POSTTIME, GETDATE()) AS POSTTIME, ISNULL(SALESNO, -1) AS SALESNO, ISNULL(CONTACT_SEQNO, -1) AS CONTACT_SEQNO, ISNULL(CURRENCYNO, -1) AS CURRENCYNO, ISNULL(CUSTORDERNO, ''), ISNULL(ORD_REF, ''), ISNULL(PHYS_BRANCH, -1) AS PHYS_BRANCH, ISNULL(PHYS_STAFF, -1) AS PHYS_STAFF, ISNULL(PERIOD_SEQNO, -1) AS PERIOD_SEQNO, -- Measures (database) -- Custom (database) 'DT1' FROM dbo.DR_TRANS DT1 WITH (NOLOCK) WHERE TRANSTYPE=1 ), -- DR_TRANS (receipts) ------------------------------------------------------------------------ CTE_DT4 (SESSION_ID, -- Dimensions (alias) PTNO, PAYNAME, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT SESSION_ID, -- Dimensions (database) MIN(PTNO), MIN(REF1), -- Measures (database) -- Custom (database) 'DT4' FROM dbo.DR_TRANS DT4 WITH (NOLOCK) WHERE DT4.TRANSTYPE=4 AND SESSION_ID > -1 GROUP BY SESSION_ID ), -- DR_INVLINES (invoices) ---------------------------------------------------------------------- CTE_DIL (DIL_HDR_SEQNO, JOBNO, LINE_SOURCE, -- Dimensions (alias) PLU, PLU_DESCRIPTION, SKU, BOMCODE, BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, -- Measures (alias) IQUANTITY, ICOST, IVALDISC, IVALLIST, IVAL, IVALTAX, IVALTAXINC, IVALFC, -- Custom (alias) CTE) AS (SELECT HDR_SEQNO, JOBNO, LINE_SOURCE, -- Dimensions (database) ISNULL(STOCKCODE, '') AS STOCKCODE, ISNULL(DIL.DESCRIPTION, '') AS DESCRIPTION, (CASE WHEN(LINKED_STOCKCODE IS NULL OR LINKED_STOCKCODE = '') THEN STOCKCODE ELSE LINKED_STOCKCODE END) AS LINKED_STOCKCODE, ISNULL(KITCODE, '') AS KITCODE, ISNULL(BRANCHNO, -1) AS BRANCHNO, ISNULL(LOCATION, -1) AS LOCATION, ISNULL(TAXRATE_NO, -1) AS TAXRATE_NO, ISNULL(CONTRACT_HDR, -1), ISNULL(BATCHCODE, '') AS BATCHCODE, ISNULL(JOBCODE, '') AS JOBCODE, ISNULL(ANALYSIS, -1) AS ANALYSIS, ISNULL(SUBCODE, -1) AS SUBCODE, ISNULL(BOMTYPE, 'N') AS BOMTYPE, ISNULL(PRICE_OVERRIDDEN, 'N') AS PRICE_OVERRIDDEN, ISNULL(DRINVLINEID, DIL.SEQNO) AS DRINVLINEID, ISNULL(LINETYPE, -1), ISNULL(LINKEDSTATUS, 'N'), -- Measures (database) QUANTITY, (QUANTITY*UNITCOST) AS COSTVAL, ((QUANTITY*UNITPRICE*DISCOUNT/100)/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end)) AS DISCVAL, (QUANTITY*LISTPRICE/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end)) AS LISTVAL, LINETOTAL/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end) AS SELLVAL, LINETOTAL_TAX/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end) AS TAXVAL, LINETOTAL_INCTAX/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end) AS TAXINCVAL, LINETOTAL AS FCVAL, -- Custom (database) 'DIL' FROM dbo.DR_INVLINES DIL WITH (NOLOCK) WHERE LINETYPE <> 4 AND NOT (LINETYPE = -1 AND STOCKCODE = ' ') AND HDR_SEQNO >= ISNULL(( SELECT MINTRANSEQNO FROM dbo.PERIOD_STATUS PS WHERE LEDGER ='D' AND PS.AGE = (SELECT ANALYSIS_AGE_LIMIT FROM dbo.LEDGER_PERIODS LP WHERE LP.SEQNO=1)) , 0) ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable ), -- Sales Permutations -------------------------------------------------------------------- CTE_SPU ( --Dimensions (alias) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, SHIFTNO, TERMINALID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, PTNO, PAYNAME, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, PLU_DESCRIPTION, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, --Measures (alias) AVEDAYS, IQUANTITY, ICOST, IVALDISC, IVAL, IVALLIST, IVALTAX, IVALTAXINC, IVALFC, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) --DIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, CASE WHEN ISNULL(GLACCNO, 0) > 0 THEN GLACCNO ELSE ISNULL((SELECT SALES_GL_CODE FROM CTE_PLU WHERE CTE_PLU.PLU_STOCKCODE = CTE_DIL.PLU) , (SELECT DEF_SALES FROM dbo.GL_CONTROL)) END AS GLACCNO, GLSUBACC, CTE_DIL.BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, --DT1 (invoice) TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, SHIFTNO, TERMINALID, ACCNO, ISNULL(ACCNO_SALES, ACCNO) AS ACCNO_SALES, ISNULL(ACCNO_BRANCH, -1) AS ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, CTE_DT1.CUSTORDNO, CTE_DT1.REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, --DT4 (receipt) ISNULL(PTNO, -1), ISNULL(PAYNAME, 'No Payment'), --SKU (stock items) ISNULL(SKU_ISACTIVE, 'N') AS SKU_ISACTIVE, ISNULL(SKU_STATUS, 'L') AS SKU_STATUS, ISNULL(SKU_BN, 'N') AS SKU_BN, ISNULL(SKU_SN, 'N') AS SKU_SN, ISNULL(SKU_SUPPLIERNO, -1) AS SKU_SUPPLIERNO, --PLU (stock items) PLU_DESCRIPTION, ISNULL(STOCKGROUP, -1) AS STOCKGROUP, ISNULL(STOCKGROUP2, -1) AS STOCKGROUP2, ISNULL(STOCKPRICEGROUP, -1) AS STOCKPRICEGROUP, ISNULL(SIZEID, -1) AS SIZEID, ISNULL(COLOURID, -1) AS COLOURID, --DAC (debtors account) ISNULL(ACCISACTIVE, 'N') AS ACCISACTIVE, ISNULL(ACCGROUP, -1) AS ACCGROUP, ISNULL(ACCGROUP2, -1) AS ACCGROUP2, ISNULL(ACCPRICEGROUP, -1) AS ACCPRICEGROUP, --Measures --DAC MIN(ISNULL(AVEDAYS, 0)) AS AVEDAYS, --DTR (drtrans) SUM(ISNULL(IQUANTITY, 0)) AS IQUANTITY, SUM(ISNULL(ICOST, 0)) AS ICOST, SUM(ISNULL(IVALDISC, 0)) AS IVALDISC, SUM(ISNULL(IVAL, 0)) AS IVAL, SUM(ISNULL(IVALLIST, 0)) AS IVALLIST, SUM(ISNULL(IVALTAX, 0)) AS IVALTAX, SUM(ISNULL(IVALTAXINC, 0)) AS IVALTAXINC, SUM(ISNULL(IVALFC, 0)) AS IVALFC, --Custom --Number of rows (and code marker) 'SPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_DIL LEFT OUTER JOIN CTE_DT1 ON CTE_DT1.TRANSEQNO = CTE_DIL.DIL_HDR_SEQNO LEFT OUTER JOIN CTE_DT4 ON CTE_DT4.SESSION_ID = CTE_DT1.SESSION_ID LEFT OUTER JOIN CTE_DAC ON CTE_DAC.DAC_ACCNO = CTE_DT1.ACCNO_SALES LEFT OUTER JOIN CTE_CON ON CTE_CON.CON_SEQNO = CTE_DT1.CONTACTNO LEFT OUTER JOIN CTE_SKU ON CTE_SKU.SKU_STOCKCODE = CTE_DIL.SKU LEFT OUTER JOIN CTE_PLU ON CTE_PLU.PLU_STOCKCODE = CTE_DIL.PLU GROUP BY --DIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, CTE_DIL.BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, --DT1 (invoice) TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, SHIFTNO, TERMINALID, ACCNO, ISNULL(ACCNO_SALES, ACCNO), ISNULL(ACCNO_BRANCH, -1), DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, CTE_DT1.CUSTORDNO, CTE_DT1.REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, --DT4 (receipt) PTNO, PAYNAME, --SKU (stock items) ISNULL(SKU_ISACTIVE, 'N'), ISNULL(SKU_STATUS, 'L'), ISNULL(SKU_BN, 'N'), ISNULL(SKU_SN, 'N'), ISNULL(SKU_SUPPLIERNO, -1), --PLU (stock items) PLU_DESCRIPTION, ISNULL(STOCKGROUP, -1), ISNULL(STOCKGROUP2, -1), ISNULL(STOCKPRICEGROUP, -1), ISNULL(SIZEID, -1), ISNULL(COLOURID, -1), --DAC (debtors account) ISNULL(ACCISACTIVE, 'N'), ISNULL(ACCGROUP, -1), ISNULL(ACCGROUP2, -1), ISNULL(ACCPRICEGROUP, -1) ) /** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(SPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST(SPU.PHYS_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(BRP.BRANCHNAME), 'No Branch')) AS BRANCHNAMEPHYS, (CAST(SPU.ACCNO AS VARCHAR) + '.' + ISNULL(RTRIM(DAA.NAME), 'No Entered Debtor')) AS ACCNAME_ENTERED, (CAST(SPU.ACCNO_SALES AS VARCHAR) + '.' + ISNULL(RTRIM(DAS.NAME), 'No Sales Debtor')) AS ACCNAME_SALES, (CAST(SPU.ACCNO_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(DAB.NAME), 'No Branch Debtor')) AS ACCNAME_BRANCH, (CAST(SPU.SKU_SUPPLIERNO AS VARCHAR) + '.' + ISNULL(RTRIM(CAS.NAME), 'No Supplier')) AS ACCNAME_SUPPLIER, (CAST(SPU.ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(DG1.GROUPNAME), 'No Debtor Account Group')) AS ACCGROUP1NAME, (CAST(SPU.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(DG2.GROUPNAME), 'No Debtor Account Group 2')) AS ACCGROUP2NAME, (CAST(SPU.ACCPRICEGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(DGP.GROUPNAME), 'No Debtor Price Group')) AS ACCGROUPPNAME, (CAST(SPU.POLICYNO AS VARCHAR) + '.' + ISNULL(RTRIM(DPP.POLICY_REF), 'No PricingPolicy')) AS POLICYNAME, (CAST(SPU.SALESNO AS VARCHAR) + '.' + ISNULL(RTRIM(SFS.NAME), 'No Manager')) AS STAFFNAME, (CAST(SPU.PHYS_STAFF AS VARCHAR) + '.' + ISNULL(RTRIM(SFP.NAME), 'No Staff')) AS STAFFNAMEPHYS, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(SPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLCODE, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GLA.NAME), 'No GL Account')) AS GLACCNAME, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(SPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GLS.NAME), RTRIM(GLA.NAME)), 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(SPU.LOCATION AS VARCHAR) + '.' + ISNULL(RTRIM(LOC.LNAME), 'No Location')) AS LOCATIONNAME, (CAST(SPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(SPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, (CAST(SPU.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'No Tax')) AS TAXNAME, ISNULL(PES.AGE, -1) AS AGE, ISNULL(PES.YEARAGE, -1) AS YEARAGE, (CAST(ISNULL(SPU.PERIODID, -1) AS VARCHAR) + '.' + ISNULL(RTRIM(PES.PERIODNAME), 'No Period')) AS PERIODNAME, (CAST(SPU.STOCKGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(SG1.GROUPNAME), 'No Stock Group')) AS STOCKGROUP1NAME, (CAST(SPU.STOCKGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(SG2.GROUPNAME), 'No Stock Group 2')) AS STOCKGROUP2NAME, (CAST(SPU.STOCKPRICEGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(SGP.GROUPNAME), 'No Stock Price Group')) AS STOCKGROUPPNAME, (RTRIM(SPU.BOMCODE) + '.' + ISNULL(RTRIM(BOM.DESCRIPTION), 'No BOM')) AS BOMNAME, (RTRIM(PLU) + '.' + ISNULL(RTRIM(PLU_DESCRIPTION), 'No PLU')) AS PLU_NAME, (RTRIM(SKU) + '.' + ISNULL(RTRIM(SKU_DESCRIPTION), 'No SKU')) AS SKU_NAME, --From Sales Permutations --DIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, SPU.BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, GLACCNO, SPU.GLSUBACC, SPU.BOMTYPE, PRICEOVERRIDDEN, INVLINEID, LINETYPE, LINKEDITEM, --DT1 (invoice) TRANSEQNO, INVNO, REF1, REF2, REF3, SESSIONID, SHIFTNO, TERMINALID, SPU.ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SPU.SALESNO, CONTACTNO, SPU.CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, SPU.PERIODID, --DT4 (receipt) PTNO, PAYNAME, --PLU (stock items) SPU.PLU_DESCRIPTION, SPU.STOCKGROUP, SPU.STOCKGROUP2, SPU.STOCKPRICEGROUP, SIZEID, COLOURID, --SKU (stock items) SKU_ISACTIVE, SKU_STATUS, SPU.SKU_BN, SPU.SKU_SN, SKU_SUPPLIERNO, --DAC (debtors account) ACCISACTIVE, SPU.ACCGROUP, SPU.ACCGROUP2, ACCPRICEGROUP, --Measures --DAC AVEDAYS, --DIL (invoice line) ROUND(IQUANTITY, VDP.QTYDECIMALS) AS IQUANTITY, ROUND(ICOST, 2) AS ICOST, ROUND(IVALDISC, 2) AS IVALDISC, ROUND(IVAL, 2) AS IVAL, ROUND(IVALLIST, 2) AS IVALLIST, ROUND(IVALTAX, 2) AS IVALTAX, ROUND(IVALTAXINC, 2) AS IVALTAXINC, ROUND(IVALFC, 2) AS IVALFC, ROUND((IVAL-ICOST), 2) AS IPROFIT, ROUND(CASE WHEN ICOST <> 0 THEN (((IVAL-ICOST)/ICOST)*100) ELSE 100 END, 2) AS IMARKUPPC, ROUND(CASE WHEN IVAL <> 0 THEN (((IVAL-ICOST)/IVAL)*100) ELSE 100 END, 2) AS IMARGINPC, ROUND(CASE WHEN IVALFC =0 THEN 1 ELSE IVAL/IVALFC END, 4) AS IEXCHRATE, ROUND(CASE WHEN IQUANTITY =0 THEN ICOST ELSE ICOST/ABS(IQUANTITY) END, COSTPRDECIMALS) AS IUNITCOST, ROUND(CASE WHEN IQUANTITY =0 THEN IVAL ELSE IVAL/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICE, ROUND(CASE WHEN IQUANTITY =0 THEN IVAL ELSE IVALTAXINC/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICETAXINC, ROUND(CASE WHEN IQUANTITY =0 THEN IVALFC ELSE IVALFC/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICEFC, --Custom --Number of rows FREQUENCY --Join structure FROM CTE_SPU SPU LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON SPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.BRANCHES BRP WITH (NOLOCK) ON SPU.PHYS_BRANCH = BRP.BRANCHNO LEFT OUTER JOIN dbo.DR_ACCS DAA WITH (NOLOCK) ON SPU.ACCNO = DAA.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAS WITH (NOLOCK) ON SPU.ACCNO_SALES = DAS.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAB WITH (NOLOCK) ON SPU.ACCNO_BRANCH = DAB.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAS WITH (NOLOCK) ON SPU.SKU_SUPPLIERNO = CAS.ACCNO LEFT OUTER JOIN dbo.DR_ACCGROUPS DG1 WITH (NOLOCK) ON SPU.ACCGROUP = DG1.ACCGROUP LEFT OUTER JOIN dbo.DR_ACCGROUP2S DG2 WITH (NOLOCK) ON SPU.ACCGROUP2 = DG2.ACCGROUP LEFT OUTER JOIN dbo.DR_PRICEGROUPS DGP WITH (NOLOCK) ON SPU.ACCPRICEGROUP = DGP.GROUPNO LEFT OUTER JOIN dbo.DR_PRICE_POLICY DPP WITH (NOLOCK) ON SPU.POLICYNO = DPP.POLICY_HDR LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON SPU.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.STAFF SFP WITH (NOLOCK) ON SPU.PHYS_STAFF = SFP.STAFFNO LEFT OUTER JOIN dbo.GLACCS GLA WITH (NOLOCK) ON SPU.GLACCNO = GLA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GLS WITH (NOLOCK) ON SPU.GLACCNO = GLS.ACCNO AND SPU.GLSUBACC = GLS.SUBACCNO LEFT OUTER JOIN dbo.STOCK_LOCATIONS LOC WITH (NOLOCK) ON SPU.LOCATION = LOC.LOCNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON SPU.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON SPU.TAXNO = TAX.SEQNO LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON SPU.PERIODID = PES.SEQNO LEFT OUTER JOIN dbo.STOCK_GROUPS SG1 WITH (NOLOCK) ON SPU.STOCKGROUP = SG1.GROUPNO LEFT OUTER JOIN dbo.STOCK_GROUP2S SG2 WITH (NOLOCK) ON SPU.STOCKGROUP2 = SG2.GROUPNO LEFT OUTER JOIN dbo.STOCK_PRICEGROUPS SGP WITH (NOLOCK) ON SPU.STOCKPRICEGROUP = SGP.GROUPNO LEFT OUTER JOIN dbo.BILLOMAT_HDR BOM WITH (NOLOCK) ON SPU.BOMCODE = BOM.BILLCODE LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_FACT_SALESORD
Name | VW_FACT_SALESORD |
Note | |
Code | -- Sales fact view for debtors sales orders CREATE VIEW [dbo].[VW_FACT_SALESORD] -- Indexed view WITH SCHEMABINDING AS
/** setup DTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- STOCK_ITEMS - Price Lookup Item -------------------------------------------------------------------- CTE_PLU (PLU_STOCKCODE, -- Internal SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, COSCOST, -- Dimensions (alias) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, CASE (SELECT CAST(FIELDVALUE AS INTEGER) FROM dbo.PROFILE_VALUES WHERE FIELDNAME = 'STOCKCOSTMETHOD' AND PROFILEID = -1) WHEN 2 THEN ISNULL(STDCOST, 0) WHEN 1 THEN ISNULL(LATESTCOST, 0) ELSE ISNULL(AVECOST, 0) END AS COSCOST, -- Dimensions (database) STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, X_SIZEID, X_COLOURID, -- Measures (database) -- Custom (database) 'PLU' FROM dbo.STOCK_ITEMS PLU WITH (NOLOCK) ) , -- STOCK_ITEMS - Stock Keeping Item -------------------------------------------------------------------- CTE_SKU (SKU_STOCKCODE, -- Internal -- Dimensions (alias) SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, -- Measures (alias) -- Custom (alias) CTE) AS (SELECT STOCKCODE, -- Internal (database) -- Dimensions (database) DESCRIPTION, ISACTIVE, STATUS, HAS_BN, HAS_SN, SUPPLIERNO, -- Measures (database) -- Custom (database) 'SKU' FROM dbo.STOCK_ITEMS SKU WITH (NOLOCK) ) , -- DR_ACCS ------------------------------------------------------------------------ CTE_DAC (DAC_ACCNO, -- Internal (alias) DAC_HEAD_ACCNO, -- Dimensions (alias) ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, -- Measures (alias) AVEDAYS, -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) HEAD_ACCNO, -- Dimensions (database) ISACTIVE, ACCGROUP, ACCGROUP2, PRICEGROUP, -- Measures (database) AVE_DAYS_TO_PAY, -- Custom (database) 'DAC' FROM dbo.DR_ACCS DAC WITH (NOLOCK) ), -- CONTACTS ------------------------------------------------------------------------ CTE_CON (CON_SEQNO, -- Dimensions (alias) CONT_ISACTIVE, -- Measures (alias) CONT_NAME, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Dimensions (database) ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CONTACTS CON WITH (NOLOCK) ), -- SALESORD_HDR ------------------------------------------------------------------------ CTE_SHD (SO, -- Dimensions (alias) ACCNO, STATUS, SHIPCOMPLETE, ISCONFIRMED, WAS_BACKORDERED, DELIVERYCOUNT, INVOICECOUNT, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SALESNO, CONTACTNO, CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, ---- PERIODID, -- Measures (alias) WORKDAYS, -- Custom (alias) CTE) AS (SELECT SHD.SEQNO, -- Dimensions (database) ACCNO, STATUS, ISNULL(SHIP_COMPLETE, 'N'), CASE WHEN STATUS =3 THEN 'N' ELSE 'Y' END AS ISCONFIRMED, ISNULL(WAS_BACKORDERED, HAS_BACKORDERS), DELIVERYCOUNT, INVOICECOUNT, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SHD.SALESNO, CONTACT_SEQNO, CURRENCYNO, ISNULL(CUSTORDERNO, ''), ISNULL(REFERENCE, ''), ISNULL(SHT.PHYS_BRANCH, 0) AS PHYS_BRANCH, ISNULL(SHT.PHYS_STAFF, SHD.SALESNO) AS PHYS_STAFF, ---- ISNULL(dbo.FN_GET_PERIOD_SEQNO(ORDERDATE), -1) AS PERIODID, -- Measures (database) ISNULL(dbo.FN_GET_MANREP_DAYS(ACTIVATION_DATE, FINALISATION_DATE), 0) AS WORKDAYS, -- Custom (database) 'SHD' FROM dbo.SALESORD_HDR SHD WITH (NOLOCK) LEFT OUTER JOIN ( select top 1 HEADER_SOURCE_SEQ, PHYS_BRANCH, PHYS_STAFF from dbo.SALESORDHIST SHT WITH (NOLOCK) where SHT.EVENT_TYPE ='N' AND SHT.HISTORYNO =0) SHT ON SHT.HEADER_SOURCE_SEQ = SHD.SEQNO WHERE STATUS <> 4 /** exclude standing orders **/ ), -- SALESORD_LINES ---------------------------------------------------------------------- CTE_SOL ( -- Dimensions (alias) PLU, PLU_DESCRIPTION, SKU, BOMCODE, BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, SORDER, LINETYPE, LINKEDITEM, -- Measures (alias) OQUANTITY, OVALDISC, OVALLIST, OVAL, OVALTAX, OVALTAXINC, OVALFC, OUNSUPPLIED, OUNINVOICED, OBACKORDERED, OVALPENDING, -- Custom (alias) CTE) AS (SELECT -- Dimensions (database) STOCKCODE, SOL.DESCRIPTION, (CASE WHEN(LINKED_STOCKCODE IS NULL OR LINKED_STOCKCODE = '') THEN STOCKCODE ELSE LINKED_STOCKCODE END) AS LINKED_STOCKCODE, ISNULL(KITCODE, ' '), ISNULL(BRANCHNO, 0), ISNULL(LOCATION, 1), TAXRATE_NO, ISNULL(CONTRACT_HDR, 0), ISNULL(BATCHCODE, ' '), ISNULL(JOBCODE, ' '), ANALYSIS, SUBCODE, BOMTYPE, PRICE_OVERRIDDEN, SOLINEID, HDR_SEQNO,
ISNULL(LINETYPE, -1), ISNULL(LINKEDSTATUS, 'N'), -- Measures (database) CORRECTED_QUANT AS OQUANTITY, (CORRECTED_QUANT*UNITPRICE*DISCOUNT/100) AS OVALDISC, (CORRECTED_QUANT*LISTPRICE) AS OVALLIST, LINETOTAL AS OVAL, LINETAX_OVERRIDE AS OVALTAX, (LINETOTAL+LINETAX_OVERRIDE) AS OVALTAXINC, LINETOTAL AS OVALFC, UNSUP_QUANT AS OUNSUPPLIED, UNINV_QUANT AS OUNINVOICED, BKORD_QUANT AS OBACKORDERED, (UNINV_QUANT*UNITPRICE*DISCOUNT/100) AS OVALPENDING, -- Custom (database) 'SOL' FROM dbo.SALESORD_LINES SOL WITH (NOLOCK) WHERE LINETYPE <> 4 AND NOT (LINETYPE = -1 AND STOCKCODE = ' ') ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable ), -- Sales Permutations -------------------------------------------------------------------- CTE_SPU ( --Dimensions (alias) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, SORDER, LINETYPE, LINKEDITEM, ACCNO, ACCNO_SALES, ACCNO_BRANCH, ORDSTATUS, SHIPCOMPLETE, ISCONFIRMED, WAS_BACKORDERED, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SALESNO, CONTACTNO, CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, SKU_SUPPLIERNO, PLU_DESCRIPTION, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SIZEID, COLOURID, ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, --Measures (alias) AVEDAYS, OQUANTITY, OCOST, OVALDISC, OVALLIST, OVAL, OVALTAX, OVALTAXINC, OVALFC, OUNSUPPLIED, OUNINVOICED, OBACKORDERED, OCOSTPENDING, OVALPENDING, DELIVERYCOUNT, INVOICECOUNT, WORKDAYS, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) --DIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, CASE WHEN ISNULL(GLACCNO, 0) > 0 THEN GLACCNO ELSE ISNULL(CTE_PLU.SALES_GL_CODE, (SELECT DEF_SALES FROM dbo.GL_CONTROL)) END AS GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, SORDER, LINETYPE, LINKEDITEM, --SHD (sales order header) ISNULL((CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN CTE_DAC.DAC_HEAD_ACCNO ELSE ACCNO END), ACCNO) AS ACCNO, ACCNO AS ACCNO_SALES, ISNULL((CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN ACCNO ELSE -1 END), -1) AS ACCNO_BRANCH, CTE_SHD.STATUS, SHIPCOMPLETE, ISCONFIRMED, WAS_BACKORDERED, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SALESNO, CONTACTNO, CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, ---- PERIODID, --SKU (stock items) ISNULL(SKU_ISACTIVE, 'N') AS SKU_ISACTIVE, ISNULL(SKU_STATUS, 'L') AS SKU_STATUS, ISNULL(SKU_BN, 'N') AS SKU_BN, ISNULL(SKU_SN, 'N') AS SKU_SN, ISNULL(SKU_SUPPLIERNO, -1) AS SKU_SUPPLIERNO, --PLU (stock items) PLU_DESCRIPTION, ISNULL(STOCKGROUP, -1) AS STOCKGROUP, ISNULL(STOCKGROUP2, -1) AS STOCKGROUP2, ISNULL(STOCKPRICEGROUP, -1) AS STOCKPRICEGROUP, ISNULL(SIZEID, -1) AS SIZEID, ISNULL(COLOURID, -1) AS COLOURID, --DAC (debtors account) ISNULL(ACCISACTIVE, 'N') AS ACCISACTIVE, ISNULL(ACCGROUP, -1) AS ACCGROUP, ISNULL(ACCGROUP2, -1) AS ACCGROUP2, ISNULL(ACCPRICEGROUP, -1) AS ACCPRICEGROUP, --Measures --DAC MIN(ISNULL(AVEDAYS, 0)) AS AVEDAYS, --SOL (invoice line) SUM(ISNULL(OQUANTITY, 0)) AS OQUANTITY, SUM(ISNULL(OQUANTITY, 0)*ISNULL(CTE_PLU.COSCOST, 0)) AS OCOST, SUM(ISNULL(OVALDISC, 0)) AS OVALDISC, SUM(ISNULL(OVALLIST, 0)) AS OVALLIST, SUM(ISNULL(OVAL, 0)) AS OVAL, SUM(ISNULL(OVALTAX, 0)) AS OVALTAX, SUM(ISNULL(OVALTAXINC, 0)) AS OVALTAXINC, SUM(ISNULL(OVALFC, 0)) AS OVALFC, SUM(ISNULL(OUNSUPPLIED, 0)) AS OUNSUPPLIED, SUM(ISNULL(OUNINVOICED, 0)) AS OUNINVOICED, SUM(ISNULL(OBACKORDERED, 0)) AS OBACKORDERED, SUM(ISNULL(OUNSUPPLIED, 0)*ISNULL(CTE_PLU.COSCOST, 0)) AS OCOSTPENDING, SUM(ISNULL(OVALPENDING, 0)) AS OVALPENDING, SUM(ISNULL(DELIVERYCOUNT, 0)) AS DELIVERYCOUNT, SUM(ISNULL(INVOICECOUNT, 0)) AS INVOICECOUNT, SUM(ISNULL(WORKDAYS, 0)) AS WORKDAYS, --Custom --Number of rows (and code marker) 'SPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_SOL LEFT OUTER JOIN CTE_SHD ON CTE_SHD.SO = CTE_SOL.SORDER LEFT OUTER JOIN CTE_DAC ON CTE_DAC.DAC_ACCNO = CTE_SHD.ACCNO LEFT OUTER JOIN CTE_CON ON CTE_CON.CON_SEQNO = CTE_SHD.CONTACTNO LEFT OUTER JOIN CTE_PLU ON CTE_PLU.PLU_STOCKCODE = CTE_SOL.PLU LEFT OUTER JOIN CTE_SKU ON CTE_SKU.SKU_STOCKCODE = CTE_SOL.SKU GROUP BY --SOL (sales order line) PLU, PLU_DESCRIPTION, SKU, BOMCODE, BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, GLACCNO, GLSUBACC, BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, SORDER, LINETYPE, LINKEDITEM, --SHD (sales order header) CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN CTE_DAC.DAC_HEAD_ACCNO ELSE ACCNO END, ACCNO, CASE WHEN CTE_DAC.DAC_HEAD_ACCNO >0 THEN ACCNO ELSE -1 END, CTE_SHD.STATUS, SHIPCOMPLETE, ISCONFIRMED, WAS_BACKORDERED, DUEDATE, ORDERDATE, CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SALESNO, CONTACTNO, CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, ---- PERIODID, --SKU (stock items) SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_BN, SKU_SN, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, SKU_SUPPLIERNO, SIZEID, COLOURID, SALES_GL_CODE, SALES_GLSUBCODE, --DAC (debtors account) ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP ) /** Define the Fact view **/ SELECT --Normalised (lookup) (CAST(SPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST(SPU.PHYS_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(BRP.BRANCHNAME), 'No Branch')) AS BRANCHNAMEPHYS, (CAST(SPU.ACCNO AS VARCHAR) + '.' + ISNULL(RTRIM(DAA.NAME), 'No Entered Debtor')) AS ACCNAME_ENTERED, (CAST(SPU.ACCNO_SALES AS VARCHAR) + '.' + ISNULL(RTRIM(DAS.NAME), 'No Sales Debtor')) AS ACCNAME_SALES, (CAST(SPU.ACCNO_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(DAB.NAME), 'No Branch Debtor')) AS ACCNAME_BRANCH, (CAST(SPU.SKU_SUPPLIERNO AS VARCHAR) + '.' + ISNULL(RTRIM(CAS.NAME), 'No Supplier')) AS ACCNAME_SUPPLIER, (CAST(SPU.ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(DG1.GROUPNAME), 'No Debtor Account Group')) AS ACCGROUP1NAME, (CAST(SPU.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(DG2.GROUPNAME), 'No Debtor Account Group 2')) AS ACCGROUP2NAME, (CAST(SPU.ACCPRICEGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(DGP.GROUPNAME), 'No Debtor Price Group')) AS ACCGROUPPNAME, (CAST(SPU.POLICYNO AS VARCHAR) + '.' + ISNULL(RTRIM(DPP.POLICY_REF), 'No PricingPolicy')) AS POLICYNAME, (CAST(SPU.SALESNO AS VARCHAR) + '.' + ISNULL(RTRIM(SFS.NAME), 'No Manager')) AS STAFFNAME, (CAST(SPU.PHYS_STAFF AS VARCHAR) + '.' + ISNULL(RTRIM(SFP.NAME), 'No Staff')) AS STAFFNAMEPHYS, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(SPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLCODE, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GLA.NAME), 'No GL Account')) AS GLACCNAME, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(SPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GLS.NAME), RTRIM(GLA.NAME)), 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(SPU.LOCATION AS VARCHAR) + '.' + ISNULL(RTRIM(LOC.LNAME), 'No Location')) AS LOCATIONNAME, (CAST(SPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(SPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, (CAST(SPU.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'No Tax')) AS TAXNAME, ---- SPU.AGE AS AGE, ---- SPU.YEARAGE AS YEARAGE, ---- (SPU.PERIODID + '.' + ISNULL(RTRIM(PES.PERIODNAME), 'No Period') AS PERIODNAME, (CAST(SPU.STOCKGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(SG1.GROUPNAME), 'No Stock Group')) AS STOCKGROUP1NAME, (CAST(SPU.STOCKGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(SG2.GROUPNAME), 'No Stock Group 2')) AS STOCKGROUP2NAME, (CAST(SPU.STOCKPRICEGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(SGP.GROUPNAME), 'No Stock Price Group')) AS STOCKGROUPPNAME, (RTRIM(SPU.BOMCODE) + '.' + ISNULL(RTRIM(BOM.DESCRIPTION), 'No BOM')) AS BOMNAME, (RTRIM(PLU) + '.' + ISNULL(RTRIM(PLU_DESCRIPTION), 'No PLU')) AS PLU_NAME, (RTRIM(SKU) + '.' + ISNULL(RTRIM(SKU_DESCRIPTION), 'No SKU')) AS SKU_NAME, --From Sales Permutations --DIL (invoice line) SKU, SKU_DESCRIPTION, PLU, BOMCODE, SPU.BRANCHNO, LOCATION, TAXNO, POLICYNO, BATCHCODE, JOBCODE, GLACCNO, SPU.GLSUBACC, SPU.BOMTYPE, PRICEOVERRIDDEN, ORDLINEID, SORDER, LINETYPE, LINKEDITEM, SPU.ACCNO, ACCNO_SALES, ACCNO_BRANCH, ORDSTATUS, SHIPCOMPLETE, ISCONFIRMED, WAS_BACKORDERED, DUEDATE, ORDERDATE, --!!! OMIT FOR NOW !!! CREATE_DATE, ACTIVATION_DATE, FINALISATION_DATE, SPU.SALESNO, CONTACTNO, SPU.CURRENCYNO, SPU.CUSTORDNO, SPU.REFERENCE, PHYS_BRANCH, PHYS_STAFF, ---- SPU.PERIODID, --PLU (stock items) SPU.PLU_DESCRIPTION, SPU.STOCKGROUP, SPU.STOCKGROUP2, SPU.STOCKPRICEGROUP, SIZEID, COLOURID, --SKU (stock items) SKU_ISACTIVE, SKU_STATUS, SPU.SKU_BN, SPU.SKU_SN, SKU_SUPPLIERNO, --DAC (debtors account) ACCISACTIVE, SPU.ACCGROUP, SPU.ACCGROUP2, ACCPRICEGROUP, --Measures --DAC AVEDAYS, --DIL (invoice line) ROUND(OQUANTITY, VDP.QTYDECIMALS) AS OQUANTITY, ROUND(OCOST, 2) AS OCOST, ROUND(OVALDISC, 2) AS OVALDISC, ROUND(OVAL, 2) AS OVAL, ROUND(OVALLIST, 2) AS OVALLIST, ROUND(OVALTAX, 2) AS OVALTAX, ROUND(OVALTAXINC, 2) AS OVALTAXINC, ROUND(OVALFC, 2) AS OVALFC, ROUND((OVAL-OCOST), 2) AS OPROFIT, ROUND(CASE WHEN OCOST <> 0 THEN (((OVAL-OCOST)/OCOST)*100) ELSE 100 END, 2) AS OMARKUPPC, ROUND(CASE WHEN OVAL <> 0 THEN (((OVAL-OCOST)/OVAL)*100) ELSE 100 END, 2) AS OMARGINPC, ROUND(CASE WHEN BUYRATE =0 THEN 1 ELSE BUYRATE END, 4) AS OEXCHRATE, ROUND(CASE WHEN OQUANTITY =0 THEN OCOST ELSE OCOST/ABS(OQUANTITY) END, COSTPRDECIMALS) AS OUNITCOST, ROUND(CASE WHEN OQUANTITY =0 THEN OVAL/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end) ELSE (OVAL/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end))/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICE, ROUND(CASE WHEN OQUANTITY =0 THEN OVALTAXINC/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end) ELSE (OVALTAXINC/(case when isnull(BUYRATE, 0)=0 then 1 else BUYRATE end))/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICETAXINC, ROUND(CASE WHEN OQUANTITY =0 THEN OVALFC ELSE OVALFC/ABS(OQUANTITY) END, VDP.SELLPRDECIMALS) AS OUNITPRICEFC, ROUND(OUNSUPPLIED, VDP.QTYDECIMALS) AS OUNSUPPLIED, ROUND(OUNINVOICED, VDP.QTYDECIMALS) AS OUNINVOICED, ROUND(OBACKORDERED, VDP.QTYDECIMALS) AS OBACKORDERED, ROUND(OCOSTPENDING, 2) AS OCOSTPENDING, ROUND(OVALPENDING, 2) AS OVALPENDING, DELIVERYCOUNT, INVOICECOUNT, WORKDAYS, --Custom --Number of rows FREQUENCY --Join structure FROM CTE_SPU SPU LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON SPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.BRANCHES BRP WITH (NOLOCK) ON SPU.PHYS_BRANCH = BRP.BRANCHNO LEFT OUTER JOIN dbo.DR_ACCS DAA WITH (NOLOCK) ON SPU.ACCNO = DAA.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAS WITH (NOLOCK) ON SPU.ACCNO_SALES = DAS.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAB WITH (NOLOCK) ON SPU.ACCNO_BRANCH = DAB.ACCNO LEFT OUTER JOIN dbo.CR_ACCS CAS WITH (NOLOCK) ON SPU.SKU_SUPPLIERNO = CAS.ACCNO LEFT OUTER JOIN dbo.DR_ACCGROUPS DG1 WITH (NOLOCK) ON SPU.ACCGROUP = DG1.ACCGROUP LEFT OUTER JOIN dbo.DR_ACCGROUP2S DG2 WITH (NOLOCK) ON SPU.ACCGROUP2 = DG2.ACCGROUP LEFT OUTER JOIN dbo.DR_PRICEGROUPS DGP WITH (NOLOCK) ON SPU.ACCPRICEGROUP = DGP.GROUPNO LEFT OUTER JOIN dbo.DR_PRICE_POLICY DPP WITH (NOLOCK) ON SPU.POLICYNO = DPP.POLICY_HDR LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON SPU.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.STAFF SFP WITH (NOLOCK) ON SPU.PHYS_STAFF = SFP.STAFFNO LEFT OUTER JOIN dbo.GLACCS GLA WITH (NOLOCK) ON SPU.GLACCNO = GLA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GLS WITH (NOLOCK) ON SPU.GLACCNO = GLS.ACCNO AND SPU.GLSUBACC = GLS.SUBACCNO LEFT OUTER JOIN dbo.STOCK_LOCATIONS LOC WITH (NOLOCK) ON SPU.LOCATION = LOC.LOCNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON SPU.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON SPU.TAXNO = TAX.SEQNO ---- LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON SPU.PERIODID = PES.SEQNO LEFT OUTER JOIN dbo.STOCK_GROUPS SG1 WITH (NOLOCK) ON SPU.STOCKGROUP = SG1.GROUPNO LEFT OUTER JOIN dbo.STOCK_GROUP2S SG2 WITH (NOLOCK) ON SPU.STOCKGROUP2 = SG2.GROUPNO LEFT OUTER JOIN dbo.STOCK_PRICEGROUPS SGP WITH (NOLOCK) ON SPU.STOCKPRICEGROUP = SGP.GROUPNO LEFT OUTER JOIN dbo.BILLOMAT_HDR BOM WITH (NOLOCK) ON SPU.BOMCODE = BOM.BILLCODE LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_FACT_SALESTRANS
Name | VW_FACT_SALESTRANS |
Note | |
Code | -- Sales fact view for debtors invoices CREATE VIEW [dbo].[VW_FACT_SALESTRANS] -- Indexed view WITH SCHEMABINDING AS /** Sales fact view for debtors DR_TRANS driven **/
/** setup CTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH -- DR_ACCS ------------------------------------------------------------------------ CTE_DAC (DAC_ACCNO, -- Internal (alias) DAC_HEAD_ACCNO, -- Dimensions (alias) ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, -- Measures (alias) AVEDAYS, -- Custom (alias) CTE) AS (SELECT ACCNO, -- Internal (database) HEAD_ACCNO, -- Dimensions (database) ISACTIVE, ACCGROUP, ACCGROUP2, PRICEGROUP, -- Measures (database) AVE_DAYS_TO_PAY, -- Custom (database) 'DAC' FROM dbo.DR_ACCS DAC WITH (NOLOCK) ) , -- CONTACTS ------------------------------------------------------------------------ CTE_CON (CON_SEQNO, -- Dimensions (alias) CONT_ISACTIVE, -- Measures (alias) CONT_NAME, -- Custom (alias) CTE) AS (SELECT SEQNO, -- Dimensions (database) ISACTIVE, -- Measures (database) FULLNAME, -- Custom (database) 'CON' FROM dbo.CONTACTS CON WITH (NOLOCK) ), -- DR_TRANS (invoices) ------------------------------------------------------------------------ CTE_DTR ( -- Dimensions (alias) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, SORDER, BRANCHNO, SESSIONID, SHIFTNO, TERMINALID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, PTNO, TAXNO, GLACCNO, GLSUBACC, CAMPAIGN_WAVE_SEQNO, -- Measures (alias) IQUANTITY, ICOST, IVALDISC, IVAL, IVALTAX, IVALTAXINC, IVALUNALLOC, IVALFC, IVALUNALLOCFC, INUMLINES, -- Custom (alias) CTE) AS (SELECT -- Dimensions (database) SEQNO, TRANSTYPE, ISNULL(INVNO, '') AS INVNO, ISNULL(REF1, '') AS REF1, ISNULL(REF2, '') AS REF2, ISNULL(REF3, '') AS REF3, ISNULL(SO_SEQNO, -1) AS SORDER, ISNULL(BRANCHNO, -1) AS BRANCHNO, ISNULL(SESSION_ID, -1) AS SESSIONID, ISNULL(SHIFTNO, -1) AS SHIFTNO, ISNULL(TERMINAL_ID, '') AS TERMINALID, ACCNO, ISNULL(SALES_ACCNO, ACCNO) AS ACCNO_SALES, ISNULL(BRANCH_ACCNO, -1) AS ACCNO_BRANCH, ISNULL(DUEDATE, ISNULL(TRANSDATE, GETDATE())) AS DUEDATE, ISNULL(TRANSDATE, GETDATE()) AS TRANSDATE, ISNULL(POSTTIME, GETDATE()) AS POSTTIME, ISNULL(SALESNO, -1) AS SALESNO, ISNULL(CONTACT_SEQNO, -1) AS CONTACT_SEQNO, ISNULL(CURRENCYNO, -1) AS CURRENCYNO, ISNULL(CUSTORDERNO, ''), ISNULL(ORD_REF, ''), ISNULL(PHYS_BRANCH, -1) AS PHYS_BRANCH, ISNULL(PHYS_STAFF, -1) AS PHYS_STAFF, ISNULL(PERIOD_SEQNO, -1) AS PERIOD_SEQNO, ISNULL(PTNO, CASE WHEN TRANSTYPE <> 4 THEN -1 ELSE ISNULL((SELECT PTNO FROM dbo.PAYMENT_TYPES WHERE SHORTNAME LIKE REF1), -1) END) AS PTNO, ISNULL(TAXRATE_NO, -1) AS TAXNO, CASE WHEN ISNULL(GLCODE, 0) > 0 THEN GLCODE ELSE ISNULL((SELECT DEBTORS FROM dbo.GL_CONTROL), 0) END AS GLACCNO, CASE WHEN ISNULL(GLSUBCODE, -1) > 0 THEN GLSUBCODE ELSE ISNULL((SELECT SUB_DEBTORS FROM dbo.GL_CONTROL), 0) END AS GLSUBACC, CAMPAIGN_WAVE_SEQNO, -- Measures (database) IQUANTITY, ICOST, IVALDISC, (SUBTOTAL/EXCHRATE) AS IVAL, (TAXTOTAL/EXCHRATE) AS IVALTAX, (AMOUNT/EXCHRATE) AS IVALTAXINC, ((AMOUNT-ALLOCATEDBAL)/EXCHRATE) AS IVALUNALLOC, SUBTOTAL AS IVALFC, (AMOUNT-ALLOCATEDBAL) AS IVALUNALLOCFC, INUMLINES, -- Custom (database) 'DTR' FROM dbo.DR_TRANS DTR WITH (NOLOCK) LEFT OUTER JOIN (SELECT HDR_SEQNO, SUM(QUANTITY) AS IQUANTITY, SUM(QUANTITY*UNITCOST) AS ICOST, SUM((QUANTITY*UNITPRICE*DISCOUNT/100)/(case when isnull(EXCHRATE, 0)=0 then 1 else EXCHRATE end)) AS IVALDISC, COUNT(HDR_SEQNO) AS INUMLINES FROM dbo.DR_INVLINES GROUP BY HDR_SEQNO) DIL ON DIL.HDR_SEQNO = DTR.SEQNO WHERE SEQNO >= ISNULL(( SELECT MINTRANSEQNO FROM dbo.PERIOD_STATUS PS WHERE LEDGER ='D' AND PS.AGE = (SELECT ANALYSIS_AGE_LIMIT FROM dbo.LEDGER_PERIODS LP WHERE LP.SEQNO=1)) , 0) ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable ), -- Trans Permutations -------------------------------------------------------------------- CTE_SPU ( --Dimensions (alias) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, SORDER, BRANCHNO, SESSIONID, SHIFTNO, TERMINALID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, PTNO, TAXNO, GLACCNO, GLSUBACC, CAMPAIGN_WAVE_SEQNO, ACCISACTIVE, ACCGROUP, ACCGROUP2, ACCPRICEGROUP, --Measures (alias) AVEDAYS, IQUANTITY, ICOST, IVALDISC, IVAL, IVALTAX, IVALTAXINC, IVALUNALLOC, IVALFC, IVALUNALLOCFC, INUMLINES, -- Custom (alias) CTE, FREQUENCY) AS (SELECT -- Dimensions (database) --DTR (drtrans) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, SORDER, BRANCHNO, SESSIONID, SHIFTNO, TERMINALID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, CTE_DTR.CUSTORDNO, CTE_DTR.REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, PTNO, TAXNO, GLACCNO, GLSUBACC, CAMPAIGN_WAVE_SEQNO, --DAC (debtors account) ISNULL(ACCISACTIVE, 'N') AS ACCISACTIVE, ISNULL(ACCGROUP, -1) AS ACCGROUP, ISNULL(ACCGROUP2, -1) AS ACCGROUP2, ISNULL(ACCPRICEGROUP, -1) AS ACCPRICEGROUP, --Measures --DAC MIN(ISNULL(AVEDAYS, 0)) AS AVEDAYS, --DTR (drtrans) SUM(ISNULL(IQUANTITY, 0)) AS IQUANTITY, SUM(ISNULL(ICOST, 0)) AS ICOST, SUM(ISNULL(IVALDISC, 0)) AS IVALDISC, SUM(ISNULL(IVAL, 0)) AS IVAL, SUM(ISNULL(IVALTAX, 0)) AS IVALTAX, SUM(ISNULL(IVALTAXINC, 0)) AS IVALTAXINC, SUM(ISNULL(IVALUNALLOC, 0)) AS IVALUNALLOC, SUM(ISNULL(IVALFC, 0)) AS IVALFC, SUM(ISNULL(IVALUNALLOCFC, 0)) AS IVALUNALLOCFC, SUM(ISNULL(INUMLINES, 0)) AS INUMLINES, --Custom --Number of rows (and code marker) 'SPU', COUNT(*) AS FREQUENCY -- Join structure FROM CTE_DTR LEFT OUTER JOIN CTE_DAC ON CTE_DAC.DAC_ACCNO = CTE_DTR.ACCNO LEFT OUTER JOIN CTE_CON ON CTE_CON.CON_SEQNO = CTE_DTR.CONTACTNO GROUP BY --DTR (drtrans) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, SORDER, BRANCHNO, SESSIONID, SHIFTNO, TERMINALID, ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SALESNO, CONTACTNO, CURRENCYNO, CTE_DTR.CUSTORDNO, CTE_DTR.REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, PTNO, TAXNO, GLACCNO, GLSUBACC, CTE_DTR.CAMPAIGN_WAVE_SEQNO, --DAC (debtors account) ISNULL(ACCISACTIVE, 'N'), ISNULL(ACCGROUP, -1), ISNULL(ACCGROUP2, -1), ISNULL(ACCPRICEGROUP, -1) )
/** Define the Fact view **/ SELECT --Normalised (lookup) --Normalised (lookup) (CAST(SPU.BRANCHNO AS VARCHAR) + '.' + ISNULL(RTRIM(BRH.BRANCHNAME), 'No Branch')) AS BRANCHNAME, (CAST(SPU.PHYS_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(BRP.BRANCHNAME), 'No Branch')) AS BRANCHNAMEPHYS, (CAST(SPU.ACCNO AS VARCHAR) + '.' + ISNULL(RTRIM(DAA.NAME), 'No Entered Debtor')) AS ACCNAME_ENTERED, (CAST(SPU.ACCNO_SALES AS VARCHAR) + '.' + ISNULL(RTRIM(DAS.NAME), 'No Sales Debtor')) AS ACCNAME_SALES, (CAST(SPU.ACCNO_BRANCH AS VARCHAR) + '.' + ISNULL(RTRIM(DAB.NAME), 'No Branch Debtor')) AS ACCNAME_BRANCH, (CAST(SPU.ACCGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(DG1.GROUPNAME), 'No Debtor Account Group')) AS ACCGROUP1NAME, (CAST(SPU.ACCGROUP2 AS VARCHAR) + '.' + ISNULL(RTRIM(DG2.GROUPNAME), 'No Debtor Account Group 2')) AS ACCGROUP2NAME, (CAST(SPU.ACCPRICEGROUP AS VARCHAR) + '.' + ISNULL(RTRIM(DGP.GROUPNAME), 'No Debtor Price Group')) AS ACCGROUPPNAME, (CAST(SPU.SALESNO AS VARCHAR) + '.' + ISNULL(RTRIM(SFS.NAME), 'No Manager')) AS STAFFNAME, (CAST(SPU.PHYS_STAFF AS VARCHAR) + '.' + ISNULL(RTRIM(SFP.NAME), 'No Staff')) AS STAFFNAMEPHYS, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(SPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLCODE, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GLA.NAME), 'No GL Account')) AS GLACCNAME, (RIGHT('000000000' + CAST(SPU.GLACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(SPU.GLSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GLS.NAME), RTRIM(GLA.NAME)), 'No GL SubAccount')) AS GLSUBACCNAME, (CAST(SPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRNAME), 'No Currency')) AS CURRENCYNAME, (CAST(SPU.CURRENCYNO AS VARCHAR) + '.' + ISNULL(RTRIM(CUY.CURRCODE), 'No Currency')) AS CURRENCYCODE, (CAST(SPU.TAXNO AS VARCHAR) + '.' + ISNULL(RTRIM(TAX.NAME), 'No Tax')) AS TAXNAME, ISNULL(PES.AGE, -1) AS AGE, ISNULL(PES.YEARAGE, -1) AS YEARAGE, (CAST(ISNULL(SPU.PERIODID, -1) AS VARCHAR) + '.' + ISNULL(RTRIM(PES.PERIODNAME), 'No Period')) AS PERIODNAME, SPU.CAMPAIGN_WAVE_SEQNO, --From Sales Permutations --DTR (drtrans) TRANSEQNO, TRANSTYPE, INVNO, REF1, REF2, REF3, SORDER, SPU.BRANCHNO, SESSIONID, SHIFTNO, TERMINALID, SPU.ACCNO, ACCNO_SALES, ACCNO_BRANCH, DUEDATE, TRANSDATE, POSTTIME, SPU.SALESNO, CONTACTNO, SPU.CURRENCYNO, CUSTORDNO, REFERENCE, PHYS_BRANCH, PHYS_STAFF, PERIODID, PTNO, TAXNO, GLACCNO, SPU.GLSUBACC, --DAC (debtors account) ACCISACTIVE, SPU.ACCGROUP, SPU.ACCGROUP2, ACCPRICEGROUP, --Measures --DAC AVEDAYS, --DIL (invoice line) ROUND(IQUANTITY, VDP.QTYDECIMALS) AS IQUANTITY, ROUND(ICOST, 2) AS ICOST, ROUND(IVALDISC, 2) AS IVALDISC, ROUND(IVAL, 2) AS IVAL, ROUND(IVALTAX, 2) AS IVALTAX, ROUND(IVALTAXINC, 2) AS IVALTAXINC, ROUND(IVALUNALLOC, 2) AS IVALUNALLOC, ROUND(IVALFC, 2) AS IVALFC, ROUND(IVALUNALLOCFC, 2) AS IVALUNALLOCFC, INUMLINES, ROUND((IVAL-ICOST), 2) AS IPROFIT, ROUND(CASE WHEN ICOST <> 0 THEN (((IVAL-ICOST)/ICOST)*100) ELSE 100 END, 2) AS IMARKUPPC, ROUND(CASE WHEN IVAL <> 0 THEN (((IVAL-ICOST)/IVAL)*100) ELSE 100 END, 2) AS IMARGINPC, ROUND(CASE WHEN IVALFC =0 THEN 1 ELSE IVAL/IVALFC END, 4) AS IEXCHRATE, ROUND(CASE WHEN IQUANTITY =0 THEN ICOST ELSE ICOST/ABS(IQUANTITY) END, VDP.COSTPRDECIMALS) AS IUNITCOST, ROUND(CASE WHEN IQUANTITY =0 THEN IVAL ELSE IVAL/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICE, ROUND(CASE WHEN IQUANTITY =0 THEN IVAL ELSE IVALTAXINC/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICETAXINC, ROUND(CASE WHEN IQUANTITY =0 THEN IVALFC ELSE IVALFC/ABS(IQUANTITY) END, VDP.SELLPRDECIMALS) AS IUNITPRICEFC,
--Custom --Number of rows FREQUENCY -- Join structure FROM CTE_SPU SPU LEFT OUTER JOIN dbo.BRANCHES BRH WITH (NOLOCK) ON SPU.BRANCHNO = BRH.BRANCHNO LEFT OUTER JOIN dbo.BRANCHES BRP WITH (NOLOCK) ON SPU.PHYS_BRANCH = BRP.BRANCHNO LEFT OUTER JOIN dbo.DR_ACCS DAA WITH (NOLOCK) ON SPU.ACCNO = DAA.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAS WITH (NOLOCK) ON SPU.ACCNO_SALES = DAS.ACCNO LEFT OUTER JOIN dbo.DR_ACCS DAB WITH (NOLOCK) ON SPU.ACCNO_BRANCH = DAB.ACCNO LEFT OUTER JOIN dbo.DR_ACCGROUPS DG1 WITH (NOLOCK) ON SPU.ACCGROUP = DG1.ACCGROUP LEFT OUTER JOIN dbo.DR_ACCGROUP2S DG2 WITH (NOLOCK) ON SPU.ACCGROUP2 = DG2.ACCGROUP LEFT OUTER JOIN dbo.DR_PRICEGROUPS DGP WITH (NOLOCK) ON SPU.ACCPRICEGROUP = DGP.GROUPNO LEFT OUTER JOIN dbo.STAFF SFS WITH (NOLOCK) ON SPU.SALESNO = SFS.STAFFNO LEFT OUTER JOIN dbo.STAFF SFP WITH (NOLOCK) ON SPU.PHYS_STAFF = SFP.STAFFNO LEFT OUTER JOIN dbo.GLACCS GLA WITH (NOLOCK) ON SPU.GLACCNO = GLA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GLS WITH (NOLOCK) ON SPU.GLACCNO = GLS.ACCNO AND SPU.GLSUBACC = GLS.SUBACCNO LEFT OUTER JOIN dbo.CURRENCIES CUY WITH (NOLOCK) ON SPU.CURRENCYNO = CUY.CURRENCYNO LEFT OUTER JOIN dbo.TAX_RATES TAX WITH (NOLOCK) ON SPU.TAXNO = TAX.SEQNO LEFT OUTER JOIN dbo.PERIOD_STATUS PES WITH (NOLOCK) ON SPU.PERIODID = PES.SEQNO LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_FACT_STOCK
Name | VW_FACT_STOCK |
Note | |
Code | -- GL fact view for Stock Items CREATE VIEW [dbo].[VW_FACT_STOCK] -- Indexed view WITH SCHEMABINDING AS /** Stock fact view **/
/** setup CTEs in such a way as they can be extended e.g with custom or extra fields. Hopefully the Dimensions and Measures tabs could be programatically recognised. Columns above Dimensions are only used internally for joins using the DTEs but are still converted to common aliases as part of the DTE definition. **/ WITH CTE_PLU ( -- Dimensions (alias) PLU, PLU_DESCRIPTION, PLU_DISCOUNTABLE, PLU_VARIABLECOST, SIZEID, COLOURID, DIMENSIONS, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, STOCKCLASS, BARCODE1, BARCODE2, BARCODE3, GLSALESACCNO, GLSALESSUBACC, GLPURCHACCNO, GLPURCHSUBACC, GLCOSACCNO, GLCOSSUBACC, SKU, -- Measures (alias) QUANTITYTHISMONTH, VALUETHISMONTH, QUANTITYLASTMONTH, VALUELASTMONTH, QUANTITTHISYYEAR, VALUETHISYEAR, QUANTITYLASTYEAR, VALUELASTYEAR, -- Custom (alias) CTE) AS (SELECT -- Dimensions (database) STOCKCODE, DESCRIPTION, IS_DISCOUNTABLE, VARIABLECOST, X_SIZEID, X_COLOURID, DIMENSIONS, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, STOCK_CLASSIFICATION, BARCODE1, BARCODE2, BARCODE3, SALES_GL_CODE, SALES_GLSUBCODE, PURCH_GL_CODE, PURCH_GLSUBCODE, COS_GL_CODE, COS_GLSUBCODE, CASE WHEN ISNULL(UPDATEITEM_CODE, ' ') = ' ' THEN STOCKCODE ELSE UPDATEITEM_CODE END AS SKU, -- Measures (database) MONTHUNITS, MONTHVALUE, LASTMONTHUNITS, LASTMONTHVALUE, YEARUNITS, YEARVALUE, LASTYEARUNITS, LASTYEARVALUE, -- Custom (database) 'PLU' AS CTE FROM dbo.STOCK_ITEMS PLU WITH (NOLOCK) ), CTE_SKU ( -- Dimensions (alias) SKU, SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_SN, SKU_BN, SKU_RESTRICTED, SKU_SUPPLIERNO, -- Measures (alias) QUANTITYONHAND, VALUEONHAND, WEIGHT, CUBIC, -- Custom (alias) CTE) AS (SELECT -- Dimensions (database) STOCKCODE, DESCRIPTION, ISACTIVE, STATUS, HAS_SN, HAS_BN, RESTRICTED_ITEM, SUPPLIERNO, -- Measures (database) TOTALSTOCK AS QUANTITYONHAND, CASE (SELECT CAST(FIELDVALUE AS INTEGER) FROM dbo.PROFILE_VALUES WHERE FIELDNAME = 'STOCKCOSTMETHOD' AND PROFILEID = -1) WHEN 2 THEN ISNULL(STDCOST, 0) WHEN 1 THEN ISNULL(LATESTCOST, 0) ELSE ISNULL(AVECOST, 0) END * TOTALSTOCK AS VALUEONHAND, WEIGHT, CUBIC, 'SKU' -- Custom (database) FROM dbo.STOCK_ITEMS SKU WITH (NOLOCK) ), -- Essentials Precisions -------------------------------------------------------------------- CTE_PROFILES AS ( SELECT PF.FIELDNAME, CASE WHEN(PV.FIELDVALUE IS NULL OR PV.FIELDVALUE = '') THEN isnull(PF.DEFAULTVALUE, 0) ELSE PV.FIELDVALUE END AS FIELDVALUE FROM dbo.PROFILE_FIELDS PF LEFT OUTER JOIN dbo.PROFILE_VALUES PV ON (PF.FIELDNAME = PV.FIELDNAME) WHERE PF.FIELDLEVEL=1 ), CTE_PRECISIONS AS ( SELECT SEQNO, CAST(BILLCOSTDECIMALS AS INT) AS BILLCOSTDECIMALS, CAST(BILLQTYDECIMALS AS INT) AS BILLQTYDECIMALS, CAST(COSTPRDECIMALS AS INT) AS COSTPRDECIMALS, CAST(DISCOUNTDECIMALS AS INT) AS DISCOUNTDECIMALS, CAST(QTYDECIMALS AS INT) AS QTYDECIMALS, CAST(SELLPRDECIMALS AS INT) AS SELLPRDECIMALS, CAST(GLBRANCHSIZE AS INT) AS GLBRANCHSIZE, CAST(GLACCNOSIZE AS INT) AS GLACCNOSIZE, CAST(GLSUBACCSIZE AS INT) AS GLSUBACCSIZE FROM (SELECT 'SEQNO' AS FIELDNAME, '1' AS FIELDVALUE UNION SELECT FIELDNAME, FIELDVALUE FROM CTE_PROFILES ) AS PivotData PIVOT (MAX(FIELDVALUE) FOR FIELDNAME IN ([SEQNO], [BILLCOSTDECIMALS], [BILLQTYDECIMALS], [COSTPRDECIMALS], [DISCOUNTDECIMALS], [QTYDECIMALS], [SELLPRDECIMALS], [GLBRANCHSIZE], [GLACCNOSIZE], [GLSUBACCSIZE]) ) AS PivotTable )
SELECT -- Dimensions --Normalised
(RIGHT('000000000' + CAST(GLSALESACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(GLSALESSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLSALESCODE, (RIGHT('000000000' + CAST(GLSALESACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GSA.NAME), 'No GL Account')) AS GLSALESNAME, (RIGHT('000000000' + CAST(GLSALESACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(GLSALESSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GSS.NAME), RTRIM(GSA.NAME)), 'No GL SubAccount')) AS GLSALESSUBNAME,
(RIGHT('000000000' + CAST(GLPURCHACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(GLPURCHSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLPURCHCODE, (RIGHT('000000000' + CAST(GLPURCHACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GPA.NAME), 'No GL Account')) AS GLPURCHNAME, (RIGHT('000000000' + CAST(GLPURCHACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(GLPURCHSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GPS.NAME), RTRIM(GPA.NAME)), 'No GL SubAccount')) AS GLPURCHSUBNAME,
(RIGHT('000000000' + CAST(GLCOSACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(GLCOSSUBACC AS VARCHAR), GLSUBACCSIZE)) AS GLCOSCODE, (RIGHT('000000000' + CAST(GLCOSACCNO AS VARCHAR), GLACCNOSIZE) + '-' + ISNULL(RTRIM(GCA.NAME), 'No GL Account')) AS GLCOSNAME, (RIGHT('000000000' + CAST(GLCOSACCNO AS VARCHAR), GLACCNOSIZE) + '-' + RIGHT('000000000' + CAST(GLCOSSUBACC AS VARCHAR), GLSUBACCSIZE) + '.' + ISNULL(ISNULL(RTRIM(GCS.NAME), RTRIM(GCA.NAME)), 'No GL SubAccount')) AS GLCOSSUBNAME,
(CAST(CAS.ACCNO AS VARCHAR) + '.' + ISNULL(CAS.NAME, 'No Supplier')) AS ACCNAME_SUPPLIER, (CAST(SG1.GROUPNO AS VARCHAR) + '.' + ISNULL(SG1.GROUPNAME, 'No Stock Group1')) AS STOCKGROUP1NAME, (CAST(SG2.GROUPNO AS VARCHAR) + '.' + ISNULL(SG2.GROUPNAME, 'No Stock Group2')) AS STOCKGROUP2NAME, (CAST(SGP.GROUPNO AS VARCHAR) + '.' + ISNULL(SGP.GROUPNAME, 'No Stock Price Group')) AS STOCKGROUPPNAME, (RTRIM(PLU) + '.' + RTRIM(PLU_DESCRIPTION)) AS PLU_NAME, (RTRIM(PLU.SKU) + '.' + RTRIM(SKU_DESCRIPTION)) AS SKU_NAME, --PLU PLU, PLU_DESCRIPTION, PLU_DISCOUNTABLE, PLU_VARIABLECOST, SIZEID, COLOURID, DIMENSIONS, STOCKGROUP, STOCKGROUP2, STOCKPRICEGROUP, STOCKCLASS, BARCODE1, BARCODE2, BARCODE3, ISNULL(GLSALESACCNO, 0) AS GLSALESACCNO, ISNULL(GLSALESSUBACC, 0) AS GLSALESSUBACC, ISNULL(GLPURCHACCNO, 0) AS GLPURCHACCNO, ISNULL(GLPURCHSUBACC, 0) AS GLPURCHSUBACC, ISNULL(GLCOSACCNO, 0) AS GLCOSACCNO, ISNULL(GLCOSSUBACC, 0) AS GLCOSSUBACC, PLU.SKU, --SKU SKU_DESCRIPTION, SKU_ISACTIVE, SKU_STATUS, SKU_SN, SKU_BN, SKU_RESTRICTED, SKU_SUPPLIERNO, -- Measures --PLU ROUND(ISNULL(QUANTITYTHISMONTH, 0), QTYDECIMALS) AS QUANTITYTHISMONTH, ROUND(ISNULL(VALUETHISMONTH, 0), 2) AS VALUETHISMONTH, ROUND(ISNULL(QUANTITYLASTMONTH, 0), QTYDECIMALS) AS QUANTITYLASTMONTH, ROUND(ISNULL(VALUELASTMONTH, 0), 2) AS VALUELASTMONTH, ROUND(ISNULL(QUANTITTHISYYEAR, 0), QTYDECIMALS) AS QUANTITYTHISYEAR, ROUND(ISNULL(VALUETHISYEAR, 0), 2) AS VALUETHISYEAR, ROUND(ISNULL(QUANTITYLASTYEAR, 0), QTYDECIMALS) AS QUANTITYLASTYEAR, ROUND(ISNULL(VALUELASTYEAR, 0), 2) AS VALUELASTYEAR, --SKU ROUND(ISNULL(QUANTITYONHAND, 0), QTYDECIMALS) AS QUANTITYONHAND, ROUND(ISNULL(VALUEONHAND, 0), 2) AS VALUEONHAND, ISNULL(WEIGHT, 0) AS WEIGHT, ISNULL(CUBIC, 0) AS CUBIC -- Custom -- Join structure FROM CTE_PLU PLU LEFT OUTER JOIN CTE_SKU SKU WITH (NOLOCK) ON PLU.SKU = SKU.SKU LEFT OUTER JOIN dbo.CR_ACCS CAS WITH (NOLOCK) ON SKU.SKU_SUPPLIERNO = CAS.ACCNO LEFT OUTER JOIN dbo.GLACCS GSA WITH (NOLOCK) ON PLU.GLSALESACCNO = GSA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GSS WITH (NOLOCK) ON PLU.GLSALESACCNO = GSS.ACCNO AND PLU.GLSALESSUBACC = GSS.SUBACCNO LEFT OUTER JOIN dbo.GLACCS GPA WITH (NOLOCK) ON PLU.GLPURCHACCNO = GPA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GPS WITH (NOLOCK) ON PLU.GLPURCHACCNO = GPS.ACCNO AND PLU.GLPURCHSUBACC = GPS.SUBACCNO LEFT OUTER JOIN dbo.GLACCS GCA WITH (NOLOCK) ON PLU.GLCOSACCNO = GCA.ACCNO LEFT OUTER JOIN dbo.GLSUBACCS GCS WITH (NOLOCK) ON PLU.GLCOSACCNO = GCS.ACCNO AND PLU.GLCOSSUBACC = GCS.SUBACCNO LEFT OUTER JOIN dbo.STOCK_GROUPS SG1 WITH (NOLOCK) ON PLU.STOCKGROUP = SG1.GROUPNO LEFT OUTER JOIN dbo.STOCK_GROUP2S SG2 WITH (NOLOCK) ON PLU.STOCKGROUP2 = SG2.GROUPNO LEFT OUTER JOIN dbo.STOCK_PRICEGROUPS SGP WITH (NOLOCK) ON PLU.STOCKPRICEGROUP = SGP.GROUPNO LEFT OUTER JOIN dbo.STOCK_CLASSIFICATIONS SGA WITH (NOLOCK) ON PLU.STOCKCLASS =SGA.CLASSNO LEFT OUTER JOIN CTE_PRECISIONS VDP WITH (NOLOCK) ON VDP.SEQNO=1
|
View: VW_NOACTIVITYCUSTWITHIN30DAYS
Name | VW_NOACTIVITYCUSTWITHIN30DAYS |
Note | |
Code | CREATE VIEW [dbo].[VW_NOACTIVITYCUSTWITHIN30DAYS] AS SELECT DR_ACCS.ACCNO, DR_ACCS.NAME, DR_ACCS.ADDRESS1, DR_ACCS.ADDRESS2, DR_ACCS.ADDRESS3, DR_ACCS.ADDRESS4, DR_ACCS.ADDRESS5, DR_ACCS.PHONE, DR_ACCS.FAX, DR_ACCS.EMAIL, DR_ACCS.WEBSITE, DR_ACCS.ISACTIVE FROM DR_ACCS DR_ACCS WHERE DR_ACCS.ACCNO NOT IN ( SELECT SUBSTRING(COMPANYID, 2, (LEN(COMPANYID))) FROM tasks WHERE SUBSTRING(COMPANYID, 1, 1)='D' and DateDiff(day, START_DATETIME, GETDATE())<=30)
|
View: VW_OPPORTUNITIES_TRANSACTIONS
Name | VW_OPPORTUNITIES_TRANSACTIONS |
Note | |
Code | CREATE VIEW [dbo].[VW_OPPORTUNITIES_TRANSACTIONS] AS Select opportunity_seqno as Opportunity_seqno, seqno as TransID_int, 'SO' as screentype, 'Sales Order' as Transtype, cast(SEQNO as varchar(20)) as TransID, case STATUS when 0 then 'Not processed' when 1 then 'Partly processed' when 2 then 'Fully processed' when 3 then 'Quotation' when 6 then 'Lost Quote' -- standing oredrs and laybys not possible through CRM else '' end as Status, Subtotal as Total from salesord_hdr where opportunity_seqno> 0 union Select opportunity_seqno as Opportunity_seqno, Jobno as TransID_int, 'JC' as screentype, 'Job Quote' as Transtype, Jobcode as TransID, 'Quote' as Status, Estimate as Total from JOBCOST_HDR where opportunity_seqno> 0 and MATERIALS = 0 union Select opportunity_seqno as Opportunity_seqno, Jobno as TransID_int, 'JC' as screentype, 'Job Cost' as Transtype, Jobcode as TransID, 'Cost' as Status, Materials as Total from JOBCOST_HDR where opportunity_seqno> 0 and MATERIALS <> 0 union select S.opportunity_seqno as Opportunity_seqno, T.seqno as TransID_int, 'DI' as screentype, 'Dr Invoice' as Transtype, T.Invno as Transid, '' as Status, T.Subtotal as total from DR_TRANS T inner join salesord_hdr S on T.SO_SEQNO = S.seqno where S.opportunity_seqno> 0 and T.TRANSTYPE = 1 union select J.opportunity_seqno as Opportunity_seqno, T.seqno as TransID_int, 'DI' as screentype, 'Dr Invoice' as Transtype, T.Invno as Transid, '' as Status, T.Subtotal as total from DR_TRANS T inner join Jobcost_hdr J on T.jobno = J.jobno where J.opportunity_seqno> 0 and T.TRANSTYPE = 1 union select J.opportunity_seqno as Opportunity_seqno, P.seqno as TransID_int, 'PO' as screentype, 'Purchase Order' as Transtype, cast(P.seqno as varchar(20)) as Transid, case p.STATUS when 0 then 'Not processed' when 1 then 'Partly processed' when 2 then 'Fully processed' when 3 then 'Quotation' else '' end as Status, P.Subtotal as total from Purchord_hdr P inner join Jobcost_hdr J on P.REFERENCE = J.JOBCODE where J.opportunity_seqno> 0 union SELECT I.opportunity_seqno AS Opportunity_seqno, T.seqno AS TransID_int, 'DP' AS screentype, 'Payment' AS Transtype, I.INVNO AS Transid, '' AS Status, T.Subtotal AS total FROM DR_TRANS T INNER JOIN DR_ALLOCATIONS A ON T.SEQNO = A.TRANS_SEQNO AND T.TRANSTYPE = 4 INNER JOIN (select A.ALLOCNO, S.SEQNO, S.OPPORTUNITY_SEQNO, T.INVNO from DR_ALLOCATIONS A inner join DR_TRANS T on A.TRANS_SEQNO= T.SEQNO AND T.TRANSTYPE =1 inner join SALESORD_HDR S on S.SEQNO = T.SO_SEQNO AND S.OPPORTUNITY_SEQNO > 0) I ON I.ALLOCNO = A.ALLOCNO UNION SELECT I.opportunity_seqno AS Opportunity_seqno, T.seqno AS TransID_int, 'DP' AS screentype, 'Payment' AS Transtype, I.INVNO AS Transid, '' AS Status, T.Subtotal AS total FROM DR_TRANS T INNER JOIN DR_ALLOCATIONS A ON T.SEQNO = A.TRANS_SEQNO AND T.TRANSTYPE = 4 INNER JOIN (select A.ALLOCNO, J.JOBCODE, J.OPPORTUNITY_SEQNO, T.invno from DR_ALLOCATIONS A inner join DR_TRANS T on A.TRANS_SEQNO= T.SEQNO AND T.TRANSTYPE =1 inner join JOBCOST_HDR J on J.JOBNO = T.JOBNO AND J.OPPORTUNITY_SEQNO > 0) I ON I.ALLOCNO = A.ALLOCNO
|
View: VW_OPP_PIPELINE
Name | VW_OPP_PIPELINE |
Note | |
Code | CREATE VIEW [dbo].[VW_OPP_PIPELINE] AS SELECT MTRX.MNT, DATENAME(month, DATEADD(month, MTRX.MNT, GETDATE())) AS MNT_NAME, MTRX.SEQNO, MTRX.DESCRIPTION, MTRX.DEF_PROBABILITY, ISNULL(OPS.AMNT, 0) AS SUM_AMNT, OPS.ASSGN FROM (SELECT MNTS.MNT, S.SEQNO, S.DESCRIPTION, S.DEF_PROBABILITY FROM (SELECT 0 AS MNT UNION SELECT 1 AS MNT UNION SELECT 2 AS MNT UNION SELECT 3 AS MNT UNION SELECT 4 AS MNT UNION SELECT 5 AS MNT UNION SELECT 6 AS MNT UNION SELECT 7 AS MNT UNION SELECT 8 AS MNT UNION SELECT 9 AS MNT UNION SELECT 10 AS MNT UNION SELECT 11 AS MNT ) AS MNTS CROSS JOIN dbo.OPPORTUNITY_STAGE AS S ) AS MTRX LEFT OUTER JOIN (SELECT S.DESCRIPTION, S.SEQNO, SUM(ISNULL(O.AMOUNT, 0)) AS AMNT, ISNULL(DATEDIFF(month, GETDATE(), O.DUE_DATE), 0) AS MNT_DIFF, O.ASSIGNED_TO AS ASSGN FROM dbo.OPPORTUNITY_STAGE AS S LEFT OUTER JOIN dbo.OPPORTUNITY AS O ON S.SEQNO = O.OPPORTUNITY_STAGE GROUP BY S.DESCRIPTION, S.SEQNO, DATEDIFF(month, GETDATE(), O.DUE_DATE), O.ASSIGNED_TO) AS OPS ON MTRX.MNT = OPS.MNT_DIFF AND MTRX.SEQNO = OPS.SEQNO
|
View: VW_SALES_TEAM
Name | VW_SALES_TEAM |
Note | |
Code | CREATE VIEW [dbo].[VW_SALES_TEAM] AS WITH ST_CTE(STAFFNO, STAFFNAME, REPORTS_TO, REPORTS_TO_NAME, STAFFLEVEL) AS ( SELECT C.STAFFNO, C.NAME, C.REPORTS_TO_STAFFNO, (SELECT P.NAME FROM STAFF P WHERE P.STAFFNO=C.REPORTS_TO_STAFFNO) REPORTS_TO_STAFFNAME, 0 AS STAFFLEVEL FROM STAFF C WHERE C.REPORTS_TO_STAFFNO=C.STAFFNO UNION ALL SELECT C.STAFFNO, C.NAME, C.REPORTS_TO_STAFFNO, (SELECT P.NAME FROM STAFF P WHERE P.STAFFNO=C.REPORTS_TO_STAFFNO) REPORTS_TO_STAFFNAME, STAFFLEVEL+1 FROM STAFF C INNER JOIN ST_CTE M ON M.STAFFNO=C.REPORTS_TO_STAFFNO AND C.REPORTS_TO_STAFFNO<>C.STAFFNO ) SELECT * FROM ST_CTE
|
View: X_DR_TOVER
Name | X_DR_TOVER |
Note | |
Code | CREATE VIEW [dbo].[X_DR_TOVER] AS SELECT TOP 100 PERCENT PERIOD_STATUS.AGE, ISNULL(DR_TRANS.SALES_ACCNO, 0) AS SALES_ACCOUNT, ISNULL(DR_TRANS.SEQNO, 0) AS SEQNO, ISNULL(DR_TRANS.SUBTOTAL * DR_TRANS.EXCHRATE, 0) AS LOCALSUBTOTAL, ISNULL(PERIOD_STATUS.YEARAGE, 0) AS YEARAGE FROM PERIOD_STATUS LEFT OUTER JOIN DR_TRANS ON PERIOD_STATUS.SEQNO = DR_TRANS.PERIOD_SEQNO AND PERIOD_STATUS.LEDGER = 'd' AND DR_TRANS.TRANSTYPE = 1 ORDER BY DR_TRANS.SALES_ACCNO, PERIOD_STATUS.AGE DESC
|
|