CREATE OR REPLACE FUNCTION public.sp_crud_renovar_ingreso_estacionamiento()
  RETURNS character varying AS
$BODY$
declare
	entradas_preferente record;
	entradas record;
	entradas_ingreso record;
	idp integer;

	v_cant numeric;
	v_cant_dia numeric;
	_fecha varchar;

	v_ingreso integer;
	v_precio decimal;
	v_val_codigo integer;
	v_val_aten_codigo integer;
	v_cant_smodulos integer;
	v_val_persona integer;
	v_val_ubicacion integer;
	
begin
		/*
		For entradas_preferente In 
		select t1.id,t1.empresa_id,t2.razon_social,t2.ruc
		from estacionamiento_empresas t1
		inner join empresas t2 on t1.empresa_id=t2.id
		where t1.estado='1'
		And t1.estacionamiento_id=288
		*/
		/*
		For entradas_preferente In 
		select distinct t1.id,t1.empresa_id,t2.razon_social,t2.ruc
		from estacionamiento_empresas t1
		inner join empresas t2 on t1.empresa_id=t2.id
		inner join ingreso_vehiculos t3 on t3.dueno_carga_documento=t2.ruc
		where t1.estado='1'
		And t1.estacionamiento_id=288
		And t3.placa!=''
		and t3.estado='Adentro'
		*/

		For entradas_preferente In 
		select distinct 
		t3.id id_ingreso,t3.placa,
		ep.precio,
		t1.id,t1.empresa_id,t2.razon_social,t2.ruc
		from estacionamiento_empresas t1
		inner join empresas t2 on t1.empresa_id=t2.id
		inner join ingreso_vehiculos t3 on t3.dueno_carga_documento=t2.ruc
		inner join eje_precios ep on (select distinct ejes from vehiculos where placa=t3.placa and estado='1' order by 1 desc limit 1)=ep.ejes
		where t1.estado='1'
		And t1.estacionamiento_id=288
		And t3.placa!=''
		and t3.estado='Adentro'
		--and t3.placa='TJT-998'
		and ep.estado='A'
		
		--And t2.ruc='10410534083'
		--10165994847
		--20607950793
		--idp:=100;
		Loop
			
			/**********************************/

			select val_codigo,val_aten_codigo,val_persona,val_ubicacion 
			into v_val_codigo,v_val_aten_codigo,v_val_persona,v_val_ubicacion 
			from valorizaciones 
			--where val_aten_codigo=(select aten_numero from ingreso_vehiculos where id=v_ingreso);
			where val_aten_codigo=(select aten_numero from ingreso_vehiculos where id=entradas_preferente.id_ingreso);
			--idp:=v_val_codigo;
			
			select count(*) into v_cant_smodulos
			from val_atencion_smodulos 
			where vsm_vnumero=v_val_codigo 
			and vsm_modulo='2' 
			and vsm_smodulo='23' 
			--and vsm_precio=v_precio;
			and vsm_precio=entradas_preferente.precio;
			
			if v_cant_smodulos = 0 then
				--idp:=100;
				update val_atencion_smodulos 
				--set vsm_precio=v_precio,vsm_costo=v_precio 
				set vsm_precio=entradas_preferente.precio,vsm_costo=entradas_preferente.precio 
				where vsm_vnumero=v_val_codigo 
				and vsm_modulo='2' 
				and vsm_smodulo='23'
				and vsm_facturado='N';

			else
			--$id_atencion,$establecimiento,$persona,$modulo,$smodulo,$ubicacion,$precio,$observacion
			--idp:= (Select sp_crud_ind_atencion_valoriza_addms(v_val_aten_codigo,1,v_val_persona,2,23,v_val_ubicacion,v_precio,'DERECHO DE ESTACIONAMIENTO'));
			idp:= (Select sp_crud_ind_atencion_valoriza_addms(v_val_aten_codigo,1,v_val_persona,2,23,v_val_ubicacion,entradas_preferente.precio::numeric,'DERECHO DE ESTACIONAMIENTO'));
			--idp:=v_val_aten_codigo;
			End if;

			/**********************************/
			
		End Loop;
		
		--_fecha = to_char((fecha::date - interval '1 day'),'dd/mm/YYYY');
		
		--select sp_crud_renovar_ingreso_estacionamiento()
		
	return idp;
	/*EXCEPTION
	WHEN OTHERS THEN
        idp:=-1;
	return idp;*/
end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
