--Hash:73FF3FD3F232FED2F4A95959546AA675
SET XACT_ABORT ON
BEGIN TRANSACTION;

GO

SET DATEFORMAT mdy;

--Validar que no existan scripts que no se hayan ejecutado
--//
IF EXISTS
(
	SELECT a.NumVersion + 1 AS HuecoInicio
	FROM ZiurVersiones a
	LEFT JOIN ZiurVersiones b ON a.NumVersion + 1 = b.NumVersion
	WHERE a.NumVersion>830 AND b.NumVersion IS NULL
	AND a.NumVersion + 1 < 944
)
RAISERROR('Error : hay un script que no se ejecuto , debe ejecutarlo manualmente.', 20, -1) with log
--//

--Colocar contenido de script diferencial aqui (Ziur.Database.publish.sql)

/*
 Plantilla de script anterior a la implementación							
--------------------------------------------------------------------------------------
 Este archivo contiene instrucciones de SQL que se ejecutarán antes del script de compilación	
 Use la sintaxis de SQLCMD para incluir un archivo en el script anterior a la implementación			
 Ejemplo:      :r .\miArchivo.sql								
 Use la sintaxis de SQLCMD para hacer referencia a una variable en el script anterior a la implementación		
 Ejemplo:      :setvar TableName miTabla							
               SELECT * FROM [$(TableName)]					
--------------------------------------------------------------------------------------
*/
GO

GO
PRINT N'Altering Procedure [dbo].[CopiarDocumentosBasados]...';


GO


ALTER PROCEDURE [dbo].[CopiarDocumentosBasados]

@IdEncabStr NVARCHAR(1000),
@IdCliente INT,
@IdElaboro INT,
@IdPrefijo NVARCHAR(50),
@Fecha NVARCHAR(20) = NULL,
@IdDocumento INT=NULL,
@FechaVence NVARCHAR(20) = NULL,
@Nota NVARCHAR(1000),
@InfoUsuario NVARCHAR(100)='0,--BASEDATOS--',
@Exito INT output

AS
BEGIN

 /*	OPERACION DE COPIAR ARCHIVOS */
  
 IF @IdEncabStr LIKE '%,'
	SET @IdEncabStr = SUBSTRING(@IdEncabStr,0,LEN(@IdEncabStr))
 
 DECLARE @InsertedIdEncabs	   TABLE (id INT, idPas INT)
 DECLARE @InsertedIdEncabMovs  TABLE (id INT, idE INT, idPas INT, idPasE INT)
 DECLARE @IdPas INT
 DECLARE @FechaT DATETIME, @esMov bit=null,@Escont bit=null
 DECLARE @FechaVenceT DATETIME
		 
 IF (@Fecha IS NOT NULL)
	SET @FechaT = CAST(CONVERT(DATETIME, @Fecha, 103) + ' 00:00:00' AS DATETIME)

IF (@FechaVence IS NOT NULL)
	SET @FechaVenceT = CAST(CONVERT(DATETIME, @FechaVence, 103) + ' 23:59:59' AS DATETIME)
	--Procedimiento para Usuario Auditoria
    exec CrearContextoUsuario @InfoUsuario

	IF(@IdDocumento is not null)
	BEGIN
		select @esMov=EsMov from Documentos where IdDocumento=@IdDocumento
		select @Escont=EsCont from Documentos where IdDocumento=@IdDocumento
	END 



