﻿<?xml version="1.0" encoding="utf-16"?>
<JiwaDocument xmlns:jiwa="http://www.jiwa.com.au/xml/schemas" Type="JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin">
  <RecID>c6f2289a-e5af-4621-af5f-65fb93c7aaa8</RecID>
  <Name>Sales Order Process - Change Ledger</Name>
  <Description>Changes some of the the sales order accounts used when processing a sales order.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Specifically, the sales account and the inventory movement accounts are changed to fixed values based on debtor classification.</Description>
  <IsEnabled>true</IsEnabled>
  <IsIsolatedToOwnAppDomain>false</IsIsolatedToOwnAppDomain>
  <ExecutionOrder>0</ExecutionOrder>
  <Author>Jiwa Financials</Author>
  <Version>7.2.1.0</Version>
  <Code>using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using JiwaFinancials.Jiwa;
using System.Windows.Forms;

#region "BusinessLogicPlugin"
public class BusinessLogicPlugin : System.MarshalByRefObject, JiwaFinancials.Jiwa.JiwaApplication.IJiwaBusinessLogicPlugin
{

    public override object InitializeLifetimeService()
    {
        // returning null here will prevent the lease manager
        // from deleting the Object.
        return null;
    }

    public void Setup(JiwaFinancials.Jiwa.JiwaApplication.IJiwaBusinessLogic JiwaBusinessLogic, JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin Plugin)
    {
		if (JiwaBusinessLogic is JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder)
		{
			JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder salesOrder = (JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder)JiwaBusinessLogic;
			salesOrder.Process_JournalSetsLineAddBefore += Process_JournalSetsLineAddBefore;
		}
    }
	
