--- =============================================
-- Author:		<Yonatan Gaete>
-- Create date: <28/09/2024>
-- Description:	<Grabar datos Activo Fijo>
-- =============================================
ALTER PROCEDURE [dbo].[sp_afiBienes_Upsert]
    @id INT,
    @nombre VARCHAR(50),
    @descripcion VARCHAR(500),
    @numeroSerie VARCHAR(50),
	@codigoBarra VARCHAR(50),
    @codigoInterno VARCHAR(50),
	@uniNeg INT,
    @fechaCompra DATE,
    @costoCompra DECIMAL(18,4),
    @vidaUtil INT,
    @valorResidual DECIMAL(18,4),
    @metodoDepreciacion INT,
    @grupo INT,
    @subgrupo INT,
    @ubicacion INT,
    @responsable INT,
    @estado INT,
    @fechaUltimaDepreciacion DATE,
    @manejaMantencion BIT,
    @permiteMovimiento BIT,
    @cuentaContable VARCHAR(50),
    @rutCyV INT,
    @tipoDocCyV INT,
    @numDocCyV INT,
    @codbus VARCHAR(50),
    @orderCompra INT,
	@enMantenimiento INT,
	@departamento INT,
	@deBaja BIT
AS
BEGIN
    IF EXISTS (SELECT 1 FROM afiBienes WHERE id = @id)
    BEGIN
        -- Actualizar registro existente
        UPDATE afiBienes
        SET
            nombre = @nombre,
            descripcion = @descripcion,
            numeroSerie = @numeroSerie,
			codigoBarra = @codigoBarra,
            codigoInterno = @codigoInterno,
			uniNeg = @uniNeg,
            fechaCompra = @fechaCompra,
            costoCompra = @costoCompra,
            vidaUtil = @vidaUtil,
            valorResidual = @valorResidual,
            metodoDepreciacion = @metodoDepreciacion,
            grupo = @grupo,
            subgrupo = @subgrupo,
            ubicacion = @ubicacion,
            responsable = @responsable,
            estado = @estado,
            fechaUltimaDepreciacion = @fechaUltimaDepreciacion,
            manejaMantencion = @manejaMantencion,
            permiteMovimiento = @permiteMovimiento,
            cuentaContable = @cuentaContable,
            rutCyV = @rutCyV,
            tipoDocCyV = @tipoDocCyV,
            numDocCyV = @numDocCyV,
            codbus = @codbus,
            orderCompra = @orderCompra,
			enMantenimiento = @enMantenimiento,
			departamento = @departamento,
			deBaja = @deBaja
        WHERE id = @id;
    END
    ELSE
    BEGIN
        -- Insertar nuevo registro
        INSERT INTO afiBienes
        (
            id,
            nombre,
            descripcion,
            numeroSerie,
			codigoBarra,
            codigoInterno,
			uniNeg,
            fechaCompra,
            costoCompra,
            vidaUtil,
            valorResidual,
            metodoDepreciacion,
            grupo,
            subgrupo,
            ubicacion,
            responsable,
            estado,
            fechaUltimaDepreciacion,
            manejaMantencion,
            permiteMovimiento,
            cuentaContable,
            rutCyV,
            tipoDocCyV,
            numdocCyV,
            codbus,
            orderCompra,
			enMantenimiento,
			departamento,
			deBaja
        )
        VALUES
        (
            @id,
            @nombre,
            @descripcion,
            @numeroSerie,
			@codigoBarra,
            @codigoInterno,
			@uniNeg,
            @fechaCompra,
            @costoCompra,
            @vidaUtil,
            @valorResidual,
            @metodoDepreciacion,
            @grupo,
            @subgrupo,
            @ubicacion,
            @responsable,
            @estado,
            @fechaUltimaDepreciacion,
            @manejaMantencion,
            @permiteMovimiento,
            @cuentaContable,
            @rutCyV,
            @tipoDocCyV,
            @numDocCyV,
            @codbus,
            @orderCompra,
			@enMantenimiento,
			@departamento,
			@deBaja
        );
    END
END;