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 |
Partager