Sunday, September 7, 2025

Important

 https://www.youtube.com/watch?v=NWLyoCYEe0A

SP

 

ALTER PROCEDURE [dbo].[PartNumberValidation_SELECT]
  @PartNumber AS VARCHAR(80),
  @PO AS         VARCHAR(80) = NULL,
  @Badge         INT = NULL,
  @OrderType AS  VARCHAR(50) = NULL,
  @Quantity      INT = NULL,
  @Result        BIT output
AS
  BEGIN

    SET nocount ON;

    IF @OrderType IS NULL
     
BEGIN
      IF EXISTS ( 1 (/* condition */))
      BEGIN
        SET @Result = 1;
      END

      else
      BEGIN
        SET @Result = 0;
      END

     END
    ELSE
    BEGIN
      IF EXISTS ( 1 )
      BEGIN
        SET @Result = 1;
      END
      else
      BEGIN
        -- Check the second condition
        IF EXISTS ( 1 )
        BEGIN
          SET @Result = 1;
        END
        else
        BEGIN
          SET @Result = 0;
        END
      END
    END
  END

Saturday, July 26, 2025

SQL




USE [EWI_DataWarehouse] GO ALTER PROCEDURE [dbo].[SP_EXP_FuelTankPlumbingMatch_KTanks_SELECT] AS BEGIN SET NOCOUNT ON; DELETE EXP_FuelTankPlumbingMatch_KTanks --CLEANUP -- Declare variable for TankTypeId DECLARE @TankTypeId UNIQUEIDENTIFIER; -- Cursor to loop through active TankTypeIds DECLARE tank_cursor CURSOR FOR SELECT TankTypeId FROM EXP_FuelTankType WHERE IsActive = 1; OPEN tank_cursor; FETCH NEXT FROM tank_cursor INTO @TankTypeId; WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'Processing TankTypeId: ' + CAST(@TankTypeId AS NVARCHAR(36)); -- Declare variables for the columns of EXP_FuelTankPlumbingMatchProperties DECLARE @Id UNIQUEIDENTIFIER, @Prefix NVARCHAR(50), @Identifier NVARCHAR(50), @IdentifierPosition INT, @PartNumberCharacter NVARCHAR(50), @Value NVARCHAR(255), @TankTypeIdProp UNIQUEIDENTIFIER, @IsActive BIT; -- Cursor for matching properties DECLARE properties_cursor CURSOR FOR SELECT Id, Prefix, Identifier, IdentifierPosition, PartNumberCharacter, Value, TankTypeId, IsActive FROM EXP_FuelTankPlumbingMatchProperties WHERE TankTypeId = @TankTypeId; OPEN properties_cursor; FETCH NEXT FROM properties_cursor INTO @Id, @Prefix, @Identifier, @IdentifierPosition, @PartNumberCharacter, @Value, @TankTypeIdProp, @IsActive; WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'Match found for TankTypeId: ' + CAST(@TankTypeId AS NVARCHAR(36)) + ', Id: ' + CAST(@Id AS NVARCHAR(36)) + ', Prefix: ' + ISNULL(@Prefix, '') + ', Identifier: ' + ISNULL(@Identifier, '') + ', IdentifierPosition: ' + CAST(@IdentifierPosition AS NVARCHAR(10)) + ', PartNumberCharacter: ' + ISNULL(@PartNumberCharacter, '') + ', Value: ' + ISNULL(@Value, '') + ', IsActive: ' + CAST(@IsActive AS NVARCHAR(1)); -- Declare variables for BOM loop DECLARE @Item VARCHAR(255); DECLARE @Description VARCHAR(255); DECLARE item_cursor CURSOR FOR SELECT TOP 10 -- TEST PURPOSE (Later remove TOP 10) B.Item, B.[Description] FROM [EWI_DataWarehouse].dbo.BOMDTL B INNER JOIN [EWI_DataWarehouse].dbo.OpenJITs O ON B.Item = O.ItemId WHERE B.Item LIKE @Prefix; OPEN item_cursor; FETCH NEXT FROM item_cursor INTO @Item, @Description; WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'Item: ' + @Item + ', Description: ' + @Description; -- Extract IdentifierValue (example snippet, not used further) DECLARE @IdentifierValue AS NVARCHAR(1)= ( SELECT CASE WHEN @Item IS NULL OR LEN(@Item) < 1 THEN '-' ELSE SUBSTRING(@Item, @IdentifierPosition, 1) END AS IdentifierValue ) -- Get TankType string for current TankTypeId DECLARE @TankType NVARCHAR(MAX) = ( SELECT TOP 1 TankType FROM EXP_FuelTankType WHERE TankTypeId = @TankTypeIdProp ); PRINT 'TankType:' + ISNULL(@TankType, '') + ' Item:' + @Item + ' Value:' + ISNULL(@Value, ''); -- Declare order-related variables DECLARE @ChassisNbr NVARCHAR(36), @LineSeqNbr NVARCHAR(50), @QtyOrdered INT, @DateShipReq DATETIME, @OrderStatus INT; SELECT @ChassisNbr = O.ChassisNbr, @LineSeqNbr = O.LineSeqNbr, @QtyOrdered = O.QtyOrdered, @DateShipReq = O.DateShipReq, @OrderStatus = O.OrderStatus FROM [EWI_DataWarehouse].dbo.BOMDTL B INNER JOIN [EWI_DataWarehouse].dbo.OpenJITs O ON O.ItemID = B.Item WHERE B.Item = @Item; SELECT [Value] FROM EXP_FuelTankPlumbingMatchProperties WHERE TankTypeId=@TankTypeId AND Identifier= @IdentifierValue -- Insert into target table INSERT INTO EXP_FuelTankPlumbingMatch_KTanks ( ChassisNbr, MatchedLineSeqNbr, QtyOrdered, TankTypeId, Side, Part, DateShipReq, IsMatch, OrderStatus ) VALUES ( @ChassisNbr, @LineSeqNbr, @QtyOrdered, @TankTypeId, @IdentifierValue, @Item, @DateShipReq, 1, @OrderStatus ); FETCH NEXT FROM item_cursor INTO @Item, @Description; END CLOSE item_cursor; DEALLOCATE item_cursor; FETCH NEXT FROM properties_cursor INTO @Id, @Prefix, @Identifier, @IdentifierPosition, @PartNumberCharacter, @Value, @TankTypeIdProp, @IsActive; END CLOSE properties_cursor; DEALLOCATE properties_cursor; FETCH NEXT FROM tank_cursor INTO @TankTypeId; END CLOSE tank_cursor; DEALLOCATE tank_cursor; -- Final SELECT statement to return results SELECT FTPM.ChassisNbr AS [CHASSIS], FTPM.MatchedLineSeqNbr AS [SEQUENCE], FTPM.Part AS [PART_NUMBER], TT.TankType AS [TANK_TYPE], --K3 FTPM.Side AS [SIDE], --LEFT/RIGHT FTPM.DateShipReq AS [DATE_SHIP_REQUIRED], FTPM.IsMatch AS [IS_MATCH], FTPM.QtyOrdered AS [QUANTITY], FTPM.OrderStatus AS [ORDER_STATUS] FROM EXP_FuelTankPlumbingMatch_KTanks FTPM INNER JOIN EXP_FuelTankType TT ON TT.TankTypeId = FTPM.TankTypeId; END

 

