<?xml version="1.0" encoding="utf-16"?>
<JiwaDocument xmlns:jiwa="http://www.jiwa.com.au/xml/schemas" Type="JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin">
  <RecID>6e254c18-3e37-4600-a5be-48160984f165</RecID>
  <Name>att_Infa_FileWatcher_Icehouse_EDI</Name>
  <Description>Purpose:          </Description>
  <IsEnabled>true</IsEnabled>
  <IsIsolatedToOwnAppDomain>false</IsIsolatedToOwnAppDomain>
  <ExecutionOrder>0</ExecutionOrder>
  <Author></Author>
  <Version>7.0.157</Version>
  <Code>Imports JiwaFinancials.Jiwa
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports System.Data.SqlClient 
Imports System.Drawing
Imports System.Data
Imports System.IO
Imports Microsoft.VisualBasic.FileIO.TextFieldParser
Imports System 

Public Class FormPlugin
    Inherits System.MarshalByRefObject
    Implements JiwaApplication.IJiwaFormPlugin

    Public Overrides Function InitializeLifetimeService() As Object
        ' returning null here will prevent the lease manager
        ' from deleting the Object.
        Return Nothing
    End Function

    Public Sub SetupBeforeHandlers(ByVal JiwaForm As JiwaApplication.IJiwaForm, ByVal Plugin As JiwaApplication.Plugin.Plugin) Implements JiwaApplication.IJiwaFormPlugin.SetupBeforeHandlers
    End Sub

    Public Sub Setup(ByVal JiwaForm As JiwaApplication.IJiwaForm, ByVal Plugin As JiwaApplication.Plugin.Plugin) Implements JiwaApplication.IJiwaFormPlugin.Setup
    End Sub
End Class

Public Class BusinessLogicPlugin
    Inherits System.MarshalByRefObject
    Implements JiwaApplication.IJiwaBusinessLogicPlugin

    Public Overrides Function InitializeLifetimeService() As Object
        ' returning null here will prevent the lease manager
        ' from deleting the Object.
        Return Nothing
    End Function

    Public Sub Setup(ByVal JiwaBusinessLogic As JiwaApplication.IJiwaBusinessLogic, ByVal Plugin As JiwaApplication.Plugin.Plugin) Implements JiwaApplication.IJiwaBusinessLogicPlugin.Setup
    End Sub

End Class

Public Class ApplicationManagerPlugin
    Inherits System.MarshalByRefObject
    Implements JiwaApplication.IJiwaApplicationManagerPlugin

    Public Overrides Function InitializeLifetimeService() As Object
        ' returning null here will prevent the lease manager
        ' from deleting the Object.
        Return Nothing
    End Function

    Public Sub Setup(ByVal Plugin As JiwaApplication.Plugin.Plugin) Implements JiwaApplication.IJiwaApplicationManagerPlugin.Setup
    End Sub

End Class

Public Class CustomFieldPlugin
    Inherits System.MarshalByRefObject
    Implements JiwaApplication.IJiwaCustomFieldPlugin

    Public Overrides Function InitializeLifetimeService() As Object
        ' returning null here will prevent the lease manager
        ' from deleting the Object.
        Return Nothing
    End Function

    Public Sub FormatCell(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Col As Integer, ByVal Row As Integer, ByVal HostObject As JiwaApplication.IJiwaCustomFieldValues, ByVal CustomField As JiwaApplication.CustomFields.CustomField, ByVal CustomFieldValue As JiwaApplication.CustomFields.CustomFieldValue) Implements JiwaApplication.IJiwaCustomFieldPlugin.FormatCell
    End Sub

    Public Sub ReadData(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Row As Integer, ByVal HostObject As JiwaApplication.IJiwaCustomFieldValues, ByVal CustomField As JiwaApplication.CustomFields.CustomField, ByVal CustomFieldValue As JiwaApplication.CustomFields.CustomFieldValue) Implements JiwaApplication.IJiwaCustomFieldPlugin.ReadData
    End Sub

    Public Sub ButtonClicked(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Col As Integer, ByVal Row As Integer, ByVal HostObject As JiwaApplication.IJiwaCustomFieldValues, ByVal CustomField As JiwaApplication.CustomFields.CustomField, ByVal CustomFieldValue As JiwaApplication.CustomFields.CustomFieldValue) Implements JiwaApplication.IJiwaCustomFieldPlugin.ButtonClicked
    End Sub

End Class

Public Class LineCustomFieldPlugin
    Inherits System.MarshalByRefObject
    Implements JiwaApplication.IJiwaLineCustomFieldPlugin

    Public Overrides Function InitializeLifetimeService() As Object
        ' returning null here will prevent the lease manager
        ' from deleting the Object.
        Return Nothing
    End Function

    Public Sub FormatCell(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Col As Integer, ByVal Row As Integer, ByVal HostItem As JiwaApplication.IJiwaLineCustomFieldValues, ByVal CustomField As JiwaApplication.CustomFields.CustomField, ByVal CustomFieldValue As JiwaApplication.CustomFields.CustomFieldValue) Implements JiwaApplication.IJiwaLineCustomFieldPlugin.FormatCell
    End Sub

    Public Sub ReadData(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Row As Integer, ByVal HostItem As JiwaApplication.IJiwaLineCustomFieldValues, ByVal CustomField As JiwaApplication.CustomFields.CustomField, ByVal CustomFieldValue As JiwaApplication.CustomFields.CustomFieldValue) Implements JiwaApplication.IJiwaLineCustomFieldPlugin.ReadData
    End Sub

    Public Sub ButtonClicked(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Col As Integer, ByVal Row As Integer, ByVal HostItem As JiwaApplication.IJiwaLineCustomFieldValues, ByVal CustomField As JiwaApplication.CustomFields.CustomField, ByVal CustomFieldValue As JiwaApplication.CustomFields.CustomFieldValue) Implements JiwaApplication.IJiwaLineCustomFieldPlugin.ButtonClicked
    End Sub

End Class

Public Class SystemSettingPlugin
    Inherits System.MarshalByRefObject
    Implements JiwaApplication.IJiwaSystemSettingPlugin

    Public Overrides Function InitializeLifetimeService() As Object
        ' returning null here will prevent the lease manager
        ' from deleting the Object.
        Return Nothing
    End Function

    Public Sub FormatCell(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Col As Integer, ByVal Row As Integer, ByVal SystemSetting As JiwaApplication.SystemSettings.Setting) Implements JiwaApplication.IJiwaSystemSettingPlugin.FormatCell
    End Sub

    Public Sub ReadData(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Row As Integer, ByVal SystemSetting As JiwaApplication.SystemSettings.Setting) Implements JiwaApplication.IJiwaSystemSettingPlugin.ReadData
    End Sub

    Public Sub ButtonClicked(ByVal BusinessLogicHost As JiwaApplication.IJiwaBusinessLogic, ByVal GridObject As JiwaApplication.Controls.JiwaGrid, ByVal FormObject As JiwaApplication.IJiwaForm, ByVal Col As Integer, ByVal Row As Integer, ByVal SystemSetting As JiwaApplication.SystemSettings.Setting) Implements JiwaApplication.IJiwaSystemSettingPlugin.ButtonClicked
    End Sub

End Class

