Add more filter on list of invoices and payments

This commit is contained in:
Laurent Destailleur 2010-05-01 15:33:00 +00:00
parent f2dc99dc7f
commit 664811cfed
7 changed files with 278 additions and 198 deletions

View File

@ -37,6 +37,7 @@ require_once(DOL_DOCUMENT_ROOT.'/core/class/discount.class.php');
require_once(DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'); require_once(DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php');
require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php");
require_once(DOL_DOCUMENT_ROOT.'/lib/invoice.lib.php'); require_once(DOL_DOCUMENT_ROOT.'/lib/invoice.lib.php');
require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php");
if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'); if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/projet/class/project.class.php');
if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/lib/project.lib.php'); if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/lib/project.lib.php');
@ -3548,13 +3549,13 @@ else
if ($month > 0) if ($month > 0)
{ {
if ($year > 0) if ($year > 0)
$sql.= " AND date_format(f.datef, '%Y-%m') = '$year-$month'"; $sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
else else
$sql.= " AND date_format(f.datef, '%m') = '$month'"; $sql.= " AND date_format(f.datef, '%m') = '$month'";
} }
if ($year > 0) else if ($year > 0)
{ {
$sql.= ' AND date_format(f.datef, \'%Y\') = '.$year; $sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
} }
if ($_POST['sf_ref']) if ($_POST['sf_ref'])
{ {
@ -3567,10 +3568,8 @@ else
$sql.= ' ORDER BY '; $sql.= ' ORDER BY ';
$listfield=explode(',',$sortfield); $listfield=explode(',',$sortfield);
foreach ($listfield as $key => $value) foreach ($listfield as $key => $value) $sql.= $listfield[$key].' '.$sortorder.',';
$sql.= $listfield[$key].' '.$sortorder.',';
$sql.= ' f.rowid DESC '; $sql.= ' f.rowid DESC ';
$sql.= $db->plimit($limit+1,$offset); $sql.= $db->plimit($limit+1,$offset);
$resql = $db->query($sql); $resql = $db->query($sql);
@ -3671,23 +3670,9 @@ else
print "</td>\n"; print "</td>\n";
// Date // Date
if ($objp->df > 0) print '<td align="center" nowrap>';
{ print dol_print_date($db->jdate($objp->df),'day');
$y = dol_print_date($db->jdate($objp->df),'%Y'); print '</td>';
$m = dol_print_date($db->jdate($objp->df),'%m');
$mt = dol_print_date($db->jdate($objp->df),'%b');
$d = dol_print_date($db->jdate($objp->df),'%d');
print '<td align="center" nowrap>';
print $d;
print ' <a href="'.$_SERVER["PHP_SELF"].'?year='.$y.'&amp;month='.$m.'">';
print $mt.'</a>';
print ' <a href="'.$_SERVER["PHP_SELF"].'?year='.$y.'">';
print $y.'</a></td>';
}
else
{
print '<td align="center"><b>!!!</b></td>';
}
// Date limit // Date limit
print '<td align="center" nowrap="1">'.dol_print_date($datelimit,'day'); print '<td align="center" nowrap="1">'.dol_print_date($datelimit,'day');

View File

@ -36,18 +36,10 @@ $facid = isset($_GET["facid"])?$_GET["facid"]:'';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result = restrictedArea($user, 'facture',$facid,''); $result = restrictedArea($user, 'facture',$facid,'');
$paymentstatic=new Paiement($db); $paymentstatic=new Paiement($db);
$accountstatic=new Account($db); $accountstatic=new Account($db);
$companystatic=new Societe($db); $companystatic=new Societe($db);
/*
* View
*/
llxHeader('',$langs->trans("ListPayment"));
$page=$_GET["page"]; $page=$_GET["page"];
$sortorder=$_GET["sortorder"]; $sortorder=$_GET["sortorder"];
$sortfield=$_GET["sortfield"]; $sortfield=$_GET["sortfield"];
@ -57,7 +49,16 @@ $offset = $limit * $page ;
if (! $sortorder) $sortorder="DESC"; if (! $sortorder) $sortorder="DESC";
if (! $sortfield) $sortfield="p.rowid"; if (! $sortfield) $sortfield="p.rowid";
$sql = "SELECT DISTINCT p.rowid,".$db->pdate("p.datep")." as dp, p.amount,";
/*
* View
*/
llxHeader('',$langs->trans("ListPayment"));
$sql = "SELECT DISTINCT p.rowid, p.datep as dp, p.amount,";
$sql.= " p.statut, p.num_paiement,"; $sql.= " p.statut, p.num_paiement,";
//$sql.= " c.libelle as paiement_type,"; //$sql.= " c.libelle as paiement_type,";
$sql.= " c.code as paiement_code,"; $sql.= " c.code as paiement_code,";
@ -84,15 +85,24 @@ if ($socid)
{ {
$sql.= " AND f.fk_soc = ".$socid; $sql.= " AND f.fk_soc = ".$socid;
} }
if ($_GET["search_montant"]) // Search criteria
if ($_REQUEST["search_ref"])
{ {
$sql .=" AND p.amount=".price2num($_GET["search_montant"]); $sql .=" AND p.rowid=".$_REQUEST["search_ref"];
}
if ($_REQUEST["search_amount"])
{
$sql .=" AND p.amount=".price2num($_REQUEST["search_amount"]);
}
if ($_REQUEST["search_company"])
{
$sql .=" AND s.nom like '%".addslashes($_REQUEST["search_company"])."%'";
} }
if ($_GET["orphelins"]) // Option for debugging purpose only if ($_GET["orphelins"]) // Option for debugging purpose only
{ {
// Paiements li<6C>s <20> aucune facture (pour aide au diagnostic) // Paiements lies a aucune facture (pour aide au diagnostic)
$sql = "SELECT p.rowid,".$db->pdate("p.datep")." as dp, p.amount,"; $sql = "SELECT p.rowid, p.datep as dp, p.amount,";
$sql.= " p.statut, p.num_paiement,"; $sql.= " p.statut, p.num_paiement,";
//$sql.= " c.libelle as paiement_type"; //$sql.= " c.libelle as paiement_type";
$sql.= " c.code as paiement_code,"; $sql.= " c.code as paiement_code,";
@ -105,8 +115,7 @@ if ($_GET["orphelins"]) // Option for debugging purpose only
$sql.= " AND s.entity = ".$conf->entity; $sql.= " AND s.entity = ".$conf->entity;
$sql.= " AND pf.rowid IS NULL"; $sql.= " AND pf.rowid IS NULL";
} }
$sql.= " ORDER BY ".$sortfield." ".$sortorder; $sql.= $db->order($sortfield,$sortorder);
//$sql.= ", facnumber ASC";
$sql.= $db->plimit( $limit+1 ,$offset); $sql.= $db->plimit( $limit+1 ,$offset);
//print "$sql"; //print "$sql";
@ -117,10 +126,15 @@ if ($resql)
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
$paramlist=($_GET["orphelins"]?"&orphelins=1":""); $paramlist='';
$paramlist.=($_REQUEST["orphelins"]?"&orphelins=1":"");
$paramlist.=($_REQUEST["search_ref"]?"&search_ref=".$_REQUEST["search_ref"]:"");
$paramlist.=($_REQUEST["search_company"]?"&search_company=".$_REQUEST["search_company"]:"");
$paramlist.=($_REQUEST["search_amount"]?"&search_amount=".$_REQUEST["search_amount"]:"");
print_barre_liste($langs->trans("ReceivedCustomersPayments"), $page, "liste.php",$paramlist,$sortfield,$sortorder,'',$num); print_barre_liste($langs->trans("ReceivedCustomersPayments"), $page, "liste.php",$paramlist,$sortfield,$sortorder,'',$num);
print '<form method="get" action="liste.php">'; print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("RefPayment"),"liste.php","p.rowid","",$paramlist,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("RefPayment"),"liste.php","p.rowid","",$paramlist,"",$sortfield,$sortorder);
@ -136,11 +150,18 @@ if ($resql)
} }
print "</tr>\n"; print "</tr>\n";
// Lignes des champs de filtre // Lines for filters fields
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td colspan="5">&nbsp;</td>'; print '<td align="left">';
print '<input class="fat" type="text" size="4" name="search_ref" value="'.$_REQUEST["search_ref"].'">';
print '</td>';
print '<td>&nbsp;</td>';
print '<td align="left">';
print '<input class="fat" type="text" size="6" name="search_company" value="'.$_REQUEST["search_company"].'">';
print '</td>';
print '<td colspan="2">&nbsp;</td>';
print '<td align="right">'; print '<td align="right">';
print '<input class="fat" type="text" size="6" name="search_montant" value="'.$_GET["search_montant"].'">'; print '<input class="fat" type="text" size="4" name="search_amount" value="'.$_REQUEST["search_amount"].'">';
print '<input type="image" class="liste_titre" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans("Search").'">'; print '<input type="image" class="liste_titre" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans("Search").'">';
print '</td>'; print '</td>';
if ($conf->global->BILL_ADD_PAYMENT_VALIDATION) if ($conf->global->BILL_ADD_PAYMENT_VALIDATION)
@ -163,7 +184,7 @@ if ($resql)
print $paymentstatic->getNomUrl(1); print $paymentstatic->getNomUrl(1);
print '</td>'; print '</td>';
print '<td align="center">'.dol_print_date($objp->dp,'day').'</td>'; print '<td align="center">'.dol_print_date($db->jdate($objp->dp),'day').'</td>';
// Company // Company
print '<td>'; print '<td>';

