Merge branch '3.7' into bug-1533

This commit is contained in:
Marcos García de La Fuente 2014-12-25 01:26:00 +01:00
commit 1179f722af
14 changed files with 54 additions and 40 deletions

View File

@ -182,6 +182,7 @@ Dolibarr better:
- Fix: Show sender Country on PDF docs when sender Country <> receiver Country
- Fix: [ bug #1624 ] Use lowest buying price for margin when selling with POS
- Fix: [ bug #1749 ] Undefined $mailchimp
- Fix: [ bug #1736 ] Failing supplier Elephant numeration module with some masks
***** ChangeLog for 3.6.1 compared to 3.6.* *****
For users:

View File

@ -678,7 +678,7 @@ if ($action == 'create')
$listofuserid=dol_json_decode($_SESSION['assignedtouser'], true);
}
}
print $form->select_dolusers_forevent(($action=='create'?'add':'update'),'assignedtouser',1);
print $form->select_dolusers_forevent(($action=='create'?'add':'update'), 'assignedtouser', 1, '', 0, '', '', 0, 0, 0, 'AND u.statut != 0');
if (in_array($user->id,array_keys($listofuserid))) print $langs->trans("MyAvailability").': <input id="transparency" type="checkbox" name="transparency"'.(((! isset($_GET['transparency']) && ! isset($_POST['transparency'])) || GETPOST('transparency'))?' checked="checked"':'').'> '.$langs->trans("Busy");
print '</td></tr>';
@ -925,7 +925,7 @@ if ($id > 0)
$listofuserid=dol_json_decode($_SESSION['assignedtouser'], true);
}
}
print $form->select_dolusers_forevent(($action=='create'?'add':'update'),'assignedtouser',1);
print $form->select_dolusers_forevent(($action=='create'?'add':'update'), 'assignedtouser', 1, '', 0, '', '', 0, 0, 0, 'AND u.statut != 0');
if (in_array($user->id,array_keys($listofuserid))) print $langs->trans("MyAvailability").': <input id="transparency" type="checkbox" name="transparency"'.($listofuserid[$user->id]['transparency']?' checked="checked"':'').'">'.$langs->trans("Busy");
print '</td></tr>';

View File

