extracted objects
This commit is contained in:
245
docs/functions/F_REP_CUCINA.md
Normal file
245
docs/functions/F_REP_CUCINA.md
Normal file
@@ -0,0 +1,245 @@
|
||||
# F_REP_CUCINA
|
||||
|
||||
## Codice Sorgente
|
||||
|
||||
```sql
|
||||
FUNCTION "F_REP_CUCINA" (p_data_in IN varchar2,p_data_fi IN varchar2)
|
||||
RETURN t_rep_cucina_tab PIPELINED AS
|
||||
|
||||
|
||||
cursor c_evento is
|
||||
select e.id,
|
||||
e.data,
|
||||
l.LOCATION,
|
||||
e.cliente,
|
||||
t.DESCRIZIONE,
|
||||
e.ORA_CERIMONIA,
|
||||
e.ORA_EVENTO,
|
||||
e.ALLERGIE,
|
||||
e.torta,
|
||||
e.CONFETTATA,
|
||||
e.STAMPA_MENU,
|
||||
e.extra_info,
|
||||
e.cliente_email,
|
||||
e.cliente_tel,
|
||||
e.referente_tel,
|
||||
e.distanza_location,
|
||||
e.buffet_iniziale,
|
||||
e.buffet_finale,
|
||||
e.primi,
|
||||
e.secondi,
|
||||
e.vini,
|
||||
e.extra_costi
|
||||
from eventi e
|
||||
left join location l on e.id_location = l.id
|
||||
join tb_tipi_evento t on e.cod_tipo = t.cod_tipo
|
||||
where e.data between to_date(p_data_in,'YYYYMMDD') and to_date(p_data_fi,'YYYYMMDD')
|
||||
and e.stato = 300 -- Considero soltanto le schede confermate
|
||||
and e.disabled = 0
|
||||
and e.deleted = 0;
|
||||
|
||||
|
||||
v_data date;
|
||||
v_LOCATION varchar2(4000);
|
||||
v_cliente varchar2(4000);
|
||||
v_DESCRIZIONE varchar2(4000);
|
||||
v_ORA_CERIMONIA varchar2(4000);
|
||||
v_ORA_EVENTO varchar2(4000);
|
||||
v_TOT_ADULTI number;
|
||||
v_TOT_KINDER number;
|
||||
v_TOT_BABY number;
|
||||
v_TOT_STAFF number;
|
||||
v_TOT_INVITATI number;
|
||||
v_ALLERGIE varchar2(4000);
|
||||
v_TORTA varchar2(4000);
|
||||
v_CONFETTATA varchar2(4000);
|
||||
v_STAMPA_MENU varchar2(4000);
|
||||
v_angoli varchar2(4000);
|
||||
v_EXTRA_INFO varchar2(4000);
|
||||
v_NOTE_ADULTI varchar2(4000);
|
||||
v_NOTE_KINDER varchar2(4000);
|
||||
v_NOTE_BABY varchar2(4000);
|
||||
v_NOTE_STAFF varchar2(4000);
|
||||
v_cliente_email varchar2(4000) := '';
|
||||
v_cliente_tel varchar2(4000) := '';
|
||||
v_referente_tel varchar2(4000) := '';
|
||||
v_distanza_location varchar2(4000) := '';
|
||||
v_buffet_iniziale varchar2(4000) := '';
|
||||
v_buffet_finale varchar2(4000) := '';
|
||||
v_primi varchar2(4000) := '';
|
||||
v_secondi varchar2(4000) := '';
|
||||
v_vini varchar2(4000) := '';
|
||||
v_extra_costi varchar2(4000) := '';
|
||||
v_event_id number;
|
||||
|
||||
BEGIN
|
||||
|
||||
for c in c_evento
|
||||
loop
|
||||
|
||||
begin
|
||||
|
||||
v_TOT_ADULTI := 0;
|
||||
v_TOT_KINDER := 0;
|
||||
v_TOT_BABY := 0;
|
||||
v_TOT_STAFF := 0;
|
||||
v_TOT_INVITATI := 0;
|
||||
v_angoli := 0;
|
||||
v_NOTE_ADULTI := '';
|
||||
v_NOTE_KINDER := '';
|
||||
v_NOTE_BABY := '';
|
||||
v_NOTE_STAFF := '';
|
||||
|
||||
v_cliente_email := c.cliente_email;
|
||||
v_cliente_tel := c.cliente_tel;
|
||||
v_referente_tel := c.referente_tel;
|
||||
v_distanza_location := c.distanza_location;
|
||||
v_buffet_iniziale := c.buffet_iniziale;
|
||||
v_buffet_finale := c.buffet_finale;
|
||||
v_primi := c.primi;
|
||||
v_secondi := c.secondi;
|
||||
v_vini := c.vini;
|
||||
v_extra_costi := c.extra_costi;
|
||||
v_event_id := c.id;
|
||||
|
||||
--ospiti
|
||||
select nvl(sum(o.NUMERO),0)
|
||||
into v_TOT_ADULTI
|
||||
from eventi e
|
||||
join eventi_det_ospiti o on e.id = o.id_evento
|
||||
--join tb_tipi_ospiti tos on o.cod_tipo_ospite = tos.COD_TIPO
|
||||
where e.id = c.id
|
||||
and o.cod_tipo_ospite = 8; -- adulti
|
||||
|
||||
begin
|
||||
select o.NOTE
|
||||
into v_NOTE_ADULTI
|
||||
from eventi e
|
||||
join eventi_det_ospiti o on e.id = o.id_evento
|
||||
where e.id = c.id
|
||||
and o.cod_tipo_ospite = 8; -- adulti
|
||||
|
||||
exception when no_data_found then null;
|
||||
end;
|
||||
|
||||
select nvl(sum(o.NUMERO),0)
|
||||
into v_TOT_KINDER
|
||||
from eventi e
|
||||
join eventi_det_ospiti o on e.id = o.id_evento
|
||||
--join tb_tipi_ospiti tos on o.cod_tipo_ospite = tos.COD_TIPO
|
||||
where e.id = c.id
|
||||
and o.cod_tipo_ospite = 5; --Kinder
|
||||
|
||||
begin
|
||||
select o.NOTE
|
||||
into v_NOTE_KINDER
|
||||
from eventi e
|
||||
join eventi_det_ospiti o on e.id = o.id_evento
|
||||
where e.id = c.id
|
||||
and o.cod_tipo_ospite = 5; --Kinder
|
||||
|
||||
exception when no_data_found then null;
|
||||
end;
|
||||
|
||||
select nvl(sum(o.NUMERO),0)
|
||||
into v_TOT_BABY
|
||||
from eventi e
|
||||
join eventi_det_ospiti o on e.id = o.id_evento
|
||||
--join tb_tipi_ospiti tos on o.cod_tipo_ospite = tos.COD_TIPO
|
||||
where e.id = c.id
|
||||
and o.cod_tipo_ospite = 6; -- Baby
|
||||
|
||||
begin
|
||||
select o.NOTE
|
||||
into v_NOTE_BABY
|
||||
from eventi e
|
||||
join eventi_det_ospiti o on e.id = o.id_evento
|
||||
where e.id = c.id
|
||||
and o.cod_tipo_ospite = 6; -- Baby
|
||||
|
||||
exception when no_data_found then null;
|
||||
end;
|
||||
|
||||
select nvl(sum(o.NUMERO),0)
|
||||
into v_TOT_STAFF
|
||||
from eventi e
|
||||
join eventi_det_ospiti o on e.id = o.id_evento
|
||||
--join tb_tipi_ospiti tos on o.cod_tipo_ospite = tos.COD_TIPO
|
||||
where e.id = c.id
|
||||
and o.cod_tipo_ospite = 7; -- Staff
|
||||
|
||||
begin
|
||||
select o.NOTE
|
||||
into v_NOTE_STAFF
|
||||
from eventi e
|
||||
join eventi_det_ospiti o on e.id = o.id_evento
|
||||
where e.id = c.id
|
||||
and o.cod_tipo_ospite = 7; -- Staff
|
||||
|
||||
exception when no_data_found then null;
|
||||
end;
|
||||
|
||||
select nvl(e.tot_ospiti,0)
|
||||
into v_TOT_INVITATI
|
||||
from eventi e
|
||||
where e.id = c.id;
|
||||
|
||||
--angoli "speciali"
|
||||
v_angoli := '';
|
||||
for a in ( select trim(substr(a.descrizione || ' - ' || p.note,1,1000)) descrizione from eventi e
|
||||
join eventi_det_prel p on e.id=p.id_evento
|
||||
join articoli a on p.cod_articolo=a.cod_articolo
|
||||
where a.flg_cucina = 1
|
||||
and e.id = c.id
|
||||
)
|
||||
loop
|
||||
v_angoli := a.descrizione || ', ' || v_angoli ;
|
||||
end loop;
|
||||
|
||||
PIPE ROW(t_rep_cucina_row( c.data,c.location,c.cliente,
|
||||
c.DESCRIZIONE,
|
||||
to_char(c.ORA_CERIMONIA,'HH24:MI'),
|
||||
to_char(c.ORA_EVENTO,'HH24:MI'),
|
||||
v_TOT_ADULTI ,
|
||||
v_TOT_KINDER ,
|
||||
v_TOT_BABY ,
|
||||
v_TOT_STAFF ,
|
||||
v_TOT_INVITATI ,
|
||||
c.ALLERGIE ,
|
||||
c.TORTA ,
|
||||
c.CONFETTATA ,
|
||||
c.STAMPA_MENU ,
|
||||
v_angoli,
|
||||
c.extra_info ,
|
||||
|
||||
v_NOTE_ADULTI ,
|
||||
v_NOTE_KINDER ,
|
||||
v_NOTE_BABY ,
|
||||
v_NOTE_STAFF ,
|
||||
v_cliente_email ,
|
||||
v_cliente_tel ,
|
||||
v_referente_tel ,
|
||||
v_distanza_location ,
|
||||
v_buffet_iniziale ,
|
||||
v_buffet_finale ,
|
||||
v_primi ,
|
||||
v_secondi ,
|
||||
v_vini ,
|
||||
v_extra_costi ,
|
||||
v_event_id
|
||||
));
|
||||
|
||||
--exception when others
|
||||
-- then null;
|
||||
|
||||
exception when others
|
||||
then
|
||||
RAISE_APPLICATION_ERROR(-20000, 'Errore: ' || SQLCODE || ' - ' || SUBSTR(SQLERRM, 1 , 64));
|
||||
|
||||
end;
|
||||
|
||||
end loop;
|
||||
|
||||
RETURN;
|
||||
|
||||
END;```
|
||||
Reference in New Issue
Block a user