Public Class ScheduledExecutionPlugin
	Inherits System.MarshalByRefObject
	Implements JiwaApplication.IJiwaScheduledExecutionPlugin

	Private _plugin As JiwaApplication.Plugin.Plugin 
	Private XMLWatcher As JiwaFileWatcher
	Private CSVSalesOrderWatcher As JiwaFileWatcher	
	Private CSVPaxarWatcher As JiwaFileWatcher	
	Private CSVWageEasyWatcher As JiwaFileWatcher
	Private CSVJournalWatcher As JiwaFileWatcher	
	Private CSVPurchaseOrderWatcher As JiwaFileWatcher
	Private XMLQueueWatcher As JiwaFileWatcher
	
	Private Const CONST_STRING_FILE_WATCHER_ROOT_FOLDER As String = "\\asinfa01\EDI\IceHouse\SOPickConf\Root" 
	'Private Const CONST_STRING_FILE_WATCHER_ROOT_FOLDER As String = "C:\Temp\EDI\Infa\In" 
	      
    Public Sub Execute(ByVal Plugin As JiwaApplication.Plugin.Plugin, ByVal Schedule As JiwaApplication.Schedule.Schedule) Implements JiwaApplication.IJiwaScheduledExecutionPlugin.Execute

    End Sub

    Public Sub OnServiceStart(ByVal Plugin As JiwaApplication.Plugin.Plugin) Implements JiwaApplication.IJiwaScheduledExecutionPlugin.OnServiceStart
		_plugin = Plugin

		' Start watching the folders
'		XMLWatcher = New JiwaFileWatcher(Plugin, "C:\ProgramData\Jiwa Financials\Jiwa 7\Import\XML")		       
'		AddHandler XMLWatcher.FileImport, AddressOf XMLFileImport
'		XMLWatcher.ImportAllFilesInWatchFolder()
			
		CSVSalesOrderWatcher = New JiwaFileWatcher(Plugin,  CONST_STRING_FILE_WATCHER_ROOT_FOLDER ) ' "C:\Temp"		       
		AddHandler CSVSalesOrderWatcher.FileImport, AddressOf CSVSalesOrderPickConfirmationImport_Icehouse
		CSVSalesOrderWatcher.ImportAllFilesInWatchFolder()
			
'		CSVPaxarWatcher = New JiwaFileWatcher(Plugin, "C:\ProgramData\Jiwa Financials\Jiwa 7\Import\CSV\Paxar")		       
'		AddHandler CSVPaxarWatcher.FileImport, AddressOf CSVPaxarImport
'		CSVPaxarWatcher.ImportAllFilesInWatchFolder()
			
'		CSVWageEasyWatcher = New JiwaFileWatcher(Plugin, "C:\ProgramData\Jiwa Financials\Jiwa 7\Import\CSV\Wage Easy Journals")		       
'		AddHandler CSVWageEasyWatcher.FileImport, AddressOf CSVWageEasyImport
'		CSVWageEasyWatcher.ImportAllFilesInWatchFolder()
			
'		CSVJournalWatcher = New JiwaFileWatcher(Plugin, "C:\ProgramData\Jiwa Financials\Jiwa 7\Import\CSV\Journals")		       
'		AddHandler CSVJournalWatcher.FileImport, AddressOf CSVJournalImport
'		CSVJournalWatcher.ImportAllFilesInWatchFolder()
			
'		CSVPurchaseOrderWatcher = New JiwaFileWatcher(Plugin, "C:\ProgramData\Jiwa Financials\Jiwa 7\Import\CSV\Purchase Orders")		       
'		AddHandler CSVPurchaseOrderWatcher.FileImport, AddressOf CSVPurchaseOrderImport
'		CSVPurchaseOrderWatcher.ImportAllFilesInWatchFolder()
			
'		XMLQueueWatcher = New JiwaFileWatcher(Plugin, "C:\ProgramData\Jiwa Financials\Jiwa 7\Import\XML Queue")		       
'		AddHandler XMLQueueWatcher.FileImport, AddressOf XMLQueueImport
'		XMLQueueWatcher.ImportAllFilesInWatchFolder()
    End Sub

    Public Sub OnServiceStopping(ByVal Plugin As JiwaApplication.Plugin.Plugin) Implements JiwaApplication.IJiwaScheduledExecutionPlugin.OnServiceStopping        
		If Not XMLWatcher Is Nothing Then
        	XMLWatcher.StopWatching 
		End If
			
		If Not CSVSalesOrderWatcher Is Nothing Then
        	CSVSalesOrderWatcher.StopWatching 
		End If
			
		If Not CSVPaxarWatcher Is Nothing Then
        	CSVPaxarWatcher.StopWatching 
		End If
			
		If Not CSVWageEasyWatcher Is Nothing Then
        	CSVWageEasyWatcher.StopWatching 
		End If
			
		If Not CSVJournalWatcher Is Nothing Then
        	CSVJournalWatcher.StopWatching 
		End If
			
		If Not CSVPurchaseOrderWatcher Is Nothing Then
        	CSVPurchaseOrderWatcher.StopWatching 
		End If
			
		If Not XMLQueueWatcher Is Nothing Then
        	XMLQueueWatcher.StopWatching 
		End If
    End Sub
		
	Private Sub XMLFileImport(ByVal FileName As String)
        ' Import the file using the import queue manager
        Dim importQueueManager As JiwaImportQManager.ImportQueueItemCollection = JiwaApplication.Manager.Instance.BusinessLogicFactory.CreateBusinessLogic(Of JiwaImportQManager.ImportQueueItemCollection)(Nothing)
        
		Dim queueItem As New JiwaImportQManager.ImportQueueItem
		queueItem.TransformedXML = File.ReadAllText(FileName)
		queueItem.Status = JiwaImportQManager.ImportQueueItem.ImportQueueItemStatuses.ReadyForImport
		importQueueManager.Add(queueItem)
		queueItem.Process()
		If queueItem.Status = JiwaImportQManager.ImportQueueItem.ImportQueueItemStatuses.Failed Then
			Throw New System.Exception(queueItem.ImportErrorMessage) 
		Else
			XMLQueueWatcher.LogToEventLog(String.Format("Imported XML from File '{0}'", FileName), System.Diagnostics.EventLogEntryType.SuccessAudit)				
		End If
	End Sub
		
	Private Sub CSVSalesOrderPickConfirmationImport_Icehouse(ByVal FileName As String)						
		'SAMPLE CSV INPUT FILE
		'=======================================================================