ALTER INDEX XI_NumeracionUnica ON [dbo].[Encabezados]
DISABLE;	
 
 --Insertar los Nuevos Encabezados
 --//
 INSERT INTO Encabezados
  (IdEmpresa, IdDocumento, 
   IdPrefijo, 
   NumDocumento, NumDocumentoExt, 
   Fecha, Vence, 
   IdCliente1, 
   IdCliente1_IdDir, 
   IdCliente2, 
   IdClienteVend, IdMoneda, Nota, IdFormaPago, NomPc,EsBloqueado, EsRevisado, EsImpreso, IdAutomotor, IdContacto, IdTipo, FechaIni, FechaFin, IdSucursal, IdMesa, ValorTRM)
	OUTPUT inserted.IdEncab, 1
	INTO @InsertedIdEncabs
 SELECT 
  IdEmpresa, COALESCE(@IdDocumento,IdDocumento), 
  CASE WHEN COALESCE(@IdPrefijo, '-1') = '-1' THEN IdPrefijo ELSE @IdPrefijo END, 
  0, NumDocumentoExt, 
  CASE WHEN @Fecha IS NULL THEN Fecha ELSE @FechaT END AS Fecha, 
  CASE WHEN @FechaVence IS NULL THEN Vence ELSE @FechaVenceT END AS Vence, 
  CASE WHEN COALESCE(@IdCliente, -1) = -1 THEN IdCliente1 ELSE @IdCliente END, 
  IdCliente1_IdDir,
  CASE WHEN COALESCE(@IdElaboro, -1) = -1 THEN IdCliente2 ELSE @IdElaboro END,
  IdClienteVend, IdMoneda,
  CASE WHEN @Nota IS NULL THEN Nota ELSE @Nota END, 
  IdFormaPago, NomPc, EsBloqueado, EsRevisado, EsImpreso, IdAutomotor, IdContacto, IdTipo, FechaIni, FechaFin, IdSucursal, IdMesa, ValorTRM
 FROM Encabezados
 WHERE IdEncab IN (select  number from iter$simple_intlist_to_tbl(@IdEncabStr))
 ORDER BY Encabezados.IdEncab
 --// 

 ALTER INDEX XI_NumeracionUnica ON [dbo].[Encabezados]
