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 30 31
| CREATE FUNCTION [dbo].[getCA]
( @DateDeb datetime,
@DateFin datetime,
@N_Depot varchar(50),
@FactCompl varchar(20)
)
RETURNS TABLE
AS
RETURN
(
SELECT CC.Num_Cde_Cli AS NumCde, CAST(LC.numeric2 AS numeric(6, 0)) AS NumMiss, CC.Nom_Cde AS NomCde,
C.Nom_Client AS NomCli, CC.Date_Cde AS DateCde, CC.FacturationComplete AS FactComplete, ISNULL(LC.Montant_Euro, 0) AS TotHt, CC.Descriptif,
D.Nom_Depot AS Depot,
ISNULL(CASE WHEN M.EtatAvanc = 1 THEN 0.01 WHEN M.EtatAvanc = 2 THEN 0.01 WHEN M.EtatAvanc = 3 THEN 0.01 WHEN M.EtatAvanc = 4 THEN 0.1
WHEN M.EtatAvanc = 5 THEN 0.25 WHEN M.EtatAvanc = 6 THEN 0.50 WHEN M.EtatAvanc = 7 THEN 0.70 WHEN M.EtatAvanc = 8 THEN 0.80 WHEN M.EtatAvanc
= 9 THEN 1 END, 0) AS 'EnCoursPcent',
ISNULL(CASE WHEN M.EtatAvanc = 1 THEN LC.Montant_Euro * 0.01 WHEN M.EtatAvanc = 2 THEN LC.Montant_Euro * 0.01 WHEN M.EtatAvanc = 3 THEN
LC.Montant_Euro * 0.01 WHEN M.EtatAvanc = 4 THEN LC.Montant_Euro * 0.1 WHEN M.EtatAvanc = 5 THEN LC.Montant_Euro * 0.25 WHEN M.EtatAvanc
= 6 THEN LC.Montant_Euro * 0.50 WHEN M.EtatAvanc = 7 THEN LC.Montant_Euro * 0.70 WHEN M.EtatAvanc = 8 THEN LC.Montant_Euro * 0.80 WHEN M.EtatAvanc
= 9 THEN LC.Montant_Euro * 1 END, 0) AS 'Valeur',
D.N_Depot as 'N_Depot'
FROM dbo.Cde_cli AS CC INNER JOIN
dbo.LIGNECLI AS LC ON CC.N_Cde_Cli = LC.N_Cde_Cli INNER JOIN
dbo.DEPOT AS D ON CC.N_Depot = D.N_Depot INNER JOIN
dbo.CLIENT AS C ON CC.N_Client = C.N_Client INNER JOIN
RESEAU_EXPERT.dbo.MISS AS M ON cast(numeric2 as int) = cast(M.Num as varchar(10))
WHERE CC.Date_Cde between @DateDeb and @DateFin
and CC.FacturationComplete in(select String from SOCIETE1.dbo.Split(@FactCompl,';'))
and D.N_Depot in(select String from SOCIETE1.dbo.Split(@N_Depot,';'))
and cast(numeric2 as int) in (select cast(Num_Fct_Base as varchar) from FCT_BASE)
) |
Partager