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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
-- Déclaration des variables necessaire à la ligne des interventions
DECLARE @idSousDossier INT , @idPneuCatalogue INT
, @idPneuMotifPasPremierChoix INT , @idTypeAttente INT
, @id INT , @idType INT
, @idSousType INT , @idSousSousType INT
, @idIntervention INT , @quantite INT
, @cout INT , @commentaire NVARCHAR(500)
, @PEC_Parcours DECIMAL(18,2) , @PEC_Client DECIMAL(18,2)
, @PEC_Constructeur DECIMAL(18,2) , @PEC_Tiers DECIMAL(18,2)
, @valide BIT , @refuse BIT
, @enAttente BIT , @gesteCommercial BIT
, @annule BIT , @sansAccord BIT
-- Création de la table temporaire
CREATE TABLE #TMP_TEST (
id INT IDENTITY(1,1) NOT NULL , idSousDossier INT --NOT NULL
, idSousType INT NOT NULL , idIntervention INT NOT NULL
, idPneuCatalogue INT NULL , idPneuMotifPasPremierChoix INT NULL
, quantite INT NOT NULL , cout INT NOT NULL
, commentaire NVARCHAR(500) NULL , PEC_Parcours DECIMAL(18,2) NOT NULL
, PEC_Client DECIMAL(18,2) NOT NULL , PEC_Constructeur DECIMAL(18,2) NOT NULL
, PEC_Tiers DECIMAL(18,2) NOT NULL , valide BIT NOT NULL
, refuse BIT NOT NULL , enAttente BIT NOT NULL
, idTypeAttente INT NULL , gesteCommercial BIT NOT NULL
, annule BIT NOT NULL , sansAccord BIT NOT NULL)
DECLARE @LocalisationVariableLigneSuivante INT = 0
DECLARE @idEtatDossier INT
-- Création des lignes d'interventions contenu dans la variable @interventions
IF @interventions IS NOT NULL AND @interventions <> ''
BEGIN
SET @idPneuCatalogue = CAST(SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idPneuCatalogue' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idPneuCatalogue' , @interventions, 1)))) - 1) As INT)
SET @idPneuMotifPasPremierChoix = CAST(SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idPneuMotifPasPremierChoix' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idPneuMotifPasPremierChoix' , @interventions, 1)))) - 1) As INT)
SET @idTypeAttente = CAST(SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idTypeAttente' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idTypeAttente' , @interventions, 1)))) - 1) As INT)
INSERT INTO #TMP_TEST
VALUES (
@idSousDossier
, CAST( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idSousType' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idSousType' , @interventions, 1)))) - 1) As INT)
, CAST( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idIntervention' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idIntervention' , @interventions, 1)))) - 1) As INT)
, CASE WHEN @idPneuCatalogue < 1 THEN NULL ELSE @idPneuCatalogue END
, CASE WHEN @idPneuMotifPasPremierChoix < 1 THEN NULL ELSE @idPneuMotifPasPremierChoix END
, CAST( REPLACE(ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('quantite' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('quantite' , @interventions, 1)))) - 1) ,0.00),',','.') As DECIMAL)
, CAST( REPLACE(ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('coutPrevu' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('coutPrevu' , @interventions, 1)))) - 1) ,0.00),',','.') As DECIMAL)
, CAST( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('commentaire' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('commentaire' , @interventions, 1)))) - 1) As NVARCHAR)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Parcours' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Parcours' , @interventions, 1)))) - 1) ,0.00) As INT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Client' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Client' , @interventions, 1)))) - 1) ,0.00) As INT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Constructeur' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Constructeur' , @interventions, 1)))) - 1) ,0.00) As INT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Tiers' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Tiers' , @interventions, 1)))) - 1) ,0.00) As INT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('Valide' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('Valide' , @interventions, 1))))) ,0) As BIT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('Refuse' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('Refuse' , @interventions, 1))))) ,0) As BIT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('enAttente' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('enAttente' , @interventions, 1))))) ,0) As BIT)
, CASE WHEN @idTypeAttente < 1 THEN NULL ELSE @idTypeAttente END
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('gesteCommercial' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('gesteCommercial' , @interventions, 1))))) ,0) As BIT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('annule' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('annule' , @interventions, 1))))) ,0) As BIT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('sansAccord' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('sansAccord' , @interventions, 1))))) ,0) As BIT))
WHILE CHARINDEX(dbo.getSeparateur1(), @interventions, @LocalisationVariableLigneSuivante) <> 0
BEGIN
SET @LocalisationVariableLigneSuivante = (CHARINDEX(dbo.getSeparateur1(), @interventions, @LocalisationVariableLigneSuivante) + 1)
SET @idPneuCatalogue = CAST(SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idPneuCatalogue' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idPneuCatalogue' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) As INT)
SET @idPneuMotifPasPremierChoix = CAST(SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idPneuMotifPasPremierChoix' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idPneuMotifPasPremierChoix' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) As INT)
SET @idTypeAttente = CAST(SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idTypeAttente' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idTypeAttente' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) As INT)
INSERT INTO #TMP_TEST
VALUES (
@idSousDossier
, CAST( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idSousType' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idSousType' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) As INT)
, CAST( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idIntervention' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('idIntervention' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) As INT)
, CASE WHEN @idPneuCatalogue < 1 THEN NULL ELSE @idPneuCatalogue END
, CASE WHEN @idPneuMotifPasPremierChoix < 1 THEN NULL ELSE @idPneuMotifPasPremierChoix END
, CAST( REPLACE(ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('quantite' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('quantite' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) ,0.00),',','.') As DECIMAL)
, CAST( REPLACE(ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('coutPrevu' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('coutPrevu' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) ,0.00),',','.') As DECIMAL)
, CAST( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('commentaire' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('commentaire' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) As NVARCHAR)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Parcours' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Parcours' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) ,0.00) As INT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Client' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Client' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) ,0.00) As INT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Constructeur' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Constructeur' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) ,0.00) As INT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Tiers' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX(dbo.getSeparateur2(), RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('PEC_Tiers' , @interventions, @LocalisationVariableLigneSuivante)))) - 1) ,0.00) As INT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('Valide' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('Valide' , @interventions, @LocalisationVariableLigneSuivante))))) ,0) As BIT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('Refuse' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('Refuse' , @interventions, @LocalisationVariableLigneSuivante))))) ,0) As BIT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('enAttente' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('enAttente' , @interventions, @LocalisationVariableLigneSuivante))))) ,0) As BIT)
, CASE WHEN @idTypeAttente < 1 THEN NULL ELSE @idTypeAttente END
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('gesteCommercial' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('gesteCommercial' , @interventions, @LocalisationVariableLigneSuivante))))) ,0) As BIT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('annule' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('annule' , @interventions, @LocalisationVariableLigneSuivante))))) ,0) As BIT)
, CAST( ISNULL( SUBSTRING(@interventions, CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('sansAccord' , @interventions, @LocalisationVariableLigneSuivante)) + 1, CHARINDEX('e', RIGHT(@interventions, LEN(@interventions) - CHARINDEX(dbo.getSeparateur2(), @interventions, CHARINDEX('sansAccord' , @interventions, @LocalisationVariableLigneSuivante))))) ,0) As BIT))
END
END |
Partager