REBUILD;
 
 --Relaciona IdEncab Nuevos con IdEncab Bases
 --//
 UPDATE @InsertedIdEncabs
 SET idPas = q.idPas
 FROM @InsertedIdEncabs ins INNER JOIN
	(SELECT q1.id, q2.number as idPas, q1.x, q2.x as xPas
	 FROM	
	 (SELECT id, ROW_NUMBER() over(order by id) as x
	  FROM @InsertedIdEncabs) q1 INNER JOIN
	 (SELECT number, ROW_NUMBER() over(order by number) as x 
	  FROM iter$simple_intlist_to_tbl(@IdEncabStr)) as q2
 	  ON q1.x = q2.x) as q ON q.id = ins.id
 --//
 
 --	Setea la Direccion con el IdClienteDir del Nuevo IdCliente
 --//
 IF COALESCE(@IdCliente, -1) <> -1
 BEGIN
  
  UPDATE Encabezados 
  SET [IdCliente1_IdDir] = 
  (SELECT MIN(cliDir.IdClienteDir)
   FROM Encabezados enc INNER JOIN @InsertedIdEncabs ins ON enc.IdEncab = ins.id 
						INNER JOIN VClientesDir cliDir ON Encabezados.IdCliente1 = cliDir.IdCliente)
  WHERE	IdEncab IN (select id from @InsertedIdEncabs)
    
 END
 --//
 


 -- Insertar Los Nuevos Encabezados_Mov
 --//
 IF COALESCE(@esMov,1)=1
 BEGIN
 
	 -- Inserta Los Encabezados_Mov que no son Hijos
	 --//
	 INSERT INTO Encabezados_Mov
	 (IdEncab, 
	 IdInventario, IdBodega, IdLote, Cantidad, CantidadFisica, IdUnidad, FactorCantidad, FactorMovim, ValorUnitario, ValorUnitarioExt, ValorIva, ValorImptoConsumo, TotalMov, 
	 IdCliente, 
	 Nota, Vence, IdCentroCosto, Dcto, EsIvaAlCosto, EsVisible, EsImpreso, EsRevisado, EsExcluirCruce, CostoPromValor, CostoPromCosto, CostoPromCant, NumSerial, IdEncabMov2,
	 CantDim4, ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg
	 )
		OUTPUT inserted.IdEncabMov, inserted.IdEncab, 1, 1
		INTO @InsertedIdEncabMovs
	 SELECT 
	 ins.id, 
	 IdInventario, IdBodega, IdLote, Cantidad, CantidadFisica, IdUnidad, FactorCantidad, FactorMovim, ValorUnitario, ValorUnitarioExt, ValorIva, ValorImptoConsumo, TotalMov, 
	 CASE WHEN COALESCE(@IdCliente, -1) = -1 THEN IdCliente ELSE @IdCliente END, 
	 Nota, CASE WHEN @FechaVenceT IS NULL THEN Vence ELSE @FechaVenceT END AS Vence, 
	 IdCentroCosto, Dcto, EsIvaAlCosto, EsVisible, EsImpreso, EsRevisado, EsExcluirCruce, CostoPromValor, CostoPromCosto, CostoPromCant, NumSerial, IdEncabMov2,
	 CantDim4, ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg
	 FROM Encabezados_Mov encMov INNER JOIN @InsertedIdEncabs ins
	 ON	  encMov.IdEncab = ins.idPas AND encMov.IdEncabMov2 IS NULL
	 ORDER BY encMov.IdEncabMov
	 --//
	 
	 -- Relaciona IdEncabMov Nuevos con IdEncabMov Base Incluyendo IdEncab
	 --// 
	 UPDATE @InsertedIdEncabMovs
	 SET idPas = q.idPas,
		 idPasE = q.idPasE
	 FROM @InsertedIdEncabMovs ins INNER JOIN
	 (SELECT q1.id,q1.idE,q2.IdEncabMov as idPas, q2.IdEncab as idPasE
	  FROM
	  (SELECT id, idE, ROW_NUMBER() over(order by id) as x
	   FROM @InsertedIdEncabMovs) AS q1 INNER JOIN 
	  (SELECT encMov.IdEncabMov, encMov.IdEncab, ROW_NUMBER() over(order by encMov.IdEncabMov)as x
	   FROM Encabezados_Mov encMov INNER JOIN @InsertedIdEncabs ins
	   ON encMov.IdEncab = ins.idPas AND encMov.IdEncabMov2 IS NULL) q2
	  ON q1.x = q2.x) q ON q.id = ins.id
	 --//
	 
	 -- Inserta Los Encabezados_Mov que son Hijos
	 --//
	 INSERT INTO Encabezados_Mov
	 (IdEncab, 
	 IdInventario, IdBodega, IdLote, Cantidad, CantidadFisica, IdUnidad, FactorCantidad, FactorMovim, ValorUnitario, ValorUnitarioExt, ValorIva, ValorImptoConsumo, TotalMov, 
	 IdCliente, 
	 Nota, Vence, IdCentroCosto, Dcto, EsIvaAlCosto, EsVisible, EsImpreso, EsRevisado, EsExcluirCruce, CostoPromValor, CostoPromCosto, CostoPromCant, NumSerial, 
	 IdEncabMov2)
	 SELECT 
	 ins.idE, 
	 IdInventario, IdBodega, IdLote, Cantidad, CantidadFisica, IdUnidad, FactorCantidad, FactorMovim, ValorUnitario, ValorUnitarioExt, ValorIva, ValorImptoConsumo, TotalMov, 
	 CASE WHEN COALESCE(@IdCliente, -1) = -1 THEN IdCliente ELSE @IdCliente END, 
	 Nota,  CASE WHEN @FechaVenceT IS NULL THEN Vence ELSE @FechaVenceT END AS Vence, 
	 IdCentroCosto, Dcto, EsIvaAlCosto, EsVisible, EsImpreso, EsRevisado, EsExcluirCruce, CostoPromValor, CostoPromCosto, CostoPromCant, NumSerial, 
	 ins.id
	 FROM Encabezados_Mov encMov INNER JOIN @InsertedIdEncabMovs ins
	 ON	  encMov.IdEncab = ins.idPasE AND encMov.IdEncabMov2 = ins.idPas
	 ORDER BY encMov.IdEncabMov
	 --//
 END	
 --//
 
 -- Insertar Los Nuevos Encabezados_Cont
 --//
  IF COALESCE(@Escont,1)=1
 BEGIN
	 INSERT INTO Encabezados_Cont
	 (IdEncab, 
	  IdCuenta, Debito, Credito, Nota, 
	  IdCliente, 
	  IdClienteBanco, IdInventario, DocReferencia, RetencionBase, RetencionPorc, Vence, IdCentroCosto, IdAbonaDif, IdAbonaCheque, EsRevisado, EsDeducible, IdEmpleado,
	  DebitoExt, CreditoExt)
	 SELECT 
	  ins.id, 
	  IdCuenta, Debito, Credito, Nota, 
	  CASE WHEN COALESCE(@IdCliente, -1) = -1 THEN IdCliente ELSE @IdCliente END, 
	  IdClienteBanco, IdInventario, DocReferencia, RetencionBase, RetencionPorc, 
	  CASE WHEN @FechaVenceT IS NULL THEN Vence ELSE @FechaVenceT END AS Vence,
	  IdCentroCosto, IdAbonaDif, IdAbonaCheque, EsRevisado, EsDeducible, IdEmpleado,
	  DebitoExt, CreditoExt
	 FROM Encabezados_Cont encCont INNER JOIN @InsertedIdEncabs ins
	 ON	  encCont.IdEncab = ins.idPas
	 --//
	 END

		INSERT INTO EncabezadosEspecial
		(IdEncab, Especial_01, Especial_02, Especial_03, Especial_04, Especial_05,
		Especial_06, Especial_07, Especial_08, Especial_09, Especial_10, 
		Especial_11, Especial_12, Especial_13, Especial_14, Especial_15,
		Especial_16, Especial_17, Especial_18, Especial_19, Especial_20,
		Especial_21, Especial_22, Especial_23, Especial_24, Especial_25,
		Especial_26, Especial_27, Especial_28, Especial_29, Especial_30, 
		Especial_31, Especial_32, Especial_33, Especial_34, Especial_35,
		Especial_36, Especial_37, Especial_38, Especial_39, Especial_40)
		SELECT id, Especial_01, Especial_02, Especial_03, Especial_04, Especial_05,
		Especial_06, Especial_07, Especial_08, Especial_09, Especial_10, 
		Especial_11, Especial_12, Especial_13, Especial_14, Especial_15,
		Especial_16, Especial_17, Especial_18, Especial_19, Especial_20,
		Especial_21, Especial_22, Especial_23, Especial_24, Especial_25,
		Especial_26, Especial_27, Especial_28, Especial_29, Especial_30, 
		Especial_31, Especial_32, Especial_33, Especial_34, Especial_35,
		Especial_36, Especial_37, Especial_38, Especial_39, Especial_40
		FROM EncabezadosEspecial enew INNER JOIN @InsertedIdEncabs ins
		ON ins.idPas=enew.IdEncab

	 /*	OPERACION EJECUTADA EXITOSAMENTE */
	 SET @Exito = 1 
	 Select IdEncab, IdDocumento From 
	 @InsertedIdEncabs ins INNER JOIN Encabezados enc
	 ON ins.id = enc.IdEncab


