2
0
forked from Wavyzz/dolibarr

Fix: A better fix for default vat with 2 countries in EEC when customer nature is unknown.

Fix: Regression in propal after renaming propalid into id
WARNING: Beta has started. Only fixes must be committed until a branch is created.
This commit is contained in:
Laurent Destailleur
2010-06-30 23:22:00 +00:00
parent 416e993ad6
commit e4d6124690
4 changed files with 44 additions and 43 deletions

View File

@@ -1651,6 +1651,7 @@ if ($id > 0 || ! empty($ref))
print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$propal->id.'#'.$objp->rowid.'" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="updateligne">';
print '<input type="hidden" name="id" value="'.$propal->id.'">';
print '<input type="hidden" name="lineid" value="'.$_GET["lineid"].'">';
print '<tr '.$bc[$var].'>';
print '<td>';
@@ -1748,9 +1749,10 @@ if ($id > 0 || ! empty($ref))
print "</tr>\n";
// Add free products/services form
print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$propal->id.'#add" method="POST">';
print "\n".'<form action="'.$_SERVER["PHP_SELF"].'?id='.$propal->id.'#add" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="addline">';
print '<input type="hidden" name="id" value="'.$propal->id.'">';
print '<tr '.$bc[$var].">\n";
print '<td '.$colspan.'>';
@@ -1785,7 +1787,7 @@ if ($id > 0 || ! empty($ref))
print '<td align="center" valign="middle" colspan="4"><input type="submit" class="button" value="'.$langs->trans('Add').'" name="addline"></td>';
print '</tr>';
print '</form>';
print '</form>'."\n";
// Ajout de produits/services predefinis
if ($conf->product->enabled || $conf->service->enabled)
@@ -1814,9 +1816,10 @@ if ($id > 0 || ! empty($ref))
print '<td align="right">'.$langs->trans('ReductionShort').'</td>';
print '<td colspan="4">&nbsp;</td>';
print '</tr>';
print '<form id="addpredefinedproduct" action="'.$_SERVER["PHP_SELF"].'?id='.$propal->id.'#add" method="POST">';
print "\n".'<form id="addpredefinedproduct" action="'.$_SERVER["PHP_SELF"].'?id='.$propal->id.'#add" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="addline">';
print '<input type="hidden" name="id" value="'.$propal->id.'">';
$var=!$var;

View File

@@ -234,6 +234,7 @@ if ($id > 0 || ! empty($ref))
$var = false;
print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$id.'" method="POST">';
print '<input type="hidden" name="id" value="'.$id.'">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="addcontact">';
print '<input type="hidden" name="source" value="internal">';
@@ -265,6 +266,7 @@ if ($id > 0 || ! empty($ref))
print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$id.'" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="addcontact">';
print '<input type="hidden" name="id" value="'.$id.'">';
print '<input type="hidden" name="source" value="external">';
// Ligne ajout pour contact externe

View File

@@ -2587,33 +2587,27 @@ function get_default_tva($societe_vendeuse, $societe_acheteuse, $taux_produit, $
// Si (vendeur et acheteur dans Communaute europeenne) et (bien vendu = moyen de transports neuf comme auto, bateau, avion) alors 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.
// Non gere
// LVM modif car BUG de non prise en compte 'naturel' de "Affilié à la TVA" et prise en compte 'trop forte' de Num TVA vide...
// Explication plus fine : l'information "Affilié à la TVA" n'est à utiliser que pour les tiers 'vendeur' (nous ou fournisseur)
// et non 'acheteur' (les 'prospects') comme on pourrait le penser.
// Il ne faut pas non plus que le non remplissage
// du champ du numéro de TVA Intra empêche la mise de la TVA à 0 lorsque l'on
// vend dans l'union européenne (en étant soi même dans l'union). En effet lorsque l'on
// crée la proposition on ne connait pas forcément cette information du prospect.
/*
// Si (vendeur et acheteur dans Communaute europeenne) et (acheteur = particulier ou entreprise sans num TVA intra) alors TVA par defaut=TVA du produit vendu. Fin de regle
if (($societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC()) && ! $societe_acheteuse->tva_intra)
// Si (vendeur et acheteur dans Communaute europeenne) et (acheteur = entreprise) alors TVA par defaut=0. Fin de regle
// Si (vendeur et acheteur dans Communaute europeenne) et (acheteur = particulier) alors TVA par defaut=TVA du produit vendu. Fin de regle
if (($societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC()))
{
// Define if third party is treated as company of not when nature is unknown
$isacompany=empty($conf->global->MAIN_UNKNOWN_CUSTOMERS_ARE_COMPANIES)?0:1; // 0 by default
if (! empty($societe_acheteuse->tva_intra)) $isacompany=1;
else if (! empty($societe_acheteuse->typent_code) && in_array($societe_acheteuse->typent_code,array('TE_PRIVATE'))) $isacompany=0;
else if (! empty($societe_acheteuse->typent_code) && in_array($societe_acheteuse->typent_code,array('TE_SMALL','TE_MEDIUM','TE_LARGE'))) $isacompany=1;
if ($isacompany)
{
return 0;
}
else
{
if ($idprod) return get_product_vat_for_country($idprod,$societe_vendeuse->pays_code);
if (strlen($taux_produit) == 0) return -1; // Si taux produit = '', on ne peut determiner taux tva
return $taux_produit;
}
// Si (vendeur et acheteur dans Communaute europeenne) et (acheteur = entreprise avec num TVA intra) alors TVA par defaut=0. Fin de regle
if (($societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC()) && $societe_acheteuse->tva_intra)
{
return 0;
}
*/
if ($societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC())
{
return 0;
}
// Fin LVM Modif
// Sinon la TVA proposee par defaut=0. Fin de regle.
// Rem: Cela signifie qu'au moins un des 2 est hors Communaute europeenne et que le pays differe

View File

@@ -159,13 +159,15 @@ function dol_loginfunction($langs,$conf,$mysoc)
$select_entity='';
if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY))
{
require_once(DOL_DOCUMENT_ROOT.'/multicompany/class/multicompany.class.php');
$res=@include_once(DOL_DOCUMENT_ROOT.'/multicompany/class/multicompany.class.php');
if ($res)
{
$mc = new Multicompany($db);
$mc->getEntities(0,1);
$select_entity=$mc->select_entities($mc->entities,$lastentity,'tabindex="3"');
}
}
// Security graphical code
$captcha=0;