-- LA FACTURA LLEGA AL TELEFONO DEL CLIENTE.
--
-- El ultimo metro del circuito fiscal: quien hizo el pedido puede preguntar si
-- su documento ya salio. Se identifica igual que en pedido_seguimiento y
-- cuenta_mesa: con el uuid de SU pedido o SU cuenta, que solo el tiene.
--
-- Devuelve lo mismo que ya muestra el papel impreso y la pagina del sello:
-- numero de documento, numero de control, fecha y quien emite. NUNCA renglones
-- ni datos del comprador (000102 art. 25): para el detalle de lo que pidio, el
-- cliente ya tiene su propia pantalla.

create or replace function public.factura_de_venta(p_tipo text, p_origen_id uuid)
returns jsonb
language sql
stable
security definer
set search_path to 'fiscal', 'public'
as $fn$
  select jsonb_build_object(
    'numero_documento', c.numero_documento,
    'numero_control', c.numero_control,
    'token', c.token,
    'sellado_en', c.sellado_en,
    'rif', e.rif,
    'razon_social', e.razon_social
  )
  from fiscal.cola_gustito c
  join fiscal.emisores e on e.id = c.emisor_id
  where c.tipo = p_tipo
    and c.origen_id = p_origen_id
    and c.estado = 'sellado'
    and c.token is not null;
$fn$;

revoke execute on function public.factura_de_venta(text, uuid) from public;
grant execute on function public.factura_de_venta(text, uuid) to anon, authenticated, service_role;