END
GO
PRINT N'Altering Procedure [dbo].[CrucesDocumentosInsertar]...';


GO
ALTER PROCEDURE [dbo].[CrucesDocumentosInsertar]

    @IdEncabBasado INT,
	@IdMoneda INT,
	@Fecha datetime,
	@FechaVence datetime,
	@IdDocumento INT,
	@IdCliente1 INT,
	@IdCliente2 INT,
	@IdClienteVend INT=NULL, 
	@IdEncab nvarchar(100) = '',
	@Nota NVARCHAR(max)=NULL,
	@IdEncabMov nvarchar(100) = '',
	@SumCantidad numeric(24,8)= 0,
	@IdUnidad int= 0,
	@FactorCantidad numeric(28,6)= 0,
	@FactorMovim INT,
	@NotaMov NVARCHAR(600)=NULL,
	@IdBodegaTras INT,
	@InfoUsuario NVARCHAR(100),
	@IdServicio INT=Null,
	@CantidadSer numeric(24,8)= 0,
	@FactorCantidad1 numeric(24,8)= 0,
	@FactorCantidad2 numeric(24,8)= 0,
	@ValorUnit numeric(24,8)= 0,
	@EsVisible BIT = NULL,
	@Exito INT = 0 OUTPUT,
	@IdEncabNuevo INT = 0 OUTPUT,
	@IdMovNuevo INT = 0 OUTPUT
	
