Datenkraft DISCO 3.1.2 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.1.2 Release (r4949).
Released on 10.10.2011.
Es wird keine Changelog Einträge mehr geben ... siehe
http://wiki.datenkraft.com/index.php/Datenkraft_DISCO_Suite
Für Änderungen
Datenkraft DISCO 3.1.1 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.1.1 Release (r4890).
Released on 28.09.2011.
http://wiki.datenkraft.com/index.php/DISCO_Suite_3.1.1
==TODOs==
* CORE
** Auf aktuelle FancyBox updaten (1.3.4 - wir haben noch 1.3.1 in Verwendung)
** PHPExcel auf neue Version upaten
** Wenn möglich, die Methode getDataAsArray protected machen (in allen Wrapper-Klassen)
==Features==
* CORE
* CMS
* SHOP
** neue Kategorie-Funktion "Automatische Befüllung mit als NEU markierten Produkten" hinzugefügt.
** Verwaltung von Produkt-Typen inkl. Bildupload im Backend
==Changelog==
* CORE
** Bei setEditTypeAjaxSelect kann eine minimale Länge für den Start der Auto-Complete Suche angegeben werden.
** Tippfehler in Datenkraft_Registry beseitigt
*** setDateFactoy -> setDateFactory
*** getDateFactoy-> getDateFactory
*** setLogFactoy-> setLogFactory
*** getLogFactoy-> getLogFactory
*** setCacheFactoy-> setCacheFactory
*** getCacheFactoy-> getCacheFactory
** Massive Korrekturen an Authorization-Klassen
*** Konstruktoren wurden auf "protected" gesetzt:
**** Datenkraft_Authorization
**** Datenkraft_Backend_Authorization
**** Cms_Customer_Authorization
**** Shop_Authorization
*** Zugriffe dürfen nur noch via ::singleton() erfolgen
*** in Backend Controller- bzw. Pageview-Klassen sollte die Methode getBackendAuthorizationObject() verwendet werden!!!
** Update der Smarty-Template Engine auf version 3.0.8
** DISCO Dialog kann nun die Action nicht mehr 2mal ausführen.
** Neues DK-Action-Target: "submitcallback" hinzugefügt. Für individuelle Backend-Ansichten, ruft die Action per Ajax auf und anschließend die optional definierte JS-Callback Funktion.
** Schweren Fehler bei "textajax" Feldern behoben - jetzt funktioniert das Blättern wieder
* CMS
** Konstanten: PICTURECONFIGURATOR_TYPE_PICTUREUPLOAD_SINGLE bzw. PICTURECONFIGURATOR_TYPE_PICTUREUPLOAD_MULTI aus der Picture-Konfigurator Klasse in Klassen-Konstanten umgewandelt (Cms_Pictureconfigurator::TYPE_SINGLE_UPLOAD, Cms_Pictureconfigurator::TYPE_MULTI_UPLOAD)
** Methode "getNewsletterSendLogic()" in Klassen "Backend_NewsletterbuilderModel" bzw. "Cms_Queue_Newsletter" protected gemacht ("_getNewsletterSendLogic()").
* SHOP
** "Produkt-Typ" Filter für Dyn.-Kategoriebefüllung hinzugefügt (z.B. nur für "Aktionsprodukte")
** Shop E-Procurement entfernt (PHP + DB)
** Disco_Shop_Models_Shop_Customer::saveCustomer changed ... removed e-procurement id from method signature
==SQL Updates==
* CORE
* CMS
CREATE TABLE `Layout_Website` (
`Layout_ID` INT(10) NOT NULL,
`Website_ID` INT(10) NOT NULL,
`Person_ID_Edit` INT(10) UNSIGNED NULL DEFAULT NULL,
`Table_Edit` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Person_ID_Create` INT(10) UNSIGNED NULL DEFAULT NULL,
`Table_Create` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`Layout_ID`, `Website_ID`),
INDEX `IDX_Layout_Website_1` (`Layout_ID`),
INDEX `IDX_Layout_Website_2` (`Website_ID`),
INDEX `IDX_Person_Person_ID_Edit` (`Person_ID_Edit`),
INDEX `IDX_Person_Person_ID_Create` (`Person_ID_Create`),
CONSTRAINT `Layout_Layout_Website` FOREIGN KEY (`Layout_ID`) REFERENCES `Layout` (`Layout_ID`) ON DELETE CASCADE,
CONSTRAINT `Layout_Website_ibfk_1` FOREIGN KEY (`Person_ID_Edit`) REFERENCES `Person` (`Person_ID`) ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT `Layout_Website_ibfk_2` FOREIGN KEY (`Person_ID_Create`) REFERENCES `Person` (`Person_ID`) ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT `Website_Layout_Website` FOREIGN KEY (`Website_ID`) REFERENCES `Website` (`Website_ID`) ON DELETE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
* SHOP
ALTER TABLE ShopCategory ADD COLUMN ShopArticleType_ID INTEGER(10) UNSIGNED COMMENT 'article type filter for dynamic categories' AFTER ShopTrackingCode_ID;
CREATE INDEX IDX_ShopCategory_17 ON ShopCategory (ShopArticleType_ID);
ALTER TABLE ShopCategory ADD CONSTRAINT ShopArticleType_ShopCategory_8
FOREIGN KEY (ShopArticleType_ID) REFERENCES ShopArticleType (ShopArticleType_ID);
-- category function queue task update
UPDATE `Queue` SET `Queue_Title`='Kategorie Funktionen', `Queue_Action`='Shop_Queue_Categoryfunction' WHERE `Queue_ID`=10;
-- new category function
UPDATE ShopCategoryFunction SET ShopCategoryFunction_Order = ShopCategoryFunction_Order + 1 WHERE ShopCategoryFunction_Order >= 4;
INSERT INTO `ShopCategoryFunction` (`ShopCategoryFunction_Code`, `ShopCategoryFunction_Name`, `ShopCategoryFunction_Active`, `ShopCategoryFunction_Order`, `Table_Edit`, `Table_Create`) VALUES ('autofill_new', 'Autobefüllung - Neue Artikel', 'true', 4, '2011-08-25 16:17:00', '2011-08-25 16:17:00');
-- Query update bei Auswertung
UPDATE `ShopSqlReport` SET `ShopSqlReport_Query`='SELECT CONCAT(\'/Shoparticle/Shoparticle_Detail?viewid=ShopArticle_ID=\', sa.ShopArticle_ID) AS `goto`, ael.ArticleEntry_Language_Title AS `Verkaufsartikel`, sa.ShopArticle_Articlenumber AS `Artikelnummer`\r\nFROM ShopArticle AS sa\r\nINNER JOIN ArticleEntry_Language AS ael ON (ael.ArticleEntry_ID = sa.ArticleEntry_ID)\r\nWHERE\r\n -- Verkaufartikel ist sichtbar\r\n sa.ShopArticle_Show = \'true\'\r\n -- zumindest eine Variante ist sichtbar\r\n AND (SELECT COUNT(saicnt.ShopArticleItem_ID) FROM ShopArticleItem AS saicnt WHERE saicnt.ShopArticle_ID = sa.ShopArticle_ID AND saicnt.ShopArticleItem_Show = \'true\' AND saicnt.ShopArticleItem_IgnoreMinPrice = \'false\') > 0\r\n -- Preise stehen zu Verfügung\r\n AND (SELECT COUNT(spccnt.ShopPriceCache_ID) FROM ShopPriceCache AS spccnt WHERE spccnt.ShopArticle_ID = sa.ShopArticle_ID) > 0\r\n -- Verkaufsartikel ist zumindest einer Kategorie zugeordnet\r\n AND (SELECT COUNT(sasccnt.ShopCategory_ID) FROM ShopArticle_ShopCategory AS sasccnt WHERE sasccnt.ShopArticle_ID = sa.ShopArticle_ID) > 0\r\n AND NOT EXISTS (\r\n SELECT aep.ArticleEntry_ID FROM ArticleEntry_Picture AS aep WHERE aep.ArticleEntry_ID = sa.ArticleEntry_ID\r\n )\r\nGROUP BY sa.ShopArticle_ID' WHERE `ShopSqlReport_ID`=1 LIMIT 1;
-- ---------------------------------------------------------------------------------------------
-- ShopArticleGroup / ShopArticleGroupType Updates
-- ---------------------------------------------------------------------------------------------
-- removed order field
ALTER TABLE `ShopArticleGroupType` DROP COLUMN `ShopArticleGroupType_Order`;
-- added new group type "system"
INSERT INTO `ShopArticleGroupType` (`ShopArticleGroupType_Code`, `ShopArticleGroupType_Name`, `ShopArticleGroupType_Show`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES
('system', 'System', 'true', NULL, '2011-08-30 13:40:46', NULL, '2011-08-30 13:40:46');
-- added field for unique group codes
ALTER TABLE `ShopArticleGroup` ADD COLUMN `ShopArticleGroup_Code` VARCHAR(40) NULL DEFAULT NULL AFTER `ShopArticleGroupType_Code`;
ALTER TABLE `ShopArticleGroup` ADD UNIQUE INDEX `IDX_ShopArticleGroup_2` (`ShopArticleGroup_Code`);
-- added field for group descriptions
ALTER TABLE `ShopArticleGroup` ADD COLUMN `ShopArticleGroup_Description` TEXT NULL AFTER `ShopArticleGroup_Name`;
-- neue System-Artikelgruppe "Kein Rabatt" hinzugefügt
INSERT INTO `ShopArticleGroup` (`ShopArticleGroupType_Code`, `ShopArticleGroup_Code`, `ShopArticleGroup_Name`, `ShopArticleGroup_Description`, `ShopArticleGroup_Order`, `Table_Edit`, `Table_Create`) VALUES
('system', 'no_discount', 'Kein Rabatt', 'Auf Verkaufsartikel, die dieser Artikelgruppe zugewiesen sind kann kein Rabatt gewährt werden.', 1, '2011-08-30 15:05:40', '2011-08-30 15:05:40');
-- ---------------------------------------------------------------------------------------------
-- E-Procurement entfernt
-- ---------------------------------------------------------------------------------------------
-- drop ShopCategory e-procurement foreign key and reorder the following constraints
ALTER TABLE `ShopCategory` DROP FOREIGN KEY `ShopEprocurement_ShopCategory_3`;
ALTER TABLE ShopCategory DROP FOREIGN KEY ShopArticleAttributeType_ShopCategory_4, ADD CONSTRAINT ShopArticleAttributeType_ShopCategory_3 FOREIGN KEY (ShopArticleAttributeType_ID) REFERENCES ShopArticleAttributeType (ShopArticleAttributeType_ID);
ALTER TABLE ShopCategory DROP FOREIGN KEY ShopCategory_ShopCategory_5, ADD CONSTRAINT ShopCategory_ShopCategory_4 FOREIGN KEY (ShopCategory_ID_CopyFrom) REFERENCES ShopCategory (ShopCategory_ID);
ALTER TABLE ShopCategory DROP FOREIGN KEY ShopArticleAttributeItem_ShopCategory_6, ADD CONSTRAINT ShopArticleAttributeItem_ShopCategory_5 FOREIGN KEY (ShopArticleAttributeItem_ID) REFERENCES ShopArticleAttributeItem (ShopArticleAttributeItem_ID);
ALTER TABLE ShopCategory DROP FOREIGN KEY ShopTrackingCode_ShopCategory_7, ADD CONSTRAINT ShopTrackingCode_ShopCategory_6 FOREIGN KEY (ShopTrackingCode_ID) REFERENCES ShopTrackingCode (ShopTrackingCode_ID) ON DELETE SET NULL;
ALTER TABLE ShopCategory DROP FOREIGN KEY ShopArticleType_ShopCategory_8, ADD CONSTRAINT ShopArticleType_ShopCategory_7 FOREIGN KEY (ShopArticleType_ID) REFERENCES ShopArticleType (ShopArticleType_ID);
-- drop ShopCategory e-procurement columns
ALTER TABLE `ShopCategory` DROP COLUMN `ShopEprocurement_ID`;
-- reorder ShopCategory indices
ALTER TABLE `ShopCategory` DROP INDEX `IDX_ShopCategory_11`, ADD INDEX `IDX_ShopCategory_10` (`ShopCategory_Priority`);
ALTER TABLE `ShopCategory` DROP INDEX `IDX_ShopCategory_12`, ADD INDEX `IDX_ShopCategory_11` (`ShopCategory_ID_Root`, `ShopCategory_Level`, `ShopCategory_Left`, `ShopCategory_Right`, `ShopCategory_Show`);
ALTER TABLE `ShopCategory` DROP INDEX `IDX_ShopCategory_13`, ADD INDEX `IDX_ShopCategory_12` (`ShopArticleAttributeType_ID`);
ALTER TABLE `ShopCategory` DROP INDEX `IDX_ShopCategory_14`, ADD INDEX `IDX_ShopCategory_13` (`ShopCategory_ID_CopyFrom`);
ALTER TABLE `ShopCategory` DROP INDEX `IDX_ShopCategory_15`, ADD INDEX `IDX_ShopCategory_14` (`ShopArticleAttributeItem_ID`);
ALTER TABLE `ShopCategory` DROP INDEX `IDX_ShopCategory_16`, ADD INDEX `IDX_ShopCategory_15` (`ShopTrackingCode_ID`);
ALTER TABLE `ShopCategory` DROP INDEX `IDX_ShopCategory_17`, ADD INDEX `IDX_ShopCategory_16` (`ShopArticleType_ID`);
-- drop ShopUser e-procurement foreign key and reorder the following constraints
ALTER TABLE `ShopUser` DROP FOREIGN KEY `ShopEprocurement_ShopUser_7`;
ALTER TABLE ShopUser DROP FOREIGN KEY ShopUser_ShopUser_8, ADD CONSTRAINT ShopUser_ShopUser_7 FOREIGN KEY (Person_ID_Partner) REFERENCES ShopUser (Person_ID);
ALTER TABLE ShopUser DROP FOREIGN KEY ShopDeliveryService_ShopUser_9, ADD CONSTRAINT ShopDeliveryService_ShopUser_8 FOREIGN KEY (ShopDeliveryService_Code) REFERENCES ShopDeliveryService (ShopDeliveryService_Code);
ALTER TABLE ShopUser DROP FOREIGN KEY ShopPartnerList_ShopUser_10, ADD CONSTRAINT ShopPartnerList_ShopUser_9 FOREIGN KEY (ShopPartnerList_ID) REFERENCES ShopPartnerList (ShopPartnerList_ID);
ALTER TABLE ShopUser DROP FOREIGN KEY ShopArticleGroup_ShopUser_11, ADD CONSTRAINT ShopArticleGroup_ShopUser_10 FOREIGN KEY (ShopArticleGroup_ID) REFERENCES ShopArticleGroup (ShopArticleGroup_ID);
ALTER TABLE ShopUser DROP FOREIGN KEY Country_ShopUser_12, ADD CONSTRAINT Country_ShopUser_11 FOREIGN KEY (Country_Code_Invoice) REFERENCES Country (Country_Code);
-- drop ShopUser e-procurement columns
ALTER TABLE `ShopUser` DROP COLUMN `ShopEprocurement_ID`;
ALTER TABLE `ShopUser` DROP COLUMN `ShopUser_EprocurementIsAdmin`;
-- reorder ShopUser indices
ALTER TABLE `ShopUser` DROP INDEX `IDX_ShopUser_10`, ADD INDEX `IDX_ShopUser_9` (`Person_ID_Partner`);
ALTER TABLE `ShopUser` DROP INDEX `IDX_ShopUser_11`, ADD INDEX `IDX_ShopUser_10` (`ShopDeliveryService_Code`);
ALTER TABLE `ShopUser` DROP INDEX `IDX_ShopUser_12`, ADD INDEX `IDX_ShopUser_11` (`ShopPartnerList_ID`);
ALTER TABLE `ShopUser` DROP INDEX `IDX_ShopUser_13`, ADD INDEX `IDX_ShopUser_12` (`ShopArticleGroup_ID`);
ALTER TABLE `ShopUser` DROP INDEX `IDX_ShopUser_14`, ADD INDEX `IDX_ShopUser_13` (`Country_Code_Invoice`);
-- drop e-procurement tables
DROP TABLE `ShopEprocurementCostCentre_ShopOrder`;
DROP TABLE `ShopUser_ShopEprocurementCostCentre`;
DROP TABLE `ShopEprocurementCostCentre`;
DROP TABLE `ShopEprocurement`;
-- remove unused e-procurement authorization code
DELETE FROM `Authorization` WHERE `Authorization_Code`='shop_eprocurement' LIMIT 1;
-- ---------------------------------------------------------------------------------------------
-- Extended ShopArticleType table
-- ---------------------------------------------------------------------------------------------
ALTER TABLE ShopArticleType ADD COLUMN ArticleEntry_ID INTEGER(10) UNSIGNED AFTER ShopArticleType_ID;
CREATE INDEX IDX_ShopArticleType_2 ON ShopArticleType (ArticleEntry_ID);
ALTER TABLE ShopArticleType ADD COLUMN ShopArticleType_Code VARCHAR(40) AFTER ArticleEntry_ID;
CREATE UNIQUE INDEX IDX_ShopArticleType_Code ON ShopArticleType (ShopArticleType_Code);
ALTER TABLE ShopArticleType ADD COLUMN ShopArticleType_System ENUM('true','false') NOT NULL DEFAULT 'false' COMMENT 'Flag to distinguish between system types and other ones.' AFTER ShopArticleType_Name;
ALTER TABLE ShopArticleType ADD COLUMN ShopArticleType_CssClass VARCHAR(255) AFTER ShopArticleType_System;
ALTER TABLE ShopArticleType ADD CONSTRAINT ArticleEntry_ShopArticleType_1 FOREIGN KEY (ArticleEntry_ID) REFERENCES ArticleEntry (ArticleEntry_ID) ON DELETE CASCADE;
-- update existing types
UPDATE `ShopArticleType` SET `ShopArticleType_Code`='default', `ShopArticleType_System`='true' WHERE `ShopArticleType_ID`=1 LIMIT 1;
UPDATE `ShopArticleType` SET `ShopArticleType_Code`='sale', `ShopArticleType_System`='true' WHERE `ShopArticleType_ID`=2 LIMIT 1;
UPDATE `ShopArticleType` SET `ShopArticleType_Code`='new', `ShopArticleType_System`='true' WHERE `ShopArticleType_ID`=3 LIMIT 1;
UPDATE `ShopArticleType` SET `ShopArticleType_Code`='comingsoon', `ShopArticleType_System`='true' WHERE `ShopArticleType_ID`=4 LIMIT 1;
-- Added ON DELETE CASCADE to ShopArticleItem picture assignment
ALTER TABLE `ShopArticleItem_Picture` DROP FOREIGN KEY `ShopArticleItem_ShopArticleItem_Picture_1`;
ALTER TABLE `ShopArticleItem_Picture` DROP FOREIGN KEY `Picture_ShopArticleItem_Picture_2`;
ALTER TABLE ShopArticleItem_Picture ADD CONSTRAINT ShopArticleItem_ShopArticleItem_Picture_1 FOREIGN KEY (ShopArticleItem_ID) REFERENCES ShopArticleItem (ShopArticleItem_ID) ON DELETE CASCADE;
ALTER TABLE ShopArticleItem_Picture ADD CONSTRAINT Picture_ShopArticleItem_Picture_2 FOREIGN KEY (Picture_ID) REFERENCES Picture (Picture_ID) ON DELETE CASCADE;
-- Removed duplicate/unused ShopConfig parameter
DELETE FROM `ShopConfig` WHERE `ShopConfig_Code` IN('site_email','site_email_from');
Datenkraft DISCO 3.1 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.1 Release (r4602).
Released on 01.08.2011.
http://wiki.datenkraft.com/index.php/DISCO_Suite_3.1
==Features==
* CORE
** Update-Funktion für Wechselkurse hinzugefügt (die Kurse werden per Knopfdruck von der [[http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml ECB]] übernommen)
** Smarty-Block {todo} bla bla {/todo} hinzugefügt (für gemeinsames arbeiten an Templates)
** Repair Nested Set: Auf einem Nested Set DB Object gibt es nun eine "repairMe()" Methode
** Meta-Backend: Nested Set Check & Repair
** Datenkraft_Date_Factory hinzugefügt (das aktuelle Datum bzw. die aktuelle Zeit sollte immer aus der Date-Factory geholt werden)
** Datenkraft_Date_Range Klasse hinzugefügt - für das Arbeiten mit Zeiträumen
** Datenkraft_Log_Factory hinzugefügt (vorbereitet - noch nicht implementiert)
** Datenkraft_Cache_Factory hinzugefügt (vorbereitet - noch nicht implementiert)
** Datenkraft_Translation - Tools zum Übersetzen - hinzugefügt
* CMS
** Das CMS wurde komplett überarbeitet und bietet nun viel mehr Möglichkeiten als vorher.
Grundsätzlich kann jedes alte System ohne Gefahr upgedated werden weil das CMS nur erweitert wurde.
* SHOP
==Changelog==
* CORE
** HTTPS Fehler in der .htaccess behoben:
**# war der /disco/ Ordner nicht bei den HTTP(S)-Rewrites dabei
**# müssen die "_extended" Rewrites unbedingt vor den HTTP(S)-Rewrites gemacht werden
** Backend_Log entfernt (/data/logs/backend.log) ... wurde nirgends verwendet.
** Initialiszation.php && Session Language
**# War keine Sessionlanguage gesetzt, so wurde immer SYSTEM_LANGUAGE herangezogen, auch wenn eine andere Sprache durch Browser oder andere Settings besser gewesen wäre. Vor allem schlecht, weil auf der zweiten Seite die Sprache umsprang oder auf der ersten Seite LTM in SYSTEM_LANGAUGE waren, der Rest aber z.b. in English
** Frontend_Log entfernt (/data/logs/frontend.log) ... wurde nur in Datenkraft_Mail Klasse verwendet - jedoch unnötig (entfernt).
** Smarty-Block {todo} bla bla {/todo} hinzugefügt (für gemeinsames arbeiten an Templates)
* CMS
** Bugfix: Bei aktivem "_loadRatingAvg" (in Disco_Cms_Models_Wrapper_Articleentry) wurden alle Bewertungen mitberücksichtigt -> jetzt nur noch die sichtbaren!!!
* SHOP
** Um neue Shop-Konfigurationen anlegen zu dürfen muss man Meta-Admin Rechte besitzen. (war zuvor nicht notwendig)
** LTM Codes zusammengefasst (und entfernt)
*** "shop.email.prepayed1.conclusion" wurde mit "shop.email.prepayed1.text" zusammengefasst und entfernt.
*** "shop.email.prepayed2.conclusion" wurde mit "shop.email.prepayed2.text" zusammengefasst und entfernt.
*** "shop.email.invoice1.conclusion" wurde mit "shop.email.invoice1.text" zusammengefasst und entfernt.
*** "shop.email.invoice2.conclusion" wurde mit "shop.email.invoice2.text" zusammengefasst und entfernt.
** Externes Tracking von Bestellungen verbessert (allgemeine Schnittstelle, nicht mehr nur Google Analytics spezifisch)
** Google Analytics E-Commerce tracking abgeändert. Bislang wurde die Gesammtsumme einer Bestellung und die Lieferkosten inkl. Steuer übertragen und die einzelnen Produktumsätze excl. Steuer. Nun werden alle 3 Werte ohne Steueranteil übertragen.
** Lieferanten sind ab dieser Version kein Pflichtfeld mehr! (wegen Problemen mit Bundles u. virtuellen WAWI Produkten)
** Bugfix: Bei der Stornierung von Bestellpositionen im Backend wurden für Firmenkunden mit UID falsche Einträge in der Zahlungsübersicht erzeugt (Brutto-Werte wurden gutgeschrieben -> müssen aber Netto Beträge sein, da auch ohne USt. verrechnet wird)
** ShopAccountJournalType Konstante: "SHOP_SHOPACCOUNTJOURNAL_TYPE_COMPLETE" entfernt (wird durch "SHOP_SHOPACCOUNTJOURNAL_TYPE_INVOICE_DEFAULT" ersetzt)
** ShopAccountJournalType Konstante: "SHOP_SHOPACCOUNTJOURNAL_TYPE_INVOICE" durch "SHOP_SHOPACCOUNTJOURNAL_TYPE_INVOICE_DEFAULT" ersetzt.
** ShopAccountJournalType Logik in Klasse: "Shop_Account" verschoben
*** SHOP_SHOPACCOUNTJOURNAL_TYPE_INVOICE(_DEFAULT) -> Shop_Account::getInvoiceTypeCodes()
*** SHOP_SHOPACCOUNTJOURNAL_TYPE_STORNO -> Shop_Account::getStornoTypeCodes()
*** SHOP_SHOPACCOUNTJOURNAL_TYPE_DELIVERY -> Shop_Account::getDeliveryTypeCodes()
*** SHOP_SHOPACCOUNTJOURNAL_TYPE_BROKERAGE -> Shop_Account::CODE_BROKERAGE
*** SHOP_SHOPACCOUNTJOURNAL_TYPE_PAYMENTREMINDER -> Shop_Account::CODE_PAYMENTREMINDER
*** ...
** Änderungen/Korrekturen an Zahlungserinnerungen
==SQL Updates==
* CORE
ALTER TABLE `Menu` ADD COLUMN `ArticleEntry_ID` INT(10) NULL DEFAULT NULL AFTER `Authorization_Code`;
ALTER TABLE `Menu` ADD COLUMN `Layout_ID` INT(10) NULL DEFAULT NULL AFTER `ArticleEntry_ID`;
ALTER TABLE Menu ADD CONSTRAINT ArticleEntry_Menu
FOREIGN KEY (ArticleEntry_ID) REFERENCES Menu (ArticleEntry_ID) ON DELETE CASCADE;
ALTER TABLE Menu ADD CONSTRAINT Layout_Menu
FOREIGN KEY (Layout_ID) REFERENCES Menu (Layout_ID);
CREATE TABLE Website (
Website_ID INTEGER(10) NOT NULL AUTO_INCREMENT,
Website_ID_Redirect INTEGER(10),
Website_ID_Alias INTEGER(10),
Menu_ID_Root INTEGER(10) UNSIGNED,
Website_FQDN VARCHAR(255) NOT NULL,
Website_Active ENUM('true','false') NOT NULL DEFAULT 'true',
Website_Config VARCHAR(255),
CONSTRAINT PK_Website PRIMARY KEY (Website_ID)
)
TYPE=InnoDB;
CREATE UNIQUE INDEX IDX_Website_1 ON Website (Website_FQDN);
CREATE INDEX IDX_Website_2 ON Website (Website_ID_Redirect);
CREATE INDEX IDX_Website_3 ON Website (Menu_ID_Root);
CREATE INDEX IDX_Website_4 ON Website (Website_ID_Alias);
# ---------------------------------------------------------------------- #
# Add table "Url" #
# ---------------------------------------------------------------------- #
CREATE TABLE Url (
Url_ID INTEGER(10) NOT NULL AUTO_INCREMENT,
Language_Code VARCHAR(3),
Website_ID INTEGER(10),
Menu_ID INTEGER(10) UNSIGNED,
Menu_ID_Redirect INTEGER(10) UNSIGNED,
Url_Internal ENUM('true','false') NOT NULL DEFAULT 'false',
Url_Code VARCHAR(255) NOT NULL,
Url_Target VARCHAR(500),
CONSTRAINT PK_Url PRIMARY KEY (Url_ID)
)
TYPE=InnoDB;
CREATE UNIQUE INDEX IDX_Url_1 ON Url (Website_ID,Url_Code,Language_Code,Menu_ID);
CREATE INDEX IDX_Url_2 ON Url (Website_ID);
CREATE INDEX IDX_Url_3 ON Url (Language_Code);
CREATE INDEX IDX_Url_4 ON Url (Menu_ID);
CREATE INDEX IDX_Url_5 ON Url (Menu_ID_Redirect);
# ---------------------------------------------------------------------- #
# Add table "CMSModule" #
# ---------------------------------------------------------------------- #
CREATE TABLE CMSModule (
CMSModule_ID INTEGER(10) NOT NULL AUTO_INCREMENT,
ArticleEntry_ID INTEGER(10) UNSIGNED,
CMSModule_Name VARCHAR(255),
CMSModule_Config VARCHAR(255),
CONSTRAINT PK_CMSModule PRIMARY KEY (CMSModule_ID)
)
TYPE=InnoDB;
CREATE INDEX IDX_CMSModule_1 ON CMSModule (ArticleEntry_ID);
# ---------------------------------------------------------------------- #
# Add table "CMSModuleMenu" #
# ---------------------------------------------------------------------- #
CREATE TABLE CMSModuleMenu (
CMSModuleMenu_ID INTEGER(10) NOT NULL AUTO_INCREMENT,
CMSModule_ID INTEGER(10),
Menu_ID INTEGER(10) UNSIGNED,
Menu_ID_Data INTEGER(10) UNSIGNED,
ArticleEntry_ID INTEGER(10) UNSIGNED,
CMSModuleMenu_ID_Copy INTEGER(10),
Position_Code VARCHAR(40),
CMSModuleMenu_Inherit ENUM('true','false') NOT NULL DEFAULT 'false',
CMSModuleMenu_Show ENUM('true','false') NOT NULL DEFAULT 'true',
CMSModuleMenu_Order INTEGER(10) NOT NULL,
CONSTRAINT PK_CMSModuleMenu PRIMARY KEY (CMSModuleMenu_ID)
)
TYPE=InnoDB;
CREATE INDEX IDX_CMSModuleMenu_1 ON CMSModuleMenu (CMSModuleMenu_ID_Copy);
CREATE INDEX IDX_CMSModuleMenu_2 ON CMSModuleMenu (CMSModule_ID);
CREATE INDEX IDX_CMSModuleMenu_3 ON CMSModuleMenu (Menu_ID);
CREATE INDEX IDX_CMSModuleMenu_4 ON CMSModuleMenu (ArticleEntry_ID);
CREATE INDEX IDX_CMSModuleMenu_5 ON CMSModuleMenu (Position_Code);
CREATE INDEX IDX_CMSModuleMenu_6 ON CMSModuleMenu (Menu_ID_Data);
# ---------------------------------------------------------------------- #
# Add table "CMSModuleMenu_ArticleEntry" #
# ---------------------------------------------------------------------- #
CREATE TABLE CMSModuleMenu_ArticleEntry (
CMSModuleMenu_ID INTEGER(10) NOT NULL,
ArticleEntry_ID INTEGER(10) UNSIGNED NOT NULL,
CMSModuleMenu_ArticleEntry_Order INTEGER(10) NOT NULL,
CMSModuleMenu_ArticleEntry_Linked ENUM('true','false') NOT NULL DEFAULT 'false',
CONSTRAINT PK_CMSModuleMenu_ArticleEntry PRIMARY KEY (CMSModuleMenu_ID, ArticleEntry_ID)
)
TYPE=InnoDB;
CREATE INDEX IDX_CMSModuleMenu_ArticleEntry_1 ON CMSModuleMenu_ArticleEntry (CMSModuleMenu_ID);
CREATE INDEX IDX_CMSModuleMenu_ArticleEntry_2 ON CMSModuleMenu_ArticleEntry (ArticleEntry_ID);
# ---------------------------------------------------------------------- #
# Add table "Layout" #
# ---------------------------------------------------------------------- #
CREATE TABLE Layout (
Layout_ID INTEGER(10) NOT NULL AUTO_INCREMENT,
Position_Code VARCHAR(40),
Layout_Name VARCHAR(255) NOT NULL,
Layout_Template VARCHAR(255) NOT NULL,
CONSTRAINT PK_Layout PRIMARY KEY (Layout_ID)
)
TYPE=InnoDB;
CREATE INDEX IDX_Layout_1 ON Layout (Position_Code);
# ---------------------------------------------------------------------- #
# Add table "Position" #
# ---------------------------------------------------------------------- #
CREATE TABLE Position (
Position_Code VARCHAR(40) NOT NULL,
Position_Name VARCHAR(255) NOT NULL,
CONSTRAINT PK_Position PRIMARY KEY (Position_Code)
)
TYPE=InnoDB;
# ---------------------------------------------------------------------- #
# Add table "Layout_Position" #
# ---------------------------------------------------------------------- #
CREATE TABLE Layout_Position (
Layout_ID INTEGER(10) NOT NULL,
Position_Code VARCHAR(40) NOT NULL,
Authorization_Code VARCHAR(32),
Layout_Position_Order INTEGER(10) NOT NULL,
CONSTRAINT PK_Layout_Position PRIMARY KEY (Layout_ID, Position_Code)
)
TYPE=InnoDB;
CREATE INDEX IDX_Layout_Position_1 ON Layout_Position (Layout_ID);
CREATE INDEX IDX_Layout_Position_2 ON Layout_Position (Position_Code);
CREATE INDEX IDX_Layout_Position_3 ON Layout_Position (Authorization_Code);
# ---------------------------------------------------------------------- #
# Add table "CMSModule_Position" #
# ---------------------------------------------------------------------- #
CREATE TABLE CMSModule_Position (
CMSModule_ID INTEGER(10) NOT NULL,
Position_Code VARCHAR(40) NOT NULL,
CONSTRAINT PK_CMSModule_Position PRIMARY KEY (CMSModule_ID, Position_Code)
)
TYPE=InnoDB;
CREATE INDEX IDX_CMSModule_Position_1 ON CMSModule_Position (CMSModule_ID);
CREATE INDEX IDX_CMSModule_Position_2 ON CMSModule_Position (Position_Code);
# ---------------------------------------------------------------------- #
# Add table "CMSModule_Website" #
# ---------------------------------------------------------------------- #
CREATE TABLE CMSModule_Website (
CMSModule_ID INTEGER(10) NOT NULL,
Website_ID INTEGER(10) NOT NULL,
CONSTRAINT PK_CMSModule_Website PRIMARY KEY (CMSModule_ID, Website_ID)
)
TYPE=InnoDB;
CREATE INDEX IDX_CMSModule_Website_1 ON CMSModule_Website (CMSModule_ID);
CREATE INDEX IDX_CMSModule_Website_2 ON CMSModule_Website (Website_ID);
# ---------------------------------------------------------------------- #
# Foreign key constraints #
# ---------------------------------------------------------------------- #
ALTER TABLE Website ADD CONSTRAINT Website_Website
FOREIGN KEY (Website_ID_Redirect) REFERENCES Website (Website_ID);
ALTER TABLE Website ADD CONSTRAINT Website_Website_1
FOREIGN KEY (Website_ID_Alias) REFERENCES Website (Website_ID);
ALTER TABLE Url ADD CONSTRAINT Website_Url
FOREIGN KEY (Website_ID) REFERENCES Website (Website_ID);
ALTER TABLE CMSModuleMenu ADD CONSTRAINT CMSModuleMenu_CMSModuleMenu
FOREIGN KEY (CMSModuleMenu_ID_Copy) REFERENCES CMSModuleMenu (CMSModuleMenu_ID);
ALTER TABLE CMSModuleMenu ADD CONSTRAINT CMSModule_CMSModuleMenu
FOREIGN KEY (CMSModule_ID) REFERENCES CMSModule (CMSModule_ID) ON DELETE CASCADE;
ALTER TABLE CMSModuleMenu ADD CONSTRAINT Position_CMSModuleMenu
FOREIGN KEY (Position_Code) REFERENCES Position (Position_Code);
ALTER TABLE CMSModuleMenu_ArticleEntry ADD CONSTRAINT CMSModuleMenu_CMSModuleMenu_ArticleEntry
FOREIGN KEY (CMSModuleMenu_ID) REFERENCES CMSModuleMenu (CMSModuleMenu_ID) ON DELETE CASCADE;
ALTER TABLE Layout ADD CONSTRAINT Position_Layout
FOREIGN KEY (Position_Code) REFERENCES Position (Position_Code);
ALTER TABLE Layout_Position ADD CONSTRAINT Layout_Layout_Position
FOREIGN KEY (Layout_ID) REFERENCES Layout (Layout_ID) ON DELETE CASCADE;
ALTER TABLE Layout_Position ADD CONSTRAINT Position_Layout_Position
FOREIGN KEY (Position_Code) REFERENCES Position (Position_Code) ON DELETE CASCADE;
ALTER TABLE CMSModule_Position ADD CONSTRAINT CMSModule_CMSModule_Position
FOREIGN KEY (CMSModule_ID) REFERENCES CMSModule (CMSModule_ID) ON DELETE CASCADE;
ALTER TABLE CMSModule_Position ADD CONSTRAINT Position_CMSModule_Position
FOREIGN KEY (Position_Code) REFERENCES Position (Position_Code) ON DELETE CASCADE;
ALTER TABLE CMSModule_Website ADD CONSTRAINT CMSModule_CMSModule_Website
FOREIGN KEY (CMSModule_ID) REFERENCES CMSModule (CMSModule_ID) ON DELETE CASCADE;
ALTER TABLE CMSModule_Website ADD CONSTRAINT Website_CMSModule_Website
FOREIGN KEY (Website_ID) REFERENCES Website (Website_ID) ON DELETE CASCADE;
* SHOP
ALTER TABLE `ShopOrder` ADD COLUMN `ShopOrder_TrackedExternal` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopOrder_Import`;
-- mark old orders as "tracked"
UPDATE ShopOrder SET ShopOrder_TrackedExternal = 'true';
-- Lieferanten sind nun doch kein Pflichtfeld mehr (Probleme mit Bundles)
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWISupplier_ID` `ShopWAWISupplier_ID` INT(11) NULL AFTER `ShopWAWIProduct_ID`;
-- added default ShopArticle_ShopCategory assignment type
INSERT IGNORE INTO `ShopArticle_ShopCategoryType` (`ShopArticle_ShopCategoryType_Code`, `ShopArticle_ShopCategoryType_Name`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('default', 'Standard', 1, '2011-07-01 15:52:34', 1, '2011-07-01 15:52:34');
-- neuer Rechnungsnummernkreis für Kassa Bestellungen
INSERT INTO `ShopAccountJournalType` (`ShopAccountJournalType_Code`, `ShopAccountJournalType_Name`, `ShopAccountJournalType_BookingCode`, `ShopAccountJournalType_NumberPrefix`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('complete_cashdesk', 'Rechnung', 'KS', 'K', 1, '2011-07-05 11:37:49', 1, '2011-07-05 11:37:57');
-- eigene Gutschriften als "Gegentyp" zum neuen Kassa Rechnungsnummernkreis
INSERT INTO `ShopAccountJournalType` (`ShopAccountJournalType_Code`, `ShopAccountJournalType_Name`, `ShopAccountJournalType_BookingCode`, `ShopAccountJournalType_NumberPrefix`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('storno_cashdesk', 'Gutschrift', 'GSK', 'G', 1, '2011-07-05 15:50:08', 1, '2011-07-05 15:50:11');
-- removed unused type "temporary"
DELETE FROM `ShopAccountJournalType` WHERE `ShopAccountJournalType_Code`='temporary' LIMIT 1;
Datenkraft DISCO 3.0.12 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.12 Release (r4290).
Released on 31.05.2011.
http://wiki.datenkraft.com/index.php/DISCO_Suite_3.0.12
==UPDATE HINWEISE==
'''Es muss beim Update im Metacontroller "/backend/meta/convertMenuToClass" aufgerufen werden welches eine komplette Repräsentation der Datenbank als Objekte zurück liefert.'''
'''Diese Daten müssen dann in den Loader übernommen werden und die "nicht Frontend" Menu Roots aus der Datenbank gelöscht werden. Sollte ein Update notwendig sein, bitte an DISCO Chief wenden.'''
==Features==
* CORE
** CK Editor 3.5.3 & CK Finder 2.0.2
** jQuery 1.5.2
** Das Backend Menu wurde auf Files umgestellt! (erhöhte Wartbarkeit, Erweiterbarkeit & Speed)
** EventBus-System wurde integriert
* CMS
* SHOP
** Unterscheidung von Bestellungen nach Ursprung/Quelle (z.B.: "Webshop", "Kassa", "Import", ...)
** Zahlungsziel + Skonto hinzugefügt (für Rechnungen)
** Der EventBus wird bereits für den "shop_order_created" Event genutzt. (dieser Event tritt auf, wenn eine neue Bestellung eingelangt ist)
** Beim Anlegen von WAWI Produkten wird automatisch eine neue Artikelnummer vorgeschlagen.
** Der WAWI-Produkt EAN-Barcode wird als tats. Strichcode im Backend angezeigt (WAWI-Produkt Detailseite) und kann direkt vom Bildschirm gescannt werden.
** Cleverreach JS Conversion Tracking hinzugefügt
** Cleverreach Bestell-Daten Übermittlung (per SOAP) hinzugefügt
** Systemprüfungs-Task erweitert: Varianten Lieferstatus kann nun auch abhängig vom Lagerstand (ShopWAWIProduct_Stock_Available) gesetzt werden. (per CRONJOB)
==Changelog==
* CORE
** Datenkraft SOAP Klassen (Server, Client) hinzugefügt.
** Pageview Klasse um die Möglichkeit erweitert JavaScript Code hinzufügen zu können. (wird bei DOMready-Event ausgeführt wennd er entsprechende Pageview angezeigt wird.)
** Klasse: "Newsletter_Recipient" entfernt. (ab nun muss die Klasse "Cms_Newsletter" verwendet werden)
** '''Generate Classes muss aufgerufen werden, ein Bug wurde behoben das wenn eine Sprache nachträglich aktiviert wurde, bestehende Einträge upgedated werden und keinen FATAL ERROR schmeißen.'''
** neue Funktion: "whereAddNotIn(..)" zur Klasse: "Datenkraft_Db_DataObject" hinzugefügt. Invers-Funktion von whereAddIn(..)
** Im Backend kann jetzt auf das Einblenden bzw. das Ausblenden der Sidebar reagiert werden. Die entsprechenden jQuery-Events lauten: "sidebarShowStart", "sidebarShowFinish", "sidebarHideStart" und "sidebarHideFinish". Diese können wie folgt mit jQuery verwendet werden: $("#sidebar").bind("sidebarHideFinish", function() { alert("Sidebar wurde ausgeblendet!"); });
** Datei-basierten LTM Adapter wesentlich beschleunigt (Zend_Registry Zugriffe entfernt - ArrayObject ist sehr langsam!)
** Tabelle: "ShopAttributeStyle" entfernt (wird scheinbar nicht mehr verwendet)
* CMS
* SHOP
** Quelle für Bestellungen hinzugefügt (Bestellungen können von unterschiedlichen Quellen erzeugt werden, z.B. "Webshop", "Kassa", "Import", ...)
** KASSA und Direktbestellung als Backend-Hauptmenüpunkte angelegt.
** Neue Gutschein-Funktion ("Nur an Kassa einlösbar") hinzugefügt.
** Neue Gutscheinart hinzugefügt: "Skonto"
** EDIFACT Code und DB Einträge entfernt (hat laut Stephan Lückl nie funktioniert)
** Konstante "SHOP_DEFAULT_DELIVERY_CODE" entfernt (durch "SHOP_DEFAULT_ARTICLE_DELIVERY_CODE" ersetzt)
** Cleverreach JS Conversion Tracking hinzugefügt
** Google Conversion Tracking Code in Ordner: "Shop/Order/Tracking" (Models) verschoben
** Konstante "SHOP_MODULE_AUTOMATIC_SHOPARTICLE_STATE_SYNCHRONIZATION" entfernt (durch "SHOP_MODULE_AUTOMATIC_STATE_SYNCHRONIZATION" ersetzt)
** Neues Feld "E-Mail-Notiz" bei "Lieferungen" hinzugefügt (wird im Unterschied zur herkommlichen Notiz im E-Mail an den Lieferanten verwendet)
==SQL Updates==
* CORE
ALTER TABLE `Sms` ADD INDEX `IDX_Sms_1` (`Sms_MessageID`, `Sms_Servicename`);
ALTER TABLE `FieldSelect` DROP INDEX IDX_FieldSelect_4, ADD INDEX `IDX_FieldSelect_4` (`FieldDefinition_ID`, `FieldSelect_Order`, `FieldSelect_ID_Parent`);
ALTER TABLE `FieldSelect` DROP INDEX `FieldSelect_FieldSelect`, ADD INDEX `IDX_FieldSelect_5` (`FieldSelect_ID_Parent`);
* CMS
* SHOP
-- changed ENUM field to be NOT NULL
ALTER TABLE `ShopAccountJournal` CHANGE COLUMN `ShopAccountJournal_Brokerage` `ShopAccountJournal_Brokerage` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopAccountJournal_GrandTotal`;
ALTER TABLE `ShopAccountJournalGroup` CHANGE COLUMN `ShopAccountJournalGroup_Active` `ShopAccountJournalGroup_Active` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopAccountJournalGroup_Name`;
-- Lieferant ist ab nun ein Pflichtfeld für ShopWAWIProduct Einträge
-- Der Kunde sollte bei der Umstellung entweder jedem Produkt einen Lieferanten zuordnen oder es wird ein "Unbekannter/Kein Lieferant" erstellt
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWISupplier_ID` `ShopWAWISupplier_ID` INT(11) NOT NULL AFTER `ShopWAWIProduct_ID`;
-- Quelle der Bestellung
CREATE TABLE `ShopOrderSource` (
`ShopOrderSource_Code` varchar(40) NOT NULL,
`ShopOrderSource_Name` varchar(255) NOT NULL,
`ShopOrderSource_ShowFilter` enum('true','false') NOT NULL DEFAULT 'false',
`Person_ID_Edit` int(10) unsigned DEFAULT NULL,
`Table_Edit` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Person_ID_Create` int(10) unsigned DEFAULT NULL,
`Table_Create` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`ShopOrderSource_Code`),
KEY `IDX_Person_Person_ID_Edit` (`Person_ID_Edit`),
KEY `IDX_Person_Person_ID_Create` (`Person_ID_Create`),
CONSTRAINT `ShopOrderSource_ibfk_1` FOREIGN KEY (`Person_ID_Edit`) REFERENCES `Person` (`Person_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `ShopOrderSource_ibfk_2` FOREIGN KEY (`Person_ID_Create`) REFERENCES `Person` (`Person_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB;
INSERT INTO `ShopOrderSource` (`ShopOrderSource_Code`, `ShopOrderSource_Name`, `ShopOrderSource_ShowFilter`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES
('import', 'Import', 'false', 1, '2011-04-14 15:21:14', 1, '2011-04-14 15:21:16'),
('webshop', 'Webshop', 'true', 1, '2011-04-14 15:21:14', 1, '2011-04-14 15:21:16'),
('cashdesk', 'Kassa', 'false', 1, '2011-04-14 15:21:14', 1, '2011-04-14 15:21:16'),
('servicecenter', 'ServiceCenter', 'false', 1, '2011-04-14 15:21:14', 1, '2011-04-14 15:21:16');
ALTER TABLE `ShopOrder` ADD COLUMN `ShopOrderSource_Code` VARCHAR(40) NOT NULL AFTER `ShopOrder_ID`;
CREATE INDEX IDX_ShopOrder_10 ON ShopOrder (ShopOrderSource_Code);
-- set old orders to code: 'webshop' (or any other available code you want)
UPDATE ShopOrder SET ShopOrderSource_Code='webshop' WHERE ShopOrder_IsDirectOrder = 'false'
UPDATE ShopOrder SET ShopOrderSource_Code='cashdesk' WHERE ShopOrder_IsDirectOrder = 'true';
ALTER TABLE ShopOrder ADD CONSTRAINT ShopOrderSource_ShopOrder_9
FOREIGN KEY (ShopOrderSource_Code) REFERENCES ShopOrderSource (ShopOrderSource_Code);
-- remove old flag for distingushing between cashdesk and webshop orders
ALTER TABLE `ShopOrder` DROP COLUMN `ShopOrder_IsDirectOrder`;
-- neue Gutschein-Funktion
INSERT INTO `ShopVoucherFunction` (`ShopVoucherFunction_Code`, `ShopVoucherFunction_Name`, `ShopVoucherFunction_Order`, `ShopVoucherFunction_Active`, `ShopVoucherFunction_ShortCut`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES
('cashdesk_only', 'Nur an Kassa einlösbar', 6, 'false', 'Nur Kassa', NULL, '2011-04-18 14:34:51', NULL, '2011-04-18 14:34:51');
-- DPD + Tracking URL als neue Versandart hinzugefügt
INSERT INTO `ShopDeliveryService` (`ShopDeliveryService_Code`, `ShopDeliveryService_Internal`, `ShopDeliveryService_Selectable`, `ShopDeliveryService_URL`, `ShopDeliveryService_ShowTrackingNumber`) VALUES ('dpd', 'DPD', 'false', 'http://www.dpd.de/cgi-bin/delistrack?typ=1&lang=de&pknr=', 'false');
-- DPD Nachnahme Lieferungen haben eine eigene Tracking-URL (mit Kundennummer, Parameter: "k"!!!)
INSERT INTO `ShopDeliveryService` (`ShopDeliveryService_Code`, `ShopDeliveryService_Internal`, `ShopDeliveryService_Selectable`, `ShopDeliveryService_URL`, `ShopDeliveryService_ShowTrackingNumber`) VALUES ('dpd_cod', 'DPD Nachnahme', 'false', 'http://www.dpd-business.at/ttl.php?e=1&k=&sn=', 'false');
-- Zahlungsziel + Skonto für Bezahlart "Rechnung" hinzugefügt
ALTER TABLE `ShopCustomer` ADD COLUMN ShopCustomer_PaymentPeriod INTEGER UNSIGNED COMMENT 'Zahlungsziel (in Tagen)' AFTER `ShopCustomer_Hash`;
ALTER TABLE `ShopCustomer` ADD COLUMN ShopCustomer_PaymentDiscountPeriod INTEGER UNSIGNED COMMENT 'Zeitraum für Skonto (in Tagen)' AFTER `ShopCustomer_PaymentPeriod`;
ALTER TABLE `ShopCustomer` ADD COLUMN ShopCustomer_PaymentDiscountValue FLOAT UNSIGNED COMMENT 'Skonto' AFTER `ShopCustomer_PaymentDiscountPeriod`;
ALTER TABLE `ShopUser` ADD COLUMN ShopUser_PaymentPeriod INTEGER UNSIGNED COMMENT 'Zahlungsziel (in Tagen)' AFTER `ShopUser_LoyaltyBonus`;
ALTER TABLE `ShopUser` ADD COLUMN ShopUser_PaymentDiscountPeriod INTEGER UNSIGNED COMMENT 'Zeitraum für Skonto (in Tagen)' AFTER `ShopUser_PaymentPeriod`;
ALTER TABLE `ShopUser` ADD COLUMN ShopUser_PaymentDiscountValue FLOAT UNSIGNED COMMENT 'Skonto' AFTER `ShopUser_PaymentDiscountPeriod`;
-- Standard-Wert für Bezahlart "Rechnung" hinzugefügt
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES
('invoice_default_payment_period', 'Std. Zahlungsziel (ohne Abzug)', 36, 1, '2011-05-03 14:07:58', 1, '2011-05-03 14:08:11'),
('invoice_default_payment_discount_period', 'Std. Zahlungsziel (mit Skonto)', 37, 1, '2011-05-03 14:07:58', 1, '2011-05-03 14:08:11'),
('invoice_default_payment_discount_value', 'Std. Skonto', 38, 1, '2011-05-03 14:07:58', 1, '2011-05-03 14:08:11');
-- Default values for Shop_Code "default"
INSERT INTO `Shop_ShopConfig` (`ShopConfig_Code`, `Shop_Code`, `Shop_ShopConfig_Value`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES
('invoice_default_payment_period', 'default', '', 2, '2011-05-03 14:29:12', 2, '2011-05-03 14:29:12'),
('invoice_default_payment_discount_period', 'default', '', 2, '2011-05-03 14:29:12', 2, '2011-05-03 14:29:12'),
('invoice_default_payment_discount_value', 'default', '', 2, '2011-05-03 14:29:12', 2, '2011-05-03 14:29:12');
INSERT INTO `ShopVoucherType` (`ShopVoucherType_Code`, `ShopVoucherType_Name`, `ShopVoucherType_Order`, `ShopVoucherType_Discount`, `Table_Edit`, `Table_Create`) VALUES ('skonto', 'Skonto', 7, 'true', '2011-05-06 12:06:43', '2011-05-06 12:06:46');
INSERT INTO `ShopOrderItemType` (`ShopOrderItemType_Code`, `ShopOrderItemType_Name`, `Table_Edit`, `Table_Create`) VALUES ('skonto', 'Skonto', '2011-05-06 15:04:37', '2011-05-06 15:04:40');
INSERT INTO `ShopPaymentItemType` (`ShopPaymentItemType_Code`, `ShopPaymentItemType_Name`, `Table_Edit`, `Table_Create`) VALUES ('skonto', 'Skonto', '2011-05-06 17:20:56', '2011-05-06 17:20:56');
-- Edifact Daten entfernt
DELETE FROM `ShopAccountJournalType` WHERE `ShopAccountJournalType_Code` IN ('edifact_paypal','edifact_mastercard','edifact_hobex','edifact_cardcomplete','edifact');
-- new field for notes that will be added to the supplier email
ALTER TABLE `ShopWAWIDelivery` ADD COLUMN `ShopWAWIDelivery_EmailNotice` TEXT NULL AFTER `ShopWAWIDelivery_Notice`;
-- removed table: ShopAttributeStyle
ALTER TABLE `ShopArticleAttributeType` DROP FOREIGN KEY `ShopAttributeStyle_ShopArticleAttributeType_1`;
ALTER TABLE `ShopArticleAttributeType` DROP COLUMN `ShopAttributeStyle_Code`;
ALTER TABLE `ShopArticleAttributeType` DROP INDEX `IDX_ShopArticleAttributeType_2`, ADD INDEX `IDX_ShopArticleAttributeType_1` (`ShopArticleAttributeType_Order`);
ALTER TABLE `ShopVariantAttribute` DROP FOREIGN KEY `ShopAttributeStyle_ShopVariantAttribute_2`;
ALTER TABLE `ShopVariantAttribute` DROP COLUMN `ShopAttributeStyle_Code`;
DROP TABLE `ShopAttributeStyle`;
-- Update for ShopCategoryFunction names
UPDATE `ShopCategoryFunction` SET `ShopCategoryFunction_Name`='Autom. Produkttyp der Verkaufsartikel auf "Neu" setzen' WHERE `ShopCategoryFunction_Code`='setarticletype_new' LIMIT 1;
UPDATE `ShopCategoryFunction` SET `ShopCategoryFunction_Name`='Autom. Produkttyp der Verkaufsartikel auf "Aktionsartikel" setzen' WHERE `ShopCategoryFunction_Code`='setarticletype_special' LIMIT 1;
UPDATE `ShopCategoryFunction` SET `ShopCategoryFunction_Name`='Autobefüllung - Aktionsartikel' WHERE `ShopCategoryFunction_Code`='autofill_special' LIMIT 1;
Datenkraft DISCO 3.0.11 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.11 Release (r4095).
Released on 12.04.2011.
http://wiki.datenkraft.com/index.php/DISCO_Suite_3.0.11
==Features==
* CORE
** Javascript Include kann nun auch Javascriptfiles aus nicht öffentlich Pfaden laden (wenn die Javascript Files zusammengefasst werden)
** Controller Plugin: Userdevice ... setzt in Session isMobile oder isTablet ... Konfigurierbar in INI.
==Changelog==
* CORE
** Konstante: "BACKOFFICE_LOGO" entfernt (Backend Logos müssen ab nun mit dem "public/_extended/.." Ordner überschrieben werden)
** Neues Datenkraft_Controler_Request & Response Object ... $this->getRequest() liefert nun immer ein Datenkraft_Controler_Requestzurück
* SHOP
** WAWI: Der Lieferant muss für WAWI Produkte ab dieser Version verpflichtend angegeben werden.
Datenkraft DISCO 3.0.10 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.10 Release (r3974).
Released on 06.04.2011.
http://wiki.datenkraft.com/index.php/DISCO_Suite_3.0.10
== '''WICHTIGE UPDATE INFORMATION''' ==
* '''Da Zend_Exception durch Datenkraft_Exception ersetzt wurde (zumindest beim Werfen), muss auch der "application" Ordner kontrolliert werden!!! Wenn hier nämlich eine Zend_Exception geworfen und in einer anderen Klasse (in der Lib) nur eine Datenkraft_Exception gefangen wird kann es zu massiven Problemen kommen.'''
* '''ACHTUNG Neue Optionale Feldtypen ... Settings in application muss upgedated werden.'''
==Features==
* SHOP
** Google Retargeting Codes für Shop-Kategorien (+Vererbung) und Verkaufsartikel-Attribute (wie z.B. "Marke")
==Changelog==
* CORE
** neue Klasse Datenkraft_Registry hinzugefügt (Zend_Registry sollte nicht mehr direkt verwendet werden)
** Bugfix in Datenkraft_Validate_Wrapper::callZendValidation (Groß/Kleinschreibung von Parameter)
** Type-Hint zu Datenkraft_Validate_Result::join hinzugefügt (macht Typ-Check überflüssig)
** Scope Änderung: Members ($arrValidationResult und $arrValidationFields) von "Datenkraft_Validate_Result" und "Datenkraft_Validate_Wrapper" protected gemacht.
** 2 neue, generische Methoden: "_moveUp" bzw. "_moveDown" zu Backend Base-Controller hinzugefügt. (um unnötig redundanten Code in "moveUp/Down" Actions zu vermeiden)
** Dokumenten Kategorien können nun im Backend angelegt werden und dynamisch mit Dateiendungen versehen werden.
** Neue LTM Funktion ___ (Drei unterstriche) ... Erster Parameter ist die Defaultübersetzung der zweite Parameter ist der Context ... wenn man zb. schreibt ___("Hinzufügen", "frontend"); wird der LTM code mit frontend.Hinzufügen gespeichert. Die Funktion dient als Bequemlichkeit für Programmierer.
** Schnellsuche wird nun immer angezeigt wenn diese im Pagevier konfiguriert wurde, unabhängig davon ob Einträge vorhanden sind oder nicht.
** Performance-Update beim Löschen von NestedSet Einträgen. (viele unnötige Queries und somit Zeit eingespart)
** CKEditor Update von 3.3.1 auf 3.5.2 (Im IE9 kam es zu Problemen mit der alten Version)
* SHOP
** ShopEmail Ctrl/Model/Pageview hinzugefügt - für das versenden aller Shop-Mails (für Übersetzungen)
** Backend Common-Model "getLanguageList_Frontend()" durch "getLanguageList(true)" ersetzt
** Methode "getPaymentProvider_Object" in Klassen "Disco_Shop_Models_Shop_Order_Abo" bzw. "Disco_Shop_Models_Shop_Order" protected gemacht (und auch umbenannt in "_getPaymentProvider_Object").
** Scope + Namensänderungen in Klasse "Shop_Order_Packening":
*** "calculateSplittingByWeight" -> "_calculateSplittingByWeight"
*** "processShopOrderItem_Delivery" -> "_processShopOrderItem_Delivery"
*** "processShopOrderItem_Discount" -> "_processShopOrderItem_Discount"
*** "processShopOrderItem_Voucher" -> "_processShopOrderItem_Voucher"
*** "processShopOrderItem_Extra" -> "_processShopOrderItem_Extra"
*** "getMaxDeliveryWeight" -> "_getMaxDeliveryWeight"
** Änderungen in Klasse "Disco_Shop_Models_Shop_Expense_Voucher"
*** "_isFunctionInVouchers": protected gemacht
*** "getVoucherSessionKey": protected gemacht (+Namensänderung auf "_getVoucherSessionKey")
*** "getShopArticleItemAddedShopCategories": Type-Hint (array) zu ersten Parameter ($arrIDs) hinzugefügt.
*** "copyShopVoucherFunction": protected gemacht (+Namensänderung auf "_copyShopVoucherFunction")
*** "_addVoucherFunction": protected gemacht
** Bugfix: Beim Löschen von ShopCategory Einträgen wurde der verknüpfte ArticleEntry Eintrag für Kinder-Knoten nicht mitgelöscht. (hatte z.B. zur Folge, dass TextCodes unnötig vergeudet wurden)
==SQL Updates==
* CORE
ALTER TABLE `DocumentCategory` ADD COLUMN `DocumentCategory_FileExtensions` VARCHAR(255) NULL DEFAULT NULL AFTER `DocumentCategory_Code`;
INSERT INTO `FieldDefinitionDatatype` (`FieldDefinitionDatatype_Code`, `FieldDefinitionDatatype_Name`) VALUES ('color', 'Colorpicker');
* SHOP
-- new table for tracking codes (google retargeting)
CREATE TABLE `ShopTrackingCode` (
`ShopTrackingCode_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`ShopTrackingCode_Name` varchar(255) NOT NULL,
`ShopTrackingCode_Active` enum('true','false') NOT NULL DEFAULT 'true',
`ShopTrackingCode_ConversionId` varchar(255) NOT NULL,
`ShopTrackingCode_ConversionLabel` varchar(255) NOT NULL,
`ShopTrackingCode_ConversionColor` varchar(6),
`Person_ID_Edit` int(10) unsigned DEFAULT NULL,
`Table_Edit` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Person_ID_Create` int(10) unsigned DEFAULT NULL,
`Table_Create` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`ShopTrackingCode_ID`),
KEY `IDX_Person_Person_ID_Edit` (`Person_ID_Edit`),
KEY `IDX_Person_Person_ID_Create` (`Person_ID_Create`),
CONSTRAINT `ShopTrackingCode_ibfk_1` FOREIGN KEY (`Person_ID_Edit`) REFERENCES `Person` (`Person_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `ShopTrackingCode_ibfk_2` FOREIGN KEY (`Person_ID_Create`) REFERENCES `Person` (`Person_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB;
-- link tracking code with shop categories
ALTER TABLE `ShopCategory` ADD COLUMN `ShopTrackingCode_ID` INTEGER UNSIGNED AFTER `ShopArticleAttributeItem_ID`;
CREATE INDEX IDX_ShopCategory_16 ON ShopCategory (ShopTrackingCode_ID);
ALTER TABLE ShopCategory ADD CONSTRAINT ShopTrackingCode_ShopCategory_7
FOREIGN KEY (ShopTrackingCode_ID) REFERENCES ShopTrackingCode (ShopTrackingCode_ID) ON DELETE SET NULL;
-- Attribute type setting if tracking code can or cannot be assigned to an attribute
ALTER TABLE `ShopArticleAttributeType` ADD COLUMN `ShopArticleAttributeType_Tracking` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleAttributeType_Compare`;
-- link tracking code with product attributes (e.g. "Marke")
ALTER TABLE `ShopArticleAttributeItem` ADD COLUMN `ShopTrackingCode_ID` INTEGER UNSIGNED AFTER `ArticleEntry_ID`;
CREATE INDEX IDX_ShopArticleAttributeItem_5 ON ShopArticleAttributeItem (ShopTrackingCode_ID);
ALTER TABLE ShopArticleAttributeItem ADD CONSTRAINT ShopTrackingCode_ShopArticleAttributeItem_3
FOREIGN KEY (ShopTrackingCode_ID) REFERENCES ShopTrackingCode (ShopTrackingCode_ID) ON DELETE SET NULL;
Datenkraft DISCO 3.0.9 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.9 Release (r3786).
Released on 09.03.2011.
http://wiki.datenkraft.com/index.php/DISCO_Suite_3.0.9
==Features==
* CORE
** 2 neue Datenobjekt Helper Funktions fetchAllDataAsArray, fillManyToManyTable
*** fetchAllDataAsArray: ließt ein komplettes Datenobjekt aus der Datenbank aus und gibt ein array zurück
*** fillManyToManyTable: Befüllt eine Verknüpfungstabelle
** Datenkraft_Exception & Datenkraft_Db_Exception
** Neues Pageviewfeld "Colorpicker"
** Clipboard über Session hinaus in Datenbank ablegbar (Checkbox "Clipboard speichern") - Wird bei Login automatisch geladen
** Verschieben von Listeneinträgen ist nun mit Drag & Drop möglich.
** In gefilterte Pageviews können Einträge nicht mehr verschoben werden.
** Beim Pageview wird nun angzeigt ob er gefiltert ist, ggf. kann man auch die Filterung komplett zurücksetzen.
** Im Edit Pageview wird die Info nun in einem Info Icon angezeigt mit Tooltip.
* SHOP
** Shop-SQLReports: Einfache Möglichkeit kundenspezifische Auswertungen bzw. Abfragen darzustellen ohne PHP Code ändern zu müssen.
** Kassabuch und Kassa-Tagesabschluss
==Changelog==
* CORE
** Bugfix: Die JavaScript Funktion zum Ersetzen von Submit-Buttons durch Links ("$.fn.makeLink") hat unter umständen nicht richtig funktioniert wenn mehr als ein Submit-Button im Formular war. (alle Value-Werte wurden als hidden feld mitgeschickt, nicht bloß der des angeklickten Buttons bzw. Links)
** memory_limit Einstellung aus LIB-Config entfernt (Shop + CMS) -> Speicher wurde immer fix auf 128 runter geschraubt auch wenn mehr verfügbar gewesen wäre
** Neuen Smarty-Modifier "appendparam" hinzugefügt - sehr hilfreich wenn einer URL noch parameter angefügt werden sollen. Bsp.: {$myUrl|appendparam:"page=6"}
** Google Maps V3 Frontend inkl. Routenplaner
** Bugfix: DB-Feld NewsletterGroup_Order auf NOT NULL gesetzt.
** Bugfix: DB-Feld NewsletterGroup_Show auf NOT NULL gesetzt.
** Authorization: Bei Login mit Code wird immer ein neuer Code erzeugt.
** Session und Authorization wurde umgeschrieben sodass es funktioniert wie angenommen. Man kann nun im Frontend auch die Backend Session abfragen.
** Pageviewfield: Ajax Advanced - Angepasst auf neuen Style und Funktionalität.
** Wrapper für Fileddefintions: Ist für Frontend Editieren mit vielen optionalen Feldern praktisch
** Optional Field Type: Tree, DateTime
** Kleiner Bugfix im Ltmfile damit mehrere fehlende LTM codes aufeinmal ins file geschrieben werden
** Neue Klasse: Datenkraft_Date hinzugefügt (Zend_Date sollte nirgends mehr direkt verwendet werden)
** Datenkraft_Date um Methode "toSql" erweitert - Datums/Zeit String-Repräsentation für SQL-Queries
** exif Daten aus Bild auslesen wird mit @ aufgerufen.
* SHOP
** Neue Shop Default-Einstellung "SHOP_DEFAULT_DELIVERYSERVICE_CODE" hinzugefügt. Darüber kann das Lieferservice per default definiert werden. Bislang wurde standardmäßig nichts zugeordnet.
** Neues Feature-Flag hinzugefügt: "SHOP_MODULE_ARTICLE_DETAIL_FACEBOOK_LIKEBUTTON" - Steuert die Anzeige des Facebook-Like-Buttons auf den Produkt-Detailseiten
** Neue Shop Default-Einstellung "SHOP_DEFAULT_OFFER_DOCUMENT_PATH" hinzugefügt. Gibt den Pfad zum Hochladen von Dokumenten bei einer Anfrage.
** Bestellung bearbeiten: Wenn kein Lieferservice ausgewählt ist, wird nicht mehr zufällig der erste ausgewählt.
** Bestelljournal Bugfix, wenn ein Kunde eine steuerfreie Lieferung hat, wurde der Betrag samt Steuer ins Journal geschrieben. (Achtung UID Kunden aus Österreich sind keine stuerfreie Lieferungen)
** Backend Artikelübersicht/Detailansicht Button "Im Frontend anzeigen" nur anzeigen, wenn der Artikel im Frontend sichtbar ist.
** Bugfix: Crossselling Detailansicht "Im Frontend anzeigen" funktionierte nicht.
** Backend Markendetail: Bulk Funktionen zusammenlegen, Clipboard funktionierte nicht.
** Backend Kategoriedetail: Buttons zusammenlegen, ausgewählte Löschen mit Confirm-Dialog
** Backend CrossSellingdetail: Vom Clipboard hinzufügen, dopplte Meldungen entfernen
** Backend CrossSellingdetail: Bulk Action für Produkte von Crossselling entfernen.
** ShopWAWIJournalType "lagereingag" auf "lagereingang" updaten bzw. entfernen
** Backend Rabattgruppendetail: Zugeordnete Produkte zum Clipboard hinzufügen
** Backend Lieferantendetail: Aufteilung in der Übersicht; Wawi Produkte Lieferanten-Filter enfernen, bzw Bulk entfernen
** Frontend Kredtikartentyp bessere Validierungsmeldung ausgeben
** Attribute/Filter: Vor dem Löschen abfragen, ob es eine Verknüpfung zum Filter/Attribut gibt
** Attribute/Filter: Verknüpfte Produkte ins Clipboard kopieren
** Rabattgruppen Detail: Zugeordnete Produkte einzeln zum Clipboard hinzufügen
** Artikelgruppen: Einzelnen Artikel ins Clipboard einfügen
** Crossselling auf Produkt-Detailseite überarbeitet (Ctrl+neue Lib-Templates)
** Bugfix: Filter haben nicht mehr funktioniert (Übergabe einer nicht definierten Variable in _handleParameter)
** SEHR VIEL SHOP CODE AUFGERÄUMT (entsprechend unserer Coding-Guidelines)
** Shop-Einstellung: SHOP_DEFAULT_GOOGLE_ANALYTICS_ASYNCHRON entfernt (ab nun wir immer asynchron getrackt)
** Konstante SHOP_SHOPORDER_SALT von constants.php (lib) in settings.php (app) verschoben, sollte nämlich für jedes Shop-Projekt anders sein!
** Bugfix: Beim (Neu)Versand der Bestell-Bestätigung (Mail) im Backend (Bestell-Detailseite) wurden stornierte Zeilen mitgezählt (Rabatte, Lieferkosten, ...)
** 2 neue Menüpunkte (Kassa / Kassabuch, Kassa / Tagesabschluss) hinzugefügt (ShopPaymentItem Controller)
** Neuer Menüpunkt "Shop Auswertungen" (im Bereich: Berichte)
** Alle ENUM (true/false) Felder in den Shop-Tabellen auf NOT NULL gesetzt.
==SQL Updates==
* CORE
ALTER TABLE `NewsletterGroup` CHANGE COLUMN `NewsletterGroup_Order` `NewsletterGroup_Order` INT NOT NULL AFTER `NewsletterGroup_ID`;
-- Update der Order-Werte - nur ausführen wenn die Standard-NL-Gruppe den Order-Wert NULL oder 0 hat
UPDATE NewsletterGroup SET NewsletterGroup_Order = NewsletterGroup_Order + 1 WHERE NewsletterGroup_ID >= 1;
UPDATE NewsletterGroup SET NewsletterGroup_Order = 1 WHERE NewsletterGroup_ID = 1;
ALTER TABLE `NewsletterGroup` CHANGE COLUMN `NewsletterGroup_Show` `NewsletterGroup_Show` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `NewsletterGroup_Order`;
ALTER TABLE `FieldSelect` ADD COLUMN `FieldSelect_ID_Parent` INT(11) NULL DEFAULT NULL AFTER `FieldSelect_Name`;
ALTER TABLE FieldSelect ADD CONSTRAINT FieldSelect_FieldSelect
FOREIGN KEY (FieldSelect_ID_Parent) REFERENCES FieldSelect (FieldSelect_ID) ON DELETE CASCADE ON UPDATE CASCADE;
Insert Into FieldDefinitionDatatype(FieldDefinitionDatatype_Code, FieldDefinitionDatatype_Name) values ('tree', 'Baum');
ALTER TABLE `FieldData` ADD COLUMN `FieldData_DateTime` DATETIME NULL DEFAULT NULL AFTER `FieldData_Date`;
INSERT INTO FieldDefinitionDatatype(FieldDefinitionDatatype_Code, FieldDefinitionDatatype_Name) VALUES ('datetime', 'Datum mit Uhrzeit');
CREATE TABLE Clipboard (
Person_ID INTEGER(10) UNSIGNED NOT NULL,
Clipboard_Data TEXT NOT NULL,
CONSTRAINT PK_Clipboard PRIMARY KEY (Person_ID)
)
TYPE=InnoDB;
ALTER TABLE Clipboard ADD CONSTRAINT Worker_Clipboard
FOREIGN KEY (Person_ID) REFERENCES Worker (Person_ID);
* SHOP
UPDATE ShopWAWIJournal SET ShopWAWIJournalType_Code = 'lagereingang' WHERE ShopWAWIJournalType_Code = 'lagereingag';
DELETE FROM ShopWAWIJournalType WHERE ShopWAWIJournalType_Code = 'lagereingag';
-- Kassa: Kassabuch und Tagesabschluss
ALTER TABLE `ShopPaymentItem` ADD COLUMN `ShopPaymentItem_Subject` VARCHAR(255) NULL AFTER `ShopPaymentItem_Response`;
ALTER TABLE `ShopPaymentItem` CHANGE COLUMN `ShopOrder_ID` `ShopOrder_ID` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `ShopPaymentItem_ID`;
-- new Feature SQLReports
CREATE TABLE ShopSqlReport (
ShopSqlReport_ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
ShopSqlReport_Name VARCHAR(255) NOT NULL,
ShopSqlReport_Description TEXT,
ShopSqlReport_Query TEXT NOT NULL,
ShopSqlReport_Show ENUM('true','false') NOT NULL DEFAULT 'true',
CONSTRAINT PK_ShopSqlReport PRIMARY KEY (ShopSqlReport_ID)
) Type=InnoDB;
-- SqlReport: "Aktive Verkaufsartikel ohne Bilder"
INSERT INTO `ShopSqlReport` (`ShopSqlReport_ID`, `ShopSqlReport_Name`, `ShopSqlReport_Description`, `ShopSqlReport_Query`, `ShopSqlReport_Show`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES
(1, 'Aktive Verkaufsartikel ohne Bilder', 'Dieser Bericht zeigt alle Verkaufsartikel, die im Frontend sichtbar sind und denen kein Bild zugeordnet ist (weder direkt noch einer Variante).', 'SELECT CONCAT(\'/Shoparticle/Shoparticle_Detail?viewid=ShopArticle_ID=\', sa.ShopArticle_ID) AS `goto`, ael.ArticleEntry_Language_Title AS `Verkaufsartikel`, sa.ShopArticle_Articlenumber AS `Artikelnummer`\r\nFROM ShopArticle AS sa\r\nINNER JOIN ArticleEntry_Language AS ael ON (ael.ArticleEntry_ID = sa.ArticleEntry_ID)\r\nWHERE\r\n -- Verkaufartikel ist sichtbar\r\n sa.ShopArticle_Show = \'true\'\r\n -- zumindest eine Variante ist sichtbar\r\n AND (SELECT COUNT(saicnt.ShopArticleItem_ID) FROM ShopArticleItem AS saicnt WHERE saicnt.ShopArticle_ID = sa.ShopArticle_ID AND saicnt.ShopArticleItem_Show = \'true\' AND saicnt.ShopArticleItem_IgnoreMinPrice = \'false\') > 0\r\n -- Preise stehen zu Verfügung\r\n AND (SELECT COUNT(spccnt.ShopPriceCache_ID) FROM ShopPriceCache AS spccnt WHERE spccnt.ShopArticle_ID = sa.ShopArticle_ID) > 0\r\n -- Verkaufsartikel ist zumindest einer Kategorie zugeordnet\r\n AND (SELECT COUNT(sasccnt.ShopCategory_ID) FROM ShopArticle_ShopCategory AS sasccnt WHERE sasccnt.ShopArticle_ID = sa.ShopArticle_ID) > 0\r\n AND NOT EXISTS (\r\n SELECT aep.ArticleEntry_ID FROM ArticleEntry_Picture AS aep WHERE aep.ArticleEntry_ID = sa.ArticleEntry_ID\r\n )', 'false', NULL, '2011-03-08 11:40:49', NULL, '2011-03-08 10:01:55');
-- ENUM fields set to "NOT NULL"
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWIProduct_Show` `ShopWAWIProduct_Show` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopWAWIProductUnit_Code`;
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWIProduct_Active` `ShopWAWIProduct_Active` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopWAWIProduct_Show`;
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWIProduct_Imported` `ShopWAWIProduct_Imported` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIProduct_ImportInfo`;
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWIProduct_Stock_PreFill` `ShopWAWIProduct_Stock_PreFill` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIProduct_Stock_PerDay`;
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWIProduct_HasCharge` `ShopWAWIProduct_HasCharge` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIProduct_Delivery_Packing_Size_Modifier`;
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWIProduct_Fragile` `ShopWAWIProduct_Fragile` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIProduct_HasCharge`;
ALTER TABLE `ShopWAWIProduct` CHANGE COLUMN `ShopWAWIProduct_Virtual` `ShopWAWIProduct_Virtual` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIProduct_Fragile`;
ALTER TABLE `ShopArticleItem` CHANGE COLUMN `ShopArticleItem_Show` `ShopArticleItem_Show` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleItem_Order`;
ALTER TABLE `ShopArticleItem` CHANGE COLUMN `ShopArticleItem_Buyable` `ShopArticleItem_Buyable` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopArticleItem_Show`;
ALTER TABLE `ShopArticleItem` CHANGE COLUMN `ShopArticleItem_IgnoreMinPrice` `ShopArticleItem_IgnoreMinPrice` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleItem_Buyable`;
ALTER TABLE `ShopArticleItem` CHANGE COLUMN `ShopArticleItem_StockRestriction` `ShopArticleItem_StockRestriction` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleItem_IgnoreMinPrice`;
ALTER TABLE `ShopAccountJournal` CHANGE COLUMN `ShopAccountJournal_Active` `ShopAccountJournal_Active` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopAccountJournal_BookingNumber`;
ALTER TABLE `ShopAccountJournal` CHANGE COLUMN `ShopAccountJournal_Complete` `ShopAccountJournal_Complete` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopAccountJournal_Appendix`;
ALTER TABLE `ShopAccountJournal` CHANGE COLUMN `ShopAccountJournal_ShowVAT` `ShopAccountJournal_ShowVAT` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopAccountJournal_DeliveryCost`;
ALTER TABLE `ShopUser` CHANGE COLUMN `ShopUser_DeliveryWithInvoice` `ShopUser_DeliveryWithInvoice` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopUser_DeliveryDistrict`;
ALTER TABLE `ShopUser` CHANGE COLUMN `ShopUser_Partner` `ShopUser_Partner` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopUser_Birthday`;
ALTER TABLE `ShopUser` CHANGE COLUMN `ShopUser_Delivery_Free` `ShopUser_Delivery_Free` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopUser_Partner_Interval`;
ALTER TABLE `ShopUser` CHANGE COLUMN `ShopUser_EprocurementIsAdmin` `ShopUser_EprocurementIsAdmin` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopUser_Info`;
ALTER TABLE `ShopUser` CHANGE COLUMN `ShopUser_IsAnoymous` `ShopUser_IsAnoymous` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopUser_Hash`;
ALTER TABLE `ShopUser` CHANGE COLUMN `ShopUser_LoyaltyBonus` `ShopUser_LoyaltyBonus` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopUser_IsAnoymous`;
ALTER TABLE `ShopCustomer` CHANGE COLUMN `ShopCustomer_CreditCard3DSecure` `ShopCustomer_CreditCard3DSecure` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopCustomer_CreditCardOwner`;
ALTER TABLE `ShopCustomer` CHANGE COLUMN `ShopCustomer_DeliveryWithInvoice` `ShopCustomer_DeliveryWithInvoice` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopCustomer_DeliveryDistrict`;
ALTER TABLE `ShopArticleGroupType` CHANGE COLUMN `ShopArticleGroupType_Show` `ShopArticleGroupType_Show` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopArticleGroupType_Order`;
ALTER TABLE `ShopArticleGroup` CHANGE COLUMN `ShopArticleGroup_Show` `ShopArticleGroup_Show` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopArticleGroup_Order`;
ALTER TABLE `ShopArticleItemType` CHANGE COLUMN `ShopArticleItemType_Active` `ShopArticleItemType_Active` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleItemType_Order`;
ALTER TABLE `ShopArticleItemType` CHANGE COLUMN `ShopArticleItemType_Bundle` `ShopArticleItemType_Bundle` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleItemType_Active`;
ALTER TABLE `ShopArticleItemType` CHANGE COLUMN `ShopArticleItemType_Group` `ShopArticleItemType_Group` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleItemType_Name`;
ALTER TABLE `ShopDeliveryService` CHANGE COLUMN `ShopDeliveryService_Selectable` `ShopDeliveryService_Selectable` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopDeliveryService_Internal`;
ALTER TABLE `ShopDeliveryService` CHANGE COLUMN `ShopDeliveryService_ShowTrackingNumber` `ShopDeliveryService_ShowTrackingNumber` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopDeliveryService_URLSuffix`;
ALTER TABLE `ShopAccountJournalState` CHANGE COLUMN `ShopAccountJournalState_Active` `ShopAccountJournalState_Active` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopAccountJournalState_Name`;
ALTER TABLE `ShopArticleInterests` CHANGE COLUMN `ShopArticleInterests_Active` `ShopArticleInterests_Active` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `Shop_Code`;
ALTER TABLE `ShopAttributeStyle` CHANGE COLUMN `ShopAttributeStyle_Show` `ShopAttributeStyle_Show` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopAttributeStyle_Order`;
ALTER TABLE `ShopCategoryFunction` CHANGE COLUMN `ShopCategoryFunction_Active` `ShopCategoryFunction_Active` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopCategoryFunction_Name`;
ALTER TABLE `Shop` CHANGE COLUMN `Shop_ShopArticle_Enabled` `Shop_ShopArticle_Enabled` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `Shop_Name`;
ALTER TABLE `ShopArticleAttributeType` CHANGE COLUMN `ShopArticleAttributeType_Filter` `ShopArticleAttributeType_Filter` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleAttributeType_Order`;
ALTER TABLE `ShopArticleAttributeType` CHANGE COLUMN `ShopArticleAttributeType_Show` `ShopArticleAttributeType_Show` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopArticleAttributeType_Filter`;
ALTER TABLE `ShopArticleAttributeType` CHANGE COLUMN `ShopArticleAttributeType_Compare` `ShopArticleAttributeType_Compare` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopArticleAttributeType_Show`;
ALTER TABLE `ShopConfig` CHANGE COLUMN `ShopConfig_Critical` `ShopConfig_Critical` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopConfig_Order`;
ALTER TABLE `ShopConfig` CHANGE COLUMN `ShopConfig_Required` `ShopConfig_Required` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopConfig_Critical`;
ALTER TABLE `ShopConfig` CHANGE COLUMN `ShopConfig_Multiline` `ShopConfig_Multiline` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopConfig_Required`;
ALTER TABLE `ShopDeliveryServiceOption` CHANGE COLUMN `ShopDeliveryServiceOption_Show` `ShopDeliveryServiceOption_Show` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopDeliveryServiceOption_Order`;
ALTER TABLE `ShopDiscountListType` CHANGE COLUMN `ShopDiscountListType_Show` `ShopDiscountListType_Show` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopDiscountListType_Order`;
ALTER TABLE `ShopDiscountListType` CHANGE COLUMN `ShopDiscountListType_Group` `ShopDiscountListType_Group` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopDiscountListType_Show`;
ALTER TABLE `ShopEprocurementCostCentre` CHANGE COLUMN `ShopEprocurementCostCentre_Active` `ShopEprocurementCostCentre_Active` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopEprocurementCostCentre_Name`;
ALTER TABLE `ShopOrder` CHANGE COLUMN `ShopOrder_ShowVAT` `ShopOrder_ShowVAT` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopOrder_NewDate`;
ALTER TABLE `ShopOrder` CHANGE COLUMN `ShopOrder_IsDirectOrder` `ShopOrder_IsDirectOrder` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopOrder_Import`;
ALTER TABLE `ShopOrderJournalType` CHANGE COLUMN `ShopOrderJournalType_Visible` `ShopOrderJournalType_Visible` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopOrderJournalType_Name`;
ALTER TABLE `ShopPartnerBrokerageType` CHANGE COLUMN `ShopPartnerBrokerageType_Show` `ShopPartnerBrokerageType_Show` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopPartnerBrokerageType_Order`;
ALTER TABLE `ShopPartnerList` CHANGE COLUMN `ShopPartnerList_Show` `ShopPartnerList_Show` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopPartnerList_Order`;
ALTER TABLE `ShopPaymentType` CHANGE COLUMN `ShopPaymentType_Abo` `ShopPaymentType_Abo` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopPaymentType_Name`;
ALTER TABLE `ShopPriceCache` CHANGE COLUMN `ShopPriceCache_Listprice` `ShopPriceCache_Listprice` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopPriceCache_Tax`;
ALTER TABLE `ShopPriceCache` CHANGE COLUMN `ShopPriceCache_IgnoreMinPrice` `ShopPriceCache_IgnoreMinPrice` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopPriceCache_Listprice`;
ALTER TABLE `ShopPriceCache` CHANGE COLUMN `ShopPriceCache_IsMinPrice` `ShopPriceCache_IsMinPrice` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopPriceCache_IgnoreMinPrice`;
ALTER TABLE `ShopTask` CHANGE COLUMN `ShopTask_Active` `ShopTask_Active` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopOrderJournal_ID`;
ALTER TABLE `ShopTask` CHANGE COLUMN `ShopTask_ShowToUser` `ShopTask_ShowToUser` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopTask_Reminder`;
ALTER TABLE `ShopTaskType` CHANGE COLUMN `ShopTaskType_Active` `ShopTaskType_Active` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopTaskType_Order`;
ALTER TABLE `ShopTaskType` CHANGE COLUMN `ShopTaskType_SendMailOnCreation` `ShopTaskType_SendMailOnCreation` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopTaskType_Active`;
ALTER TABLE `ShopUserOption` CHANGE COLUMN `ShopUserOption_Show` `ShopUserOption_Show` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopUserOption_Name`;
ALTER TABLE `ShopVariant` CHANGE COLUMN `ShopVariant_HasSubLevel` `ShopVariant_HasSubLevel` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopVariant_Name`;
ALTER TABLE `ShopVariant` CHANGE COLUMN `ShopVariant_Common` `ShopVariant_Common` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopVariant_HasSubLevel`;
ALTER TABLE `ShopVoucher` CHANGE COLUMN `ShopVoucher_Regenerate` `ShopVoucher_Regenerate` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopVoucher_Active`;
ALTER TABLE `ShopVoucher` CHANGE COLUMN `ShopVoucher_AllowInvoice` `ShopVoucher_AllowInvoice` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopVoucher_Regenerate`;
ALTER TABLE `ShopVoucher` CHANGE COLUMN `ShopVoucher_Uniquely` `ShopVoucher_Uniquely` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopVoucher_AllowInvoice`;
ALTER TABLE `ShopVoucherFunction` CHANGE COLUMN `ShopVoucherFunction_Active` `ShopVoucherFunction_Active` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopVoucherFunction_Order`;
ALTER TABLE `ShopVoucherType` CHANGE COLUMN `ShopVoucherType_Active` `ShopVoucherType_Active` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopVoucherType_Order`;
ALTER TABLE `ShopVoucherType` CHANGE COLUMN `ShopVoucherType_Discount` `ShopVoucherType_Discount` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopVoucherType_Active`;
ALTER TABLE `ShopWAWIChargePackening` CHANGE COLUMN `ShopWAWIChargePackening_Open` `ShopWAWIChargePackening_Open` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIChargePackening_ID_Parent`;
ALTER TABLE `ShopWAWIChargePackening` CHANGE COLUMN `ShopWAWIChargePackening_Delivered` `ShopWAWIChargePackening_Delivered` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIChargePackening_Open`;
ALTER TABLE `ShopWAWIChargePackening` CHANGE COLUMN `ShopWAWIChargePackening_Broken` `ShopWAWIChargePackening_Broken` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIChargePackening_Delivered`;
ALTER TABLE `ShopWAWIDelivery_ShopWAWIProduct` CHANGE COLUMN `ShopWAWIDelivery_ShopWAWIProduct_OrderClosed` `ShopWAWIDelivery_ShopWAWIProduct_OrderClosed` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIDelivery_ShopWAWIProduct_DeliverPrice`;
ALTER TABLE `ShopWAWIDelivery_ShopWAWIProduct` CHANGE COLUMN `ShopWAWIDelivery_ShopWAWIProduct_DeliverClosed` `ShopWAWIDelivery_ShopWAWIProduct_DeliverClosed` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIDelivery_ShopWAWIProduct_OrderClosed`;
ALTER TABLE `ShopWAWIProductDeliveryPacking` CHANGE COLUMN `ShopWAWIProductDeliveryPacking_ConsiderInCreation` `ShopWAWIProductDeliveryPacking_ConsiderInCreation` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWAWIProductDeliveryPacking_EAN`;
ALTER TABLE `ShopWishList` CHANGE COLUMN `ShopWishList_AutoDeliveryToUser` `ShopWishList_AutoDeliveryToUser` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopWishList_Text`;
Datenkraft DISCO 3.0.8 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.8 Release (r3591).
Released on 02.02.2011.
==SHOP IST IN DIESER VERSION NICHT STABLE==
==WICHTIGE UPDATE INFORMATION==
In diesem Update wurde das LTM System komplett umgestellt, deswegen gibt es ein paar Schritte die ausgeführt werden müssen um beim Update nichts kaputt zu machen.
* Mach zu aller erst ein Backup der Datenbank (am wichtigsten sind die LTM Tabellen LTMTranslation, LTMTranslation_Language)
* Wenn du schon die LTMs als File benutzt hast, kopiere dir alle Ordner aus application/Languages an einen sicheren Ort.
* Wichtig! - Logge dich ins Backen ein.
* Es gibt eine neue Config ini Einstellung translation.adapter ... der Wert dieser Variable muss translation.adapter = "Datenkraft_Translate_Adapter_Ltmfile" sein.
* Rufe das Meta Scrupt /backend/meta/'''ConvertLtmFiles''' auf ... wandelt die alten Files in den Ordner in die neuen Files um
** Die Sprachordner (application/Languages/de .. en und library/Disco/Language/de .. en können komplett gelöscht werden es gibt nun nur noch de.php und en.php)
* Rufe das Meta Script /backend/meta/'''fetchAllMissingLtmCodesAndWriteToFile''' auf. Keine Angst es passiert nicht gleich etwas ... du musst zuerst bestätigen das du starten willst.
** Das Script vergleicht alle LTMs in der Datenbank mit den vorhanden in den Dateien, sollte ein Code unterschiedlich sein wird dieser in application/Languages in das entsprechende Sprachfile eingetragen.
** Das Script zeigt dir an welche LTMs unterschiedlich waren, lösche evtl. falsche LTMs auf der project_ltm.php Datei ...
** Der nächste Schritt schreibt alle vorhanden Übersetzungen in den Dateien in die Datenbank zurück.
==Features==
* CORE
** Pageviewfield: Checkboxtree hat neue Option singleSelection ... Macht aus dem Checkboxtree ein Radiobutton Tree
** Linkchecker wurde in die DISCO intregriert. Command Line tool (linkchecker) kann verwendet werden und parst eine Seite und check alle Links ... gibt einen HTML Report zurück.
** Neues Datenkraft Modul - Rewrite. Ist dazu gedacht verschiedenste Daten zu umschreiben.
*** Erstes Rewrite Module = Secure ... Wird in Javascript include und Style include verwendet ... Sollte die Seite SSL sein und das Script von http geladen werden, wird die Source auf HTTPS umgeschrieben.
** jQuery UI 1.8.9 + kleinere Design Anpassungen im Backend.
** Style vom DateTimepicker geändert.
** Dialog in der DISCO an restlichen jQuery UI Style angepasst.
* CMS
* SHOP
** Kassasystem bzw. Direktbestellungs-System (ev. für Servicecenter-Mitarbeiter) hinzugefügt
** Verkaufsartikel/Crossselling Kategorie-Filter zusätzlich die Anzahl der verknüpften Produkte anzeigen
** Rabattsatz hinzufügen "ab Menge" richtig validieren
==Changelog==
* CORE
** Neue Konstante "WEBSITE_URL_SECURE" mit "https" als Protokoll hinzugefügt (wird z.B. bei mPAY24 Bezahlung verwendet)
** Nimm erste aktive Sprache anstelle von Deutsch im Frontend
** Backend Menu Pageview kann jetzt auch mit dem Type: radio in der Config umgehen
** "Vorschau im Frontend" zeigte immer Deutsch. Language_Code Parameter in DB_* gesetzt
** Ltm Adapter über application.ini setzbar. ''tranlsation.adapter="Datenkraft_Translate_Adapter_Ltm"''
** Cronjob ErrorReport Versenden ... Bugfix das Email immer verschickt wird.
** Bugfix: einige Stellen im Code haben ihre eigene Instanz von Datenkraft_Session erzeugt (obwohl die Session ein Singleton sein sollte) => Code-Stellen korrigiert und Konstruktor auf "protected" (wie auch in Zend_Session) geändert.
** Bugfix: Fehlende Konstante "SYSTEM_USER_ID" (=1) zu Mainconfig.php hinzugefügt. (wird z.B. in DataObject verwendet, kam jedoch durch 2 andere Bugs nicht zu einem Fehler)
** DataObject, alte bzw. nicht verwendete Funktionen entfernt (createclasses aufrufen!):
*** _onValidate
*** _afterValidate
*** _onInsert_advanced
*** _onUpdate_advanced
*** _onDelete_advanced
*** _onDelete
** DataObject, Methoden Signatur-Änderungen (createclasses aufrufen!):
*** interpretFetchedValue --> _interpretFetchedValue (protected)
*** specifySelect --> _specifySelect (protected)
** DataObject Klassengenerator, alte bzw. nicht verwendete Funktionen entfernt:
*** _generateDeleteAdvancedFunction
*** _generateValidateFunction
** SMS queue für alle Nachrichten
** Bugfix: Backend Menü-Bezeichnung wird nun zur "Navigation" hinzugefügt wenn ein CUSTOM-Pageview-Template gesetzt ist. (bislang wurde in diesem Fall der Name des ersten Menüpunkts als Seitentitel verwendet)
** Die Klasse "Datenkraft_Frontend_View" wurde um die Methode "setCanonicalUrl" erweitert
** Smarty plugin "displaymenu" von DATENKRAFT in DISCO/Shop Ordner verschoben
** ''SERVER'' Variable in Smarty eingefügt (hostname, isSecure). kann in Application.ini mit disco.hostname = "www.somewhere.com" überschrieben werden
** Bugfix: Validate_Wrapper::hasValidationErrors lieferte false trotz aufgetretener Fehler
** Bugfix: In der DISCO konnten keine negativen Werte in ein Integer-Feld gespeichert werden. Automatisch und OHNE den User zu informieren wurden daraus positive Werte gemacht und abgespeichert.
** Bugfix: Slow-Query-Log im Datenkraft_Db_DataObject hat jede einzelne Query in das entsprechende Log-File geschrieben (egal wie lang sie gedauert hat)
** Bugfix: Die whereAddIn Methode des PEAR DB_DataObject hat mit Strings nicht richtig funktioniert - überschrieben und korrigiert. Diese Methode sollte auch verwendet werden um die unzähligen implode-Statements aus dem Code zu entfernen!
** ISSUU Anpassungen im Model und Template
* CMS
** Bugfix: Rating hat bei 2 Stimmen zu je 3 und 4 nicht 3.5 sondern nur 3 Sterne angezeigt.(DB_ArticleEntry::getArticleEntry_Rating_Avg_Half)
* SHOP
** Löschen von abgelaufenen Gutscheinen ermöglicht - bislang konnten diese nicht gelöscht werden. Nun kann ein Gutschein nur dann nicht gelöscht werden, wenn er einer Bestellung zugeordnet ist.
** Dynamisch erzeugte Kategorien können (und werden per default) nun in der Produkt-Kategorie-Übersicht per Filter ausgeblendet.
** Weitere Einschränkung für das dyn. Erzeugen von Kategorien hinzugefügt -> es muss zumindest ein sichtbarer Verkaufsartikel existieren. (bislang wurde eine solche Kategorie auch generiert, wenn ein unsichtbarer Verkaufartikel zugewiesen war)
** Konstante: "DHL_ADDRESS_CHECK" auf "SHOP_MODULE_DHL_ADDRESS_CHECK" umbenannt
** Wenn ein Shop-Kunde im Backend deaktiviert wird, wird er auch als Newsletter-Empfänger deaktiviert.
** Neues Feld "ShopUser_Code_Special" zu Tabelle "ShopUser" hinzugefügt
** Neue Backend-Berechtigungen für Kassa bzw. Direktbestellung (Servicecenter) hinzugefügt
** Neue Bezahlart ("Barbezahlung") für Kassa-Modul hinzugefügt [@see SQL]
** Bugfix: Bulk-Entsperren von Bestellungen hat bei Erfolgsmeldung eine falsche Anzahl angezeigt (ev. können manche der ausgewählten Bestellungen aber nicht entsperrt werden, wurden aber dennoch mitgezählt)
** Bugfix: NOT NULL für ShopCategory_Show, ShopCategory_Glassy, ShopCategory_IsDynamic, ShopCategory_IsCopied, ShopCategory_AddFilter und ShopCategory_CopyCrossselling Felder hinzugefügt
** Default-Mengeneinheit für das Anlegen von ShopArticle bzw. ShopArticleItem Einträge hinzugefügt [Konstante: SHOP_DEFAULT_SHOPWAWIPRODUCTUNIT_CODE]
** Bugfix: Etron Produkt- und Kategorieexport
** Shop-Startseite - Änderung: Sidebar wird nicht mehr by-default ausgeblendet
** Methoden-Signatur-Änderung: Disco_Shop_Models_Shop_Order_Ordering::addOrderItemFromExpenseItem ($expenseItem steht nun am Ende, da Default-Wert)
** Bugfix: Kategorieabhängige Gutscheine, Datenobjekt Bug wenn keine Language vorhanden ist
** Funktion: _assignShopHeaderMenu hat ab nun keinen Rückgabewert mehr (_assign... Hilfsfunktionen sollten generell nichts zurückliefern, wenn doch sollten sie ev. mit _get... beginnen)
** '''Typänderung: SHOP_DEFAULT_CHECKOUT_CUSTOMER_ISCOMPANY statt "true", "false", "null" nun Boolean bzw. null'''
** neue Klasse Shop_Rating hinzugefügt: erbt von Cms_Rating kann jedoch zusätzlich zw. Rating-Anzeig und der tatsächlichen Bewertungsfunktionalität unterscheiden (neue Konstante: SHOP_DEFAULT_RATING_ALLOWED)
** Shop Config Einstellung: 'category_sonderangebote' umbenannt auf 'category_sale'
** Neue Shop Config Einstellung: 'category_brandnew' ("Neu im Shop") hinzugefügt
** Anlegen/Bearbeiten eines Attribut-Typs überarbeitet, wenn der Shop keine Filter unterstützt (SHOP_MODULE_FILTER = false) dann steht das Feld: "Filter: Ja/Nein" im Backend auch nicht mehr zu Verfügung.
** ShopConfig Klasse um neue Methode: "isSpecialShopCategoryType" erweitert - zur Abfrage ob eine Kategorie in der Shop-Konfiguration eine spezielle Bedeutung hat. (z.B. Startseite, Topseller, Sale, ...)
** Default Picture-Type in Ctrl-Funktion "_assignProductsFromCategory" von SHOP_PICTURE_THUMB auf SHOP_PICTURE_OVERVIEW geändert.
** Bugfix: Mehrere Varianten hinzufügen
** Allgemeine Lösung für das laden von Pageview-Filter Einstellungen - damit kann z.B. beim Export die Listen-Filter bzw. Sucheinschränkungen mitberücksichtigen. (@see Datenkraft_Backend_Controller::_initModelByViewAction)
** Dataobject: Beim Updaten wurden die Create Spalten automatisch verändert. Dies wurde entfernt sodass Create nur noch verändert wird wenn man es explizit angibt.
** Pageviewfield Checkboxtree - Variablen der Funktion wurden auf String geändert!!!
** 2 neue Shop-Bezahlarten hinzugefügt: "Kreditkarte (Kassa)" und "Bankeinzug (Kassa)" (wie Bar-Bezahlung, jedoch für Auswertung getrennt)
** Bugfix: Backend Kategorie/Artikel abhängige Gutscheine hinzufügen funktionierte nicht
** Bugfix: Im Application-Ordner wurde die Datei error.tpl immer überschrieben und enthielt Fehler (gelöscht)
** Backend Kassa: Kreditkarte und Bankeinzug möglich
==SQL Updates==
* CORE
CREATE TABLE Sms (
Sms_ID INTEGER(11) NOT NULL AUTO_INCREMENT,
Sms_MessageID VARCHAR(255) NOT NULL,
Sms_Servicename VARCHAR(255) NOT NULL,
Sms_Recipient VARCHAR(255),
Sms_SentText VARCHAR(255),
Sms_EventName VARCHAR(40),
Sms_SendDateTime DATETIME,
Sms_SentDateTime DATETIME,
Sms_SentStatus VARCHAR(40),
Sms_ErrorCount INTEGER(3) UNSIGNED DEFAULT 0,
Sms_ResponseText VARCHAR(255),
Sms_Responder VARCHAR(255),
Sms_ResponseDateTime DATETIME,
Sms_ResponseValidUntil DATETIME,
CONSTRAINT PK_Sms PRIMARY KEY (Sms_ID)
)
TYPE=InnoDB;
* CMS
INSERT INTO `ArticleEntryDateTimeType` (`ArticleEntryDateTimeType_Code`, `ArticleEntryDateTimeType_Name`) VALUES ('default', 'Default');
* SHOP
ALTER TABLE `ShopUser` ADD COLUMN `ShopUser_Code_Special` VARCHAR(255) NULL AFTER `Country_Code_Invoice`;
ALTER TABLE `ShopCategory` CHANGE COLUMN `ShopCategory_Show` `ShopCategory_Show` ENUM('true','false') NOT NULL DEFAULT 'true' AFTER `ShopCategory_Level`;
ALTER TABLE `ShopCategory` CHANGE COLUMN `ShopCategory_Glassy` `ShopCategory_Glassy` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopCategory_Show`;
ALTER TABLE `ShopCategory` CHANGE COLUMN `ShopCategory_IsDynamic` `ShopCategory_IsDynamic` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopCategory_Priority`;
ALTER TABLE `ShopCategory` CHANGE COLUMN `ShopCategory_IsCopied` `ShopCategory_IsCopied` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopCategory_IsDynamic`;
ALTER TABLE `ShopCategory` CHANGE COLUMN `ShopCategory_AddFilter` `ShopCategory_AddFilter` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopCategory_IsCopied`;
ALTER TABLE `ShopCategory` CHANGE COLUMN `ShopCategory_CopyCrossselling` `ShopCategory_CopyCrossselling` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopCategory_AddFilter`;
INSERT INTO `Authorization` (`Authorization_Code`, `Authorization_Type`, `AuthorizationSubType_Code`, `Authorization_Name`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('shop_order_directorder', 'backoffice', NULL, 'Shop Bestellwesen Direktbestellung', NULL, '2010-12-09 17:09:05', NULL, '2010-12-09 17:09:05');
INSERT INTO `Authorization` (`Authorization_Code`, `Authorization_Type`, `AuthorizationSubType_Code`, `Authorization_Name`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('shop_order_directorder_cash', 'backoffice', NULL, 'Shop Bestellwesen Kassa', NULL, '2010-12-09 17:09:12', NULL, '2010-12-09 17:09:12');
INSERT INTO `PersonGroup_Authorization` (`Authorization_Code`, `PersonGroup_ID`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('shop_order_directorder', 1, NULL, '2010-12-09 17:17:30', NULL, '2010-12-09 17:17:30');
INSERT INTO `PersonGroup_Authorization` (`Authorization_Code`, `PersonGroup_ID`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('shop_order_directorder_cash', 1, NULL, '2010-12-09 17:17:30', NULL, '2010-12-09 17:17:30');
INSERT INTO `ShopPaymentType` (`ShopPaymentType_Code`, `ShopPaymentType_Name`, `ShopPaymentType_InvoiceText`) VALUES ('cash', 'Barbezahlung', NULL);
INSERT INTO `ShopPaymentType_Language` (`ShopPaymentType_Code`, `Language_Code`, `ShopPaymentType_Language_Title`, `ShopPaymentType_Language_Description`, `Table_Edit`, `Table_Create`) VALUES ('cash', 'de', 'Barbezahlung', NULL, '2010-12-13 10:16:58', '2010-12-13 10:17:06');
ALTER TABLE `ShopVoucher_ShopCategory` DROP FOREIGN KEY `ShopVoucher_ShopVoucher_ShopCategory_1`;
ALTER TABLE `ShopVoucher_ShopCategory` ADD CONSTRAINT `ShopVoucher_ShopVoucher_ShopCategory_1` FOREIGN KEY (`ShopVoucher_ID`) REFERENCES `ShopVoucher` (`ShopVoucher_ID`) ON DELETE CASCADE;
ALTER TABLE `ShopVoucher_ShopCategory` DROP FOREIGN KEY `ShopCategory_ShopVoucher_ShopCategory_2`;
ALTER TABLE `ShopVoucher_ShopCategory` ADD CONSTRAINT `ShopCategory_ShopVoucher_ShopCategory_2` FOREIGN KEY (`ShopCategory_ID`) REFERENCES `ShopCategory` (`ShopCategory_ID`) ON DELETE CASCADE;
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`) VALUES ('category_sale', 'Kategorie "Aktionen"', 30, 'true', 'true', 1, '2011-01-20 10:51:53', 1);
UPDATE `Shop_ShopConfig` SET `ShopConfig_Code`='category_sale' WHERE `ShopConfig_Code`='category_sonderangebote';
DELETE FROM `ShopConfig` WHERE `ShopConfig_Code`='category_sonderangebote';
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`) VALUES ('category_brandnew', 'Kategorie "Neu im Shop"', 31, 'true', 'false', 1, '2011-01-20 10:51:53', 1);
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_company_name', 'Bon Firmenname', 64, 'false', 'false', 'false', NULL, '2011-01-24 14:30:04', NULL, '0000-00-00 00:00:00');
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_company_zip_code', 'Bon PLZ', 65, 'false', 'false', 'false', NULL, '2011-01-24 14:30:20', NULL, '0000-00-00 00:00:00');
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_company_city', 'Bon Stadt', 66, 'false', 'false', 'false', NULL, '2011-01-24 14:30:40', NULL, '0000-00-00 00:00:00');
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_company_address', 'Bon Straße / Nr.', 67, 'false', 'false', 'false', NULL, '2011-01-24 14:31:11', NULL, '0000-00-00 00:00:00');
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_website_domain', 'Bon Websitedomain', 68, 'false', 'false', 'false', NULL, '2011-01-24 14:31:29', NULL, '0000-00-00 00:00:00');
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_email_address', 'Bon Email-Adresse', 69, 'false', 'false', 'false', NULL, '2011-01-24 14:31:45', NULL, '0000-00-00 00:00:00');
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_commercial_register_number', 'Bon Firmenbuchnummer', 70, 'false', 'false', 'false', NULL, '2011-01-24 14:32:01', NULL, '0000-00-00 00:00:00');
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_company_phone', 'Bon Telefonnummer', 71, 'false', 'false', 'false', NULL, '2011-01-24 14:32:38', NULL, '0000-00-00 00:00:00');
INSERT INTO `ShopConfig` (`ShopConfig_Code`, `ShopConfig_Name`, `ShopConfig_Order`, `ShopConfig_Critical`, `ShopConfig_Required`, `ShopConfig_Multiline`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bon_bottom_text', 'Bon Zusatztext', 72, 'false', 'false', 'true', NULL, '2011-01-24 14:32:59', NULL, '0000-00-00 00:00:00');
ALTER TABLE ShopOrder ADD ShopOrder_IsDirectOrder ENUM('true','false') DEFAULT 'false' AFTER ShopOrder_Import;
Datenkraft DISCO 3.0.7 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.7 Release (r3265).
Released on 06.12.2010.
==Features==
* CORE
** Minify JS:
**: include_script function combiniert alle JS am Server in ein Cache-File und wandelt alles in UTF8 mit mb_convert_encoding um. **: Weiters wird der Closure Compiler in WHITEPSACE-ONLY ausgeführt und erstellt ein "-min.js". wird include_Script genuzt, so funktioniert das alles automatisch.
**: kann in application.ini mit javascript.include_script.combine=0 abgeschlaten werden
**: mit javascript.javabin = "java" kann noch eine andere java binary genutzt werden
** Cronjobs wurden leicht überarbeitet. Man kann nun direkt einen einzelnen Task aufrufen. Zusätzlich sieht man in der Sidebar ob die Cronjobs eingerichtet sind.
** Neuer Cronjob Fehlerbericht (siehe SQL Update unten) ... schickt eine Zusammenfassung aller aufgetreten Fehler an den eine gewünschte Email Adresse ... zu konfigurieren in der application.ini.
** '''data/etc/scripts/fix_whitespaces''' entfnert Whitespaces am Zeilenende und CRs mit ''bash data/etc/scripts/fix_whitespaces'' ausführen (kann auch am Produktisystem gemacht werden um Compyre zu erleichtern
** Application_Config Objekt generieren. Entspricht der Config als Zend_Config. In der IDE kann aber die Codevervollständigung genutzt werden. Das File wird nach /data/cache geschreiben und muss in der IDE eventuell geöffnet werden. Über Datenkraft_Application::getConfig() wird dann die aktuelle Config zurückgegeben und richtig annotiert.
* SHOP
** Artikelvergleich auf Attributebene
** Merkliste
** Ähnliche Artikel anhand der Attribute des jeweiligen Artikels anzeigen
==Changelog==
* CORE
** Bugfix: DB_ArticleEntry textcode Generierung wurde behoben ... Beim Aktualisieren wurde der Textcode nicht erneuert ... Jetzt wird er neu geschrieben und das dazu passende Mapping eingetragen.
** Bugfix: PictureModel tif funktioniert jetzt auch mit TIFF
** PictureModel auf absolute Pfade geändert.
** Smarty {img} Plugin hat nun den Pflichtparameter "ratio"
** Backend_Parameter und Backend_Pageview um neue Methode: "isSubmitted" erweitert
** Bugfix: Seit ca. März 2010 wurden keine TextCodes mehr aktualisiert. (Textcode vom Insert wurde fortlaufend beibehalten)
** Bugfix: Seit ca. Mitte September 2010 wurde "ß" in der TextCode erzeugung nicht mehr berücksichtigt und somit ganz entfernt. Weiters wurden Umlaute nicht mehr richtig ersetzt (z.B. Titel: "Größen" resultierte im TextCode "groen" bzw. "Österreich2 -> Osterreich")
** {fillinform} kann nun auch mit mehrdimensonalen Feldnamen umgehen z.B.: MyField[number][]
** {img} hat die zwei zusätzliche Parameter hideTitle und hideCopyright bekommen
** Spezielle Fehlerseiten hinzugefügt (.htaccess) damit nicht für jedes fehlende Bild, Dokument, usw. das PHP Modul (Controller-Architektur usw. mit ca. 20MB Speicher) ausgeführt werden muss
** Pageviewfield: filterValue angepasst um float udn real mit richtigem Deizimaltrenner und ohne floatval nutzen zu können
** Pageviewfield: Methode "addDefaultText_Boolean" als Gegenstück zu "setEditTypeRadiobutton_Boolean" hinzugefügt.
** Validate_Wrapper: Fallback Lösung für alte "registerValidationError" Aufrufe (wo der 3. Parameter der Fehlertext war) hinzugefügt.
** Backend-Validierung (handleValidation) geändert: Der Rückgabewert der handleValidation Methode (in den Models) wird nicht mehr berücksichtigt. Entweder es wirt über den Validate_Wrapper ein Fehler registriert oder nicht, nur diese werden auch ausgegeben bzw. bewirken im Backend, dass der Formularinhalt nicht ungültig gespeichert werden kann.
** Bugfix: Fehler bei Pflichtfeld-Validierung behoben (nach dem Abschicken des Formulars wurden die Pflichtfelder nicht überprüft)
** Möglichkeit die Pflichtfeld-Validierung für bestimmte Formulare umgehen zu können hinzugefügt (DB Pflichtfelder werden dennoch verlangt um DB Fehlern vorzubeugen)
** {displaymenu} Smarty plugin hat sich geändert - das resultierende HTML Menü sieht nun anders aus. (beim Updaten von alten Projekten ev. einfach das alte Lib-Plugin in application verschieben}
** Viele leere und somit unnötige Lib-DatenObjekte entfernt (~130 Klassen) - zum Updaten/Überprüfen der Ableitungen (Src-DatenObjekte) wurde auch ein Meta-Script hinzugefügt: {project}/backend/meta/checkSrcDataObjectInheritance
** Falsche Ableitungen werden in Src-DataObjects jetzt auch automatisch beim Aufruf von /backend/meta/createclasses korrigiert
** Meta-Script zum entfernen LEERER Src-DataObjects hinzugefügt: {project}/backend/meta/deleteEmptySrcDataObjects
** CKEditer: Spellchecker deaktiviert.
** Bugfix: PictureModel Dateiendungen und Pfade angepasst.
** Konstanten: LIBRARY_MAIN_CONFIG, APPLICATION_MAIN_CONFIG entfernt (wurden nur in index.php verwendet)
** $GLOBALS['_BASE_ROOT'] aus Library entfernt (deprecated) -> ab nun sollte die Konstante BASE_ROOT verwendet werden
** Buttons in der DISCO weiter vereinheitlicht.
** Bootstrap Klassen für CMS/Shop überarbeitet (Code von Application in Lib/Datenkraft und Lib/Disco verschoben, je nach logischer Zugehörigkeit)
** Bugfix: Picturecropper .. Wenn bei der freien Auswahl beim Bildcropper nichts gewählt wurde, tritt nun keiner Fehler mehr auf, stattdessen wird das ganze Bild genommen.
** Pageviewfield ajaxAdvanced angepasst & erweitert.
** Bugfix: SCHWEREN FEHLER bei Validierung (Wrapper) behoben, die unter anderem dazu geführt hat, dass man sich mit der selben E-Mail Adresse mehrmals im Shop registrieren konnte. (PEAR_Error Objekte wurden seit der Portierung auf Zend in der Methode registerValidationError nicht richtig berücksichtigt)
** Datenkraft_Utils_Timer Klasse hinzugefügt (Timer für simples Profiling)
** Wenn ein Feld Typ Time ist ... wird die Zeit 24:00 in 00:00 umgewandelt.
* SHOP
** Bugfix: Beim Speichern einer (z.B.) neuen Shop Kategorie wurde bei direkter Eingabe der TextCode nicht überprüft, was dazuführte, dass z.B. "abc Äöü /)%§" als TextCode gespeichert werden konnte
** Bugfix: Im Shop (.httaccess) haben seit der Portierung auf PHP5 die Weichen für SSL- bzw. Nicht-SSL Seiten gefehlt.
** Bugfix: Lib-EPS Templates in Bezahlvorgang haben nicht funktioniert (es wurde auf Konstanten ohne $smarty.const. zugegriffen)
** Sofortüberweisung als verfügbare Zahlungsart hinzugefügt (DB-Eintrag hat gefehlt)
** Deutsche (Default-)Titel für Bezahlformen zu Payment-Language Tabelle hinzugefügt (siehe SQL)
** Deutsche (Default-)Bezeichnungen für WAWI-Einheiten hinzugefügt (siehe SQL)
** Neue Einstellung hinzugefügt, die es ermöglicht die Eingabe des Geburtsdatums (und dessen Validierung) verpflichtend vorzuschreiben.
** Bugfix: Leute, die am 29.2. Geburtstags haben, haben nur alle 4 Jahre einen Geburtstagsgutschein erhalten
** Sendungsvervolgungs-Link der österreichischen Post hat sich geändert (siehe SQL)
** Für Shop-Kunden ohne Benutzername bzw. ohne gültiger E-Mail Adresse wird der "Passwort zusenden" Button ausgeblendet.
** Fehlermeldungen für den Fall, dass ein Verkaufartikel im Frontend nicht angezeigt werden kann, werden nun auch auf der Preis-Detailseite des jeweiligen Verkaufsartikels angezeigt.
** Bugfix: Temp-File Verzeichnis in ApacheFop Klasse korrigiert
** Attribute können nun per BULK-Action von Verkaufsartikeln entfernt werden (auf Attribut-Detailseite)
** Filter-Möglichkeit zu Attributsübersicht (z.B. Detailseite von Größe) hinzugefügt
** Sortiermöglichkeit nach Artikelnummer in Verkaufsartikel-Übersicht (Liste) hinzugefügt
** Routing für CMS und Shop Seiten angepasst (/de/info/..) funktioniert wieder
** Paypal Bestellbestätigung leere Expense Einträge ausblenden
** Application XSL-Template Verzeichnis "Shop" auf "shop" umbenannt
** Menü-Callback für (Anzahl neben Menü-Titel) für unvollständige Bestellungen hinzugefügt
** Bugfix: in ShopUser Datenobjekt wurde noch auf die nicht mehr existierende Klasse Datenkraft_Core_Language zugegriffen (durch
** Bezahlmethode: "per Nachnahme" steht bei Bestellungen > 30kg nicht mehr zu Verfügung
** Name wird bei Kreditkartenbezahlung bzw. Bankeinzug autom. vorbefüllt (aus Kundendaten - damit man ihn nicht nochmals eintippen muss)
** Aufräumen bei gesplitteten Gutscheinen (alter Teil-Gutschein wird bei neuerlicher Teilung entfernt)
==SQL Updates==
* CORE
INSERT INTO `Queue` (`QueueType_Code`, `QueueState_Code`, `Queue_Priority`, `Queue_Title`, `Queue_Action`, `Queue_Order`, `Queue_Lock`, `Queue_Active`, `Queue_Date`) VALUES ('info', 'idle', 50, 'Log Fehler Benachrichtigung', 'Datenkraft_Service_Queue_Task_Logcheck', 7, 'false', 'true', '2010-10-28 13:16:04');
* SHOP
INSERT INTO `ShopWishListType` (`ShopWishListType_Code`, `ShopWishListType_Name`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('bookmark', 'Merkliste', NULL, '2010-10-18 16:53:19', NULL, '0000-00-00 00:00:00');
CREATE TABLE `ShopWishList_ShopArticle` (
`ShopWishList_ID` INT(11) NOT NULL,
`ShopArticle_ID` INT(10) UNSIGNED NOT NULL,
`Person_ID_Edit` INT(10) UNSIGNED NULL DEFAULT NULL,
`Table_Edit` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Person_ID_Create` INT(10) UNSIGNED NULL DEFAULT NULL,
`Table_Create` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`ShopWishList_ID`, `ShopArticle_ID`),
INDEX `IDX_ShopWishList_ShopArticle_1` (`ShopWishList_ID`),
INDEX `IDX_ShopWishList_ShopArticle_2` (`ShopArticle_ID`),
INDEX `IDX_Person_Person_ID_Edit` (`Person_ID_Edit`),
INDEX `IDX_Person_Person_ID_Create` (`Person_ID_Create`),
CONSTRAINT `ShopArticle_ShopWishList_ShopArticle_2` FOREIGN KEY (`ShopArticle_ID`) REFERENCES `ShopArticle` (`ShopArticle_ID`),
CONSTRAINT `ShopWishList_ShopArticle_ibfk_1` FOREIGN KEY (`Person_ID_Edit`) REFERENCES `Person` (`Person_ID`) ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT `ShopWishList_ShopArticle_ibfk_2` FOREIGN KEY (`Person_ID_Create`) REFERENCES `Person` (`Person_ID`) ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT `ShopWishList_ShopWishList_ShopArticle_1` FOREIGN KEY (`ShopWishList_ID`) REFERENCES `ShopWishList` (`ShopWishList_ID`)
)ENGINE=InnoDB ROW_FORMAT=DEFAULT;
ALTER TABLE ShopArticleAttributeType ADD ShopArticleAttributeType_Compare ENUM('true','false') DEFAULT 'false' AFTER ShopArticleAttributeType_Show;
INSERT IGNORE INTO `ShopVariantItem_Language` (`ShopVariantItem_ID`, `Language_Code`, `ShopVariantItem_Language_Name`, `ShopVariantItem_Language_Menu`) VALUES (1, 'de', 'Std. Einzelvariante', 'Std. Einzelvariante');
INSERT IGNORE INTO `ShopPaymentType` (`ShopPaymentType_Code`, `ShopPaymentType_Name`, `ShopPaymentType_Abo`, `Person_ID_Edit`, `Person_ID_Create`) VALUES ('sofortueberweisung', 'Sofortüberweisung', 'false', 1, 1);
INSERT IGNORE INTO `ShopPaymentType_Language` (`ShopPaymentType_Code`, `Language_Code`, `ShopPaymentType_Language_Title`) VALUES
('cashondelivery', 'de', 'Nachnahme'),
('credit', 'de', 'Kreditkarte'),
('debit', 'de', 'Bankeinzug'),
('eps', 'de', 'EPS Online Überweisung'),
('giropay', 'de', 'giropay'),
('invoice', 'de', 'Rechnung'),
('none', 'de', 'Nicht gewählt'),
('paypal', 'de', 'Paypal'),
('prepayed', 'de', 'Vorauskasse'),
('sofortueberweisung', 'de', 'Sofortüberweisung');
INSERT IGNORE INTO `ShopWAWIProductUnit_Language` (`ShopWAWIProductUnit_Code`, `Language_Code`, `ShopWAWIProductUnit_Language_Name`) VALUES
('g', 'de', 'g'),
('ml', 'de', 'ml'),
('Pkg', 'de', 'Pkg'),
('Stk', 'de', 'Stk');
UPDATE `ShopDeliveryService` SET `ShopDeliveryService_URL`='http://www.post.at/sendungsverfolgung.php?pnum1=' WHERE `ShopDeliveryService_Code`='P' LIMIT 1;
UPDATE `ShopDeliveryService` SET `ShopDeliveryService_URL`='http://www.post.at/sendungsverfolgung.php?pnum1=' WHERE `ShopDeliveryService_Code`='postat' LIMIT 1;
Datenkraft DISCO 3.0.6.1 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.6.1 Release (r3050).
Released on 19.10.2010.
==Features==
* SHOP
** Das Laden von Crossselling-Produkten auf der Produkt-Detailseite wurde beschleunigt.
==Changelog==
* CORE
** edit Pageview optimiert.
** Plupload update für Datenübernahme für alle Datensätze
** Plugin fillinform akzeptiert nun den Parameter source ("POST"||"GET"||"REQUEST") .. sollte er nicht gesetzt sein verwendet fillinform wie bisher nur POST
** Bugfix: getVisible() wurde in [[DISCO Suite 3.0.6]] durch getVisibleFieldName() ersetzt. (im Std. List Template wurde aber noch getVisible aufgerufen)
* SHOP
** Dynamisch erstellte Kategorien (ShopCategory_IsCopied = 'true') von Crossselling Ansicht ausgeschlossen
** Methode: "_assignBrands" vom Index-Controller in den Base-Controller verschoben (wird nämlich auch auf anderen Seiten benötigt)
Datenkraft DISCO 3.0.6 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.6 Release (r3024).
Released on 14.10.2010.
*** '''ACHTUNG /temp Verzeichnis hat sich in Data verschoben ... Schreibberechtigungen beachten.''' ***
==Features==
* SHOP
** Shop (SOAP) Service API hinzugefügt. Damit kann eine automatisierte Kommunikation mit dem Shop ermöglicht werden. (z.B. ein DK Shop kauft automatisch in einem anderem ein)
==Changelog==
* CORE
** Captcha Font in /data/etc/fonts/ gemoved.
** Datenkraft_Backend_Pageviewfield: Methoden überarbeitet
*** setDynamicParameter() durch setDynamicParameterFieldName() ersetzt
*** getDynamicParameter() durch getDynamicParameterFieldName() ersetzt
*** setVisible() durch setVisibleFieldName() ersetzt
*** getVisible() durch getVisibleFieldName() ersetzt
** getDocument_Issuu_Negated() Methode aus ArticleEntry_Document DatenObjekt entfernt (durch getDocument_HasIssuu() ersetzt).
** Bugfix: GoogleMap hat im Frontend nicht funktioniert!
** Bugfix: Typo bei GoogleMap Config korrigiert ("centron" -> "centeron")
** Bugfix: Backend Pageview setDefaultValue und setValue funktionierten nicht richtig
** Bugfix: Picture Model fehlende Config-Einstellung.
** version.php aus "public" Ordner entfernt.
*** am nun im "install" Ordner
*** bzw. über den SystemController: "/system/version" erreichbar (hier werden auch über die Konfiguration geänderte INI-Settings berücksichtigt)
** Bugfix: DocumentModel (Backend) - Fehler im Umgang mit UTF-8 behoben. Hochgeladene Datei "täst.doc" wurde als "t_st.doc" abgelegt, da die Ersetzung des Dateinamens nicht mit Multibyte-Zeichen umgehen konnte. (jetzt wird "täst.doc" auch in UTF-8 Projekten als "taest.doc" abgelegt)
** Bugfix: DISCO Login "Enter" funktioniert wieder.
** /temp Verzeichnis in /data gemoved. Neue Konstante für Pfad zum Tempverzeichnis "TEMP_PATH"
** languages Ordner in lib in DISCO Ordner verschoben. Schreibweise des Langauge Ordner in Application und Lib angepasst.
* CMS
** Standard Route geändert URL hat nun Language-Prefix
* SHOP
** Bugfix: Bestellpositionen, die nicht mehr bearbeitet werden hätten dürfen waren noch editierbar.
** Bugfix: Bei verpflichtendem Login (Shop-Frontend, z.B. B2B Shops) konnte die Kategorieübersichts- und Detailseite auch ohne Anmeldung direkt aufgerufen werden.
** Shop (SOAP) Service API hinzugefügt
** Disco_Shop_Models_Shop_Cart::raiseMessage_DeliveryCotsThreshold (''deprecated'') ersetzt durch Disco_Shop_Models_Shop_Cart::raiseMessage_DeliveryCostsThreshold
==SQL Updates==
* SHOP
ALTER TABLE `ShopCategory` ADD COLUMN `ShopCategory_CopyCrossselling` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `ShopCategory_AddFilter`;
Datenkraft DISCO 3.0.5 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.5 Release (r2971).
Released on 04.10.2010.
*** '''ACHTUNG im Public und Data Ordner haben sich ebenfalls Dateien geändert. Beim Update beachten.''' ***
==Features==
* CORE
** SOLR Autocomplete Funktion in IndexController hinzugefügt
** SOLR Autocomplete Dateien hinzugefügt in /puplic/javascript und /puplic/css
** SOLR Search.php für die Solr Suche, wenn eine solr.url in der aplication.ini eingegeben wird die Solr Suche ausgeführt.
** Beim Cache Löschen werden die kompilierten Smarty Templates mitgelöscht.
** Zend Captcha !
** Garbage Collector für Sessions aktiviert.
** zend_date Smarty Plugin im Input Format erweitert.
** Mosaic
** SMS Controller
** Zend Framework Update: 1.10.8
** Es gibt einen neuen Controller Action Helper, der es möglich macht herauszufinden ob die Seite mit einem Mobilen Endgerät aufgerufen wurde.
** DB_NestedSet wurde um '''copySubTree''' erweitert.
** Validate Wrapper wurde um regex Check erweitert.
** LIB um PHP Apache SOLR Klassen erweitert.
** CK Editor Tidy Check Klasse (''Config::$CK_EDITOR_TIDYCHECK'').
** Neue Smarty Function: '''img''' Erstellt Bilder dynamisch und Abhängig von Parameter. Siehe Funktionsdoku für genau Anwendung. Es wird jedenfalls empfohlen zukünftig nur noch Bilder über diese Methode einzubinden.
** Wenn Pulploader für Bildupload verwendet wird, steht gleichzeitig somit der erweiterte Bildcropper zu Verfügung mit dem auch Bildausschnitte frei wählen kann. Achtung funktioniert nur im Zusammenspiel mit dem neuen Smarty img Plugin.
** jQuery UI 1.8.4 mit neuen Skin!
** Buttons in der DISCO wurden verschönert.
* CMS
* SHOP
** Shop-Kategorien können dynamisch kopiert/synchronisiert werden.
*** nur Kategorien, denen auch wirklich Produkte zugewiesen sind werden kopiert
*** diese Produkte können zusätzlich per Zuordnung zu einem Filter eingeschränkt werden (z.B. nur Kategorien, deren zugeordnete Produkte auch dem Filter "Marken" zugeordnet sind)
*** bei Nutzung der Filter-Einschränkung ist es möglich als erste Kategorie-Ebene (unter der wohin kopiert werden soll) den Filter-Wert eintragen zu lassen (z.B. "Adidas", "Nike", ..)
** Länderauswahl-Feld bei Lieferanten hinzugefügt
** Etron Kassaschnittstelle
==Changelog==
* CORE
** Smarty Plugin: include_script erweitert um Parameter.
** Picturecropper (resizeAndCutImage) wahlweise mit Datenkraft_Imagick oder GDlib
** Bugfix in Pageview Tabs wenn Tabs an letzter Stelle.
** Bugfix im PictureModel beim Resizen mit Imagick
** Bugfix in Pageviewfield (Time)
** Dataobject delete_advanced Bugfix für Order
** Person_Edit wird nun richtig gesetzt.
** '''filterValue''' - Pageviewfield wurde auf Integerwerte angepasst sodass beim Eingegebenen Wert nur die Zahlt rausgefiltert werden. "NULL" ist weiterhin erlaubt.
** Bugfix bei Weiterleitung von Editieransicht auf Detailansicht.
** Wenn kein Email Absender gesetzt wurde, wird der in der Config eingetragene Absender eingetragen.
** Bugfix im PictureCropper urlencode warning entfernt.
** Wrapper: Bei ''field ambigious'' muss foreignFieldInOtherTable mit ''Table.'' übergeben werden. Im Wrapper wird der ''Table Prefix'' jetzt entfernt und die Zuweisung funktioniert.
** SMS Service: Tabelle Sms hinzugefügt. Für die Implementierung von Disco_Service_Sms_Storage mit Disco_Service_Sms_Storage_Db.
** Validate/Wrapper: float/real Validierung wandeln vor der Prüfung Buchstaben nicht mehr zu 0 um
** PictureModel: Konvertierung auf RGB Colorspace
** Textcode Konvertierung wurde in Datenkraft Locale ausgelagert. Verwendet externe "Übersetzungsfile" Datenkraft/languages/textcode.php mit der alle Sonderzeichen in ASCII Zeichen konvertiert werden.
** Mosaic: Service Klassen, Tempalte und Smarty Function für ein Mosaik hinzugefügt (http://film.bls.dat/de/services/locator)
** Shift+Click Backend: Wird bei einer Aktion ein Popup geöffnet, so kann mit Shift+Click ein eigenes Fenster für das Popup geöffnet werden
** Bugfix IE 7 blättern
** Bugfix: Validierung von Float und Real geändert damit es funktioniert
** DB_DataObject:update_advanced() jetzt mit WHERADD option
** DB_DataObject::debugLevel(1); zählt nun die Queries richtig.
** DB_DataObject::debugLevel(1); Jetzt mit Backtrace!
** Wenn manuell zum Menüpunkt der Parameter dynamicSubMenu hinzugefügt wird, wird das Menü in ausklappbarer Form dargestellt.
** Datenkraft Utils Excel wurde geändert sodass auch XLS erstellt werden können.
** Smarty ScriptBlock,ScripInclude wurde geändert und in Utils Klasse ausgelagert.
** Wrapper wurden um CacheTags erweitert.
** DB_Order wurde um Autorepair erweitert. Die Config Variable $DB_DATAOBJECT_ORDER_AUTOREPAIR steuert ob OrderAutorepair aktiviert sein soll oder nicht ... Wenn autoRepair nicht Global erwünscht ist kann es auch manuell über die Funktion '''setAutoRepair''' gesetzt werden. Das Reparieren wird beim Löschen und Verschieben ausgeführt.
** "data" Pfade angepasst - von APPLICATION_PATH "../../data/..." auf BASE_ROOT "/data/..." umgestellt um Application und Library Verzeichnis beliebig austauschbar zu machen. (unabhängig von relativem Pfad)
** Da es immer wieder fehlverhalten am Solr gab mit dem „“ Tag, wird jetzt die Smarty Variable {noindex} verwendet.
* CMS
** Picture Model um Copyright erweitert
* SHOP
** Dynamisch generierte Shop-Kategorien (Änderung in Pageviews + neuer Task)
** B2B Login only, System und Ajax Kontroller ausnehmen
** Konstante für max. Tiefe für Unterkategorien wo sich Artikel befinden
** Gutscheinvalidierung richtig stellen
** Error 404 Template hinzugefügt
** Bugfix Autocropper/Pictureconfigurator
** Bugfix: Anzahl im Menü, "Bestellungen" - "Vorauskasse" u. "zu versenden" waren vertauscht!
** EasyLager: Header/Location/Exit Statements durch Zend Redirector ersetzt.
** Bugfix: Lieferantenbestellung Produkt hinzufügen
** Bugfix: Beim "Löschen" eines ShopUsers wird dieser nun auch vom Newsletter entfernt.
** Bugfix: Mindestbestellwert wurde nicht richtig geprüft - Bestellungen unter Mindestbestellwert waren möglich!
** Bugfix: Artikel/Kategorie eingeschränkte wiederverwendbare Gutscheine Funktionen beim autom. Neuanlegen richtig mitkopieren.
** DataObject - Slow Query Log - ist ab jetzt per default deaktiviert
** Foreign-Key-Constraint hinzugefügt (ShopUser.Country_Code_Invoice -> Country.Country_Code)
** Bugfix: DataObject Generator - Reihenfolge der Foreign-Key-Fields in Links-Ini-File korrigiert (entsprechend der tatsächlichen Feld-Reihenfolge in der Tabelle) Dies ist wichtig für Tabellen mit mehreren Foreign-Key-Fields in derselben Tabelle (z.B. ShopUser -> Country) da ansonsten bei "$do->joinAdd(new DB_Country());" ev. das falsche Feld verwendet wird. Per default wird in diesem Fall das erste Feld für den JOIN verwendet. (Vor dieser Korrektur entsprach die Reihenfolge der Foreign-Key-Felder im Links-Ini-File nicht der tatsächlichen Feld-Reihenfolge in der Tabelle)
** ShopCustomer.Country_Code_Invoice Feld-Größe von 40 auf 2 Zeichen geändert und Foreign-Key-Constraint hinzugefügt
==SQL Updates==
* CORE
* CMS
ALTER TABLE `Picture_Language` ADD COLUMN `Picture_Language_Copyright` VARCHAR(255) NULL AFTER `Picture_Language_Link`;
* SHOP
ALTER TABLE ShopCategory ADD ShopArticleAttributeType_ID INTEGER UNSIGNED AFTER ShopEprocurement_ID;
ALTER TABLE ShopCategory ADD ShopCategory_ID_CopyFrom INTEGER(11) AFTER ShopArticleAttributeType_ID;
ALTER TABLE ShopCategory ADD ShopArticleAttributeItem_ID INTEGER AFTER ShopCategory_ID_CopyFrom;
ALTER TABLE ShopCategory ADD ShopCategory_IsDynamic ENUM('true','false') DEFAULT 'false' AFTER ShopCategory_Priority;
ALTER TABLE ShopCategory ADD ShopCategory_IsCopied ENUM('true','false') DEFAULT 'false' AFTER ShopCategory_IsDynamic;
ALTER TABLE ShopCategory ADD ShopCategory_AddFilter ENUM('true','false') DEFAULT 'false' AFTER ShopCategory_IsCopied;
CREATE INDEX IDX_ShopCategory_13 ON ShopCategory (ShopArticleAttributeType_ID);
CREATE INDEX IDX_ShopCategory_14 ON ShopCategory (ShopCategory_ID_CopyFrom);
CREATE INDEX IDX_ShopCategory_15 ON ShopCategory (ShopArticleAttributeItem_ID);
ALTER TABLE ShopCategory ADD CONSTRAINT ShopArticleAttributeType_ShopCategory_4
FOREIGN KEY (ShopArticleAttributeType_ID) REFERENCES ShopArticleAttributeType (ShopArticleAttributeType_ID);
ALTER TABLE ShopCategory ADD CONSTRAINT ShopCategory_ShopCategory_5
FOREIGN KEY (ShopCategory_ID_CopyFrom) REFERENCES ShopCategory (ShopCategory_ID);
ALTER TABLE ShopCategory ADD CONSTRAINT ShopArticleAttributeItem_ShopCategory_6
FOREIGN KEY (ShopArticleAttributeItem_ID) REFERENCES ShopArticleAttributeItem (ShopArticleAttributeItem_ID);
INSERT INTO `Queue` (`QueueType_Code`, `QueueState_Code`, `Queue_Priority`, `Queue_Title`, `Queue_Action`, `Queue_Order`, `Queue_Lock`, `Queue_Active`, `Queue_Date`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('task', 'idle', 20, 'ShopCategory Synchronization', 'Shop_Queue_ShopCategorySynchronization', 13, 'false', 'false', '2010-05-17 08:43:07', 1, '2010-07-26 11:59:31', 1, '2010-07-26 11:59:31');
ALTER TABLE ShopWAWISupplier ADD Country_Code CHAR(2) AFTER Language_Code;
CREATE INDEX IDX_ShopWAWISupplier_4 ON ShopWAWISupplier (Country_Code);
ALTER TABLE ShopWAWISupplier ADD CONSTRAINT Country_ShopWAWISupplier_3
FOREIGN KEY (Country_Code) REFERENCES Country (Country_Code);
CREATE INDEX IDX_ShopUser_14 ON ShopUser (Country_Code_Invoice);
ALTER TABLE ShopUser ADD CONSTRAINT Country_ShopUser_12
FOREIGN KEY (Country_Code_Invoice) REFERENCES Country (Country_Code);
ALTER TABLE `ShopCustomer` CHANGE COLUMN `Country_Code_Invoice` `Country_Code_Invoice` CHAR(2) NULL DEFAULT NULL AFTER `Language_Code`;
CREATE INDEX IDX_ShopCustomer_5 ON ShopCustomer (Country_Code_Invoice);
ALTER TABLE ShopCustomer ADD CONSTRAINT Country_ShopCustomer_5
FOREIGN KEY (Country_Code_Invoice) REFERENCES Country (Country_Code);
Datenkraft DISCO 3.0.4.2 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.4.2 Release (r2915).
Released on 26.07.2010.
==Changelog==
* CORE
** Bugfix: Newsletter Import & Export fix.
*****************************************************************
Datenkraft DISCO 3.0.4.1 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.4.1 Release (r2910).
Released on 23.07.2010.
==Features==
* CORE
** Datenobjekt - 2 neue Funktionen: '''getTableEditInformation''' & '''getTableCreateInformation''' gib bei einem Datenobjekt die Table_Edit bzw. Table_Create Information inkl. Personenname aus. Kann auch als Pageviewfeld verwendet werden (primäres Einsatzgebiet). Einstellung für String sind in der neuen Config-Klasse zu machen. ''$DATAOBJECT_TABLE_EDIT_INFORMATION_DATEFORMAT'' & ''$DATAOBJECT_TABLE_EDIT_INFORMATION_STRING'' bzw. ''$DATAOBJECT_TABLE_CREATE_INFORMATION_DATEFORMAT'' & ''$DATAOBJECT_TABLE_CREATE_INFORMATION_STRING''
==Changelog==
* CORE
** CKEDITOR Update auf Version 3.3.1 und "Formatierung entfernen" Button hinzugefügt
** Bugfix im Datenkraft Dialog
** Bugfix im Backend Menu
** Newsletter Bugfix - Clickjournal
** Wenn '''setDynamicParameter''' null returned ... wird in der Listenansicht keine Parameter verwendet.
* SHOP
** Myshop_Install.sql erweitert um Partnersystem Menüpunkte.
*****************************************************************
Datenkraft DISCO 3.0.4 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.4 Release (r2903).
Released on 21.07.2010.
==Features==
* CORE
** Datenkraft_Nestedset_Dataobject: Neue Funktion: '''getAllChildrens''' - Gibt alle Children eines Baums zurück
** Datenkraft_Nestedset_Dataobject: Neue Funktion: '''getAllParents''' - Gibt alle Parents eines Knoten zurück
** Anzahl der Listeneinträge sind nun im Tab sichtbar.
** Wenn die Bearbeitungsansicht geöffnet wird, liegt der Focus auf dem ersten Inputelement.
** Neuer Smarty modifier '''zend_date''': Arbeitet mit Zend_Date Format (http://framework.zend.com/manual/en/zend.date.constants.html) - Vorteil: Datum ist in jeweilig eingestellter Sprache sichtbar.
** Ab jetzt ist ein InstallCheck verfügbar ... unter /install/index.php erreichbar ... die oberen Tests sind Voraussetzung für die DISCO unteren sind zur Information ...
** Datenkraft_Validate_Wrapper: Funktion '''uri''' geändert sodass auch lokale Domains erlaubt sind.
** Picture Model: Autocrop funktioniert nun richtig. Bilder werden auf Proportionen zugeschnitten und evtl. vergrößert. Ist standardmäßig aktiv.
** Datenkraft_Mail: Updates beim Body setzten, hinzufügen von Check Debug Array, neue Funktion '''appendAttachment''' (bevorzugt Funktion um leicht Attachments hinzuzufügen).
** Sprache wird automatisch anhand vom Browser-Useragent gesetzt
** Smarty: Neue Funktion '''prependBasePath''' - Setzt den Basepath bei der View neu an erster Stelle.
** Einführung einer Config Klasse (zugriff mit Config::) in der zukünftig alle Einstellungen vorgenommen werden.
* CMS
* SHOP
** 3-D Secure Bezahlung für Visa (Verified-By-Visa) und MasterCard (Secure Code) mittels MPAY24
==Changelog==
* CORE
** Datenobjekt Classgenerator - Erstellen der Datenobjekte wurde geändert, der Konstruktor der SRC Datenobjekte wurde komplett entfernt da er überflüssig ist.
** JS Info Fenster zeigt nun auch getrennt das Module,Controller und View an.
** PageviewField Hidden: Label geändert (Info steht rechts vom Label antstatt unterhalb wenn ShowAsText)
** Datenkraft_Mail: Array wenn an Check geschickt wird geändert, im Subject wird serialisiert der Email Header angehängt wenn an Check geschickt.
** Smarty: Plugin Directory Bugfix ... Plugins werden zuerst im Application geladen.
** Bugfix Pageviewtabs. Wenn auf einer Seite nur Tabs waren, wurde diese nicht richtig dargestellt.
** Pageviewfield: Checkboxtree - Bugfix wenn mehrere Trees in einem Pageview dargestellt wurden.
** Pageviewfield: ajaxAdvanced- Bugfix wenn mehrere Felder in einem Pageview dargestellt wurden.
** Fehlerseite wurde angepasst und verschönert (Debug info wird nur im Debug Mode gezeigt (Entwicklungsserver))
** Datenobjekt - Fehler bei Datumsvalidierung behoben ('null' war nicht zulässig)
** jQuery wird nicht mehr von Google CDN geladen um eventuell auftretende Probleme mit SSL zu vermeiden.
** DISCO Login - Focus liegt nun auf den Benutzername Feld.
** Weiterleitung von Editier auf Detailansicht ist nun möglich.
** Backend Menu wird nun nicht mehr in der Session gecached sondern im Zend_Cache ... Cache mit aktiviert sein damit Backend Breadcrumb funktioniert.
** Die globale Suche in der DISCO wird ausgeblendet wenn diese nicht initialisiert bzw. überschrieben wurde.
* CMS
** ArticleEntry Pageview: Bei Show From & Show To war Name und Datentyp falsch gesetzt. Wurde behoben sodass ab jetzt gespeichert wird.
** Link Pageview: Wurde um Target erweitert.
** Dokumenten Upload: Typ um docx & xlsx erweitert.
** DateTime Model auf Zend_Date umgestellt.
** Newsletter LTM & Logicanpassungen.
** Picture Model: Picture ID wird nun beim Löschen eines Datensatzes mitgelöscht.
** Hinzufügen Sprachbutton setzt nun Sprache wieder richtig.
* SHOP
** Crossselling - Pageview - Sortierung nach Bezeichnung hat nicht richtig funktioniert.
** Treuebonus Fehler behoben
** Mehrere Verkaufsartikel auf einmal in den Warenkorb legen, Fehler behoben
** Backend Attribute & Filter Übersicht wesentlich beschleunigt (von ca. 60 auf 0.172 sec)
** Backend Varianten Übersicht wesentlich beschleunigt (von 32 auf 0.015 sec)
** Frontend Bugfix. Bei Auswahl eines Filters wo es Produkte in mehreren Kategorien gibt, wurde immer nur eine Kategorie angezeigt.
** Quenta Zahlungsschnittstelle Integragtion.
==SQL Updates==
LTM Updates sind zu finden im Docs/install Ordner ... ltm_update_304.sql
* CORE
Issuu Integration
CREATE TABLE Issuu (
Document_ID INTEGER(10) UNSIGNED NOT NULL,
Issuu_ID VARCHAR(255),
Issuu_Tries INTEGER(10) NOT NULL DEFAULT 0,
Issuu_ErrorCode INTEGER(10),
Issuu_Active ENUM('true', 'false') NOT NULL DEFAULT 'false',
CONSTRAINT PK_Issuu PRIMARY KEY (Document_ID)
)
TYPE=InnoDB;
ALTER TABLE Issuu ADD CONSTRAINT Document_Issuu
FOREIGN KEY (Document_ID) REFERENCES Document (Document_ID) ON DELETE CASCADE;
INSERT INTO `Queue` (`QueueType_Code`, `QueueState_Code`, `Queue_Priority`, `Queue_Title`, `Queue_Action`, `Queue_Order`, `Queue_Lock`, `Queue_Active`, `Queue_Date`, `Person_ID_Edit`, `Table_Edit`, `Person_ID_Create`, `Table_Create`) VALUES ('task', 'idle', 150, 'Issuu Synchronization', 'Cms_Queue_Issuu', 4, 'false', 'false', '2010-07-06 09:01:01', 2, '2010-07-06 09:00:31', 2, '2010-07-05 12:33:40');
* CMS
* SHOP
ALTER TABLE ShopCustomer ADD ShopCustomer_CreditCard3DSecure ENUM('true','false') DEFAULT 'false' AFTER `ShopCustomer_CreditCardOwner`;
*****************************************************************
Datenkraft DISCO 3.0.3 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.3 Release (r2858).
Released on 21.06.2010.
==Features==
* CORE
** '''jQuery UI 1.8.2'''
** Pageview: '''Tabs'''! (addPageview Parameter $tabGroup oder setTabGroup)
** Pageview: Neue Funktion '''setDynamicParameter''' - Erwartet einen DB-Getter der ein Datenkraft_Backend_Parameter Objekt zurückliefert. Der Getter bekommt als Parameter (Abrufbar mit func_get_arg(0)) das vorhandene Datenkraft_Backend_Parameter Objekt um es ggf. zu verändern. Diese Funktion ist ziemlich speziell aber sehr nützlich wenn es darum geht zB. bei einem bestimmten Listeneintrag die Detailansicht zu verändern.
** Pageview: Wenn in der Detailansicht beim Feld der Datentyp ENUM oder BOOLEAN ist oder von Hand mit setDataType gesetzt wird. Wird der String Wert "true" bzw. "false" mit einer Grafik ausgetauscht um den Pageview etwas ansehnlicher zu machen.
** Pageview: '''setEditTypeDependentSelect''' - Neuer Feldtyp - eine Selectliste deren Werte sich abhängig einer anderen Selectliste ändern.
** Pageview: '''setEditTypeCheckboxTree''' - Neuer Feldtyp - Ein ausklappbarer Menübaum inkl. Checkboxen.
** MetaAdmin Einstellung: Das Javascript Infofenster kann nun separat aktiviert werden und ist nicht mehr mit Warnungen anzeigen verknüpft.
==Changelog==
* CORE
** Fixed & Cleaned Dataobject getByName wenn mit zweiten Parameter aufgerufen wurde. (eval entfernt)
** Wegen Einführung der Tab Funktionalität, sind nun alle Pageviewheader ein großer, blauer Überschriftbalken.
** Deprecated function call_user_method_array durch call_user_func_array in LIB ersetzt.
** Smarty load_filter Funktionalität hinzugefügt.
*****************************************************************
Datenkraft DISCO 3.0.2 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.2 Release (r2851).
Released on 14.06.2010.
==Features==
* neue Icons Suite
* Im CMS Application wurde alle require_once vernichtet
* Imagick (Pecl) 2.3
* SHOP
** Navigation (vor, zurück) in der Artikeldetailansicht
** Artikeldetailansicht Crossselling per Konstante definiert
** Kategorieübersicht: Konstante für Abfrage ob die Marke ausgegeben wird oder nicht.
** Detailansicht: Konstante ob "nächster & vorheriger" Artikel angezeigt werden soll.
** Detailansicht: Konstante für Crossselling
** B2B Shop, nur für eingeloggte Benutzer.
** Kundengruppen mit Artikeln erstellen, die nur die Benutzer der Gruppe sehen können.
** UVP beim WAWI-Produkt
** Detailansicht: Konstante für das Bild der Marke
** Kategorieübersicht: Konstante für Anzahl der Varianten beim Verkaufsartikel
** Detailansicht: ShopArticle ID als Rückgabewert
** Detailansicht: Crossselling in eigene Funktion ausgelagert
** Kategorieübersicht: ShopCategory ID als Rückgabewert
** Kategorieübersicht: Mehrere Verkaufsartikel auf einmal in den Warenkorb legen
** Detailansicht: Mehrere Varianten auf einmal in den Warenkorb legen
* CORE
** In einem List Pageview kann nun die Funktion setVisible bei einem Feld gesetzt werden um Felder spezifisch in einer Liste auszublenden
==Changelog==
* Core
** Datenobjekt Einstellungen wurden vom Initialize Plugin in Bootstrap verschoben um eigene Datenobjekt Einstellungen möglich zu machen.
** Beim löschen eines Datensatzes, liegt der Focus beim Bestätigen Dialog auf dem "JA" Button.
** Logout wird nur der jeweilige Namespace gelöscht, nicht die gesamte Session.
** Google Maps API Key wird auch bei externem Zugriff richtig gewählt.
** setChapter bzw. setGroup funktioniert nun im Pageview richtig und wird nicht mehr von addField überschrieben.
** Datenobjekt _convertToSQLValues wurde auf Zend_Date umgebaut.
** Datenobjekt ORDER Update: Wenn delete_advaced für das Löschen verwendet wird, wird die Order der übrig gebliebenen Felder aktualisiert sodass keine Löcher entstehen.
** Datenkraft_View um Smarty loadFilter erweitert.
* CMS
** CMS Articleübersicht - Hinzufügen Button - DropDown für mehrere Sprachen wird nur angezeigt es mehr als eine Sprache aktiviert ist.
** SprachIcons in Spracheneditieransicht sind nun alphabetisch geordnet.
** Kleinen Queryfix in ArticleentrymenuModel um das CMS Submenu auszulesen.
** CSS fix bei Bild Cropper und speichern Button.
** Bugfix - Pageview wurde bei Ort & Link Verwaltung nicht richtig zurück gegeben.
** Standardroute erweitet sodass kein Fehler beim mehrfachen / in der URL kommt.
* SHOP
** Artikelvariante anlegen - Auto. gen. Arikelnummer richtig übernehmen
** BMD Überschreibung entfernt
==Updates==
*CMS
Neue Icons fürs Menü
UPDATE `Menu` SET `Menu_Icon`='gear.png' WHERE `Menu_ID`=1;
UPDATE `Menu` SET `Menu_Icon`='mailbox_full.png' WHERE `Menu_ID`=20;
UPDATE `Menu` SET `Menu_Icon`='folder3_movie.png' WHERE `Menu_ID`=29;
UPDATE `Menu` SET `Menu_Icon`='address_book_edit.png' WHERE `Menu_ID`=17;
*Shop
Neue Icons fürs Menü
UPDATE `Menu` SET `Menu_Icon`='gear.png' WHERE `Menu_ID`=1;
UPDATE `Menu` SET `Menu_Icon`='shopping_cart.png' WHERE `Menu_ID`=67;
UPDATE `Menu` SET `Menu_Icon`='chart_column.png' WHERE `Menu_ID`=103;
UPDATE `Menu` SET `Menu_Icon`='shopping_bag.png' WHERE `Menu_ID`=45;
UPDATE `Menu` SET `Menu_Icon`='mailbox_full.png' WHERE `Menu_ID`=20;
UPDATE `Menu` SET `Menu_Icon`='folder3_movie.png' WHERE `Menu_ID`=29;
UPDATE `Menu` SET `Menu_Icon`='address_book_edit.png' WHERE `Menu_ID`=17;
UPDATE `Menu` SET `Menu_Icon`='shelf.png' WHERE `Menu_ID`=121;
UPDATE `Menu` SET `Menu_Icon`='book_blue_open.png' WHERE `Menu_ID`=39;
*****************************************************************
Datenkraft DISCO 3.0.1 Release!
RELEASE INFORMATION
---------------
Datenkraft DISCO 3.0.1 Release (r2819).
Released on 20.05.2010.
NEW FEATURES
------------
BUGFIXES
------------