-- mise a jour (etat=2/non du) des AAF envoyés depuis 6 mois et + et facture non recue
update facturation.appel_facturation
set appel_facturation_etat = 2
from facturation.meta_appel_facturation_appel_facturation 
inner join facturation.meta_appel_facturation on meta_appel_facturation.meta_appel_facturation_id = meta_meta_appel_facturation_id
left outer join facturation.facture_editeur on facture_editeur_appel_facturation_id = meta_meta_appel_facturation_id
where meta_appel_facturation_appel_facturation.meta_appel_facturation_id = appel_facturation_id
and facture_editeur_id is null
and date_trunc('month', meta_appel_facturation_date) <= date_trunc('month', now()) - interval '6 month' -- meta_appel_facturation_date_envoi
and appel_facturation_etat = 1
and appel_facturation_id not in (
56368,
56398
);


-- mise a jour (etat=2/non du) des AAF non validés
update facturation.appel_facturation
set appel_facturation_etat = 2
where appel_facturation_valide is false
and appel_facturation_etat = 1;


-- mise a jour des AAFs en attente pour les societes qui n'ont pas generes 50 euros et dont la derniere activite remonte a plus de 12 mois
WITH t as(
        SELECT es.editeur_societe_id, array_agg(appel_facturation_id) as aafs, sum(laf.appel_facturation_montant) as total_somme -- , max(appel_facturation_mois) as derniere_activite
        from facturation.editeur_societe es
        inner join facturation.editeur_marque em on (em.editeur_marque_editeur_societe_id = es.editeur_societe_id)
        inner join facturation.lister_appel_facturation() laf on (laf.editeur_marque_id = em.editeur_marque_id)
        left join facturation.meta_appel_facturation_appel_facturation on (meta_appel_facturation_appel_facturation.meta_appel_facturation_id = laf.appel_facturation_id)
        left join facturation.editeur_marque em2 on em2.editeur_marque_proprietaire_marque = em.editeur_marque_id
        where es.editeur_societe_id != 2
        and em2.editeur_marque_proprietaire_marque is null
        and meta_meta_appel_facturation_id is null
        and laf.appel_facturation_valide is true
        and laf.bon_de_commande_solde_reel_marge >= 0
        and laf.facture_editeur_id is null
        and laf.bon_de_commande_editeur_societe_id = 2
        group by es.editeur_societe_id, bon_de_commande_editeur_societe_id
        having now() - interval '12 month' > max(appel_facturation_mois) 
        and sum(laf.appel_facturation_montant) < 50
)
update facturation.appel_facturation
set appel_facturation_etat = 2
from t 
where appel_facturation_id = any (aafs)
and appel_facturation_etat = 1;

