idea is to copy the Carier details and the Freight Items details from the previous snapshot when a new snapshot is created in sales order.
I am testing catching the salesOrder.CreatedNewSnapshot event in the Inventory - Back Order - Manual Back order Release
however my code does not quite work.
Hope someone can spot the problem or give me a tip.
code below
plugin is attached. ( Plugin att_test_catchSnapshot (COPY).xml)
- Code: Select all
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.BackorderProcessStart += SalesOrder_BackorderProcessStart;
salesOrder.CreatedNewSnapshot += SalesOrder_CreatedNewSnapshot;
}
}
private void SalesOrder_CreatedNewSnapshot(object sender, System.EventArgs e)
{
System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();
JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder salesOrder = (JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder)sender;
JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrderHistory SalesOrderH = salesOrder.SalesOrderHistorys[salesOrder.CurrentHistoryNo];
MessageBox.Show("SalesOrder_CreatedNewSnapshot bo - att_test_catchSnapshot");
MySalesOrderClass oMySalesOrderClass = new MySalesOrderClass();
oMySalesOrderClass.SetFreghtDetailsInItemTab(ref salesOrder , ref SalesOrderH );
}
- Code: Select all
public class MySalesOrderClass
{
public void SetFreghtDetailsInItemTab(ref JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrder salesOrder , ref JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrderHistory SalesOrderH)
{
if ( SalesOrderH.HistoryNo > 1 )
{
//-- then there is a previous snapshot
JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrderHistory SalesOrderHPrevious = salesOrder.SalesOrderHistorys[SalesOrderH.HistoryNo - 1];
bool bCarierRecExists = false;
//---Carier
if ( ! SalesOrderH.Carrier.CarrierRecordExists )
{
// this line and probably together with the line folloing it seems to break jiwa into delivering all and not creating a new snapshot???
// salesOrder.Read(salesOrder.RecID);
// SalesOrderH = salesOrder.SalesOrderHistorys[salesOrder.CurrentHistoryNo];
SalesOrderH.Carrier = SalesOrderHPrevious.Carrier;
bCarierRecExists = true;
}
else
{
bCarierRecExists = true;
}
//--- Freight Items this block belo errors so its commented
// JiwaFinancials.Jiwa.JiwaSales.SalesOrder.FreightItemCollection oFreightItemCollectionPrevious = null;
// JiwaFinancials.Jiwa.JiwaSales.SalesOrder.FreightItemCollection oFreightItemCollectionCurr = null;
// oFreightItemCollectionPrevious = SalesOrderHPrevious.Carrier.FreightItemCollection;
// oFreightItemCollectionCurr = SalesOrderH.Carrier.FreightItemCollection;
// foreach( JiwaFinancials.Jiwa.JiwaSales.SalesOrder.FreightItem oPrevFrtItem in oFreightItemCollectionPrevious)
// {
// if ( !( oFreightItemCollectionCurr == null ))
// {
// foreach( JiwaFinancials.Jiwa.JiwaSales.SalesOrder.FreightItem oCurrFrtItem in oFreightItemCollectionCurr)
// {
// oFreightItemCollectionCurr.Add(oPrevFrtItem);
// }
// }
// }
SalesOrderH.Save();
salesOrder.Save();
}
return;
}
}