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

@ -231,18 +231,18 @@ if ($_POST['action'] == 'addmilestone')
{
$propal = new Propal($db);
$propal->fetch($_GET["id"]);
$milestone_error=0;
if ($_POST['milestone_label'] == $langs->trans('Label') || $_POST['milestone_desc'] == $langs->trans('Description'))
{
$milestone_error++;
$mesg = '<div class="error">'.$langs->trans("ErrorMilestone").'</div>';
}
else
else
{
$milestone = new Milestone($db);
$milestone->label = $_POST['milestone_label'];
$milestone->description = $_POST['milestone_desc'];
$milestone->elementtype = $propal->element;
@ -1651,7 +1651,8 @@ 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="lineid" value="'.$_GET["lineid"].'">';
print '<input type="hidden" name="id" value="'.$propal->id.'">';
print '<input type="hidden" name="lineid" value="'.$_GET["lineid"].'">';
print '<tr '.$bc[$var].'>';
print '<td>';
print '<a name="'.$objp->rowid.'"></a>'; // ancre pour retourner sur la ligne
@ -1727,14 +1728,14 @@ if ($id > 0 || ! empty($ref))
if ($propal->statut == 0 && $user->rights->propale->creer && $_GET["action"] <> 'editline')
{
$var=true;
if ($conf->milestone->enabled)
{
formAddMilestone($propal);
$var=!$var;
}
if ($conf->global->PRODUIT_USE_MARKUP) $colspan = 'colspan="2"';
print '<tr class="liste_titre">';
print '<td '.$colspan.'>';
@ -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.'>';
@ -1772,7 +1774,7 @@ if ($id > 0 || ! empty($ref))
print '<textarea class="flat" cols="70" name="dp_desc" rows="'.$nbrows.'">'.$_POST["dp_desc"].'</textarea>';
}
print '</td>';
print '<td align="right">';
if ($societe->tva_assuj == "0")
print '<input type="hidden" name="np_tva_tx" value="0">0';
@ -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

@ -2586,35 +2586,29 @@ 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()))
{
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;
// 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
return 0;

View File

@ -159,12 +159,14 @@ 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);
$mc = new Multicompany($db);
$mc->getEntities(0,1);
$select_entity=$mc->select_entities($mc->entities,$lastentity,'tabindex="3"');
$select_entity=$mc->select_entities($mc->entities,$lastentity,'tabindex="3"');
}
}
// Security graphical code