'		JiwaInvoiceNo,JiwaSnapshotNo,JiwaDebtorAccountNo,JiwaLineID,JiwaProductCode,JiwaProductDesc,QuantityPicked 
'		24072,02,C100,F001B92ADAEA4FCAB89E,A001,A Item 001,2
'		24072,02,C100,985B76FB4F7343D4A077,A002,A Item 002,9
'		24072,02,C100,20E38537F9E44F46BFEE,A003,A Item 003,2
'		24072,02,C100,2483B2D9D1E841088A7F,A004,A Item 004,6
		'
		'=======================================================================
		Dim salesOrder As JiwaSales.SalesOrder.SalesOrder = JiwaApplication.Manager.Instance.BusinessLogicFactory.CreateBusinessLogic(Of JiwaSales.SalesOrder.SalesOrder)(Nothing)		
		Dim sInvNo As String = ""
		
		'--debug code				
		Dim oLogFileWriter As StreamWriter
		If (System.IO.File.Exists("C:\Temp\EDI\Infa\In\log.txt")) Then
			System.IO.File.Delete("C:\Temp\EDI\Infa\In\log.txt") 
		End If
		If Not(System.IO.File.Exists("C:\Temp\EDI\Infa\In\log.txt")) Then					
			oLogFileWriter   = New StreamWriter("C:\Temp\EDI\Infa\In\log.txt",True )			
			oLogFileWriter.WriteLine ("New log started ")
			oLogFileWriter.Flush()
		End If
		
		Try			
			Using csvParser As New FileIO.TextFieldParser(FileName)	
				csvParser.TextFieldType = FileIO.FieldType.Delimited
				csvParser.Delimiters = New String() {","}
				csvParser.HasFieldsEnclosedInQuotes = False
					
				Dim csvFields As String() 
				Dim previousOrderNo As String = Nothing
				Dim newKey As String = ""
				
				Dim debtor As JiwaApplication.Entities.Debtor.Debtor = New JiwaApplication.Entities.Debtor.Debtor 
				Dim inventory As JiwaApplication.Entities.Inventory.Inventory = New JiwaApplication.Entities.Inventory.Inventory								
								
				Dim bHeaderRead As Boolean  = False 				
				Dim bOrderObtained As Boolean  = False 
				Dim shSelectedHistoryNo As Short = 0 
										
				Do While Not csvParser.EndOfData
					If Not bHeaderRead Then 
						csvFields = csvParser.ReadFields
						bHeaderRead = True 
					End If					
					csvFields = csvParser.ReadFields											
					sInvNo  =  csvFields(0).ToString().Trim() '-- JiwaInvoiceNo					
					shSelectedHistoryNo = CShort(csvFields(1).ToString().Trim()) '-- snaphot no					
					If Not (bOrderObtained) Then 		
						'--debug code
						oLogFileWriter.WriteLine ("before order read ")
						oLogFileWriter.Flush()
			
						salesOrder.Read(getSalesOrderIdByInvNo (sInvNo)) 
						'--- this call seems to be a bit dodgy  - works sometimes ? inteferes sometimes for sure.
						'salesOrder.HistoryCustomSettings.Read()
						'--debug code
						oLogFileWriter.WriteLine ("before order snaphot set ")
						oLogFileWriter.Flush()
						salesOrder.SelectedHistoryNo = shSelectedHistoryNo '--- sets the snaphot number to the one we are updating
						bOrderObtained = True						
						If (salesOrder.SalesOrderStatus = JiwaSales.SalesOrder.SalesOrder.SalesOrderStatuses.e_SalesOrderProcessed  Or salesOrder.SalesOrderStatus = JiwaSales.SalesOrder.SalesOrder.SalesOrderStatuses.e_SalesOrderClosed ) Then
							CSVSalesOrderWatcher.LogToEventLog("Failed to update Icehouse sales order InvNo: " + sInvNo + " FileName: " + FileName  + vbNewLine + " Order may be closed or processed. " + csvFields(6).ToString().Trim()  , System.Diagnostics.EventLogEntryType.FailureAudit )
							Throw New Exception ( "Editing an order that is closed or processed error. ")
							Return 
						End If
					End If
					'----------------------------------------------------------------------------
					 '--- note the Item index can be line number or line id
					'if supplying with line number with a variable make sure
					'its a int and not long
					'---------------------------------------------------------------------------
					Dim salesOrderLine As JiwaSales.SalesOrder.SalesOrderLine 				
					Dim sLineId As String = csvFields(3).ToString().Trim()
					salesOrderLine = salesOrder.SalesOrderLines.Item(sLineId)					
					Dim qtyThisDel As Decimal  = 0
					If Not (Decimal.TryParse(csvFields(6).ToString().Trim() , qtyThisDel )) Then
						'---place a Error message On windows log and raise error - exit out 
						CSVSalesOrderWatcher.LogToEventLog("Failed to update Icehouse sales order InvNo: " + sInvNo + " FileName: " + FileName  + vbNewLine + " Could Not parse quantity del value " + csvFields(6).ToString().Trim()  , System.Diagnostics.EventLogEntryType.FailureAudit)
						Throw New Exception ( "Quantity to deliver parse error. ")
						Return 
					End If
					'--debug code
					oLogFileWriter.WriteLine ("before order qty set ")
					oLogFileWriter.Flush()
					
					salesOrderLine.QuantityThisDelivery = qtyThisDel
					'--debug code
					oLogFileWriter.WriteLine ("after order qty set ")
					oLogFileWriter.Flush()
					
				Loop				
			
				If salesOrder.SalesOrderLines.Count &gt; 0 Then					
