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

This commit is contained in:
Laurent Destailleur 2014-10-03 03:22:37 +02:00
commit 868809caba
10 changed files with 106 additions and 81 deletions

View File

@ -20,7 +20,11 @@ For users:
- Fix: Extrafield feature select from table should try to translate multiple column when not needed - Fix: Extrafield feature select from table should try to translate multiple column when not needed
- Fix: cents for indian ruppes are calle paisa and paise. - Fix: cents for indian ruppes are calle paisa and paise.
- Fix: Invoices payments may be older than invoices. - Fix: Invoices payments may be older than invoices.
- Fix: Withdrawal total amount is double
- Fix: [ bug #1593 ] Spanish Localtax IRPF not being calculated since 3.6.0 in supplier invoices when adding a line - Fix: [ bug #1593 ] Spanish Localtax IRPF not being calculated since 3.6.0 in supplier invoices when adding a line
- Fix: Web service categorie WDSL declaration is correct
- Fix: ErrorBadValueForParamNotAString was displayed in virtual product if no base price defined
- Fix: Category creation failed and no message output
***** ChangeLog for 3.6 compared to 3.5.* ***** ***** ChangeLog for 3.6 compared to 3.5.* *****
For users: For users:

View File

@ -219,6 +219,10 @@ if (function_exists("ldap_connect"))
$info=$object->_load_ldap_info(); $info=$object->_load_ldap_info();
$dn=$object->_load_ldap_dn($info); $dn=$object->_load_ldap_dn($info);
// Get a gid number for objectclass PosixGroup
if(in_array('posixGroup',$info['objectclass']))
$info['gidNumber'] = $ldap->getNextGroupGid();
$result1=$ldap->delete($dn); // To be sure to delete existing records $result1=$ldap->delete($dn); // To be sure to delete existing records
$result2=$ldap->add($dn,$info,$user); // Now the test $result2=$ldap->add($dn,$info,$user); // Now the test
$result3=$ldap->delete($dn); // Clean what we did $result3=$ldap->delete($dn); // Clean what we did

View File

@ -143,6 +143,8 @@ if ($action == 'add' && $user->rights->categorie->creer)
{ {
$action = 'confirmed'; $action = 'confirmed';
$_POST["addcat"] = ''; $_POST["addcat"] = '';
} else {
setEventMessage($object->error,'errors');
} }
} }
} }

View File

@ -3,6 +3,7 @@
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2010-2014 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2010-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2014 Ferran Marcet <fmarcet@2byte.es>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -1411,7 +1412,7 @@ class BonPrelevement extends CommonObject
fputs($this->file, ' </CstmrDrctDbtInitn>'.$CrLf); fputs($this->file, ' </CstmrDrctDbtInitn>'.$CrLf);
fputs($this->file, '</Document>'.$CrLf); fputs($this->file, '</Document>'.$CrLf);
$sql = "SELECT pl.amount"; /*$sql = "SELECT pl.amount";
$sql.= " FROM"; $sql.= " FROM";
$sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,"; $sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,";
$sql.= " ".MAIN_DB_PREFIX."facture as f,"; $sql.= " ".MAIN_DB_PREFIX."facture as f,";
@ -1437,7 +1438,7 @@ class BonPrelevement extends CommonObject
else else
{ {
$result = -2; $result = -2;
} }*/
} }

View File

