~kibsden/ihris-uganda/baylor-train

« back to all changes in this revision

Viewing changes to tools/csv2module.php

  • Committer: Dennis Kibiye
  • Date: 2012-08-15 12:39:06 UTC
  • Revision ID: kibsden@gmail.com-20120815123906-ckmfgnpgi8xqiz9o
First Initialisation of In Service Baylor Training System Based on iHRIS Manage

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
$args = getopt( "", array(
 
4
            "module:",
 
5
            "form:",
 
6
            "display::",
 
7
            "fields:",
 
8
            "id::",
 
9
            "who::",
 
10
            "file:",
 
11
            "version:",
 
12
            "internalid",
 
13
) );
 
14
 
 
15
$module = $args['module'];
 
16
$form = $args['form'];
 
17
$display = ( array_key_exists( "display", $args ) ? 
 
18
        $args['display'] : ucfirst( $form ) );
 
19
$fields = split( ',', $args['fields'] );
 
20
if ( array_key_exists( "id", $args ) ) {
 
21
    $id = $args['id'];
 
22
} else {
 
23
    $id = false;
 
24
}
 
25
$who = ( array_key_exists( "who", $args ) ?
 
26
        $args['who'] : 1 );
 
27
$file = $args['file'];
 
28
$version = $args['version'];
 
29
$internalid = array_key_exists( "internalid", $args );
 
30
 
 
31
$keyidx = -1;
 
32
if ( $id && ($keyidx = array_search( $id, $fields )) === false ) {
 
33
    die( "ID field isn't listed in the fields given!\n" );
 
34
}
 
35
 
 
36
$last_mod = date( 'Y-m-d H:i:s' );
 
37
$csv = fopen( $file, "r" );
 
38
if ( $csv === false ) {
 
39
    die( "Can't open file: $file\n" );
 
40
}
 
41
 
 
42
echo <<<HEAD
 
43
<?xml version="1.0"?>
 
44
<!DOCTYPE I2CEConfiguration SYSTEM "I2CE_Configuration.dtd">
 
45
<I2CEConfiguration name="$module">
 
46
  <metadata>
 
47
    <displayName>$display</displayName>
 
48
    <description>Data for form: $form</description>
 
49
    <version>$version</version>
 
50
    <path name="configs">
 
51
      <value>./configs</value>
 
52
    </path>
 
53
  </metadata>
 
54
  <configurationGroup name="$module" path="/I2CE/formsData/forms/$form">
 
55
    <displayName>Form data: $form</displayName>
 
56
 
 
57
HEAD;
 
58
 
 
59
while ( ($data = fgetcsv( $csv ) ) ) {
 
60
    if ( count($data) != count( $fields ) ) {
 
61
        die( "Data doesn't match given fields: " . print_r( $data, true ) . print_r( $fields, true ) );
 
62
    }
 
63
 
 
64
    if ( $keyidx >= 0 ) {
 
65
        $key = $data[$keyidx];
 
66
    } else {
 
67
        if ( !$key ) {
 
68
            $key = 1;
 
69
        } else {
 
70
            $key++;
 
71
        }
 
72
    }
 
73
 
 
74
    echo <<<DATAHEAD
 
75
    <configurationGroup name="$key">
 
76
      <displayName>$key</displayName>
 
77
      <configuration name="last_modified">
 
78
        <displayName>Last Modified</displayName>
 
79
        <value>$last_mod</value>
 
80
      </configuration>
 
81
      <configuration name="who">
 
82
        <displayName>Who</displayName>
 
83
        <value>$who</value>
 
84
      </configuration>
 
85
      <configurationGroup name="fields">
 
86
        <displayName>Fields</displayName>
 
87
 
 
88
DATAHEAD;
 
89
 
 
90
    foreach( $fields as $idx => $field ) {
 
91
        if ( $internalid && $idx == $keyidx ) {
 
92
            continue;
 
93
        }
 
94
        $value = $data[$idx];
 
95
        echo <<<DATA
 
96
        <configuration name="$field">
 
97
          <value>$value</value>
 
98
        </configuration>
 
99
 
 
100
DATA;
 
101
    }
 
102
 
 
103
    echo <<<DATAFOOT
 
104
      </configurationGroup>
 
105
    </configurationGroup>
 
106
 
 
107
DATAFOOT;
 
108
 
 
109
}
 
110
 
 
111
echo <<<FOOT
 
112
  </configurationGroup>
 
113
</I2CEConfiguration>
 
114
 
 
115
FOOT;
 
116
 
 
117
 
 
118
 
 
119
?>