manual_increment.sql

  1. /**
  2.  * Yet more thoroughly excellt code from an ex-coworker...
  3.  */
  4. CREATE DEFINER=`root`@`localhost` FUNCTION `getnewprojectno`(paramdepartment VARCHAR(20)) RETURNS varchar(20) CHARSET latin1
  5.  
  6. DECLARE strno VARCHAR(20);
  7. DECLARE ProjectNo VARCHAR(20);
  8.  
  9. SELECT projectprefix,nextprojectno INTO pp,no FROM systemparameters WHERE department = paramdepartment ;
  10.  
  11. IF (no < 10) THEN SET strno = CONCAT('00000',no);
  12. ELSEIF (no < 100) THEN SET strno = CONCAT('0000',no);
  13. ELSEIF (no < 1000) THEN SET strno = CONCAT('000',no);
  14. ELSEIF (no < 10000) THEN SET strno = CONCAT('00',no);
  15. ELSEIF (no < 100000) THEN SET strno = CONCAT('0',no);
  16. ELSE SET strno = CONCAT(no,'');
  17.  
  18. SET ProjectNo = CONCAT(pp,strno);
  19.  
  20. RETURN ProjectNo;
  21.  
  22.