AS
BEGIN

	DECLARE 
	@Ident nvarchar(500),
	@IdCliente int,
	@IdInv int,
	@factMov int=null,
	@IdDocOrigen int=0,
	@IdDocCruc int=0,
    @CopiarEspc BIT= NULL,
    @ChildReg int=0,
	@EsInsertSubProductos INT = 0
	
    
    exec CrearContextoUsuario @InfoUsuario
	
	SET @CopiarEspc=(SELECT ValParametro FROM Parametros WHERE CodParametro=55)
	
	IF @IdEncab=''
	BEGIN
	INSERT INTO Encabezados(IdEmpresa, IdDocumento, IdPrefijo, NumDocumento, NumDocumentoExt, Fecha, Vence, IdCliente1, IdCliente1_IdDir, IdCliente2, IdClienteVend, IdMoneda, Nota, IdFormaPago, NomPc, EsAnulado, EsBloqueado, EsRevisado, EsImpreso, IdAutomotor, IdContacto, IdTipo, FechaIni, FechaFin, FinanNumCuotas, FinanInteres, FinanFechaIni, FinanDebe, IdEstado, IdClienteProp, IdInmueble, IdSucursal, IdMesa, ValorTRM, ValorNegoc, CantMin, ValorPago)
	SELECT IdEmpresa, @IdDocumento, IdPrefijo, 0, NumDocumentoExt, @Fecha, @FechaVence, @IdCliente1, IdCliente1_IdDir, @IdCliente2, IdClienteVend, @IdMoneda, @Nota, IdFormaPago, NomPc, 0, 0, EsRevisado, EsImpreso, IdAutomotor, IdContacto, IdTipo, FechaIni, FechaFin, FinanNumCuotas, FinanInteres, FinanFechaIni, FinanDebe, IdEstado, IdClienteProp, IdInmueble, IdSucursal, IdMesa, ValorTRM, ValorNegoc, CantMin, ValorPago
	FROM encabezados
	WHERE IdEncab=@IdEncabBasado
	SET @IdEncab = IDENT_CURRENT('Encabezados') 
	SET @IdEncabNuevo= @IdEncab
	SET @IdDocCruc=@IdDocumento 
	
	IF @IdDocumento=2 AND @IdClienteVend IS NULL
	UPDATE Encabezados
	SET IdClienteVend=(SELECT IdCliVendedor FROM dbo.Clientes WHERE IdCliente=@IdCliente1)
	WHERE IdEncab=@IdEncabNuevo
	
	IF @CopiarEspc IS NOT NULL
    INSERT INTO dbo.EncabezadosEspecial (IdEncab, Especial_01, Especial_02, Especial_03, Especial_04, Especial_05, Especial_06, Especial_07, Especial_08, Especial_09, Especial_10, Especial_11, Especial_12, Especial_13, Especial_14, Especial_15, Especial_16, Especial_17, Especial_18, Especial_19, Especial_20, Especial_21, Especial_22, Especial_23, Especial_24, Especial_25, Especial_26, Especial_27, Especial_28, Especial_29, Especial_30, Especial_31, Especial_32, Especial_33, Especial_34, Especial_35, Especial_36, Especial_37, Especial_38, Especial_39, Especial_40)
    SELECT @IdEncabNuevo, Especial_01, Especial_02, Especial_03, Especial_04, Especial_05, Especial_06, Especial_07, Especial_08, Especial_09, Especial_10, Especial_11, Especial_12, Especial_13, Especial_14, Especial_15, Especial_16, Especial_17, Especial_18, Especial_19, Especial_20, Especial_21, Especial_22, Especial_23, Especial_24, Especial_25, Especial_26, Especial_27, Especial_28, Especial_29, Especial_30, Especial_31, Especial_32, Especial_33, Especial_34, Especial_35, Especial_36, Especial_37, Especial_38, Especial_39, Especial_40   
	FROM EncabezadosEspecial
	WHERE IdEncab =(SELECT MAX(IdEncab) FROM Encabezados_Mov WHERE IdEncabMov=@IdEncabMov)
	END

	IF @IdEncab<>''
	BEGIN
	SET @IdDocCruc=(SELECT IdDocumento FROM Encabezados WHERE IdEncab=@IdEncab)
	END
	
	SELECT @IdCliente=IdCliente1 FROM Encabezados WHERE IdEncab=@IdEncab
	
	IF @FactorMovim<>0
	 SET @FactorMovim = (SELECT MIN(FactorMovim) FROM Encabezados_Mov WHERE IdEncabMov=@IdEncabMov)
	
	SET @IdInv=(SELECT IdInventario FROM  Encabezados_Mov WHERE IdEncabMov=@IdEncabMov)
	
	SET @IdDocOrigen=(SELECT IdDocumento FROM Encabezados_Mov mov INNER JOIN Encabezados enc ON mov.IdEncab=enc.IdEncab 
					  WHERE IdEncabMov=@IdEncabMov)
	
	SET @ChildReg=(SELECT COUNT(*) FROM dbo.Encabezados_Mov WHERE IdEncabMov2=@IdEncabMov AND IdInventario=@IdInv)
	
    IF @IdDocCruc=2 AND @IdDocOrigen=9
		SET @factMov=@FactorMovim
		
	IF @IdDocCruc=46 AND @IdDocOrigen=9
		SET @factMov=@FactorMovim

	IF @IdDocCruc=2 AND @IdDocOrigen=39
		SET @factMov=@FactorMovim
		
		
	IF @IdDocCruc=15 AND @IdDocOrigen=2 AND @ChildReg=0 
		 SET @FactorMovim=1
	 
	IF @IdDocCruc=15 AND @IdDocOrigen=2
		 SET @factMov=1
		 
		 
	-- Condiciones para orden de taller	 
	IF (@IdDocCruc=9 OR @IdDocCruc=2) AND @IdDocOrigen=43 AND @ChildReg=0 
		 SET @FactorMovim=1
		 
	IF (@IdDocCruc=9 OR @IdDocCruc=2)AND  @IdDocOrigen=43
		 SET @factMov=1
		 
	-- Condiciones para orden de produccion
	IF @IdDocCruc=45
		 SET @FactorMovim=-1
		 
	-- Parametro para insertar o no lo registros hijos (SUBPRODUCTOS)
	SELECT @EsInsertSubProductos = EsInsertSubProductos
	FROM Documentos
	WHERE IdDocumento = @IdDocCruc;

	BEGIN TRANSACTION CrearCruc;
	
		INSERT INTO Encabezados_Mov (IdEncab,IdInventario,IdBodega,IdLote,Cantidad,CantidadFisica,IdUnidad,FactorCantidad,FactorMovim,ValorUnitario,ValorUnitarioExt,ValorIva,ValorImptoConsumo,TotalMov,IdCliente,Nota,Vence,IdCentroCosto,Dcto,EsIvaAlCosto,CantDim4,EsVisible,NumSerial,IdUnidad1,Cantidad1,ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg)
		SELECT @IdEncab,IdInventario,IdBodega,IdLote,@SumCantidad,CantidadFisica,@IdUnidad,@FactorCantidad,@FactorMovim,@ValorUnit,ValorUnitarioExt,ValorIva,ValorImptoConsumo,TotalMov,@IdCliente,COALESCE(@NotaMov,Nota),Vence,IdCentroCosto,Dcto,EsIvaAlCosto,CantDim4,
		case when @IdDocOrigen=24 then 1 else ISNULL(@EsVisible,EsVisible) end, NumSerial,IdUnidad1,Cantidad1,ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg
		FROM  Encabezados_Mov Enc_Mov
		WHERE Enc_Mov.IdEncabMov=@IdEncabMov
	    
		SET @Ident= IDENT_CURRENT('Encabezados_Mov')
		SET @IdMovNuevo=@Ident
		-- Validacion para relizar el cruce especial entre factura de venta y remision 
		--IF @IdDocCruc=9 and @IdDocOrigen=2
		--EXEC dbo.DocsCrucesInsertar @IdEncabMov,@Ident,-1
		--ELSE
		EXEC dbo.DocsCrucesInsertar @Ident,@IdEncabMov,-1
		
		--Genera registros hijos (SUBPRODUCTOS) a documentos diferentes de ingreso producto terminado
		IF @IdDocCruc<>22 AND @EsInsertSubProductos = 1
			INSERT INTO Encabezados_Mov (IdEncab,IdInventario,IdBodega,IdLote,Cantidad,CantidadFisica,IdUnidad,FactorCantidad,FactorMovim,ValorUnitario,ValorUnitarioExt,ValorIva,ValorImptoConsumo,TotalMov,IdCliente,Nota,Vence,IdCentroCosto,Dcto,EsIvaAlCosto,EsVisible,NumSerial,IdEncabMov2,IdUnidad1,Cantidad1,ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg)
			SELECT @IdEncab,IdInventario,IdBodega,IdLote,Cantidad,CantidadFisica,IdUnidad,FactorCantidad,COALESCE(@factMov,FactorMovim),ValorUnitario,ValorUnitarioExt,ValorIva,ValorImptoConsumo,TotalMov,@IdCliente,COALESCE(@NotaMov,Nota),Vence,IdCentroCosto,Dcto,EsIvaAlCosto,EsVisible,NumSerial,@Ident,IdUnidad1,Cantidad1,ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg
			FROM  Encabezados_Mov Enc_Mov
			WHERE Enc_Mov.IdEncabMov2=@IdEncabMov

		--Insertar registros en traslado interno
		IF @IdDocCruc=45
		INSERT INTO Encabezados_Mov (IdEncab,IdInventario,IdBodega,IdLote,Cantidad,CantidadFisica,IdUnidad,FactorCantidad,FactorMovim,ValorUnitario,ValorUnitarioExt,ValorIva,ValorImptoConsumo,TotalMov,IdCliente,Nota,Vence,IdCentroCosto,Dcto,EsIvaAlCosto,EsVisible,NumSerial,IdUnidad1,Cantidad1,IdEncabMov3,ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg)
		SELECT IdEncab,IdInventario,coalesce(@IdBodegaTras,IdBodega),IdLote,Cantidad,CantidadFisica,IdUnidad,FactorCantidad,1,ValorUnitario,ValorUnitarioExt,ValorIva,ValorImptoConsumo,TotalMov,IdCliente,Nota,Vence,IdCentroCosto,Dcto,EsIvaAlCosto,EsVisible,NumSerial,IdUnidad1,Cantidad1,@Ident,ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg
		FROM  Encabezados_Mov Enc_Mov
		WHERE Enc_Mov.IdEncabMov=@Ident

		-- Insertar registro de servicio asociado al cruce con factores cantidad
		if @IdServicio IS NOT NULL
		INSERT INTO Encabezados_Mov (IdEncab,IdInventario,IdBodega,IdLote,Cantidad,CantidadFisica,IdUnidad,FactorCantidad,FactorMovim,ValorUnitario,ValorUnitarioExt,ValorIva,ValorImptoConsumo,TotalMov,IdCliente,Nota,Vence,IdCentroCosto,Dcto,EsIvaAlCosto,EsVisible,CantDim1,CantDim2,ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg)
		SELECT IdEncab,@IdServicio,IdBodega,IdLote,@CantidadSer,CantidadFisica,IdUnidad,FactorCantidad,FactorMovim,ValorUnitario,ValorUnitarioExt,ValorIva,ValorImptoConsumo,TotalMov,IdCliente,Nota,Vence,IdCentroCosto,Dcto,EsIvaAlCosto,EsVisible,@FactorCantidad1,@FactorCantidad2,ValorTRM, IdMoneda, TipoImptoConsumo, IdTipoReg
		FROM  Encabezados_Mov Enc_Mov
		WHERE Enc_Mov.IdEncabMov=@Ident
	
	COMMIT TRAN CrearCruc;
	
    IF @@error <> 0 GOTO ERR_HANDLER
    
    SET @Exito = 1
    RETURN
    
