check if company has localtaxes for its country

This commit is contained in:
Christophe Battarel 2012-11-27 13:05:21 +01:00
parent 6c9d6eda56
commit e919ce893a
3 changed files with 99 additions and 70 deletions

View File

@ -547,7 +547,7 @@ if ($action == 'edit' || $action == 'updateedit')
/* /*
* Local Taxes * Local Taxes
*/ */
if ($mysoc->country_code=='ES') if ($mysoc->hasLocalTax(1))
{ {
// Local Tax 1 // Local Tax 1
print '<br>'; print '<br>';
@ -576,7 +576,9 @@ if ($action == 'edit' || $action == 'updateedit')
print "</table>"; print "</table>";
print "</td></tr>\n"; print "</td></tr>\n";
print "</table>"; print "</table>";
}
if ($mysoc->hasLocalTax(2))
{
// Local Tax 2 // Local Tax 2
print '<br>'; print '<br>';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
@ -921,7 +923,7 @@ else
/* /*
* Local Taxes * Local Taxes
*/ */
if ($mysoc->country_code=='ES') if ($mysoc->hasLocalTax(1))
{ {
// Local Tax 1 // Local Tax 1
print '<br>'; print '<br>';
@ -951,7 +953,9 @@ else
print "</td></tr>\n"; print "</td></tr>\n";
print "</table>"; print "</table>";
}
if ($mysoc->hasLocalTax(2))
{
// Local Tax 2 // Local Tax 2
print '<br>'; print '<br>';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';

View File

@ -2570,6 +2570,43 @@ class Societe extends CommonObject
$this->idprof6='idprof6'; $this->idprof6='idprof6';
} }
/**
* Check if localtax define for company
* Used to build previews or test instances.
* id must be 0 if object instance is a specimen.
*
* @param localTaxNum $localTaxNum 1 or 2
* @return boolean true / false
*/
function hasLocalTax($localTaxNum) {
global $user,$langs,$conf;
// check parameter
if ($localTaxNum != 1 && $localTaxNum != 2)
return false;
// Search local taxes
$sql = "SELECT t.localtax1, t.localtax2";
$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$this->country_code."'";
$sql .= " AND t.active = 1";
if ($localTaxNum == 1)
$sql .= " AND t.localtax1 <> 0";
elseif ($localTaxNum == 2)
$sql .= " AND t.localtax2 <> 0";
dol_syslog("get_localtax sql=".$sql);
$resql=$this->db->query($sql);
if ($resql)
{
return ($this->db->num_rows($resql) > 0);
}
else
return false;
}
} }
?> ?>

View File

@ -907,30 +907,26 @@ else
print '<tr><td>'.$langs->trans('Capital').'</td><td colspan="3"><input type="text" name="capital" size="10" value="'.$object->capital.'"> '.$langs->trans("Currency".$conf->currency).'</td></tr>'; print '<tr><td>'.$langs->trans('Capital').'</td><td colspan="3"><input type="text" name="capital" size="10" value="'.$object->capital.'"> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
// Local Taxes // Local Taxes
// TODO add specific function by country if($mysoc->hasLocalTax(1) && $mysoc->hasLocalTax(2) && $mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1")
if($mysoc->country_code=='ES')
{ {
if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") print '<tr><td>'.$langs->trans("LocalTax1IsUsed").'</td><td>';
{ print $form->selectyesno('localtax1assuj_value',0,1);
print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td>'; print '</td><td>'.$langs->trans("LocalTax2IsUsed").'</td><td>';
print $form->selectyesno('localtax1assuj_value',0,1); print $form->selectyesno('localtax2assuj_value',0,1);
print '</td><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td>'; print '</td></tr>';
print $form->selectyesno('localtax2assuj_value',0,1);
print '</td></tr>';
} }
elseif($mysoc->localtax1_assuj=="1") elseif($mysoc->hasLocalTax(1) && $mysoc->localtax1_assuj=="1")
{ {
print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("LocalTax1IsUsed").'</td><td colspan="3">';
print $form->selectyesno('localtax1assuj_value',0,1); print $form->selectyesno('localtax1assuj_value',0,1);
print '</td><tr>'; print '</td><tr>';
} }
elseif($mysoc->localtax2_assuj=="1") elseif($mysoc->hasLocalTax(2) && $mysoc->localtax2_assuj=="1")
{ {
print '<tr><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("LocalTax2IsUsed").'</td><td colspan="3">';
print $form->selectyesno('localtax2assuj_value',0,1); print $form->selectyesno('localtax2assuj_value',0,1);
print '</td><tr>'; print '</td><tr>';
}
} }
if (! empty($conf->global->MAIN_MULTILANGS)) if (! empty($conf->global->MAIN_MULTILANGS))
@ -1322,31 +1318,27 @@ else
print '</tr>'; print '</tr>';
// Local Taxes // Local Taxes
// TODO add specific function by country if($mysoc->hasLocalTax(1) && $mysoc->hasLocalTax(2) && $mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1")
if($mysoc->country_code=='ES')
{ {
if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td>';
{ print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1);
print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td>'; print '</td><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td>';
print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1); print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1);
print '</td><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td>'; print '</td></tr>';
print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1);
print '</td></tr>';
} }
elseif($mysoc->localtax1_assuj=="1") elseif($mysoc->hasLocalTax(1) && $mysoc->localtax1_assuj=="1")
{ {
print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td colspan="3">';
print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1); print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1);
print '</td></tr>'; print '</td></tr>';
} }
elseif($mysoc->localtax2_assuj=="1") elseif($mysoc->hasLocalTax(2) && $mysoc->localtax2_assuj=="1")
{ {
print '<tr><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td colspan="3">';
print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1); print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1);
print '</td></tr>'; print '</td></tr>';
}
} }
// Type - Size // Type - Size
@ -1642,30 +1634,26 @@ else
print '</tr>'; print '</tr>';
// Local Taxes // Local Taxes
// TODO add specific function by country if($mysoc->hasLocalTax(1) && $mysoc->hasLocalTax(2) && $mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1")
if($mysoc->country_code=='ES')
{ {
if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td>';
{ print yn($object->localtax1_assuj);
print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td>'; print '</td><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td>';
print yn($object->localtax1_assuj); print yn($object->localtax2_assuj);
print '</td><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td>'; print '</td></tr>';
print yn($object->localtax2_assuj);
print '</td></tr>';
} }
elseif($mysoc->localtax1_assuj=="1") elseif($mysoc->hasLocalTax(1) && $mysoc->localtax1_assuj=="1")
{ {
print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("LocalTax1IsUsedES").'</td><td colspan="3">';
print yn($object->localtax1_assuj); print yn($object->localtax1_assuj);
print '</td><tr>'; print '</td><tr>';
} }
elseif($mysoc->localtax2_assuj=="1") elseif($mysoc->hasLocalTax(2) && $mysoc->localtax2_assuj=="1")
{ {
print '<tr><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("LocalTax2IsUsedES").'</td><td colspan="3">';
print yn($object->localtax2_assuj); print yn($object->localtax2_assuj);
print '</td><tr>'; print '</td><tr>';
}
} }
// Type + Staff // Type + Staff