'					Dim soH As JiwaSales.SalesOrder.SalesOrderHistory 
'					soH.SalesOrderHistorys.Read()
					'salesOrder.HistoryCustomSettings.Read()
					'--debug code
					oLogFileWriter.WriteLine ("before custom settting ")
					oLogFileWriter.Flush()
					salesOrder.SalesOrderHistorys(shSelectedHistoryNo).CustomSettingValues.ItemFromSettingName("ediSOPickDate").Contents = Date.Today.ToString()	
					'--debug code
					oLogFileWriter.WriteLine ("after custom settting ")
					oLogFileWriter.Flush()
					'--debug code
					oLogFileWriter.WriteLine ("before ordersave ")
					oLogFileWriter.Flush()		
					
					salesOrder.Save()
					'CSVSalesOrderWatcher.LogToEventLog(String.Format("Updated Sales Order Invoice No. '{0}' from File '{1}'", sInvNo , FileName), System.Diagnostics.EventLogEntryType.SuccessAudit)				
					CSVSalesOrderWatcher.LogToEventLog("Updated Icehouse sales order InvNo: " + sInvNo + " FileName: " + FileName , System.Diagnostics.EventLogEntryType.SuccessAudit)					
				Else
					CSVSalesOrderWatcher.LogToEventLog("Cannot update Icehouse sales order. No Lines in file. InvNo: " + sInvNo + " FileName: " + FileName , System.Diagnostics.EventLogEntryType.FailureAudit)
				End If					
				
			End Using			
		Catch ex As Exception 
			CSVSalesOrderWatcher.LogToEventLog("Error Occured updating Icehouse sales order InvNo: " + sInvNo + " FileName: " + FileName + vbNewLine +  ex.Message  , System.Diagnostics.EventLogEntryType.FailureAudit)		
		End Try
	End Sub
	Private Sub getConnectedSQLGonnection(ByRef cn As SqlClient.SqlConnection, ByVal strCn As String)
		'-- this is unused but leave for reference
        Try
            ' strcn = "MultipleActiveResultSets=true;Data Source=FMXSQL;Initial Catalog=JiwaNew7;User ID=sa;Password=....;"
            strCn = strCn + ";Password=JiwaFinancials123"
            cn = New SqlClient.SqlConnection(strCn)
            cn.Open()
        Catch ex As Exception
            'MessageBox.Show("An error occured in getConnectedSQLGonnection  " + ex.Message.ToString())
			Throw New Exception(ex.Message &amp; "An error occured in getConnectedSQLGonnection  ")           
        End Try
    End Sub
	Private Function getSalesOrderIdByInvNo(ByVal InvNo As String  ) As String 
		Dim sRet As String  = ""		
		Dim cn As SqlClient.SqlConnection = Nothing '= JiwaApplication.Manager.Instance.Database.SQLConnection			
        Dim cmd As New SqlClient.SqlCommand		
        Dim sSql As String				
        Try		
            Call getConnectedSQLGonnection(cn, JiwaApplication.Manager.Instance.Database.SQLConnection.ConnectionString)			
            cmd.Connection = cn			
							
	        sSql = "SELECT InvoiceID FROM SO_Main "		
			sSql = sSql + "WHERE InvoiceNo =  '" + InvNo.Trim() + "' " 

            cmd.CommandText = sSql
            Using dr As SqlDataReader = cmd.ExecuteReader()			
                If (dr.HasRows) Then				
                    If (dr.Read()) Then						
                        sRet = dr("InvoiceID")  
                    End If
                    dr.Close()
                End If
            End Using   				
        Catch ex As Exception
		   Throw New Exception(ex.Message &amp; "Error occured in plugin att_Infa_FileWatcher_Icehouse_EDI func - getSalesOrderIdByInvNo ")           
        Finally 			
            cmd.Dispose()		
            If cn.State = System.Data.ConnectionState.Open Then			
                cn.Close()
            End If		
            cn.Dispose()			
            cn = Nothing		
        End Try  		
		Return sRet			
	End Function	
	Private Sub CSVPaxarImport(ByVal FileName As String)						
		'SAMPLE CSV INPUT FILE
		'=======================================================================			
		'Column 3 = Invoice No.
		'Column 35 = Quantity Picked
		'Column 36 = Invoice Line ID
		'
		'File contents:
		'		
		',,100487,20060919,1436,8667020004748,,331771,20060919,C,331771,20060919,20060919,20060919,09A735096C074FB7A,1.0,0.05,1,Toll Ipec,,,,,,09A735096C074FB7A,331771,D01 - Inserted By Mathew 19/09,brodie,2,VSM-On-M,,,9336920000013,B22B,1,0577553ac5564f7da934,,,,,
		',,100487,20060919,1436,8667020004748,,331771,20060919,C,331771,20060919,20060919,20060919,09A735096C074FB7A,1.0,0.05,1,Toll Ipec,,,,,,09A735096C074FB7A,331771,D01 - Inserted By Mathew 19/09,brodie,3,VSM-On-XL,,,9336920000037,B22B,2,5e4181ee9f2441f99f69,,,,,
		'
		'=======================================================================
		Dim salesOrder As JiwaSales.SalesOrder.SalesOrder = JiwaApplication.Manager.Instance.BusinessLogicFactory.CreateBusinessLogic(Of JiwaSales.SalesOrder.SalesOrder)(Nothing)		
					
		Using csvParser As New FileIO.TextFieldParser(FileName)				
			csvParser.TextFieldType = FileIO.FieldType.Delimited
			csvParser.Delimiters = New String() {","}
			csvParser.HasFieldsEnclosedInQuotes = False
				
			Dim csvFields As String() 
			Dim previousInvoiceNo As String = Nothing
				
			Do While Not csvParser.EndOfData
				csvFields = csvParser.ReadFields
											
				If Not previousInvoiceNo Is Nothing AndAlso csvFields(2) &lt;&gt; previousInvoiceNo Then
					' The order No. has changed - save the sales order
					salesOrder.Save()
					CSVPaxarWatcher.LogToEventLog(String.Format("Updated Sales Order Invoice No. '{0}' from Paxar CSV File '{1}'", salesOrder.InvoiceNo, FileName), System.Diagnostics.EventLogEntryType.SuccessAudit)
				End If
					
				If previousInvoiceNo Is Nothing OrElse csvFields(2) &lt;&gt; previousInvoiceNo Then
					' Read the order					
					salesOrder.Find(JiwaApplication.IJiwaNavigable.ReadModes.Actual, "SO_Main.InvoiceNo", csvFields(2), "")
				End If
				
				For Each salesOrderLine As JiwaSales.SalesOrder.SalesOrderLine In SalesOrder.SalesOrderLines
					If salesOrderLine.RecID = csvFields(35) Then
						salesOrderLine.QuantityThisDelivery = CDec(csvFields(34))
						salesOrderLine.QuantityDemand = salesOrderLine.QuantityBackOrdered ' Force any backorders onto demand. 
						salesOrderLine.Picked = True
						Exit For
					End If
				Next
					
				previousInvoiceNo = csvFields(2)
			Loop				
				
			If salesOrder.SalesOrderLines.Count &gt; 0 Then
				salesOrder.Save()
				CSVPaxarWatcher.LogToEventLog(String.Format("Updated Sales Order Invoice No. '{0}' from Paxar CSV File '{1}'", salesOrder.InvoiceNo, FileName), System.Diagnostics.EventLogEntryType.SuccessAudit)
			End If					
			
		End Using			
	End Sub
		
	Private Sub CSVWageEasyImport(ByVal FileName As String)						
		'1) 2 digit number between 1 &amp; 12 entered by the user. No specific use
		'2) Date dd/mm/yyyy
		'3) "G" - stands For general ledger batch
		'4) G/L account code - up To 20 chars
		'5) batch reference - will always contain the word "PAY" + the 2 digit number
		'In 1st column above
		'6) transaction reference - a description Of Each line item
		'7) amount - negative (ie credit) amounts will contain preceeding  -sign
		'8) 0,0,"","" - these fields are Not used by payroll so will always contain
		'these same settings
		'
		'SAMPLE CSV INPUT FILE
		'=======================================================================
		'Unused, TransPostDateTime/PostDateTime, Unused, AccountNo, Description, Reference, Amount, Unused, Unused, Unused, Unused
		'
		'File contents:
		'				
		'"01","24/10/2014","G","4160-900-00","PAY (01)","Super (SS)     ",-300.00,0,0,"",""
		'"01","24/10/2014","G","4160-900-00","PAY (01)","Super Contr.   ",-85.00,0,0,"",""
		'"01","24/10/2014","G","4160-900-00","PAY (01)","Social Club    ",-4.00,0,0,"",""
		'"01","24/10/2014","G","4160-900-00","PAY (01)","Super (SS)     ",-150.00,0,0,"",""
		'"01","24/10/2014","G","4160-900-00","PAY (01)","Social Club    ",-4.00,0,0,"",""
		'"01","24/10/2014","G","6010-200-00","PAY (01)","Ordinary",13333.35,0,0,"",""
		'"01","24/10/2014","G","6010-200-00","PAY (01)","Ordinary",5700.02,0,0,"",""
		'"01","24/10/2014","G","6010-200-00","PAY (01)","Ordinary",3032.27,0,0,"",""
		'"01","24/10/2014","G","4140-900-00","PAY (01)","Net",-10345.35,0,0,"",""
		'"01","24/10/2014","G","4140-900-00","PAY (01)","Tax",-2599.00,0,0,"",""
		'"01","24/10/2014","G","4140-900-00","PAY (01)","Net",-3890.02,0,0,"",""
		'"01","24/10/2014","G","4140-900-00","PAY (01)","Tax",-1656.00,0,0,"",""
		'"01","24/10/2014","G","4140-900-00","PAY (01)","Net",-1618.27,0,0,"",""
		'"01","24/10/2014","G","4140-900-00","PAY (01)","Tax",-1414.00,0,0,"",""
		'
		'=======================================================================
		Dim journalSet As JiwaJournalSets.JournalSet = JiwaApplication.Manager.Instance.BusinessLogicFactory.CreateBusinessLogic(Of JiwaJournalSets.JournalSet)(Nothing)		
					
		Using csvParser As New FileIO.TextFieldParser(FileName)				
			csvParser.TextFieldType = FileIO.FieldType.Delimited
			csvParser.Delimiters = New String() {","}
			csvParser.HasFieldsEnclosedInQuotes = True
				
			Dim csvFields As String() 
			journalSet.CreateNew
								
			Do While Not csvParser.EndOfData
				csvFields = csvParser.ReadFields
				
				Dim journalLine As New JiwaJournalSets.Line
				journalLine.GLAccount.ReadRecordFromAccountNo(csvFields(3))
				journalLine.TransPostDateTime = csvFields(1)
				journalLine.Reference = csvFields(4)
				If CDec(csvFields(6)) &gt; 0 Then
					journalLine.DebitAmount = System.Math.Abs(CDec(csvFields(6)))
				Else
					journalLine.CreditAmount = System.Math.Abs(CDec(csvFields(6)))
				End If
					
				journalSet.Lines.Add(journalLine)
			Loop				
				
			If journalSet.Lines.count &gt; 0 Then
				journalSet.PostedDate = journalSet.Lines(1).TransPostDateTime
				journalSet.Description = journalSet.Lines(1).Reference
				journalSet.Save()
				CSVWageEasyWatcher.LogToEventLog(String.Format("Created Journal Set No. '{0}' from Wage Easy CSV File '{1}'", journalSet.SetNo, FileName), System.Diagnostics.EventLogEntryType.SuccessAudit)
			End If					
			
		End Using			
	End Sub
		
	Private Sub CSVJournalImport(ByVal FileName As String)						
		'1) Set Type (Normal / Pending / Errored)
		'2) Date dd/mm/yyyy
		'3) G/L account code - up To 20 chars
		'4) Batch reference
		'5) Transaction reference - a description Of Each line item
		'6) Amount - negative (ie credit) amounts will contain preceeding  -sign
		'these same settings
		'
		'SAMPLE CSV INPUT FILE
		'=======================================================================
		'SetType, TransPostDateTime/PostDateTime, AccountNo, Description, Reference, Amount
		'
		'File contents:
		'				
		'"Pending","24/10/2012","2015-200-00","PAY (01)","Super (SS)",-300.00
		'"Pending","24/10/2012","2810-000-03","PAY (01)","Other",200.00
		'"Pending","24/10/2012","2810-000-02","PAY (01)","Sundry",100.00
		'	
		'=======================================================================
		Dim journalSet As JiwaJournalSets.JournalSet = JiwaApplication.Manager.Instance.BusinessLogicFactory.CreateBusinessLogic(Of JiwaJournalSets.JournalSet)(Nothing)		
					
		Using csvParser As New FileIO.TextFieldParser(FileName)				
			csvParser.TextFieldType = FileIO.FieldType.Delimited
			csvParser.Delimiters = New String() {","}
			csvParser.HasFieldsEnclosedInQuotes = True
				
			Dim csvFields As String() 
			journalSet.CreateNew
								
			Do While Not csvParser.EndOfData
				csvFields = csvParser.ReadFields
				
				Dim journalLine As New JiwaJournalSets.Line
				journalLine.GLAccount.ReadRecordFromAccountNo(csvFields(2))
				journalLine.TransPostDateTime = csvFields(1)
				journalLine.Reference = csvFields(3)
				journalLine.Remark = csvFields(4)
				If CDec(csvFields(5)) &gt; 0 Then
					journalLine.DebitAmount = System.Math.Abs(CDec(csvFields(5)))
				Else
					journalLine.CreditAmount = System.Math.Abs(CDec(csvFields(5)))
				End If
					
				Select Case csvFields(0).ToString.ToLower
					Case "pending"
						journalset.SetType = JiwaJournalSets.JournalSet.SetTypes.Pending 					
				End Select
					
				journalSet.Lines.Add(journalLine)
			Loop				
				
			If journalSet.Lines.count &gt; 0 Then
				journalSet.PostedDate = journalSet.Lines(1).TransPostDateTime
				journalSet.Description = journalSet.Lines(1).Reference
				journalSet.Save()
				CSVJournalWatcher.LogToEventLog(String.Format("Created Journal Set No. '{0}' from CSV File '{1}'", journalSet.SetNo, FileName), System.Diagnostics.EventLogEntryType.SuccessAudit)
			End If					
			
		End Using			
	End Sub
		
	Private Sub CSVPurchaseOrderImport(ByVal FileName As String)						
		'SAMPLE CSV INPUT FILE
		'=======================================================================
		'AccountNo,OrderNo,OrderedDate,PartNo,Quantity,HomeLandedCost
		'
		'File contents:
		'					
		'5001,100600,28/05/2014,1170,3,105
		'5001,100601,23/06/2014,1171,1,80.85
		'5001,100602,23/06/2014,1171,2,80.85
		'5001,100603,19/06/2014,1171,2,80.85
		'5001,100604,19/06/2014,1170,2,105
		'5001,100605,25/06/2014,1171,8,80.85
		'5010,100606,24/06/2014,1172,4,55
		'5010,100607,26/06/2014,1172,60,55
		'5015,100608,30/05/2014,120173,1,788
		'5015,100609,19/06/2014,12609,2,890
		'5015,100610,19/06/2014,12611,2,46.5
		'	
		'=======================================================================
		Dim purchaseOrder As JiwaPurchaseOrders.PurchaseOrder = JiwaApplication.Manager.Instance.BusinessLogicFactory.CreateBusinessLogic(Of JiwaPurchaseOrders.PurchaseOrder)(Nothing)			
					
		Using csvParser As New FileIO.TextFieldParser(FileName)				
			csvParser.TextFieldType = FileIO.FieldType.Delimited
			csvParser.Delimiters = New String() {","}
			csvParser.HasFieldsEnclosedInQuotes = False
				
			Dim csvFields As String() 
			Dim previousOrderNo As String = Nothing
			Dim inventory As JiwaApplication.Entities.Inventory.Inventory = New JiwaApplication.Entities.Inventory.Inventory								
			Dim NewLineKey As String = ""
				
			Do While Not csvParser.EndOfData
				csvFields = csvParser.ReadFields
											
				If Not previousOrderNo Is Nothing AndAlso csvFields(1) &lt;&gt; previousOrderNo Then
					' The order No. has changed - save the currently assembled purchase order
					purchaseOrder.Save()
					CSVPurchaseOrderWatcher.LogToEventLog(String.Format("Imported Purchase Order No. '{0}' from File '{1}'", purchaseOrder.OrderNo, FileName), System.Diagnostics.EventLogEntryType.SuccessAudit)
				End If
					
				If previousOrderNo Is Nothing OrElse csvFields(1) &lt;&gt; previousOrderNo Then
					' Create a new order						
					purchaseOrder.CreateNew(JiwaPurchaseOrders.PurchaseOrder.SupplierType.Creditor, JiwaPurchaseOrders.PurchaseOrder.NewOrderSeedTypes.CreditorAccountNo, csvFields(0), JiwaPurchaseOrders.PurchaseOrder.PurchaseOrderType.DefaultOrderType)
					purchaseOrder.OrderNo = csvFields(1)
					purchaseOrder.OrderDate = csvFields(2)
				End If					
				
				inventory.ReadRecordFromPartNo(csvFields(3))
				purchaseOrder.Lines.AddInventoryItem(inventory.InventoryID, NewLineKey)																			
				purchaseOrder.Lines(NewLineKey).Quantity = CDec(csvFields(4))
				purchaseOrder.Lines(NewLineKey).Cost = CDec(csvFields(5))
					
				previousOrderNo = csvFields(1)
			Loop				
				
			If purchaseOrder.Lines.Count &gt; 0 Then
				purchaseOrder.Save()
				CSVPurchaseOrderWatcher.LogToEventLog(String.Format("Imported Purchase Order No. '{0}' from File '{1}'", purchaseOrder.OrderNo, FileName), System.Diagnostics.EventLogEntryType.SuccessAudit)				
			End If					
			
		End Using			
	End Sub
		
	Public Sub XMLQueueImport(ByVal FileName As String)
		Dim SQLParam As SqlParameter
			
		' Read the file contents
		Dim fileText As String = File.ReadAllText(FileName)
		Dim XMLDocument As New System.Xml.XmlDocument
        XMLDocument.LoadXml(fileText)
			
		' Insert into the table
		With JiwaApplication.Manager.Instance.Database 
			Dim SQL As String = "INSERT INTO IM_ImportQueue(ImportQueueID, OriginalXML, TransformedXML, Status, AddedToQueueDateTime, AddedToQueueByStaffID, LastSavedDateTime, LastSavedByStaffID, ImportErrorMessage, ImportBatchID, BatchNo, ItemNo, ImportSuccessMessage) " &amp; 
									"SELECT NewID()" &amp;
	                                ", @OriginalXML" &amp;
	                                ", @TransformedXML" &amp; 
	                                ", @Status" &amp;
	                                ", @AddedToQueueDateTime" &amp;
	                                ", @AddedToQueueByStaffID" &amp;
	                                ", @LastSavedDateTime" &amp;
	                                ", @LastSavedByStaffID" &amp;
	                                ", @ImportErrorMessage" &amp;
	                                ", @ImportBatchID" &amp;
	                                ", @BatchNo" &amp;
	                                ", @ItemNo" &amp;
	                                ", @ImportSuccessMessage"

            Using SQLCmd As SqlCommand = New SqlCommand(SQL, .SQLConnection, .SQLTransaction)
                SQLParam = New SqlParameter("@OriginalXML", System.Data.SqlDbType.Text)
                SQLParam.Value = XMLDocument.OuterXml
                SQLCmd.Parameters.Add(SQLParam)

                SQLParam = New SqlParameter("@TransformedXML", System.Data.SqlDbType.Text)
                SQLParam.Value = XMLDocument.OuterXml
                SQLCmd.Parameters.Add(SQLParam)

				SQLParam = New SqlParameter("@Status", System.Data.SqlDbType.TinyInt)
                SQLParam.Value = 0
                SQLCmd.Parameters.Add(SQLParam)
					
				SQLParam = New SqlParameter("@AddedToQueueDateTime", System.Data.SqlDbType.DateTime)
                SQLParam.Value = Now
                SQLCmd.Parameters.Add(SQLParam)
					
				SQLParam = New SqlParameter("@AddedToQueueByStaffID", System.Data.SqlDbType.Char)
                SQLParam.Value = JiwaApplication.Manager.Instance.Staff.RecID
                SQLCmd.Parameters.Add(SQLParam)
					
				SQLParam = New SqlParameter("@LastSavedDateTime", System.Data.SqlDbType.DateTime)
                SQLParam.Value = Now
                SQLCmd.Parameters.Add(SQLParam)
					
				SQLParam = New SqlParameter("@LastSavedByStaffID", System.Data.SqlDbType.Char)
                SQLParam.Value = JiwaApplication.Manager.Instance.Staff.RecID
                SQLCmd.Parameters.Add(SQLParam)
					
				SQLParam = New SqlParameter("@ImportErrorMessage", System.Data.SqlDbType.VarChar)
                SQLParam.Value = ""
                SQLCmd.Parameters.Add(SQLParam)
				
				SQLParam = New SqlParameter("@ImportBatchID", System.Data.SqlDbType.Char)
                SQLParam.Value = ""
                SQLCmd.Parameters.Add(SQLParam)
				
				SQLParam = New SqlParameter("@BatchNo", System.Data.SqlDbType.Char)
                SQLParam.Value = ""
                SQLCmd.Parameters.Add(SQLParam)
					
				SQLParam = New SqlParameter("@ItemNo", System.Data.SqlDbType.Int)
                SQLParam.Value = 0
                SQLCmd.Parameters.Add(SQLParam)
					
				SQLParam = New SqlParameter("@ImportSuccessMessage", System.Data.SqlDbType.VarChar)
                SQLParam.Value = ""
                SQLCmd.Parameters.Add(SQLParam)
					
                SQLCmd.ExecuteNonQuery()
            End Using
		End With
	End Sub
