Quelques corrections sur les donnes corrompues grace a la page checkrepair.php

This commit is contained in:
Laurent Destailleur 2005-07-14 22:26:08 +00:00
parent 130b6b84f8
commit 6c936feb50

View File

@ -110,11 +110,14 @@ print "<b>Mise a jour des dates de contrats non renseign
$sql="update llx_contrat set date_contrat=tms where date_contrat is null";
$resql = $db->query($sql);
if (! $resql) dolibarr_print_error($db);
if ($db->affected_rows() > 0) print "Ok pour date de contrat<br>\n";
else print "Pas ou plus de date de contrats à renseigner.<br>\n";
$sql="update llx_contrat set datec=tms where datec is null";
$resql = $db->query($sql);
if (! $resql) dolibarr_print_error($db);
print "Ok<br>\n";
if ($db->affected_rows() > 0) print "Ok pour date création<br>\n";
else print "Pas ou plus de date de création à renseigner.<br>\n";
/*
* Mise a jour des contrats (gestion du contrat + detail de contrat)
@ -196,11 +199,80 @@ if ($resql)
}
else
{
dolibarr_print_error($db);
print "Le champ fk_facture n'existe plus. Pas d'opération à faire.<br>\n";
// dolibarr_print_error($db);
}
print "<br>";
/*
* Mise a jour date contrat avec date min effective mise en service si inférieur
*/
$nberr=0;
print '<br>';
print "<b>Mise a jour dates contrat incorrectes (pour contrats avec detail en service)</b><br>\n";
$sql = "SELECT c.rowid as cref, c.datec, c.date_contrat, MIN(cd.date_ouverture) as datemin";
$sql.= " FROM ".MAIN_DB_PREFIX."contrat as c,";
$sql.= " ".MAIN_DB_PREFIX."contratdet as cd";
$sql.= " WHERE c.rowid=cd.fk_contrat AND cd.date_ouverture IS NOT NULL";
$sql.= " GROUP BY c.rowid, c.date_contrat";
$resql = $db->query($sql);
if ($resql)
{
$i = 0;
$row = array();
$num = $db->num_rows($resql);
if ($num)
{
$nbcontratsmodifie=0;
$db->begin();
while ($i < $num)
{
$obj = $db->fetch_object($resql);
if ($obj->date_contrat > $obj->datemin)
{
print "Correction contrat ".$obj->cref." (Date contrat=".$obj->date_contrat.", Date mise service min=".$obj->datemin.")<br>\n";
$sql ="UPDATE ".MAIN_DB_PREFIX."contrat";
$sql.=" SET date_contrat='".$obj->datemin."'";
$sql.=" WHERE rowid=".$obj->cref;
$resql2=$db->query($sql);
if (! $resql2) dolibarr_print_error($db);
$nbcontratsmodifie++;
}
$i++;
}
$db->commit();
if ($nbcontratsmodifie) print "$nbcontratsmodifie contrats modifiés<br>\n";
else print "Pas ou plus de contrats à corriger.<br>\n";
}
}
else
{
dolibarr_print_error($db);
}
/*
* Mise a jour des date de création de contrat
*/
print '<br>';
print "<b>Mise a jour des dates de création de contrat qui ont une valeur incohérentes</b><br>\n";
$sql="update llx_contrat set datec=date_contrat where datec is null or datec > date_contrat";
$resql = $db->query($sql);
if (! $resql) dolibarr_print_error($db);
if ($db->affected_rows() > 0) print "Ok<br>\n";
else print "Pas ou plus de date de contrats à corriger.<br>\n";
print "<br>";
$db->close();
llxFooter();