ALTER PROCEDURE Op_GrabarRegistroenDetalleTempProc
(
    @NBRSIDE            UD_CARA                     = NULL,
    @CORRNBR            int,
--  @DOCTYPEID          UD_DOCTYPEID,       No se Necesita
    @NBRDOCUMENT        UD_CORRELATIVOS, -- No se requiere en el Temporal
--  @SEQUENCE           UD_REGISTRO,      La tengo que calcular aqui mismo por el Correlativo   
--  @SITEID             UD_IDSITE,        Lo Obtenemos del Setup
    @INVTIDSKU          UD_IDCORPORATIVO,
    @CURYID             UD_CURYID,      -- Moneda de la Caja
--  @DOCSTATUSID        char(2),           char(2)='NA' Por Defecto es Ninguna Acción 
--  @DATEDOC            UD_FECHA,
--  @DATEPROCESALES     UD_FECHA,
--  @PERSPOT            UD_PERPOST,
    @STKCLOSEDZ         bit,
    @STKCLOSEDX         bit,
    @NBRTURN            tinyint,           
    @NBRTRANSACFUEL     char(4)                     = NULL,  -- SOLO LAS QUE VIENEN DEL GASBOY
    @DISCDSCTO1         UD_PORCENTAJE,  --NO SE UTILIZA PARA COMBUSTIBLE
    @DISCDSCTO2         UD_PORCENTAJE,  --NO SE UTILIZA PARA COMBUSTIBLE
    @DISCMTOPEN         UD_MONTO,       --NO SE UTILIZA PARA COMBUSTIBLE
    @DISCMTOUSD         UD_MONTO,       --NO SE UTILIZA PARA COMBUSTIBLE
    @PORCENTTAXIGV      UD_PORCENTAJE,    
    @PORCENTTAXISC      UD_PORCENTAJE,
    @TOTALPEN           UD_MONTO,          
    @TOTALUSD           UD_MONTO,
    @TAXPEN             UD_MONTO,
    @TAXUSD             UD_MONTO,
    @STKITEM            bit,
    @STKFISI            bit,
    @SLS_PRICE          UD_PRECIO,
    @SLSPRICESALE       UD_PRECIO,
    @STDCOSTPEN         UD_COSTO,  
    @STDCOSTUSD         UD_COSTO,
    @INVTIDALTER        UD_CODIGOBARRA,
    @DESCRINVENTORY     UD_DESCRIPCION,
    @QTY                UD_STOCK,
    @USERID             UD_USERID,
    @KIT                BIT,
    @COMBUSTIBLE        BIT,
    @PTOVTA             UD_PTOVTA,
    @STKUNITID          UD_STKUNITID,
    @DESCI 		int,    
    @DESCD 		int,                     
    @DESCIDP		int,          
    @DISCMTOPEND         UD_MONTO,      
    @DISCMTOUSDD         UD_MONTO,
    @IMPRFACPREIMPRESA	int
)
AS
BEGIN
    DECLARE @DOCTYPEIDTICKET  UD_DOCTYPEID    
    DECLARE @SEQUENCE UD_REGISTRO 
    DECLARE @SITEID UD_IDSITE
    DECLARE @DOCSTATUSID  char(2)
    DECLARE @DATEDOC  UD_FECHAHORA
    DECLARE @DATEPROCESALES UD_FECHA
    DECLARE @PERPOST UD_PERPOST   
    DECLARE @RESULTADO char(2)
    DECLARE @SERIEFACTPREIMPRESA CHAR(3)   -----NUMERO DE SERIE FACTURA-PREIMPRESA