Saturday, June 21, 2025

TWIN MODULE - Dyncraft

eBom vs mBom 

SELECT distinct * FROM [DataStage].[dbo].[CUMEBOM_LOADING] as CL where CL.LineSeqNbr='T0890F0' and CL.ChassisNbr='790040';

select * from EWI_DataWarehouse.dbo.OpenJITs as OJT where OJT.LineSeqNbr ='T0890F0';

select * from EWI_DataWarehouse.dbo.OpenJITs as OJT where OJT.ItemID ='M86-6301-127106';

SignalR

--ALTER DATABASE SignalR SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;


SELECT is_broker_enabled FROM sys.databases WHERE name = 'SignalR';


CREATE TABLE [dbo].[ToolInfo](
[ToolID] [int] IDENTITY(1,1) NOT NULL,
[ToolName] [nvarchar](50) NOT NULL,
[Status] [bit] NOT NULL,
[SequenceNo] [nchar](10) NULL,
 CONSTRAINT [PK_ToolInfo] PRIMARY KEY CLUSTERED 
(
[ToolID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[ToolInfo] ON 
GO
INSERT [dbo].[ToolInfo] ([ToolID], [ToolName], [Status], [SequenceNo]) VALUES (1, N'tool1', 0, N'1         ')
GO
INSERT [dbo].[ToolInfo] ([ToolID], [ToolName], [Status], [SequenceNo]) VALUES (2, N'tool44', 1, N'1         ')
GO
INSERT [dbo].[ToolInfo] ([ToolID], [ToolName], [Status], [SequenceNo]) VALUES (3, N'tool3', 1, N'2         ')
GO
INSERT [dbo].[ToolInfo] ([ToolID], [ToolName], [Status], [SequenceNo]) VALUES (4, N'tool4', 1, N'2         ')
GO
SET IDENTITY_INSERT [dbo].[ToolInfo] OFF
GO

update ToolInfo set ToolName='tool44'
where ToolID=2

SignalR maintains a persistent, real-time connection between client and server by using WebSockets.

Persistent Connection:
This means that the connection between the client (such as a web browser) and the server stays open and active over a period of time, rather than opening and closing repeatedly for each communication.

SignalR leverages WebSockets or other transport alternatives:
SignalR is a real-time communication library for web applications. It primarily uses WebSockets, which is a modern protocol that allows two-way communication between the client and server over a single, long-lived connection


SignalR ensures that the client and server remain continuously connected and can send messages to each other in real-time. This is useful for applications like chat apps, live notifications, gaming, or any scenario requiring immediate updates without the need to refresh the page


https://assemblytools.na.panasonic.com/assembly-tools/accessories/controllers

Wednesday, March 5, 2025

Driving

 https://youtube.com/shorts/5Ac2qZHrApU?si=_X-G7pJFHiZoD-s7

https://www.youtube.com/watch?v=f6pSsex87oU





Important

 https://www.youtube.com/watch?v=NWLyoCYEe0A