@ -300,7 +300,7 @@ if ($id > 0)
* Payments * Payments
*/ */
$sql = "SELECT p.rowid, p.num_paiement, datep as dp, p.amount,"; $sql = "SELECT p.rowid, p.num_paiement, datep as dp, p.amount,";
$sql.= "c.libelle as paiement_type"; $sql.= "c.code as type_code,c.libelle as paiement_type";
$sql.= " FROM ".MAIN_DB_PREFIX."paiementcharge as p"; $sql.= " FROM ".MAIN_DB_PREFIX."paiementcharge as p";
$sql.= ", ".MAIN_DB_PREFIX."c_paiement as c "; $sql.= ", ".MAIN_DB_PREFIX."c_paiement as c ";
$sql.= ", ".MAIN_DB_PREFIX."chargesociales as cs"; $sql.= ", ".MAIN_DB_PREFIX."chargesociales as cs";
@ -333,8 +333,9 @@ if ($id > 0)
print "<tr ".$bc[$var]."><td>"; print "<tr ".$bc[$var]."><td>";
print '<a href="'.DOL_URL_ROOT.'/compta/payment_sc/fiche.php?id='.$objp->rowid.'">'.img_object($langs->trans("Payment"),"payment").' '.$objp->rowid.'</a></td>'; print '<a href="'.DOL_URL_ROOT.'/compta/payment_sc/fiche.php?id='.$objp->rowid.'">'.img_object($langs->trans("Payment"),"payment").' '.$objp->rowid.'</a></td>';
print '<td>'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n"; print '<td>'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n";
print "<td>".$objp->paiement_type.' '.$objp->num_paiement."</td>\n"; $labeltype=$langs->trans("PaymentType".$objp->type_code)!=("PaymentType".$objp->type_code)?$langs->trans("PaymentType".$objp->type_code):$objp->paiement_type;
print '<td align="right">'.price($objp->amount)."</td><td>&nbsp;".$langs->trans("Currency".$conf->currency)."</td>\n"; print "<td>".$labeltype.' '.$objp->num_paiement."</td>\n";
print '<td align="right">'.price($objp->amount)."</td><td>&nbsp;".$langs->trans("Currency".$conf->currency)."</td>\n";
print "</tr>"; print "</tr>";
$totalpaye += $objp->amount; $totalpaye += $objp->amount;
$i++; $i++;

View File

@ -48,6 +48,12 @@ $result = restrictedArea($user, 'societe&fournisseur', $id, '&societe');
$object = new Fournisseur($db); $object = new Fournisseur($db);
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('suppliercard'));
$parameters = array('id' => $id);
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
/* /*
* Action * Action
*/ */
@ -435,34 +441,41 @@ if ($object->fetch($id))
* Barre d'actions * Barre d'actions
*/ */
print '<div class="tabsAction">'; print '<div class="tabsAction">';
if ($user->rights->fournisseur->commande->creer) $parameters = array();
{ $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been
$langs->load("orders"); // modified by hook
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/fiche.php?action=create&socid='.$object->id.'">'.$langs->trans("AddOrder").'</a>'; if (empty($reshook)) {
if ($user->rights->fournisseur->commande->creer)
{
$langs->load("orders");
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/fiche.php?action=create&socid='.$object->id.'">'.$langs->trans("AddOrder").'</a>';
}
if ($user->rights->fournisseur->facture->creer)
{
$langs->load("bills");
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/fiche.php?action=create&socid='.$object->id.'">'.$langs->trans("AddBill").'</a>';
}
// Add action
if (! empty($conf->agenda->enabled) && ! empty($conf->global->MAIN_REPEATTASKONEACHTAB))
{
if ($user->rights->agenda->myactions->create)
{
print '<a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&socid='.$object->id.'">'.$langs->trans("AddAction").'</a>';
}
else
{
print '<a class="butAction" title="'.dol_escape_js($langs->trans("NotAllowed")).'" href="#">'.$langs->trans("AddAction").'</a>';
}
}
print '</div>';
} }
if ($user->rights->fournisseur->facture->creer)
{
$langs->load("bills");
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/fiche.php?action=create&socid='.$object->id.'">'.$langs->trans("AddBill").'</a>';
}
// Add action
if (! empty($conf->agenda->enabled) && ! empty($conf->global->MAIN_REPEATTASKONEACHTAB))
{
if ($user->rights->agenda->myactions->create)
{
print '<a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&socid='.$object->id.'">'.$langs->trans("AddAction").'</a>';
}
else
{
print '<a class="butAction" title="'.dol_escape_js($langs->trans("NotAllowed")).'" href="#">'.$langs->trans("AddAction").'</a>';
}
}
print '</div>';
print '<br>'; print '<br>';
if (! empty($conf->global->MAIN_REPEATCONTACTONEACHTAB)) if (! empty($conf->global->MAIN_REPEATCONTACTONEACHTAB))

View File

@ -1413,6 +1413,7 @@ class Product extends CommonObject
$sql.= " weight, weight_units, length, length_units, surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,"; $sql.= " weight, weight_units, length, length_units, surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,";
$sql.= " accountancy_code_buy, accountancy_code_sell, stock, pmp,"; $sql.= " accountancy_code_buy, accountancy_code_sell, stock, pmp,";
$sql.= " datec, tms, import_key, entity, desiredstock, tobatch"; $sql.= " datec, tms, import_key, entity, desiredstock, tobatch";
$sql.= " ,ref_ext";
$sql.= " FROM ".MAIN_DB_PREFIX."product"; $sql.= " FROM ".MAIN_DB_PREFIX."product";
if ($id) $sql.= " WHERE rowid = ".$this->db->escape($id); if ($id) $sql.= " WHERE rowid = ".$this->db->escape($id);
else else
@ -1487,6 +1488,8 @@ class Product extends CommonObject
$this->date_modification = $obj->tms; $this->date_modification = $obj->tms;
$this->import_key = $obj->import_key; $this->import_key = $obj->import_key;
$this->entity = $obj->entity; $this->entity = $obj->entity;
$this->ref_ext = $obj->ref_ext;
$this->db->free($resql); $this->db->free($resql);

