public void DeleteInventoryPlanningJournal(Session session, Guid journalId) { try { InventoryJournal journal = session.GetObjectByKey <InventoryJournal>(journalId); CriteriaOperator criteria_0 = new BinaryOperator("RowStatus", Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual); CriteriaOperator criteria_1 = new BinaryOperator("Debit", journal.Credit, BinaryOperatorType.Equal); CriteriaOperator criteria_2 = new BinaryOperator("InventoryTransactionId", journal.InventoryTransactionId, BinaryOperatorType.Equal); CriteriaOperator criteria_3 = new BinaryOperator("ItemUnitId", journal.ItemUnitId, BinaryOperatorType.Equal); CriteriaOperator criteria_4 = new BinaryOperator("LotId", journal.LotId, BinaryOperatorType.Equal); CriteriaOperator criteria_5 = new BinaryOperator("InventoryId", journal.InventoryId, BinaryOperatorType.Equal); CriteriaOperator criteria_6 = new BinaryOperator("JournalType", journal.JournalType, BinaryOperatorType.Equal); CriteriaOperator criteria = new GroupOperator(GroupOperatorType.And, criteria_0, criteria_1, criteria_2, criteria_3, criteria_4, criteria_5, criteria_6); InventoryJournal DebitJournal = session.FindObject <InventoryJournal>(criteria); journal.RowStatus = Constant.ROWSTATUS_DELETED; journal.Save(); if (DebitJournal != null) { DebitJournal.RowStatus = Constant.ROWSTATUS_DELETED; DebitJournal.Save(); } } catch (Exception) { throw; } }
public Guid CreateInventoryPlanningJournal(Session session, Guid transactionId, Guid itemUnitId, double amount, Guid lotId, Guid inventoryId, string description) { Guid result = Guid.Empty; try { InventoryTransaction transaction = session.GetObjectByKey <InventoryTransaction>(transactionId); ItemUnit itemUnit = session.GetObjectByKey <ItemUnit>(itemUnitId); Lot lot = session.GetObjectByKey <Lot>(lotId); NAS.DAL.Nomenclature.Inventory.Inventory inventory = session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(inventoryId); CriteriaOperator filter = new BinaryOperator("Code", DefaultAccountEnum.OWNER_INVENTORY, BinaryOperatorType.Equal); Account account = session.FindObject <Account>(filter); InventoryJournal creditJournal = new InventoryJournal(session); creditJournal.JournalType = Constant.PLANNING_JOURNAL; creditJournal.InventoryTransactionId = transaction; creditJournal.AccountId = account; creditJournal.ItemUnitId = itemUnit; creditJournal.LotId = lot; creditJournal.InventoryId = inventory; creditJournal.CreateDate = DateTime.Now; creditJournal.Credit = amount; creditJournal.Description = description; creditJournal.RowStatus = Constant.ROWSTATUS_ACTIVE; creditJournal.Save(); InventoryJournal debitJournal = new InventoryJournal(session); debitJournal.JournalType = Constant.PLANNING_JOURNAL; debitJournal.InventoryTransactionId = transaction; debitJournal.AccountId = account; debitJournal.ItemUnitId = itemUnit; debitJournal.LotId = lot; debitJournal.InventoryId = inventory; debitJournal.CreateDate = DateTime.Now; debitJournal.Debit = amount; debitJournal.Description = description; debitJournal.RowStatus = Constant.ROWSTATUS_ACTIVE; debitJournal.Save(); } catch (Exception) { throw; } return(result); }
public void UpdateInventoryPlanningJournal(Session session, Guid journalId, Guid itemUnitId, double amount, Guid lotId, Guid inventoryId, string description) { try { InventoryJournal journal = session.GetObjectByKey <InventoryJournal>(journalId); CriteriaOperator criteria_0 = new BinaryOperator("RowStatus", Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual); CriteriaOperator criteria_1 = new BinaryOperator("Debit", amount, BinaryOperatorType.Equal); CriteriaOperator criteria_2 = new BinaryOperator("InventoryTransactionId", journal.InventoryTransactionId, BinaryOperatorType.Equal); CriteriaOperator criteria_3 = new BinaryOperator("ItemUnitId", journal.ItemUnitId, BinaryOperatorType.Equal); CriteriaOperator criteria_4 = new BinaryOperator("LotId", journal.LotId, BinaryOperatorType.Equal); CriteriaOperator criteria_5 = new BinaryOperator("InventoryId", journal.InventoryId, BinaryOperatorType.Equal); CriteriaOperator criteria_6 = new BinaryOperator("JournalType", journal.JournalType, BinaryOperatorType.Equal); CriteriaOperator criteria = new GroupOperator(GroupOperatorType.And, criteria_0, criteria_1, criteria_2, criteria_3, criteria_4, criteria_5, criteria_6); InventoryJournal DebitJournal = session.FindObject <InventoryJournal>(criteria); journal.JournalType = Constant.PLANNING_JOURNAL; journal.InventoryId = session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(inventoryId); journal.Credit = amount; journal.ItemUnitId = session.GetObjectByKey <ItemUnit>(itemUnitId); journal.LotId = session.GetObjectByKey <Lot>(lotId); journal.Debit = 0; journal.Description = description; journal.Save(); DebitJournal.JournalType = Constant.PLANNING_JOURNAL; DebitJournal.InventoryId = session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(inventoryId); DebitJournal.Credit = 0; DebitJournal.ItemUnitId = session.GetObjectByKey <ItemUnit>(itemUnitId); DebitJournal.LotId = session.GetObjectByKey <Lot>(lotId); DebitJournal.Debit = amount; DebitJournal.Description = description; DebitJournal.Save(); } catch (Exception) { throw; } }
//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()); } }