Browse Source

Merge remote-tracking branch 'origin/3.9' into develop

Conflicts:
	htdocs/filefunc.inc.php
Laurent Destailleur 9 years ago
parent
commit
0cde6ad98f
56 changed files with 177 additions and 80 deletions
  1. 22 1
      htdocs/commande/class/commande.class.php
  2. 2 0
      htdocs/compta/bank/class/account.class.php
  3. 14 0
      htdocs/compta/facture/class/facture.class.php
  4. 4 0
      htdocs/compta/stats/cabyprodserv.php
  5. 3 3
      htdocs/core/class/html.form.class.php
  6. 6 8
      htdocs/expedition/class/expedition.class.php
  7. 2 2
      htdocs/expensereport/card.php
  8. 52 15
      htdocs/expensereport/class/expensereport.class.php
  9. 11 2
      htdocs/fourn/class/fournisseur.facture.class.php
  10. 5 2
      htdocs/fourn/facture/card.php
  11. 11 2
      htdocs/fourn/facture/list.php
  12. 1 1
      htdocs/langs/ar_SA/projects.lang
  13. 1 1
      htdocs/langs/bn_BD/projects.lang
  14. 1 1
      htdocs/langs/bs_BA/projects.lang
  15. 1 1
      htdocs/langs/ca_ES/projects.lang
  16. 1 1
      htdocs/langs/cs_CZ/projects.lang
  17. 1 1
      htdocs/langs/da_DK/projects.lang
  18. 1 1
      htdocs/langs/de_DE/projects.lang
  19. 1 1
      htdocs/langs/en_US/projects.lang
  20. 1 1
      htdocs/langs/es_ES/projects.lang
  21. 1 1
      htdocs/langs/et_EE/projects.lang
  22. 1 1
      htdocs/langs/eu_ES/projects.lang
  23. 1 1
      htdocs/langs/fi_FI/projects.lang
  24. 1 1
      htdocs/langs/fr_FR/projects.lang
  25. 1 1
      htdocs/langs/he_IL/projects.lang
  26. 1 1
      htdocs/langs/hr_HR/projects.lang
  27. 1 1
      htdocs/langs/hu_HU/projects.lang
  28. 1 1
      htdocs/langs/id_ID/projects.lang
  29. 1 1
      htdocs/langs/is_IS/projects.lang
  30. 1 1
      htdocs/langs/it_IT/projects.lang
  31. 1 1
      htdocs/langs/ka_GE/projects.lang
  32. 1 1
      htdocs/langs/kn_IN/projects.lang
  33. 1 1
      htdocs/langs/ko_KR/projects.lang
  34. 1 1
      htdocs/langs/lo_LA/projects.lang
  35. 1 1
      htdocs/langs/lt_LT/projects.lang
  36. 1 1
      htdocs/langs/lv_LV/projects.lang
  37. 1 1
      htdocs/langs/mk_MK/projects.lang
  38. 1 1
      htdocs/langs/nb_NO/projects.lang
  39. 1 1
      htdocs/langs/nl_NL/projects.lang
  40. 1 1
      htdocs/langs/pl_PL/projects.lang
  41. 1 1
      htdocs/langs/pt_BR/projects.lang
  42. 1 1
      htdocs/langs/pt_PT/projects.lang
  43. 1 1
      htdocs/langs/ro_RO/projects.lang
  44. 1 1
      htdocs/langs/ru_RU/projects.lang
  45. 1 1
      htdocs/langs/sk_SK/projects.lang
  46. 1 1
      htdocs/langs/sl_SI/projects.lang
  47. 1 1
      htdocs/langs/sq_AL/projects.lang
  48. 1 1
      htdocs/langs/sr_RS/projects.lang
  49. 1 1
      htdocs/langs/sv_SE/projects.lang
  50. 1 1
      htdocs/langs/sw_SW/projects.lang
  51. 1 1
      htdocs/langs/tr_TR/projects.lang
  52. 1 1
      htdocs/langs/uk_UA/projects.lang
  53. 1 1
      htdocs/langs/uz_UZ/projects.lang
  54. 1 1
      htdocs/langs/vi_VN/projects.lang
  55. 1 1
      htdocs/langs/zh_CN/projects.lang
  56. 1 1
      htdocs/langs/zh_TW/projects.lang

+ 22 - 1
htdocs/commande/class/commande.class.php

