コード例 #1
0
        public Ledger PostToLedger(TempLedger ledger)
        {
            Ledger LedgerLite = GetLedger(ledger.ItemID, ledger.UnitID, ledger.ManufacturerID, ledger.AccountID);

            LedgerLite.UnitCost     = ledger.UnitCost;
            LedgerLite.Margin       = ledger.Margin;
            LedgerLite.SellingPrice = ledger.SellingPrice;
            ledger.IsConfirmed      = true;
            repository.Ledgers.Update(ledger);
            return(LedgerLite);
        }
コード例 #2
0
        public TempLedger PostToTempLedger(int ItemID, int UnitID, int ManufacturerID, int AccountID, decimal UnitCost, decimal Margin, decimal SellingPrice, ChangeType changeType)
        {
            TempLedger Ledger = GetTempLedger(ItemID, UnitID, ManufacturerID, AccountID);

            Ledger.UnitCost     = UnitCost;
            Ledger.Margin       = Margin;
            Ledger.SellingPrice = SellingPrice;
            Ledger.ChangeType   = changeType.Id;
            Ledger.IsConfirmed  = false;
            return(Ledger);
        }
コード例 #3
0
 internal static bool ValidateLedger(TempLedger ledger, decimal UnitCost, decimal Margin, decimal SellingPrice)
 {
     if (ledger.UnitCost != UnitCost)
     {
         throw new Exception("The Average Cost you are Confirming is Different from the one that has been set,this usually happens when Quantity has changed since the moving Average has been Calculated,please return and recalculate moving average");
     }
     else if (ledger.Margin != Margin)
     {
         throw new Exception("The Margin you are Confirming is Different");
     }
     else if (ledger.SellingPrice != SellingPrice)
     {
         throw new Exception("The SellingPrice you are Confirming is Different");
     }
     return(true);
 }
コード例 #4
0
        public TempLedger GetTempLedger(int ItemID, int UnitID, int ManufacturerID, int MovingAverageGroupID)
        {
            IEnumerable <TempLedger> ledgers = repository.Ledgers.Find(l => l.ItemID == ItemID && l.UnitID == UnitID && l.ManufacturerID == ManufacturerID && l.AccountID == MovingAverageGroupID);
            TempLedger ledger = ledgers.FirstOrDefault();

            if (ledger == null)
            {
                ledger = new TempLedger()
                {
                    ItemID = ItemID, UnitID = UnitID, ManufacturerID = ManufacturerID, AccountID = MovingAverageGroupID
                };
                repository.Ledgers.Insert(ledger);
                //Ledger = repository.LedgerLites.Single(l => l.ItemID == ItemID && l.UnitID == UnitID && l.ManufacturerID == ManufacturerID && l.AccountID == AccountID);
            }
            return(ledger);
        }
コード例 #5
0
        public void Confirm(string identifier, int itemId, int unitId, int manufacturerId, int accountId, decimal unitCost, decimal margin, decimal sellingPrice, int userId, ChangeType changeType)
        {
            TempLedger ledger = LedgerService.GetTempLedger(itemId, unitId, manufacturerId, accountId);

            if (ValidationService.ValidateLedger(ledger, unitCost, margin, sellingPrice))
            {
                JournalEntry = new HCMIS.Concrete.Models.JournalLite()
                {
                    Identifier   = identifier,
                    Description  = changeType.Description,
                    Margin       = margin,
                    UnitCost     = unitCost,
                    SellingPrice = sellingPrice,
                    UserID       = userId,
                    Ledger       = ledger
                };
                repository.JournalLites.Insert(JournalEntry);
                LedgerService.PostToLedger(ledger);
            }
        }