--USE [sap_smadar]
--GO
--/****** Object:  StoredProcedure [dbo].[spSmadar_RollbackData]    Script Date: 06/07/2015 17:02:19 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

CREATE PROCEDURE [dbo].[spSmadar_RollbackData]
   -- Input parameters --
   @DocumentNumber NVARCHAR(50),
   @DataFile NVARCHAR(255),
   @DocumentName NVARCHAR(255)
AS

-- Temporary variables --
DECLARE @MYTYPE NVARCHAR(30);
DECLARE @Code NVARCHAR(30);
DECLARE @Name NVARCHAR(30);
DECLARE @DocNumber NVARCHAR(50);
DECLARE @DocTable NVARCHAR(MAX);
DECLARE @Path NVARCHAR(MAX); --ntext
DECLARE @Remarks NVARCHAR(MAX);
--DECLARE @Description NVARCHAR(MAX);
DECLARE @Date DATETIME;
DECLARE @Time SMALLINT;
DECLARE @UserName NVARCHAR(MAX);
DECLARE @Type NVARCHAR(MAX);
DECLARE @DocTablePath NVARCHAR(MAX);
DECLARE @MSG NVARCHAR(MAX);
DECLARE @TempProc NVARCHAR(MAX);
DECLARE @FldName NVARCHAR(MAX);
DECLARE @Signs SMALLINT;

SET @MYTYPE = SUBSTRING(@DocumentNumber, 1, 1);

SET @Type = RIGHT(@DataFile, PATINDEX(N'%.%', REVERSE(@DataFile)) - 1);
SET @DocNumber = SUBSTRING(@DocumentNumber, 2, LEN(@DocumentNumber) - 1);
IF(@MYTYPE=N'A') BEGIN SET @MYTYPE = SUBSTRING(@DocumentNumber, 1, 2); SET @DocNumber = SUBSTRING(@DocumentNumber, 3, LEN(@DocumentNumber) - 2);END
SET @Path =@DataFile;/* N'C:\temp\Smadar\out' + RIGHT(@DataFile, PATINDEX(N'%\%', REVERSE(@DataFile)));*/

     IF (@MYTYPE = N'D') BEGIN SET @DocTable = N'ODLN'; SET @FldName = N'DocNum'; END   -- 1
