Le statut de la facture (brouillons, valide, paye) s'affichent dans la fiche facture.

De plus, le statut annule (statu=3) est ajoute (pour les factures que le client n'a jamais paye et pour lequel on a abandonn tout espoir et poursuites).
This commit is contained in:
Laurent Destailleur 2004-03-24 14:09:33 +00:00
parent cfa0b77062
commit 655e3dbdc8
3 changed files with 73 additions and 31 deletions

View File

@ -198,6 +198,12 @@ if ($action == 'payed' && $user->rights->facture->paiement)
$result = $fac->set_payed($facid);
}
if ($action == 'canceled' && $user->rights->facture->paiement)
{
$fac = new Facture($db);
$result = $fac->set_canceled($facid);
}
if ($HTTP_POST_VARS["action"] == 'setremise' && $user->rights->facture->creer)
{
$fac = new Facture($db);
@ -459,7 +465,7 @@ if ($_GET["action"] == 'create')
}
else
{
print '<tr><td colspan="2">&nbsp;</td></tr>';
print '<tr><td colspan="3">&nbsp;</td></tr>';
print '<tr><td colspan="3">';
/*
*
@ -566,7 +572,7 @@ if ($_GET["action"] == 'create')
$var=!$var;
print "<tr $bc[$var]><td>[$objp->ref]</td>\n";
print '<td>'.$objp->product.'</td>';
print "<td align=\"right\">".price($objp->price)."</TD>";
print "<td align=\"right\">".price($objp->price)."</td>";
print '<td align="center">'.$objp->remise_percent.' %</td>';
print "<td align=\"center\">".$objp->qty."</td></tr>\n";
$i++;
@ -717,14 +723,7 @@ else
print "<tr><td>Auteur</td><td colspan=\"3\">$author->fullname</td>";
if ($fac->remise_percent > 0)
{
print '<td rowspan="5" valign="top">';
}
else
{
print '<td rowspan="4" valign="top">';
}
print '<td rowspan="6" valign="top">';
/*
* Paiements
@ -755,16 +754,16 @@ else
print "<TD>$objp->paiement_type $objp->num_paiement</TD>\n";
print '<td align="right">'.price($objp->amount)."</TD><td>$_MONNAIE</td>\n";
print "</tr>";
$total = $total + $objp->amount;
$totalpaye += $objp->amount;
$i++;
}
if ($fac->paye == 0)
{
print "<tr><td colspan=\"2\" align=\"right\">Total :</td><td align=\"right\"><b>".price($total)."</b></td><td>$_MONNAIE</td></tr>\n";
print "<tr><td colspan=\"2\" align=\"right\">Total payé:</td><td align=\"right\"><b>".price($totalpaye)."</b></td><td>$_MONNAIE</td></tr>\n";
print "<tr><td colspan=\"2\" align=\"right\">Facturé :</td><td align=\"right\" bgcolor=\"#d0d0d0\">".price($fac->total_ttc)."</td><td bgcolor=\"#d0d0d0\">$_MONNAIE</td></tr>\n";
$resteapayer = $fac->total_ttc - $total;
$resteapayer = $fac->total_ttc - $totalpaye;
print "<tr><td colspan=\"2\" align=\"right\">Reste à payer :</td>";
print "<td align=\"right\" bgcolor=\"#f0f0f0\"><b>".price($resteapayer)."</b></td><td bgcolor=\"#f0f0f0\">$_MONNAIE</td></tr>\n";
@ -777,21 +776,19 @@ else
print "</td></tr>";
print '<tr><td>Montant</td>';
print '<tr><td>Remise globale</td>';
print '<td align="right" colspan="2">'.$fac->remise_percent.'</td>';
print '<td>%</td></tr>';
print '<tr><td>Montant HT</td>';
print '<td align="right" colspan="2"><b>'.price($fac->total_ht).'</b></td>';
print '<td>'.MAIN_MONNAIE.' HT</td></tr>';
if ($fac->remise_percent > 0)
{
print '<tr><td>Remise</td>';
print '<td align="right" colspan="2">'.$fac->remise_percent.'</td>';
print '<td>%</td></tr>';
}
print '<tr><td>TVA</td><td align="right" colspan="2">'.price($fac->total_tva).'</td>';
print '<td>'.MAIN_MONNAIE.'</td></tr>';
print '<tr><td>Total</td><td align="right" colspan="2">'.price($fac->total_ttc).'</td>';
print '<tr><td>Montant TTC</td><td align="right" colspan="2">'.price($fac->total_ttc).'</td>';
print '<td>'.MAIN_MONNAIE.' TTC</td></tr>';
print '<tr><td>Statut</td><td align="left" colspan="3">'.($fac->get_libstatut()).'</td></tr>';
if ($fac->note)
{
print '<tr><td colspan="5">Note : '.nl2br($fac->note)."</td></tr>";
@ -964,11 +961,11 @@ else
{
if ($fac->paye == 0)
{
print "<a class=\"tabAction\" href=\"facture.php?facid=$fac->id&amp;action=pdf\">Générer la facture</a>";
print "<a class=\"tabAction\" href=\"facture.php?facid=$fac->id&amp;action=pdf\">Générer le PDF</a>";
}
else
{
print "<a class=\"tabAction\" href=\"facture.php?facid=$fac->id&amp;action=pdf\">Regénérer la facture</a>";
print "<a class=\"tabAction\" href=\"facture.php?facid=$fac->id&amp;action=pdf\">Regénérer le PDF</a>";
}
}
}
@ -988,13 +985,13 @@ else
// Envoyer une relance
if ($fac->statut == 1 && price($resteapayer) > 0 && $user->rights->facture->envoyer)
{
print "<a class=\"tabAction\" href=\"$PHP_SELF?facid=$fac->id&amp;action=prerelance\">Envoyer une relance</a>";
print "<a class=\"tabAction\" href=\"$PHP_SELF?facid=$fac->id&amp;action=prerelance\">Envoyer relance</a>";
}
// Emettre paiement
if ($fac->statut == 1 && price($resteapayer) > 0 && $user->rights->facture->paiement)
{
print "<a class=\"tabAction\" href=\"paiement.php?facid=".$fac->id."&amp;action=create\">Emettre un paiement</a>";
print "<a class=\"tabAction\" href=\"paiement.php?facid=".$fac->id."&amp;action=create\">Emettre paiement</a>";
}
// Classer 'payé'
@ -1004,7 +1001,12 @@ else
print "<a class=\"tabAction\" href=\"$PHP_SELF?facid=$fac->id&amp;action=payed\">Classer 'Payée'</a>";
}
// Classer 'annulée' (possible si validée et aucun paiement n'a encore eu lieu)
if ($fac->statut == 1 && $fac->paye == 0 && $totalpaye == 0 && $user->rights->facture->paiement)
{
print "<a class=\"tabAction\" href=\"$PHP_SELF?facid=$fac->id&amp;action=canceled\">Classer 'Annulée'</a>";
}
// Récurrente
if (! defined("FACTURE_DISABLE_RECUR")) // Possibilité de désactiver les factures récurrentes
{
@ -1371,6 +1373,10 @@ else
{
print '<td align="center">brouillon</td>';
}
elseif ($objp->fk_statut == 3)
{
print '<td align="center">annulée</td>';
}
else
{
print '<td align="center"><a class="'.$class.'" href="facture.php?filtre=paye:0,fk_statut:1">'.($objp->am?"commencé":"impayée").'</a></td>';

View File

@ -233,7 +233,7 @@ if ($user->comm > 0 && $conf->commercial )
* Factures impayées
*/
$sql = "SELECT f.facnumber, f.rowid, s.nom, s.idp, f.total_ttc FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s WHERE s.idp = f.fk_soc AND f.paye = 0 AND f.fk_statut > 0";
$sql = "SELECT f.facnumber, f.rowid, s.nom, s.idp, f.total_ttc FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s WHERE s.idp = f.fk_soc AND f.paye = 0 AND f.fk_statut = 1";
if ($socidp)
{
$sql .= " AND f.fk_soc = $socidp";

View File

@ -422,18 +422,54 @@ class Facture
return -5;
}
}
/**
* Tag la facture comme payée
* Retourne le libellé du statut d'une facture (brouillon, validée, annulée, payée)
*
*/
Function get_libstatut()
{
if (! $this->paye)
{
if ($this->statut == 0) return 'Brouillon (à valider)';
if ($this->statut == 3) return 'Annulée';
return 'Validée (à payer)';
}
else
{
return 'Payée';
}
}
/**
* Tag la facture comme payée complètement
*
*/
Function set_payed($rowid)
{
$sql = "UPDATE ".MAIN_DB_PREFIX."facture set paye = 1 WHERE rowid = $rowid ;";
$sql = "UPDATE ".MAIN_DB_PREFIX."facture set paye=1 WHERE rowid = $rowid ;";
$return = $this->db->query( $sql);
}
/**
* Valide la facture
* Tag la facture comme paiement commencée
*
*/
Function set_paiement_started($rowid)
{
$sql = "UPDATE ".MAIN_DB_PREFIX."facture set fk_statut=2 WHERE rowid = $rowid ;";
$return = $this->db->query( $sql);
}
/**
* Tag la facture comme annulée
*
*/
Function set_canceled($rowid)
{
$sql = "UPDATE ".MAIN_DB_PREFIX."facture set fk_statut=3 WHERE rowid = $rowid ;";
$return = $this->db->query( $sql);
}
/**
* Tag la facture comme validée et valide la facture
*
*/
Function set_valid($rowid, $user, $soc)