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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
| CREATE OR REPLACE FUNCTION alim_client() RETURNS void AS
$func$
DECLARE
r "Client_transfert"%ROWTYPE;
c INT := 0;
listerouge BOOLEAN;
idrepres INT;
iddelais INT;
idmode INT;
idtype INT;
titurib VARCHAR;
codebanque VARCHAR;
codeguichet VARCHAR;
numcompte VARCHAR;
clerib VARCHAR;
iban VARCHAR;
bic VARCHAR;
nombanque VARCHAR;
BEGIN
FOR r IN SELECT "Code Client", "Nom Client Fact", "Contact", "Adr Fact", "CP Fact",
"Ville Fact", "Pays Fact", "Fr - CE - Export Fact", "Tel1 Fact",
"Tel2 Fact", "Fax Fact", "E-Mail Fact", "Adresse Internet Fact",
"Nom Client Liv", "Contact Liv", "Adr Liv", "CP Liv", "Ville Liv",
"Pays Liv", "FR - CE - Export Liv", "Tel1 Liv", "Tel2 Liv", "Fax Liv",
"E-Mail Liv", "Adresse Internet Liv", "Remise Client %", "Mode de paiement",
"Délais de paiement", "Représentant", "Type Client", "Code Banque",
"Code Guichet", "Num Compte", "Clé RIB", "Nom Banque", "IBAN1",
"IBAN2", "BIC", "Titulaire du Compte", "SIREN", "TVA Intracommunautaire",
"Liste Rouge", "Liste Noire", "Commentaire", "TotalPointFidelite" FROM "Client_transfert" LOOP
--Sélection liste rouge client
IF r."Liste Rouge" = '1' THEN
listerouge := 1;
ELSE
listerouge := 0;
END IF;
--Sélection type client
IF r."Type Client" = 'Club' THEN
idtype := 2;
ELSEIF r."Type Client" = 'MAGASIN' THEN
idtype := 1;
ELSEIF r."Type Client" = 'SPONSOR' THEN
idtype := 3;
END IF;
--Sélection délais paiement
IF r."Délais de paiement" = '30 j Fin de Mois' THEN
iddelais := 1;
ELSEIF r."Délais de paiement" = '30 j Fin de Mois le 10' THEN
iddelais := 2;
ELSEIF r."Délais de paiement" = '30 j net' THEN
iddelais := 3;
ELSEIF r."Délais de paiement" = '60 j Fin de Mois' THEN
iddelais := 4;
ELSEIF r."Délais de paiement" = '60 j net' THEN
iddelais := 5;
ELSEIF r."Délais de paiement" = '90 j Fin de Mois le 10' THEN
iddelais := 6;
ELSEIF r."Délais de paiement" = 'Comptant' THEN
iddelais := 7;
ELSEIF r."Délais de paiement" = 'Contre-rembours.' THEN
iddelais := 8;
ELSEIF r."Délais de paiement" = 'D avance' THEN
iddelais := 9;
END IF;
--Sélection mode de paiement
IF r."Mode de paiement" = 'Chèque' THEN
idmode := 1;
ELSEIF r."Mode de paiement" = 'Contre-rembours.' OR r."Mode de paiement" = 'Contre-remboursement' THEN
idmode := 2;
ELSEIF r."Mode de paiement" = 'Virement' THEN
idmode := 3;
ELSEIF r."Mode de paiement" = 'Espèce' THEN
idmode := 4;
ELSEIF r."Mode de paiement" = 'Effet accepté' THEN
idmode := 5;
ELSEIF r."Mode de paiement" = 'Effet non accepté' THEN
idmode := 6;
END IF;
--Sélection représentants
IF r."Représentant" = 'xxxxxxxxx' THEN
idrepres := 2;
ELSEIF r."Représentant" = 'xxxxxxxx' THEN
idrepres := 3;
ELSEIF r."Représentant" = 'xxxxxx' THEN
idrepres := 4;
ELSEIF r."Représentant" = 'xxxxxxxx' THEN
idrepres := 5;
ELSEIF r."Représentant" = 'xxxxxxxx' THEN
idrepres := 6;
ELSEIF r."Représentant" = 'xxxxxxx' THEN
idrepres := 7;
ELSEIF r."Représentant" = 'xxxxxxx' THEN
idrepres := 8;
ELSEIF r."Représentant" = 'xxxxxxx' THEN
idrepres := 15;
ELSEIF r."Représentant" = 'xxxxxxxxx' THEN
idrepres := 10;
ELSEIF r."Représentant" = 'xxxxxxx' THEN
idrepres := 12;
ELSEIF r."Représentant" = 'xxxxxxxx' THEN
idrepres := 13;
END IF;
--informations bancaires
titurib := r."Titulaire du Compte";
codebanque := r."Code Banque";
codeguichet := r."Code Guichet";
numcompte := r."Num Compte";
clerib := r."Clé RIB";
nombanque := r."Nom Banque";
iban := r."IBAN1" || r."IBAN2";
bic := r."BIC";
--insertion dans la table client
INSERT INTO t_client(
id_type_client, id_delais_paiement, id_mode_paiement,
id_representant, nom_f_client, adresse_f_client, cp_f_client, ville_f_client, pays_f_client,
fixe_f_client, mobile_f_client, fax_f_client, email_f_client, site_web_f_client,
nom_l_client, adresse_l_client, cp_l_client, ville_l_client, pays_l_client,
fixe_l_client, mobile_l_client, fax_l_client, email_l_client,
site_web_l_client, liste_rouge_client, pts_fidel_client, siren_client,
num_intracomm_client, remise_client)
VALUES (idtype, iddelais, idmode, idrepres, r."Nom Client Fact", r."Adr Fact", r."CP Fact", r."Ville Fact", r."Pays Fact",
r."Tel1 Fact", r."Tel2 Fact", r."Fax Fact", r."E-Mail Fact", r."Adresse Internet Fact",
r."Nom Client Liv", r."Adr Liv", r."CP Liv", r."Ville Liv", r."Pays Liv", r."Tel1 Liv", r."Tel2 Liv", r."Fax Liv",
r."E-Mail Liv", r."Adresse Internet Liv", listerouge, r."TotalPointFidelite", r."SIREN", r."TVA Intracommunautaire", r."Remise Client %");
--Récupération de l'ID du dernier client inséré
c := currval('t_client_id_client_seq');
--insertion des contacts
IF r."Contact" IS NOT NULL THEN
INSERT INTO t_contact (id_client, nom_contact) VALUES (c, r."Contact");
END IF;
IF r."Contact Liv" IS NOT NULL THEN
INSERT INTO t_contact (id_client, nom_contact) VALUES (c, r."Contact Liv");
END IF;
--insertion infos banquaires
IF r."Num Compte" IS NOT NULL OR r."IBAN1" IS NOT NULL OR r."IBAN2"IS NOT NULL OR r."Nom Banque" IS NOT NULL THEN
INSERT INTO t_rib(
id_client, titulaire_rib, code_banque_rib,
code_guichet_rib, num_compte_rib, cle_rib_rib, iban_rib, bic_rib, nom_banque_rib)
VALUES (c, titurib, codebanque, codeguichet, numcompte, clerib, iban, bic, nombanque);
END IF;
END LOOP;
END;
$func$
LANGUAGE 'plpgsql'; |
Partager