End Class
	
Public Class JiwaFileWatcher
	Private Plugin As JiwaApplication.Plugin.Plugin 
	Public Property FileSystemWatcher As FileSystemWatcher
	Public Property BaseFolder As String
			
	Public Event FileImport(ByVal FullPath As String)
			
	Public ReadOnly Property WatchFolder As String	
		Get 
			Return Path.Combine(BaseFolder, "Watch")
		End Get
	End Property
		
	Public ReadOnly Property PendingFolder As String	
		Get 
			Return Path.Combine(BaseFolder, "Pending")
		End Get
	End Property
		
	Public ReadOnly Property FailedFolder As String	
		Get 
			Return Path.Combine(BaseFolder, "Failed")
		End Get
	End Property
		
	Public ReadOnly Property SucceededFolder As String	
		Get 
			Return Path.Combine(BaseFolder, "Succeeded")
		End Get
	End Property
			
	Public Sub New(Plugin As JiwaApplication.Plugin.Plugin, ByVal BaseFolder As String)
		Me.BaseFolder = BaseFolder
		Me.Plugin = Plugin
			
		If Not System.IO.Directory.Exists(Me.BaseFolder) Then
			System.IO.Directory.CreateDirectory(Me.BaseFolder)
		End If
			
		If Not System.IO.Directory.Exists(Me.WatchFolder) Then
			System.IO.Directory.CreateDirectory(Me.WatchFolder)
		End If
			
		If Not System.IO.Directory.Exists(Me.PendingFolder) Then
			System.IO.Directory.CreateDirectory(Me.PendingFolder)
		End If
			
		If Not System.IO.Directory.Exists(Me.FailedFolder) Then
			System.IO.Directory.CreateDirectory(Me.FailedFolder)
		End If
			
		If Not System.IO.Directory.Exists(Me.SucceededFolder) Then
			System.IO.Directory.CreateDirectory(Me.SucceededFolder)
		End If
			
		FileSystemWatcher = New FileSystemWatcher
		FileSystemWatcher.Path = Me.WatchFolder 
		FileSystemWatcher.NotifyFilter = (NotifyFilters.LastWrite Or NotifyFilters.FileName)
		FileSystemWatcher.Filter = "*.*"
		FileSystemWatcher.EnableRaisingEvents = True
			
		AddHandler FileSystemWatcher.Created, AddressOf OnCreated
			
		LogToEventLog(String.Format("Started monitoring folder: '{0}'", Me.WatchFolder), System.Diagnostics.EventLogEntryType.SuccessAudit)
	End Sub
	
	Public Sub ImportAllFilesInWatchFolder()		
		' Import any files already in the watch folder
		For Each file As String In System.IO.Directory.EnumerateFiles(Me.WatchFolder)
			OnFileImport(file)
		Next				
	End Sub
		
	Private Sub OnFileImport(ByVal FullPath As String)
		If System.IO.File.Exists(FullPath) Then
			Dim pendingFileNameAndPath As String = Path.Combine(Me.PendingFolder, System.IO.Path.GetFileName(FullPath)) &amp; "." &amp; now.ToString("yyyy-MM-ddTHmmss.FFF")
				
			Try
				' Wait until we can get exclusive access, or until we exceed the retry period.
				Dim retryCount As Integer = 0
				Dim maxRetries As Integer = 5					
				
				Do While True
					Try
						Using fs As New FileStream(FullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.None, 100)
							fs.ReadByte 
							Exit Do
						End Using
					Catch ex As System.Exception
						If retryCount &gt; maxRetries Then
							Exit Do
						Else
							retryCount += 1
							System.Threading.Thread.Sleep(500)
						End If
					End Try
				Loop
					
				' Move to pending folder				
				System.IO.File.Move(Path.Combine(Me.WatchFolder, System.IO.Path.GetFileName(FullPath)), pendingFileNameAndPath)									
					
				' Raise the event so the work is done
				RaiseEvent FileImport(pendingFileNameAndPath)
						
				' Move to succeeded folder
				System.IO.File.Move(pendingFileNameAndPath, Path.Combine(Me.SucceededFolder, System.IO.Path.GetFileName(pendingFileNameAndPath)))
				
				LogToEventLog(String.Format("Imported File '{0}'", FullPath), System.Diagnostics.EventLogEntryType.SuccessAudit)
			Catch ex As System.Exception
				' Move to failed folder
				System.IO.File.Move(pendingFileNameAndPath, Path.Combine(Me.FailedFolder, System.IO.Path.GetFileName(pendingFileNameAndPath)))
				LogToEventLog(String.Format("Failed to import File '{0}' - Error: {1}", FullPath, ex.Message), System.Diagnostics.EventLogEntryType.Error)
					
				'Dim email As JiwaApplication.JiwaEmail.EmailMessage = JiwaApplication.BusinessLogicFactory.Instance.CreateBusinessLogic(Of JiwaApplication.JiwaEmail.EmailMessage)
				'email.SystemSettings.UseOutlookForEmail = False ' Cannot use outlook from within a Windows Service - make sure your other system settings like SMTP server are configured.
				'email.CreateNew() 
				'email.EmailTo = "youremail@yourdomain.com.au"
				'email.EmailSubject = "test email"
				'email.EmailBody = String.Format("Document '{0}' failed to import - error message is '{1}'", pendingFileNameAndPath, ex.Message)
				'email.Save()
			End Try		
		End If
	End Sub
		
	Private Sub OnCreated(source As Object, e As FileSystemEventArgs)
		OnFileImport(e.FullPath)
	End Sub
		
	Public Sub StopWatching()
		RemoveHandler FileSystemWatcher.Created, AddressOf OnCreated
	End Sub
		
	Public Sub LogToEventLog(ByVal Message As String, ByVal EventLogEntryType As System.Diagnostics.EventLogEntryType)
		Dim Log As New System.Diagnostics.EventLog("Application")
		Log.Source = String.Format("Jiwa Plugin : {0}", Me.Plugin.Name )
		Log.WriteEntry(Message, EventLogEntryType)
		Log.Close()
	End Sub
		
