Skip to content

Library to generate avetmiss nat-files

License

Notifications You must be signed in to change notification settings

surajpkr/avetmiss

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Avetmiss

This library is designed to help with the generation of AVETMISS NAT files.

Build Status

Install

Via Composer

$ composer require bluedogtraining/avetmiss

Usage

The idea behind the library is very simple.

  1. Create fieldset with field definitions (or use a bundled fieldset)
  2. Initiate a file with the fieldset.
  3. Create a row from the file.
  4. Populate the row.
  5. Add the populated row back to the file.
  6. 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.

About

Library to generate avetmiss nat-files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%