@@ -9,6 +9,7 @@
  * Copyright (C) 2012      Cedric Salvador      <csalvador@gpcsolutions.fr>
  * Copyright (C) 2013      Florian Henry		<florian.henry@open-concept.pro>
  * Copyright (C) 2014-2015 Marcos García        <marcosgdf@gmail.com>
+ * Copyright (C) 2016      Ferran Marcet        <fmarcet@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
@@ -2516,7 +2517,7 @@ class Commande extends CommonOrder
      */
 	function updateline($rowid, $desc, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0.0,$txlocaltax2=0.0, $price_base_type='HT', $info_bits=0, $date_start='', $date_end='', $type=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_options=0, $fk_unit=null)
     {
-        global $conf, $mysoc;
+        global $conf, $mysoc, $langs;
 
         dol_syslog(get_class($this)."::updateline id=$rowid, desc=$desc, pu=$pu, qty=$qty, remise_percent=$remise_percent, txtva=$txtva, txlocaltax1=$txlocaltax1, txlocaltax2=$txlocaltax2, price_base_type=$price_base_type, info_bits=$info_bits, date_start=$date_start, date_end=$date_end, type=$type, fk_parent_line=$fk_parent_line, pa_ht=$pa_ht, special_code=$special_code");
         include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
@@ -2585,6 +2586,26 @@ class Commande extends CommonOrder
             $line = new OrderLine($this->db);
             $line->fetch($rowid);
 
+            if (!empty($line->fk_product))
+            {
+                $product=new Product($this->db);
+                $result=$product->fetch($line->fk_product);
+                $product_type=$product->type;
+
+                if (! empty($conf->global->STOCK_MUST_BE_ENOUGH_FOR_ORDER) && $product_type == 0 && $product->stock_reel < $qty)
+                {
+                    $this->error=$langs->trans('ErrorStockIsNotEnough');
+                    dol_syslog(get_class($this)."::addline error=Product ".$product->ref.": ".$this->error, LOG_ERR);
+                    $this->db->rollback();
+                    unset($_POST['productid']);
+                    unset($_POST['tva_tx']);
+                    unset($_POST['price_ht']);
+                    unset($_POST['qty']);
+                    unset($_POST['buying_price']);
+                    return self::STOCK_NOT_ENOUGH_FOR_ORDER;
+                }
+            }
+
             $staticline = clone $line;
 
             $line->oldline = $staticline;

+ 2 - 0
htdocs/compta/bank/class/account.class.php

@@ -7,6 +7,7 @@
  * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
  * Copyright (C) 2015-2016	Marcos García			<marcosgdf@gmail.com>
  * Copyright (C) 2015		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
+ * Copyright (C) 2016		Ferran Marcet   		<fmarcet@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
@@ -1112,6 +1113,7 @@ class Account extends CommonObject
         $sql = "SELECT COUNT(ba.rowid) as nb";
         $sql.= " FROM ".MAIN_DB_PREFIX."bank_account as ba";
         $sql.= " WHERE ba.rappro > 0 and ba.clos = 0";
+        $sql.= " AND ba.entity IN (".getEntity('bank_account', 1).")";
         if (empty($conf->global->BANK_CAN_RECONCILIATE_CASHACCOUNT)) $sql.= " AND ba.courant != 2";
         $resql=$db->query($sql);
         if ($resql)

+ 14 - 0
htdocs/compta/facture/class/facture.class.php

@@ -14,6 +14,7 @@
  * Copyright (C) 2012-2014 Raphaël Doursenaud    <rdoursenaud@gpcsolutions.fr>
  * Copyright (C) 2013      Cedric Gross          <c.gross@kreiz-it.fr>
  * Copyright (C) 2013      Florian Henry		  	<florian.henry@open-concept.pro>
+ * Copyright (C) 2016      Ferran Marcet        <fmarcet@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
@@ -2540,6 +2541,19 @@ class Facture extends CommonInvoice
 			$line = new FactureLigne($this->db);
 			$line->fetch($rowid);
 
+			if (!empty($line->fk_product))
+			{
+				$product=new Product($this->db);
+				$result=$product->fetch($line->fk_product);
+				$product_type=$product->type;
+
+				if (! empty($conf->global->STOCK_MUST_BE_ENOUGH_FOR_INVOICE) && $product_type == 0 && $product->stock_reel < $qty) {
+					$this->error=$langs->trans('ErrorStockIsNotEnough');
+					$this->db->rollback();
+					return -3;
+				}
+			}
+
 			$staticline = clone $line;
 
 			$line->oldline = $staticline;

+ 4 - 0
htdocs/compta/stats/cabyprodserv.php

@@ -181,6 +181,8 @@ report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportl
 
 // SQL request
 $catotal=0;
+$catotal_ht=0;
+$qtytotal=0;
 
 if ($modecompta == 'CREANCES-DETTES')
 {
@@ -401,6 +403,8 @@ if ($modecompta == 'CREANCES-DETTES')
 		// Total
 		print '<tr class="liste_total">';
 		print '<td>'.$langs->trans("Total").'</td>';
+		print '<td align="right">'.price($qtytotal).'</td>';
+		print '<td>&nbsp;</td>';
 		print '<td align="right">'.price($catotal_ht).'</td>';
 		print '<td align="right">'.price($catotal).'</td>';
 		print '<td>&nbsp;</td>';

+ 3 - 3
htdocs/core/class/html.form.class.php

@@ -2400,10 +2400,10 @@ class Form
                     $form.= $opt;
                     $i++;
                 }
-                $form.= '</select>';
-
-                $this->db->free($result);
             }
