|
@@ -143,15 +143,35 @@ if (empty($reshook)) {
|
|
|
$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c";
|
|
|
$sql .= " WHERE t.fk_pays = c.rowid AND c.code = '".$db->escape($mysoc->country_code)."'";
|
|
|
$sql .= " AND t.taux = ".((float) $tva_tx)." AND t.active = 1";
|
|
|
- $sql .= " AND t.code ='".$db->escape($vatratecode)."'";
|
|
|
+ $sql .= " AND t.code = '".$db->escape($vatratecode)."'";
|
|
|
+ $resql = $db->query($sql);
|
|
|
+ if ($resql) {
|
|
|
+ $obj = $db->fetch_object($resql);
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // Get record with empty code
|
|
|
+ $sql = "SELECT t.rowid, t.code, t.recuperableonly, t.localtax1, t.localtax2, t.localtax1_type, t.localtax2_type";
|
|
|
+ $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c";
|
|
|
+ $sql .= " WHERE t.fk_pays = c.rowid AND c.code = '".$db->escape($mysoc->country_code)."'";
|
|
|
+ $sql .= " AND t.taux = ".((float) $tva_tx)." AND t.active = 1";
|
|
|
+ $sql .= " AND t.code = ''";
|
|
|
$resql = $db->query($sql);
|
|
|
if ($resql) {
|
|
|
$obj = $db->fetch_object($resql);
|
|
|
- $npr = $obj->recuperableonly;
|
|
|
- $localtax1 = $obj->localtax1;
|
|
|
- $localtax2 = $obj->localtax2;
|
|
|
- $localtax1_type = $obj->localtax1_type;
|
|
|
- $localtax2_type = $obj->localtax2_type;
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -258,11 +278,37 @@ if (empty($reshook)) {
|
|
|
$resql = $db->query($sql);
|
|
|
if ($resql) {
|
|
|
$obj = $db->fetch_object($resql);
|
|
|
- $npr = $obj->recuperableonly;
|
|
|
- $localtax1 = $obj->localtax1;
|
|
|
- $localtax2 = $obj->localtax2;
|
|
|
- $localtax1_type = $obj->localtax1_type;
|
|
|
- $localtax2_type = $obj->localtax2_type;
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
+
|
|
|
+ // If spain, we don't use the localtax found into tax record in database with same code, but using the get_localtax rule.
|
|
|
+ if (in_array($mysoc->country_code, array('ES'))) {
|
|
|
+ $localtax1 = get_localtax($tva_tx, 1);
|
|
|
+ $localtax2 = get_localtax($tva_tx, 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // Get record with empty code
|
|
|
+ $sql = "SELECT t.rowid, t.code, t.recuperableonly, t.localtax1, t.localtax2, t.localtax1_type, t.localtax2_type";
|
|
|
+ $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c";
|
|
|
+ $sql .= " WHERE t.fk_pays = c.rowid AND c.code = '".$db->escape($mysoc->country_code)."'";
|
|
|
+ $sql .= " AND t.taux = ".((float) $tva_tx)." AND t.active = 1";
|
|
|
+ $sql .= " AND t.code = ''";
|
|
|
+ $resql = $db->query($sql);
|
|
|
+ if ($resql) {
|
|
|
+ $obj = $db->fetch_object($resql);
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -311,19 +357,40 @@ if (empty($reshook)) {
|
|
|
$resql = $db->query($sql);
|
|
|
if ($resql) {
|
|
|
$obj = $db->fetch_object($resql);
|
|
|
- $npr = $obj->recuperableonly;
|
|
|
- $localtax1 = $obj->localtax1;
|
|
|
- $localtax2 = $obj->localtax2;
|
|
|
- $localtax1_type = $obj->localtax1_type;
|
|
|
- $localtax2_type = $obj->localtax2_type;
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
|
|
|
- // If spain, we don't use the localtax found into tax record in database with same code, but using the get_localtax rule
|
|
|
+ // If spain, we don't use the localtax found into tax record in database with same code, but using the get_localtax rule.
|
|
|
if (in_array($mysoc->country_code, array('ES'))) {
|
|
|
$localtax1 = get_localtax($tva_tx, 1);
|
|
|
$localtax2 = get_localtax($tva_tx, 2);
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ // Get record with empty code
|
|
|
+ $sql = "SELECT t.rowid, t.code, t.recuperableonly, t.localtax1, t.localtax2, t.localtax1_type, t.localtax2_type";
|
|
|
+ $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c";
|
|
|
+ $sql .= " WHERE t.fk_pays = c.rowid AND c.code = '".$db->escape($mysoc->country_code)."'";
|
|
|
+ $sql .= " AND t.taux = ".((float) $tva_tx)." AND t.active = 1";
|
|
|
+ $sql .= " AND t.code = ''";
|
|
|
+ $resql = $db->query($sql);
|
|
|
+ if ($resql) {
|
|
|
+ $obj = $db->fetch_object($resql);
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
$pricestoupdate[0] = array(
|
|
|
'price' => $newprice,
|
|
|
'price_min' => $newprice_min,
|
|
@@ -534,11 +601,37 @@ if (empty($reshook)) {
|
|
|
$resql = $db->query($sql);
|
|
|
if ($resql) {
|
|
|
$obj = $db->fetch_object($resql);
|
|
|
- $npr = $obj->recuperableonly;
|
|
|
- $localtax1 = $obj->localtax1;
|
|
|
- $localtax2 = $obj->localtax2;
|
|
|
- $localtax1_type = $obj->localtax1_type;
|
|
|
- $localtax2_type = $obj->localtax2_type;
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
+
|
|
|
+ // If spain, we don't use the localtax found into tax record in database with same code, but using the get_localtax rule.
|
|
|
+ if (in_array($mysoc->country_code, array('ES'))) {
|
|
|
+ $localtax1 = get_localtax($tva_tx, 1);
|
|
|
+ $localtax2 = get_localtax($tva_tx, 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // Get record with empty code
|
|
|
+ $sql = "SELECT t.rowid, t.code, t.recuperableonly, t.localtax1, t.localtax2, t.localtax1_type, t.localtax2_type";
|
|
|
+ $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c";
|
|
|
+ $sql .= " WHERE t.fk_pays = c.rowid AND c.code = '".$db->escape($mysoc->country_code)."'";
|
|
|
+ $sql .= " AND t.taux = ".((float) $tva_tx)." AND t.active = 1";
|
|
|
+ $sql .= " AND t.code = ''";
|
|
|
+ $resql = $db->query($sql);
|
|
|
+ if ($resql) {
|
|
|
+ $obj = $db->fetch_object($resql);
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -627,11 +720,37 @@ if (empty($reshook)) {
|
|
|
$resql = $db->query($sql);
|
|
|
if ($resql) {
|
|
|
$obj = $db->fetch_object($resql);
|
|
|
- $npr = $obj->recuperableonly;
|
|
|
- $localtax1 = $obj->localtax1;
|
|
|
- $localtax2 = $obj->localtax2;
|
|
|
- $localtax1_type = $obj->localtax1_type;
|
|
|
- $localtax2_type = $obj->localtax2_type;
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
+
|
|
|
+ // If spain, we don't use the localtax found into tax record in database with same code, but using the get_localtax rule.
|
|
|
+ if (in_array($mysoc->country_code, array('ES'))) {
|
|
|
+ $localtax1 = get_localtax($tva_tx, 1);
|
|
|
+ $localtax2 = get_localtax($tva_tx, 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // Get record with empty code
|
|
|
+ $sql = "SELECT t.rowid, t.code, t.recuperableonly, t.localtax1, t.localtax2, t.localtax1_type, t.localtax2_type";
|
|
|
+ $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c";
|
|
|
+ $sql .= " WHERE t.fk_pays = c.rowid AND c.code = '".$db->escape($mysoc->country_code)."'";
|
|
|
+ $sql .= " AND t.taux = ".((float) $tva_tx)." AND t.active = 1";
|
|
|
+ $sql .= " AND t.code = ''";
|
|
|
+ $resql = $db->query($sql);
|
|
|
+ if ($resql) {
|
|
|
+ $obj = $db->fetch_object($resql);
|
|
|
+ if ($obj) {
|
|
|
+ $npr = $obj->recuperableonly;
|
|
|
+ $localtax1 = $obj->localtax1;
|
|
|
+ $localtax2 = $obj->localtax2;
|
|
|
+ $localtax1_type = $obj->localtax1_type;
|
|
|
+ $localtax2_type = $obj->localtax2_type;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -829,22 +948,23 @@ if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_
|
|
|
}
|
|
|
|
|
|
// TVA
|
|
|
+ print '<!-- Default VAT Rate -->';
|
|
|
print '<tr><td class="titlefieldcreate">'.$langs->trans("DefaultTaxRate").'</td><td>';
|
|
|
|
|
|
$positiverates = '';
|
|
|
if (price2num($object->tva_tx)) {
|
|
|
- $positiverates .= ($positiverates ? '/' : '').price2num($object->tva_tx);
|
|
|
+ $positiverates .= ($positiverates ? '<span class="opacitymedium">/</span>' : '').price2num($object->tva_tx);
|
|
|
}
|
|
|
if (price2num($object->localtax1_type)) {
|
|
|
- $positiverates .= ($positiverates ? '/' : '').price2num($object->localtax1_tx);
|
|
|
+ $positiverates .= ($positiverates ? '<span class="opacitymedium">/</span>' : '').price2num($object->localtax1_tx);
|
|
|
}
|
|
|
if (price2num($object->localtax2_type)) {
|
|
|
- $positiverates .= ($positiverates ? '/' : '').price2num($object->localtax2_tx);
|
|
|
+ $positiverates .= ($positiverates ? '<span class="opacitymedium">/</span>' : '').price2num($object->localtax2_tx);
|
|
|
}
|
|
|
if (empty($positiverates)) {
|
|
|
$positiverates = '0';
|
|
|
}
|
|
|
- echo vatrate($positiverates.($object->default_vat_code ? ' ('.$object->default_vat_code.')' : ''), '%', $object->tva_npr);
|
|
|
+ print vatrate($positiverates.($object->default_vat_code ? ' ('.$object->default_vat_code.')' : ''), true, $object->tva_npr, 1);
|
|
|
/*
|
|
|
if ($object->default_vat_code)
|
|
|
{
|