Aggiunta stored varie + OrderCloning
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
|
||||
/*-- =============================================
|
||||
-- Author: G.A.R.
|
||||
-- Description: Duplicazione composizione ordine (=Doors + DoorOp)
|
||||
|
||||
EXEC dbo.stp_OrderClone 0, 0, 'samuele.locatelli@egalware.com'
|
||||
|
||||
-- Mod. date: 2023.05.31
|
||||
-- =============================================*/
|
||||
CREATE PROCEDURE [dbo].[stp_OrderClone]
|
||||
(
|
||||
@OrderIdSrc INT = 0
|
||||
,@OrderIdDest INT = 0
|
||||
,@UserIdMod NVARCHAR(500)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
DECLARE @TotRow AS INT;
|
||||
DECLARE @Cursor AS INT = 1;
|
||||
DECLARE @DoorIdNew AS INT;
|
||||
|
||||
DROP TABLE IF EXISTS #tmpDoor
|
||||
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY DoorId) AS Riga, *
|
||||
INTO #TmpDoor
|
||||
FROM dbo.Door
|
||||
WHERE OrderId = @OrderIdSrc
|
||||
|
||||
SET @TotRow = @@ROWCOUNT
|
||||
|
||||
BEGIN TRAN
|
||||
|
||||
WHILE ( @Cursor <= @TotRow )
|
||||
BEGIN
|
||||
|
||||
-- duplico porte...
|
||||
-- SELECT * FROM #TmpDoor WHERE Riga = @Cursor
|
||||
|
||||
INSERT INTO dbo.Door
|
||||
SELECT @OrderIdDest, TypeId, DoorExtCode, DateIns, UserIdIns, GETDATE() AS DateMod, @UserIdMod AS UserIdMod, DoorDescript, Quantity, UnitCost, DateLockExpiry, MeasureUnit, UserIdLock
|
||||
FROM #TmpDoor
|
||||
WHERE Riga = @Cursor
|
||||
|
||||
SET @DoorIdNew = SCOPE_IDENTITY()
|
||||
-- SELECT @DoorIdNew
|
||||
|
||||
-- duplico OP delle porte
|
||||
INSERT INTO dbo.DoorOp
|
||||
SELECT @DoorIdNew, dr.Description, dr.DateIns, dr.UserIdIns, GETDATE() AS DateMod, @UserIdMod AS UserIdMod, dr.JsoncConfigVal, dr.ObjectId, dr.JsoncActVal, dr.DtConfirm, dr.userConfirm
|
||||
FROM #TmpDoor tm
|
||||
INNER JOIN dbo.DoorOp dr ON tm.DoorId = dr.DoorId
|
||||
WHERE tm.Riga = @Cursor
|
||||
|
||||
-- SELECT * FROM dbo.DoorOp WHERE DoorId = @DoorIdNew
|
||||
|
||||
SET @Cursor += 1
|
||||
END
|
||||
|
||||
COMMIT
|
||||
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
@@ -0,0 +1,42 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
/*-- =============================================
|
||||
-- Author: S.E.L.
|
||||
-- Description: Elenco ordini + valorizzazioni da criteri di filtraggio
|
||||
|
||||
EXEC dbo.stp_OrderList_getFilt 0, 0, NULL, NULL
|
||||
|
||||
-- Mod. date: 2023.03.13
|
||||
-- =============================================*/
|
||||
CREATE PROCEDURE [dbo].[stp_OrderList_getFilt]
|
||||
(
|
||||
@CompanyId INT = 0
|
||||
,@OrderStatus INT = 0
|
||||
,@DataFrom DATETIME = NULL
|
||||
,@DataTo DATETIME = NULL
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
-- fix periodo SE non fosse specificato
|
||||
SELECT @DataFrom = ISNULL(@DataFrom, '2000-01-01')
|
||||
SELECT @DataTo = ISNULL(@DataTo, '9999-12-31')
|
||||
|
||||
-- Insert statements for procedure here
|
||||
SELECT *
|
||||
FROM dbo.v_OrderStatus
|
||||
WHERE ( CompanyId = @CompanyId OR @CompanyId = 0 )
|
||||
AND ( OrderStatus = @OrderStatus OR @OrderStatus = 0 )
|
||||
AND DateIns BETWEEN @DataFrom AND @DataTo
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
-- =============================================
|
||||
-- Author: S.E.L.
|
||||
-- Description: Door Order Report data exploded by OrderId
|
||||
-- Create date: 2023.05.22
|
||||
-- =============================================
|
||||
CREATE PROCEDURE [dbo].[stp_prt_OrderReportExpl]
|
||||
(
|
||||
@OrderId INT = 0
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SET NOCOUNT ON;
|
||||
-- Insert statements for procedure here
|
||||
|
||||
SELECT
|
||||
ORD.OrderId,
|
||||
ORD.CompanyId,
|
||||
ORD.OrderExtCode,
|
||||
ORD.DateIns,
|
||||
ORD.UserIdIns,
|
||||
ORD.DateMod,
|
||||
ORD.UserIdMod,
|
||||
ORD.Status,
|
||||
ORD.OrderDescript,
|
||||
COM.CompanyExtCode,
|
||||
COM.CompanyName,
|
||||
COM.Address,
|
||||
COM.ZipCode,
|
||||
COM.City,
|
||||
COM.State,
|
||||
COM.VAT,
|
||||
DOR.DoorId,
|
||||
ROW_NUMBER() OVER ( PARTITION BY DOR.DoorId ORDER BY DOR.DoorId) AS RowDoor, -- mi serve per i totoali sul report
|
||||
DOR.TypeId,
|
||||
DOR.DoorExtCode,
|
||||
DOR.DoorDescript,
|
||||
DOR.Quantity,
|
||||
DOR.UnitCost,
|
||||
DOR.MeasureUnit,
|
||||
CASE
|
||||
WHEN DOP.ObjectId IN ('Profiles','Size','Swing') THEN 'INFO'
|
||||
WHEN DOP.ObjectId IN ('Properties','Finishing') THEN 'OPTIONS'
|
||||
--WHEN CHARINDEX('template', DOP.JsoncActVal) > 0 THEN 'HARDWARE'
|
||||
ELSE 'HARDWARE' END AS ObjectType,
|
||||
DOP.ObjectId as ObjectKey,
|
||||
|
||||
CASE
|
||||
WHEN DOP.ObjectId = 'Properties' THEN JSON_VALUE(JsoncActVal,'$.Properties.Properties')
|
||||
WHEN DOP.ObjectId = 'Finishing' THEN JSON_VALUE(JsoncActVal,'$.Finishing.Finishing')
|
||||
WHEN DOP.ObjectId = 'Size' THEN JSON_QUERY(JsoncActVal,'$.Size')
|
||||
WHEN DOP.ObjectId = 'Swing' THEN JSON_VALUE(JsoncActVal,'$.Swing.Swing')
|
||||
--WHEN DOP.ObjectId = 'Profiles' THEN JSON_QUERY(JsoncActVal,'$.Profiles')
|
||||
--WHEN CHARINDEX('template', DOP.JsoncActVal) > 0 THEN 'HARDWARE'
|
||||
ELSE DOP.JsoncActVal END AS ObjectVal,
|
||||
--DOP.JsoncActVal as ObjectVal,
|
||||
1 as ObjectQty
|
||||
FROM
|
||||
[Order] AS ORD
|
||||
INNER JOIN Company AS COM ON ORD.CompanyId = COM.CompanyId
|
||||
INNER JOIN Door AS DOR ON ORD.OrderId = DOR.OrderId
|
||||
INNER JOIN DoorOp AS DOP ON DOR.DoorId = DOP.DoorId
|
||||
WHERE
|
||||
ORD.OrderId = @OrderId
|
||||
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
|
||||
Reference in New Issue
Block a user