Files
cbsnexora-backend/mifosng-db/0005-mifosng-base-demo-reporting-data.sql
T

38 lines
18 KiB
SQL

INSERT INTO `stretchy_parameter` VALUES (3,'FullReportList',NULL,'n/a','n/a','n/a','n/a','Y',NULL,NULL,'select r.report_id, r.report_name, r.report_type, r.report_subtype, r.report_category,\r\nrp.parameter_id, rp.report_parameter_name, p.parameter_name\r\nfrom stretchy_report r\r\nleft join stretchy_report_parameter rp on rp.report_id = r.report_id\r\nleft join stretchy_parameter p on p.parameter_id = rp.parameter_id\r\norder by r.report_name, rp.parameter_id'),(4,'FullParameterList',NULL,'n/a','n/a','n/a','n/a','Y',NULL,NULL,'select parameter_name, parameter_variable, parameter_label, parameter_displayType, parameter_FormatType, parameter_default, selectOne, selectAll\r\nfrom stretchy_parameter p\r\nwhere special is null\r\norder by parameter_id');
INSERT INTO `stretchy_report` VALUES
(29,'ListClients','Table',NULL,NULL,'select concat(c.lastname, \", \", ifnull(c.firstname, "")) as \"Name\", \r\nc.joining_date as \"Joining Date\"\r\nfrom portfolio_client c\r join org_office o on o.id = c.office_id\r\nwhere o.org_id = ${orgId}\r\nand o.id = 1\r\norder by c.lastname, c.firstname'),
(30,'ListClientLoans','Table',NULL,NULL,'select concat(c.lastname, \", \", ifnull(c.firstname, "")) as \"Name\", c.joining_date as \"Joining Date\",\r\np.name as Loan, st.display_name as \"Status\", l.number_of_repayments as \"No. Repayments\",\r\nl.annual_nominal_interest_rate as \" Annual Nominal Interest Rate\", \r\nl.principal_amount,date( l.submittedon_date) as Submitted,\r\ndate(l.approvedon_date) Approved, l.expected_disbursedon_date As \"Expected Disbursal\",\r\ndate(l.expected_firstrepaymenton_date) as \"Expected First Repayment\",\r\ndate(l.expected_maturedon_date) \"Expected Maturity\",\r\ndate(l.disbursedon_date) as Disbursed, date(l.closedon_date) as Closed,\r\ndate(l.withdrawnon_date) as Withdrawn, date(l.rejectedon_date) as Rejected,\r\ndate(l.rescheduledon_date) Rescheduled, date(l.writtenoffon_date) \"Written Off\"\r\nfrom portfolio_client c\r\njoin org_office o on o.id = c.office_id\r\nleft join portfolio_loan l on l.client_id = c.id\r\nleft join portfolio_product_loan p on p.id = l.product_id\r\nleft join ref_loan_status st on st.id = l.loan_status_id\r\nwhere o.org_id = ${orgId}\r\nand o.id = 1\r\norder by o.name, c.lastname, c.firstname, l.id'),
(31,'Loans Awaiting Disbursal','Table',NULL,NULL,'SELECT c.id, c.firstname as \"First Name\", c.lastname as \"Last Name\", \r\nl.id as \"Loan ID\", pl.`name` as \"Product\", \r\nl.principal_amount as Principal, \r\ndate(l.approvedon_date) \"Approved\", l.expected_disbursedon_date \"Expected Disbursal\"\r\nfrom portfolio_client c\r\njoin org_office o on o.id = c.office_id\r\njoin portfolio_loan l on l.client_id = c.id\r\njoin portfolio_product_loan pl on pl.id = l.product_id\r\nleft join ref_currency cur on cur.code = l.currency_code\r\nwhere c.org_id = ${orgId}\r\nand o.id = 2\r\nand l.loan_status_id = 200\r\norder by l.expected_disbursedon_date, c.lastname, c.firstname'),
(32,'Upcoming Repayments','Table',NULL,NULL,'SELECT r.duedate \"Due Date\", c.id as \"Client ID\", c.firstname as \"First Name\", c.lastname as \"Last Name\", \r\nl.id as \"Loan ID\", pl.`name` as \"Product\", \r\n\r\n(select\r\n if(if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) > 90, \"High\", \r\n if (if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) > 30, \"Medium\", \r\n if (if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) = 0, \r\n if (min(installment) = 1, \"Low\", \"Very Low\"),\r\n if (min(installment), \"Medium\", \"Low\")))) \r\nfrom portfolio_loan lr\r\nleft join portfolio_loan_repayment_schedule r on r.loan_id = lr.id\r\n and r.completed_derived is false\r\nwhere lr.id = l.id) as \"Loan Risk\",\r\n\r\n r.installment as Installment, \r\n(r.principal_amount - ifnull(r.principal_completed_derived, 0)) as \"Principal Due\",\r\n(r.interest_amount - ifnull(r.interest_completed_derived, 0)) as \"Interest Due\" ,\r\n((r.principal_amount - ifnull(r.principal_completed_derived, 0)) +\r\n(r.interest_amount - ifnull(r.interest_completed_derived, 0))) as \"Total Due\"\r\nfrom portfolio_client c\r\njoin org_office o on o.id = c.office_id\r\njoin portfolio_loan l on l.client_id = c.id\r\njoin portfolio_product_loan pl on pl.id = l.product_id\r\njoin portfolio_loan_repayment_schedule r on r.loan_id = l.id\r\nleft join ref_currency cur on cur.code = l.currency_code\r\nwhere c.org_id = ${orgId}\r\nand o.id = 2\r\nand l.currency_code = \'XOF\' \r\nand l.loan_status_id = 300\r\nand r.duedate >= curdate()\r\norder by r.duedate, c.lastname, c.firstname'),(33,'Upcoming Repayments Summary By Date, Product','Table',NULL,NULL,'SELECT r.duedate \"Due Date\", pl.`name` as \"Product\", \r\nsum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) as \"Principal Due\",\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0)) as \"Interest Due\" ,\r\n(sum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) +\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0))) as \"Total Due\"\r\nfrom portfolio_client c\r\njoin org_office o on o.id = c.office_id\r\njoin portfolio_loan l on l.client_id = c.id\r\njoin portfolio_product_loan pl on pl.id = l.product_id\r\njoin portfolio_loan_repayment_schedule r on r.loan_id = l.id\r\nleft join ref_currency cur on cur.code = l.currency_code\r\nwhere c.org_id = ${orgId}\r\nand o.id = 2\r\nand l.currency_code = \'XOF\' \r\nand l.loan_status_id = 300\r\nand r.duedate >= curdate()\r\ngroup by r.duedate, pl.`name`\r\norder by r.duedate, pl.`name`'),(34,'Active Loan Portfolio Status','Table',NULL,NULL,'select x.`Name`, x.Loan, x.`Loan ID`, x.Disbursed, \r\nx.`Principal Outstanding`, x.`Interest Outstanding`, x.`Days Overdue`,\r\nx.`Principal Overdue`, x.`Interest Overdue`, \r\n\r\nif(x.`Days Overdue` > 90, \"High\", \r\n if (x.`Days Overdue` > 30, \"Medium\", \r\n if (`Days Overdue` = 0, \r\n if (`First Overdue Installment` = 1, \"Low\", \"Very Low\"),\r\n if (`First Overdue Installment` = 1, \"Medium\", \"Low\"))))\r\n\r\nas \"Loan Risk\", \r\nx.`First Overdue Installment`, x.`First Overdue Installment Date`\r\nfrom\r\n(select concat(c.lastname, \", \", c.firstname) as \"Name\", p.`name` as Loan,\r\nl.id as \"Loan ID\", l.disbursedon_date as Disbursed, ifnull(cur.display_symbol, l.currency_code) as Currency,\r\nsum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) as \"Principal Outstanding\",\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0)) as \"Interest Outstanding\",\r\nif(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) as \"Days Overdue\", \r\nmin(installment) as \"First Overdue Installment\",\r\nmin(duedate) as \"First Overdue Installment Date\",\r\nsum(if(r.duedate <= curdate(), \r\n (r.principal_amount - ifnull(r.principal_completed_derived, 0))\r\n , 0)) as \"Principal Overdue\",\r\nsum(if(r.duedate <= curdate(), \r\n (r.interest_amount - ifnull(r.interest_completed_derived, 0))\r\n , 0)) as \"Interest Overdue\"\r\n\r\nfrom portfolio_loan l\r\nleft join ref_currency cur on cur.code = l.currency_code\r\nleft join portfolio_client c on c.id = l.client_id\r\nleft join org_office o on o.id = c.office_id\r\nleft join portfolio_product_loan p on p.id = l.product_id\r\nleft join portfolio_loan_repayment_schedule r on r.loan_id = l.id\r\n and r.completed_derived is false\r\nwhere o.org_id = ${orgId}\r\nand o.id = 2\r\nand cur.code = \'XOF\' \r\nand l.loan_status_id = 300\r\ngroup by l.id) x\r\norder by x.`Name`, x.Loan, x.`Loan ID`'),(35,'Portfolio at Risk','Table',NULL,NULL,'select \r\nsum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) as \"Principal Outstanding\",\r\nsum(if(r.duedate <= curdate(), \r\n (r.principal_amount - ifnull(r.principal_completed_derived, 0))\r\n , 0)) as \"Principal Overdue\",\r\n \r\n cast(round(\r\n (sum(if(r.duedate <= curdate(), \r\n (r.principal_amount - ifnull(r.principal_completed_derived, 0))\r\n , 0)) * 100) / \r\n sum(r.principal_amount - ifnull(r.principal_completed_derived, 0))\r\n , 2) as char)\r\n as \"Portfolio at Risk %\"\r\n \r\nfrom portfolio_loan l\r\nleft join portfolio_client c on c.id = l.client_id\r\nleft join org_office o on o.id = c.office_id\r\nleft join portfolio_product_loan p on p.id = l.product_id\r\nleft join portfolio_loan_repayment_schedule r on r.loan_id = l.id\r\n and r.completed_derived is false\r\nwhere o.org_id = ${orgId}\r\nand o.id = 2\r\nand l.currency_code = \'XOF\' \r\nand l.loan_status_id = 300\r\ngroup by o.id\r\norder by 1'),(36,'Upcoming Repayments Summary By Date','Table',NULL,NULL,'SELECT r.duedate \"Due Date\", \r\nsum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) as \"Principal Due\",\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0)) as \"Interest Due\",\r\n\r\n(sum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) +\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0))) as \"Total Due\"\r\n\r\nfrom portfolio_client c\r\njoin org_office o on o.id = c.office_id\r\njoin portfolio_loan l on l.client_id = c.id\r\njoin portfolio_loan_repayment_schedule r on r.loan_id = l.id\r\nleft join ref_currency cur on cur.code = l.currency_code\r\nwhere c.org_id = ${orgId}\r\nand o.id = 2\r\nand l.currency_code = \'XOF\' \r\nand l.loan_status_id = 300\r\nand r.duedate >= curdate()\r\ngroup by r.duedate\r\norder by r.duedate'),(37,'Upcoming Repayments Summary By Date, Loan Risk','Table',NULL,NULL,'SELECT r.duedate \"Due Date\", \r\n\r\n(select\r\n if(if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) > 90, \"4 High\", \r\n if (if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) > 30, \"3 Medium\", \r\n if (if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) = 0, \r\n if (min(installment) = 1, \"2 Low\", \"1 Very Low\"),\r\n if (min(installment), \"3 Medium\", \"2 Low\")))) \r\nfrom portfolio_loan lr\r\nleft join portfolio_loan_repayment_schedule r on r.loan_id = lr.id\r\n and r.completed_derived is false\r\nwhere lr.id = l.id) as \"Loan Risk\",\r\n\r\nsum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) as \"Principal Due\",\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0)) as \"Interest Due\",\r\n\r\n(sum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) +\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0))) as \"Total Due\"\r\n\r\nfrom portfolio_client c\r\njoin org_office o on o.id = c.office_id\r\njoin portfolio_loan l on l.client_id = c.id\r\njoin portfolio_loan_repayment_schedule r on r.loan_id = l.id\r\nleft join ref_currency cur on cur.code = l.currency_code\r\nwhere c.org_id = ${orgId}\r\nand o.id = 2\r\nand l.currency_code = \'XOF\' \r\nand l.loan_status_id = 300\r\nand r.duedate >= curdate()\r\ngroup by r.duedate, `Loan Risk`\r\norder by r.duedate, `Loan Risk`'),(38,'Upcoming Repayments Summary By Month, Loan Risk','Table',NULL,NULL,'SELECT DATE_FORMAT(r.duedate,\'%Y-%m\') \"Due Month\", \r\n\r\n(select\r\n if(if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) > 90, \"4 High\", \r\n if (if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) > 30, \"3 Medium\", \r\n if (if(datediff(curdate(), min(duedate)) < 0, 0, datediff(curdate(), min(duedate))) = 0, \r\n if (min(installment) = 1, \"Low\", \"1 Very Low\"),\r\n if (min(installment), \"3 Medium\", \"2 Low\")))) \r\nfrom portfolio_loan lr\r\nleft join portfolio_loan_repayment_schedule r on r.loan_id = lr.id\r\n and r.completed_derived is false\r\nwhere lr.id = l.id) as \"Loan Risk\",\r\n\r\nsum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) as \"Principal Due\",\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0)) as \"Interest Due\",\r\n\r\n(sum(r.principal_amount - ifnull(r.principal_completed_derived, 0)) +\r\nsum(r.interest_amount - ifnull(r.interest_completed_derived, 0))) as \"Total Due\"\r\n\r\nfrom portfolio_client c\r\njoin org_office o on o.id = c.office_id\r\njoin portfolio_loan l on l.client_id = c.id\r\njoin portfolio_loan_repayment_schedule r on r.loan_id = l.id\r\nleft join ref_currency cur on cur.code = l.currency_code\r\nwhere c.org_id = ${orgId}\r\nand o.id = 2\r\nand l.currency_code = \'XOF\' \r\nand l.loan_status_id = 300\r\nand r.duedate >= curdate()\r\ngroup by `Due Month`, `Loan Risk`\r\norder by `Due Month`, `Loan Risk`'),(39,'Disbursals in Previous Year','Chart','Bar',NULL,'select prevYr.startMonth as \"Disbursed Month\", ifnull(monthlyDisb.disbursed,0) as Disbursed\r\nfrom\r\n(SELECT DATE_FORMAT(@startDate := date_add(@startDate, interval 1 Month),\'%Y-%m\') as startMonth\r\nFROM rpt_sequence s, (SELECT @startDate := date_add(curdate(), interval -13 Month)) d\r\nWHERE s.id <= 13) prevYr\r\nleft join \r\n(select DATE_FORMAT(lt.transaction_date,\'%Y-%m\') as txnMonth, sum(lt.amount) as disbursed\r\nfrom portfolio_loan_transaction lt\r\njoin portfolio_loan l on l.id = lt.loan_id\r\njoin portfolio_client c on c.id = l.client_id\r\njoin org_office o on o.id = c.office_id\r\nwhere transaction_type_enum = 1\r\nand o.org_id = ${orgId}\r\nand o.id = 2\r\nand l.currency_code = \'XOF\' \r\ngroup by `txnMonth`) monthlyDisb on monthlyDisb.txnMonth = prevYr.startMonth\r\norder by prevYr.startMonth'),(40,'Repayments in Previous Year','Chart','Bar',NULL,'select prevYr.startMonth as \"Repayment Month\", ifnull(monthlyR.repaid,0) as Repaid\r\nfrom\r\n(SELECT DATE_FORMAT(@startDate := date_add(@startDate, interval 1 Month),\'%Y-%m\') as startMonth\r\nFROM rpt_sequence s, (SELECT @startDate := date_add(curdate(), interval -13 Month)) d\r\nWHERE s.id <= 13) prevYr\r\nleft join \r\n(select DATE_FORMAT(lt.transaction_date,\'%Y-%m\') as txnMonth, sum(lt.amount) as repaid\r\nfrom portfolio_loan_transaction lt\r\njoin portfolio_loan l on l.id = lt.loan_id\r\njoin portfolio_client c on c.id = l.client_id\r\njoin org_office o on o.id = c.office_id\r\nwhere lt.transaction_type_enum = 2 and lt.contra_id is null \r\nand o.org_id = ${orgId}\r\nand o.id = 2\r\nand l.currency_code = \'XOF\' \r\ngroup by `txnMonth`) monthlyR on monthlyR.txnMonth = prevYr.startMonth\r\norder by prevYr.startMonth'),(41,'Clients by Surname','Chart','Pie',NULL,'select c.lastname, count(*) as thecount\r\nfrom portfolio_client c\r\njoin org_office o on o.id = c.office_id\r\nwhere o.org_id = ${orgId}\r\nand o.id = 2\r\ngroup by c.lastname');
INSERT INTO `rpt_sequence` VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),
(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24),(25),(26),(27),(28),
(29),(30),(31),(32),(33),(34),(35),(36),(37),(38),(39),(40),(41),(42),(43),
(44),(45),(46),(47),(48),(49),(50),(51),(52),(53),(54),(55),(56),(57),(58),
(59),(60),(61),(62),(63),(64),(65),(66),(67),(68),(69),(70),(71),(72),(73),
(74),(75),(76),(77),(78),(79),(80),(81),(82),(83),(84),(85),(86),(87),(88),
(89),(90),(91),(92),(93),(94),(95),(96),(97),(98),(99),(100),(101),(102),(103),
(104),(105),(106),(107),(108),(109),(110),(111),(112),(113),(114),(115),(116),
(117),(118),(119),(120),(121),(122),(123),(124),(125),(126),(127),(128),(129),
(130),(131),(132),(133),(134),(135),(136),(137),(138),(139),(140),(141),(142),
(143),(144),(145),(146),(147),(148),(149),
(150),(151),(152),(153),(154),(155),(156),(157),(158),(159),(160),(161),
(162),(163),(164),(165),(166),(167),(168),(169),(170),(171),(172),(173),
(174),(175),(176),(177),(178),(179),(180),(181),(182),(183),(184),(185),(186),(187),(188),
(189),(190),(191),(192),(193),(194),(195),(196),(197),(198),(199),(200),(201),(202),(203),
(204),(205),(206),(207),(208),(209),(210),(211),(212),(213),(214),(215),(216),(217),(218),(219),(220),(221),(222),(223),(224),(225),(226),(227),(228),(229),(230),
(231),(232),(233),(234),(235),(236),(237),(238),(239),(240),(241),(242),(243),(244),(245),(246),(247),(248),(249),(250),(251),(252),(253),(254),(255),(256),(257),
(258),(259),(260),(261),(262),(263),(264),(265),(266),(267),(268),(269),(270),(271),(272),(273),(274),(275),(276),(277),(278),(279),(280),(281),(282),(283),(284),
(285),(286),(287),(288),(289),(290),(291),(292),(293),(294),(295),(296),(297),(298),(299),(300),(301),(302),(303),(304),(305),(306),(307),(308),(309),(310),(311),
(312),(313),(314),(315),(316),(317),(318),(319),(320),(321),(322),(323),(324),(325),(326),(327),(328),(329),(330),(331),(332),(333),(334),(335),(336),(337),(338),
(339),(340),(341),(342),(343),(344),(345),(346),(347),(348),(349),(350),(351),(352),(353),(354),(355),(356),(357),(358),(359),(360),(361),(362),(363),(364),(365),
(366),(367),(368),(369),(370),(371),(372),(373),(374),(375),(376),(377),(378),(379),(380),(381),(382),(383),(384),(385),(386),(387),(388),(389),(390),(391),(392),
(393),(394),(395),(396),(397),(398),(399),(400),(401),(402),(403),(404),(405),(406),(407),(408),(409),(410),(411),(412),(413),(414),(415),(416),(417),(418),(419),
(420),(421),(422),(423),(424),(425),(426),(427),(428),(429),(430),(431),(432),(433),(434),(435),(436),(437),(438),(439),(440),(441),(442),(443),(444),(445),(446),
(447),(448),(449),(450),(451),(452),(453),(454),(455),(456),(457),(458),(459),(460),(461),(462),(463),(464),(465),(466),(467),(468),(469),(470),(471),(472),(473),
(474),(475),(476),(477),(478),(479),(480),(481),(482);