View File

@ -105,7 +105,7 @@ class FactureFournisseur extends Facture
} }
/** /**
* \brief Creation de la facture en base * \brief Create supplier invoice into database
* \param user object utilisateur qui cree * \param user object utilisateur qui cree
* \return int id facture si ok, < 0 si erreur * \return int id facture si ok, < 0 si erreur
*/ */
@ -147,7 +147,8 @@ class FactureFournisseur extends Facture
$sql.= ", '".$this->db->idate($this->date)."'"; $sql.= ", '".$this->db->idate($this->date)."'";
$sql.= ", '".addslashes($this->note)."'"; $sql.= ", '".addslashes($this->note)."'";
$sql.= ", '".addslashes($this->note_public)."'"; $sql.= ", '".addslashes($this->note_public)."'";
$sql.= ", ".$user->id.",'".$this->db->idate($this->date_echeance)."'"; $sql.= ", ".$user->id.",";
$sql.= $this->date_echeance!=''?"'".$this->db->idate($this->date_echeance)."'":"null";
$sql.= ")"; $sql.= ")";
dol_syslog("FactureFournisseur::create sql=".$sql, LOG_DEBUG); dol_syslog("FactureFournisseur::create sql=".$sql, LOG_DEBUG);

View File

@ -28,9 +28,10 @@
require("../../main.inc.php"); require("../../main.inc.php");
require_once(DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.facture.class.php"); require_once(DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.facture.class.php");
require_once(DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.class.php"); require_once(DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.class.php");
require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php");
if (!$user->rights->fournisseur->facture->lire) if (!$user->rights->fournisseur->facture->lire)
accessforbidden(); accessforbidden();
$langs->load("companies"); $langs->load("companies");
@ -39,8 +40,8 @@ $socid = $_GET["socid"];
// Security check // Security check
if ($user->societe_id > 0) if ($user->societe_id > 0)
{ {
$_GET["action"] = ''; $_GET["action"] = '';
$socid = $user->societe_id; $socid = $user->societe_id;
} }
$page=$_GET["page"]; $page=$_GET["page"];
@ -55,6 +56,9 @@ $pagenext = $page + 1;
if (! $sortorder) $sortorder="DESC"; if (! $sortorder) $sortorder="DESC";
if (! $sortfield) $sortfield="fac.datef"; if (! $sortfield) $sortfield="fac.datef";
$month =$_GET['month'];
$year =$_GET['year'];
/* /*
* Actions * Actions
@ -62,21 +66,21 @@ if (! $sortfield) $sortfield="fac.datef";
if ($_POST["mode"] == 'search') if ($_POST["mode"] == 'search')
{ {
if ($_POST["mode-search"] == 'soc') if ($_POST["mode-search"] == 'soc')
{
$sql = "SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s ";
$sql.= " WHERE s.nom like '%".addslashes(strtolower($socname))."%'";
}
if ( $db->query($sql) )
{
if ( $db->num_rows() == 1)
{ {
$obj = $db->fetch_object(); $sql = "SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s ";
$socid = $obj->rowid; $sql.= " WHERE s.nom like '%".addslashes(strtolower($socname))."%'";
}
if ( $db->query($sql) )
{
if ( $db->num_rows() == 1)
{
$obj = $db->fetch_object();
$socid = $obj->rowid;
}
$db->free();
} }
$db->free();
}
} }
@ -87,6 +91,7 @@ if ($_POST["mode"] == 'search')
*/ */
$now=gmmktime(); $now=gmmktime();
$html=new Form($db);
llxHeader($langs->trans("SuppliersInovices"),'','EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores'); llxHeader($langs->trans("SuppliersInovices"),'','EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores');
@ -100,163 +105,186 @@ $sql.= " WHERE fac.fk_soc = s.rowid";
if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
if ($socid) if ($socid)
{ {
$sql .= " AND s.rowid = ".$socid; $sql .= " AND s.rowid = ".$socid;
} }
if ($_GET["filtre"]) if ($_GET["filtre"])
{ {
$filtrearr = explode(",", $_GET["filtre"]); $filtrearr = explode(",", $_GET["filtre"]);
foreach ($filtrearr as $fil) foreach ($filtrearr as $fil)
{ {
$filt = explode(":", $fil); $filt = explode(":", $fil);
$sql .= " AND " . $filt[0] . " = " . $filt[1]; $sql .= " AND " . $filt[0] . " = " . $filt[1];
} }
} }
if ($_REQUEST["search_ref"]) if ($_REQUEST["search_ref"])
{ {
$sql .= " AND fac.rowid like '%".addslashes($_REQUEST["search_ref"])."%'"; $sql .= " AND fac.rowid like '%".addslashes($_REQUEST["search_ref"])."%'";
} }
if ($_REQUEST["search_ref_supplier"]) if ($_REQUEST["search_ref_supplier"])
{ {
$sql .= " AND fac.facnumber like '%".addslashes($_REQUEST["search_ref_supplier"])."%'"; $sql .= " AND fac.facnumber like '%".addslashes($_REQUEST["search_ref_supplier"])."%'";
} }
if ($month > 0)
{
if ($year > 0)
$sql.= " AND fac.datef BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
else
$sql.= " AND date_format(fac.datef, '%m') = '$month'";
}
else if ($year > 0)
{
$sql.= " AND fac.datef BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
}
if ($_GET["search_libelle"]) if ($_GET["search_libelle"])
{ {
$sql .= " AND fac.libelle like '%".addslashes($_GET["search_libelle"])."%'"; $sql .= " AND fac.libelle like '%".addslashes($_GET["search_libelle"])."%'";
} }
if ($_GET["search_societe"]) if ($_GET["search_societe"])
{ {
$sql .= " AND s.nom like '%".addslashes($_GET["search_societe"])."%'"; $sql .= " AND s.nom like '%".addslashes($_GET["search_societe"])."%'";
} }
if ($_GET["search_montant_ht"]) if ($_GET["search_montant_ht"])
{ {
$sql .= " AND fac.total_ht = '".addslashes($_GET["search_montant_ht"])."'"; $sql .= " AND fac.total_ht = '".addslashes($_GET["search_montant_ht"])."'";
} }
if ($_GET["search_montant_ttc"]) if ($_GET["search_montant_ttc"])
{ {
$sql .= " AND fac.total_ttc = '".addslashes($_GET["search_montant_ttc"])."'"; $sql .= " AND fac.total_ttc = '".addslashes($_GET["search_montant_ttc"])."'";
} }
$sql .= " ORDER BY $sortfield $sortorder " . $db->plimit( $limit+1, $offset); $sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit( $limit+1, $offset);
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql)
{ {
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
if ($socid) { if ($socid) {
$soc = new Societe($db); $soc = new Societe($db);
$soc->fetch($socid); $soc->fetch($socid);
} }
print_barre_liste($langs->trans("BillsSuppliers").($socid?" $soc->nom":""),$page,"index.php","&amp;socid=$socid",$sortfield,$sortorder,'',$num);
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
print '<table class="liste" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Ref"),"index.php","fac.rowid","&amp;socid=$socid","","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("RefSupplier"),"index.php","facnumber","&amp;socid=$socid","","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Date"),"index.php","fac.datef","&amp;socid=$socid","",'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DateDue"),"index.php","fac.date_lim_reglement","&amp;socid=$socid","",'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),"index.php","fac.libelle","&amp;socid=$socid","","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Company"),"index.php","s.nom","&amp;socid=$socid","","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("AmountHT"),"index.php","fac.total_ht","&amp;socid=$socid","",'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("AmountTTC"),"index.php","fac.total_ttc","&amp;socid=$socid","",'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Status"),"index.php","fk_statut,paye","&amp;socid=$socid","",'align="center"',$sortfield,$sortorder);
print "</tr>\n";
// Lignes des champs de filtre $param='&amp;socid='.$socid;
if ($month) $param.='&amp;month='.$month;
if ($year) $param.='&amp;year=' .$year;
print '<tr class="liste_titre">';
print '<td class="liste_titre" align="left">'; print_barre_liste($langs->trans("BillsSuppliers").($socid?" $soc->nom":""),$page,"index.php",$param,$sortfield,$sortorder,'',$num);
print '<input class="flat" size="6" type="text" name="search_ref" value="'.$_REQUEST["search_ref"].'">'; print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
print '</td>'; print '<table class="liste" width="100%">';
print '<td class="liste_titre" align="left">'; print '<tr class="liste_titre">';
print '<input class="flat" size="6" type="text" name="search_ref_supplier" value="'.$_REQUEST["search_ref_supplier"].'">'; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"fac.rowid","",$param,"",$sortfield,$sortorder);
print '</td>'; print_liste_field_titre($langs->trans("RefSupplier"),$_SERVER["PHP_SELF"],"facnumber","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"fac.datef","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"fac.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"fac.libelle","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"fac.total_ht","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"fac.total_ttc","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye","",$param,'align="center"',$sortfield,$sortorder);
print "</tr>\n";
// Lignes des champs de filtre
print '<tr class="liste_titre">';
print '<td class="liste_titre" align="left">';
print '<input class="flat" size="6" type="text" name="search_ref" value="'.$_REQUEST["search_ref"].'">';
print '</td>';
print '<td class="liste_titre" align="left">';
print '<input class="flat" size="6" type="text" name="search_ref_supplier" value="'.$_REQUEST["search_ref_supplier"].'">';
print '</td>';
print '<td class="liste_titre" colspan="1" align="center">';
print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
//print '&nbsp;'.$langs->trans('Year').': ';
$max_year = date("Y");
$syear = $year;
//if ($syear == '') $syear = date("Y");
$html->select_year($syear,'year',1, '', $max_year);
print '</td>';
print '<td class="liste_titre">&nbsp;</td>'; print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre">&nbsp;</td>'; print '<td class="liste_titre" align="left">';
print '<td class="liste_titre" align="left">'; print '<input class="flat" size="16" type="text" name="search_libelle" value="'.$_GET["search_libelle"].'">';
print '<input class="flat" size="16" type="text" name="search_libelle" value="'.$_GET["search_libelle"].'">'; print '</td>';
print '</td>'; print '<td class="liste_titre" align="left">';
print '<td class="liste_titre" align="left">'; print '<input class="flat" type="text" size="8" name="search_societe" value="'.$_GET["search_societe"].'">';
print '<input class="flat" type="text" size="8" name="search_societe" value="'.$_GET["search_societe"].'">'; print '</td><td class="liste_titre" align="right">';
print '</td><td class="liste_titre" align="right">'; print '<input class="flat" type="text" size="8" name="search_montant_ht" value="'.$_GET["search_montant_ht"].'">';
print '<input class="flat" type="text" size="8" name="search_montant_ht" value="'.$_GET["search_montant_ht"].'">'; print '</td><td class="liste_titre" align="right">';
print '</td><td class="liste_titre" align="right">'; print '<input class="flat" type="text" size="8" name="search_montant_ttc" value="'.$_GET["search_montant_ttc"].'">';
print '<input class="flat" type="text" size="8" name="search_montant_ttc" value="'.$_GET["search_montant_ttc"].'">'; print '</td><td class="liste_titre" colspan="2" align="center">';
print '</td><td class="liste_titre" colspan="2" align="center">'; print '<input type="image" class="liste_titre" align="right" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans("Search").'">';
print '<input type="image" class="liste_titre" align="right" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans("Search").'">'; print '</td>';
print '</td>'; print "</tr>\n";
print "</tr>\n";
$facturestatic=new FactureFournisseur($db); $facturestatic=new FactureFournisseur($db);
$supplierstatic=new Fournisseur($db); $supplierstatic=new Fournisseur($db);
$var=true; $var=true;
$total=0; $total=0;
$total_ttc=0; $total_ttc=0;
while ($i < min($num,$limit)) while ($i < min($num,$limit))
{ {
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$var=!$var; $var=!$var;
print "<tr $bc[$var]>"; print "<tr $bc[$var]>";
print '<td nowrap>'; print '<td nowrap>';
$facturestatic->id=$obj->facid; $facturestatic->id=$obj->facid;
$facturestatic->ref=$obj->ref; $facturestatic->ref=$obj->ref;
$facturestatic->ref_supplier=$obj->facnumber; $facturestatic->ref_supplier=$obj->facnumber;
print $facturestatic->getNomUrl(1); print $facturestatic->getNomUrl(1);
print "</td>\n"; print "</td>\n";
print '<td nowrap>'.dol_trunc($obj->facnumber,10)."</td>"; print '<td nowrap>'.dol_trunc($obj->facnumber,10)."</td>";
print '<td align="center" nowrap="1">'.dol_print_date($obj->datef,'day').'</td>'; print '<td align="center" nowrap="1">'.dol_print_date($obj->datef,'day').'</td>';
print '<td align="center" nowrap="1">'.dol_print_date($obj->date_echeance,'day'); print '<td align="center" nowrap="1">'.dol_print_date($obj->date_echeance,'day');
if (($obj->paye == 0) && ($obj->fk_statut > 0) && $obj->date_echeance < ($now - $conf->facture->fournisseur->warning_delay)) print img_picto($langs->trans("Late"),"warning"); if (($obj->paye == 0) && ($obj->fk_statut > 0) && $obj->date_echeance < ($now - $conf->facture->fournisseur->warning_delay)) print img_picto($langs->trans("Late"),"warning");
print '</td>'; print '</td>';
print '<td>'.dol_trunc($obj->libelle,36).'</td>'; print '<td>'.dol_trunc($obj->libelle,36).'</td>';
print '<td>'; print '<td>';
$supplierstatic->id=$obj->socid; $supplierstatic->id=$obj->socid;
$supplierstatic->nom=$obj->nom; $supplierstatic->nom=$obj->nom;
print $supplierstatic->getNomUrl(1,'',12); print $supplierstatic->getNomUrl(1,'',12);
//print '<a href="'.DOL_URL_ROOT.'/fourn/fiche.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowSupplier"),"company").' '.$obj->nom.'</a</td>'; //print '<a href="'.DOL_URL_ROOT.'/fourn/fiche.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowSupplier"),"company").' '.$obj->nom.'</a</td>';
print '<td align="right">'.price($obj->total_ht).'</td>'; print '<td align="right">'.price($obj->total_ht).'</td>';
print '<td align="right">'.price($obj->total_ttc).'</td>'; print '<td align="right">'.price($obj->total_ttc).'</td>';
$total+=$obj->total_ht; $total+=$obj->total_ht;
$total_ttc+=$obj->total_ttc; $total_ttc+=$obj->total_ttc;
// Affiche statut de la facture // Affiche statut de la facture
print '<td align="right" nowrap="nowrap">'; print '<td align="right" nowrap="nowrap">';
// TODO le montant deja paye obj->am n'est pas definie // TODO le montant deja paye obj->am n'est pas definie
print $facturestatic->LibStatut($obj->paye,$obj->fk_statut,5,$objp->am); print $facturestatic->LibStatut($obj->paye,$obj->fk_statut,5,$objp->am);
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
$i++; $i++;
if ($i == min($num,$limit)) if ($i == min($num,$limit))
{ {
// Print total // Print total
print '<tr class="liste_total">'; print '<tr class="liste_total">';
print '<td class="liste_total" colspan="6" align="left">'.$langs->trans("Total").'</td>'; print '<td class="liste_total" colspan="6" align="left">'.$langs->trans("Total").'</td>';
print '<td class="liste_total" align="right">'.price($total).'</td>'; print '<td class="liste_total" align="right">'.price($total).'</td>';
print '<td class="liste_total" align="right">'.price($total_ttc).'</td>'; print '<td class="liste_total" align="right">'.price($total_ttc).'</td>';
print '<td class="liste_total" align="center">&nbsp;</td>'; print '<td class="liste_total" align="center">&nbsp;</td>';
print "</tr>\n"; print "</tr>\n";
} }
} }
print "</table>\n"; print "</table>\n";
print "</form>\n"; print "</form>\n";
$db->free($resql); $db->free($resql);
} }
else else
{ {
dol_print_error($db); dol_print_error($db);
} }
$db->close(); $db->close();