End Class</Code>
  <ExceptionPolicy>Report</ExceptionPolicy>
  <Language>VisualBasic</Language>
  <ReferenceCollection>
    <Reference>
      <RecID>e35ff458-d141-4169-b5c0-613d04438da2</RecID>
      <AssemblyFullName>JiwaApplication, Version=7.0.157.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaApplication.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaApplication.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>ca7b70d0-7cbc-4d0e-b24d-278ae2f0c426</RecID>
      <AssemblyFullName>mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>mscorlib.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>8e57f4aa-09c5-4339-8e8e-cfeec76a23c4</RecID>
      <AssemblyFullName>System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>d60c5966-3943-4962-b875-de38c90904af</RecID>
      <AssemblyFullName>System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Data.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>12ef20c1-8426-49b6-85aa-763d339985a0</RecID>
      <AssemblyFullName>JiwaODBC, Version=7.0.157.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaODBC.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaODBC.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>1bb020b6-e8ba-40e0-a104-674f72b92ca3</RecID>
      <AssemblyFullName>System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Xml.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>74eae32a-6250-459a-a481-9779087b8e4a</RecID>
      <AssemblyFullName>System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Runtime.Serialization.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>7b1118db-3b8a-4b42-b838-e0d321c3d5df</RecID>
      <AssemblyFullName>System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>System.Drawing.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>2f54590b-9ef6-40d4-a3c7-d77e3b1294ff</RecID>
      <AssemblyFullName>Microsoft.SqlServer.Smo, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91</AssemblyFullName>
      <AssemblyName>Microsoft.SqlServer.Smo.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Smo\12.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Smo.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>6ceb8bee-21b3-43dd-99da-60df7543468c</RecID>
      <AssemblyFullName>Microsoft.SqlServer.ConnectionInfo, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91</AssemblyFullName>
      <AssemblyName>Microsoft.SqlServer.ConnectionInfo.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.ConnectionInfo\12.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ConnectionInfo.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>4a28a63f-3c73-42ce-a83b-dd5bab158734</RecID>
      <AssemblyFullName>System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Windows.Forms.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>742bac8f-fb11-49b3-b329-5a7d575dd498</RecID>
      <AssemblyFullName>Infragistics4.Win.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>b052161f-51ee-4499-9f02-ea412a1e21b4</RecID>
      <AssemblyFullName>Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>Microsoft.VisualBasic.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualBasic\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualBasic.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>ee6833c6-2e45-494f-9f17-38f55be37130</RecID>
      <AssemblyFullName>Infragistics4.Win.Misc.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.Misc.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.Misc.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>3727ef46-a870-48de-9ebb-4517b31795de</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinEditors.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinEditors.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinEditors.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>a2c35afc-4083-4873-88a0-2e23d4231e3a</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinExplorerBar.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinExplorerBar.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinExplorerBar.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>5af7ed54-0b72-4b3a-8df1-b58ffe3080f2</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinTree.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinTree.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinTree.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>ed1c46db-4ce4-4a0a-b758-ca2f01959058</RecID>
      <AssemblyFullName>FarPoint.Win.Spread, Version=8.35.20151.0, Culture=neutral, PublicKeyToken=327c3516b1b18457</AssemblyFullName>
      <AssemblyName>FarPoint.Win.Spread.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\FarPoint.Win.Spread.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>ca57b941-d3f2-4927-9f8d-02520c2010cd</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinTabControl.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinTabControl.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinTabControl.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>3c95f9df-f75e-495d-ab21-330e9afdae0d</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinToolbars.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinToolbars.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinToolbars.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>4a44b3ab-b20d-44f9-9fec-4cdafc09d4c3</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinStatusBar.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinStatusBar.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinStatusBar.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>6c7685f6-ef31-41a1-866b-40491ac75976</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinListView.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinListView.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinListView.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>044f078e-5ebc-48e7-8ac6-078b9bebb86d</RecID>
      <AssemblyFullName>ActiproSoftware.SyntaxEditor.WinForms, Version=12.1.304.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763</AssemblyFullName>
      <AssemblyName>ActiproSoftware.SyntaxEditor.WinForms.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\ActiproSoftware.SyntaxEditor.WinForms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>e0f205f5-860f-4847-9595-9f83be83b71f</RecID>
      <AssemblyFullName>ZetaHtmlEditControl, Version=1.1.0.3, Culture=neutral, PublicKeyToken=2e2e5ba5da72b6c0</AssemblyFullName>
      <AssemblyName>ZetaHtmlEditControl.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\ZetaHtmlEditControl.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>baa24e11-a3d5-4274-82a4-3a6891047ed6</RecID>
      <AssemblyFullName>ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms, Version=12.1.304.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763</AssemblyFullName>
      <AssemblyName>ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\ActiproSoftware.SyntaxEditor.Addons.DotNet.WinForms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>685ba0b4-c328-4e40-b9ef-4f7428238648</RecID>
      <AssemblyFullName>JiwaEncryption, Version=7.0.157.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaEncryption.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaEncryption.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>974014fd-a8f4-4b04-b28a-20a50c6637bf</RecID>
      <AssemblyFullName>Microsoft.SqlServer.Dac, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>Microsoft.SqlServer.Dac.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Microsoft.SqlServer.Dac.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>770e9d98-2580-4738-bbb6-6dfd15fab5a7</RecID>
      <AssemblyFullName>CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.CrystalReports.Engine.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\13.0.2000.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>51a4ba94-814f-426d-954f-5009009c792e</RecID>
      <AssemblyFullName>CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.Shared.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\assembly\GAC_MSIL\CrystalDecisions.Shared\13.0.2000.0__692fbea5521e1304\CrystalDecisions.Shared.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>390f2a11-6dd7-451a-a1e3-c820b2128476</RecID>
      <AssemblyFullName>CrystalDecisions.ReportAppServer.Controllers, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.ReportAppServer.Controllers.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\assembly\GAC_MSIL\CrystalDecisions.ReportAppServer.Controllers\13.0.2000.0__692fbea5521e1304\CrystalDecisions.ReportAppServer.Controllers.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>70fb4b4b-b479-42e5-b509-89b1f5cc8bc3</RecID>
      <AssemblyFullName>System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyFullName>
      <AssemblyName>System.Core.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>c86a93e9-9f2c-417e-a051-1dfd0990eabc</RecID>
      <AssemblyFullName>Infragistics4.Win.AppStylistSupport.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.AppStylistSupport.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.AppStylistSupport.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>485b592d-eee9-43dc-9ab8-167cff9c492a</RecID>
      <AssemblyFullName>JiwaLib, Version=7.0.157.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaLib.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaLib.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>45487861-f839-4a89-beb0-37ade2ab024a</RecID>
      <AssemblyFullName>CrystalDecisions.Windows.Forms, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.Windows.Forms.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\assembly\GAC_MSIL\CrystalDecisions.Windows.Forms\13.0.2000.0__692fbea5521e1304\CrystalDecisions.Windows.Forms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>f36d18eb-c983-4122-a4af-c0ce8a29575f</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinSchedule.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinSchedule.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinSchedule.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>a96caa67-e2d6-4423-94f7-7f3aae2d1e0e</RecID>
      <AssemblyFullName>Infragistics4.Win.UltraWinGrid.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Win.UltraWinGrid.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Win.UltraWinGrid.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>a49ac7e3-84d0-491e-b992-88f3ec1c2c7f</RecID>
      <AssemblyFullName>Infragistics4.Shared.v13.1, Version=13.1.20131.2060, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb</AssemblyFullName>
      <AssemblyName>Infragistics4.Shared.v13.1.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Infragistics4.Shared.v13.1.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>3502fe26-4ecd-473c-9886-9d595463aad3</RecID>
      <AssemblyFullName>Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</AssemblyFullName>
      <AssemblyName>Microsoft.Office.Interop.Outlook.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Microsoft.Office.Interop.Outlook.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>68a813aa-3d9d-45d3-b015-e25e993d0973</RecID>
      <AssemblyFullName>ActiproSoftware.Shared.WinForms, Version=12.1.304.0, Culture=neutral, PublicKeyToken=c27e062d3c1a4763</AssemblyFullName>
      <AssemblyName>ActiproSoftware.Shared.WinForms.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\ActiproSoftware.Shared.WinForms.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>248d0857-15fa-4b1f-9af7-a030cc18d26d</RecID>
      <AssemblyFullName>FarPoint.Win, Version=8.35.20151.0, Culture=neutral, PublicKeyToken=327c3516b1b18457</AssemblyFullName>
      <AssemblyName>FarPoint.Win.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\FarPoint.Win.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>50d5a506-ff67-42ab-b1da-d04c352348cb</RecID>
      <AssemblyFullName>System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</AssemblyFullName>
      <AssemblyName>System.Security.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Security\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Security.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>c4ff210b-3c5f-4b71-8032-f6ad1e080bc7</RecID>
      <AssemblyFullName>CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.ReportAppServer.ClientDoc.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\assembly\GAC_MSIL\CrystalDecisions.ReportAppServer.ClientDoc\13.0.2000.0__692fbea5521e1304\CrystalDecisions.ReportAppServer.ClientDoc.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>811b0232-dc9d-446e-b68d-8095a761763e</RecID>
      <AssemblyFullName>CrystalDecisions.ReportAppServer.ReportDefModel, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304</AssemblyFullName>
      <AssemblyName>CrystalDecisions.ReportAppServer.ReportDefModel.dll</AssemblyName>
      <AssemblyLocation>C:\Windows\assembly\GAC_MSIL\CrystalDecisions.ReportAppServer.ReportDefModel\13.0.2000.0__692fbea5521e1304\CrystalDecisions.ReportAppServer.ReportDefModel.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>c58befa0-d47f-4cd9-b068-9142807a230c</RecID>
      <AssemblyFullName>JiwaImportQManager, Version=7.0.157.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaImportQManager.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaImportQManager.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>8df0bd00-2405-49d0-aa13-393c7392265a</RecID>
      <AssemblyFullName>JiwaSales, Version=7.0.157.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaSales.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaSales.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>971ca56e-74cf-4eaa-b16f-bf678ce7be86</RecID>
      <AssemblyFullName>JiwaJournalSets, Version=7.0.157.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaJournalSets.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaJournalSets.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>ebf3845c-7851-4c82-bd75-48228a12ce03</RecID>
      <AssemblyFullName>JiwaPurchaseOrders, Version=7.0.157.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaPurchaseOrders.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaPurchaseOrders.dll</AssemblyLocation>
    </Reference>
  </ReferenceCollection>
</JiwaDocument>