+
+            $form.= '</select>';
+            $this->db->free($result);
             return $form;
         }
         else

+ 6 - 8
htdocs/expedition/class/expedition.class.php

@@ -878,16 +878,14 @@ class Expedition extends CommonObject
 				$product=new Product($this->db);
 				$result=$product->fetch($fk_product);
 
-				$product_type=$product->type;
 				if ($entrepot_id > 0) {
-                    $product->load_stock();
-				    $product_stock = $product->stock_warehouse[$entrepot_id]->real;
-				}
-				else 
-				{
-				    $product_stock = $product->stock_reel;
+					$product->load_stock();
+					$product_stock = $product->stock_warehouse[$entrepot_id]->real;
 				}
-				
+				else
+					$product_stock = $product->stock_reel;
+
+				$product_type=$product->type;
 				if ($product_type == 0 && $product_stock < $qty)
 				{
 					$this->error=$langs->trans('ErrorStockIsNotEnough');

+ 2 - 2
htdocs/expensereport/card.php

@@ -1625,7 +1625,7 @@ else
 				$sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,';
 				$sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref';
 				$sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde';
-				$sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'c_type_fees as ctf ON fde.fk_c_type_fees=ctf.id';
+				$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_type_fees as ctf ON fde.fk_c_type_fees=ctf.id';
 				$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'projet as pjt ON fde.fk_projet=pjt.rowid';
 				$sql.= ' WHERE fde.fk_expensereport = '.$object->id;
 
@@ -1691,7 +1691,7 @@ else
     								}
     								print '</td>';
 								}
-								print '<td style="text-align:center;">'.$langs->trans("TF_".strtoupper($objp->type_fees_libelle)).'</td>';
+								print '<td style="text-align:center;">'.$langs->trans("TF_".strtoupper(empty($objp->type_fees_libelle)?'OTHER':$objp->type_fees_libelle)).'</td>';
 								print '<td style="text-align:left;">'.$objp->comments.'</td>';
 								print '<td style="text-align:right;">'.vatrate($objp->vatrate,true).'</td>';
 								print '<td style="text-align:right;">'.price($objp->value_unit).'</td>';

+ 52 - 15
htdocs/expensereport/class/expensereport.class.php

@@ -746,7 +746,7 @@ class ExpenseReport extends CommonObject
         $sql.= ' ctf.code as code_type_fees, ctf.label as libelle_type_fees,';
         $sql.= ' p.ref as ref_projet, p.title as title_projet';
         $sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element_line.' as de';
-        $sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'c_type_fees as ctf ON de.fk_c_type_fees = ctf.id';
+        $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_type_fees as ctf ON de.fk_c_type_fees = ctf.id';
         $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'projet as p ON de.fk_projet = p.rowid';
         $sql.= ' WHERE de.'.$this->fk_element.' = '.$this->id;
 
@@ -776,7 +776,7 @@ class ExpenseReport extends CommonObject
                 $deplig->total_tva      = $objp->total_tva;
                 $deplig->total_ttc      = $objp->total_ttc;
 
