Merge branch 'develop' of ssh://git@github.com/Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2012-04-04 17:37:20 +02:00
commit a6bbe1032d
33 changed files with 391 additions and 211 deletions

View File

@ -81,6 +81,7 @@ class modMyModule extends DolibarrModules
// 'models' => 0, // Set this to 1 if module has its own models directory
// 'css' => '/mymodule/css/mymodule.css.php', // Set this to relative path of css if module has its own css file
// 'hooks' => array('hookcontext1','hookcontext2') // Set here all hooks context managed by module
// 'workflow' => array('order' => array('WORKFLOW_ORDER_AUTOCREATE_INVOICE')) // Set here all workflow context managed by module
// );
$this->module_parts = array();

View File

@ -36,11 +36,13 @@ $langs->load("admin");
$langs->load("errors");
$langs->load("interventions");
if (!$user->admin)
accessforbidden();
if (! $user->admin) accessforbidden();
$action = GETPOST('action','alpha');
$value = GETPOST('value','alpha');
$action = GETPOST('action','alpha');
$value = GETPOST('value','alpha');
$label = GETPOST('label','alpha');
$scandir = GETPOST('scandir','alpha');
$type='ficheinter';
/*
@ -146,30 +148,13 @@ if ($action == 'specimen')
if ($action == 'set')
{
$label = GETPOST('label','alpha');
$scandir = GETPOST('scandir','alpha');
$type='ficheinter';
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
$sql.= " VALUES ('".$db->escape($value)."','".$type."',".$conf->entity.", ";
$sql.= ($label?"'".$db->escape($label)."'":'null').", ";
$sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
$sql.= ")";
if ($db->query($sql))
{
}
$ret = addDocumentModel($value, $type, $label, $scandir);
}
if ($action == 'del')
{
$type='ficheinter';
$sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
$sql.= " WHERE nom = '".$db->escape($value)."'";
$sql.= " AND type = '".$type."'";
$sql.= " AND entity = ".$conf->entity;
if ($db->query($sql))
$ret = delDocumentModel($value, $type);
if ($ret > 0)
{
if ($conf->global->FICHEINTER_ADDON_PDF == "$value") dolibarr_del_const($db, 'FICHEINTER_ADDON_PDF',$conf->entity);
}
@ -177,11 +162,6 @@ if ($action == 'del')
if ($action == 'setdoc')
{
$label = GETPOST('label','alpha');
$scandir = GETPOST('scandir','alpha');
$db->begin();
if (dolibarr_set_const($db, "FICHEINTER_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
{
// La constante qui a ete lue en avant du nouveau set
@ -190,28 +170,10 @@ if ($action == 'setdoc')
}
// On active le modele
$type='ficheinter';
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
$sql_del.= " WHERE nom = '".$db->escape($value)."'";
$sql_del.= " AND type = '".$type."'";
$sql_del.= " AND entity = ".$conf->entity;
dol_syslog("fichinter: sql_del=".$sql_del);
$result1=$db->query($sql_del);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
$sql.= " VALUES ('".$db->escape($value)."', '".$type."', ".$conf->entity.", ";
$sql.= ($label?"'".$db->escape($label)."'":'null').", ";
$sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
$sql.= ")";
dol_syslog("fichinter: sql_del=".$sql_del);
$result2=$db->query($sql);
if ($result1 && $result2)
$ret = delDocumentModel($value, $type);
if ($ret > 0)
{
$db->commit();
}
else
{
$db->rollback();
$ret = addDocumentModel($value, $type, $label, $scandir);
}
}
@ -372,9 +334,9 @@ print "</tr>\n";
clearstatcache();
$var=true;
foreach ($conf->file->dol_document_root as $dirroot)
{
$dir = $dirroot . "/core/modules/fichinter/doc/";
foreach ($dirmodels as $reldir)
{
$dir = dol_buildpath($reldir."core/modules/fichinter/doc/");
if (is_dir($dir))
{

View File

@ -37,8 +37,11 @@ $langs->load("errors");
if (! $user->admin) accessforbidden();
$action =GETPOST('action','alpha');
$action = GETPOST('action','alpha');
$value = GETPOST('value','alpha');
$label = GETPOST('label','alpha');
$scandir = GETPOST('scandir','alpha');
$type='propal';
/*
* Actions
@ -183,26 +186,13 @@ if ($action == 'setclassifiedinvoiced')
if ($action == 'set')
{
$label = GETPOST('label','alpha');
$scandir = GETPOST('scandir','alpha');
$type='propal';
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
$sql.= " VALUES ('".$db->escape($value)."','".$type."',".$conf->entity.", ";
$sql.= ($label?"'".$db->escape($label)."'":'null').", ";
$sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
$sql.= ")";
$resql=$db->query($sql);
$ret = addDocumentModel($value, $type, $label, $scandir);
}
else if ($action == 'del')
{
$type='propal';
$sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
$sql.= " WHERE nom = '".$db->escape($value)."'";
$sql.= " AND type = '".$type."'";
$sql.= " AND entity = ".$conf->entity;
if ($db->query($sql))
$ret = delDocumentModel($value, $type);
if ($ret > 0)
{
if ($conf->global->PROPALE_ADDON_PDF == "$value") dolibarr_del_const($db, 'PROPALE_ADDON_PDF',$conf->entity);
}
@ -210,37 +200,16 @@ else if ($action == 'del')
else if ($action == 'setdoc')
{
$label = GETPOST('label','alpha');
$scandir = GETPOST('scandir','alpha');
$db->begin();
if (dolibarr_set_const($db, "PROPALE_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
{
$conf->global->PROPALE_ADDON_PDF = $value;
}
// On active le modele
$type='propal';
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
$sql_del.= " WHERE nom = '".$db->escape($value)."'";
$sql_del.= " AND type = '".$type."'";
$sql_del.= " AND entity = ".$conf->entity;
$result1=$db->query($sql_del);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
$sql.= " VALUES ('".$db->escape($value)."', '".$type."', ".$conf->entity.", ";
$sql.= ($value?"'".$db->escape($label)."'":'null').", ";
$sql.= (! empty($value)?"'".$db->escape($scandir)."'":"null");
$sql.= ")";
$result2=$db->query($sql);
if ($result1 && $result2)
$ret = delDocumentModel($value, $type);
if ($ret > 0)
{
$db->commit();
}
else
{
$db->rollback();
$ret = addDocumentModel($value, $type, $label, $scandir);
}
}

View File

@ -77,10 +77,36 @@ print "</tr>\n";
clearstatcache();
$workflowcodes=array();
if ($conf->propal->enabled && $conf->commande->enabled) $workflowcodes['WORKFLOW_PROPAL_AUTOCREATE_ORDER']='WORKFLOW_PROPAL_AUTOCREATE_ORDER';
//if ($conf->propal->enabled && $conf->facture->enabled) $workflowcodes['WORKFLOW_PROPAL_AUTOCREATE_INVOICE']='WORKFLOW_PROPAL_AUTOCREATE_INVOICE';
//if ($conf->contrat->enabled && $conf->facture->enabled) $workflowcodes['WORKFLOW_CONTRACT_AUTOCREATE_INVOICE']='WORKFLOW_CONTRACT_AUTOCREATE_INVOICE';
if ($conf->commande->enabled && $conf->facture->enabled) $workflowcodes['WORKFLOW_ORDER_AUTOCREATE_INVOICE']='WORKFLOW_ORDER_AUTOCREATE_INVOICE';
$workflow=array(
'order' => array(
'propal' => array('WORKFLOW_PROPAL_AUTOCREATE_ORDER')
),
'invoice' => array (
'order' => array('WORKFLOW_ORDER_AUTOCREATE_INVOICE')
//,'contract' => array('WORKFLOW_CONTRACT_AUTOCREATE_INVOICE')
//, 'propal' => array('WORKFLOW_PROPAL_AUTOCREATE_INVOICE')
)
);
$workflow = array_merge($workflow, $conf->modules_parts['workflow']);
foreach($workflow as $child => $parents)
{
if ($conf->$child->enabled)
{
$langs->Load($child.'@'.$child);
foreach($parents as $parent => $actions)
{
if ($conf->$parent->enabled)
{
foreach($actions as $action)
{
$workflowcodes[$action] = $action;
}
}
}
}
}
if (count($workflowcodes) > 0)
{

View File

@ -192,7 +192,7 @@ if ($action == 'sendallconfirmed' && $confirm == 'yes')
$substitutionarray=array(
'__ID__' => $obj->source_id,
'__EMAIL__' => $obj->email,
'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj->tag.'" style="width:0px;height:0px" border="0"/>',
'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj->tag.'" width="0" height="0" style="width:0px;height:0px" border="0"/>',
'__UNSUSCRIBE__' => '<a href="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-usubscribe.php?tag='.$obj->tag.'&unsuscrib=1" target="_blank"/>'.$langs->trans("MailUnsubcribe").'</a>',
'__LASTNAME__' => $obj->nom,
'__FIRSTNAME__' => $obj->prenom,
@ -257,6 +257,34 @@ if ($action == 'sendallconfirmed' && $confirm == 'yes')
{
dol_print_error($db);
}
else
{
//if cheack read is use then update prospect contact status
if (strpos($message, '__CHECK_READ__') !== false)
{
//Update status communication of thirdparty prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=2 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE rowid=".$obj->rowid.")";
dol_syslog("fiche.php: set prospect thirdparty status sql=".$sql, LOG_DEBUG);
$resql2=$db->query($sql);
if (! $resql2)
{
dol_print_error($db);
}
//Update status communication of contact prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=2 WHERE rowid IN (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX."socpeople AS sc INNER JOIN ".MAIN_DB_PREFIX."mailing_cibles AS mc ON mc.rowid=".$obj->rowid." AND mc.source_type = 'contact' AND mc.source_id = sc.rowid)";
dol_syslog("fiche.php: set prospect contact status sql=".$sql, LOG_DEBUG);
$resql2=$db->query($sql);
if (! $resql2)
{
dol_print_error($db);
}
}
}
//test if CHECK READ change statut prospect contact
}
else
{

View File

@ -401,6 +401,9 @@ class Conf
// For backward compatibility
$this->produit=$this->product;
$this->invoice=$this->facture;
$this->order=$this->commande;
$this->contract=$this->contrat;
// Define menu manager in setup

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2008-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -1121,4 +1121,73 @@ function form_constantes($tableau)
print '</table>';
}
/**
* Add document model used by doc generator
*
* @param string $name Model name
* @param string $type Model type
* @param string $label Model label
* @param string $description Model description
* @return int <0 if KO, >0 if OK
*/
function addDocumentModel($name, $type, $label='', $description='')
{
global $db, $conf;
$db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
$sql.= " VALUES ('".$db->escape($name)."','".$type."',".$conf->entity.", ";
$sql.= ($label?"'".$db->escape($label)."'":'null').", ";
$sql.= (! empty($description)?"'".$db->escape($description)."'":"null");
$sql.= ")";
dol_syslog("admin.lib::addDocumentModel sql=".$sql);
$resql=$db->query($sql);
if ($resql)
{
$db->commit();
return 1;
}
else
{
dol_print_error($db);
$db->rollback();
return -1;
}
}
/**
* Delete document model used by doc generator
*
* @param string $name Model name
* @param string $type Model type
* @return int <0 if KO, >0 if OK
*/
function delDocumentModel($name, $type)
{
global $db, $conf;
$db->begin();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
$sql.= " WHERE nom = '".$db->escape($name)."'";
$sql.= " AND type = '".$type."'";
$sql.= " AND entity = ".$conf->entity;
dol_syslog("admin.lib::delDocumentModel sql=".$sql);
$resql=$db->query($sql);
if ($resql)
{
$db->commit();
return 1;
}
else
{
dol_print_error($db);
$db->rollback();
return -1;
}
}
?>

