Exemplo n.º 1
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());
            }
        }
Exemplo n.º 2
0
        //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());
            }
        }
Exemplo n.º 3
0
        //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());
            }
        }