-                $deplig->type_fees_code     = $objp->code_type_fees;
+                $deplig->type_fees_code     = empty($objp->code_type_fees)?'TF_OTHER':$objp->code_type_fees;
                 $deplig->type_fees_libelle  = $objp->libelle_type_fees;
 				$deplig->tva_tx			    = $objp->tva_tx;
                 $deplig->vatrate            = $objp->tva_tx;
@@ -850,12 +850,9 @@ class ExpenseReport extends CommonObject
     {
         global $conf,$langs;
 
+        $this->oldref = $this->ref;
         $expld_car = (empty($conf->global->NDF_EXPLODE_CHAR))?"-":$conf->global->NDF_EXPLODE_CHAR;
 
-        // Sélection du numéro de ref suivant
-        $ref_next = $this->getNextNumRef();
-        $ref_number_int = ($this->ref+1)-1;
-
         // Sélection de la date de début de la NDF
         $sql = 'SELECT date_debut';
         $sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element;
@@ -864,21 +861,59 @@ class ExpenseReport extends CommonObject
         $objp = $this->db->fetch_object($result);
         $this->date_debut = $this->db->jdate($objp->date_debut);
 
-        // Création du ref_number suivant
-        if($ref_next)
+        $update_number_int = false;
+
+        // Create next ref if ref is PROVxx
+        // Rename directory if dir was a temporary ref
+        if (preg_match('/^[\(]?PROV/i', $this->ref))
         {
-            $prefix="ER";
-            if (! empty($conf->global->EXPENSE_REPORT_PREFIX)) $prefix=$conf->global->EXPENSE_REPORT_PREFIX;
-            $this->ref = strtoupper($fuser->login).$expld_car.$prefix.$this->ref.$expld_car.dol_print_date($this->date_debut,'%y%m%d');
+            // Sélection du numéro de ref suivant
+            $ref_next = $this->getNextNumRef();
+            $ref_number_int = ($this->ref+1)-1;
+            $update_number_int = true;
+            // Création du ref_number suivant
+            if($ref_next)
+            {
+                $prefix="ER";
+                if (! empty($conf->global->EXPENSE_REPORT_PREFIX)) $prefix=$conf->global->EXPENSE_REPORT_PREFIX;
+                $this->ref = strtoupper($fuser->login).$expld_car.$prefix.$this->ref.$expld_car.dol_print_date($this->date_debut,'%y%m%d');
+            }
+            require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
+            // We rename directory in order to avoid losing the attachments
+            $oldref = dol_sanitizeFileName($this->oldref);
+            $newref = dol_sanitizeFileName($this->ref);
+            $dirsource = $conf->expensereport->dir_output.'/'.$oldref;
+            $dirdest = $conf->expensereport->dir_output.'/'.$newref;
+            if (file_exists($dirsource))
+            {
+                dol_syslog(get_class($this)."::valid() rename dir ".$dirsource." into ".$dirdest);
+
+                if (@rename($dirsource, $dirdest))
+                {
+                    dol_syslog("Rename ok");
+                    // Rename docs starting with $oldref with $newref
+                    $listoffiles=dol_dir_list($conf->expensereport->dir_output.'/'.$newref, 'files', 1, '^'.preg_quote($oldref,'/'));
+                    foreach($listoffiles as $fileentry)
+                    {
+                        $dirsource=$fileentry['name'];
+                        $dirdest=preg_replace('/^'.preg_quote($oldref,'/').'/',$newref, $dirsource);
+                        $dirsource=$fileentry['path'].'/'.$dirsource;
+                        $dirdest=$fileentry['path'].'/'.$dirdest;
+                        @rename($dirsource, $dirdest);
+                    }
+                }
+            }
         }
 
         if ($this->fk_statut != 2)
         {
         	$now = dol_now();
-        	
+
             $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
-            $sql.= " SET ref = '".$this->ref."', fk_statut = 2, fk_user_valid = ".$fuser->id.", date_valid='".$this->db->idate($now)."',";
-            $sql.= " ref_number_int = ".$ref_number_int;
+            $sql.= " SET ref = '".$this->ref."', fk_statut = 2, fk_user_valid = ".$fuser->id.", date_valid='".$this->db->idate($now)."'";
+            if ($update_number_int) {
+                $sql.= ", ref_number_int = ".$ref_number_int;
+            }
             $sql.= ' WHERE rowid = '.$this->id;
 
             $resql=$this->db->query($sql);
@@ -1265,7 +1300,9 @@ class ExpenseReport extends CommonObject
             $sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
             $sql.= " WHERE p.rowid = ".$projet_id;
             $result = $this->db->query($sql);
-            $objp_projet = $this->db->fetch_object($result);
+            if ($result) {
+            	$objp_projet = $this->db->fetch_object($result);
+            }
             $ligne->projet_ref          = $objp_projet->ref_projet;
             $ligne->projet_title        = $objp_projet->title_projet;
 

+ 11 - 2
htdocs/fourn/class/fournisseur.facture.class.php

@@ -7,7 +7,7 @@
  * Copyright (C) 2010-2015	Juanjo Menent			<jmenent@2byte.es>
  * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
  * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
- * Copyright (C) 2014-2015  Marcos García           <marcosgdf@gmail.com>
+ * Copyright (C) 2014-2016  Marcos García           <marcosgdf@gmail.com>
  * Copyright (C) 2015       Bahfir Abbes            <bafbes@gmail.com>
  * Copyright (C) 2015       Ferran Marcet           <fmarcet@2byte.es>
  *
@@ -694,7 +694,16 @@ class FactureFournisseur extends CommonInvoice
 
         dol_syslog(get_class($this)."::update", LOG_DEBUG);
         $resql = $this->db->query($sql);
-        if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
+
+        if (!$resql) {
+            $error++;
+
+            if ($this->db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
+                $this->errors[] = $langs->trans('ErrorRefAlreadyExists');
+            } else {
+                $this->errors[] = "Error ".$this->db->lasterror();
+            }
+        }
 
         if (! $error)
         {

+ 5 - 2
htdocs/fourn/facture/card.php

@@ -247,8 +247,11 @@ if (empty($reshook))
 	// Set supplier ref
 	if ($action == 'setref_supplier' && $user->rights->fournisseur->commande->creer)
 	{
-	    $result=$object->setValueFrom('ref_supplier',GETPOST('ref_supplier','alpha'));
-	    if ($result < 0) dol_print_error($db, $object->error);
+		$object->ref_supplier = GETPOST('ref_supplier', 'alpha');
+		
+		if ($object->update() < 0) {
+			setEventMessages($object->error, $object->errors, 'errors');
+		}
 	}
 
 	// payments conditions

+ 11 - 2
htdocs/fourn/facture/list.php

@@ -225,10 +225,19 @@ if ($search_amount_all_tax != '')
 	$sql .= natural_search('fac.total_ttc', $search_amount_all_tax, 1);
 }
 
-if ($search_status != '')
+if ($search_status != '' && $search_status>=0)
 {
 	$sql.= " AND fac.fk_statut = ".$search_status;
 }
+if ($filter && $filter != -1)
+{
+	$aFilter = explode(',', $filter);
+	foreach ($aFilter as $fil)
+	{
+		$filt = explode(':', $fil);
+		$sql .= ' AND ' . trim($filt[0]) . ' = ' . trim($filt[1]);
+	}
+}
 
 $nbtotalofrecords = 0;
 if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
@@ -265,7 +274,7 @@ if ($resql)
 	if ($search_amount_no_tax)	$param.='&search_amount_no_tax='.urlencode($search_amount_no_tax);
 	if ($search_amount_all_tax)	$param.='&search_amount_all_tax='.urlencode($search_amount_all_tax);
 	if ($filter && $filter != -1) $param.='&filtre='.urlencode($filter);
-	if ($optioncss != '') $param.='&optioncss='.$optioncss;
+	if ($optioncss != '')       $param.='&optioncss='.$optioncss;
 	if ($search_status >= 0)  	$param.="&search_status=".$search_status;
 
 	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';

+ 1 - 1
htdocs/langs/ar_SA/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=المؤهل العلمى
 OppStatusPROPO=مقترح
 OppStatusNEGO=Negociation
 OppStatusPENDING=بانتظار
-OppStatusWIN=فاز
+OppStatusWON=فاز
 OppStatusLOST=ضائع
 Budget=Budget

+ 1 - 1
htdocs/langs/bn_BD/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/bs_BA/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/ca_ES/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualificació
 OppStatusPROPO=Pressupost
 OppStatusNEGO=Negociació
 OppStatusPENDING=Pendent
-OppStatusWIN=Guanyat
+OppStatusWON=Guanyat
 OppStatusLOST=Perdut
 Budget=Budget

+ 1 - 1
htdocs/langs/cs_CZ/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/da_DK/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/de_DE/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualifikation
 OppStatusPROPO=Angebot
 OppStatusNEGO=Verhandlung
 OppStatusPENDING=Anstehend
-OppStatusWIN=Gewonnen
+OppStatusWON=Gewonnen
 OppStatusLOST=Verloren
 Budget=Budget

+ 1 - 1
htdocs/langs/en_US/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/es_ES/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Cualificación
 OppStatusPROPO=Presupuesto
 OppStatusNEGO=Negociación
 OppStatusPENDING=Pendiente
-OppStatusWIN=Ganado
+OppStatusWON=Ganado
 OppStatusLOST=Perdido
 Budget=Budget

+ 1 - 1
htdocs/langs/et_EE/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/eu_ES/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/fi_FI/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/fr_FR/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposition
 OppStatusNEGO=Négociation
 OppStatusPENDING=En attente
-OppStatusWIN=Gagné
+OppStatusWON=Gagné
 OppStatusLOST=Perdu
 Budget=Budget

+ 1 - 1
htdocs/langs/he_IL/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/hr_HR/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/hu_HU/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/id_ID/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/is_IS/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/it_IT/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualificazione
 OppStatusPROPO=Proposta
 OppStatusNEGO=Negoziazione
 OppStatusPENDING=In attesa
-OppStatusWIN=Vinto
+OppStatusWON=Vinto
 OppStatusLOST=Perso
 Budget=Budget

+ 1 - 1
htdocs/langs/ka_GE/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/kn_IN/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/ko_KR/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/lo_LA/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/lt_LT/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/lv_LV/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Kvalifikācija
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/mk_MK/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/nb_NO/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Kvalifikasjon
 OppStatusPROPO=Tilbud
 OppStatusNEGO=Forhandling
 OppStatusPENDING=Venter
-OppStatusWIN=Vunnet
+OppStatusWON=Vunnet
 OppStatusLOST=Tapt
 Budget=Budget

+ 1 - 1
htdocs/langs/nl_NL/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/pl_PL/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Kwalifikacja
 OppStatusPROPO=Wniosek
 OppStatusNEGO=Negocjacje
 OppStatusPENDING=W oczekiwaniu
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Zagubiony
 Budget=Budget

+ 1 - 1
htdocs/langs/pt_BR/projects.lang

@@ -125,5 +125,5 @@ OppStatusQUAL=Qualificação
 OppStatusPROPO=Proposta
 OppStatusNEGO=Negociação
 OppStatusPENDING=Pendente
-OppStatusWIN=Ganhou
+OppStatusWON=Ganhou
 OppStatusLOST=Perdido

+ 1 - 1
htdocs/langs/pt_PT/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/ro_RO/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Calificare
 OppStatusPROPO=Ofertă 
 OppStatusNEGO=Negociere
 OppStatusPENDING=In asteptarea
-OppStatusWIN=Castigat
+OppStatusWON=Castigat
 OppStatusLOST=Pierdut
 Budget=Budget

+ 1 - 1
htdocs/langs/ru_RU/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/sk_SK/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/sl_SI/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/sq_AL/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/sr_RS/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Kvalifikacija
 OppStatusPROPO=Ponuda
 OppStatusNEGO=Pregovaranje
 OppStatusPENDING=Na čekanju
-OppStatusWIN=Dobijeno
+OppStatusWON=Dobijeno
 OppStatusLOST=Izgubljeno
 Budget=Budget

+ 1 - 1
htdocs/langs/sv_SE/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/sw_SW/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/tr_TR/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Nitelendirme
 OppStatusPROPO=Teklif
 OppStatusNEGO=Pazarlık
 OppStatusPENDING=Beklemede
-OppStatusWIN=Kazanç
+OppStatusWON=Kazanç
 OppStatusLOST=Kayıp
 Budget=Budget

+ 1 - 1
htdocs/langs/uk_UA/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/uz_UZ/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/vi_VN/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/zh_CN/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget

+ 1 - 1
htdocs/langs/zh_TW/projects.lang

@@ -199,6 +199,6 @@ OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
 OppStatusNEGO=Negociation
 OppStatusPENDING=Pending
-OppStatusWIN=Won
+OppStatusWON=Won
 OppStatusLOST=Lost
 Budget=Budget