Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
        //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());
            }
        }