forked from Wavyzz/dolibarr
Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2fdc1a9883 | ||
|
|
817920f282 | ||
|
|
c3f07dd2e0 | ||
|
|
430f833222 | ||
|
|
e165dce908 | ||
|
|
82651cd920 | ||
|
|
9e397206d3 | ||
|
|
583ea05567 | ||
|
|
06fe172669 | ||
|
|
8deb2eaa0c | ||
|
|
4c8664b297 | ||
|
|
2d88b69cf6 | ||
|
|
77341470e1 | ||
|
|
af93fc7484 | ||
|
|
1bac3a0ccf | ||
|
|
92a3faeaf7 | ||
|
|
d15c52db3b | ||
|
|
2dbb82fc76 | ||
|
|
12690666e2 | ||
|
|
a0bc26a923 | ||
|
|
779d7e9689 | ||
|
|
d62118dca8 | ||
|
|
a6996169d6 | ||
|
|
cdbb79a26c | ||
|
|
5655856ca5 | ||
|
|
7838b75ec9 | ||
|
|
c94689e9a9 | ||
|
|
f7d5172a74 | ||
|
|
ead2a764c7 | ||
|
|
2015268b7e | ||
|
|
e4afd4af00 | ||
|
|
847189805a | ||
|
|
252335318f | ||
|
|
e285b42a18 | ||
|
|
4d72573484 | ||
|
|
cbf12b779d | ||
|
|
7406d3c7ee | ||
|
|
bcbbcc1c66 | ||
|
|
e66847d5c3 | ||
|
|
dd8ef47a25 | ||
|
|
2f2b0630e2 | ||
|
|
26e3593c98 | ||
|
|
c88f5c560c | ||
|
|
04466651d6 | ||
|
|
6b4cecd0a8 | ||
|
|
eec10660ab | ||
|
|
4d560a8e03 | ||
|
|
ff2b2e5b64 | ||
|
|
8d1c8e2da7 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,6 +12,7 @@ dolibarr_install.log
|
||||
upgrade.log
|
||||
doxygen_warnings.log
|
||||
/.project
|
||||
/.vscode
|
||||
.DS_Store
|
||||
.idea
|
||||
*.iml
|
||||
|
||||
31
ChangeLog
31
ChangeLog
@@ -2,6 +2,37 @@
|
||||
English Dolibarr ChangeLog
|
||||
--------------------------------------------------------------
|
||||
|
||||
***** ChangeLog for 6.0.8 compared to 6.0.7 *****
|
||||
FIX: #8762
|
||||
FIX: #9032
|
||||
FIX: case when we valid form with keyboard
|
||||
FIX: clause must not be there
|
||||
FIX: dol_delete_file must work in a context without db handler loaded
|
||||
FIX: entity test must be on product_fourn_price table and not product table
|
||||
FIX: Fetch shipping will now fetch project id
|
||||
FIX: $fk_account is always empty, must be $soc->fk_account
|
||||
FIX: getEntity project and not projet
|
||||
FIX: If we enable 3 steps for supplier order approbation, we must no…
|
||||
FIX: If we enable 3 steps for supplier order approbation, we must not delete all fourn rights def.
|
||||
FIX: Keep supplier proposal price for supplier order
|
||||
FIX: langs fr
|
||||
FIX: missing filters during ordering
|
||||
FIX: missing filters during reordering
|
||||
FIX: need to filter on aa.entity for same accounting accounts available in several entities
|
||||
FIX: page must always be 0 when we search
|
||||
FIX: page must always be 0 when we search (to avoid case : when we're on page 3 and we're looking for a precise thirdparty, we stay on page 3 and nothing's displaied)
|
||||
FIX: PDF address: handle when contact thirdparty different from document thirdparty
|
||||
FIX: propal: correctly preset project when creating with origin/originid
|
||||
FIX: pu_ht_devise was not converted to numeric so decimals were lost
|
||||
FIX: pu_ht_devise was not converted to numeric so decimals were lost when calculating total_ht_devise
|
||||
FIX: remain to pay for credit note was wrong on invoice list
|
||||
FIX: shipment: fk_proje(c)t not handled in fetch() and update() methods
|
||||
FIX: showOptionals: column mismatches
|
||||
FIX: sometimes amounts are identical but php find them different.
|
||||
FIX: test is_erasable() must be done before call function delete()
|
||||
FIX: test is_erasable() must be done before call function delete() too to avoid delete invoice with &action=delete in url
|
||||
FIX: we must see number of all shared projects
|
||||
FIX: wrong var name
|
||||
|
||||
***** ChangeLog for 6.0.7 compared to 6.0.6 *****
|
||||
FIX: #8023
|
||||
|
||||
@@ -84,8 +84,8 @@ class FactureStats extends Stats
|
||||
$this->where.=" AND f.fk_soc = ".$this->socid;
|
||||
}
|
||||
if ($this->userid > 0) $this->where.=' AND f.fk_user_author = '.$this->userid;
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $this->where.= " AND f.type IN (0,1,2)";
|
||||
else $this->where.= " AND f.type IN (0,1,2,3)";
|
||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $this->where.= " AND f.type IN (0,1,2,5)";
|
||||
else $this->where.= " AND f.type IN (0,1,2,3,5)";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1014,6 +1014,9 @@ if ($resql)
|
||||
$facturestatic->ref=$obj->ref;
|
||||
$facturestatic->type=$obj->type;
|
||||
$facturestatic->statut=$obj->fk_statut;
|
||||
$facturestatic->total_ttc=$obj->total_ttc;
|
||||
$facturestatic->paye=$obj->paye;
|
||||
$facturestatic->fk_soc=$obj->fk_soc;
|
||||
$facturestatic->date_lim_reglement=$db->jdate($obj->datelimite);
|
||||
$facturestatic->note_public=$obj->note_public;
|
||||
$facturestatic->note_private=$obj->note_private;
|
||||
@@ -1022,7 +1025,13 @@ if ($resql)
|
||||
$totalcreditnotes = $facturestatic->getSumCreditNotesUsed();
|
||||
$totaldeposits = $facturestatic->getSumDepositsUsed();
|
||||
$totalpay = $paiement + $totalcreditnotes + $totaldeposits;
|
||||
$remaintopay = $obj->total_ttc - $totalpay;
|
||||
$remaintopay = $facturestatic->total_ttc - $totalpay;
|
||||
if($facturestatic->type == Facture::TYPE_CREDIT_NOTE && $obj->paye == 1) {
|
||||
$discount = new DiscountAbsolute($db);
|
||||
$remaincreditnote = $discount->getAvailableDiscounts($obj->fk_soc, '', 'rc.fk_facture_source='.$facturestatic->id);
|
||||
$remaintopay = -$remaincreditnote;
|
||||
$totalpay = $facturestatic->total_ttc - $remaintopay;
|
||||
}
|
||||
|
||||
print '<tr class="oddeven">';
|
||||
if (! empty($arrayfields['f.facnumber']['checked']))
|
||||
|
||||
@@ -407,18 +407,44 @@ class CMailFile
|
||||
// TODO if (! empty($moreinheader)) ...
|
||||
|
||||
// Give the message a subject
|
||||
$this->message->setSubject($this->encodetorfc2822($subject));
|
||||
try {
|
||||
$this->message->setSubject($subject);
|
||||
} catch (Exception $e) {
|
||||
$this->error = $e->getMessage();
|
||||
}
|
||||
|
||||
// Set the From address with an associative array
|
||||
//$this->message->setFrom(array('john@doe.com' => 'John Doe'));
|
||||
if (! empty($from)) $this->message->setFrom($this->getArrayAddress($from));
|
||||
if (! empty($from)) {
|
||||
try {
|
||||
$result = $this->message->setFrom($this->getArrayAddress($from));
|
||||
} catch (Exception $e) {
|
||||
$this->error = $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
// Set the To addresses with an associative array
|
||||
if (! empty($to)) $this->message->setTo($this->getArrayAddress($to));
|
||||
if (! empty($to)) {
|
||||
try {
|
||||
$result = $this->message->setTo($this->getArrayAddress($to));
|
||||
} catch (Exception $e) {
|
||||
$this->error = $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
if (! empty($from)) $this->message->SetReplyTo($this->getArrayAddress($from));
|
||||
if (! empty($from)) {
|
||||
try {
|
||||
$result = $this->message->SetReplyTo($this->getArrayAddress($from));
|
||||
} catch (Exception $e) {
|
||||
$this->error = $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
$this->message->setCharSet($conf->file->character_set_client);
|
||||
try {
|
||||
$result = $this->message->setCharSet($conf->file->character_set_client);
|
||||
} catch (Exception $e) {
|
||||
$this->error = $e->getMessage();
|
||||
}
|
||||
|
||||
if (! empty($this->html))
|
||||
{
|
||||
|
||||
@@ -4524,7 +4524,7 @@ abstract class CommonObject
|
||||
{
|
||||
if (is_array($params) && count($params)>0) {
|
||||
if (array_key_exists('colspan',$params)) {
|
||||
$colspan=$params['colspan'];
|
||||
$colspan=$params['colspan'] - 1;
|
||||
}
|
||||
}else {
|
||||
$colspan='3';
|
||||
@@ -4581,6 +4581,12 @@ abstract class CommonObject
|
||||
if($extrafields->attribute_required[$key])
|
||||
$label = '<span'.($mode != 'view' ? ' class="fieldrequired"':'').'>'.$label.'</span>';
|
||||
|
||||
if(! empty($conf->global->MAIN_VIEW_LINE_NUMBER))
|
||||
{
|
||||
$out .= '<td> </td>';
|
||||
$colspan--;
|
||||
}
|
||||
|
||||
$out .= '<td>'.$langs->trans($label).'</td>';
|
||||
$html_id = !empty($this->id) ? $this->element.'_extras_'.$key.'_'.$this->id : '';
|
||||
$out .='<td id="'.$html_id.'" class="'.$this->element.'_extras_'.$key.'" '.($colspan?' colspan="'.$colspan.'"':'').'>';
|
||||
|
||||
@@ -742,7 +742,7 @@ function xml2php($xml)
|
||||
}
|
||||
|
||||
//Let see if the new child is not in the array
|
||||
if($tab==false && in_array($key,array_keys($array)))
|
||||
if($tab === false && in_array($key,array_keys($array)))
|
||||
{
|
||||
//If this element is already in the array we will create an indexed array
|
||||
$tmp = $array[$key];
|
||||
@@ -751,7 +751,7 @@ function xml2php($xml)
|
||||
$array[$key][] = $child;
|
||||
$tab = true;
|
||||
}
|
||||
elseif($tab == true)
|
||||
elseif($tab === true)
|
||||
{
|
||||
//Add an element in an existing array
|
||||
$array[$key][] = $child;
|
||||
|
||||
@@ -432,8 +432,17 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target
|
||||
|
||||
if (!empty($targetcontact->address)) {
|
||||
$stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($targetcontact))."\n";
|
||||
}else {
|
||||
$stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($targetcompany))."\n";
|
||||
} else {
|
||||
$companytouseforaddress = $targetcompany;
|
||||
|
||||
// Contact on a thirdparty that is a different thirdparty than the thirdparty of object
|
||||
if ($targetcontact->socid > 0 && $targetcontact->socid != $targetcompany->id)
|
||||
{
|
||||
$targetcontact->fetch_thirdparty();
|
||||
$companytouseforaddress = $targetcontact->thirdparty;
|
||||
}
|
||||
|
||||
$stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($companytouseforaddress))."\n";
|
||||
}
|
||||
// Country
|
||||
if (!empty($targetcontact->country_code) && $targetcontact->country_code != $sourcecompany->country_code) {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.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
|
||||
@@ -856,7 +857,7 @@ class pdf_einstein extends ModelePDFCommandes
|
||||
$pdf->SetXY($col1x, $tab2_top + 0);
|
||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
|
||||
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$pdf->SetXY($col2x, $tab2_top + 0);
|
||||
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (! empty($object->remise)?$object->remise:0), 0, $outputlangs), 0, 'R', 1);
|
||||
|
||||
@@ -1307,7 +1308,7 @@ class pdf_einstein extends ModelePDFCommandes
|
||||
{
|
||||
$top_shift = $pdf->getY() - $current_y;
|
||||
}
|
||||
|
||||
|
||||
if ($showaddress)
|
||||
{
|
||||
// Sender properties
|
||||
@@ -1421,4 +1422,3 @@ class pdf_einstein extends ModelePDFCommandes
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
* Copyright (C) 2012-2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.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
|
||||
@@ -1054,7 +1055,7 @@ class pdf_crabe extends ModelePDFFactures
|
||||
$pdf->SetXY($col1x, $tab2_top + 0);
|
||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
|
||||
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$pdf->SetXY($col2x, $tab2_top + 0);
|
||||
$pdf->MultiCell($largcol2, $tab2_hl, price($sign * ($total_ht + (! empty($object->remise)?$object->remise:0)), 0, $outputlangs), 0, 'R', 1);
|
||||
|
||||
@@ -1679,7 +1680,7 @@ class pdf_crabe extends ModelePDFFactures
|
||||
{
|
||||
$top_shift = $pdf->getY() - $current_y;
|
||||
}
|
||||
|
||||
|
||||
if ($showaddress)
|
||||
{
|
||||
// Sender properties
|
||||
@@ -1788,4 +1789,3 @@ class pdf_crabe extends ModelePDFFactures
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.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
|
||||
@@ -1004,7 +1005,7 @@ class pdf_azur extends ModelePDFPropales
|
||||
$pdf->SetXY($col1x, $tab2_top + 0);
|
||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
|
||||
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$pdf->SetXY($col2x, $tab2_top + 0);
|
||||
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (! empty($object->remise)?$object->remise:0), 0, $outputlangs), 0, 'R', 1);
|
||||
|
||||
@@ -1493,7 +1494,7 @@ class pdf_azur extends ModelePDFPropales
|
||||
{
|
||||
$top_shift = $pdf->getY() - $current_y;
|
||||
}
|
||||
|
||||
|
||||
if ($showaddress)
|
||||
{
|
||||
// Sender properties
|
||||
@@ -1636,4 +1637,3 @@ class pdf_azur extends ModelePDFPropales
|
||||
return ($tab_hl*7);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
/* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2010-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.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
|
||||
@@ -598,7 +599,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
||||
$pdf->SetXY($col1x, $tab2_top + 0);
|
||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
|
||||
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$pdf->SetXY($col2x, $tab2_top + 0);
|
||||
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + $object->remise), 0, 'R', 1);
|
||||
|
||||
@@ -1094,7 +1095,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
||||
$object->fetch_user($arrayidcontact[0]);
|
||||
$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";
|
||||
}
|
||||
|
||||
|
||||
$carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty);
|
||||
|
||||
// Show sender
|
||||
@@ -1192,4 +1193,3 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.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
|
||||
@@ -695,7 +696,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
||||
$pdf->SetXY($col1x, $tab2_top + 0);
|
||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
|
||||
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$total_ht = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
|
||||
$pdf->SetXY($col2x, $tab2_top + 0);
|
||||
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (! empty($object->remise)?$object->remise:0)), 0, 'R', 1);
|
||||
|
||||
@@ -1144,7 +1145,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
||||
$object->fetch_user($arrayidcontact[0]);
|
||||
$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";
|
||||
}
|
||||
|
||||
|
||||
$carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty);
|
||||
|
||||
// Show sender
|
||||
@@ -1242,4 +1243,3 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -401,7 +401,7 @@ if (empty($reshook))
|
||||
$localtax2_tx,
|
||||
$idprod,
|
||||
$productsupplier->product_fourn_price_id,
|
||||
$productsupplier->fourn_ref,
|
||||
$productsupplier->ref_supplier,
|
||||
$remise_percent,
|
||||
'HT',
|
||||
$pu_ttc,
|
||||
|
||||
@@ -1705,6 +1705,7 @@ BaseCurrency=Reference currency of the company (go into setup of company to chan
|
||||
WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
|
||||
WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
|
||||
WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
|
||||
NothingToSetup=There is no specific setup to do for this module.
|
||||
##### Resource ####
|
||||
ResourceSetup=Configuration du module Resource
|
||||
UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
|
||||
|
||||
@@ -455,6 +455,7 @@ Reporting=Reporting
|
||||
Reportings=Reporting
|
||||
Draft=Draft
|
||||
Drafts=Drafts
|
||||
StatusInterInvoiced=
|
||||
Validated=Validated
|
||||
Opened=Open
|
||||
New=New
|
||||
@@ -854,4 +855,4 @@ SearchIntoInterventions=Interventions
|
||||
SearchIntoContracts=Contracts
|
||||
SearchIntoCustomerShipments=Customer shipments
|
||||
SearchIntoExpenseReports=Expense reports
|
||||
SearchIntoLeaves=Leaves
|
||||
SearchIntoLeaves=Leaves
|
||||
|
||||
@@ -108,7 +108,7 @@ MyAvailability=Ma disponibilité
|
||||
ActionType=Type événement
|
||||
DateActionBegin=Date début événément
|
||||
CloneAction=Cloner l'événement
|
||||
ConfirmCloneEvent=Êtes-vous sûr de vouloir cloner cette facture <b>%s</b> ?
|
||||
ConfirmCloneEvent=Êtes-vous sûr de vouloir cloner l'événement <b>%s</b> ?
|
||||
RepeatEvent=Répétez événement
|
||||
EveryWeek=Chaque semaine
|
||||
EveryMonth=Chaque mois
|
||||
|
||||
@@ -138,9 +138,9 @@ if ($id > 0 || ! empty($ref))
|
||||
$sql.= " f.datef, f.paye, f.fk_statut as statut, f.type,";
|
||||
if (!$user->rights->societe->client->voir && !$socid) $sql.= " sc.fk_soc, sc.fk_user,";
|
||||
$sql.= " sum(d.total_ht) as selling_price,"; // may be negative or positive
|
||||
$sql.= " sum(d.qty) as qty,";
|
||||
$sql.= " sum(d.qty * d.buy_price_ht) as buying_price,"; // always positive
|
||||
$sql.= " sum(abs(d.total_ht) - (d.buy_price_ht * d.qty)) as marge" ; // always positive
|
||||
$sql.= " IF(f.type = 2, -1, 1) * sum(d.qty) as qty,"; // not always positive in case of Credit note
|
||||
$sql.= " IF(f.type = 2, -1, 1) * sum(d.qty * d.buy_price_ht) as buying_price,"; // not always positive in case of Credit note
|
||||
$sql.= " IF(f.type = 2, -1, 1) * sum(abs(d.total_ht) - (d.buy_price_ht * d.qty)) as marge" ; // not always positive in case of Credit note
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."facture as f";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."facturedet as d";
|
||||
|
||||
1
htdocs/product/dynamic_price/class/index.html
Normal file
1
htdocs/product/dynamic_price/class/index.html
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
htdocs/product/dynamic_price/index.html
Normal file
1
htdocs/product/dynamic_price/index.html
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
@@ -1837,24 +1837,28 @@ class Societe extends CommonObject
|
||||
|
||||
if (! empty($conf->global->SOCIETE_ADD_REF_IN_LIST) && (!empty($withpicto)))
|
||||
{
|
||||
$code = '';
|
||||
if (($this->client) && (! empty ( $this->code_client ))
|
||||
&& ($conf->global->SOCIETE_ADD_REF_IN_LIST == 1
|
||||
|| $conf->global->SOCIETE_ADD_REF_IN_LIST == 2
|
||||
)
|
||||
)
|
||||
$code = $this->code_client . ' - ';
|
||||
) {
|
||||
$code .= $this->code_client . ' - ';
|
||||
}
|
||||
|
||||
if (($this->fournisseur) && (! empty ( $this->code_fournisseur ))
|
||||
&& ($conf->global->SOCIETE_ADD_REF_IN_LIST == 1
|
||||
|| $conf->global->SOCIETE_ADD_REF_IN_LIST == 3
|
||||
)
|
||||
)
|
||||
$code .= $this->code_fournisseur . ' - ';
|
||||
) {
|
||||
$code .= $this->code_fournisseur . ' - ';
|
||||
}
|
||||
|
||||
if ($conf->global->SOCIETE_ADD_REF_IN_LIST == 1)
|
||||
$name =$code.' '.$name;
|
||||
else
|
||||
$name =$code;
|
||||
if ($conf->global->SOCIETE_ADD_REF_IN_LIST == 1) {
|
||||
$name = $code.' '.$name;
|
||||
} else {
|
||||
$name = $code;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($this->name_alias)) $name .= ' ('.$this->name_alias.')';
|
||||
|
||||
Reference in New Issue
Block a user