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
| SET ANSI_WARNINGS OFF;
DECLARE @SEQNRHIST INT;
DECLARE @BARCODE VARCHAR(13);
DECLARE @DATE DATETIME;
DECLARE @ACTION VARCHAR(1);
DECLARE @ORIGIN INT;
DECLARE @DESTTYPE INT;
DECLARE @DEST INT;
DECLARE @VALUE INT;
DECLARE @SALETYPE INT;
DECLARE @USERTYPE INT;
DECLARE @GFT_ID INT;
DECLARE @STR_ID INT;
DECLARE @DOS_ID INT;
DECLARE @DECIMAL_VALUE DECIMAL(6,2);
DECLARE @TMP VARCHAR(100);
DECLARE @TRN_TILL SMALLINT;
DECLARE @TRN_TICKET SMALLINT;
DECLARE @USERNAME VARCHAR(50);
DECLARE C CURSOR FOR
SELECT
SEQNRHIST,
BARCODE,
DATTIM,
ACTION,
ORIGIN,
DESTTYPE,
DEST,
VALUE,
SALETYPE,
USERTYPE
FROM
DBO.T_CHEQUE_ACHAT_HISTORY
ORDER BY
SeqNrHist,
Barcode,
DatTim
OPEN C;
FETCH NEXT FROM C INTO @SEQNRHIST, @BARCODE, @DATE, @ACTION, @ORIGIN, @DESTTYPE, @DEST, @VALUE, @SALETYPE, @USERTYPE;
WHILE @@FETCH_STATUS = 0
BEGIN
--ON RECUPERE L'ID DU GIFT
EXEC TMP_UP_CREATE_GIFT_IF_NOT_EXISTS @BARCODE, @GFT_ID OUTPUT, @VALUE;
--ON NOTE LA LIGNE EN COURS DE TRAITEMENT POUR IDENTIFIER SI PLANTAGE
UPDATE DBO.T_CURRENT_LINE_PROCESSING_CLP
SET
SEQNRHIST = @SEQNRHIST,
BARCODE = @BARCODE,
ACTION = @ACTION
--ON DEFINIT SI L'UTILISATEUR EST NORMAL OU ADMIN
IF @USERTYPE <> 0
SET @USERNAME = 'ADMIN';
ELSE
SET @USERNAME = 'NORMAL';
--UTILISE A LA CAISSE (TTR_ID = 1)
IF @ACTION = 'P'
BEGIN
--ON RECUPERE L'ID DU MAGASIN
SET @ORIGIN = @ORIGIN * 10000
IF @ORIGIN = 0
SET @ORIGIN = 17
ELSE
EXEC TMP_UP_GET_STORE_ID @ORIGIN, @STR_ID OUTPUT;
--ON RECUPERE LA CAISSE ET LE TICKET
IF @USERTYPE <> 0 --SI L'UTILISATION EST SIMULEE PAR UN ADMIN --> CAISSE ET TICKET = 0
BEGIN
SET @TRN_TICKET = 0;
SET @TRN_TILL = 0;
END
ELSE
BEGIN
SET @TMP = RIGHT('000000'+CAST(@DEST AS VARCHAR(6)),6);
SET @TRN_TILL = CAST(LEFT(@TMP,2) AS SMALLINT);
SET @TRN_TICKET = CAST(RIGHT(@TMP,4) AS SMALLINT);
END
--ON INSERE LA TRANSACTION
SET @DECIMAL_VALUE = CAST(@VALUE AS DECIMAL(10,2)) / 100;
INSERT INTO DBO.T_TRANSACTION_TRN( TTR_ID, GFT_ID, STR_ID, TRN_DATE, TRN_TILL, TRN_TICKET, TRN_VALUE, TRN_CREATED_BY)
VALUES(1, @GFT_ID, @STR_ID, @DATE, @TRN_TILL, @TRN_TICKET, @DECIMAL_VALUE, @USERNAME);
END
FETCH NEXT FROM C INTO @SEQNRHIST, @BARCODE, @DATE, @ACTION, @ORIGIN, @DESTTYPE, @DEST, @VALUE, @SALETYPE, @USERTYPE;
END
CLOSE C;
DEALLOCATE C; |
Partager