namespace JdeScoping.DataAccess.Queries; /// /// Work order related SQL queries (Work Orders, Steps, Times, Routings, Components) /// public static partial class JdeQueries { /// /// Gets all work orders from production schema. /// public const string SqlGetWorkorders = @" SELECT wo.WADOCO AS WorkOrderNumber, TRIM(wo.WAMMCU) AS BranchCode, TRIM(wo.WALOTN) AS LotNumber, TRIM(wo.WALITM) AS ItemNumber, wo.WAITM AS ShortItemNumber, TRIM(wo.WAPARS) AS ParentWorkOrderNumber, wo.WAUORG / 100.0 AS OrderQuantity, wo.WASOBK / 100.0 AS HeldQuantity, wo.WASOQS / 100.0 AS ShippedQuantity, TRIM(wo.WASRST) AS StatusCode, CASE wo.WADCG WHEN 0 THEN TO_DATE('1900-01-01', 'YYYY-MM-DD') ELSE TO_DATE(wo.WADCG+1900000,'YYYYDDD') END AS StatusCodeUpdateDT, CASE wo.WATRDJ WHEN 0 THEN TO_DATE('1900-01-01', 'YYYY-MM-DD') ELSE TO_DATE(wo.WATRDJ+1900000,'YYYYDDD') END AS IssueDate, CASE wo.WASTRT WHEN 0 THEN TO_DATE('1900-01-01', 'YYYY-MM-DD') ELSE TO_DATE(wo.WASTRT+1900000,'YYYYDDD') END AS StartDate, TRIM(wo.WATRT) AS RoutingType, wo.WAUPMJ AS LastUpdateDate, wo.WATDAY AS LastUpdateTime FROM {ProductionSchema}.F4801 wo"; /// /// Gets work orders updated since specified date from production schema. /// public const string SqlGetWorkordersFiltered = SqlGetWorkorders + @" WHERE (wo.WAUPMJ > :dateUpdated OR (wo.WAUPMJ = :dateUpdated AND wo.WATDAY >= :timeUpdated))"; /// /// Gets all work orders from archive schema. /// public const string SqlGetWorkordersArchive = @" SELECT wo.WADOCO AS WorkOrderNumber, TRIM(wo.WAMMCU) AS BranchCode, TRIM(wo.WALOTN) AS LotNumber, TRIM(wo.WALITM) AS ItemNumber, wo.WAITM AS ShortItemNumber, TRIM(wo.WAPARS) AS ParentWorkOrderNumber, wo.WAUORG / 100.0 AS OrderQuantity, wo.WASOBK / 100.0 AS HeldQuantity, wo.WASOQS / 100.0 AS ShippedQuantity, TRIM(wo.WASRST) AS StatusCode, CASE wo.WADCG WHEN 0 THEN TO_DATE('1900-01-01', 'YYYY-MM-DD') ELSE TO_DATE(wo.WADCG+1900000,'YYYYDDD') END AS StatusCodeUpdateDT, CASE wo.WATRDJ WHEN 0 THEN TO_DATE('1900-01-01', 'YYYY-MM-DD') ELSE TO_DATE(wo.WATRDJ+1900000,'YYYYDDD') END AS IssueDate, CASE wo.WASTRT WHEN 0 THEN TO_DATE('1900-01-01', 'YYYY-MM-DD') ELSE TO_DATE(wo.WASTRT+1900000,'YYYYDDD') END AS StartDate, TRIM(wo.WATRT) AS RoutingType, wo.WAUPMJ AS LastUpdateDate, wo.WATDAY AS LastUpdateTime FROM {ArchiveSchema}.F4801 wo"; /// /// Gets work order steps from production schema. /// public const string SqlGetWorkorderSteps = @" SELECT wos.WLDOCO AS WorkOrderNumber, wos.WLOPSQ/10 AS StepNumber, TRIM(wos.WLMCU) AS WorkCenterCode, TRIM(wos.WLMMCU) AS BranchCode, TRIM(wos.WLDSC1) AS StepDescription, TRIM(mes.CFDS80) AS FunctionOperationDescription, wos.WLOPSC AS StepTypeCode, CASE wos.WLSTRT WHEN 0 THEN NULL ELSE TO_DATE(wos.WLSTRT+1900000,'YYYYDDD') END AS StartDT, CASE wos.WLSTRX WHEN 0 THEN NULL ELSE TO_DATE(wos.WLSTRX+1900000,'YYYYDDD') END AS EndDT, TRIM(wos.WLURRF) AS FunctionCode, wos.WLSOCN / 100.0 AS ScrappedQuantity, wos.WLUPMJ AS LastUpdateDate, wos.WLTDAY AS LastUpdateTime FROM {ProductionSchema}.F3112 wos LEFT OUTER JOIN {ProductionSchema}.F00192 mes ON (wos.WLURRF = mes.CFKY) WHERE TRIM(wos.WLMCU) IS NOT NULL AND TRIM(wos.WLMMCU) IS NOT NULL"; /// /// Gets work order steps updated since specified date from production schema. /// public const string SqlGetWorkorderStepsFiltered = SqlGetWorkorderSteps + @" AND (wos.WLUPMJ > :dateUpdated OR (wos.WLUPMJ = :dateUpdated AND wos.WLTDAY >= :timeUpdated))"; /// /// Gets work order steps from archive schema. /// public const string SqlGetWorkorderStepsArchive = @" SELECT wos.WLDOCO AS WorkOrderNumber, wos.WLOPSQ/10 AS StepNumber, TRIM(wos.WLMCU) AS WorkCenterCode, TRIM(wos.WLMMCU) AS BranchCode, TRIM(wos.WLDSC1) AS StepDescription, TRIM(mes.CFDS80) AS FunctionOperationDescription, wos.WLOPSC AS StepTypeCode, CASE wos.WLSTRT WHEN 0 THEN NULL ELSE TO_DATE(wos.WLSTRT+1900000,'YYYYDDD') END AS StartDT, CASE wos.WLSTRX WHEN 0 THEN NULL ELSE TO_DATE(wos.WLSTRX+1900000,'YYYYDDD') END AS EndDT, TRIM(wos.WLURRF) AS FunctionCode, wos.WLSOCN / 100.0 AS ScrappedQuantity, wos.WLUPMJ AS LastUpdateDate, wos.WLTDAY AS LastUpdateTime FROM {ArchiveSchema}.F3112 wos LEFT OUTER JOIN {ProductionSchema}.F00192 mes ON (wos.WLURRF = mes.CFKY) WHERE TRIM(wos.WLMCU) IS NOT NULL AND TRIM(wos.WLMMCU) IS NOT NULL"; /// /// Gets work order time transactions from production schema. /// public const string SqlGetWorkorderTimes = @" SELECT wot.WTUKID AS UniqueID, wot.WTDOCO AS WorkOrderNumber, wot.WTOPSQ/10 AS StepNumber, TRIM(wot.WTMCU) AS WorkCenterCode, TRIM(wot.WTMMCU) AS BranchCode, wot.WTAN8 AS AddressNumber, CASE wot.WTDGL WHEN 0 THEN NULL ELSE TO_DATE(wot.WTDGL+1900000,'YYYYDDD') END AS GlDate, wot.WTUPMJ AS LastUpdateDate, wot.WTTDAY AS LastUpdateTime FROM {ProductionSchema}.F31122 wot WHERE TRIM(wot.WTMCU) IS NOT NULL AND TRIM(wot.WTMMCU) IS NOT NULL"; /// /// Gets work order times updated since specified date from production schema. /// public const string SqlGetWorkorderTimesFiltered = SqlGetWorkorderTimes + @" AND (wot.WTUPMJ > :dateUpdated OR (wot.WTUPMJ = :dateUpdated AND wot.WTTDAY >= :timeUpdated))"; /// /// Gets work order time transactions from archive schema. /// public const string SqlGetWorkorderTimesArchive = @" SELECT wot.WTUKID AS UniqueID, wot.WTDOCO AS WorkOrderNumber, wot.WTOPSQ/10 AS StepNumber, TRIM(wot.WTMCU) AS WorkCenterCode, TRIM(wot.WTMMCU) AS BranchCode, wot.WTAN8 AS AddressNumber, CASE wot.WTDGL WHEN 0 THEN NULL ELSE TO_DATE(wot.WTDGL+1900000,'YYYYDDD') END AS GlDate, wot.WTUPMJ AS LastUpdateDate, wot.WTTDAY AS LastUpdateTime FROM {ArchiveSchema}.F31122 wot WHERE TRIM(wot.WTMCU) IS NOT NULL AND TRIM(wot.WTMMCU) IS NOT NULL"; /// /// Gets work order routing transactions from production schema. /// public const string SqlGetWorkorderRoutings = @" SELECT TRIM(woz.SZEDUS) AS UserID, TRIM(woz.SZEDBT) AS BatchNumber, TRIM(woz.SZEDTN) AS TransactionNumber, woz.SZEDLN AS LineNumber, woz.SZOPSQ / 10.0 AS StepNumber, TRIM(woz.SZMCU) AS WorkCenterCode, woz.SZDOCO AS WorkOrderNumber, TRIM(woz.SZTRT) AS RoutingType, TRIM(woz.SZMMCU) AS BranchCode, TRIM(woz.SZDSC1) AS StepDescription, TRIM(woz.SZURRF) AS FunctionCode, woz.SZTRDJ AS TransactionDate_Date, woz.SZUPMJ AS LastUpdateDate, woz.SZTDAY AS LastUpdateTime FROM {ProductionSchema}.F3112Z1 woz WHERE woz.SZTYTN = 'JDERTG' AND woz.SZDRIN = '2' AND woz.SZTNAC = '02' AND woz.SZPID = 'ER31410' AND TRIM(woz.SZEDUS) IS NOT NULL AND TRIM(woz.SZEDBT) IS NOT NULL AND TRIM(woz.SZEDTN) IS NOT NULL AND TRIM(woz.SZMCU) IS NOT NULL"; /// /// Gets work order routings updated since specified date from production schema. /// public const string SqlGetWorkorderRoutingsFiltered = SqlGetWorkorderRoutings + @" AND (woz.SZUPMJ > :dateUpdated OR (woz.SZUPMJ = :dateUpdated AND woz.SZTDAY >= :timeUpdated))"; /// /// Gets work order component usage from production schema. /// public const string SqlGetWorkorderComponents = @" SELECT woc.WMUKID AS UniqueID, woc.WMDOCO AS WorkOrderNumber, TRIM(woc.WMLOTN) AS LotNumber, TRIM(woc.WMCMCU) AS BranchCode, woc.WMCPIT AS ShortItemNumber, woc.WMTRQT / 100.0 AS Quantity, woc.WMUPMJ AS LastUpdateDate, woc.WMTDAY AS LastUpdateTime FROM {ProductionSchema}.F3111 woc WHERE TRIM(woc.WMLOTN) IS NOT NULL"; /// /// Gets work order components updated since specified date from production schema. /// public const string SqlGetWorkorderComponentsFiltered = SqlGetWorkorderComponents + @" AND (woc.WMUPMJ > :dateUpdated OR (woc.WMUPMJ = :dateUpdated AND woc.WMTDAY >= :timeUpdated))"; /// /// Gets work order component usage from archive schema. /// public const string SqlGetWorkorderComponentsArchive = @" SELECT woc.WMUKID AS UniqueID, woc.WMDOCO AS WorkOrderNumber, TRIM(woc.WMLOTN) AS LotNumber, TRIM(woc.WMCMCU) AS BranchCode, woc.WMCPIT AS ShortItemNumber, woc.WMTRQT / 100.0 AS Quantity, woc.WMUPMJ AS LastUpdateDate, woc.WMTDAY AS LastUpdateTime FROM {ArchiveSchema}.F3111 woc WHERE TRIM(woc.WMLOTN) IS NOT NULL"; }