ELSE IF (@MYTYPE = N'O') BEGIN SET @DocTable = N'ORDR'; SET @FldName = N'DocNum'; END   -- 2
ELSE IF (@MYTYPE = N'I') BEGIN SET @DocTable = N'OINV'; SET @FldName = N'DocNum'; END   -- 3
ELSE IF (@MYTYPE = N'L') BEGIN SET @DocTable = N'OQUT'; SET @FldName = N'DocNum'; END   -- 4
ELSE IF (@MYTYPE = N'H') BEGIN SET @DocTable = N'ORDN'; SET @FldName = N'DocNum'; END   -- 5
ELSE IF (@MYTYPE = N'J') BEGIN SET @DocTable = N'ORIN'; SET @FldName = N'DocNum'; END   -- 6
ELSE IF (@MYTYPE = N'N') BEGIN SET @DocTable = N'ORPC'; SET @FldName = N'DocNum'; END   -- 7
ELSE IF (@MYTYPE = N'M') BEGIN SET @DocTable = N'OPDN'; SET @FldName = N'DocNum'; END   -- 8
ELSE IF (@MYTYPE = N'R') BEGIN SET @DocTable = N'OPOR'; SET @FldName = N'DocNum';END    -- 9
ELSE IF (@MYTYPE = N'U') BEGIN SET @DocTable = N'ORPD'; SET @FldName = N'DocNum';END    -- 10
ELSE IF (@MYTYPE = N'Q') BEGIN SET @DocTable = N'OPCH'; SET @FldName = N'DocNum';END    -- 11
ELSE IF (@MYTYPE = N'T') BEGIN SET @DocTable = N'OSCL'; SET @FldName = N'callID'; END   -- 12
ELSE IF (@MYTYPE = N'E') BEGIN SET @DocTable = N'ODPS'; SET @FldName = N'DeposNum'; END -- 13
ELSE IF (@MYTYPE = N'K') BEGIN SET @DocTable = N'ORCT'; SET @FldName = N'DocNum'; END   -- 14
ELSE IF (@MYTYPE = N'C') BEGIN SET @DocTable = N'OCRD'; SET @FldName = N'DocEntry'; END -- 15
ELSE IF (@MYTYPE = N'F') BEGIN SET @DocTable = N'OJDT'; SET @FldName = N'transID';END   -- 16
ELSE IF (@MYTYPE = N'X') BEGIN SET @DocTable = N'OIPF'; SET @FldName = N'DocNum'; END   -- 17
ELSE IF (@MYTYPE = N'P') BEGIN SET @DocTable = N'OHEM'; SET @FldName = N'empID'; END    -- 18
ELSE IF (@MYTYPE = N'B') BEGIN SET @DocTable = N'OBNK'; SET @FldName = N'CardCode'; END -- 19
ELSE IF (@MYTYPE = N'W') BEGIN SET @DocTable = N'OWTR'; SET @FldName = N'DocNum'; END   -- 20
ELSE IF (@MYTYPE = N'G') BEGIN SET @DocTable = N'OITM'; SET @FldName = N'DocEntry'; END -- 21
ELSE IF (@MYTYPE = N'Z') BEGIN SET @DocTable = N'OCLG'; SET @FldName = N'ClgCode'; END  -- 22
ELSE IF (@MYTYPE = N'S') BEGIN SET @DocTable = N'OWOR'; SET @FldName = N'DocNum'; END  -- 23
ELSE IF (@MYTYPE = N'Y') BEGIN SET @DocTable = N'OCTR'; SET @FldName = N'ContractID'; END  -- 24
ELSE IF (@MYTYPE = N'V') BEGIN SET @DocTable = N'OACT'; SET @FldName = N'FormatCode'; END  -- 25
ELSE IF(@MYTYPE = N'AB') BEGIN SET @DocTable = N'OOPR'; SET @FldName = N'OpprId'; END --26
ELSE IF(@MYTYPE = N'AC') BEGIN SET @DocTable = N'OPQT'; SET @FldName = N'DocNum'; END --27
ELSE IF(@MYTYPE = N'AP') BEGIN SET @DocTable = N'OVPM'; SET @FldName = N'DocNum'; END --28
ELSE IF(@MYTYPE = N'AN') BEGIN SET @DocTable = N'OIGN'; SET @FldName = N'DocNum'; END --29
ELSE IF(@MYTYPE = N'AE') BEGIN SET @DocTable = N'OIGE'; SET @FldName = N'DocNum'; END --30
ELSE IF(@MYTYPE = N'AD') BEGIN SET @DocTable = N'OPKL'; SET @FldName = N'AbsEntry'; END --31
ELSE IF(@MYTYPE = N'AF') BEGIN SET @DocTable = N'OBTD'; SET @FldName = N'BatchNum'; END --32
ELSE IF(@MYTYPE = N'AT') BEGIN SET @DocTable = N'OACT'; SET @FldName = N'AcctCode'; END --33
ELSE IF(@MYTYPE = N'AH') BEGIN SET @DocTable = N'ODPO'; SET @FldName = N'DocNum'; END --34
ELSE IF(@MYTYPE = N'AM') BEGIN SET @DocTable = N'OIQR'; SET @FldName = N'DocNum'; END --35 לוח חשבונות
ELSE IF(@MYTYPE = N'AR') BEGIN SET @DocTable = N'ODRF'; SET @FldName = N'DocEntry'; END --36 טיוטה

/* Support ZIV Systems types */


