task/ta-npi-017-01 -- extract item_nbr from job_item into exporter

nparcel/table/jobitem.py
* update collected_sql() method to extract job_item.item_nbr
task/ta-npi-017-01 -- extract item_nbr from job_item into exporter

nparcel/exporter.py
* updated the FIELDS global so caputre the new ITEM_NBR number
task/ta-npi-017-2 -- produce a list of column names within the current
cursor contex

nparcel/dbsession.py
* new method columns() which return a list of column names within the
  current cursor contex
task/ta-npi-017-03 -- provide exporter column support in config

nparcel/conf/nparceld.conf
* placeholder for the new exporter_fields config item which
  controls ordering via a comma separated list of indexes

nparcel/config.py
* support for new attribute exporter_fields
task/ta-npi-017-04 -- exporter report header generator

nparcel/exporter.py
* new attribute header which stores the collected_sql cursor context
  list of columns
* get_collected_items() method now sets the headers after the query
* new method get_header() to generate the exporter report header
task/ta-npi-017-05 -- integrate header generator into report()

nparcel/exporter.py
* deprecated the FIELDS global
* report() method signature now supports sequence tuple
* report() method output now generated by the new get_report_line()
  method
* refactor method get_report_line() so that it generates the exporter
  report line entry from any type of tuple-based input.  Signature
  feature new "line" argument

nparcel/exporterdaemon.py
* updated the _start() method so that config-based business unit
  sequence is fed into the report() method
task/ta-npi-017-06 -- job_item collected_sql() should be agent ID-aware

nparcel/table/jobitem.py
* updated the collected_sql() method so that it returns the Agent Id
task/ta-npi-017-07 -- prepare exporter for Ipec reporting

Makefile
nparcel/tests/__init__.py
* new test file class TestExporterIpec

nparcel/tests/test_exporter_ipec.py
* factor out Ipec specific test cases
task/ta-npi-017-08 -- signature file move for different file types

nparcel/exporter.py
* move_signature_file() method signature now includes "extension"
  attribute which represents the extension of the filename to move
* refactored the move_signature_file() method as existing layout was
  inefficient
task/ta-npi-017-09 -- config support for signature file transfer

nparcel/conf/nparceld.conf
* placeholders for the new "send_ps_file" and "send_png_file" flags

nparcel/config.py
* add support for the new "send_ps_file" and "send_png_file" flags
task/ta-npi-017-10 -- integrate file extension based file move to exporter

nparcel/exporter.py
* process() method signature update to include an "archive_dir" and
  "file_control" argument
* process() method refactored to support archive_dir move and
  file_control processing without affecting existing behavior
task/ta-npi-017-11 -- extend ifle extension based control to Ipec
processing

nparcel/table/jobitem.py
* updated collected_sql() SQL wrapper "AGENT" column header to "AGENT_ID"

nparcel/tests/test_exporter_ipec.py
* all mods were verified in the test file -- no changes to exporter
  logic woohoo!!!
task/ta-npi-017-12 -- translate config flags to proper file_control
construct and feed into exporter

nparcel/config.py
* new method get_file_control() which returns the business unit file
  control settings from the condition map values
* new method bu_to_file() returns the file_bu configuration option of a
  given business unit.  For example 'priority' = 'toll'

nparcel/exporter.py
* new attribute "archive_dir" to store redundant signature files.
  Previously was an argument to the move_signature_file() method
* move_signature_file() method signature now includes file_control
  construct

nparcel/exporterdaemon.py
* update to the _start() method so that call to the Exporter() class
  incorporates an "archive_dir"
task/ta-npi-017-15 -- sort report items based on JOB_KEY

nparcel/exporter.py
* new method get_header_column() which returns the index position of a
  given header token
* updated the report() method so that it sorts line items on JOB_KEY
task/ta-npi-017-13 -- ftp to pick up *.png files

nparcel/ftp.py
* updated the process() method to source *.png files in addition to
  *.ps files
task/ta-npi-017-14 -- report filename needs to be based on BU

nparcel/exporter.py
* update the report() and outfile() method signature to include the
  "identifier" argument for BU-specific filename creation
* outfile() method now support an BU identifier in the filename creation

nparcel/exporterdaemon.py
* patched a bug in the sequence generator in the _start() method
task/ta-npi-017-14 -- report filename needs to be based on BU (cont)

nparcel/tests/test_exporter.py
* patch bug in the test_output_file_creation test
task/ta-npi-108-01 -- Fast state-based loader file input

nparcel/conf/nparceld.conf
* updated the "file_bu" section to include the various Fast state-based
  filename derivatives

nparcel/config.py
* updated the bu_to_file() method so that it ignores state-based
  filename BU tokens

nparcel/loaderdaemon.py
* updated the validate_file() method so that it can support state-based
  loader filenames
task/ta-npi-019-01 -- collected_sql needs to produce Agent state

nparcel/table/agent.py
* updated the schema to include a "state" column

nparcel/table/jobitem.py
* updated the collected_sql() method to include AGENT_STATE (agent.state)
task/ta-npi-019-02 -- update config condition_map to support state based
exporter

nparcel/conf/nparceld.conf
* placeholder for the new state based reporting flag

nparcel/config.py
* updated the FLAG_MAP to support the new "state_reporting" flag

nparcel/exporter.py
* updated the report() method signature to support state reporting via
  the new "state_reporting" argument

nparcel/exporterdaemon.py
* updated the _state() method's call to report() to include
  "state_reporting"