View File

@ -695,12 +695,14 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass
* @param Translate $outputlangs Object lang
* @param int $posx X
* @param int $posy Y
* @param float $w Width of cells. If 0, they extend up to the right margin of the page.
* @param float $h Cell minimum height. The cell extends automatically if needed.
* @param int $align Align
* @param string $default_font_size Font size
* @param HookManager $hookmanager Hook manager object
* @return void
*/
function pdf_writeLinkedObjects(&$pdf,$object,$outputlangs,$posx,$posy,$align,$default_font_size,$hookmanager=false)
function pdf_writeLinkedObjects(&$pdf,$object,$outputlangs,$posx,$posy,$w,$h,$align,$default_font_size,$hookmanager=false)
{
$linkedobjects = pdf_getLinkedObjects($object,$outputlangs,$hookmanager);
if (! empty($linkedobjects))
@ -710,13 +712,13 @@ function pdf_writeLinkedObjects(&$pdf,$object,$outputlangs,$posx,$posy,$align,$d
$posy+=3;
$pdf->SetXY($posx,$posy);
$pdf->SetFont('','', $default_font_size - 2);
$pdf->MultiCell(100, 3, $linkedobject["ref_title"].' : '.$linkedobject["ref_value"], '', $align);
$pdf->MultiCell($w, $h, $linkedobject["ref_title"].' : '.$linkedobject["ref_value"], '', $align);
if (! empty($linkedobject["date_title"]) && ! empty($linkedobject["date_value"]))
{
$posy+=3;
$pdf->SetXY($posx,$posy);
$pdf->MultiCell(100, 3, $linkedobject["date_title"].' : '.$linkedobject["date_value"], '', $align);
$pdf->MultiCell($w, $h, $linkedobject["date_title"].' : '.$linkedobject["date_value"], '', $align);
}
}
}

