Que tal compañeros, gracias por leer.
Esta es la situación, tengo un procedimiento que me calcula la prima de una
fianza, es la siguiente:
/***************************************/
CREATE PROCEDURE [Fianza_Calcular_Prima]
@afianzadora smallint,
@importe money,
@concepto tinyint
AS
declare @tarifa money
declare @primamin money
if @concepto = 0 -- Daños y perjuicios
begin
select @tarifa = (afdptarifa/100), @primamin = afdpprimamin from
ctafianzadora where afclave = @afianzadora
if (@importe * @tarifa) < @primamin
select (@primamin + (@primamin * afportar/100) + afdpgtosexp) as Prima
from ctafianzadora where afclave = @afianzadora
else
select ((@importe * @tarifa)+ ((@importe * @tarifa)* afportar/100) +
afdpgtosexp) as Prima from ctafianzadora where afclave = @afianzadora
end
else if @concepto = 1 -- Reparacion del daño
select (afctafija * (1 + afporder/100) + afgtosexp) *
(floor(@importe/afprimaxcmonto) + 1)
as Prima
from CTAFIANZADORA
where afclave = @afianzadora
else -- Obligaciones Procesales / Libertad Provisional / Sanciones
Pecuniarias
if @importe <= (select aftopelc from CTAFIANZADORA where afclave @afianzadora)
select afcarmin * (1 + afporder/100) + afgtosexplc as prima from
CTAFIANZADORA
where afclave = @afianzadora
else
select (@importe * afportar/100) * (1 + afporder/100) + afgtosexplc as
Prima from CTAFIANZADORA
where afclave = @afianzadora
GO
/***************************************/
Ahora bien, a mi gustaria poder mandarlo llamar desdes otro procedimiento
almacenado y que me devuelva la prima, por ejemplo.
Declare @prima money
set @prima = Fianza_Calcular_Prima 5, 34000, 1
select @prima
esto es solo un ejemplo, en realidad es mas complejo pero lo que quiero es
la luz solamente, y de ahi yo me sigo, espero que alguien me ayude, no se si
tenga que convertirlo en una función.
Saludos.
Vicente López.
Leer las respuestas