
/* 
    Import des Fournisseurs depuis Sage
    - Spec 5262 - LASPA
    
    1. Fonctionnement standard :  

    - Avant l'exécution de ce fichier .sql : 
        - la table 1 (xxTABLExx) est déjà alimentée par OXATOOLS avec les données du fichier .csv à lire (champs COL1 à COLn)
    - Pendant l'exécution de ce fichier .sql : 
        - on alimente la table 2 (xxTABLE2xx), en respectant la structure de notre table SQL (celle de l'objet à importer, par exemple FOURNISS)
    - Après l'exécution de fichier .sql : 
        - OXATOOLS créé un fichier XML standard à partir de la table 2 (xxTABLE2xx)

    2. Cas particulier de cette interface :  
        - Tous les nouveau fournisseurs sont des PROSPECT 
        - SIRET = SIREN

*/

/*<SEPARATEUR>*/
/* Drop tmp tables */
-- if exists (select * from sysobjects where name='xxTABLE2xx' and xtype='U') drop table xxTABLE2xx
if exists (select * from sysobjects where name='xxTABLE3xx' and xtype='U') drop table xxTABLE3xx



/*<SEPARATEUR>*/
/* Corection des données :
    On enléve les '"' autours des données
*/

update tbx
set
    COL1  	= replace(trim(COL1),'"',''),
    COL2  	= replace(trim(COL2),'"',''),
    COL3  	= replace(trim(COL3),'"',''),
    COL4  	= replace(trim(COL4),'"',''),
    COL5  	= replace(trim(COL5),'"',''),
    COL6  	= replace(trim(COL6),'"',''),
    COL7  	= replace(trim(COL7),'"',''),
    COL8  	= replace(trim(COL8),'"',''),
    COL9  	= replace(trim(COL9),'"',''),
    COL10 	= replace(trim(COL10),'"',''),
    COL11 	= replace(trim(COL11),'"',''),
    COL12 	= replace(trim(COL12),'"',''),
    COL13 	= replace(trim(COL13),'"',''),
    COL14 	= replace(trim(COL14),'"',''),
    COL15 	= replace(trim(COL15),'"',''),
    COL16 	= replace(trim(COL16),'"',''),
    COL17 	= replace(trim(COL17),'"',''),
    COL18 	= replace(trim(COL18),'"',''),
    COL19 	= replace(trim(COL19),'"',''),
    COL20 	= replace(trim(COL20),'"',''),
    COL21 	= replace(trim(COL21),'"',''),
    COL22 	= replace(trim(COL22),'"',''),
    COL23 	= replace(trim(COL23),'"',''),
    COL24 	= replace(trim(COL24),'"',''),
    COL25 	= replace(trim(COL25),'"',''),
    COL26 	= replace(trim(COL26),'"',''),
    COL27 	= replace(trim(COL27),'"',''),
    COL28 	= replace(trim(COL28),'"',''),
    COL29 	= replace(trim(COL29),'"',''),
    COL30 	= replace(trim(COL30),'"','')

from xxTABLExx tbx


/*<SEPARATEUR>*/
/* On enléve la ligne de titre */
delete from xxTABLExx
where len(COL1) > 1


/*<SEPARATEUR>*/
/* REQ_1 : On alimente la table 2 (xxTABLE2xx) avec les fournisseurs à créer */
insert into xxTABLE2xx 
(
    CODE,
    RS,
    ENSCOMM,
    ADR ,
    CODE_PAYS,
    TEL,
    EMAIL,
    NO_SIRET,
    COND_PAIE,
    MODE_PAIE,
    LIV,
    DEVISE,
    NO_TVA_IC,
    DTEVALMIN,
    DTEVALMAX,
    RS_REGL,
    ADR_REGL,
    PAYSREGL,
    TYP_TVA,
    PROSPECT,
    COD_LNG,
    AUTOCC,
    MTMAXCC,
    CPOSTAL,
    VILLE1,
    CPREGL,
    VILREGL,
    ID_EXT,
    ADR_COMMANDE,
    DISPO_MOBILITY,

    AZ32_KEY
)
select distinct

/*CODE*/            t.COL2,
/*RS*/              t.COL3,
/*ENSCOMM*/         t.COL4,
/*ADR*/             replace(t.COL5,'*',CHAR(13) + CHAR(10)),
/*CODE_PAYS*/       t.COL6,
/*TEL*/             t.COL7,
/*EMAIL*/           t.COL8,
/*NO_SIRET*/        t.COL9,
/*COND_PAIE*/       t.COL10,
/*MODE_PAIE*/       t.COL11,
/*LIV*/             t.COL12,
/*DEVISE*/          t.COL13,
/*NO_TVA_IC*/       t.COL14,
/*DTEVALMIN*/       t.COL15,
/*DTEVALMAX*/       t.COL15,
/*RS_REGL*/         t.COL16,
/*ADR_REGL*/        replace(t.COL17,'*',CHAR(13) + CHAR(10)),
/*PAYSREGL*/        t.COL19,
/*TYP_TVA*/         t.COL20,
/*PROSPECT*/        case when f.CODE is null then 0x54 else f.PROSPECT end,     -- ca suffit pour savoir création ou modif?
/*COD_LNG*/         t.COL21,
/*AUTOCC*/          case when upper(t.COL21) = 'OUI' then 0x54 else 0x46 end,
/*MTMAXCC*/         case when t.COL23 = '' then 0 else cast(replace(replace(t.COL23,',','.'),' ','') as float) end,
/*CPOSTAL*/         t.COL24,
/*VILLE1*/          t.COL25,
/*CPREGL*/          t.COL26,
/*VILREGL*/         t.COL27,
/*ID_EXT*/          t.COL28,
/*ADR_COMMANDE*/    case when upper(t.COL29) = 'OUI' then 0x54 else 0x46 end,
/*DISPO_MOBILITY*/  case when upper(t.COL30) = 'OUI' then 0x54 else 0x46 end,  
/*AZ32_KEY*/        t.COL2

from xxTABLExx t with(nolock) 
left outer join FOURNISS f with(nolock) on f.CODE = t.COL2