View File

@ -653,7 +653,7 @@ class pdf_edison extends ModelePDFCommandes
$posy+=1;
// Show list of linked objects
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'L', $default_font_size, $hookmanager);
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'L', $default_font_size, $hookmanager);
}
/**

View File

@ -930,7 +930,7 @@ class pdf_einstein extends ModelePDFCommandes
$posy+=2;
// Show list of linked objects
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'R', $default_font_size, $hookmanager);
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size, $hookmanager);
if ($showaddress)
{

View File

@ -1125,7 +1125,7 @@ class pdf_crabe extends ModelePDFFactures
$posy+=2;
// Show list of linked objects
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'R', $default_font_size, $hookmanager);
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size, $hookmanager);
if ($showaddress)
{

View File

@ -1003,7 +1003,7 @@ class pdf_oursin extends ModelePDFFactures
$posy+=1;
// Show list of linked objects
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'L', $default_font_size, $hookmanager);
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'L', $default_font_size, $hookmanager);
// Amount in (at tab_top - 1)
$pdf->SetTextColor(0,0,0);

View File

@ -184,13 +184,24 @@ class MailingTargets // This can't be abstract as it is used for some method
dol_syslog(get_class($this)."::add_to_target: mailing ".$j." targets added");
//Update the status to show poelple that don't want to be contacted anymore'
//Update the status to show thirdparty mail that don't want to be contacted anymore'
$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles";
$sql .= " SET statut=3";
$sql .= " WHERE fk_mailing=".$mailing_id." and email in (SELECT email FROM ".MAIN_DB_PREFIX."societe where fk_stcomm=-1)";
$sql .= " WHERE fk_mailing=".$mailing_id." AND email in (SELECT email FROM ".MAIN_DB_PREFIX."societe where fk_stcomm=-1)";
$sql .= " AND source_type='thirdparty'";
$result=$this->db->query($sql);
dol_syslog("MailingTargets::add_to_target: mailing update status to display people that do not want to be contacted sql:".$sql);
dol_syslog(get_class($this)."::add_to_target: mailing update status to display thirdparty mail that do not want to be contacted sql:".$sql);
//Update the status to show contact mail that don't want to be contacted anymore'
$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles";
$sql .= " SET statut=3";
$sql .= " WHERE fk_mailing=".$mailing_id." AND email in (SELECT sc.email FROM ".MAIN_DB_PREFIX."socpeople AS sc ";
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe s ON s.fk_stcomm=-1 AND s.rowid=sc.fk_soc)";
$sql .= " AND source_type='contact'";
$result=$this->db->query($sql);
dol_syslog(get_class($this)."::add_to_target: mailing update status to display contact mail that do not want to be contacted sql:".$sql);
$this->update_nb($mailing_id);

View File

@ -69,7 +69,7 @@ class modWorkflow extends DolibarrModules
$this->dirs = array("/workflow/temp");
// Config pages. Put here list of php page names stored in admmin directory used to setup module.
$this->config_page_url = 'workflow.php';
$this->config_page_url = array('workflow.php');
// Dependencies
$this->depends = array(); // List of modules id that must be enabled if this module is enabled

View File

@ -985,7 +985,7 @@ class pdf_azur extends ModelePDFPropales
$posy+=2;
// Show list of linked objects
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'R', $default_font_size, $hookmanager);
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size, $hookmanager);
if ($showaddress)
{

View File

@ -4,7 +4,7 @@
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -40,7 +40,7 @@ $langs->load("externalsite");
$def = array();
$action = GETPOST("action");
$action = GETPOST('action','alpha');
// Sauvegardes parametres
if ($action == 'update')
@ -49,7 +49,7 @@ if ($action == 'update')
$db->begin();
$exturl = GETPOST("EXTERNALSITE_URL");
$exturl = GETPOST('EXTERNALSITE_URL','alpha');
$i+=dolibarr_set_const($db,'EXTERNALSITE_URL',trim($exturl),'chaine',0,'',$conf->entity);
//$i+=dolibarr_set_const($db,'EXTERNALSITE_LABEL',trim($_POST["EXTERNALSITE_LABEL"]),'chaine',0,'',$conf->entity);
@ -99,7 +99,7 @@ print "</tr>";
print "<tr class=\"impair\">";
print "<td>".$langs->trans("ExternalSiteURL")."</td>";
print "<td><input type=\"text\" class=\"flat\" name=\"EXTERNALSITE_URL\" value=\"". ($_POST["EXTERNALSITE_URL"]?$_POST["EXTERNALSITE_URL"]:$conf->global->EXTERNALSITE_URL) . "\" size=\"40\"></td>";
print "<td><input type=\"text\" class=\"flat\" name=\"EXTERNALSITE_URL\" value=\"". (GETPOST('EXTERNALSITE_URL','alpha')?GETPOST('EXTERNALSITE_URL','alpha'):$conf->global->EXTERNALSITE_URL) . "\" size=\"40\"></td>";
print "<td>http://localhost/myurl/";
print "<br>http://wikipedia.org/";
print "</td>";

125
htdocs/fourn/commande/index.php Normal file → Executable file
View File

@ -2,6 +2,7 @@
/* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2012-2012 Vinicius Nogueira <viniciusvgn@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -147,47 +148,54 @@ else
}
/*
* Commandes brouillons
* Legends / Status
*
* Motivo: Mostrar todos os Status e dar a possibilidade de filtrar apenas um deles
* Reason: Show all Status and give the possibility to filter only one
*/
if ($conf->fournisseur->enabled)
$sql = "SELECT count(cf.rowid), fk_statut";
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
$sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as cf";
if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE cf.fk_soc = s.rowid";
$sql.= " AND s.entity = ".$conf->entity;
if ($user->societe_id) $sql.=' AND cf.fk_soc = '.$user->societe_id;
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
$sql.= " GROUP BY cf.fk_statut";
$resql = $db->query($sql);
if ($resql)
{
$sql = "SELECT c.rowid, c.ref, s.nom, s.rowid as socid";
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c";
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE c.fk_soc = s.rowid";
$sql.= " AND c.entity = ".$conf->entity;
$sql.= " AND c.fk_statut = 0";
if ($socid) $sql.= " AND c.fk_soc = ".$socid;
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
$num = $db->num_rows($resql);
$i = 0;
$resql=$db->query($sql);
if ($resql)
print '<table class="liste" width="100%">';
print '<tr class="liste_titre"><td>'.$langs->trans("Status").'</td>';
print '<td align="right">'.$langs->trans("Nb").'</td>';
print "</tr>\n";
$var=True;
while ($i < $num)
{
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans("DraftOrders").'</td></tr>';
$langs->load("orders");
$num = $db->num_rows($resql);
if ($num)
{
$i = 0;
$var = True;
while ($i < $num)
{
$var=!$var;
$obj = $db->fetch_object($resql);
print "<tr $bc[$var]>";
print '<td nowrap="nowrap">';
print "<a href=\"fiche.php?id=".$obj->rowid."\">".img_object($langs->trans("ShowOrder"),"order").' '.$obj->ref."</a></td>";
print '<td><a href="'.DOL_URL_ROOT.'/fourn/fiche.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dol_trunc($obj->nom,24).'</a></td></tr>';
$i++;
}
}
print "</table><br>";
}
}
$row = $db->fetch_row($resql);
$var=!$var;
print "<tr $bc[$var]>";
print '<td>'.$langs->trans($commandestatic->statuts[$row[1]]).'</td>';
print '<td align="right"><a href="liste.php?statut='.$row[1].'">'.$row[0].' '.$commandestatic->LibStatut($row[1],3).'</a></td>';
print "</tr>\n";
$i++;
}
print "</table><br>";
$db->free($resql);
}
else
{
dol_print_error($db);
}
/*
* List of users allowed
@ -312,11 +320,54 @@ if ($resql)
}
else dol_print_error($db);
/*
* Commandes brouillons
*/
// Drafts position of the box changed to a better visualization
if ($conf->fournisseur->enabled)
{
$sql = "SELECT c.rowid, c.ref, s.nom, s.rowid as socid";
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c";
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE c.fk_soc = s.rowid";
$sql.= " AND c.entity = ".$conf->entity;
$sql.= " AND c.fk_statut = 0";
if ($socid) $sql.= " AND c.fk_soc = ".$socid;
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
$resql=$db->query($sql);
if ($resql)
{
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans("DraftOrders").'</td></tr>';
$langs->load("orders");
$num = $db->num_rows($resql);
if ($num)
{
$i = 0;
$var = True;
while ($i < $num)
{
$var=!$var;
$obj = $db->fetch_object($resql);
print "<tr $bc[$var]>";
print '<td nowrap="nowrap">';
print "<a href=\"fiche.php?id=".$obj->rowid."\">".img_object($langs->trans("ShowOrder"),"order").' '.$obj->ref."</a></td>";
print '<td><a href="'.DOL_URL_ROOT.'/fourn/fiche.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dol_trunc($obj->nom,24).'</a></td></tr>';
$i++;
}
}
print "</table><br>";
}
}
/*
* Orders to process
*/
/*
/*
$sql = "SELECT c.rowid, c.ref, c.fk_statut, s.nom, s.rowid as socid";
$sql.=" FROM ".MAIN_DB_PREFIX."commande_fournisseur as c";
$sql.= ", ".MAIN_DB_PREFIX."societe as s";

View File

@ -34,8 +34,8 @@ if (!$user->admin) accessforbidden();
$def = array();
$lastftpentry=0;
$action = GETPOST("action");
$entry = GETPOST("numero_entry");
$action = GETPOST('action','alpha');
$entry = GETPOST('numero_entry','alpha');
// Positionne la variable pour le nombre de rss externes
$sql ="select MAX(name) as name from ".MAIN_DB_PREFIX."const";
@ -52,7 +52,7 @@ else
dol_print_error($db);
}
if ($action == 'add' || GETPOST("modify"))
if ($action == 'add' || GETPOST('modify','alpha'))
{
$ftp_name = "FTP_NAME_" . $entry;// $_POST["numero_entry"];
$ftp_server = "FTP_SERVER_" . $entry; //$_POST["numero_entry"];
@ -60,13 +60,13 @@ if ($action == 'add' || GETPOST("modify"))
$error=0;
$mesg='';
if (! GETPOST("$ftp_name"))
if (! GETPOST("$ftp_name",'alpha'))
{
$error=1;
$mesg.='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Label")).'</div>';
}
if (! GETPOST("$ftp_server"))
if (! GETPOST("$ftp_server",'alpha'))
{
$error=1;
$mesg.='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Server")).'</div>';
@ -81,11 +81,11 @@ if ($action == 'add' || GETPOST("modify"))
$db->begin();
$result1=dolibarr_set_const($db, "FTP_PORT_" . $entry,GETPOST($ftp_port),'chaine',0,'',$conf->entity);
if ($result1) $result2=dolibarr_set_const($db, "FTP_SERVER_" . $entry, GETPOST($ftp_server),'chaine',0,'',$conf->entity);
if ($result2) $result3=dolibarr_set_const($db, "FTP_USER_" . $entry,GETPOST($ftp_user),'chaine',0,'',$conf->entity);
if ($result3) $result4=dolibarr_set_const($db, "FTP_PASSWORD_" . $entry,GETPOST($ftp_password),'chaine',0,'',$conf->entity);
if ($result4) $result5=dolibarr_set_const($db, "FTP_NAME_" . $entry,GETPOST($ftp_name),'chaine',0,'',$conf->entity);
$result1=dolibarr_set_const($db, "FTP_PORT_" . $entry,GETPOST($ftp_port,'alpha'),'chaine',0,'',$conf->entity);
if ($result1) $result2=dolibarr_set_const($db, "FTP_SERVER_" . $entry, GETPOST($ftp_server,'alpha'),'chaine',0,'',$conf->entity);
if ($result2) $result3=dolibarr_set_const($db, "FTP_USER_" . $entry,GETPOST($ftp_user,'alpha'),'chaine',0,'',$conf->entity);
if ($result3) $result4=dolibarr_set_const($db, "FTP_PASSWORD_" . $entry,GETPOST($ftp_password,'alpha'),'chaine',0,'',$conf->entity);
if ($result4) $result5=dolibarr_set_const($db, "FTP_NAME_" . $entry,GETPOST($ftp_name,'alpha'),'chaine',0,'',$conf->entity);
if ($result1 && $result2 && $result3 && $result4 && $result5)
{
@ -102,7 +102,7 @@ if ($action == 'add' || GETPOST("modify"))
}
}
if ($_POST["delete"])
if (GETPOST('delete','alpha'))
{
if($entry)
{

View File

@ -216,6 +216,7 @@ OfficialWebSiteFr=lloc web oficial francòfon
OfficialWiki=Wiki Dolibarr
OfficialDemo=Demo en línia Dolibarr
OfficialMarketPlace=Lloc oficial de mòduls complementaris i extensions
OfficialWebHostingService=Servei oficial d'allotjament (SaaS)
ForDocumentationSeeWiki=Per a la documentació d'usuari, desenvolupador o Preguntes Freqüents (FAQ), consulteu el wiki Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
ForAnswersSeeForum=Per altres qüestions o realitzar les seves pròpies consultes, pot utilitzar el fòrum Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
HelpCenterDesc1=Aquesta aplicació, independent de Dolibarr, us permet ajudar a obtenir un servei de suport de Dolibarr.

View File

@ -216,6 +216,7 @@ OfficialWebSiteFr=sitio web oficial habla francesa
OfficialWiki=Wiki documentación Dolibarr
OfficialDemo=Demo en línea Dolibarr
OfficialMarketPlace=Sitio oficial de módulos complementarios y extensiones
OfficialWebHostingService=Servicio oficial de alojamiento (SaaS)
ForDocumentationSeeWiki=Para la documentación de usuario, desarrollador o Preguntas Frecuentes (FAQ), consulte el wiki Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
ForAnswersSeeForum=Para otras cuestiones o realizar sus propias consultas, puede utilizar el foro Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
HelpCenterDesc1=Esta aplicación, independiente de Dolibarr, le permite ayudarle a obtener un servicio de soporte de Dolibarr.

2
htdocs/langs/pt_BR/banks.lang Normal file → Executable file
View File

@ -12,7 +12,7 @@ BankAccounts=Contas Bancarias
AccountRef=Ref. Conta Financeira
AccountLabel=Etiqueta da Conta Financeira
CashAccount=Conta Caixa/Efetivo
CashAccounts=Contas Caixa/Efecivo
CashAccounts=Contas Caixa/Efetivo
MainAccount=Conta Principal
CurrentAccount=Conta Corrente
CurrentAccounts=Contas Correntes

3
htdocs/langs/pt_BR/bills.lang Normal file → Executable file
View File

@ -1,4 +1,5 @@
# Dolibarr language file - pt_BR rev. 0.0 - bills
# 2012 Vinícius Nogueira <viniciusvgn@gmail.com>
CHARSET=UTF-8
Bill=Fatura
Bills=Faturas
@ -356,6 +357,8 @@ ShowUnpayedAll=Ver todos os não remunerados
ShowUnpayedLateOnly=Mostrar apenas os não remunerados
PaymentInvoiceRef=Pagamento Fatura %s
ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Não é possível excluir pagamento de uma Fatura fechada.
CustomerBillsUnpaid=Faturas de Clientes Pendentes de Cobrança
BillsCustomersUnpaid=Faturas de Clientes Pendentes de Cobrança
# oursin PDF model
Of=de

2
htdocs/langs/pt_BR/commercial.lang Normal file → Executable file
View File

@ -76,6 +76,8 @@ ActionAC_REL=Lembrete fatura por correio
ActionAC_CLO=Fechar
ActionAC_EMAILING=Envio mailing massivo
ActionAC_COM=Envio Pedido por Correio
ActionAC_OTH=Outro
ActionAC_SHIP=Enviar Por E-Mail
Stats=Estatisticas de Venda
CAOrder=Ordem CA
FromTo=A partir de %s até %s

View File

@ -153,7 +153,11 @@ DiscountNone=Nenhuma
Supplier=Fornecedor
CompanyList=Lista de Empresas
AddContact=Criar Contato
NewContactAddress=Novo Contato/Endereço
Contact=Contato
AddContactAddress=Novo Contato/Endereço
ListOfContacts=Lista de Contatos/Endereços
ListOfContactsAddresses=Lista de Contatos/Endereços
NoContactDefined=Nenhum contato definido para este fornecedor
DefaultContact=Contato por Padrao
AddCompany=Criar Empresa
@ -174,7 +178,6 @@ ThisIsModuleRules=Esta é a regra para este módulo
LastProspect=último Cliente Potencial
ProspectToContact=Cliente Potencial a Contactar
CompanyDeleted=A Empresa "%s" foi Eliminada
ListOfContacts=Lista de Contatos
ListOfProspectsContacts=Lista de Contatos Clientes Potenciais
ListOfCustomersContacts=Lista de Contatos Clientes
ListOfSuppliersContacts=Lista de Contatos Fornecedores
@ -213,7 +216,7 @@ Staff=Empregados
ProspectLevelShort=Cli. Potenc.
ProspectLevel=Cliente Potencial
ContactPrivate=Privado
ContactPublic=Partilhado
ContactPublic=Compartilhado
ContactVisibility=Visibilidade
OthersNotLinkedToThirdParty=Outros, não associado a um Fornecedor
ProspectStatus=Estado cliente potencial

18
htdocs/langs/pt_BR/main.lang Normal file → Executable file
View File

@ -158,7 +158,7 @@ Number=Número
Numero=Número
Limit=Límite
Limits=Limites
DevelopmentTeam=Equipa de Desenvolvimento
DevelopmentTeam=Equipe de Desenvolvimento
Logout=Sair
Connection=Login
Setup=Configuração
@ -175,7 +175,7 @@ DateCreation=Data de Criação
DateModification=Data Modificação
DateModificationShort=Data Modif.
DateLastModification=Data última Modificação
DateValidation=Vata Validação
DateValidation=Data Validação
DateClosing=Data de Encerramento
DateDue=Data Vencimento
DateValue=Data Valor
@ -428,13 +428,13 @@ RebuildDoc=Recriar o doc
Entity=Entidade
Entities=Entidadees
EventLogs=Log
CustomerPreview=Historial Cliente
SupplierPreview=Historial Fornecedor
AccountancyPreview=Historial Contabilidade
ShowCustomerPreview=Ver Historial Cliente
ShowSupplierPreview=Ver Historial Fornecedor
ShowProspectPreview=Ver Historial Cliente Potencial
ShowAccountancyPreview=Ver Historial Contabilidade
CustomerPreview=Historico Cliente
SupplierPreview=Historico Fornecedor
AccountancyPreview=Historico Contabilidade
ShowCustomerPreview=Ver Historico Cliente
ShowSupplierPreview=Ver Historico Fornecedor
ShowProspectPreview=Ver Historico Cliente Potencial
ShowAccountancyPreview=Ver Historico Contabilidade
RefCustomer=Ref. Cliente
Currency=Moeda
InfoAdmin=Informação para os administradores

6
htdocs/langs/pt_BR/orders.lang Normal file → Executable file
View File

@ -1,6 +1,8 @@
# Dolibarr language file - pt_BR rev. 0.0 - orders
# 2012 Vinícius Nogueira <viniciusvgn@gmail.com>
CHARSET=UTF-8
OrdersArea=Area de Pedidos de Clientes
OrdersArea=Área de Pedidos de Clientes
SuppliersOrdersArea=Área de Pedidos a Fornecedores
OrderCard=Ficha Pedido
Order=Pedido
@ -59,7 +61,7 @@ ShipProduct=Enviar Produto
Discount=Desconto
CreateOrder=Criar Pedido
RefuseOrder=Rejeitar o Pedido
ApproveOrder=Aceptar o Pedido
ApproveOrder=Aceitar o Pedido
ValidateOrder=Confirmar o Pedido
DeleteOrder=Eliminar o pedido
CancelOrder=Anular o Pedido

45
htdocs/langs/pt_BR/other.lang Normal file → Executable file
View File

@ -1,4 +1,5 @@
# Dolibarr language file - pt_BR rev. 0.0 - other
# 2012 Vinícius Nogueira <viniciusvgn@gmail.com>
CHARSET=UTF-8
SecurityCode=Código Segurança
Calendar=Calendário
@ -18,10 +19,10 @@ AttachANewFile=Adicionar Novo Arquivo/Documento
LinkedObject=Arquivo Anexo
Miscellanous=Diversos
NbOfActiveNotifications=Número Notificações
PredefinedMailContentSendInvoice=Le juntamos a fatura __FACREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__
PredefinedMailContentSendInvoiceReminder=Ponemos na sua conhecimento que a fatura __FACREF__ parece não estar paga. Se a juntamos pois, para que possa revisarla.\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__
PredefinedMailContentSendProposal=Anexo segue proposta solicitada de codigo__PROPREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__
PredefinedMailContentSendOrder=Anexo segue o pedido solicitado de codigo __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__
PredefinedMailContentSendInvoice=Le juntamos a fatura __FACREF__\n\nCordialmente\n\n
PredefinedMailContentSendInvoiceReminder=Ponemos na sua conhecimento que a fatura __FACREF__ parece não estar paga. Se a juntamos pois, para que possa revisarla.\n\nCordialmente\n\n
PredefinedMailContentSendProposal=Anexo segue proposta solicitada de codigo__PROPREF__\n\nCordialmente\n\n
PredefinedMailContentSendOrder=Anexo segue o pedido solicitado de codigo __ORDERREF__\n\nCordialmente\n\n
DemoDesc=Dolibarr não é um ERP monolítico, mas está composto de módulos funcionais simples e opcionais. uma demonstração que inclua todos estes módulos não tem sentido, já que nunca mais todos Os módulos são utilizados. De todas maneras existe disponíveis muitos perfis de demonstração
ChooseYourDemoProfil=quer ver o perfil de demonstração que melhor corresponda e a sua Atividade...
DemoFundation=Administração de Membros de uma associação
@ -64,7 +65,7 @@ SizeUnitdm=dm
SizeUnitcm=cm
SizeUnitmm=mm
BugTracker=Incidências
SendNewPasswordDesc=Este formulário permite enviar uma Nova senha. Se enviará à e-mail do usuário<br>a modificação da senha não será efetiva até que o usario faça click ao link de confirmação incluido neste e-mail.<br>Supervise a sua correio.
SendNewPasswordDesc=Este formulário permite enviar uma Nova senha. Será enviado ao e-mail do usuário<br>a modificação da senha não será efetiva até que o usuário click no link de confirmação neste e-mail.<br>Verifique sua caixa de correio.
BackToLoginPage=Voltar e a página de login
AuthenticationDoesNotAllowSendNewPassword=o modo de autentificação de Dolibarr está configurado como "<b>%s</b>".<br>neste modo Dolibarr não pode conhecer nem modificar a sua senha<br>Contacte com a sua administrador para conhecer as modalidades de alterar.
EnableGDLibraryDesc=deve ativar o instalar a Bibliotéca GD na sua PHP para poder ativar esta Opção
@ -112,23 +113,23 @@ ErrorWebcalLoginNotDefined=o login Webcalendar associado e a sua usuário Doliba
ErrorPhenixLoginNotDefined=o login Phenix associado e a sua conta Dolibarrr <b>%s</b> não está definido
##### Calendar common #####=
AddCalendarEntry=Adicionar entrada ao calendário
NewCompanyToDolibarr=Empresa %s inserida em Dolibarr
ContractValidatedInDolibarr=Contrato %s validado em Dolibarr
ContractCanceledInDolibarr=Contrato %s anulado em Dolibarr
ContractClosedInDolibarr=Contrato %s encerrado no Dolibarr
PropalClosedSignedInDolibarr=Orçamento %s assinado no Dolibarr
PropalClosedRefusedInDolibarr=Orçamento %s rejeitado no Dolibarr
PropalValidatedInDolibarr=orçamento %s validado em Dolibarr
InvoiceValidatedInDolibarr=Fatura %s validada em Dolibarr
InvoicePayedInDolibarr=Fatura %s pasada a paga em Dolibarr
InvoiceCanceledInDolibarr=Fatura %s anulada em Dolibarr
PaymentDoneInDolibarr=pagamento %s realizado em Dolibarr
CustomerPaymentDoneInDolibarr=pagamento de cliente %s em Dolibarr
SupplierPaymentDoneInDolibarr=pagamento a fornecedor %s em Dolibarr
MemberValidatedInDolibarr=membro %s validado em Dolibarr
MemberResiliatedInDolibarr=membro %s dado de baixa em Dolibarr
MemberDeletedInDolibarr=membro %s eliminado de Dolibarr
MemberSubscriptionAddedInDolibarr=Subscrição do membro % adicionada em Dolibarr
NewCompanyToDolibarr=Empresa %s Cadastrada
ContractValidatedInDolibarr=Contrato %s Confirmado
ContractCanceledInDolibarr=Contrato %s Cancelado
ContractClosedInDolibarr=Contrato %s Encerrado
PropalClosedSignedInDolibarr=Orçamento %s Assinado
PropalClosedRefusedInDolibarr=Orçamento %s rejeitado
PropalValidatedInDolibarr=Orçamento %s Validado
InvoiceValidatedInDolibarr=Fatura %s Confirmada
InvoicePayedInDolibarr=Fatura %s recebeu status de PAGA
InvoiceCanceledInDolibarr=Fatura %s Cancelada
PaymentDoneInDolibarr=Pagamento %s Realizado
CustomerPaymentDoneInDolibarr=Pagamento do cliente %s
SupplierPaymentDoneInDolibarr=Pagamento a fornecedor %s
MemberValidatedInDolibarr=Membro %s Confirmado
MemberResiliatedInDolibarr=Membro %s Baixado
MemberDeletedInDolibarr=Membro %s Excluido
MemberSubscriptionAddedInDolibarr=Inscrição do membro % adicionada
##### Export #####=
ExportsArea=Área de Exportações
AvailableFormats=Formatos disponíveis

1
htdocs/langs/pt_BR/products.lang Normal file → Executable file
View File

@ -1,4 +1,5 @@
# Dolibarr language file - pt_BR rev. 0.0 - products
# 2012 Vinícius Nogueira <viniciusvgn@gmail.com>
CHARSET=UTF-8
ProductRef=Ref. Produto
ProductLabel=Nome do Produto

3
htdocs/langs/pt_BR/projects.lang Normal file → Executable file
View File

@ -2,7 +2,8 @@
CHARSET=UTF-8
Project=Projeto
Projects=Projetos
SharedProject=Projeto Partilhado
SharedProject=Projeto Compartilhado
PrivateProject=Contatos do Projeto
Myprojects=Os Meus Projetos
ProjectsArea=Área de Projetos
NewProject=Novo Projeto

View File

@ -155,13 +155,15 @@ if ($format == 'ical' || $format == 'vcal')
// Ajout directives pour resoudre bug IE
//header('Cache-Control: Public, must-revalidate');
//header('Pragma: public');
if ($cachedelay) header('Cache-Control: max-age='.$cachedelay.', private, must-revalidate');
else header('Cache-Control: private, must-revalidate');
// Clean parameters
$outputfile=$conf->agenda->dir_temp.'/'.$filename;
$result=readfile($outputfile);
if (! $result) print 'File '.$outputfile.' was empty.';
// header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=agenda&file='.urlencode($filename));
//header("Location: ".DOL_URL_ROOT.'/document.php?modulepart=agenda&file='.urlencode($filename));
exit;
}
else

View File

@ -41,13 +41,23 @@ if ($id!='')
dol_syslog("public/emailing/mailing-read.php : Mail read : ".$sql, LOG_DEBUG);
$resql=$db->query($sql);
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=2 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag='".$id."')";
dol_syslog("public/emailing/mailing-read.php : Mail read : ".$sql, LOG_DEBUG);
//Update status communication of thirdparty prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=3 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag='".$id."' AND source_type='thirdparty' AND source_id is not null)";
dol_syslog("public/emailing/mailing-read.php : Mail read thirdparty : ".$sql, LOG_DEBUG);
$resql=$db->query($sql);
//Update status communication of contact prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=3 WHERE rowid IN (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX."socpeople AS sc INNER JOIN ".MAIN_DB_PREFIX."mailing_cibles AS mc ON mc.tag = '".$id."' AND mc.source_type = 'contact' AND mc.source_id = sc.rowid)";
dol_syslog("public/emailing/mailing-read.php : Mail read contact : ".$sql, LOG_DEBUG);
$resql=$db->query($sql);
}
$db->close();
?>

View File

@ -20,7 +20,7 @@
/**
* \file scripts/emailings/mailing-read.php
* \file scripts/emailings/mailing-usubscribe.php
* \ingroup mailing
* \brief Script use to update unsubcribe contact to prospect mailing list
*/
@ -45,13 +45,19 @@ if (($id!='') && ($unsuscrib=='1'))
//Udate status of mail in Destinaries maling list
$statut='3';
$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles SET statut=".$statut." WHERE tag='".$id."'";
dol_syslog("public/emailing/mailing-read.php : Mail unsubcribe : ".$sql, LOG_DEBUG);
dol_syslog("public/emailing/mailing-usubscribe.php : Mail unsubcribe : ".$sql, LOG_DEBUG);
$resql=$db->query($sql);
//Update status communication of prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=-1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag='".$id."' AND source_type='thirdparty')";
dol_syslog("public/emailing/mailing-read.php : Mail unsubcribe : ".$sql, LOG_DEBUG);
//Update status communication of thirdparty prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=-1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag='".$id."' AND source_type='thirdparty' AND source_id is not null)";
dol_syslog("public/emailing/mailing-unsubscribe.php : Mail unsubcribe thirdparty : ".$sql, LOG_DEBUG);
$resql=$db->query($sql);
//Update status communication of contact prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=-1 WHERE rowid IN (SELECT fk_soc FROM ".MAIN_DB_PREFIX."socpeople AS sc INNER JOIN ".MAIN_DB_PREFIX."mailing_cibles AS mc ON mc.tag = '".$id."' AND mc.source_type = 'contact' AND mc.source_id = sc.rowid)";
dol_syslog("public/emailing/mailing-unsubscribe.php : Mail unsubcribe contact : ".$sql, LOG_DEBUG);
$resql=$db->query($sql);

