ALTER PROCEDURE [dbo].[ins_doc_documento]
	@p_uid varchar(500),
		@p_eid varchar(50),
		@p_id_usuario_modifico int,
		@p_id_usuario_creo int,
		@p_documento varchar(300),
		@p_documento_codigo varchar(100),
		@p_documento_numero int,
		@p_prefijo varchar(10),
		@p_subtotal float,
		@p_descuento float,
		@p_iva float,
		@p_total float,
		@p_costo float,
		@p_rentabilidad float,
		@p_trm float,
		@p_fecha_fh smalldatetime,
		@p_fechaSugerida_fh smalldatetime,
		@p_fechaCierre_ff smalldatetime,
		@p_fechaLimite_fh smalldatetime,
		@p_id_subtipoDocumento int,
		@p_id_tercero_cliente int,
		@p_id_documento int,
		@p_id_tercero_proveedor int,
		@p_id_prioridadDocumento int,
		@p_id_moneda int,
		@p_id_estadoTipoDocumento int,
		@p_id_motivoestado int,
		@p_subtotalPlaneado float,
		@p_descuentoPlaneado float,
		@p_ivaPlaneado float,
		@p_totalPlaneado float,
		@p_costoPlaneado float,
		@p_id_usuario_asignado int,
		@p_id_usuario_enUso int,
		@p_version int = 1 
AS
BEGIN

declare @v_idtipo int

select @v_idtipo = id_tipodocumento
from doc_subtipodocumento where id = @p_id_subtipoDocumento

select @p_documento_numero=case when @p_version=1 then max(consecutivo) else (select documento_numero from doc_documento where id=@p_id_documento) end
from doc_subtipodocumento
where prefijo = @p_prefijo and active = 1
and id_tipodocumento = @v_idtipo

	DECLARE @v_id int
		INSERT INTO [doc_documento]
			([uid],
			[eid],
			[id_usuario_modifico],
			[id_usuario_creo],
			[fechaModificacion],
			[fechaCreacion],
			[documento],
			[documento_codigo],
			[documento_numero],
			[prefijo],
			[subtotal],
			[descuento],
			[iva],
			[total],
			[costo],
			[rentabilidad],
			[trm],
			[fecha_fh],
			[fechaSugerida_fh],
			[fechaCierre_ff],
			[fechaLimite_fh],
			[id_subtipoDocumento],
			[id_tercero_cliente],
			[id_documento],
			[id_tercero_proveedor],
			[id_prioridadDocumento],
			[id_moneda],
			[id_estadoTipoDocumento],
			[id_motivoestado],
			[subtotalPlaneado],
			[descuentoPlaneado],
			[ivaPlaneado],
			[totalPlaneado],
			[costoPlaneado],
			[id_usuario_asignado],
			[id_usuario_enUso])
		VALUES(	@p_uid,
			@p_eid,
			@p_id_usuario_modifico,
			@p_id_usuario_creo,
			GETDATE(),
			GETDATE(),
			@p_documento,
			@p_documento_codigo,
			@p_documento_numero,
			@p_prefijo,
			@p_subtotal,
			@p_descuento,
			@p_iva,
			@p_total,
			@p_costo,
			@p_rentabilidad,
			@p_trm,
			@p_fecha_fh,
			@p_fechaSugerida_fh,
			@p_fechaCierre_ff,
			@p_fechaLimite_fh,
			@p_id_subtipoDocumento,
			@p_id_tercero_cliente,
			@p_id_documento,
			@p_id_tercero_proveedor,
			@p_id_prioridadDocumento,
			@p_id_moneda,
			@p_id_estadoTipoDocumento,
			@p_id_motivoestado,
			@p_subtotalPlaneado,
			@p_descuentoPlaneado,
			@p_ivaPlaneado,
			@p_totalPlaneado,
			@p_costoPlaneado,
			@p_id_usuario_asignado,
			@p_id_usuario_enUso)
		SET @v_id = scope_identity()
UPDATE [doc_documento] set [uid] = [uid] + '_' + convert(varchar(20),@v_id) where [id]=@v_id
UPDATE doc_subtipodocumento
set consecutivo=case when @p_version=1 then @p_documento_numero+1 else consecutivo end
where id_tipodocumento= @v_idtipo and prefijo = @p_prefijo
SELECT @v_id as id
RETURN @v_id
END
