CREATE TABLE IF NOT EXISTS `npay_service_object_$mid`
( 
	`csid` int(11) NOT NULL,
	`oid` int(11) NOT NULL,
	`col` int(11) NOT NULL,
	KEY csid (csid) 
);

ALTER TABLE `npay_service_object_$mid` ADD `col` INT DEFAULT 1 NOT NULL;
ALTER TABLE `npay_service_object_$mid` ADD id INT NOT NULL DEFAULT 0 FIRST;
UPDATE npay_service_object_$mid SET id=csid WHERE id=0;
ALTER TABLE `npay_service_object_$mid` CHANGE id id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE `npay_service_object_$mid` ADD COLUMN cid INTEGER  NOT NULL AFTER id;
ALTER TABLE `npay_service_object_$mid` ADD INDEX cid(cid);
ALTER TABLE `npay_service_object_$mid` ADD INDEX oid(oid);
ALTER TABLE `npay_service_object_$mid` ADD sid INT NOT NULL AFTER cid;
ALTER TABLE `npay_service_object_$mid` ADD date1 DATE;
ALTER TABLE `npay_service_object_$mid` ADD date2 DATE;
ALTER TABLE `npay_service_object_$mid` ADD emid INT NOT NULL;
ALTER TABLE `npay_service_object_$mid` ADD eid INT NOT NULL;
ALTER TABLE `npay_service_object_$mid` ADD comment VARCHAR(250) NOT NULL;

CREATE TABLE IF NOT EXISTS `npay_service_status_matrix` (
  `module_id` int(11) NOT NULL,
  `service_id` int(11) NOT NULL,
  `status_id` int(11) NOT NULL,
  `value` int(1) DEFAULT NULL,
  PRIMARY KEY (`module_id`,`service_id`,`status_id`)
);
ALTER TABLE `npay_service_status_matrix` MODIFY `value` int(1) NULL DEFAULT NULL;

UPDATE `module_config` SET `config`=replace(`config`, 'bitel.billing.server.npay.bean.PhoneSubModuleQuantity', 'ru.bitel.bgbilling.modules.npay.server.bean.quantity.PhoneSubModuleQuantity' ) WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=replace(`config`, 'bitel.billing.server.npay.bean.PhoneModuleQuantity', 'ru.bitel.bgbilling.modules.npay.server.bean.quantity.PhoneModuleQuantity' ) WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=replace(`config`, 'bitel.billing.server.npay.bean.CallModuleQuantity', 'ru.bitel.bgbilling.modules.npay.server.bean.quantity.CallModuleQuantity' ) WHERE `mid`=$mid;

-- удаление не привязанных к договорам абонплат
DELETE service_object FROM npay_service_object_$mid AS service_object LEFT JOIN contract ON service_object.cid=contract.id WHERE contract.id IS NULL;

-- переименование задачи
UPDATE scheduled_class SET class='ru.bitel.bgbilling.modules.npay.server.task.Calculator' WHERE class='bitel.billing.server.npay.Calculator';
UPDATE scheduled_tasks SET class='ru.bitel.bgbilling.modules.npay.server.task.Calculator' WHERE class='ru.bitel.bgbilling.modules.npay.server.Calculator';

UPDATE `event_script_link` SET `event_key`=REPLACE(`event_key`, 'ru.bitel.bgbilling.modules.npay.server.bean.event.DebetStatusManageOpenGetAdditionalCharge', 'ru.bitel.bgbilling.modules.npay.server.event.DebetStatusManageOpenGetAdditionalCharge');
UPDATE `event_script_link` SET `event_key`=REPLACE(`event_key`, 'ru.bitel.bgbilling.modules.npay.server.bean.event.ContractNpayChangedEvent', 'ru.bitel.bgbilling.modules.npay.server.event.ContractNpayChangedEvent');
UPDATE `event_script_link` SET `event_key`=REPLACE(`event_key`, 'ru.bitel.bgbilling.modules.npay.server.bean.event.DebetStatusManageAfterOpen', 'ru.bitel.bgbilling.modules.npay.server.event.DebetStatusManageAfterOpen');
-- #BLOCK#


UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.VoipModuleAccount', 'ru.bitel.bgbilling.modules.npay.server.bean.account.VoipModuleAccount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.VoipModuleAmount', 'ru.bitel.bgbilling.modules.npay.server.bean.amount.VoipModuleAmount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.PhoneModuleAccount', 'ru.bitel.bgbilling.modules.npay.server.bean.account.PhoneModuleAccount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.PhoneModuleAmount', 'ru.bitel.bgbilling.modules.npay.server.bean.amount.PhoneModuleAmount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.IPNModuleAmount', 'ru.bitel.bgbilling.modules.npay.server.bean.amount.IPNModuleAmount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.DialUpModuleAmount', 'ru.bitel.bgbilling.modules.npay.server.bean.account.DialUpModuleAccount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.DialUpModuleAccount', 'ru.bitel.bgbilling.modules.npay.server.bean.amount.DialUpModuleAmount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.KernelAccount', 'ru.bitel.bgbilling.modules.npay.server.bean.account.KernelAccount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.VoiceModuleAccount', 'ru.bitel.bgbilling.modules.npay.server.bean.account.VoiceModuleAccount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'bitel.billing.server.npay.bean.VoiceModuleAmount', 'ru.bitel.bgbilling.modules.npay.server.bean.account.VoiceModuleAmount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'ru.bitel.bgbilling.modules.inet.npay.InetModuleAmount', 'ru.bitel.bgbilling.modules.npay.server.bean.amount.InetModuleAmount') WHERE `mid`=$mid;
UPDATE `module_config` SET `config`=REPLACE(`config`, 'ru.bitel.bgbilling.modules.inet.npay.InetModuleAccount', 'ru.bitel.bgbilling.modules.npay.server.bean.account.InetModuleAccount') WHERE `mid`=$mid;

ALTER TABLE `npay_service_object_$mid` ADD COLUMN `cost` decimal(20,2) NULL AFTER `csid`;
ALTER TABLE `npay_service_object_$mid` ADD COLUMN `user_id` int(11) NOT NULL DEFAULT 0 AFTER `comment`;
ALTER TABLE `npay_service_object_$mid` ADD COLUMN `last_update` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() AFTER `user_id`;
ALTER TABLE `npay_service_object_$mid` MODIFY `col` decimal(20,5) DEFAULT 0 NOT NULL;

DELETE FROM script_event_type WHERE mid=$mid;

SET @mid=$mid, @old_event_id=1, @new_event_id='ru.bitel.bgbilling.modules.npay.server.event.DebetStatusManageOpenGetAdditionalCharge', @event_title='Запрос доп. расхода для открытия договора';
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES (@mid, @new_event_id, 1, @event_title);
INSERT INTO script_function_event_type(fid, mid, event_id) SELECT sfet1.fid, sfet1.mid, @new_event_id FROM script_function_event_type AS sfet1 LEFT JOIN script_function_event_type AS sfet2 ON sfet1.fid=sfet2.fid AND sfet1.mid=sfet2.mid AND sfet2.event_id=@new_event_id WHERE sfet1.mid=@mid AND sfet1.event_id=@old_event_id AND sfet2.fid IS NULL;

SET @mid=$mid, @old_event_id=2, @new_event_id='ru.bitel.bgbilling.modules.npay.server.event.DebetStatusManageAfterOpen', @event_title='После открытия договора по платежу';
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES (@mid, @new_event_id, 1, @event_title);
INSERT INTO script_function_event_type(fid, mid, event_id) SELECT sfet1.fid, sfet1.mid, @new_event_id FROM script_function_event_type AS sfet1 LEFT JOIN script_function_event_type AS sfet2 ON sfet1.fid=sfet2.fid AND sfet1.mid=sfet2.mid AND sfet2.event_id=@new_event_id WHERE sfet1.mid=@mid AND sfet1.event_id=@old_event_id AND sfet2.fid IS NULL;

INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ($mid, 'ru.bitel.bgbilling.kernel.event.events.CalculateEvent', 0, 'Начисление');
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ($mid, 'ru.bitel.bgbilling.modules.npay.server.event.ContractNpayChangedEvent', 1, 'Изменение абонплаты в договоре');

-- #ENDB#