Files
PHPShop/moneta/updates/1.2/update_module.sql
T

76 lines
4.9 KiB
SQL

-- Ìèãðàöèÿ ñî âñòðîåííîãî ìîäóëÿ «Ìîíåòà» PHPShop 6.7.0 (â òàáëèöå íàñòðîåê âåðñèÿ 1.2).
-- ßäðî çàïóñêàåò ôàéë êíîïêîé «Îáíîâèòü ìîäóëü» (PHPShopModules::getUpdate()): ðåæåò òåêñò
-- ïî òî÷êå ñ çàïÿòîé è âûïîëíÿåò çàïðîñû ñ ïîäàâëåíèåì îøèáîê, ïîòîì ïèøåò âåðñèþ èç module.xml.
-- Ïîýòîìó òî÷êè ñ çàïÿòîé — òîëüêî â êîíöå çàïðîñîâ, à ïîâòîðíûé çàïóñê íè÷åãî íå ïîðòèò:
-- ALTER íà ñóùåñòâóþùóþ êîëîíêó ìîë÷à ïàäàåò, UPDATE òðîãàþò òîëüêî íåçàïîëíåííûå ïîëÿ.
-- Ñòàðûå êîëîíêè (merchant_id, merchant_sig, title, serial) íå óäàëÿþòñÿ, merchant_sig î÷èùàåòñÿ ïîñëå ïåðåíîñà êîäà.
ALTER TABLE `phpshop_modules_moneta_system`
ADD COLUMN `account_id` varchar(20) NOT NULL default '' AFTER `id`,
ADD COLUMN `integrity_code` varchar(255) NOT NULL default '' AFTER `account_id`,
ADD COLUMN `payment_server` varchar(8) NOT NULL default 'PROD' AFTER `integrity_code`,
ADD COLUMN `test_mode` enum('0','1') NOT NULL default '0' AFTER `payment_server`,
ADD COLUMN `fiscalization` enum('0','1') NOT NULL default '0' AFTER `test_mode`,
ADD COLUMN `receipt_email` varchar(64) NOT NULL default '' AFTER `fiscalization`,
ADD COLUMN `sno` varchar(1) NOT NULL default '' AFTER `receipt_email`,
ADD COLUMN `payment_method` varchar(32) NOT NULL default 'full_payment' AFTER `sno`,
ADD COLUMN `payment_object` varchar(32) NOT NULL default 'commodity' AFTER `payment_method`,
ADD COLUMN `goods_vat` varchar(16) NOT NULL default 'platform' AFTER `payment_object`,
ADD COLUMN `delivery_vat` varchar(16) NOT NULL default 'platform' AFTER `goods_vat`,
ADD COLUMN `paid_status` int(11) NOT NULL default '101' AFTER `status`;
-- Íîìåð ñ÷¸òà: âñòðîåííûé ìîäóëü õðàíèë åãî â merchant_id áåç ïðîâåðêè, ïåðåíîñèì òîëüêî öèôðû.
UPDATE `phpshop_modules_moneta_system` SET `account_id` = TRIM(`merchant_id`)
WHERE `account_id` = '' AND TRIM(`merchant_id`) REGEXP '^[0-9]{1,20}$';
-- «Ñåêðåòíîå ñëîâî» âñòðîåííîãî ìîäóëÿ ïîäïèñûâàëî ôîðìó îïëàòû — ýòî êîä ïðîâåðêè öåëîñòíîñòè.
UPDATE `phpshop_modules_moneta_system` SET `integrity_code` = TRIM(`merchant_sig`)
WHERE `integrity_code` = '' AND TRIM(`merchant_sig`) <> '';
-- Ñåêðåò íå äîëæåí îñòàâàòüñÿ âòîðûì ýêçåìïëÿðîì â ñòàðîé êîëîíêå: ïîñëå ñìåíû êîäà â íàñòðîéêàõ
-- ïðåæíèé ëåæàë áû òàì äàëüøå. Î÷èùàåì, òîëüêî êîãäà êîä óæå ïåðåíåñ¸í.
UPDATE `phpshop_modules_moneta_system` SET `merchant_sig` = ''
WHERE `integrity_code` <> '' AND `merchant_sig` <> '';
-- «Îïëàòà ïðè ñòàòóñå»: ó âñòðîåííîãî ìîäóëÿ êîëîíêà äîïóñêàëà NULL, ó íàñ 0 — «Íîâûé çàêàç».
UPDATE `phpshop_modules_moneta_system` SET `status` = 0 WHERE `status` IS NULL;
ALTER TABLE `phpshop_modules_moneta_system` MODIFY `status` int(11) NOT NULL default '0';
-- Æóðíàë îïåðàöèé: ñòðîêà íà êàæäîå ïîäïèñàííîå óâåäîìëåíèå Check/Pay URL. Ó çà÷ò¸ííîé
-- îïëàòû çàïîëíåí paid_order_id — UNIQUE íå äà¸ò çà÷åñòü çàêàç äâàæäû (MyISAM, òðàíçàêöèé íåò).
CREATE TABLE IF NOT EXISTS `phpshop_modules_moneta_operations` (
`id` int(11) NOT NULL auto_increment,
`created_at` int(11) NOT NULL default '0',
`command` varchar(8) NOT NULL default '',
`transaction_id` varchar(255) NOT NULL default '',
`operation_id` varchar(255) NOT NULL default '',
`order_id` int(11) NOT NULL default '0',
`order_uid` varchar(64) NOT NULL default '',
`amount` varchar(20) NOT NULL default '',
`test_mode` enum('0','1') NOT NULL default '0',
`result_code` int(11) default NULL,
`event` varchar(32) NOT NULL default '',
`paid_order_id` int(11) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `paid_order_id` (`paid_order_id`),
KEY `order_id` (`order_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
-- Ñ÷¸ò÷èê æóðíàëà îòêàçîâ êîëáýêà äî ïðîâåðêè ïîäïèñè: íå ÷àùå ñòðîêè â ìèíóòó, îäíà ñòðîêà.
-- Îòäåëüíî îò íàñòðîåê — çàïèñü â MyISAM áëîêèðóåò òàáëèöó, à íàñòðîéêè ÷èòàåò êàæäûé êîëáýê.
CREATE TABLE IF NOT EXISTS `phpshop_modules_moneta_log_throttle` (
`id` int(11) NOT NULL default '1',
`logged_at` int(11) NOT NULL default '0',
`skipped` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT IGNORE INTO `phpshop_modules_moneta_log_throttle` (`id`, `logged_at`, `skipped`) VALUES (1, 0, 0);
-- Ñïîñîá îïëàòû 10048: íàçâàíèå è èêîíêó âñòðîåííîãî ìîäóëÿ ìåíÿåì íà íîâûå, òîëüêî åñëè ìåð÷àíò
-- èõ íå ïðàâèë. Êèðèëëèöà — ñ ïðåôèêñîì _cp1251: ôàéë â cp1251, à «Îáíîâèòü ìîäóëü» âûïîëíÿåò
-- åãî áåç ïåðåêîäèðîâêè (â îòëè÷èå îò install/module.sql ïðè «Âêëþ÷èòü»), è íà ìàãàçèíå ñ áàçîé
-- utf-8 ëèòåðàë áåç ïðåôèêñà ÷èòàëñÿ áû â êîäèðîâêå ñîåäèíåíèÿ è íå ñîâïàë áû ñ íàçâàíèåì.
UPDATE `phpshop_payment_systems` SET `name` = _cp1251'Ïðè¸ì ïëàòåæåé áàíêîâñêèìè êàðòàìè, ÷åðåç ÑÁÏ è Pay-ñåðâèñû (Ìîíåòà)'
WHERE `id` = 10048 AND `name` = _cp1251'Ìèð, Visa, Mastercard (Ìîíåòà)';
UPDATE `phpshop_payment_systems` SET `icon` = 'phpshop/modules/moneta/templates/moneta.svg'
WHERE `id` = 10048 AND `icon` = '/UserFiles/Image/Payments/moneta.png';