if(!$user->rights->societe->client->voir&&!$socid)$sql.=", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
if(!$user->rights->societe->client->voir&&!$socid)$sql.=", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
if($search_user>0)
{
$sql.=", ".MAIN_DB_PREFIX."element_contact as ec";
$sql.=", ".MAIN_DB_PREFIX."c_type_contact as tc";
}
$sql.=' WHERE c.fk_soc = s.rowid';
$sql.=' WHERE c.fk_soc = s.rowid';
$sql.=' AND c.entity = '.$conf->entity;
$sql.=' AND c.entity = '.$conf->entity;
if($socid)$sql.=' AND s.rowid = '.$socid;
if($socid)$sql.=' AND s.rowid = '.$socid;
...
@@ -114,19 +120,29 @@ if ($viewstatut <> '')
...
@@ -114,19 +120,29 @@ if ($viewstatut <> '')
}
}
if($ordermonth>0)
if($ordermonth>0)
{
{
$sql.=" AND date_format(c.date_valid, '%Y-%m') = '".$orderyear."-".$ordermonth."'";// TODO do not use date_format but a between
if($orderyear>0&&empty($day))
$sql.=" AND c.date_valid BETWEEN '".$db->idate(dol_get_first_day($orderyear,$ordermonth,false))."' AND '".$db->idate(dol_get_last_day($orderyear,$ordermonth,false))."'";
elseif($orderyear>0&&!empty($day))
$sql.=" AND c.date_valid BETWEEN '".$db->idate(dol_mktime(0,0,0,$ordermonth,$day,$orderyear))."' AND '".$db->idate(dol_mktime(23,59,59,$ordermonth,$day,$orderyear))."'";
else
$sql.=" AND date_format(c.date_valid, '%m') = '".$ordermonth."'";
}
}
if($orderyear>0)
elseif($orderyear>0)
{
{
$sql.=" AND date_format(c.date_valid, '%Y') = '".$orderyear."'";
$sql.=" AND c.date_valid BETWEEN '".$db->idate(dol_get_first_day($orderyear,1,false))."' AND '".$db->idate(dol_get_last_day($orderyear,12,false))."'";
}
}
if($deliverymonth>0)
if($deliverymonth>0)
{
{
$sql.=" AND date_format(c.date_livraison, '%Y-%m') = '".$deliveryyear."-".$deliverymonth."'";
if($deliveryyear>0&&empty($day))
$sql.=" AND c.date_livraison BETWEEN '".$db->idate(dol_get_first_day($deliveryyear,$deliverymonth,false))."' AND '".$db->idate(dol_get_last_day($deliveryyear,$deliverymonth,false))."'";
elseif($deliveryyear>0&&!empty($day))
$sql.=" AND c.date_livraison BETWEEN '".$db->idate(dol_mktime(0,0,0,$deliverymonth,$day,$deliveryyear))."' AND '".$db->idate(dol_mktime(23,59,59,$deliverymonth,$day,$deliveryyear))."'";
else
$sql.=" AND date_format(c.date_livraison, '%m') = '".$deliverymonth."'";
}
}
if($deliveryyear>0)
elseif($deliveryyear>0)
{
{
$sql.=" AND date_format(c.date_livraison, '%Y') = '".$deliveryyear."'";
$sql.=" AND c.date_livraison BETWEEN '".$db->idate(dol_get_first_day($deliveryyear,1,false))."' AND '".$db->idate(dol_get_last_day($deliveryyear,12,false))."'";
}
}
if(!empty($snom))
if(!empty($snom))
{
{
...
@@ -136,12 +152,16 @@ if (!empty($sref_client))
...
@@ -136,12 +152,16 @@ if (!empty($sref_client))
{
{
$sql.=' AND c.ref_client LIKE \'%'.$db->escape($sref_client).'%\'';
$sql.=' AND c.ref_client LIKE \'%'.$db->escape($sref_client).'%\'';
}
}
if($search_user>0)
{
$sql.=" AND ec.fk_c_type_contact = tc.rowid AND tc.element='commande' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".$search_user;
else$sql.=' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet as fd ON fd.fk_facture = f.rowid';
else$sql.=' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet as fd ON fd.fk_facture = f.rowid';
if($search_user>0)
if($search_user>0)
{
{
$sql.=", ".MAIN_DB_PREFIX."element_contact as c";
$sql.=", ".MAIN_DB_PREFIX."element_contact as ec";
$sql.=", ".MAIN_DB_PREFIX."c_type_contact as tc";
$sql.=", ".MAIN_DB_PREFIX."c_type_contact as tc";
}
}
$sql.=' WHERE f.fk_soc = s.rowid';
$sql.=' WHERE f.fk_soc = s.rowid';
...
@@ -3304,7 +3304,7 @@ else
...
@@ -3304,7 +3304,7 @@ else
}
}
if($search_user>0)
if($search_user>0)
{
{
$sql.=" AND c.fk_c_type_contact = tc.rowid AND tc.element='propal' AND tc.source='internal' AND c.element_id = f.rowid AND c.fk_socpeople = ".$search_user;
$sql.=" AND ec.fk_c_type_contact = tc.rowid AND tc.element='propal' AND tc.source='internal' AND ec.element_id = f.rowid AND ec.fk_socpeople = ".$search_user;