26ff8d9b4f
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
235 lines
11 KiB
C#
235 lines
11 KiB
C#
namespace JdeScoping.DataAccess.Queries;
|
|
|
|
/// <summary>
|
|
/// Work order related SQL queries (Work Orders, Steps, Times, Routings, Components)
|
|
/// </summary>
|
|
public static partial class JdeQueries
|
|
{
|
|
/// <summary>
|
|
/// Gets all work orders from production schema.
|
|
/// </summary>
|
|
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";
|
|
|
|
/// <summary>
|
|
/// Gets work orders updated since specified date from production schema.
|
|
/// </summary>
|
|
public const string SqlGetWorkordersFiltered = SqlGetWorkorders + @"
|
|
WHERE (wo.WAUPMJ > :dateUpdated OR
|
|
(wo.WAUPMJ = :dateUpdated AND wo.WATDAY >= :timeUpdated))";
|
|
|
|
/// <summary>
|
|
/// Gets all work orders from archive schema.
|
|
/// </summary>
|
|
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";
|
|
|
|
/// <summary>
|
|
/// Gets work order steps from production schema.
|
|
/// </summary>
|
|
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";
|
|
|
|
/// <summary>
|
|
/// Gets work order steps updated since specified date from production schema.
|
|
/// </summary>
|
|
public const string SqlGetWorkorderStepsFiltered = SqlGetWorkorderSteps + @"
|
|
AND (wos.WLUPMJ > :dateUpdated OR
|
|
(wos.WLUPMJ = :dateUpdated AND wos.WLTDAY >= :timeUpdated))";
|
|
|
|
/// <summary>
|
|
/// Gets work order steps from archive schema.
|
|
/// </summary>
|
|
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";
|
|
|
|
/// <summary>
|
|
/// Gets work order time transactions from production schema.
|
|
/// </summary>
|
|
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";
|
|
|
|
/// <summary>
|
|
/// Gets work order times updated since specified date from production schema.
|
|
/// </summary>
|
|
public const string SqlGetWorkorderTimesFiltered = SqlGetWorkorderTimes + @"
|
|
AND (wot.WTUPMJ > :dateUpdated OR
|
|
(wot.WTUPMJ = :dateUpdated AND wot.WTTDAY >= :timeUpdated))";
|
|
|
|
/// <summary>
|
|
/// Gets work order time transactions from archive schema.
|
|
/// </summary>
|
|
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";
|
|
|
|
/// <summary>
|
|
/// Gets work order routing transactions from production schema.
|
|
/// </summary>
|
|
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";
|
|
|
|
/// <summary>
|
|
/// Gets work order routings updated since specified date from production schema.
|
|
/// </summary>
|
|
public const string SqlGetWorkorderRoutingsFiltered = SqlGetWorkorderRoutings + @"
|
|
AND (woz.SZUPMJ > :dateUpdated OR
|
|
(woz.SZUPMJ = :dateUpdated AND woz.SZTDAY >= :timeUpdated))";
|
|
|
|
/// <summary>
|
|
/// Gets work order component usage from production schema.
|
|
/// </summary>
|
|
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";
|
|
|
|
/// <summary>
|
|
/// Gets work order components updated since specified date from production schema.
|
|
/// </summary>
|
|
public const string SqlGetWorkorderComponentsFiltered = SqlGetWorkorderComponents + @"
|
|
AND (woc.WMUPMJ > :dateUpdated OR
|
|
(woc.WMUPMJ = :dateUpdated AND woc.WMTDAY >= :timeUpdated))";
|
|
|
|
/// <summary>
|
|
/// Gets work order component usage from archive schema.
|
|
/// </summary>
|
|
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";
|
|
}
|