-- MySQL dump 10.13 Distrib 5.7.38, for Linux (x86_64) -- -- Host: localhost Database: maasdorp_funschool -- ------------------------------------------------------ -- Server version 5.7.38 /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_aft_upd_Manual_Billing` AFTER UPDATE ON `sch_bill_details_manual` FOR EACH ROW BEGIN IF ( NEW.status <> OLD.status and NEW.status = 'ST0000401') THEN insert into sch_bill_details (student_id, parent_account, bill_year_term, stu_class, bill_no, bill_item, amount, status) values ( NEW.student_id, NEW.parent_account, NEW.bill_year_term, NEW.stu_class, NEW.bill_no, NEW.bill_item, NEW.amount, 'ST0000407' ); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_new_bill` AFTER INSERT ON `sch_bills_summary` FOR EACH ROW BEGIN DECLARE ld_curr_stmt decimal(15,2) default 0; DECLARE ld_current_debt decimal(15,2) default 0; DECLARE ls_student varchar(100); DECLARE ls_msg, ll_cell_no varchar(255); insert into sch_bills_history (student_id, parent_account, bill_no, status) values (NEW.student_id, NEW.parent_account, NEW.bill_no, NEW.status); select upper(concat(a.name,'-ADM No. ',a.adm_no)) into ls_student from sch_students a where a.student_id = NEW.student_id; select upper(concat(a.p_phone)) into ll_cell_no from sch_parents a where a.parent_account = NEW.parent_account; select ifnull(sum(trx_amount),0) into ld_curr_stmt from sch_cust_stmt where student_id = NEW.student_id; set ld_current_debt = ld_curr_stmt + NEW.billed_amount; set ls_msg = concat(" Your invoice of Ksh ",format(NEW.billed_amount,0)," for ",ls_student," is billed. Current student debt is Ksh ",format(ld_current_debt,0)," . OUR PAYBILL: 750120 ACCOUNT: Child's Name"); INSERT INTO bi_sms ( cust_id, username, first_name, last_name, cell_no, sms_msg ) VALUES ( NEW.student_id, NEW.parent_account, ls_student, '', ll_cell_no, ls_msg ); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_aft_upd_Billing_Reversal` AFTER UPDATE ON `sch_bills_summary` FOR EACH ROW BEGIN DECLARE ls_student varchar(100); DECLARE ls_msg, ls_cell_no varchar(255); DECLARE ld_curr_stmt decimal(15,2) default 0; DECLARE ld_current_debt decimal(15,2) default 0; IF ( NEW.status <> OLD.status and NEW.status = 'ST0000405') THEN select upper(concat(a.name,'-ADM No. ',a.adm_no)) into ls_student from sch_students a where a.student_id = NEW.student_id; select upper(concat(a.p_phone)) into ls_cell_no from sch_parents a where a.parent_account = NEW.parent_account; select ifnull(sum(trx_amount),0) into ld_curr_stmt from sch_cust_stmt where student_id = NEW.student_id; set ld_current_debt = ld_curr_stmt - NEW.billed_amount; set ls_msg = concat(" Your Bill of Ksh ",format(NEW.billed_amount,0)," for ",ls_student," is REVERSED. Current student debt is Ksh ",format(ld_current_debt,0)," . OUR PAYBILL: 750120 ACCOUNT: Child's Name"); insert into bi_sms (group_name,cust_id,username,first_name,last_name,cell_no,sms_msg,actual_program) values ( ls_student, NEW.student_id, NEW.parent_account, ls_student, ' ', ls_cell_no, ls_msg,NEW.actual_program ); insert into sch_cust_stmt (student_id, parent_account, bill_year_term, stu_class, trx_number, trx_type, trx_comments, trx_date, trx_amount,actual_program) values ( NEW.student_id, NEW.parent_account, NEW.bill_year_term, NEW.stu_class, NEW.bill_no, 'TYP001503', concat('BILL REVERSAL, ',NEW.actual_program,', Bill No# ',NEW.bill_no), NEW.actual_time, -1*NEW.billed_amount, NEW.actual_program ); insert into sch_bills_history (student_id, parent_account, bill_no, status,actual_program) values ( NEW.student_id, NEW.parent_account, NEW.bill_no, NEW.status,NEW.actual_program ); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_recon_aft_exp_insert` AFTER INSERT ON `sch_expenses` FOR EACH ROW BEGIN DECLARE ls_remark varchar(255); DECLARE ls_exp_desc varchar(100); select upper(type_name) into ls_exp_desc from bi_present_types where type_code = NEW.expense_type; set ls_remark = concat('EXPENSE - ',ls_exp_desc,', ',NEW.remark ); INSERT INTO sch_reconcilliations (operation_trx_id, operation_code, operation_date, operation_amount, remark) VALUES (NEW.expense_id, 'CD00302', NEW.expense_date, -1*NEW.amount, ls_remark); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_sch_payments` AFTER INSERT ON `sch_payments` FOR EACH ROW BEGIN DECLARE ls_class INT(11); DECLARE ls_term varchar(255); DECLARE ld_curr_stmt decimal(15,2) default 0; DECLARE ld_current_debt decimal(15,2) default 0; DECLARE ls_student varchar(100); DECLARE ls_msg, ll_cell_no varchar(255); IF (NEW.paid_amount > 0) THEN set ls_class = 0; select class_id INTO ls_class from sch_students where student_id = NEW.student_id; set ls_term = ''; select term_id INTO ls_term from sch_terms where status = 'ST0001101'; -- stmt insert into sch_cust_stmt (student_id, parent_account, bill_year_term, stu_class, trx_number, trx_type, trx_comments, trx_date, trx_amount) values (NEW.student_id, NEW.parent_account, ls_term, ls_class, NEW.payment_id, NEW.pay_type, NEW.remarks, NEW.payment_date, (-1*NEW.paid_amount)); select upper(concat(a.name,'-ADM No. ',a.adm_no)) into ls_student from sch_students a where a.student_id = NEW.student_id; select upper(concat(a.p_phone)) into ll_cell_no from sch_parents a where a.parent_account = NEW.parent_account; select ifnull(sum(trx_amount),0) into ld_curr_stmt from sch_cust_stmt where student_id = NEW.student_id; set ld_current_debt = ld_curr_stmt; set ls_msg = concat("Your payment of Ksh ",format(NEW.paid_amount,0)," for ",ls_student," is posted. Current student debt is Ksh ",format(ld_current_debt,0),". OUR PAYBILL: 750120 ACCOUNT: Child's Name"); INSERT INTO bi_sms ( cust_id, username, first_name, last_name, cell_no, sms_msg ) VALUES ( NEW.student_id, NEW.parent_account, ls_student, '', ll_cell_no, ls_msg ); END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_recon_aft_insert` AFTER INSERT ON `sch_staff_payroll` FOR EACH ROW BEGIN DECLARE ls_remark varchar(255); DECLARE ls_staff varchar(50); DECLARE ls_pay_month varchar(50); select upper(name) into ls_staff from sch_staff where id = NEW.staff_id; select upper(pay_month_desc) into ls_pay_month from sch_pay_months where pay_month_id = NEW.pay_month_id; set ls_remark = concat(NEW.remark,' - PAYROLL ',ls_staff,' FOR ',ls_pay_month ); INSERT INTO sch_reconcilliations (operation_trx_id, operation_code, operation_date, operation_amount, remark) VALUES (NEW.id, 'CD00302', NEW.pay_date, -1*NEW.amount_paid, ls_remark); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Dumping routines for database 'maasdorp_funschool' -- /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` FUNCTION `nextval`(`seq_name` VARCHAR(100)) RETURNS bigint(20) BEGIN DECLARE cur_val bigint; SELECT cur_value INTO cur_val FROM sequence WHERE name = seq_name; IF cur_val IS NOT NULL THEN UPDATE sequence SET cur_value = IF ( (cur_value + increment) > max_value OR (cur_value + increment) < min_value, IF ( cycle = TRUE, IF ( (cur_value + increment) > max_value, min_value, max_value ), NULL ), cur_value + increment ) WHERE name = seq_name; END IF; RETURN cur_val; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_bill_001`() BEGIN DECLARE done INT DEFAULT 0; DECLARE v_student_id, v_class_id, v_parent_account varchar(255); DECLARE cur1 CURSOR FOR select student_id, class_id, parent_account from sch_students -- where student_id = 100001 order by student_id; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur1; REPEAT FETCH cur1 INTO v_student_id, v_class_id, v_parent_account; IF ( !done ) THEN BEGIN DECLARE done_2 INT DEFAULT 0; DECLARE v_term_id, vv_class_id, v_item_id, v_amount varchar(255); DECLARE cur2 CURSOR FOR select term_id, class_id, item_id, amount from sch_billing_items where term_id = (select term_id from sch_terms where status = 'ST0001101') and class_id = v_class_id and status = 'ST0001201' and (class_id, term_id, item_id) not in ( select stu_class as 'class_id', bill_year_term as 'term_id', bill_item as 'item_id' from sch_bill_details where bill_year_term = (select term_id from sch_terms where status = 'ST0001101') and stu_class = v_class_id and student_id = v_student_id ); DECLARE CONTINUE HANDLER FOR NOT FOUND SET done_2 = 1; OPEN cur2; REPEAT FETCH cur2 INTO v_term_id, vv_class_id, v_item_id, v_amount; IF ( !done_2 ) THEN insert into sch_bill_details (student_id, parent_account, bill_year_term, stu_class, bill_no, bill_item, amount) values ( v_student_id,v_parent_account,v_term_id,vv_class_id,0,v_item_id,v_amount ); END IF; UNTIL done_2 END REPEAT; close cur2; END; END IF; UNTIL done END REPEAT; close cur1; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_bill_002`() BEGIN DECLARE done INT DEFAULT 0; DECLARE v_bill_no, v_student_id, v_parent_account, v_bill_year_term, v_stu_class varchar(255); DECLARE v_amount decimal(15,2); DECLARE cur1 CURSOR FOR select student_id, parent_account, bill_year_term, stu_class, sum(amount) from sch_bill_details where status = 'ST0000407' group by student_id, parent_account, bill_year_term, stu_class; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur1; REPEAT FETCH cur1 INTO v_student_id, v_parent_account, v_bill_year_term, v_stu_class, v_amount; IF ( !done ) THEN select sum(cur_value+1) into v_bill_no from sequence where name = 'parent_invoice_id_seq'; insert into sch_bills_summary (student_id, parent_account, bill_year_term, stu_class, bill_no, billed_amount) values ( v_student_id, v_parent_account, v_bill_year_term, v_stu_class, v_bill_no, v_amount ); insert into sch_cust_stmt (student_id, parent_account, bill_year_term, stu_class, trx_number, trx_type, trx_comments, trx_amount) values ( v_student_id, v_parent_account, v_bill_year_term, v_stu_class, v_bill_no, 'TYP001501', 'FEES BILLED', v_amount ); update sequence set cur_value = v_bill_no where name = 'parent_invoice_id_seq'; update sch_bill_details set status = 'ST0000401', bill_no = v_bill_no where student_id = v_student_id and status = 'ST0000407' and parent_account = v_parent_account and bill_year_term = v_bill_year_term and stu_class = v_stu_class; END IF; UNTIL done END REPEAT; close cur1; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = latin1 */ ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = '' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_bill_manual_mass`() NO SQL BEGIN DECLARE done INT DEFAULT 0; DECLARE v_student_id, v_class_id, v_parent_account varchar(255); DECLARE cur1 CURSOR FOR select student_id, class_id, parent_account from sch_students -- where student_id in (200042, 200069) order by student_id; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur1; REPEAT FETCH cur1 INTO v_student_id, v_class_id, v_parent_account; IF ( !done ) THEN BEGIN DECLARE done_2 INT DEFAULT 0; DECLARE v_term_id, vv_class_id, v_item_id, v_amount varchar(255); DECLARE cur2 CURSOR FOR select term_id, class_id, item_id, amount from sch_billing_items where term_id = (select term_id from sch_terms where status = 'ST0001101') and class_id = v_class_id and status = 'ST0001201' and (class_id, term_id, item_id) not in ( select stu_class as 'class_id', bill_year_term as 'term_id', bill_item as 'item_id' from sch_bill_details_manual where bill_year_term = (select term_id from sch_terms where status = 'ST0001101') and stu_class = v_class_id and student_id = v_student_id ); -- sch_bill_details OR sch_bill_details_manual DECLARE CONTINUE HANDLER FOR NOT FOUND SET done_2 = 1; OPEN cur2; REPEAT FETCH cur2 INTO v_term_id, vv_class_id, v_item_id, v_amount; IF ( !done_2 ) THEN /* insert into sch_bill_details (student_id, parent_account, bill_year_term, stu_class, bill_no, bill_item, amount) values ( v_student_id,v_parent_account,v_term_id,vv_class_id,0,v_item_id,v_amount ); */ -- INITIATE Mass Manual Billing -- ADMIN to CONFIRM each account insert into sch_bill_details_manual (student_id, parent_account, bill_year_term, stu_class, bill_item, amount ) values ( v_student_id,v_parent_account,v_term_id,vv_class_id,v_item_id,v_amount ); END IF; UNTIL done_2 END REPEAT; close cur2; END; END IF; UNTIL done END REPEAT; close cur1; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2022-05-04 9:52:31