@ -2109,12 +2109,14 @@ if ($action == 'create')
// Create an invoice and classify billed
if ($object->statut == 2) {
if (! empty($conf->facture->enabled) && $user->rights->facture->creer) {
if (! empty($conf->facture->enabled) && $user->rights->facture->creer)
{
print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/compta/facture.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans("AddBill") . '</a></div>';
}
$arraypropal = $object->getInvoiceArrayList();
if (is_array($arraypropal) && count($arraypropal) > 0) {
$arrayofinvoiceforpropal = $object->getInvoiceArrayList();
if ((is_array($arrayofinvoiceforpropal) && count($arrayofinvoiceforpropal) > 0) || ! empty($conf->global->WORKFLOW_PROPAL_CAN_CLASSIFIED_BILLED_WITHOUT_INVOICES))
{
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=classifybilled&amp;socid=' . $object->socid . '">' . $langs->trans("ClassifyBilled") . '</a></div>';
}
}

View File

@ -1987,16 +1987,19 @@ class Propal extends CommonObject
{
$linkedInvoices[] = $objectid[$i];
}
// Cas des factures liees via la commande
// Cas des factures liees par un autre objet (ex: commande)
else
{
{
$this->fetchObjectLinked($objectid[$i],$objecttype);
foreach($this->linkedObjectsIds as $subobjecttype => $subobjectid)
{
$numj=count($subobjectid);
for ($j=0;$j<$numj;$j++)
{
$linkedInvoices[] = $subobjectid[$j];
if ($subobjecttype == 'facture')
{
$linkedInvoices[] = $subobjectid[$j];
}
}
}
}

View File

@ -102,7 +102,7 @@ if ($conf->salaries->enabled)
// ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire
$sql.= " AND s.datev between '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
}
if (preg_match('/^s/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
if (preg_match('/^s\./',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
$result = $db->query($sql);
if ($result)
@ -204,7 +204,7 @@ if ($conf->tax->enabled)
$sql .= " OR (cs.periode IS NULL AND cs.date_ech between '".$db->idate(dol_get_first_day($year))."' AND '".$db->idate(dol_get_last_day($year))."')";
$sql .= ")";
}
if (! preg_match('/^pv/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
if (preg_match('/^cs\./',$sortfield) || preg_match('/^c\./',$sortfield) || preg_match('/^pc\./',$sortfield) || preg_match('/^pct\./',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
//$sql.= $db->plimit($limit+1,$offset);
//print $sql;
@ -295,7 +295,7 @@ if ($conf->tax->enabled)
// ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire
$sql.= " AND pv.datev between '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
}
if (preg_match('/^pv/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
if (preg_match('/^pv\./',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
$result = $db->query($sql);
if ($result)

View File

@ -1,5 +1,6 @@
<?php
/* Copyright (C) 2012-2014 Charles-François BENKE <charles.fr@benke.fr>
* Copyright (C) 2014 Marcos García <marcosgdf@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
* the Free Software Foundation; either version 3 of the License, or
@ -45,7 +46,7 @@ class box_project extends ModeleBoxes
$langs->load("boxes");
$langs->load("projects");
$this->boxlabel="Projet";
$this->boxlabel="Projects";
}
/**
@ -63,13 +64,8 @@ class box_project extends ModeleBoxes
$totalMnt = 0;
$totalnb = 0;
$totalnbTask=0;
include_once(DOL_DOCUMENT_ROOT."/projet/class/project.class.php");
require_once(DOL_DOCUMENT_ROOT."/core/lib/project.lib.php");
$projectstatic=new Project($db);
$textHead = $langs->trans("Projet");
$textHead = $langs->trans("Projects");
$this->info_box_head = array('text' => $textHead, 'limit'=> dol_strlen($textHead));
// list the summary of the orders
@ -91,14 +87,15 @@ class box_project extends ModeleBoxes
$i = 0;
while ($i < $num)
{
$this->info_box_contents[$i][0] = array('td' => 'align="left" width="16"','logo' => 'object_projectpub');
$objp = $db->fetch_object($result);
$projectstatic->fetch($objp->rowid);
$this->info_box_contents[$i][0] = array('td' => 'align="left" width="16"',
'logo' => 'object_project',
'url' => DOL_URL_ROOT."/projet/card.php?id=".$objp->rowid);
$this->info_box_contents[$i][1] = array('td' => 'align="left"',
'text' =>$projectstatic->getNomUrl(1)
);
'text' => $objp->ref,
'url' => DOL_URL_ROOT."/product/card.php?id=".$objp->rowid);
$this->info_box_contents[$i][2] = array('td' => 'align="left"',
'text' => $objp->title

View File

@ -1851,7 +1851,7 @@ abstract class CommonObject
}
}
else
{
{
$sql.= "(fk_source = '".$sourceid."' AND sourcetype = '".$sourcetype."')";
$sql.= " ".$clause." (fk_target = '".$targetid."' AND targettype = '".$targettype."')";
}

View File

@ -784,9 +784,10 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
$sql = "SELECT MAX(".$sqlstring.") as val";
$sql.= " FROM ".MAIN_DB_PREFIX.$table;
$sql.= " WHERE ".$field." LIKE '".$maskLike."'";
$sql.= " AND ".$field." NOT LIKE '%PROV%'";
$sql.= " AND ".$field." NOT LIKE '(PROV%)'";
if ($bentityon) // only if entity enable
$sql.= " AND entity IN (".getEntity($table, 1).")";
if ($where) $sql.=$where;
if ($sqlwhere) $sql.=' AND '.$sqlwhere;

View File

@ -33,13 +33,13 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
{
if ($action == 'edit_extras')
{
$value = (isset($_POST ["options_" . $key]) ? $_POST ["options_" . $key] : $object->array_options ["options_" . $key]);
$value = (isset($_POST["options_" . $key]) ? $_POST["options_" . $key] : $object->array_options["options_" . $key]);
}
else
{
$value = $object->array_options ["options_" . $key];
$value = $object->array_options["options_" . $key];
}
if ($extrafields->attribute_type [$key] == 'separate')
if ($extrafields->attribute_type[$key] == 'separate')
{
print $extrafields->showSeparator($key);
}
@ -47,7 +47,8 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
{
print '<tr><td>';
print '<table width="100%" class="nobordernopadding"><tr><td';
if (! empty($extrafields->attribute_required [$key])) print ' class="fieldrequired"';
//var_dump($action);exit;
if ((! empty($action) && $action != 'view') && ! empty($extrafields->attribute_required[$key])) print ' class="fieldrequired"';
print '>' . $label . '</td>';
//TODO Improve element and rights detection
@ -67,8 +68,8 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
print '<td colspan="5">';
// Convert date into timestamp format
if (in_array($extrafields->attribute_type [$key], array('date','datetime'))) {
$value = isset($_POST ["options_" . $key]) ? dol_mktime($_POST ["options_" . $key . "hour"], $_POST ["options_" . $key . "min"], 0, $_POST ["options_" . $key . "month"], $_POST ["options_" . $key . "day"], $_POST ["options_" . $key . "year"]) : $db->jdate($object->array_options ['options_' . $key]);
if (in_array($extrafields->attribute_type[$key], array('date','datetime'))) {
$value = isset($_POST["options_" . $key]) ? dol_mktime($_POST["options_" . $key . "hour"], $_POST["options_" . $key . "min"], 0, $_POST["options_" . $key . "month"], $_POST["options_" . $key . "day"], $_POST["options_" . $key . "year"]) : $db->jdate($object->array_options['options_' . $key]);
}
//TODO Improve element and rights detection
@ -77,7 +78,7 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
print '<form enctype="multipart/form-data" action="' . $_SERVER["PHP_SELF"] . '" method="post" name="formextra">';
print '<input type="hidden" name="action" value="update_extras">';
print '<input type="hidden" name="attribute" value="' . $key . '">';
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
print '<input type="hidden" name="id" value="' . $object->id . '">';
print $extrafields->showInputField($key, $value);

View File

@ -121,7 +121,13 @@ if ($result)
{
$num = $db->num_rows($result);
$urlparam="&amp;socid=$socid";
$urlparam='';
if ($socid) $urlparam.="&socid=".$socid;
if ($search_ref) $urlparam.="&search_ref=".urlencode($search_ref);
if ($search_company) $urlparam.="&search_company=".urlencode($search_company);
if ($search_desc) $urlparam.="&search_desc=".urlencode($search_desc);
if ($search_status != '' && $search_status > -1) $urlparam.="&search_status=".urlencode($search_status);
print_barre_liste($langs->trans("ListOfInterventions"), $page, $_SERVER['PHP_SELF'], $urlparam, $sortfield, $sortorder, '', $num);
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
@ -193,7 +199,7 @@ if ($result)
print '<td align="right">'.convertSecondToTime($objp->duree).'</td>';
}
print '<td align="right">'.$interventionstatic->LibStatut($objp->fk_statut,5).'</td>';
print '<td>&nbsp;</td>';
print "</tr>\n";
@ -207,7 +213,7 @@ if ($result)
print '<td align="right" class="nowrap liste_total">'.convertSecondToTime($total).'</td><td>&nbsp;</td><td>&nbsp;</td>';
print '</tr>';
}
print '</table>';
print "</form>\n";
$db->free($result);

View File

@ -150,7 +150,7 @@ if ($filter && $filter != -1) // GETPOST('filtre') may be a string
if ($search_ref)
{
if (is_numeric($search_ref)) $sql .= natural_search(array('fac.rowid', 'fac.ref'), $search_ref);// For backward compatibility
if (is_numeric($search_ref)) $sql .= natural_search(array('fac.ref'), $search_ref);
else $sql .= natural_search('fac.ref', $search_ref);
}
if (search_ref_supplier)

View File

@ -22,8 +22,7 @@
*/
/**
* \class Import
* \brief Class to manage imports
* Class to manage imports
*/
class Import
{
@ -313,10 +312,12 @@ class Import
{
if (! $notrigger)
{
/* Not used. This is not a business object. To convert it we must herit from CommonObject
// Call trigger
$result=$this->call_trigger('IMPORT_DELETE',$user);
if ($result < 0) $error++;
if ($result < 0) $error++;
// End call triggers
*/
}
}

View File

@ -1136,6 +1136,8 @@ ALTER TABLE llx_facture_fourn MODIFY COLUMN ref VARCHAR(255);
ALTER TABLE llx_facture_fourn MODIFY COLUMN ref_ext VARCHAR(255);
ALTER TABLE llx_facture_fourn MODIFY COLUMN ref_supplier VARCHAR(255);
UPDATE llx_facture_fourn SET ref = rowid WHERE ref IS NULL or ref = '';
ALTER TABLE llx_facture_rec ADD COLUMN revenuestamp double(24,8) DEFAULT 0;
ALTER TABLE llx_facturedet_rec MODIFY COLUMN tva_tx double(6,3);
ALTER TABLE llx_facturedet_rec ADD COLUMN fk_contract_line integer NULL;

View File

@ -1,6 +1,6 @@
# Dolibarr language file - Source file is en_US - admin
WorkflowSetup=Workflow module setup
WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is opened (you make thing in order you want). You can enabled automatic actions that you are interesting in.
WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is opened (you make thing in order you want). You can activate the automatic actions that you are interesting in.
ThereIsNoWorkflowToModify=There is no workflow you can modify for module you have activated.
descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Create a customer order automatically after a commercial proposal is signed
descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Create a customer invoice automatically after a commercial proposal is signed