CREATE TABLE IF NOT EXISTS `rscm_service_$mid` (
	`id` INT AUTO_INCREMENT, 
	`sid` VARCHAR (255),
	`unit` VARCHAR (30),
	UNIQUE(`id`)
);

ALTER TABLE rscm_service_$mid DROP INDEX `id_2`;

CREATE TABLE IF NOT EXISTS `rscm_service_account_$mid` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `cid` int(11) NOT NULL,
  `sid` int(11) NOT NULL,
  `date` date DEFAULT NULL,
  `amount` bigint(20) DEFAULT NULL,
  `comment` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `cid` (`cid`),
  KEY `date_cid` (`date`,`cid`)
);

UPDATE `installed_modules` SET `pack_client`='ru.bitel.bgbilling.modules.rscm.client', `pack_server`='ru.bitel.bgbilling.modules.rscm.server' WHERE `name`='rscm';

ALTER TABLE `rscm_service_$mid` ADD COLUMN `installment` text DEFAULT NULL AFTER `unit`;
ALTER TABLE `rscm_service_account_$mid` ADD COLUMN `installment_id` int(11) NOT NULL AFTER `sid`;

CREATE TABLE IF NOT EXISTS `rscm_service_account_installment_$mid` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `contract_id` int(11) NOT NULL,
  `service_id` int(11) NOT NULL,
  `date_from` date DEFAULT NULL,
  `amount` bigint(20) DEFAULT NULL,
  `payment_count` int DEFAULT 0,
  `payment_sum` decimal(10,2) DEFAULT 0,
  `payment_all` decimal(10,2) DEFAULT 0,
  `installment` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY (`contract_id`),
  KEY `date_from_contract_id` (`date_from`,`contract_id`)
);

ALTER TABLE `rscm_service_account_$mid` MODIFY `amount` decimal(10,2) DEFAULT 0;
ALTER TABLE `rscm_service_account_installment_$mid` MODIFY `amount` decimal(10,2) DEFAULT 0;
ALTER TABLE `rscm_service_account_installment_$mid` CHANGE COLUMN `payment_sum` `date_next` date DEFAULT NULL AFTER `date_from`;
ALTER TABLE `rscm_service_account_installment_$mid` CHANGE COLUMN `payment_all` `status` tinyint(4) DEFAULT 0 AFTER `service_id`;

UPDATE `scheduled_tasks` SET `class`='ru.bitel.bgbilling.modules.rscm.server.task.RSCMCalculator' WHERE `class`='ru.bitel.bgbilling.modules.rscm.server.Calculator';

ALTER TABLE `rscm_service_$mid` ADD COLUMN `installment` TEXT DEFAULT NULL;
ALTER TABLE `rscm_service_account_$mid` ADD COLUMN `amount_up` int(11) NOT NULL AFTER `amount`;
ALTER TABLE `rscm_service_account_$mid` ADD COLUMN `amount_down` int(11) NOT NULL AFTER `amount_up`;
ALTER TABLE `rscm_service_account_$mid` ADD COLUMN `amount_last` int(1) NOT NULL AFTER `amount_down`;
ALTER TABLE `rscm_service_account_installment_$mid` ADD COLUMN `amount_up` int(11) NOT NULL AFTER `amount`;
ALTER TABLE `rscm_service_account_installment_$mid` ADD COLUMN `amount_down` int(11) NOT NULL AFTER `amount_up`;

UPDATE `rscm_service_account_$mid` SET `amount_up`=amount*100 WHERE `amount`>0;
UPDATE `rscm_service_account_$mid` SET `amount_down`=100 WHERE `amount`>0;
UPDATE `rscm_service_account_installment_$mid` SET `amount_up`=amount*100 WHERE `amount`>0;
UPDATE `rscm_service_account_installment_$mid` SET `amount_down`=100 WHERE `amount`>0;

ALTER TABLE rscm_service_account_$mid ADD COLUMN cost decimal(15,2) DEFAULT NULL AFTER amount_last;

-- #BLOCK#
DELETE FROM script_event_type WHERE mid=$mid;
SET @mid=$mid, @old_event_id=1, @new_event_id='ru.bitel.bgbilling.modules.rscm.server.event.RSCMContractServiceUpdateEvent', @event_title='Изменение/добавление начисления услуги RSCM в договор';
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;
-- #ENDB#
