From 382150b774f08b8f79046acef150fe931afb579f Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 9 Dec 2009 18:18:45 +0000 Subject: [PATCH] Fix: delete obsolete fields --- htdocs/install/mysql/tables/llx_paiement.sql | 7 +- .../mysql/tables/llx_paiementfourn.sql | 3 +- .../mysql/tables/llx_prelevement_bons.sql | 18 +-- htdocs/install/upgrade2.php | 143 ++++++++++-------- 4 files changed, 95 insertions(+), 76 deletions(-) diff --git a/htdocs/install/mysql/tables/llx_paiement.sql b/htdocs/install/mysql/tables/llx_paiement.sql index ed159cd8c67..ce7e2e6ff67 100644 --- a/htdocs/install/mysql/tables/llx_paiement.sql +++ b/htdocs/install/mysql/tables/llx_paiement.sql @@ -21,12 +21,11 @@ -- Satut, 0 ou 1, 1 n'est plus supprimable --- fk_export_compta 0 pas exporté +-- fk_export_compta 0 pas exporte create table llx_paiement ( rowid integer AUTO_INCREMENT PRIMARY KEY, - fk_facture integer, datec datetime, -- date de creation tms timestamp, datep datetime, -- payment date @@ -35,8 +34,8 @@ create table llx_paiement num_paiement varchar(50), note text, fk_bank integer NOT NULL DEFAULT 0, - fk_user_creat integer, -- utilisateur qui a créé l'info - fk_user_modif integer, -- utilisateur qui a modifié l'info + fk_user_creat integer, -- utilisateur qui a cree l'info + fk_user_modif integer, -- utilisateur qui a modifie l'info statut smallint DEFAULT 0 NOT NULL, fk_export_compta integer DEFAULT 0 NOT NULL diff --git a/htdocs/install/mysql/tables/llx_paiementfourn.sql b/htdocs/install/mysql/tables/llx_paiementfourn.sql index dc0891ba209..a3c542ea7e2 100644 --- a/htdocs/install/mysql/tables/llx_paiementfourn.sql +++ b/htdocs/install/mysql/tables/llx_paiementfourn.sql @@ -24,12 +24,11 @@ create table llx_paiementfourn rowid integer AUTO_INCREMENT PRIMARY KEY, tms timestamp, datec datetime, -- date de creation de l'enregistrement - fk_facture_fourn integer, -- facture datep datetime, -- date de paiement amount real DEFAULT 0, -- montant fk_user_author integer, -- auteur fk_paiement integer NOT NULL, -- moyen de paiement - num_paiement varchar(50), -- num�ro de paiement (cheque) + num_paiement varchar(50), -- numero de paiement (cheque) note text, fk_bank integer NOT NULL, statut smallint NOT NULL DEFAULT 0 diff --git a/htdocs/install/mysql/tables/llx_prelevement_bons.sql b/htdocs/install/mysql/tables/llx_prelevement_bons.sql index 7e626be7349..c7a06cfcaf3 100644 --- a/htdocs/install/mysql/tables/llx_prelevement_bons.sql +++ b/htdocs/install/mysql/tables/llx_prelevement_bons.sql @@ -20,9 +20,9 @@ -- =================================================================== -- --- Bons de prélèvement +-- Bons de prelevement -- --- statut 1 : transmis à la banque +-- statut 1 : transmis a la banque -- statut 2 : credite -- create table llx_prelevement_bons @@ -31,14 +31,14 @@ create table llx_prelevement_bons ref varchar(12), -- reference entity integer DEFAULT 1 NOT NULL, -- multi company id datec datetime, -- date de creation - amount real DEFAULT 0, -- montant total du prélèvement + amount real DEFAULT 0, -- montant total du prelevement statut smallint DEFAULT 0, -- statut - credite smallint DEFAULT 0, -- indique si le prelevement a été credité + credite smallint DEFAULT 0, -- indique si le prelevement a ete credite note text, - date_trans datetime, -- date de transmission à la banque - method_trans smallint, -- méthode de transmission - fk_user_trans integer, -- user qui a effectué la transmission - date_credit datetime, -- date de crédit sur le compte - fk_user_credit integer -- user qui a remonté l'info de crédit + date_trans datetime, -- date de transmission a la banque + method_trans smallint, -- methode de transmission + fk_user_trans integer, -- user qui a effectue la transmission + date_credit datetime, -- date de credit sur le compte + fk_user_credit integer -- user qui a remonte l'info de credit )type=innodb; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index b51adc94fb6..ee8c44e6d72 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -918,83 +918,104 @@ function migrate_paiementfourn_facturefourn($db,$langs,$conf) print '
'; print ''.$langs->trans('SuppliersInvoices')."
\n"; print ''; - - $error = 0; - $nb=0; - $select_sql = 'SELECT rowid, fk_facture_fourn, amount '; - $select_sql .= ' FROM '.MAIN_DB_PREFIX.'paiementfourn '; - $select_sql .= ' WHERE fk_facture_fourn IS NOT NULL'; - - dolibarr_install_syslog("upgrade2::migrate_paiementfourn_facturefourn sql=".$select_sql); - $select_resql = $db->query($select_sql); - if ($select_resql) + + $result = $db->DDLDescTable(MAIN_DB_PREFIX."paiementfourn","fk_facture_fourn"); + $obj = $db->fetch_object($result); + if ($obj) { - $select_num = $db->num_rows($select_resql); - $i=0; - $var = true; - - // Pour chaque paiement fournisseur, on insere une ligne dans paiementfourn_facturefourn - while (($i < $select_num) && (! $error)) + $db->begin(); + + $error=0; + $nb=0; + + $select_sql = 'SELECT rowid, fk_facture_fourn, amount'; + $select_sql.= ' FROM '.MAIN_DB_PREFIX.'paiementfourn'; + $select_sql.= ' WHERE fk_facture_fourn IS NOT NULL'; + + dolibarr_install_syslog("upgrade2::migrate_paiementfourn_facturefourn sql=".$select_sql); + $select_resql = $db->query($select_sql); + if ($select_resql) { - $var = !$var; - $select_obj = $db->fetch_object($select_resql); - - // Verifier si la ligne est deja dans la nouvelle table. On ne veut pas ins�rer de doublons. - $check_sql = 'SELECT fk_paiementfourn, fk_facturefourn'; - $check_sql .= ' FROM '.MAIN_DB_PREFIX.'paiementfourn_facturefourn'; - $check_sql .= ' WHERE fk_paiementfourn = '.$select_obj->rowid.' AND fk_facturefourn = '.$select_obj->fk_facture_fourn.';'; - $check_resql = $db->query($check_sql); - if ($check_resql) + $select_num = $db->num_rows($select_resql); + $i=0; + $var = true; + + // Pour chaque paiement fournisseur, on insere une ligne dans paiementfourn_facturefourn + while (($i < $select_num) && (! $error)) { - $check_num = $db->num_rows($check_resql); - if ($check_num == 0) + $var = !$var; + $select_obj = $db->fetch_object($select_resql); + + // Verifier si la ligne est deja dans la nouvelle table. On ne veut pas inserer de doublons. + $check_sql = 'SELECT fk_paiementfourn, fk_facturefourn'; + $check_sql.= ' FROM '.MAIN_DB_PREFIX.'paiementfourn_facturefourn'; + $check_sql.= ' WHERE fk_paiementfourn = '.$select_obj->rowid.' AND fk_facturefourn = '.$select_obj->fk_facture_fourn.';'; + $check_resql = $db->query($check_sql); + if ($check_resql) { - if ($nb == 0) + $check_num = $db->num_rows($check_resql); + if ($check_num == 0) { - print ''.$langs->trans('SuppliersInvoices').''; - print 'fk_paiementfournfk_facturefourn'.$langs->trans('Amount').' '; + if ($nb == 0) + { + print ''.$langs->trans('SuppliersInvoices').''; + print 'fk_paiementfournfk_facturefourn'.$langs->trans('Amount').' '; + } + + print ''; + print ''.$select_obj->rowid.''.$select_obj->fk_facture_fourn.''.$select_obj->amount.''; + + $insert_sql = 'INSERT INTO '.MAIN_DB_PREFIX.'paiementfourn_facturefourn SET '; + $insert_sql .= ' fk_paiementfourn = \''.$select_obj->rowid.'\','; + $insert_sql .= ' fk_facturefourn = \''.$select_obj->fk_facture_fourn.'\','; + $insert_sql .= ' amount = \''.$select_obj->amount.'\';'; + $insert_resql = $db->query($insert_sql); + + if ($insert_resql) + { + $nb++; + print ''.$langs->trans("OK").''; + } + else + { + print 'Error on insert'; + $error++; + } + print ''; } - - print ''; - print ''.$select_obj->rowid.''.$select_obj->fk_facture_fourn.''.$select_obj->amount.''; - - $insert_sql = 'INSERT INTO '.MAIN_DB_PREFIX.'paiementfourn_facturefourn SET '; - $insert_sql .= ' fk_paiementfourn = \''.$select_obj->rowid.'\','; - $insert_sql .= ' fk_facturefourn = \''.$select_obj->fk_facture_fourn.'\','; - $insert_sql .= ' amount = \''.$select_obj->amount.'\';'; - $insert_resql = $db->query($insert_sql); - if ($insert_resql) - { - $nb++; - print ''.$langs->trans("OK").''; - } - else - { - print 'Error on insert'; - $error++; - } - print ''; } + else + { + $error++; + } + $i++; } - else + } + else + { + $error++; + } + + if (!$error) + { + if (!$nb) { - $error++; + print ''.$langs->trans("AlreadyDone").''; } - $i++; + $db->commit(); + $sql = "ALTER TABLE ".MAIN_DB_PREFIX."paiementfourn DROP COLUMN fk_facture_fourn"; + $db->query($sql); + } + else + { + print ''.$langs->trans("Error").''; + $db->rollback(); } } else - { - $error++; - } - if (! $nb && ! $error) { print ''.$langs->trans("AlreadyDone").''; } - if ($error) - { - print ''.$langs->trans("Error").''; - } }