diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/card-rec.php
similarity index 95%
rename from htdocs/compta/facture/fiche-rec.php
rename to htdocs/compta/facture/card-rec.php
index 2c5cd1a87c7..10eb2ac03c8 100644
--- a/htdocs/compta/facture/fiche-rec.php
+++ b/htdocs/compta/facture/card-rec.php
@@ -25,7 +25,7 @@
*/
/**
- * \file htdocs/compta/facture/fiche-rec.php
+ * \file htdocs/compta/facture/card-rec.php
* \ingroup facture
* \brief Page to show predefined invoice
*/
@@ -387,6 +387,15 @@ if (empty($reshook))
setEventMessages($object->error, $object->errors, 'errors');
}
}
+ // Multicurrency Code
+ elseif ($action == 'setmulticurrencycode' && $usercancreate) {
+ $result = $object->setMulticurrencyCode(GETPOST('multicurrency_code', 'alpha'));
+ }
+
+ // Multicurrency rate
+ elseif ($action == 'setmulticurrencyrate' && $usercancreate) {
+ $result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx')), GETPOST('calculation_mode', 'int'));
+ }
// Delete line
if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->facture->creer)
@@ -1346,6 +1355,52 @@ else
}
print '';
+ // Multicurrency
+ if (! empty($conf->multicurrency->enabled))
+ {
+ // Multicurrency code
+ print '
';
+ print '| ';
+ print '';
+ print ' | ';
+ $htmlname = (($usercancreate && $action == 'editmulticurrencycode')?'multicurrency_code':'none');
+ $form->form_multicurrency_code($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_code, $htmlname);
+ print ' |
';
+
+ // Multicurrency rate
+ if ($object->multicurrency_code != $conf->currency || $object->multicurrency_tx != 1)
+ {
+ print '';
+ print '| ';
+ print '';
+ print ' | ';
+ if ($action == 'editmulticurrencyrate' || $action == 'actualizemulticurrencyrate') {
+ if($action == 'actualizemulticurrencyrate') {
+ list($object->fk_multicurrency, $object->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($object->db, $object->multicurrency_code);
+ }
+ $form->form_multicurrency_rate($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_tx, ($usercancreate?'multicurrency_tx':'none'), $object->multicurrency_code);
+ } else {
+ $form->form_multicurrency_rate($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_tx, 'none', $object->multicurrency_code);
+ if($object->statut == $object::STATUS_DRAFT && $object->multicurrency_code && $object->multicurrency_code != $conf->currency) {
+ print '';
+ }
+ }
+ print ' |
';
+ }
+ }
+
// Help of substitution key
$dateexample=dol_now();
if (! empty($object->frequency) && ! empty($object->date_when)) $dateexample=$object->date_when;
@@ -1701,11 +1756,11 @@ else
{
if (empty($object->suspended))
{
- print '';
+ print '';
}
else
{
- print '';
+ print '';
}
}
diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index 7aff05a8c03..fce1fb7cb25 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -2579,7 +2579,6 @@ $title = $langs->trans('InvoiceCustomer') . " - " . $langs->trans('Card');
$helpurl = "EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes";
llxHeader('', $title, $helpurl);
-
// Mode creation
if ($action == 'create')
@@ -2600,18 +2599,19 @@ if ($action == 'create')
{
// Parse element/subelement (ex: project_task)
$element = $subelement = $origin;
+ $regs = array();
if (preg_match('/^([^_]+)_([^_]+)/i', $origin, $regs)) {
- $element = $regs [1];
- $subelement = $regs [2];
+ $element = $reg[1];
+ $subelement = $regs[2];
}
if ($element == 'project') {
$projectid = $originid;
- if (!$cond_reglement_id) {
+ if (empty($cond_reglement_id)) {
$cond_reglement_id = $soc->cond_reglement_id;
}
- if (!$mode_reglement_id) {
+ if (empty($mode_reglement_id)) {
$mode_reglement_id = $soc->mode_reglement_id;
}
if (!$remise_percent) {
@@ -2754,7 +2754,7 @@ if ($action == 'create')
// Thirdparty
print '' . $langs->trans('Customer') . ' | ';
- if ($soc->id > 0 && ! GETPOST('fac_rec', 'alpha'))
+ if ($soc->id > 0 && ! GETPOST('fac_rec', 'int'))
{
print '';
print $soc->getNomUrl(1);
@@ -2797,7 +2797,7 @@ if ($action == 'create')
$exampletemplateinvoice=new FactureRec($db);
- // Overwrite value if creation of invoice is from a predefined invoice
+ // Overwrite some values if creation of invoice is from a predefined invoice
if (empty($origin) && empty($originid) && GETPOST('fac_rec', 'int') > 0)
{
$invoice_predefined = new FactureRec($db);
@@ -2811,6 +2811,9 @@ if ($action == 'create')
$note_public = $invoice_predefined->note_public;
$note_private = $invoice_predefined->note_private;
+ if (! empty($invoice_predefined->multicurrency_code)) $currency_code = $invoice_predefined->multicurrency_code;
+ if (! empty($invoice_predefined->multicurrency_tx)) $currency_tx = $invoice_predefined->multicurrency_tx;
+
$sql = 'SELECT r.rowid, r.titre as title, r.total_ttc';
$sql .= ' FROM ' . MAIN_DB_PREFIX . 'facture_rec as r';
$sql .= ' WHERE r.fk_soc = ' . $invoice_predefined->socid;
@@ -2833,7 +2836,7 @@ if ($action == 'create')
if (GETPOST('fac_rec') == $objp->rowid)
{
print ' selected';
- $exampletemplateinvoice->fetch(GETPOST('fac_rec'));
+ $exampletemplateinvoice->fetch(GETPOST('fac_rec', 'int'));
}
print '>' . $objp->title . ' (' . price($objp->total_ttc) . ' ' . $langs->trans("TTC") . ')';
$i ++;
@@ -2921,12 +2924,17 @@ if ($action == 'create')
// Next situation invoice
$opt = $form->selectSituationInvoices(GETPOST('originid'), $socid);
+
print '';
$tmp=' ' . $langs->trans('NoSituations') . '') || (GETPOST('origin') && GETPOST('origin') != 'facture' && GETPOST('origin') != 'commande')) $tmp.=' disabled';
+ if ($opt == (' ') || (GETPOST('origin') && GETPOST('origin') != 'facture' && GETPOST('origin') != 'commande'))
+ $tmp.=' disabled';
$tmp.= '> ';
$text = ' ';
- $text .= ' |