add subshop filter option

This commit is contained in:
Daniel Seifert 2020-06-07 14:39:01 +02:00
parent bf70d49c73
commit d9d4947f3e
Signed by: DanielS
GPG Key ID: 6A513E13AEE66170
2 changed files with 20 additions and 8 deletions

View File

@ -61,19 +61,31 @@ abstract class taxRateAbstract
die(); die();
}; };
$this->changeDefaultTaxRates(); $this->changeTaxRates();
} }
/** /**
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException * @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException
* @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException * @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException
*/ */
public function changeDefaultTaxRates() { public function changeTaxRates()
{
$shop = new Shop(); $shop = new Shop();
$q = "SELECT oxid FROM " . $shop->getCoreTableName() . " WHERE 1"; // use shop list, when parameter -d is set
$opts = getopt("s:");
$where = isset($opts['s']) ?
"oxid IN (".implode(', ', array_map(
function ($a) {return DatabaseProvider::getDb()->quote(trim($a));},
explode(',', $opts['s']))
).")" :
"1";
$q = "SELECT oxid FROM " . $shop->getCoreTableName() . " WHERE ".$where ;
foreach ( DatabaseProvider::getDb( DatabaseProvider::FETCH_MODE_ASSOC )->getAll( $q ) as $record ) { foreach ( DatabaseProvider::getDb( DatabaseProvider::FETCH_MODE_ASSOC )->getAll( $q ) as $record ) {
$shopId = (int) $record['oxid']; $shopId = (int) $record["oxid"];
$this->switchToShop($shopId); $this->switchToShop($shopId);
$this->changeDefaultTaxRate( $shopId ); $this->changeDefaultTaxRate( $shopId );
$this->changeArticlesTaxRate( $shopId ); $this->changeArticlesTaxRate( $shopId );

View File

@ -10,13 +10,13 @@ Die Anpassung kann über entsprechende Cronjobs zeitgesteuert zum Stichtermin au
Die Scripte ändern: Die Scripte ändern:
- den im Shop eingestellten allgemeinen Steuersatz - den im Shop eingestellten allgemeinen Steuersatz
- an den Artikeln hinterlegte spezielle Steuersätze - an den Artikeln hinterlegten speziellen Steuersätzen
- von 19% zu 16% und - von 19% zu 16% und
- von 7% zu 5% - von 7% zu 5%
- sowie später auch zurück - sowie später auch zurück
In Multishopinstallationen (Enterprise Edition) werden die Angaben innerhalb jedes bestehenden Subshop geändert. Bei Multishopinstallationen (Enterprise Edition) können die zu aktualisierenden Subshops definiert werden.
Die Scripte prüfen anhand der Systemzeit mit kleinen Toleranzen (+/-3 Tage um das jeweilige Umstellungsdatum), ob die Veränderung ausgeführt werden darf. Damit wird verhindert, dass ein versehentliches Auslösen zur falschen Shopkonfiguration führt. Die Scripte prüfen anhand der Systemzeit mit kleinen Toleranzen (+/-3 Tage um das jeweilige Umstellungsdatum), ob die Veränderung ausgeführt werden darf. Damit wird verhindert, dass ein versehentliches Auslösen zur falschen Shopkonfiguration führt.
@ -30,8 +30,6 @@ Weiterhin werden auch die absoluten Artikelpreise und Berechnungswege nicht ange
Passen Sie die Artikelpreise danach ggf. an. Passen Sie die Artikelpreise danach ggf. an.
In Multishopinstallationen (Enterprise Edition) können einzelne Subshops nicht von Änderungen ausgenommen werden. Es werden immer alle Subshops kontrolliert.
Gibt es in Ihrem Shop reguläre Steuersätze mit 16% oder 5%, werden diese beim Zurücksetzen ebenfalls auf 19% bzw. 7% angehoben. Eine Unterscheidung, welcher Steuersatz vorab reduziert wurde, gibt es nicht. Diese Anpassung muss dann manuell durchgeführt werden. Gibt es in Ihrem Shop reguläre Steuersätze mit 16% oder 5%, werden diese beim Zurücksetzen ebenfalls auf 19% bzw. 7% angehoben. Eine Unterscheidung, welcher Steuersatz vorab reduziert wurde, gibt es nicht. Diese Anpassung muss dann manuell durchgeführt werden.
## Systemanforderung ## Systemanforderung
@ -69,6 +67,8 @@ Für die Einrichtung der Cronjobs kontakten Sie bei Fragen bitte Ihren Hostingpr
Püfen Sie nach Ausführung der Scripte bitte zeitnah Ihren Shop auf richtige Funktion. Püfen Sie nach Ausführung der Scripte bitte zeitnah Ihren Shop auf richtige Funktion.
Zu Definition, welche Subshops bearbeitet werden sollen, kann der Parameter `-s 1,3,4` verwendet werden. Setzen Sie statt der `1,3,4` eine kommagetrennte Liste Ihrer gewünschten Shop-IDs ein. Ohne Angabe des Filters werden alle vorhandenen Subshops bearbeitet.
## Deinstallation ## Deinstallation
Entfernen Sie die eingerichteten Cronjobs nach den beiden Ausführungszeitpunkten, um versehentliche Auslösungen zu vermeiden. Entfernen Sie die eingerichteten Cronjobs nach den beiden Ausführungszeitpunkten, um versehentliche Auslösungen zu vermeiden.