1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| SELECT cpr.cpf_cod,R.regle_id,affecter_us.section_numero,an.annuaire_id,((cast(fact.[VOL_FACTURE] AS decimal(14,4))/(tab.somme_des_volume_ndi*ISNULL(tab2.nombre_section,1)))*lgf_mtht) AS montant_impute_poste,lgf.oper_id,lgf.fct_num,lgf.lgf_num,/*an.annuaire_id,andi.ndi,*/fact.ndi_appelant,fact.[POSTE_APPELANT],u.utilisateur_nom,u.utilisateur_prenom--pos.poste_numero, u.utilisateur_id, cast(fact.[VOL_FACTURE] as decimal(10,2)) as V_Fact,(tab.somme_des_volume_ndi) as SumV_NDI, (tab2.nombre_section) as Nb_Sect, lgf_mtht, ((cast(fact.[VOL_FACTURE] as decimal(14,4))/(tab.somme_des_volume_ndi*ISNULL(tab2.nombre_section,1)))*lgf_mtht) as montant_impute_poste
FROM lgf
INNER JOIN dbo.FCT ON dbo.FCT.CFA_COD = dbo.LGF.CFA_COD AND fct.FCT_NUM = LGF.FCT_NUM AND dbo.FCT.FCT_NUM = dbo.LGF.FCT_NUM AND dbo.FCT.OPER_ID = dbo.LGF.OPER_ID
INNER JOIN dbo.U_OPERATEUR ON dbo.U_OPERATEUR.OPER_ID = dbo.LGF.OPER_ID
LEFT JOIN dbo.OP_COMPTE_SERVICE_UTILISATEUR AS cs ON cs.CFA_COD = dbo.LGF.CFA_COD AND cs.FCT_NUM = dbo.LGF.FCT_NUM AND cs.OPER_ID = dbo.LGF.OPER_ID AND cs.SOUS_COMPTE = dbo.LGF.CPR_COD
LEFT JOIN dbo.UN_SERVICE ON dbo.UN_SERVICE.SERVICE_ID = cs.SERVICE
LEFT JOIN dbo.UN_SOCIETE ON dbo.UN_SOCIETE.SOCIETE_ID = dbo.UN_SERVICE.SOCIETE_ID
LEFT JOIN dbo.UN_SOUS_ENTITE ON dbo.UN_SOUS_ENTITE.SOUS_ENTITE_ID = dbo.UN_SOCIETE.SOUS_ENTITE_ID
LEFT JOIN dbo.UN_ENTITE ON dbo.UN_ENTITE.ENTITE_ID = dbo.UN_SOUS_ENTITE.ENTITE_ID
INNER JOIN dbo.CPR ON dbo.CPR.CFA_COD = dbo.LGF.CFA_COD AND dbo.CPR.FCT_NUM = dbo.LGF.FCT_NUM AND dbo.CPR.CPR_COD = dbo.LGF.CPR_COD AND dbo.CPR.OPER_ID = dbo.LGF.OPER_ID
LEFT JOIN OP_TYPELIGNE_FACTURES o ON dbo.LGF.tch_cod=o.tch_cod AND dbo.LGF.gam_cod = o.gam_cod AND dbo.LGF.pft_cod = o.pft_cod AND dbo.LGF.ttr_cod = o.ttr_cod AND dbo.LGF.tus_cod = o.tus_cod AND dbo.LGF.oper_id = o.oper_id
LEFT JOIN dbo.TAR ON dbo.TAR.tar_cod = o.tar_cod AND dbo.LGF.tar_lib = dbo.TAR.tar_lib AND dbo.TAR.tar_cod = o.tar_cod
LEFT JOIN (SELECT DISTINCT * FROM U_PRODGEN_FAC) p ON o.prod_type = PRODGEN_FAC_ID
LEFT JOIN U_TYPECOMMGEN_FAC c ON comm_type = TYPECOMMGEN_FAC_ID
LEFT JOIN cpf ON cpr.cpf_cod = cpf.cpf_cod AND cpr.fct_num = cpf.fct_num
LEFT JOIN (SELECT regle_id,regle_type,oper_id,cpf_cod,cpr_cod,tch_cod,gam_cod,pft_cod,ttr_cod,tus_cod,prodgen_id,commgen_id,entite_id,sous_entite_id,societe_id,service_id FROM regle) R ON cpf.cpf_cod LIKE R.cpf_cod AND LGF.cpr_cod LIKE R.cpr_cod AND LGF.tch_cod LIKE R.tch_cod AND LGF.gam_cod LIKE R.gam_cod AND LGF.pft_cod LIKE R.pft_cod AND LGF.ttr_cod LIKE r.ttr_cod AND LGF.tus_cod LIKE r.tus_cod AND o.prod_type LIKE r.prodgen_id AND o.comm_type LIKE r.commgen_id AND (un_entite.entite_id LIKE r.entite_id OR un_entite.entite_id IS NULL) AND (un_sous_entite.sous_entite_id LIKE r.sous_entite_id OR un_sous_entite.sous_entite_id IS NULL) AND (un_societe.societe_id LIKE r.societe_id OR un_societe.societe_id IS NULL) AND (un_service.service_id LIKE r.service_id OR un_service.service_id IS NULL) AND cast(lgf.OPER_iD AS varchar(20)) LIKE r.oper_id AND regle_type='Dynamique'
INNER JOIN REGLE_DYNAMIQUE RD1 ON RD1.TYPE_IMPUTATION = 'volume' AND RD1.regle_id = R.regle_id
LEFT JOIN (SELECT FACTURE_ID,ZONE_GEO_ID,[NDI_APPELANT],sum([VOL_FACTURE]) AS vol_facture,[POSTE_APPELANT],compte FROM U3_FLOISIRS10.dbo.OP_FACTURE_POSTE GROUP BY FACTURE_ID,ZONE_GEO_ID,[NDI_APPELANT],[POSTE_APPELANT],compte) fact ON fact.compte = cpr.cpf_cod
LEFT JOIN(SELECT ndi_appelant,sum(vol_facture) AS somme_des_volume_ndi FROM U3_FLOISIRS10.dbo.OP_FACTURE_POSTE GROUP BY ndi_appelant) tab ON tab.ndi_appelant = fact.ndi_appelant
INNER JOIN ANNUAIRE_NDI andi ON fact.ndi_appelant = andi.ndi
INNER JOIN ANNUAIRES an ON an.ANNUAIRE_ID = andi.ANNUAIRE_ID
LEFT JOIN postes pos ON an.annuaire_id = pos.annuaire_id AND fact.poste_appelant = '0'+pos.poste_numero
LEFT JOIN AFFECTER_UTILISATEUR_POSTE affecter_up ON affecter_up.poste_numero= pos.poste_numero
LEFT JOIN utilisateurs u ON affecter_up.utilisateur_id = u.utilisateur_id
LEFT JOIN AFFECTER_UTILISATEUR_SECTION affecter_us ON affecter_us.utilisateur_id = u.utilisateur_id
LEFT JOIN SECTIONS s ON affecter_us.section_numero=s.section_numero AND s.annuaire_id = an.annuaire_id
LEFT JOIN (SELECT u.utilisateur_id, count(section_numero) AS nombre_section FROM [UNIDB_FLOISIRS10].[dbo].[UTILISATEURS] u ,dbo.AFFECTER_UTILISATEUR_SECTION us WHERE u.utilisateur_id = us. utilisateur_id GROUP BY u.utilisateur_id) tab2 ON tab2.utilisateur_id = u.utilisateur_id
LEFT JOIN unitic.dbo.OP_ZONE_GEO op_zone ON fact.ZONE_GEO_ID = op_zone.ZONE_GEO_ID |