﻿<?xml version="1.0" encoding="utf-16"?>
<JiwaDocument xmlns:jiwa="http://www.jiwa.com.au/xml/schemas" Type="JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin">
  <RecID>9adf9666-66d0-4db6-aa97-bb03139069a5</RecID>
  <Name>New Snapshot Copy Fields</Name>
  <Description>When a new snapshot is created, the following is copied from the previous snapshot to the new snaphsot:&amp;#13;&amp;#10;&amp;#13;&amp;#10;1. Freight Items from the Freight tab&amp;#13;&amp;#10;2. Courier Details from the Delivery tab</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 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.CreatedNewSnapshot += SalesOrder_CreatedNewSnapshot;	
		}
    }
	
	private void SalesOrder_CreatedNewSnapshot(object sender, System.EventArgs e)
	{
		JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder salesOrder = (JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder)sender;
		JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrderHistory previousHistory = salesOrder.SalesOrderHistorys[salesOrder.CurrentHistoryNo - 1];
		JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrderHistory currentHistory = salesOrder.SalesOrderHistorys[salesOrder.CurrentHistoryNo];
		
		currentHistory.CourierDetails = previousHistory.CourierDetails;
		currentHistory.Carrier.ReadRecord(previousHistory.Carrier.RecID);
		foreach(JiwaFinancials.Jiwa.JiwaSales.SalesOrder.FreightItem previousFreightItem in previousHistory.Carrier.FreightItemCollection)
		{
			JiwaFinancials.Jiwa.JiwaSales.SalesOrder.FreightItem newFreightItem = salesOrder.Manager.CollectionItemFactory.CreateCollectionItem&lt;JiwaFinancials.Jiwa.JiwaSales.SalesOrder.FreightItem&gt;();
			
			newFreightItem.FreightDescription = currentHistory.Carrier.FreightDescriptionCollection[previousFreightItem.FreightDescription.RecID];
			newFreightItem.NumberItems = previousFreightItem.NumberItems;			
			newFreightItem.ItemLength = previousFreightItem.ItemLength;
			newFreightItem.ItemHeight = previousFreightItem.ItemHeight;
			newFreightItem.ItemWidth = previousFreightItem.ItemWidth;
			newFreightItem.ItemWeight = previousFreightItem.ItemWeight;
			newFreightItem.ItemCubic = previousFreightItem.ItemCubic;
			
			currentHistory.Carrier.FreightItemCollection.Add(newFreightItem);
		}
	}
}
#endregion
</Code>
  <ExceptionPolicy>Abort</ExceptionPolicy>
  <Language>CSharp</Language>
  <BusinessLogicCollection>
    <BusinessLogic>
      <RecID>1cd8cd96-d8ec-4342-ad25-9a6c529c4636</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>ada58fdd-a040-4077-a0aa-968462fc2c72</RecID>
      <AssemblyFullName>JiwaApplication, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaApplication.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\JiwaApplication.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>50b7f3b6-5743-4135-a534-5e3222781dba</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>1635f340-aca1-4d67-9ad9-6679038dcb28</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>30c8a1b3-9e8e-44b8-ba7e-2550a0e0c638</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>d121c121-24bd-4a59-8f7c-7ef705be5346</RecID>
      <AssemblyFullName>JiwaEncryption, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaEncryption.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\JiwaEncryption.dll</AssemblyLocation>
    </Reference>
    <Reference>
      <RecID>02d76fff-ba50-477f-ac11-2098764144ee</RecID>
      <AssemblyFullName>JiwaSales, Version=7.2.1.0, Culture=neutral, PublicKeyToken=e30ce81e37f29c8c</AssemblyFullName>
      <AssemblyName>JiwaSales.dll</AssemblyName>
      <AssemblyLocation>C:\VSTS\Jiwa 7\07.02.00\Built Files\JiwaSales.dll</AssemblyLocation>
    </Reference>
  </ReferenceCollection>
</JiwaDocument>