--   DECLARE @STDCOSTPEN UD_COSTO    
--   DECLARE @STDCOSTUSD UD_COSTO      
--   Verificar que mi Numero de Transaccion del Fuels no exista

    BEGIN TRAN
            
    --   Si existe la Transaccion fuel en el temporal la elimino por el numero transafuel 
    --   Pero se tiene en cuenta que no sea nulo ese campo por que si se hace un ingreso manual 
    --   no tiene numero de transacfuel 
    if exists (select NBRTRANSACFUEL from tmp_op_salesdet where NBRTRANSACFUEL=@NBRTRANSACFUEL 
                                                                AND (NOT NBRTRANSACFUEL is null)) 
       begin            
         DELETE FROM TMP_OP_SALESDET WHERE NBRTRANSACFUEL=@NBRTRANSACFUEL
         -- Hay que validar el error
       end  

    If Rtrim(Ltrim(@NBRTRANSACFUEL))='' set @NBRTRANSACFUEL =NULL

    -- Obtener los Valores del Setup 

    IF @IMPRFACPREIMPRESA = '1'
       BEGIN
	    SET @SERIEFACTPREIMPRESA = '10'	
	    SELECT @DOCTYPEIDTICKET=DOCTYPEID FROM OP_DOCSERIES WHERE DOCTYPEID = '01' AND NBRSERIES = @SERIEFACTPREIMPRESA
	    PRINT 'FACTURA PREIMPRESA: ' + @DOCTYPEIDTICKET	 
       END	

    IF @IMPRFACPREIMPRESA = '0'
       BEGIN
	    SELECT @DOCTYPEIDTICKET=DOCTYPEIDTICKET  from OP_SETUP 
	    PRINT 'OTROS: ' + STR(@DOCTYPEIDTICKET)	 
       END
				
    --SELECT @DOCTYPEIDTICKET='12 '  
    --Obtener la Secuencia del Registro
    SELECT @SEQUENCE=COUNT(SEQUENCE)+ 1 FROM TMP_OP_SALESDET WHERE CORRNBR=@CORRNBR      
    --Obtener el Almacen Origen 
    SELECT @SITEID=SOURCESITE from setup      
    -- Por Defecto es NA   
    SELECT @DOCSTATUSID='NA'
    -- Fecha de Documento
    SELECT @DATEDOC=GETDATE()
    SELECT @DATEPROCESALES=DATEPROCESALES FROM OP_SETUP 
    -- SELECT @DATEPROCESALES=GETDATE()    
    -- CREAR EL PERPOST 
    
    SET @PERPOST=RTRIM(LTRIM(DATEPART(yyyy,@DATEPROCESALES))) 

    SELECT @RESULTADO= CASE DATEPART(mm,@DATEPROCESALES) WHEN 1 THEN '01'  WHEN 2 THEN '02' WHEN 3 THEN '03'
                                                         WHEN 4 THEN '04'  WHEN 5 THEN '05' WHEN 6 THEN '06'
                                                    WHEN 7 THEN '07'  WHEN 8 THEN '08' WHEN 9 THEN '09'
                                                         WHEN 10 THEN '10' WHEN 11 THEN '11' WHEN 12 THEN '12' END          
         
    SET @PERPOST=RTRIM(LTRIM(@PERPOST)) + RTRIM(LTRIM(@RESULTADO))
    
    INSERT INTO TMP_OP_SALESDET(CORRNBR,DOCTYPEID,NBRDOCUMENT,SEQUENCE,SITEID,INVTIDSKU,CURYID,
                                DOCSTATUSID,DATEDOC,DATEPROCESALES,PERPOST,STKCLOSEDZ,STKCLOSEDX,NBRTURN,
                                NBRSIDE,NBRTRANSACFUEL,DISCDSCTO1,DISCDSCTO2,DISCMTOPEN,DISCMTOUSD,PORCENTTAXIGV,
                                PORCENTTAXISC,TOTALPEN,TOTALUSD,TAXPEN,TAXUSD,STKITEM,STKFISI,SLS_PRICE,
                                SLSPRICESALE,STDCOSTPEN,STDCOSTUSD,INVTIDALTER,DESCRINVENTORY,QTY,USERID,KIT,COMBUSTIBLE,PTOVTA,STKUNITID,DESCI,DESCD,DESCIDP,DISCMTOPEND,DISCMTOUSDD)
    VALUES(@CORRNBR,@DOCTYPEIDTICKET,@NBRDOCUMENT,@SEQUENCE,@SITEID,@INVTIDSKU,
           @CURYID,@DOCSTATUSID,@DATEDOC,@DATEPROCESALES,@PERPOST,@STKCLOSEDZ,@STKCLOSEDX,
           @NBRTURN,@NBRSIDE,@NBRTRANSACFUEL,@DISCDSCTO1,@DISCDSCTO2,@DISCMTOPEN,@DISCMTOUSD,
           @PORCENTTAXIGV,@PORCENTTAXISC,@TOTALPEN,@TOTALUSD,@TAXPEN,@TAXUSD,@STKITEM, 
           @STKFISI,@SLS_PRICE,@SLSPRICESALE, 
           @STDCOSTPEN,@STDCOSTUSD,@INVTIDALTER,@DESCRINVENTORY,
           @QTY,@USERID,@KIT,@COMBUSTIBLE,@PTOVTA,@STKUNITID,@DESCI,@DESCD,@DESCIDP,@DISCMTOPEND,@DISCMTOUSDD)

    IF (@@error!=0)
    BEGIN
        RAISERROR  20000 'No se puede Registrar registro en Detalle '
        ROLLBACK TRAN
        RETURN(1)    
    END

    COMMIT TRAN

END