bluedogtraining / avetmiss
AVETMISS Validation and Report Generation
Installs: 39 148
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 9
Forks: 4
Open Issues: 1
Requires
- php: >=5.4.0
Requires (Dev)
- illuminate/validation: 5.*|6.*|7.*
- phpunit/phpunit: 4.*
- zendframework/zendframework1: 1.*
Suggests
- illuminate/validation: Allows Laravel 5 validation integration
- zendframework/zendframework1: Allows Zend Framework 1 validation integration
README
This library is designed to help with the generation of AVETMISS NAT files.
Install
Via Composer
$ composer require bluedogtraining/avetmiss
Usage
The idea behind the library is very simple.
- Create fieldset with field definitions (or use a bundled fieldset)
- Initiate a file with the fieldset.
- Create a row from the file.
- Populate the row.
- Add the populated row back to the file.
- Export the file.
use Bdt\Avetmiss\File; use Bdt\Avetmiss\Nat\V7\Nat120; // array of student courses, pulled from the database $studentcourses = DB::getStudentCourses(); // initiate a new nat file $file = new File(new Nat120); // loop through the studentcourses and add them to the file foreach($this->studentcourses as $studentcourse) { try { $row = $file->createRow(); $row->set('client_id', $studentcourse->Student->id); $row->set('subject_id', $studentcourse->Course->id); //... $file->writeRow($row); } catch(Exception $e) { // Display or log any errors. } } $file->export('nat120.txt');
Extending
The library comes with preliminary Fieldset definitions for AVETMISS Version 7 NAT files.
You can very easily add your own NAT files if required.
$myFieldset = new Fieldset([ Field::make('date')->name('enrolment_date')->length(8), Field::make('numeric')->name('state_id')->length(2)->pad('0')->in(Config::keys('states')), ]);
Or own rules.
class MyOwnConfig extends Config { protected static $deliveryTypes = [ 10 => 'Classroom-based', 20 => 'Electronic based', 30 => 'Employment based', 40 => 'Other delivery (eg correspondence)', 90 => 'Not applicable - recognition of prior learning/ recognition of current competency/ credit transfer' ]; }
Framework Integration
Laravel 5
This library comes with a service provider to add rules for validating against AVETMISS NAT fields.
To use this, first add the Bdt\Avetmiss\Frameworks\Laravel\ValidationServiceProvider
to the providers
array in config/app.php
.
$validator = Validator::make([ 'my_start_date' => '01022000' ], [ 'my_start_date' => 'avetmiss:nat120,activity_start_date' ]); $isValid = $validator->passes();
You can optionally pass a third boolean parameter to the avetmiss
rule to enforce a maximum string length.
Zend Framework 1
This library comes with a utility for creating Zend Framework 1 validators based on AVETMISS NAT fields.
$factory = new Bdt\Avetmiss\Frameworks\Zf1\ValidatorFactory; $validator = $factory->create('nat120', 'activity_start_date'); $validator->isValid('my_start_date');
You can optionally pass a third boolean parameter to the ValidatorFactory::create
method to enforce a maximum string length.
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
License
The MIT License (MIT). Please see License File for more information.
Attribution
This library is based upon information provided in the AVETMISS VET Provider Collection Specifications, which is provided under a Creative Commons Attribution 3.0 Australia license.