1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[CronfulfillOrders]
AS
SET NOCOUNT ON;
BEGIN TRAN trfulfillOrders
declare
@OrderID varchar(50),
@POID varchar(20),
@FinishDate datetime,
@IdentifyNumber varchar(10),
@KAG varchar(5),
@SubID varchar(10),
@Order_No_ varchar(50),
@Task_Date datetime,
@RefernzNo varchar(30),
@MandantID varchar(50),
@ServiceID varchar(20),
@BestellDate datetime,
@counter int
DECLARE OpenOrders CURSOR FOR
SELECT
OrderId,
POID,
OrderFinished,
ReferenceNumber,
SubID,
MandatorID,
ServiceID,
orderdate
FROM Orders
WHERE EnwisOrderID is NULL
AND POID is NOT NULL
-- mz 24.04.06 AND StatusID = 60
OPEN OpenOrders
FETCH NEXT FROM OpenOrders INTO
@OrderID,
@POID ,
@FinishDate,
@RefernzNo,
@SubID,
@MandantID,
@ServiceID,
@BestellDate
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Order_No_ = NULL
SET @POID = '%' + @POID + '%'
SELECT @Order_No_ = Order_No_ , @Task_date = Task_date
FROM DW_OrderManagement.dbo.CCRC_Auswertung
WHERE ((External_Document_No_ LIKE @POID AND Service_No_ LIKE LEFT(@ServiceID,5) + '%' )
OR ((External_Document_No_ = @RefernzNo AND @RefernzNo IS NOT NULL AND @RefernzNo <> '')
AND Service_No_ LIKE LEFT(@ServiceID,5) + '%' )
OR (Order_No_ = @OrderID))
AND @SubID = Center_No_
AND MandantID = @MandantID
AND Task_date >= @BestellDate - 1
IF NOT @Order_No_ IS NULL
BEGIN
/* Order schreiben */
UPDATE Orders
SET EnwisOrderID = @Order_No_,
StatusID = 90,
OrderFinished = ISNULL(@FinishDate, CURRENT_TIMESTAMP),
TaskDate = @Task_date
WHERE OrderID = @OrderID
AND MandatorID = @MandantID
SET @counter = @counter + @@ROWCOUNT
END
FETCH NEXT FROM OpenOrders INTO
@OrderID,
@POID,
@FinishDate,
@RefernzNo,
@SubID,
@MandantID,
@ServiceID,
@BestellDate
END
CLOSE OpenOrders
DEALLOCATE OpenOrders
IF (@@ERROR <> 0 )
BEGIN
ROLLBACK TRANSACTION trfulfillOrders
return @@ERROR
END
ELSE
BEGIN
COMMIT TRANSACTION trfulfillOrders
return @counter
END |
Partager