//Membuat jurnal positif di inventory journal private void SetReceiveInventoryJournal(Session _currSession, InventoryTransfer _inventoryTransfer) { try { XPCollection <InventoryTransferLine> _locInvTransLines = new XPCollection <InventoryTransferLine>(_currSession, new BinaryOperator("InventoryTransfer", _inventoryTransfer)); if (_locInvTransLines != null && _locInvTransLines.Count > 0) { double _locInvLineTotal = 0; DateTime now = DateTime.Now; foreach (InventoryTransferLine _locInvTransLine in _locInvTransLines) { if (_locInvTransLine.Status == Status.Progress || _locInvTransLine.Status == Status.Posted) { if (_locInvTransLine.DQty > 0 || _locInvTransLine.Qty > 0) { ItemUnitOfMeasure _locItemUOM = _currSession.FindObject <ItemUnitOfMeasure> (new GroupOperator(GroupOperatorType.And, new BinaryOperator("Item", _locInvTransLine.Item), new BinaryOperator("UOM", _locInvTransLine.UOM), new BinaryOperator("DefaultUOM", _locInvTransLine.DUOM), new BinaryOperator("Active", true))); if (_locItemUOM != null) { if (_locItemUOM.Conversion < _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty * _locItemUOM.DefaultConversion + _locInvTransLine.DQty; } else if (_locItemUOM.Conversion > _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty / _locItemUOM.Conversion + _locInvTransLine.DQty; } else if (_locItemUOM.Conversion == _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty + _locInvTransLine.DQty; } InventoryJournal _locPositifInventoryJournal = new InventoryJournal(_currSession) { DocumentType = _inventoryTransfer.DocumentType, DocNo = _inventoryTransfer.DocNo, Location = _locInvTransLine.Location, BinLocation = _locInvTransLine.BinLocation, Item = _locInvTransLine.Item, QtyNeg = 0, QtyPos = _locInvLineTotal, JournalDate = now, ProjectHeader = _inventoryTransfer.ProjectHeader }; _locPositifInventoryJournal.Save(); _locPositifInventoryJournal.Session.CommitTransaction(); } else { _locInvLineTotal = _locInvTransLine.Qty + _locInvTransLine.DQty; InventoryJournal _locPositifInventoryJournal = new InventoryJournal(_currSession) { DocumentType = _inventoryTransfer.DocumentType, DocNo = _inventoryTransfer.DocNo, Location = _locInvTransLine.Location, BinLocation = _locInvTransLine.BinLocation, Item = _locInvTransLine.Item, QtyNeg = 0, QtyPos = _locInvLineTotal, JournalDate = now, ProjectHeader = _inventoryTransfer.ProjectHeader }; _locPositifInventoryJournal.Save(); _locPositifInventoryJournal.Session.CommitTransaction(); } } } } } } catch (Exception ex) { Tracing.Tracer.LogError("Business Object = InventoryTransfer ", ex.ToString()); } }
//Menentukan sisa dari transaksi receive private void SetRemainReceivedQty(Session _currSession, InventoryTransfer _inventoryTransfer) { try { if (_inventoryTransfer != null) { XPCollection <InventoryTransferLine> _locInventoryTransferLines = new XPCollection <InventoryTransferLine>(_currSession, new GroupOperator(GroupOperatorType.And, new BinaryOperator("InventoryTransfer", _inventoryTransfer))); if (_locInventoryTransferLines != null && _locInventoryTransferLines.Count > 0) { double _locRmDQty = 0; double _locRmQty = 0; double _locInvLineTotal = 0; foreach (InventoryTransferLine _locInventoryTransferLine in _locInventoryTransferLines) { if (_locInventoryTransferLine.ProcessCount == 0) { if (_locInventoryTransferLine.MxDQty > 0) { if (_locInventoryTransferLine.DQty > 0) { _locRmDQty = _locInventoryTransferLine.MxDQty - _locInventoryTransferLine.DQty; } if (_locInventoryTransferLine.Qty > 0) { _locRmQty = _locInventoryTransferLine.MxQty - _locInventoryTransferLine.Qty; } ItemUnitOfMeasure _locItemUOM = _currSession.FindObject <ItemUnitOfMeasure> (new GroupOperator(GroupOperatorType.And, new BinaryOperator("Item", _locInventoryTransferLine.Item), new BinaryOperator("UOM", _locInventoryTransferLine.MxUOM), new BinaryOperator("DefaultUOM", _locInventoryTransferLine.MxDUOM), new BinaryOperator("Active", true))); if (_locItemUOM != null) { if (_locItemUOM.Conversion < _locItemUOM.DefaultConversion) { _locInvLineTotal = _locRmQty * _locItemUOM.DefaultConversion + _locRmDQty; } else if (_locItemUOM.Conversion > _locItemUOM.DefaultConversion) { _locInvLineTotal = _locRmQty / _locItemUOM.Conversion + _locRmDQty; } else if (_locItemUOM.Conversion == _locItemUOM.DefaultConversion) { _locInvLineTotal = _locRmQty + _locRmDQty; } } else { _locInvLineTotal = _locRmQty + _locRmDQty; } } } if (_locInventoryTransferLine.ProcessCount > 0) { if (_locInventoryTransferLine.RmDQty > 0) { _locRmDQty = _locInventoryTransferLine.RmDQty - _locInventoryTransferLine.DQty; } if (_locInventoryTransferLine.RmQty > 0) { _locRmQty = _locInventoryTransferLine.RmQty - _locInventoryTransferLine.Qty; } ItemUnitOfMeasure _locItemUOM = _currSession.FindObject <ItemUnitOfMeasure> (new GroupOperator(GroupOperatorType.And, new BinaryOperator("Item", _locInventoryTransferLine.Item), new BinaryOperator("UOM", _locInventoryTransferLine.MxUOM), new BinaryOperator("DefaultUOM", _locInventoryTransferLine.MxDUOM), new BinaryOperator("Active", true))); if (_locItemUOM != null) { if (_locItemUOM.Conversion < _locItemUOM.DefaultConversion) { _locInvLineTotal = _locRmQty * _locItemUOM.DefaultConversion + _locRmDQty; } else if (_locItemUOM.Conversion > _locItemUOM.DefaultConversion) { _locInvLineTotal = _locRmQty / _locItemUOM.Conversion + _locRmDQty; } else if (_locItemUOM.Conversion == _locItemUOM.DefaultConversion) { _locInvLineTotal = _locRmQty + _locRmDQty; } } else { _locInvLineTotal = _locRmQty + _locRmDQty; } } _locInventoryTransferLine.RmDQty = _locRmDQty; _locInventoryTransferLine.RmQty = _locRmQty; _locInventoryTransferLine.RmTQty = _locInvLineTotal; _locInventoryTransferLine.Save(); _locInventoryTransferLine.Session.CommitTransaction(); } } } } catch (Exception ex) { Tracing.Tracer.LogError(" BusinessObject = InventoryTransfer " + ex.ToString()); } }
//Menambahkan Qty Available ke Begining Inventory private void SetReceiveBeginingInventory(Session _currSession, InventoryTransfer _inventoryTransfer) { try { XPCollection <InventoryTransferLine> _locInvTransLines = new XPCollection <InventoryTransferLine>(_currSession, new BinaryOperator("InventoryTransfer", _inventoryTransfer)); if (_locInvTransLines != null && _locInvTransLines.Count > 0) { double _locInvLineTotal = 0; XPCollection <BeginingInventoryLine> _locBegInventoryLines = null; string _fullString = null; string _locItemParse = null; string _locLocationParse = null; string _locBinLocationParse = null; string _locDUOMParse = null; string _locStockTypeParse = null; string _locActiveParse = null; foreach (InventoryTransferLine _locInvTransLine in _locInvTransLines) { if (_locInvTransLine.Status == Status.Progress || _locInvTransLine.Status == Status.Posted) { if (_locInvTransLine.DQty > 0 || _locInvTransLine.Qty > 0) { ItemUnitOfMeasure _locItemUOM = _currSession.FindObject <ItemUnitOfMeasure> (new GroupOperator(GroupOperatorType.And, new BinaryOperator("Item", _locInvTransLine.Item), new BinaryOperator("UOM", _locInvTransLine.UOM), new BinaryOperator("DefaultUOM", _locInvTransLine.DUOM), new BinaryOperator("Active", true))); BeginingInventory _locBeginingInventory = _currSession.FindObject <BeginingInventory>(new GroupOperator(GroupOperatorType.And, new BinaryOperator("Item", _locInvTransLine.Item))); if (_locBeginingInventory != null) { if (_locInvTransLine.Item != null) { _locItemParse = "[Item.Code]=='" + _locInvTransLine.Item.Code + "'"; } else { _locItemParse = ""; } if (_locInvTransLine.Location != null && (_locInvTransLine.Item != null)) { _locLocationParse = "AND [Location.Code]=='" + _locInvTransLine.Location.Code + "'"; } else if (_locInvTransLine.Location != null && _locInvTransLine.Item == null) { _locLocationParse = " [Location.Code]=='" + _locInvTransLine.Location.Code + "'"; } else { _locLocationParse = ""; } if (_locInvTransLine.BinLocation != null && (_locInvTransLine.Item != null || _locInvTransLine.Location != null)) { _locBinLocationParse = "AND [BinLocation.Code]=='" + _locInvTransLine.BinLocation.Code + "'"; } else if (_locInvTransLine.BinLocation != null && _locInvTransLine.Item == null && _locInvTransLine.Location == null) { _locBinLocationParse = " [BinLocation.Code]=='" + _locInvTransLine.BinLocation.Code + "'"; } else { _locBinLocationParse = ""; } if (_locInvTransLine.DUOM != null && (_locInvTransLine.Item != null || _locInvTransLine.Location != null || _locInvTransLine.BinLocation != null)) { _locDUOMParse = "AND [DUOM.Code]=='" + _locInvTransLine.DUOM.Code + "'"; } else if (_locInvTransLine.DUOM != null && _locInvTransLine.Item == null && _locInvTransLine.Location == null && _locInvTransLine.BinLocation == null) { _locDUOMParse = " [DUOM.Code]=='" + _locInvTransLine.DUOM.Code + "'"; } else { _locDUOMParse = ""; } if (_locInvTransLine.StockType != StockType.None && (_locInvTransLine.Item != null || _locInvTransLine.Location != null || _locInvTransLine.BinLocation != null || _locInvTransLine.DUOM != null)) { _locStockTypeParse = "AND [StockType]=='" + GetStockType(_locInvTransLine.StockType).ToString() + "'"; } else if (_locInvTransLine.StockType != StockType.None && _locInvTransLine.Item == null && _locInvTransLine.Location == null && _locInvTransLine.BinLocation == null && _locInvTransLine.DUOM == null) { _locStockTypeParse = " [StockType]=='" + GetStockType(_locInvTransLine.StockType).ToString() + "'"; } else { _locStockTypeParse = ""; } if (_locInvTransLine.Item == null && _locInvTransLine.Location == null && _locInvTransLine.BinLocation == null && _locInvTransLine.DUOM == null && _locInvTransLine.StockType != StockType.None) { _locActiveParse = " [Active]=='" + GetActive(true).ToString() + "'"; } else { _locActiveParse = "AND [Active]=='" + GetActive(true).ToString() + "'"; } if (_locItemParse != null || _locLocationParse != null || _locBinLocationParse != null || _locDUOMParse != null || _locStockTypeParse != null) { _fullString = _locItemParse + _locLocationParse + _locBinLocationParse + _locDUOMParse + _locStockTypeParse + _locActiveParse; } else { _fullString = _locActiveParse; } _locBegInventoryLines = new XPCollection <BeginingInventoryLine>(_currSession, CriteriaOperator.Parse(_fullString)); if (_locBegInventoryLines != null && _locBegInventoryLines.Count > 0) { foreach (BeginingInventoryLine _locBegInventoryLine in _locBegInventoryLines) { if (_locItemUOM != null) { if (_locItemUOM.Conversion < _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty * _locItemUOM.DefaultConversion + _locInvTransLine.DQty; } else if (_locItemUOM.Conversion > _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty / _locItemUOM.Conversion + _locInvTransLine.DQty; } else if (_locItemUOM.Conversion == _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty + _locInvTransLine.DQty; } } else { _locInvLineTotal = _locInvTransLine.Qty + _locInvTransLine.DQty; } _locBegInventoryLine.QtyAvailable = _locBegInventoryLine.QtyAvailable + _locInvLineTotal; _locBegInventoryLine.Save(); _locBegInventoryLine.Session.CommitTransaction(); } } else { if (_locItemUOM != null) { if (_locItemUOM.Conversion < _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty * _locItemUOM.DefaultConversion + _locInvTransLine.DQty; } else if (_locItemUOM.Conversion > _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty / _locItemUOM.Conversion + _locInvTransLine.DQty; } else if (_locItemUOM.Conversion == _locItemUOM.DefaultConversion) { _locInvLineTotal = _locInvTransLine.Qty + _locInvTransLine.DQty; } } else { _locInvLineTotal = _locInvTransLine.Qty + _locInvTransLine.DQty; } BeginingInventoryLine _locSaveDataBeginingInventory = new BeginingInventoryLine(_currSession) { Item = _locInvTransLine.Item, Location = _locInvTransLine.Location, BinLocation = _locInvTransLine.BinLocation, QtyAvailable = _locInvLineTotal, DefaultUOM = _locInvTransLine.DUOM }; _locSaveDataBeginingInventory.Save(); _locSaveDataBeginingInventory.Session.CommitTransaction(); } } } } } } } catch (Exception ex) { Tracing.Tracer.LogError("Business Object = InventoryTransfer ", ex.ToString()); } }