View File

@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
$langs->load("bills"); $langs->load("bills");
$langs->load("products"); $langs->load("products");
$langs->load("main");
$id=GETPOST('id','int'); $id=GETPOST('id','int');
$ref=GETPOST('ref','alpha'); $ref=GETPOST('ref','alpha');
@ -292,13 +293,17 @@ if ($id > 0 || ! empty($ref))
{ {
// Price // Price
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td>'; print '<tr><td>'.$langs->trans("SellingPrice").'</td><td>';
if ($object->price_base_type == 'TTC') if ($object->price_base_type == 'TTC')
{ {
print price($object->price_ttc).' '.$langs->trans($object->price_base_type); print price($object->price_ttc).' '.$langs->trans($object->price_base_type);
} }
else else
{ {
print price($object->price).' '.$langs->trans($object->price_base_type); print price($object->price);
if (!empty($object->price_base_type)) {
print ' '.$langs->trans($object->price_base_type);
}
} }
print '</td></tr>'; print '</td></tr>';
@ -310,7 +315,10 @@ if ($id > 0 || ! empty($ref))
} }
else else
{ {
print price($object->price_min).' '.$langs->trans($object->price_base_type); print price($object->price_min);
if (!empty($object->price_base_type)) {
print ' '.$langs->trans($object->price_base_type);
}
} }
print '</td></tr>'; print '</td></tr>';
} }

View File

@ -64,6 +64,10 @@ if ($action == 'dolibarr2ldap')
$result=$ldap->connect_bind(); $result=$ldap->connect_bind();
$info=$fgroup->_load_ldap_info(); $info=$fgroup->_load_ldap_info();
// Get a gid number for objectclass PosixGroup
if(in_array('posixGroup',$info['objectclass']))
$info['gidNumber'] = $ldap->getNextGroupGid();
$dn=$fgroup->_load_ldap_dn($info); $dn=$fgroup->_load_ldap_dn($info);
$olddn=$dn; // We can say that old dn = dn as we force synchro $olddn=$dn; // We can say that old dn = dn as we force synchro

View File

@ -106,56 +106,41 @@ $server->wsdl->addComplexType(
'tns:categorie' 'tns:categorie'
); );
/* /*
* Tableau des catégories * Image of product
$server->wsdl->addComplexType(
'categories',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('id'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:categorie[]')
),
'tns:categories'
);
*/ */
$server->wsdl->addComplexType(
/* 'PhotosArray',
* Les photos de la catégorie (un tableau indéxé qui contient les images avec leur vignette) 'complexType',
'array',
'sequence',
'',
array(
'image' => array(
'name' => 'image',
'type' => 'tns:image',
'minOccurs' => '0',
'maxOccurs' => 'unbounded'
)
)
);
/*
* An image
*/ */
$server->wsdl->addComplexType( $server->wsdl->addComplexType(
'PhotosArray', 'image',
'complexType', 'complexType',
'array', 'struct',
'', 'all',
'SOAP-ENC:Array', '',
array(), array(
array( 'photo' => array('name'=>'photo','type'=>'xsd:string'),
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:image[]') 'photo_vignette' => array('name'=>'photo_vignette','type'=>'xsd:string'),
), 'imgWidth' => array('name'=>'imgWidth','type'=>'xsd:string'),
'' 'imgHeight' => array('name'=>'imgHeight','type'=>'xsd:string')
); )
);
/*
* Une photo ( nom image / nom_vignette )
*/
$server->wsdl->addComplexType(
'image',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
'photo' => array('name'=>'photo','type'=>'xsd:string'),
'photo_vignette' => array('name'=>'photo_vignette','type'=>'xsd:string'),
'imgWidth' => array('name'=>'imgWidth','type'=>'xsd:string'),
'imgHeight' => array('name'=>'imgHeight','type'=>'xsd:string')
)
);
/* /*
* Retour * Retour