	private void Process_JournalSetsLineAddBefore(JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes ProcessJournalLineType, JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder SalesOrder, ref JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrderLine SalesOrderLine, ref JiwaFinancials.Jiwa.JiwaJournalSets.JournalSet JournalSet, ref JiwaFinancials.Jiwa.JiwaJournalSets.Line JournalSetLine)
	{		
		// SalesOrderLine AND InventorySales
		if ((ProcessJournalLineType &amp; 
			JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes.SalesOrderLine &amp; 
			JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes.InventorySales) == (JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes.SalesOrderLine &amp; 
			JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes.InventorySales))			
		{
			/*if (SalesOrderLine.ClassificationDescription.ToUpper() == "RTD")
			{
				JournalSetLine.GLAccount.ReadRecordFromAccountNo("100060-15");
			}
			else
			{
				if (SalesOrder.Debtor.Classification.Description.ToUpper() == "FOODSERVICE")
				{
					JournalSetLine.GLAccount.ReadRecordFromAccountNo("100035-30");
				}
				else if (SalesOrder.Debtor.Classification.Description.ToUpper() == "ONLINE")
				{
					JournalSetLine.GLAccount.ReadRecordFromAccountNo("100050-00");
				}
				else if (SalesOrder.Debtor.Classification.Description.ToUpper() == "DIRECT")
				{
					JournalSetLine.GLAccount.ReadRecordFromAccountNo("100030-00");
				}
			}*/
			
			JiwaFinancials.Jiwa.JiwaInventory.Inventory Inventory = JiwaFinancials.Jiwa.JiwaApplication.Manager.Instance.BusinessLogicFactory.CreateBusinessLogic&lt;JiwaFinancials.Jiwa.JiwaInventory.Inventory&gt;(null);
			
			if (ProcessJournalLineType.ToString() == "65") // COGS
			{
				Inventory.Read(SalesOrderLine.InventoryID);
				
				if(Inventory.Classification.Description.ToUpper() == "RTD")
				{															
					JournalSetLine.GLAccount.ReadRecordFromAccountNo("220126-15");	
				}
				else
				{
					if(SalesOrder.Debtor.Classification.Description.ToUpper() == "FOODSERVICE")
					{
						JournalSetLine.GLAccount.ReadRecordFromAccountNo("220130-30");	
					}
					else if(SalesOrder.Debtor.Classification.Description.ToUpper() == "ONLINE")
					{
						JournalSetLine.GLAccount.ReadRecordFromAccountNo("220200-00");	
					}
					else if(SalesOrder.Debtor.Classification.Description.ToUpper() == "DIRECT")
					{
						JournalSetLine.GLAccount.ReadRecordFromAccountNo("220200-00");	
					}	
				}
			}
			else if (ProcessJournalLineType.ToString() == "106385") // Sales
			{
				Inventory.Read(SalesOrderLine.InventoryID);
				
				if(Inventory.Classification.Description.ToUpper() == "RTD")
				{															
					JournalSetLine.GLAccount.ReadRecordFromAccountNo("100060-15");	
				}
				else
				{
					if(SalesOrder.Debtor.Classification.Description.ToUpper() == "FOODSERVICE")
					{
						JournalSetLine.GLAccount.ReadRecordFromAccountNo("100035-30");	
					}
					else if(SalesOrder.Debtor.Classification.Description.ToUpper() == "ONLINE")
					{
						JournalSetLine.GLAccount.ReadRecordFromAccountNo("100050-00");	
					}
					else if(SalesOrder.Debtor.Classification.Description.ToUpper() == "DIRECT")
					{
						JournalSetLine.GLAccount.ReadRecordFromAccountNo("100030-00");	
					}	
				}
			}
			else if (ProcessJournalLineType.ToString() == "Cartage") // Freight
			{
				JournalSetLine.GLAccount.ReadRecordFromAccountNo("100070-00");					
			}
		}
		// SalesOrderLine AND InventoryMovement
		else if ((ProcessJournalLineType &amp; 
			JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes.SalesOrderLine &amp; 
			JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes.InventoryMovement) == (JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes.SalesOrderLine &amp; 
			JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder.ProcessJournalLineTypes.InventoryMovement))			
		{
			/*if (SalesOrderLine.ClassificationDescription.ToUpper() == "RTD")
			{
				JournalSetLine.GLAccount.ReadRecordFromAccountNo("100060-15");
			}
			else
			{
				if (SalesOrder.Debtor.Classification.Description.ToUpper() == "FOODSERVICE")
				{
					JournalSetLine.GLAccount.ReadRecordFromAccountNo("220130-30");
				}
				else if (SalesOrder.Debtor.Classification.Description.ToUpper() == "ONLINE")
				{
					JournalSetLine.GLAccount.ReadRecordFromAccountNo("220200-00");
				}
				else if (SalesOrder.Debtor.Classification.Description.ToUpper() == "DIRECT")
				{
					JournalSetLine.GLAccount.ReadRecordFromAccountNo("220200-15");
				}
			}*/
		}
		
	}
}
#endregion
</Code>
  <ExceptionPolicy>Report</ExceptionPolicy>
  <Language>CSharp</Language>
  <BusinessLogicCollection>
    <BusinessLogic>
      <RecID>83706e8d-a078-44a1-966b-a57efee05c05</RecID>
      <Description>Sales Order Entry</Description>
      <ClassName>JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder</ClassName>
      <Assembly>JiwaSales, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</Assembly>
    </BusinessLogic>
    <BusinessLogic>
      <RecID>0d79024f-f077-4d6f-b939-2455a6aacc70</RecID>
      <Description>Inventory Maintenance</Description>
      <ClassName>JiwaFinancials.Jiwa.JiwaInventory.Inventory</ClassName>
      <Assembly>JiwaInventory, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</Assembly>
    </BusinessLogic>
  </BusinessLogicCollection>
  <ReferenceCollection>
    <Reference>
      <RecID>1d8dcbf4-51c6-4049-aed0-4b3ab71d8081</RecID>
      <AssemblyFullName>JiwaApplication, Version=7.2.1.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>403d53ea-ed48-44bd-8e2b-ca687a3b1f6b</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>62fec387-5414-4d21-a9ee-cf7b9ee7ecbb</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>7f7e9dec-3d99-47d6-b797-cb8e634844e4</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>4e7d8772-4979-4d8a-aec8-0a74b9f84829</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>866bfb7a-b99f-4992-b360-559ea521b36b</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>9429ddb9-b234-4f09-b8e8-4ec5e8075d71</RecID>
      <AssemblyFullName>JiwaSales, Version=7.2.1.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>075c1de8-8895-42c3-b3fd-880e860dea5a</RecID>
      <AssemblyFullName>JiwaJournalSets, Version=7.2.1.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>42ad67a5-a062-46da-a2ba-6baa2cd41831</RecID>
      <AssemblyFullName>JiwaPriceSchemes, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaPriceSchemes.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaPriceSchemes.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>f3c49bbc-a503-4607-afdb-65a8ed677e66</RecID>
      <AssemblyFullName>JiwaCashBook, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaCashBook.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaCashBook.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>5ea2e21a-926b-458e-bcbe-91acb0d2618d</RecID>
      <AssemblyFullName>JiwaInventory, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaInventory.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaInventory.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>f43d131e-5b22-4742-b220-6330b501a701</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>3aa309dc-e24d-4b0f-9fcc-2b43d7334eeb</RecID>
      <AssemblyFullName>JiwaServiceModel, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaServiceModel.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaServiceModel.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>da094dde-f7a1-499b-9f62-9bb9f47f3ff3</RecID>
      <AssemblyFullName>JiwaODBC, Version=7.2.1.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>8a722590-fbd9-43bf-bdc0-704dc24a943c</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>1bae2076-3f49-4e8e-90f4-d6ae2744ccdd</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>78885fe0-cb68-48d5-a980-a7b059f6cfe0</RecID>
      <AssemblyFullName>LumenWorks.Framework.IO, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>LumenWorks.Framework.IO.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\LumenWorks.Framework.IO.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>bf4b864b-c01d-44ff-bc7a-233873a3bbce</RecID>
      <AssemblyFullName>JiwaLib, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaLib.dll</AssemblyName>
      <AssemblyLocation>C:\Program Files (x86)\Jiwa Financials\Jiwa 7\JiwaLib.dll</AssemblyLocation>
    </Reference>
  </ReferenceCollection>
</JiwaDocument>