On deplace la methode getCurrentDiscount dans classe des discount

This commit is contained in:
Laurent Destailleur 2007-12-02 19:50:58 +00:00
parent 05efee5db8
commit 9cae92f25b
4 changed files with 52 additions and 20 deletions

View File

@ -17,7 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*/
/**

View File

@ -2054,10 +2054,16 @@ else
// Already payed
print '<tr><td colspan="2" align="right">'.$langs->trans('AlreadyPayed').' :</td><td align="right"><b>'.price($totalpaye).'</b></td><td>'.$langs->trans('Currency'.$conf->monnaie).'</td></tr>';
// Facturé
print '<tr><td colspan="2" align="right">'.$langs->trans("Billed").' :</td><td align="right" style="border: 1px solid;">'.price($fac->total_ttc).'</td><td>'.$langs->trans('Currency'.$conf->monnaie).'</td></tr>';
$resteapayeraffiche=$resteapayer;
// Boucle sur chaque facture avoir appliquee
// Payé partiellement 'escompte'
if (($fac->statut == 2 || $fac->statut == 3) && $fac->close_code == 'escompte')
{

View File

@ -263,6 +263,34 @@ class DiscountAbsolute
}
}
/**
* \brief Renvoie montant TTC des avoirs en cours disponibles
* \param fk_soc Filtre sur une societe
* \param user Filtre sur un user auteur des remises
* \param filter Filtre autre
* \return int <0 si ko, montant avoir sinon
*/
function getCurrentDiscount($company='', $user='',$filter='')
{
$sql = "SELECT SUM(rc.amount_ttc) as amount";
$sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc";
$sql.= " WHERE (rc.fk_facture IS NULL AND rc.fk_facture_line IS NULL)"; // Available
if (is_object($company)) $sql.= " AND rc.fk_soc = ".$company->id;
if (is_object($user)) $sql.= " AND rc.fk_user = ".$user->id;
if ($filter) $sql.=' AND '.$filter;
dolibarr_syslog("Discount::getCurrentDiscount sql=".$sql,LOG_DEBUG);
$resql=$this->db->query($sql);
if ($resql)
{
$obj = $this->db->fetch_object($resql);
return $obj->amount;
}
return -1;
}
/**
\brief Renvoie nom clicable (avec eventuellement le picto)
\param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul

View File

@ -954,7 +954,7 @@ class Societe
}
/**
* \brief Ajoute une remise fixe pour la soci<EFBFBD>t<EFBFBD>
* \brief Ajoute une remise fixe pour la societe
* \param remise Montant de la remise
* \param user Utilisateur qui accorde la remise
* \param desc Motif de l'avoir
@ -968,6 +968,7 @@ class Societe
$remise = price2num($remise);
$desc = trim($desc);
// Check parameters
if (! $remise > 0)
{
$this->error=$langs->trans("ErrorWrongValueForParameter","1");
@ -1005,8 +1006,8 @@ class Societe
}
/**
* \brief Supprime un avoir (<EFBFBD> condition que non affect<EFBFBD> <EFBFBD> une facture)
* \param id Id de l'avoir <EFBFBD> supprimer
* \brief Supprime un avoir (a condition que non affecte a une facture)
* \param id Id de l'avoir a supprimer
* \return int <0 si ko, id de l'avoir si ok
*/
function del_remise_except($id)
@ -1025,28 +1026,26 @@ class Societe
/**
* \brief Renvoie montant des avoirs en cours disponibles
* \brief Renvoie montant TTC des avoirs en cours disponibles de la societe
* \param user Filtre sur un user auteur des remises
* \param filter Filtre autre
* \return int <0 si ko, montant avoir sinon
* \return int <0 if KO, Credit note amount otherwise
*/
function getCurrentDiscount($user='',$filter='')
{
$sql = "SELECT SUM(rc.amount_ht) as amount";
$sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc";
$sql.= " WHERE rc.fk_soc =". $this->id;
if (is_object($user)) $sql.= " AND rc.fk_user = ".$user->id;
$sql.= " AND (rc.fk_facture IS NULL AND rc.fk_facture_line IS NULL)";
if ($filter) $sql.=' AND '.$filter;
require_once(DOL_DOCUMENT_ROOT.'/discount.class.php');
dolibarr_syslog("Societe::getCurrentDiscount sql=".$sql,LOG_DEBUG);
$resql=$this->db->query($sql);
if ($resql)
{
$obj = $this->db->fetch_object($resql);
return $obj->amount;
}
return -1;
$discountstatic=new DiscountAbsolute($this->db);
$result=$discountstatic->getCurrentDiscount($this,$user,$filter);
if ($result >= 0)
{
return $result;
}
else
{
$this->error=$discount->error;
return -1;
}
}