Fix: A lot of feature was lost because global variables were not propagated into templates.

This commit is contained in:
Laurent Destailleur 2010-09-15 13:51:31 +00:00
parent 94a5c1c736
commit b4eb8ae2f2
6 changed files with 22 additions and 13 deletions

View File

@ -1385,7 +1385,7 @@ if ($id > 0 || ! empty($ref))
if (!empty($propal->lines))
{
$propal->print_title_list();
$propal->printLinesList();
$propal->printLinesList(0,$mysoc,$soc);
}
/*

View File

@ -1661,7 +1661,7 @@ else
if (!empty($commande->lines))
{
$commande->print_title_list();
$commande->printLinesList();
$commande->printLinesList(0,$mysoc,$soc);
}
$numlines=sizeof($commande->lines);

View File

@ -2656,7 +2656,7 @@ else
if (!empty($object->lines))
{
$object->print_title_list();
$object->printLinesList();
$object->printLinesList(0,$mysoc,$soc);
}
/*

View File

@ -2372,17 +2372,18 @@ class Form
* \param selectedrate Forcage du taux tva pre-selectionne. Mettre '' pour aucun forcage.
* \param societe_vendeuse Objet societe vendeuse
* \param societe_acheteuse Objet societe acheteuse
* \param taux_produit Taux par defaut du produit vendu
* \param idprod Id product
* \param info_bits Miscellanous information on line
* \param type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined)
* \remarks Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle.
* Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu autre que transport neuf alors la TVA par defaut=TVA du produit vendu. Fin de regle.
* Sinon la TVA proposee par defaut=0. Fin de regle.
*/
function select_tva($name='tauxtva', $selectedrate='', $societe_vendeuse='', $societe_acheteuse='', $taux_produit='', $info_bits=0)
function select_tva($name='tauxtva', $selectedrate='', $societe_vendeuse='', $societe_acheteuse='', $idprod=0, $info_bits=0, $type='')
{
print $this->load_tva($name, $selectedrate, $societe_vendeuse, $societe_acheteuse, $taux_produit, $info_bits);
print $this->load_tva($name, $selectedrate, $societe_vendeuse, $societe_acheteuse, $idprod, $info_bits, $type);
}
@ -2394,13 +2395,14 @@ class Form
* \param societe_acheteuse Objet societe acheteuse
* \param idprod Id product
* \param info_bits Miscellanous information on line
* \param type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined)
* \remarks Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle.
* Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu autre que transport neuf alors la TVA par defaut=TVA du produit vendu. Fin de regle.
* Sinon la TVA proposee par defaut=0. Fin de regle.
*/
function load_tva($name='tauxtva', $selectedrate='', $societe_vendeuse='', $societe_acheteuse='', $idprod=0, $info_bits=0)
function load_tva($name='tauxtva', $selectedrate='', $societe_vendeuse='', $societe_acheteuse='', $idprod=0, $info_bits=0, $type='')
{
global $langs,$conf,$mysoc;
@ -2429,7 +2431,7 @@ class Form
}
//var_dump($societe_acheteuse);
//print "name=$name, selectedrate=$selectedrate, seller=".$societe_vendeuse->pays_code." buyer=".$societe_acheteuse->pays_code." idprod=$idprod, info_bits=$info_bits";
//print "name=$name, selectedrate=$selectedrate, seller=".$societe_vendeuse->pays_code." buyer=".$societe_acheteuse->pays_code." idprod=$idprod, info_bits=$info_bits type=$type";
//exit;
// Get list of all VAT rates to show
@ -2442,10 +2444,17 @@ class Form
{
$code_pays="'".$mysoc->pays_code."'"; // Pour compatibilite ascendente
}
if (! empty($conf->global->SERVICES_ARE_ECOMMERCE_200238EC))
if (! empty($conf->global->SERVICES_ARE_ECOMMERCE_200238EC) && is_object($societe_acheteuse))
{
// We also add the buyer
if (! $idprod) // We don't know type of product
if (is_numeric($type))
{
if ($type == 1) // We know product is a service
{
$code_pays.=",'".$societe_acheteuse->pays_code."'";
}
}
else if (! $idprod) // We don't know type of product
{
$code_pays.=",'".$societe_acheteuse->pays_code."'";
}

View File

@ -40,7 +40,7 @@
?>
</td>
<td align="right"><?php echo $html->select_tva('tva_tx',$line->tva_tx,$seller,$buyer,'',$line->info_bits); ?></td>
<td align="right"><?php echo $html->select_tva('tva_tx',$line->tva_tx,$seller,$buyer,0,$line->info_bits,$line->product_type); ?></td>
<td align="right"><input size="6" type="text" class="flat" name="subprice" value="<?php echo price($line->subprice,0,'',0); ?>"></td>

View File

@ -316,7 +316,7 @@ if ($_GET["action"] == 'edit_price' && ($user->rights->produit->creer || $user->
// VAT
print '<tr><td>'.$langs->trans("VATRate").'</td><td>';
print $html->select_tva("tva_tx",$product->tva_tx,$mysoc,'');
print $html->select_tva("tva_tx",$product->tva_tx,$mysoc,'',$product->id);
print '</td></tr>';
// Price base
@ -376,7 +376,7 @@ if ($_GET["action"] == 'edit_price' && ($user->rights->produit->creer || $user->
if ($i == 1)
{
print '<tr><td>'.$langs->trans("VATRate").'</td><td>';
print $html->select_tva("tva_tx_".$i,$product->multiprices_tva_tx["$i"],$mysoc,'');
print $html->select_tva("tva_tx_".$i,$product->multiprices_tva_tx["$i"],$mysoc,'',$product->id);
print '</td></tr>';
}
else