ELSE IF(@MYTYPE = N'AA') BEGIN 
	SET @MYTYPE = SUBSTRING(@DocumentNumber, 1, 3); 
	SET @DocNumber = SUBSTRING(@DocumentNumber, 4, LEN(@DocumentNumber) - 3);
	     IF (@MYTYPE = N'AAB') BEGIN SET @DocTable = N'A1GEN_PROJ_SITE'; SET @FldName = N'Code'; END        -- 1 פרוייקט/אתר השכרה
	ELSE IF (@MYTYPE = N'AAC') BEGIN SET @DocTable = N'A1SALE_BUILDING'; SET @FldName = N'Code'; END        -- 2 מבנה מכירה
	ELSE IF (@MYTYPE = N'AAD') BEGIN SET @DocTable = N'A1SALE_FLOOR'; SET @FldName = N'Code'; END           -- 3 קומה מכירה
	ELSE IF (@MYTYPE = N'AAE') BEGIN SET @DocTable = N'A1SALE_ASSET'; SET @FldName = N'Code'; END           -- 4 נכס מכירה
	ELSE IF (@MYTYPE = N'AAF') BEGIN SET @DocTable = N'A1SALE_Price_List'; SET @FldName = N'Code'; END      -- 5 מחירון נכס מכירה
	ELSE IF (@MYTYPE = N'AAG') BEGIN SET @DocTable = N'A1SALE_CONTRACT'; SET @FldName = N'Code'; END        -- 6 חוזה מכירה
	ELSE IF (@MYTYPE = N'AAH') BEGIN SET @DocTable = N'A1SALE_Add_To_Con'; SET @FldName = N'Code'; END      -- 7 תוספת מכירה
	ELSE IF (@MYTYPE = N'AAI') BEGIN SET @DocTable = N'A1SALE_SPECIFICTON'; SET @FldName = N'Code'; END   -- 8 מפרט מכירה
	ELSE IF (@MYTYPE = N'AAJ') BEGIN SET @DocTable = N'A1RENT_BUILDING'; SET @FldName = N'Code'; END        -- 9 מבנה השכרה
	ELSE IF (@MYTYPE = N'AAK') BEGIN SET @DocTable = N'A1RENT_FLOOR'; SET @FldName = N'Code'; END           -- 10 קומה השכרה
	ELSE IF (@MYTYPE = N'AAL') BEGIN SET @DocTable = N'A1RENT_ASSET'; SET @FldName = N'Code'; END           -- 11 נכס השכרה
	ELSE IF (@MYTYPE = N'AAM') BEGIN SET @DocTable = N'A1RENT_CONTRACT'; SET @FldName = N'Code'; END        -- 12 חוזה השכרה
	ELSE IF (@MYTYPE = N'AAN') BEGIN SET @DocTable = N'@A1GEN_PROJ_SITE'; SET @FldName = N'Code'; END        -- 13 פרויקט
	ELSE IF (@MYTYPE = N'AAO') BEGIN SET @DocTable = N'@A1CONS_SUBPROJECTS'; SET @FldName = N'Code'; END           -- 14 תת פרויקט
	ELSE IF (@MYTYPE = N'AAP') BEGIN SET @DocTable = N'@A1CONS_CONTRACTS'; SET @FldName = N'Code'; END           -- 15 חוזה
	ELSE IF (@MYTYPE = N'AAR') BEGIN SET @DocTable = N'@A1CONS_CONTRACTBILL'; SET @FldName = N'Code'; END        -- 16 חשבון חוזה
	ELSE IF (@MYTYPE = N'AAN') BEGIN SET @DocTable = N'@A1GEN_PROJ_SITE'; SET @FldName = N'Code'; END        -- 13 פרויקט
    ELSE IF (@MYTYPE = N'AAO') BEGIN SET @DocTable = N'@A1CONS_SUBPROJECTS'; SET @FldName = N'Code'; END           -- 14 תת פרויקט
    ELSE IF (@MYTYPE = N'AAP') BEGIN SET @DocTable = N'@A1CONS_CONTRACTS'; SET @FldName = N'Code'; END           -- 15 חוזה
    ELSE IF (@MYTYPE = N'AAR') BEGIN SET @DocTable = N'@A1CONS_CNTRC_BILLS'; SET @FldName = N'Code'; END  

END

ELSE BEGIN RAISERROR (N'Not found specified document type :  %s' , 11, 1, @MYTYPE); END

if @@ERROR=0

BEGIN
	DELETE FROM [dbo].[ScanDocs_SBODemoIL] WHERE [DocNumber] = @DocNumber AND [DocTable] = @DocTable AND [Path] = @Path
END

RETURN 1

