/*<OXADWDB>*/
/*==============SPE087=============Spec 4000*/
CREATE or ALTER FUNCTION [dbo].[OXA_StrToken]
(
	@Chaine VarChar(255),		-- Chaine contenant les valeurs
	@Idx TinyInt,			-- Index de la valeur recherchée
	@Separateur VarChar(5) = ';'	-- Séparateur des valeurs dans la chaine
)  
RETURNS VarChar(255)
AS 
BEGIN
	Declare @Valeur VarChar(255)	-- Valeur de retour de la fonction
	Declare @Pos Int		-- Position du curseur dans la chaine
	Declare @Cpt Int		-- Compteur
 
	Select @Cpt = 1, @Pos = 1, @Valeur=NULL
 
	While (@Cpt < @Idx AND Charindex(@Separateur, @Chaine, @Pos)>@Pos)
	Begin
		SELECT @Cpt=@Cpt+1, @Pos=Charindex(@Separateur, @Chaine, @Pos)+1
	End
 
	If @Cpt=@Idx
		IF Charindex(@Separateur, @Chaine, @Pos)>@Pos
			SET @Valeur = ltrim(rtrim(Substring(@Chaine, @Pos, Charindex(@Separateur, @Chaine, @Pos)-@Pos)))
		ELSE IF Charindex(@Separateur, @Chaine, @Pos)=@Pos
			SET @Valeur = ''
		ELSE
			SET @Valeur = ltrim(rtrim(Substring(@Chaine, @Pos, 255)))
 
	Return @Valeur
END

<SEPARATEUR>
update <PREFIXE_DW>DOCUMENTS set DOC_USER1='' 

<SEPARATEUR>
update e set DOC_USER1=rtrim(d.LIB01DICO)
from <PREFIXE_DW>DOCUMENTS e, <PREFIXE_HA>DILISPEC d where DOC_TYPE_TVA_FAC='I' and TYPEDICO ='PARAMMEDIN' and CODEDICO ='SAGE_CPT_TVAICD' and DOC_TYPE_TRANSACTION='FAC'

<SEPARATEUR>
update e set DOC_USER1=rtrim(DOC_USER1)+'|'+d.LIB01DICO
from <PREFIXE_DW>DOCUMENTS e, <PREFIXE_HA>DILISPEC d where DOC_TYPE_TVA_FAC='I' and TYPEDICO ='PARAMMEDIN' and CODEDICO ='SAGE_CPT_TVAICC' and DOC_TYPE_TRANSACTION='FAC'

<SEPARATEUR>
update e set DOC_USER1='' from <PREFIXE_DW>DOCUMENTS e where DOC_TYPE_TVA_FAC='E' and DOC_TYPE_TRANSACTION='FAC'

<SEPARATEUR>
update e set DOC_USER1=[dbo].[OXA_StrToken](rtrim(LIB01DICO),1,'|')
from <PREFIXE_DW>DOCUMENTS e, <PREFIXE_HA>DILISPEC d where DOC_TYPE_TVA_FAC='N' and TYPEDICO ='MEDICPTTVA' and cast(CODEDICO as float)=e.DOC_TAUX_TVA_FAC and left(DOC_CODE_COMPLEMENTAIRE,1)='6'
and DOC_TYPE_TRANSACTION='FAC'

<SEPARATEUR>
update e set DOC_USER1=[dbo].[OXA_StrToken](rtrim(LIB01DICO),2,'|')
from <PREFIXE_DW>DOCUMENTS e, <PREFIXE_HA>DILISPEC d where DOC_TYPE_TVA_FAC='N' and TYPEDICO ='MEDICPTTVA' and cast(CODEDICO as float)=e.DOC_TAUX_TVA_FAC and left(DOC_CODE_COMPLEMENTAIRE,1)='2'
and DOC_TYPE_TRANSACTION='FAC'

<SEPARATEUR>
update e set DOC_USER2=cast(format(TOTAL_TTC,'#0.00') as varchar)
from <PREFIXE_DW>DOCUMENTS e, <PREFIXE_HA>FAC_ENT f where DOC_NUMERO_DOC=f.NUM_FACT
and DOC_TYPE_TRANSACTION='FAC'

<SEPARATEUR>
/*Recréation de la table FAC_LIGNES_DETAIL  car sinon données pas à jour dans FAC_LIGNES_DETAIL 15/04/2018*/
if  exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FAC_LIGNES_DETAIL]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
	DROP TABLE <PREFIXE_DW>FAC_LIGNES_DETAIL
END

<SEPARATEUR>
SELECT * INTO <PREFIXE_DW>FAC_LIGNES_DETAIL FROM <PREFIXE_DW>DOCUMENTS where DOC_TYPE_TRANSACTION='FAC'

