Fix: delete obsolete fields

This commit is contained in:
Regis Houssin 2009-12-09 18:18:45 +00:00
parent 03f11bf481
commit 382150b774
4 changed files with 95 additions and 76 deletions

View File

@ -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

View File

@ -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<EFBFBD>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

View File

@ -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;

View File

@ -918,83 +918,104 @@ function migrate_paiementfourn_facturefourn($db,$langs,$conf)
print '<br>';
print '<b>'.$langs->trans('SuppliersInvoices')."</b><br>\n";
print '</td></tr>';
$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<6E>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 '<tr><td colspan="4" nowrap="nowrap"><b>'.$langs->trans('SuppliersInvoices').'</b></td></tr>';
print '<tr><td>fk_paiementfourn</td><td>fk_facturefourn</td><td>'.$langs->trans('Amount').'</td><td>&nbsp;</td></tr>';
if ($nb == 0)
{
print '<tr><td colspan="4" nowrap="nowrap"><b>'.$langs->trans('SuppliersInvoices').'</b></td></tr>';
print '<tr><td>fk_paiementfourn</td><td>fk_facturefourn</td><td>'.$langs->trans('Amount').'</td><td>&nbsp;</td></tr>';
}
print '<tr '.$bc[$var].'>';
print '<td>'.$select_obj->rowid.'</td><td>'.$select_obj->fk_facture_fourn.'</td><td>'.$select_obj->amount.'</td>';
$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 '<td><span style="color:green">'.$langs->trans("OK").'</span></td>';
}
else
{
print '<td><span style="color:red">Error on insert</span></td>';
$error++;
}
print '</tr>';
}
print '<tr '.$bc[$var].'>';
print '<td>'.$select_obj->rowid.'</td><td>'.$select_obj->fk_facture_fourn.'</td><td>'.$select_obj->amount.'</td>';
$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 '<td><span style="color:green">'.$langs->trans("OK").'</span></td>';
}
else
{
print '<td><span style="color:red">Error on insert</span></td>';
$error++;
}
print '</tr>';
}
else
{
$error++;
}
$i++;
}
else
}
else
{
$error++;
}
if (!$error)
{
if (!$nb)
{
$error++;
print '<tr><td>'.$langs->trans("AlreadyDone").'</td></tr>';
}
$i++;
$db->commit();
$sql = "ALTER TABLE ".MAIN_DB_PREFIX."paiementfourn DROP COLUMN fk_facture_fourn";
$db->query($sql);
}
else
{
print '<tr><td>'.$langs->trans("Error").'</td></tr>';
$db->rollback();
}
}
else
{
$error++;
}
if (! $nb && ! $error)
{
print '<tr><td>'.$langs->trans("AlreadyDone").'</td></tr>';
}
if ($error)
{
print '<tr><td>'.$langs->trans("Error").'</td></tr>';
}
}