| 658 | | create or replace function prevent_expired_license_ride() |
| 659 | | returns trigger as |
| 660 | | $prevent_expired_license_ride$ |
| 661 | | declare |
| 662 | | exp_date date; |
| 663 | | begin |
| 664 | | select dl.expire_date |
| 665 | | into exp_date |
| 666 | | from driver d |
| 667 | | join driverlicense dl on d.driver_license_id = dl.id |
| 668 | | where d.user_id = new.driver_user_id; |
| 669 | | |
| 670 | | if exp_date is not null and exp_date < current_date then |
| 671 | | raise exception 'Driver license expired'; |
| 672 | | end if; |
| 673 | | |
| 674 | | return new; |
| 675 | | end; |
| 676 | | $prevent_expired_license_ride$ language plpgsql; |
| 677 | | create or replace trigger prevent_expired_license_ride |
| 678 | | before insert |
| 679 | | on ride |
| 680 | | for each row |
| 681 | | execute function prevent_expired_license_ride(); |
| 682 | | }}} |
| 683 | | {{{ |