ERR_HANDLER:
  SET @Exito = 0
       
END
GO
	/*
	Plantilla de script posterior a la implementación							
	--------------------------------------------------------------------------------------
	 Este archivo contiene instrucciones de SQL que se anexarán al script de compilación.		
	 Use la sintaxis de SQLCMD para incluir un archivo en el script posterior a la implementación.			
	 Ejemplo:      :r .\miArchivo.sql								
	 Use la sintaxis de SQLCMD para hacer referencia a una variable en el script posterior a la implementación.		
	 Ejemplo:      :setvar TableName miTabla							
				   SELECT * FROM [$(TableName)]					
	--------------------------------------------------------------------------------------
	*/

	--Crear ARL ARL SURA
	[Ziur_CrearClienteDeSistema]
	@IdCliente = 258,
	@IdEstablec = 0,
	@CliIdTipoIdent = 31, 
	@CliIdentificacion = '890903790',
	@CliDVCliente = '5',
	@CliIdCiudad = 5001,
	@CliCodInterno = '14-11',
	@CliNombre1 = 'ARL SURA',
	@CliNota = NULL,
	@CliIdLista = NULL,
	@CliAsociacion = '21',
	@DirDireccion = 'Calle 49A No 63 - 55 - Medellin',
	@DirDireccionFormato1 = NULL,
	@DirDireccionFormato2 = NULL,
	@DirTelefonos = '(4) 4444578',
	@DirCelular = NULL,
	@DirEMail = 'notificacionesjudiciales@suramericana.com.co',
	@DirIdCiudad = 5001,
	@DirCodigoPostal = NULL
GO

GO
PRINT N'Update complete.';

--Actualizar datos de la version
INSERT INTO ZiurVersiones (IdVersion, NumVersion, Descripcion)
VALUES (354,944,'Creacion terceros de sistema, incluir sucursales en copia')
GO

COMMIT
GO
