From e919ce893a1c04fda7fa3ec7a8143aad85412d56 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Tue, 27 Nov 2012 13:05:21 +0100 Subject: [PATCH] check if company has localtaxes for its country --- htdocs/admin/company.php | 12 ++- htdocs/societe/class/societe.class.php | 37 ++++++++ htdocs/societe/soc.php | 120 +++++++++++-------------- 3 files changed, 99 insertions(+), 70 deletions(-) diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index b1838928511..30158915f2e 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -547,7 +547,7 @@ if ($action == 'edit' || $action == 'updateedit') /* * Local Taxes */ - if ($mysoc->country_code=='ES') + if ($mysoc->hasLocalTax(1)) { // Local Tax 1 print '
'; @@ -576,7 +576,9 @@ if ($action == 'edit' || $action == 'updateedit') print ""; print "\n"; print ""; - + } + if ($mysoc->hasLocalTax(2)) + { // Local Tax 2 print '
'; print ''; @@ -921,7 +923,7 @@ else /* * Local Taxes */ - if ($mysoc->country_code=='ES') + if ($mysoc->hasLocalTax(1)) { // Local Tax 1 print '
'; @@ -951,7 +953,9 @@ else print "\n"; print "
"; - + } + if ($mysoc->hasLocalTax(2)) + { // Local Tax 2 print '
'; print ''; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 378cae1f8b0..9e12a508db5 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -2569,6 +2569,43 @@ class Societe extends CommonObject $this->idprof5='idprof5'; $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; + + } } diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index d922ea8f51d..c90aa0b9df0 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -907,30 +907,26 @@ else print ''; // Local Taxes - // TODO add specific function by country - if($mysoc->country_code=='ES') + if($mysoc->hasLocalTax(1) && $mysoc->hasLocalTax(2) && $mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") { - if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") - { - print ''; + print ''; - } - elseif($mysoc->localtax1_assuj=="1") - { - print ''; - } - elseif($mysoc->localtax2_assuj=="1") - { - print ''; - } + } + elseif($mysoc->hasLocalTax(1) && $mysoc->localtax1_assuj=="1") + { + print ''; + } + elseif($mysoc->hasLocalTax(2) && $mysoc->localtax2_assuj=="1") + { + print ''; } if (! empty($conf->global->MAIN_MULTILANGS)) @@ -1322,31 +1318,27 @@ else print ''; // Local Taxes - // TODO add specific function by country - if($mysoc->country_code=='ES') + if($mysoc->hasLocalTax(1) && $mysoc->hasLocalTax(2) && $mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") { - if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") - { - print ''; + print ''; - } - elseif($mysoc->localtax1_assuj=="1") - { - print ''; + } + elseif($mysoc->hasLocalTax(1) && $mysoc->localtax1_assuj=="1") + { + print ''; - } - elseif($mysoc->localtax2_assuj=="1") - { - print ''; - } + } + elseif($mysoc->hasLocalTax(2) && $mysoc->localtax2_assuj=="1") + { + print ''; } // Type - Size @@ -1642,30 +1634,26 @@ else print ''; // Local Taxes - // TODO add specific function by country - if($mysoc->country_code=='ES') + if($mysoc->hasLocalTax(1) && $mysoc->hasLocalTax(2) && $mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") { - if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") - { - print ''; + print ''; - } - elseif($mysoc->localtax1_assuj=="1") - { - print ''; - } - elseif($mysoc->localtax2_assuj=="1") - { - print ''; - } + } + elseif($mysoc->hasLocalTax(1) && $mysoc->localtax1_assuj=="1") + { + print ''; + } + elseif($mysoc->hasLocalTax(2) && $mysoc->localtax2_assuj=="1") + { + print ''; } // Type + Staff
'.$langs->trans('Capital').' '.$langs->trans("Currency".$conf->currency).'
'.$langs->trans("LocalTax1IsUsedES").''; - print $form->selectyesno('localtax1assuj_value',0,1); - print ''.$langs->trans("LocalTax2IsUsedES").''; - print $form->selectyesno('localtax2assuj_value',0,1); - print '
'.$langs->trans("LocalTax1IsUsed").''; + print $form->selectyesno('localtax1assuj_value',0,1); + print ''.$langs->trans("LocalTax2IsUsed").''; + print $form->selectyesno('localtax2assuj_value',0,1); + print '
'.$langs->trans("LocalTax1IsUsedES").''; - print $form->selectyesno('localtax1assuj_value',0,1); - print '
'.$langs->trans("LocalTax2IsUsedES").''; - print $form->selectyesno('localtax2assuj_value',0,1); - print '
'.$langs->trans("LocalTax1IsUsed").''; + print $form->selectyesno('localtax1assuj_value',0,1); + print '
'.$langs->trans("LocalTax2IsUsed").''; + print $form->selectyesno('localtax2assuj_value',0,1); + print '
'.$langs->trans("LocalTax1IsUsedES").''; - print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1); - print ''.$langs->trans("LocalTax2IsUsedES").''; - print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1); - print '
'.$langs->trans("LocalTax1IsUsedES").''; + print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1); + print ''.$langs->trans("LocalTax2IsUsedES").''; + print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1); + print '
'.$langs->trans("LocalTax1IsUsedES").''; - print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1); - print '
'.$langs->trans("LocalTax1IsUsedES").''; + print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1); + print '
'.$langs->trans("LocalTax2IsUsedES").''; - print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1); - print '
'.$langs->trans("LocalTax2IsUsedES").''; + print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1); + print '
'.$langs->trans("LocalTax1IsUsedES").''; - print yn($object->localtax1_assuj); - print ''.$langs->trans("LocalTax2IsUsedES").''; - print yn($object->localtax2_assuj); - print '
'.$langs->trans("LocalTax1IsUsedES").''; + print yn($object->localtax1_assuj); + print ''.$langs->trans("LocalTax2IsUsedES").''; + print yn($object->localtax2_assuj); + print '
'.$langs->trans("LocalTax1IsUsedES").''; - print yn($object->localtax1_assuj); - print '
'.$langs->trans("LocalTax2IsUsedES").''; - print yn($object->localtax2_assuj); - print '
'.$langs->trans("LocalTax1IsUsedES").''; + print yn($object->localtax1_assuj); + print '
'.$langs->trans("LocalTax2IsUsedES").''; + print yn($object->localtax2_assuj); + print '