-- Function: tehuelche.sp_tai_sbc_solicitud()

-- DROP FUNCTION tehuelche.sp_tai_sbc_solicitud();

CREATE OR REPLACE FUNCTION tehuelche.sp_tai_sbc_solicitud()
  RETURNS trigger AS
$BODY$ 
DECLARE
    li_cantidad int2;
    li_tipo_doc int4;
    li_nro_doc character varying(15);
    li_solic_v int4;
    li_res int2;
BEGIN

  IF NEW.solicitud_original IS NOT NULL THEN
    return NULL;
  END IF;
  
  -- TENGO QUE SACAR QUE PERSONA ES LA QUE SE ESTA INCORPORANDO
  SELECT tipo_documento, nro_documento
    INTO li_tipo_doc, li_nro_doc
    FROM mdc_personas p
    WHERE p.persona = NEW.persona;
    
  -- VERIFICO SI PUEDO SACAR LOS DATOS DE GUARANI O DE UNA CONVOCATORIA PREVIA
  SELECT COUNT(*)
  	INTO li_cantidad
  	FROM vga_personas
  	WHERE tipo_documento = li_tipo_doc
          AND nro_documento = li_nro_doc;
          
  IF li_cantidad = 0 THEN
	  SELECT solicitud
  	  INTO li_solic_v
    	FROM sbc_solicitud s, mdc_personas p
    	WHERE s.persona = p.persona
      	    AND p.tipo_documento = li_tipo_doc
        	  AND p.nro_documento = li_nro_doc
          	AND s.solicitud_original is NULL
      ORDER BY f_version DESC
      LIMIT 1;
    
    IF FOUND THEN
      li_res:= sp_datos_iniciales_desde_solicitud(li_tipo_doc, li_nro_doc, NEW.solicitud, li_solic_v);
    END IF;
  ELSE
  	li_res:= sp_datos_iniciales_desde_guarani(li_tipo_doc, li_nro_doc, NEW.solicitud);
  END IF;

  RETURN NEW;

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION tehuelche.sp_tai_sbc_solicitud() OWNER TO postgres;