View File

@ -43,6 +43,11 @@ $sortfield = isset($_GET['sortfield'])?$_GET['sortfield']:$_POST['sortfield'];
$sortorder = isset($_GET['sortorder'])?$_GET['sortorder']:$_POST['sortorder']; $sortorder = isset($_GET['sortorder'])?$_GET['sortorder']:$_POST['sortorder'];
$page=isset($_GET['page'])?$_GET['page']:$_POST['page']; $page=isset($_GET['page'])?$_GET['page']:$_POST['page'];
$limit = $conf->liste_limit;
$offset = $limit * $page ;
if (! $sortorder) $sortorder="DESC";
if (! $sortfield) $sortfield="p.rowid";
// Security check // Security check
$socid=0; $socid=0;
if ($user->societe_id > 0) if ($user->societe_id > 0)
@ -52,6 +57,8 @@ if ($user->societe_id > 0)
} }
/* /*
* Actions * Actions
*/ */
@ -364,7 +371,7 @@ if (! $_GET['action'] && ! $_POST['action'])
if (! $sortorder) $sortorder='DESC'; if (! $sortorder) $sortorder='DESC';
if (! $sortfield) $sortfield='p.datep'; if (! $sortfield) $sortfield='p.datep';
$sql = 'SELECT p.rowid, p.rowid as pid, '.$db->pdate('p.datep').' as dp, p.amount as pamount,'; $sql = 'SELECT p.rowid, p.rowid as pid, p.datep as dp, p.amount as pamount,';
$sql.= ' f.rowid as facid, f.rowid as ref, f.facnumber, f.amount,'; $sql.= ' f.rowid as facid, f.rowid as ref, f.facnumber, f.amount,';
$sql.= ' s.rowid as socid, s.nom,'; $sql.= ' s.rowid as socid, s.nom,';
$sql.= ' c.libelle as paiement_type, p.num_paiement,'; $sql.= ' c.libelle as paiement_type, p.num_paiement,';
@ -378,13 +385,27 @@ if (! $_GET['action'] && ! $_POST['action'])
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe AS s ON s.rowid = f.fk_soc'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe AS s ON s.rowid = f.fk_soc';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank_account as ba ON b.fk_account = ba.rowid'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank_account as ba ON b.fk_account = ba.rowid';
if (!$user->rights->societe->client->voir) $sql .= " WHERE s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; $sql.= ' WHERE 1=1';
if (!$user->rights->societe->client->voir) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
if ($socid) if ($socid)
{ {
$sql .= ' WHERE f.fk_soc = '.$socid; $sql .= ' AND f.fk_soc = '.$socid;
} }
$sql .= ' ORDER BY '.$sortfield.' '.$sortorder; // Search criteria
$sql .= $db->plimit($limit + 1 ,$offset); if ($_REQUEST["search_ref"])
{
$sql .=" AND p.rowid=".$_REQUEST["search_ref"];
}
if ($_REQUEST["search_amount"])
{
$sql .=" AND p.amount=".price2num($_REQUEST["search_amount"]);
}
if ($_REQUEST["search_company"])
{
$sql .=" AND s.nom like '%".addslashes($_REQUEST["search_company"])."%'";
}
$sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($limit + 1 ,$offset);
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql)
@ -393,16 +414,39 @@ if (! $_GET['action'] && ! $_POST['action'])
$i = 0; $i = 0;
$var=True; $var=True;
print_barre_liste($langs->trans('SupplierPayments'), $page, 'paiement.php','',$sortfield,$sortorder,'',$num); $paramlist='';
$paramlist.=($_REQUEST["search_ref"]?"&search_ref=".$_REQUEST["search_ref"]:"");
$paramlist.=($_REQUEST["search_company"]?"&search_company=".$_REQUEST["search_company"]:"");
$paramlist.=($_REQUEST["search_amount"]?"&search_amount=".$_REQUEST["search_amount"]:"");
print_barre_liste($langs->trans('SupplierPayments'), $page, 'paiement.php',$paramlist,$sortfield,$sortorder,'',$num);
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans('RefPayment'),'paiement.php','rowid','','','',$sortfield,$sortorder); print_liste_field_titre($langs->trans('RefPayment'),'paiement.php','p.rowid','',$paramlist,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Date'),'paiement.php','dp','','','align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Date'),'paiement.php','dp','',$paramlist,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('ThirdParty'),'paiement.php','s.nom','','','',$sortfield,$sortorder); print_liste_field_titre($langs->trans('ThirdParty'),'paiement.php','s.nom','',$paramlist,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Type'),'paiement.php','c.libelle','','','',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Type'),'paiement.php','c.libelle','',$paramlist,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Account'),'paiement.php','ba.label','','','',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Account'),'paiement.php','ba.label','',$paramlist,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Amount'),'paiement.php','f.amount','','','align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Amount'),'paiement.php','f.amount','',$paramlist,'align="right"',$sortfield,$sortorder);
//print_liste_field_titre($langs->trans('Invoice'),'paiement.php','facnumber','','','',$sortfield,$sortorder); //print_liste_field_titre($langs->trans('Invoice'),'paiement.php','facnumber','',$paramlist,'',$sortfield,$sortorder);
print "</tr>\n";
// Lines for filters fields
print '<tr class="liste_titre">';
print '<td align="left">';
print '<input class="fat" type="text" size="4" name="search_ref" value="'.$_REQUEST["search_ref"].'">';
print '</td>';
print '<td>&nbsp;</td>';
print '<td align="left">';
print '<input class="fat" type="text" size="6" name="search_company" value="'.$_REQUEST["search_company"].'">';
print '</td>';
print '<td colspan="2">&nbsp;</td>';
print '<td align="right">';
print '<input class="fat" type="text" size="4" name="search_amount" value="'.$_REQUEST["search_amount"].'">';
print '<input type="image" class="liste_titre" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans("Search").'">';
print '</td>';
print "</tr>\n"; print "</tr>\n";
while ($i < min($num,$limit)) while ($i < min($num,$limit))
@ -415,7 +459,7 @@ if (! $_GET['action'] && ! $_POST['action'])
print '<td nowrap="nowrap"><a href="'.DOL_URL_ROOT.'/fourn/paiement/fiche.php?id='.$objp->pid.'">'.img_object($langs->trans('ShowPayment'),'payment').' '.$objp->pid.'</a></td>'; print '<td nowrap="nowrap"><a href="'.DOL_URL_ROOT.'/fourn/paiement/fiche.php?id='.$objp->pid.'">'.img_object($langs->trans('ShowPayment'),'payment').' '.$objp->pid.'</a></td>';
// Date // Date
print '<td nowrap="nowrap" align="center">'.dol_print_date($objp->dp,'day')."</td>\n"; print '<td nowrap="nowrap" align="center">'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n";
print '<td>'; print '<td>';
if ($objp->socid) print '<a href="'.DOL_URL_ROOT.'/soc.php?socid='.$objp->socid.'">'.img_object($langs->trans('ShowCompany'),'company').' '.dol_trunc($objp->nom,32).'</a>'; if ($objp->socid) print '<a href="'.DOL_URL_ROOT.'/soc.php?socid='.$objp->socid.'">'.img_object($langs->trans('ShowCompany'),'company').' '.dol_trunc($objp->nom,32).'</a>';
@ -442,6 +486,7 @@ if (! $_GET['action'] && ! $_POST['action'])
$i++; $i++;
} }
print "</table>"; print "</table>";
print "</form>\n";
} }
else else
{ {

View File

@ -547,10 +547,10 @@ class DoliDb
} }
/** /**
* \brief Formatage (par PHP) d'une date vers format texte pour insertion dans champ date. * \brief Convert (by PHP) a GM Timestamp date into a PHP server TZ to insert into a date field.
* Fonction a utiliser pour generer les INSERT. * Function to use to build INSERT, UPDATE or WHERE predica
* \param param Date TMS a convertir * \param param Date TMS to convert
* \return date Date au format texte YYYYMMDDHHMMSS. * \return string Date in a string YYYYMMDDHHMMSS
*/ */
function idate($param) function idate($param)
{ {

View File

@ -94,13 +94,13 @@ if ($_GET["id"])
if ($month > 0) if ($month > 0)
{ {
if ($year > 0) if ($year > 0)
$sql.= " AND m.datem between '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'"; $sql.= " AND m.datem BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
else else
$sql.= " AND date_format(m.datem, '%m') = '$month'"; $sql.= " AND date_format(m.datem, '%m') = '$month'";
} }
else if ($year > 0) else if ($year > 0)
{ {
$sql.= " AND m.datem between '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'"; $sql.= " AND m.datem BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
} }
if (! empty($search_movment)) if (! empty($search_movment))
{ {