View File

@ -136,7 +136,7 @@ if ($resql)
$substitutionarray=array(
'__ID__' => $obj->source_id,
'__EMAIL__' => $obj->email,
'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj->tag.'" style="width:0px;height:0px" border="0"/>',
'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj->tag.'" width="0" height="0" style="width:0px;height:0px" border="0"/>',
'__UNSUSCRIBE__' => '<a href="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-usubscribe.php?tag='.$obj->tag.'&unsuscrib=1" target="_blank"/>'.$langs->trans("MailUnsubcribe").'</a>',
'__LASTNAME__' => $obj->lastname,
'__FIRSTNAME__' => $obj->firstname,
@ -199,6 +199,31 @@ if ($resql)
{
dol_print_error($db);
}
else
{
//if cheack read is use then update prospect contact status
if (strpos($message, '__CHECK_READ__') !== false)
{
//Update status communication of thirdparty prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=2 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE rowid=".$obj->rowid.")";
dol_syslog("fiche.php: set prospect thirdparty status sql=".$sql, LOG_DEBUG);
$resql2=$db->query($sql);
if (! $resql2)
{
dol_print_error($db);
}
//Update status communication of contact prospect
$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=2 WHERE rowid IN (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX."socpeople AS sc INNER JOIN ".MAIN_DB_PREFIX."mailing_cibles AS mc ON mc.rowid=".$obj->rowid." AND mc.source_type = 'contact' AND mc.source_id = sc.rowid)";
dol_syslog("fiche.php: set prospect contact status sql=".$sql, LOG_DEBUG);
$resql2=$db->query($sql);
if (! $resql2)
{
dol_print_error($db);
}
}
}
}
else
{