Trabalho de Banco de Dados
23/02/2016
0
Meu professor de BD, passou um trabalho para fechar notas e estou tendo algumas dúvidas e como o tempo é curto resolvi recorrer a vocês. Gostaria de saber até que ponto podem me ajudar.
Projeto de Implementação SGBD
Descrição do Problema
A rede de hotéis Bom Sono necessita de uma aplicação de banco de dados para gerenciar suas atividades financeiras. O gerente forneceu a seguinte descrição
A rede BomSono possui hotéis em diversas cidades. Cada hotel possui apartamentos de diferentes tipos. Existem apartamentos com um ou duas camas de casal, casal com uma cama de solteiro, casal com duas camas de solteiro e apartamentos com 1,2,3 e 4 camas. Alguns destes quartos são adaptados para pessoas portadoras de necessidade especiais. Os apartamentos podem ou não ter TV e/ou frigobar e cada tipo de apartamento tem um valor de diária fixo.
As reservas são feitas com antecedência. O cliente deve-se cadastrar no site informando o nome, endereço, nacionalidade, e-mail, telefone de contato e uma senha. Para reserva deve-se escolher um tipo de apartamento, informar o número de pessoas e as datas previstas para entrada e saída. Um cliente pode realizar várias reservas e cada reserva tem um código de identificação.
Quando um cliente chega ao hotel e faz o check-in, uma conta é aberta é aberta para aquele período de hospedagem e todo consumo realizado fica associada a esta hospedagem. Uma nota fiscal com o valor total será gerada no momento do check-out. O pagamento pode ser feito em cheque, cartão de crédito ou de débito.
Cada diária da direito apenas o café da manhã. Despesas de consumo do frigobar são anotadas diariamente, pela camareira que arruma o quarto. Por questões de segurança e necessário registrar diariamente qual camareira arrumou cada quarto. Além das camareiras o hotel tem funcionários atendentes de recepção de serviço de quarto, serviço geral e gerentes. É necessário guardar os dados de cada funcionário.
O restaurante é terceirizado e por isso, as refeições e demais consumos realizados no restaurante são lançados na conta do hospede por meio de uma nota completa de consumo, que deve estar assinada pelo hospede. Consumos do restaurante entregues no quarto tem o acréscimo de 10%.
O hotel ainda oferece serviços de lavandeiria, e existe uma tabela de preços disponíveis no quarto (Ex: 1- Lavar e passar terno, 2- Lavar e passar vestido, 3- Camisa social, etc.). Eventuais serviços de lavanderia também são contabilizados na conta do hospede.
O cliente pode entrar no site e cancelar sua reserva, sem custo se o cancelamento for feito com dois dias de antecedência. Reservas não canceladas no prazo e/ou no-show geram uma cobrança de uma diária. O banco de dados deve manter o histórico de todos os dados necessários ao controle da estádia dos hóspedes.
Descrição do Trabalho:
Os trabalhos devem ser feitos em grupos de 3 e 4 pessoas.
1ª Etapa: Elaborar o esquema conceitual diagrama EER. Para um banco de dados a ser utilizados para gerenciar as informações do hotel.
2ª Etapa: Projetar o banco de dados do sistema para o SGBD MySQLe gerar o esquema lógico.
3ª Etapa: Criar uma base de dados e elaborar as seguintes consultas:
a) Obter dados dos clientes;
b) Consultar as reservas de um determinado cliente.
c) Obter os dados de todos os hóspedes, conforme a ficha do Ministério do Turismo
d) Consultar os consumos e valores de diárias de um determinado hóspede.
e) Gerar nota fiscal completa no ato do check-out.
f) Obter os relatórios financeiros, por hotel, por cliente. Além de relatórios consolidados por semana e por mês.
g) Obter relatório de cancelamentos.
h) Fazer uso de funções, gatilhos e procedimentos na especificação do banco de dados.
i) Inserir dados no BD.
Jardel Martins
Post mais votado
23/02/2016
Posta o que você já fez e descreva suas dificuldades, pois sua resposta acima é muito vaga.
Assim fica mais fácil ajudá-lo!
Jothaz
Mais Posts
23/02/2016
Marcos P
Se você está desenvolvendo um sistema para uma rede de hotéis, ou seja, seu cliente é uma rede de hotéis... você deve tratar Hotel como Unidade.
Afinal, os hóspedes, funcionários, reservas, consumos... se aplicam sempre a uma unidade ( podendo ser consolidados, em tempo de consulta, para a rede toda ! ).
Mesmo que seu sistema seja "multi-rede", continua valendo a regra de Hotel 1 : N Cidade. O que deveria ser incorporado nesse caso, é a rede a qual a unidade pertence ( Rede 1 : N Hotel ).
Modelar é criar definições e impor limites... crie os seus !
23/02/2016
Marcos P
Boa sorte !
26/02/2016
David Sylvestre
Pq inicialmente pensei do seu jeito e depois pensei:
Uma cidade pode ter vários hotéis,
e um mesmo hotel (mesmo cnpj) em várias cidades
Jardel, mude seu ponto de visão ao desenvolver, tente se aproximar mais do cliente (professor) e entenda qual a real necessidade do sistema tirando essas duvidas.
É melhor entender a regra real que o cliente vive do que supor, desenvolver e ver que nao atende.
11/03/2016
Jardel Martins
f) Obter os relatórios financeiros, por hotel, por cliente. Além de relatórios consolidados por semana e por mês.
g) Obter relatório de cancelamentos.
segue o banco em anexo
-- MySQL Workbench Synchronization -- Generated: 2016-02-28 14:29 -- Model: New Model -- Version: 1.0 -- Project: Name of the project -- Author: Jardel_Martins SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`tab_cidade` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `nome` VARCHAR(100) NOT NULL, `cep` VARCHAR(25) NOT NULL, `uf` VARCHAR(45) NOT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`cad_cliente` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `nome` VARCHAR(100) NOT NULL, `cpf` VARCHAR(15) NOT NULL, `endereco` VARCHAR(45) NOT NULL, `nacionalidade` VARCHAR(45) NOT NULL, `email` VARCHAR(85) NOT NULL, `telefone` VARCHAR(45) NOT NULL, `senha` VARCHAR(45) NOT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`funcionarios` ( `id` INT(8) ZEROFILL NOT NULL, `nome` VARCHAR(125) NOT NULL, `cpf` VARCHAR(15) NULL DEFAULT NULL, `funcao` VARCHAR(120) NULL DEFAULT NULL, `salario` DECIMAL(8,2) NULL DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`cad_hotel` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `cnpj` VARCHAR(25) NOT NULL, `cidade_id` INT(11) NOT NULL, `nome` VARCHAR(100) NOT NULL, INDEX `fk_hotel_cidade1_idx` (`cidade_id` ASC), UNIQUE INDEX `cnpj_Hotel_UNIQUE` (`cnpj` ASC), PRIMARY KEY (`id`), CONSTRAINT `fk_hotel_cidade1` FOREIGN KEY (`cidade_id`) REFERENCES `hotel_bomsono`.`tab_cidade` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`nota_fiscal` ( `id` INT(11) NOT NULL, `cliente_id` INT(11) NOT NULL, `data_emissao` DATE NOT NULL, `chave` VARCHAR(45) NOT NULL, `numero` INT(11) NULL DEFAULT NULL, `serie` INT(11) NULL DEFAULT NULL, `valor_total` DECIMAL(12,2) NOT NULL DEFAULT '0.00', PRIMARY KEY (`id`), INDEX `fk_nota_fiscal_cad_cliente1_idx` (`cliente_id` ASC), CONSTRAINT `fk_nota_fiscal_cad_cliente1` FOREIGN KEY (`cliente_id`) REFERENCES `hotel_bomsono`.`cad_cliente` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`cad_reserva` ( `codigo` INT(11) ZEROFILL NOT NULL AUTO_INCREMENT, `cliente_id` INT(11) NOT NULL, `apartamentos_id` INT(11) NOT NULL, `num_pessoa` INT(11) NOT NULL, `data_entrada` DATE NOT NULL, `data_saida` DATE NOT NULL, `cancelamento` ENUM('true', 'false') NOT NULL DEFAULT 'false', PRIMARY KEY (`codigo`), INDEX `fk_cad_reserva_cad_apartamento1_idx` (`apartamentos_id` ASC), INDEX `fk_cad_reserva_cad_cliente1_idx` (`cliente_id` ASC), CONSTRAINT `fk_cad_reserva_cad_apartamento1` FOREIGN KEY (`apartamentos_id`) REFERENCES `hotel_bomsono`.`cad_apartamento` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_cad_reserva_cad_cliente1` FOREIGN KEY (`cliente_id`) REFERENCES `hotel_bomsono`.`cad_cliente` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`cad_apartamento` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `hotel_id` INT(11) NOT NULL, `cama_casal` INT(2) ZEROFILL NOT NULL, `cama_solteiro` INT(2) ZEROFILL NOT NULL, `necessidade_especial` ENUM('SIM', 'NAO') NOT NULL DEFAULT 'NAO', `tv` ENUM('SIM', 'NAO') NOT NULL DEFAULT 'NAO', `frigobar` ENUM('SIM', 'NAO') NOT NULL DEFAULT 'NAO', `valor_diaria` DECIMAL(8,2) NOT NULL, INDEX `fk_cad_apartamento_cad_hotel1_idx` (`hotel_id` ASC), PRIMARY KEY (`id`), CONSTRAINT `fk_cad_apartamento_cad_hotel1` FOREIGN KEY (`hotel_id`) REFERENCES `hotel_bomsono`.`cad_hotel` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`hot_checkin` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `reserva_codigo` INT(11) ZEROFILL NOT NULL, `data_entrada` DATE NOT NULL, PRIMARY KEY (`id`), INDEX `fk_hot_checkin_cad_reserva1_idx` (`reserva_codigo` ASC), CONSTRAINT `fk_hot_checkin_cad_reserva1` FOREIGN KEY (`reserva_codigo`) REFERENCES `hotel_bomsono`.`cad_reserva` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`hot_conta` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `checkin_id` INT(11) NOT NULL, `valor_conta` DECIMAL(8,2) NOT NULL, PRIMARY KEY (`id`), INDEX `fk_hot_conta_hot_checkin1_idx` (`checkin_id` ASC), CONSTRAINT `fk_hot_conta_hot_checkin1` FOREIGN KEY (`checkin_id`) REFERENCES `hotel_bomsono`.`hot_checkin` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`cad_servico` ( `codigo` INT(8) ZEROFILL NOT NULL, `descricao` VARCHAR(120) NOT NULL, `valor_unitario` DECIMAL(8,2) NOT NULL, `tipo_servico` VARCHAR(45) NULL DEFAULT NULL, PRIMARY KEY (`codigo`)) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`cad_limpeza_apartamento` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `apartamentos_id` INT(11) NOT NULL, `funcionarios_id` INT(8) ZEROFILL NOT NULL, PRIMARY KEY (`id`), INDEX `fk_cad_limpeza_apartamento_cad_apartamento1_idx` (`apartamentos_id` ASC), INDEX `fk_cad_limpeza_apartamento_funcionarios1_idx` (`funcionarios_id` ASC), CONSTRAINT `fk_cad_limpeza_apartamento_cad_apartamento1` FOREIGN KEY (`apartamentos_id`) REFERENCES `hotel_bomsono`.`cad_apartamento` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_cad_limpeza_apartamento_funcionarios1` FOREIGN KEY (`funcionarios_id`) REFERENCES `hotel_bomsono`.`funcionarios` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`cad_conta_restaurante` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `valor_consumido` DECIMAL(12,2) NOT NULL, `conta_id` INT(11) NOT NULL, PRIMARY KEY (`id`), INDEX `fk_cad_conta_restaurante_hot_conta1_idx` (`conta_id` ASC), CONSTRAINT `fk_cad_conta_restaurante_hot_conta1` FOREIGN KEY (`conta_id`) REFERENCES `hotel_bomsono`.`hot_conta` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`consumo_restaurante` ( `conta_restaurante_id` INT(11) NOT NULL, `codigo_produto` INT(8) ZEROFILL NOT NULL, `quantidade` DECIMAL(8,2) NOT NULL, `entrega_domicilio` ENUM('SIM', 'NAO') NOT NULL DEFAULT 'NAO', `recibo_assinado` ENUM('SIM', 'NAO') NOT NULL DEFAULT 'SIM', INDEX `fk_consumo_restaurante_cad_conta_restaurante1_idx` (`conta_restaurante_id` ASC), PRIMARY KEY (`codigo_produto`), CONSTRAINT `fk_consumo_restaurante_cad_conta_restaurante1` FOREIGN KEY (`conta_restaurante_id`) REFERENCES `hotel_bomsono`.`cad_conta_restaurante` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_consumo_restaurante_cad_produtos_restaurante1` FOREIGN KEY (`codigo_produto`) REFERENCES `hotel_bomsono`.`cad_produtos_restaurante` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`cad_produtos_restaurante` ( `codigo` INT(8) ZEROFILL NOT NULL, `descricao` VARCHAR(120) NOT NULL, `valor_unitario` DECIMAL(8,2) NOT NULL, PRIMARY KEY (`codigo`)) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`consumo_servico` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `codigo_servico` INT(8) ZEROFILL NOT NULL, `conta_id` INT(11) NOT NULL, `quantidade` VARCHAR(45) NOT NULL, `valor_servico` DECIMAL(12,2) NOT NULL, PRIMARY KEY (`id`), INDEX `fk_consumo_servico_hot_conta1_idx` (`conta_id` ASC), INDEX `fk_consumo_servico_cad_servico1_idx` (`codigo_servico` ASC), CONSTRAINT `fk_consumo_servico_hot_conta1` FOREIGN KEY (`conta_id`) REFERENCES `hotel_bomsono`.`hot_conta` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_consumo_servico_cad_servico1` FOREIGN KEY (`codigo_servico`) REFERENCES `hotel_bomsono`.`cad_servico` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; CREATE TABLE IF NOT EXISTS `hotel_bomsono`.`hot_check_out` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `checkin_id` INT(11) NOT NULL, `data_saida` DATE NOT NULL, `valor_total` DECIMAL(12,2) NOT NULL, `tipo_pagamento` ENUM('cheque', 'debito', 'credito') NOT NULL, `nota_fiscal_id` INT(11) NOT NULL, PRIMARY KEY (`id`), INDEX `fk_hot_check_out_hot_checkin1_idx` (`checkin_id` ASC), INDEX `fk_hot_check_out_nota_fiscal1_idx` (`nota_fiscal_id` ASC), CONSTRAINT `fk_hot_check_out_hot_checkin1` FOREIGN KEY (`checkin_id`) REFERENCES `hotel_bomsono`.`hot_checkin` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_hot_check_out_nota_fiscal1` FOREIGN KEY (`nota_fiscal_id`) REFERENCES `hotel_bomsono`.`nota_fiscal` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = latin1; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; -- INSERTS DADOS INSERT INTO `hotel_bomsono`.`tab_cidade` (`id`, `nome`, `cep`, `uf`) VALUES ('1', 'Almenara', '399000-000', 'MG'); INSERT INTO `hotel_bomsono`.`tab_cidade` (`id`, `nome`, `cep`, `uf`) VALUES ('2', 'Medina', '391299-000', 'MG'); INSERT INTO `hotel_bomsono`.`tab_cidade` (`id`, `nome`, `cep`, `uf`) VALUES ('3', 'Porto Seguro', '381291-992', 'BA'); INSERT INTO `hotel_bomsono`.`cad_hotel` (`cnpj`, `cidade_id`, `nome`) VALUES ('38.354.344/0001-71', '1', 'HOTEL BOM SONO SEDE'); INSERT INTO `hotel_bomsono`.`cad_hotel` (`cnpj`, `cidade_id`, `nome`) VALUES ('69.866.311/0001-34', '2', 'HOTEL BOM SONO I'); INSERT INTO `hotel_bomsono`.`cad_hotel` (`cnpj`, `cidade_id`, `nome`) VALUES ('03.852.142/0001-75', '3', 'HOTEL BOM SONO BA'); INSERT INTO `hotel_bomsono`.`cad_apartamento` (`hotel_id`, `cama_casal`, `cama_solteiro`, `tv`, `frigobar`, `valor_diaria`) VALUES ('1', '2', '1', 'SIM', 'SIM', '120'); INSERT INTO `hotel_bomsono`.`cad_apartamento` (`hotel_id`, `cama_casal`, `cama_solteiro`, `tv`, `frigobar`, `valor_diaria`) VALUES ('1', '1', '0', 'SIM', 'SIM', '100'); INSERT INTO `hotel_bomsono`.`cad_apartamento` (`hotel_id`, `cama_casal`, `cama_solteiro`, `necessidade_especial`, `tv`, `frigobar`, `valor_diaria`) VALUES ('1', '0', '4', 'SIM', 'SIM', 'NAO', '130'); INSERT INTO `hotel_bomsono`.`cad_apartamento` (`hotel_id`, `cama_casal`, `cama_solteiro`, `valor_diaria`) VALUES ('2', '1', '2', '110'); INSERT INTO `hotel_bomsono`.`cad_apartamento` (`hotel_id`, `cama_casal`, `cama_solteiro`, `necessidade_especial`, `tv`, `frigobar`, `valor_diaria`) VALUES ('2', '2', '0', 'SIM', 'NAO', 'SIM', '140'); call sp_InsereCliente("Thiago Alves", "121.562.506-50", "brasileiro","Rua 41","thiago@mg.com.br","(44)1241-2412","tezinha"); call sp_InsereDadosReserva(1,1,2,'2016-08-24','2016-08-26'); INSERT INTO `hotel_bomsono`.`hotel_check_in` (`reserva_codigo`, `data_entrada`) VALUES ('00000000001', '2016-08-24'); -- tg_CriarReserva DELIMITER $$ CREATE TRIGGER tg_CriarReserva AFTER INSERT ON dados_reserva FOR EACH ROW BEGIN INSERT INTO cad_reserva (dados_id, apartamento_id, num_pessoa, data_entrada, data_saida) VALUES (NEW.id, NEW.apartamento_id, NEW.num_pessoa, NEW.data_entrada,NEW.data_saida); END$$ DELIMITER ; USE `hotel_bomsono`; DROP procedure IF EXISTS `sp_InsereCliente`; DELIMITER $$ USE `hotel_bomsono`$$ CREATE PROCEDURE `sp_InsereCliente` (in vNome varchar(120), in vCpf varchar(15), in vNacionalidade varchar(120), in vEndereco varchar(120), in vEmail varchar(120), in vTelefone varchar(18), in vSenha varchar(16)) BEGIN IF ((vNome != '') && (vCpf != '')) THEN INSERT INTO cad_cliente (nome, cpf, nacionalidade , endereco, email, telefone, senha) VALUES (vNome, vCpf, vNacionalidade, vEndereco, vEmail, vTelefone, vSenha); ELSE SELECT 'NOME e CPF devem ser fornecidos para o cadastro!' AS Msg; END IF; END$$ DELIMITER ; call sp_InsereCliente("Thiago Alves", "121.562.506-50", "brasileiro","Rua 41","thiago@mg.com.br","(44)1241-2412","tezinha"); USE `hotel_bomsono`; DROP procedure IF EXISTS `sp_InsereDadosReserva`; DELIMITER $$ USE `hotel_bomsono`$$ CREATE PROCEDURE `sp_InsereDadosReserva` (in vCliente_id INT, in vApartamento_id INT, in vNum_pessoa INT, in vData_entrada DATE, in vData_saida DATE) BEGIN IF ((vCliente_id != '') && (vApartamento_id != '')) THEN INSERT INTO dados_reserva (cliente_id, apartamento_id, num_pessoa , data_entrada, data_saida) VALUES (vCliente_id, vApartamento_id, vNum_pessoa, vData_entrada, vData_saida); SELECT ' realizado com sucesso!' AS Msg; ELSE SELECT 'Cliente e Apartamento devem ser fornecidos para o cadastro!' AS Msg; END IF; END$$ DELIMITER ; call sp_InsereDadosReserva(1,1,2,'2016-08-24','2016-08-26'); -- tg_AbrirConta DELIMITER $$ CREATE TRIGGER tg_AbrirConta AFTER INSERT ON hotel_check_in FOR EACH ROW BEGIN INSERT INTO hotel_conta (checkin_id, valor_conta) VALUES (NEW.id, 0); END$$ DELIMITER ; --tg_AtualizaConsumoRestaurante DELIMITER $$ CREATE TRIGGER tg_AtualizaConsumoRestaurante AFTER INSERT ON consumo_restaurante FOR EACH ROW BEGIN declare valor_total decimal(8,2); IF (NEW.entrega_domicilio = "SIM") THEN SET valor_total = (NEW.valor_unitario * NEW.quantidade) * 1.10; ELSE SET valor_total = (NEW.valor_unitario * NEW.quantidade); END IF; UPDATE hotel_conta SET valor_consumido = valor_total WHERE reserva_codigo = NEW.reserva_codigo AND NEW.recibo_assinado = "SIM"; END$$ DELIMITER ; --tg_AtualizaConsumoServico DELIMITER $$ CREATE TRIGGER tg_AtualizaConsumoServico AFTER INSERT ON consumo_servico FOR EACH ROW BEGIN declare valor_total decimal(8,2); SET valor_total = (NEW.valor_unitario * NEW.quantidade) * 1.10; UPDATE hotel_conta SET valor_consumido = valor_consumido + valor_total WHERE reserva_codigo = NEW.reserva_codigo; END$$ DELIMITER ; MARTINS CONSTR
Clique aqui para fazer login e interagir na Comunidade :)