﻿<?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;

#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");
				}
			}
		}
		// 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>Abort</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>
  </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>E:\VSTS\Jiwa 7\MikesV7JiwaBranch\Built Files\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>E:\VSTS\Jiwa 7\MikesV7JiwaBranch\Built Files\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>E:\VSTS\Jiwa 7\MikesV7JiwaBranch\Built Files\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>E:\VSTS\Jiwa 7\MikesV7JiwaBranch\Built Files\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>E:\VSTS\Jiwa 7\MikesV7JiwaBranch\Built Files\JiwaCashBook.dll</AssemblyLocation>
    </Reference>
  </ReferenceCollection>
</JiwaDocument>