示例#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);
        }
 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);
            }
        }