public bool UpdatePendingTransactionAndItem(BusinessObject.ExpenseTransaction transaction, BusinessObject.TransactionItem updatedTransactionItem)
        {
            try
            {
                //Re-Map Object to Entity Object

                using (var db = new ExpenseManagerDBEntities())
                {
                    var myEntityObj = TransactionItemMapper.Map <BusinessObject.TransactionItem, TransactionItem>(updatedTransactionItem);
                    if (myEntityObj == null)
                    {
                        return(false);
                    }

                    db.TransactionItems.Attach(myEntityObj);
                    db.ObjectStateManager.ChangeObjectState(myEntityObj, EntityState.Modified);
                    db.SaveChanges();

                    var totalPrice = db.TransactionItems.Where(x => x.ExpenseTransactionId == transaction.ExpenseTransactionId).ToList().Sum(m => m.RequestedQuantity * m.RequestedUnitPrice);
                    transaction.TotalTransactionAmount = totalPrice;
                    var transactionEntityToUpdate = ExpenseTransactionMapper.Map <BusinessObject.ExpenseTransaction, ExpenseTransaction>(transaction);
                    db.ExpenseTransactions.Attach(transactionEntityToUpdate);
                    db.ObjectStateManager.ChangeObjectState(transactionEntityToUpdate, EntityState.Modified);
                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(false);
            }
        }
 public BusinessObject.ExpenseTransaction UpdateTransactionItemAndApprovedTotalAmount(BusinessObject.TransactionItem transactionItem)
 {
     try
     {
         //Re-Map Object to Entity Object
         var myEntityObj = TransactionItemMapper.Map <BusinessObject.TransactionItem, TransactionItem>(transactionItem);
         if (myEntityObj == null)
         {
             return(new BusinessObject.ExpenseTransaction());
         }
         using (var db = new ExpenseManagerDBEntities())
         {
             db.TransactionItems.Attach(myEntityObj);
             db.ObjectStateManager.ChangeObjectState(myEntityObj, EntityState.Modified);
             db.SaveChanges();
             var transactionAmount = db.TransactionItems.Where(m => m.ExpenseTransactionId == myEntityObj.ExpenseTransactionId).Sum(m => m.RequestedQuantity * m.RequestedUnitPrice);
             var transaction       = db.ExpenseTransactions.Single(m => m.ExpenseTransactionId == myEntityObj.ExpenseTransactionId);
             transaction.TotalTransactionAmount = transactionAmount;
             db.ExpenseTransactions.Attach(transaction);
             db.ObjectStateManager.ChangeObjectState(myEntityObj, EntityState.Modified);
             db.SaveChanges();
             var myBusinessObj = ExpenseTransactionMapper.Map <ExpenseTransaction, BusinessObject.ExpenseTransaction>(transaction);
             return(myBusinessObj);
         }
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(new BusinessObject.ExpenseTransaction());
     }
 }
 public List <BusinessObject.TransactionItem> GetApprovedTransactionItemsByExpenseTransaction(long expenseTransactionId)
 {
     try
     {
         using (var db = new ExpenseManagerDBEntities())
         {
             var myObjList         = db.TransactionItems.Where(m => m.ExpenseTransactionId == expenseTransactionId && m.ApprovedQuantity > 0 && m.ApprovedUnitPrice > 0 && m.ApprovedTotalPrice > 0).ToList();
             var myBusinessObjList = new List <BusinessObject.TransactionItem>();
             if (!myObjList.Any())
             {
                 return(myBusinessObjList);
             }
             //Re-Map each Entity Object to Business Object
             foreach (var item in myObjList)
             {
                 var myBusinessObj = TransactionItemMapper.Map <TransactionItem, BusinessObject.TransactionItem>(item);
                 if (myBusinessObj == null)
                 {
                     continue;
                 }
                 myBusinessObj.TotalPrice = myBusinessObj.RequestedQuantity * myBusinessObj.RequestedUnitPrice;
                 myBusinessObjList.Add(myBusinessObj);
             }
             return(myBusinessObjList.OrderBy(m => m.ExpenseItem.Title).ToList());
         }
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(new List <BusinessObject.TransactionItem>());
     }
 }
コード例 #4
0
 public xPlug.BusinessObject.TransactionItem GetTransactionItem(int transactionItemId)
 {
     try
     {
         using (var db = new ExpenseManagerDBEntities())
         {
             var myObj = db.TransactionItems.SingleOrDefault(s => s.TransactionItemId == transactionItemId);
             if (myObj == null)
             {
                 return(new xPlug.BusinessObject.TransactionItem());
             }
             //Re-Map Entity Object to Business Object
             var myBusinessObj = TransactionItemMapper.Map <TransactionItem, xPlug.BusinessObject.TransactionItem>(myObj);
             if (myBusinessObj == null)
             {
                 return(new xPlug.BusinessObject.TransactionItem());
             }
             { return(myBusinessObj); }
         }
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(new xPlug.BusinessObject.TransactionItem());
     }
 }
コード例 #5
0
 public List <xPlug.BusinessObject.TransactionItem> GetTransactionItemsByExpenseTypeId(Int32 expenseTypeId)
 {
     try
     {
         using (var db = new ExpenseManagerDBEntities())
         {
             var myObjList         = db.TransactionItems.ToList().FindAll(m => m.ExpenseTypeId == expenseTypeId);
             var myBusinessObjList = new List <xPlug.BusinessObject.TransactionItem>();
             if (myObjList == null)
             {
                 return(myBusinessObjList);
             }
             //Re-Map each Entity Object to Business Object
             foreach (var item in myObjList)
             {
                 var myBusinessObj = TransactionItemMapper.Map <TransactionItem, xPlug.BusinessObject.TransactionItem>(item);
                 if (myBusinessObj == null)
                 {
                     continue;
                 }
                 myBusinessObjList.Add(myBusinessObj);
             }
             return(myBusinessObjList);
         }
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(new List <xPlug.BusinessObject.TransactionItem>());
     }
 }
        public Dictionary <List <BusinessObject.TransactionItem>, List <BusinessObject.ExpenseItem> > GetTransactionItemsByExpenseTransaction(long expenseTransactionId)
        {
            try
            {
                using (var db = new ExpenseManagerDBEntities())
                {
                    var myObjList         = db.TransactionItems.Where(m => m.ExpenseTransactionId == expenseTransactionId).ToList();
                    var myBusinessObjList = new List <BusinessObject.TransactionItem>();
                    var dictCollection    = new Dictionary <List <BusinessObject.TransactionItem>, List <BusinessObject.ExpenseItem> >();
                    var expenseItems      = new List <BusinessObject.ExpenseItem>();
                    if (!myObjList.Any())
                    {
                        return(dictCollection);
                    }

                    //Re-Map each Entity Object to Business Object
                    foreach (var item in myObjList)
                    {
                        var myBusinessObj = TransactionItemMapper.Map <TransactionItem, BusinessObject.TransactionItem>(item);
                        if (myBusinessObj == null)
                        {
                            continue;
                        }

                        var transItem   = item;
                        var expenseItem = (from x in db.ExpenseItems
                                           where x.ExpenseItemId == transItem.ExpensenseItemId
                                           select x).ToList();

                        if (!expenseItem.Any())
                        {
                            return(dictCollection);
                        }
                        var itemObj = ExpenseItemMapper.Map <ExpenseItem, BusinessObject.ExpenseItem>(expenseItem.ElementAt(0));
                        myBusinessObj.TotalPrice         = myBusinessObj.RequestedQuantity * myBusinessObj.RequestedUnitPrice;
                        myBusinessObj.ApprovedTotalPrice = 0;
                        expenseItems.Add(itemObj);
                        myBusinessObjList.Add(myBusinessObj);
                    }

                    if (!expenseItems.Any() || !myBusinessObjList.Any())
                    {
                        return(dictCollection);
                    }

                    var orderTransactionItems = myBusinessObjList.OrderBy(m => m.ExpenseItem.Title).ToList();
                    var orderedExpenseItems   = expenseItems.OrderBy(m => m.Title).ToList();
                    dictCollection.Add(orderTransactionItems, orderedExpenseItems);
                    return(dictCollection);
                }
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(new Dictionary <List <BusinessObject.TransactionItem>, List <BusinessObject.ExpenseItem> >());
            }
        }
        public List <List <BusinessObject.TransactionItem> > GetItemsByDateRange(long expenseTransactionId)
        {
            try
            {
                using (var db = new ExpenseManagerDBEntities())
                {
                    var myObjList       = db.TransactionItems.Where(m => m.ExpenseTransaction.ExpenseTransactionId == expenseTransactionId).ToList();
                    var itemsCollection = new List <List <BusinessObject.TransactionItem> >();
                    if (!myObjList.Any())
                    {
                        return(itemsCollection);
                    }


                    //Re-Map each Entity Object to Business Object
                    foreach (var item in myObjList)
                    {
                        if (!itemsCollection.Exists(m => m.All(r => r.ExpensenseItemId == item.ExpensenseItemId && r.ExpenseTransaction.DateApproved == item.ExpenseTransaction.DateApproved)))
                        {
                            var tempList = myObjList.FindAll(x => x.ExpensenseItemId == item.ExpensenseItemId);
                            if (!tempList.Any())
                            {
                                continue;
                            }

                            var tempList1 = new List <BusinessObject.TransactionItem>();

                            foreach (var transactionItem in tempList)
                            {
                                var myBusinessObj = TransactionItemMapper.Map <TransactionItem, BusinessObject.TransactionItem>(transactionItem);

                                if (myBusinessObj == null)
                                {
                                    continue;
                                }

                                tempList1.Add(myBusinessObj);
                            }
                            if (tempList.Any())
                            {
                                itemsCollection.Add(tempList1.OrderBy(m => m.ExpenseItem.Title).ToList());
                            }
                        }
                    }
                    if (!itemsCollection.Any())
                    {
                        return(new List <List <BusinessObject.TransactionItem> >());
                    }
                    return(itemsCollection);
                }
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(new List <List <BusinessObject.TransactionItem> >());
            }
        }
        public List <BusinessObject.TransactionItem> GetExpenseItemCostsByDateRange(int expenseItemId, string startDate, string endDate)
        {
            try
            {
                using (var db = new ExpenseManagerDBEntities())
                {
                    var myObjList = db.TransactionItems.Where(m => m.ExpensenseItemId == expenseItemId).ToList().FindAll(m => (String.CompareOrdinal(m.ExpenseTransaction.DateApproved, startDate) >= 0) &&
                                                                                                                         (String.CompareOrdinal(m.ExpenseTransaction.DateApproved, endDate) <= 0)).ToList();
                    var transactionItems = new List <BusinessObject.TransactionItem>();
                    if (!myObjList.Any())
                    {
                        return(transactionItems);
                    }

                    double grandTotal = 0;
                    //Re-Map each Entity Object to Business Object
                    foreach (var item in myObjList)
                    {
                        if (!transactionItems.Exists(m => m.ExpensenseItemId == item.ExpensenseItemId && m.ExpenseTransaction.DateApproved == item.ExpenseTransaction.DateApproved))
                        {
                            var myBusinessObj = TransactionItemMapper.Map <TransactionItem, BusinessObject.TransactionItem>(item);
                            if (myBusinessObj == null)
                            {
                                continue;
                            }

                            var tempList =
                                myObjList.FindAll(
                                    x =>
                                    x.ExpensenseItemId == myBusinessObj.ExpensenseItemId &&
                                    x.ExpenseTransaction.DateApproved == myBusinessObj.ExpenseTransaction.DateApproved);

                            myBusinessObj.TotalApprovedPrice    = tempList.Sum(m => m.ApprovedTotalPrice);
                            myBusinessObj.TotalApprovedQuantity = tempList.Sum(m => m.ApprovedQuantity);
                            grandTotal += myBusinessObj.TotalApprovedPrice;
                            transactionItems.Add(myBusinessObj);
                        }
                    }
                    if (!transactionItems.Any())
                    {
                        return(new List <BusinessObject.TransactionItem>());
                    }
                    Parallel.ForEach(transactionItems, m => { m.GrandTotalApprovedPrice = grandTotal; });
                    return(transactionItems.OrderByDescending(m => DateTime.Parse(m.ExpenseTransaction.TransactionDate)).ToList());
                }
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(new List <BusinessObject.TransactionItem>());
            }
        }
        public List <BusinessObject.TransactionItem> GetSingleTransactionItems(long expenseTransactionId)
        {
            try
            {
                using (var db = new ExpenseManagerDBEntities())
                {
                    var myObjList         = db.TransactionItems.Where(m => m.ExpenseTransactionId == expenseTransactionId).ToList();
                    var myBusinessObjList = new List <BusinessObject.TransactionItem>();
                    if (!myObjList.Any())
                    {
                        return(myBusinessObjList);
                    }

                    foreach (var item in myObjList)
                    {
                        if (myBusinessObjList.Exists(m => m.ExpensenseItemId == item.ExpensenseItemId))
                        {
                            var jxc = myBusinessObjList.Find(m => m.ExpensenseItemId == item.ExpensenseItemId);
                            jxc.Ismultiple          = true;
                            jxc.RequestedQuantity  += item.RequestedQuantity;
                            jxc.RequestedUnitPrice += item.RequestedUnitPrice;
                            jxc.ApprovedQuantity   += item.ApprovedQuantity;
                            jxc.ApprovedUnitPrice  += item.ApprovedUnitPrice;
                            continue;
                        }

                        var myBusinessObj = TransactionItemMapper.Map <TransactionItem, BusinessObject.TransactionItem>(item);

                        if (myBusinessObj == null)
                        {
                            continue;
                        }

                        myBusinessObj.TotalPrice = myBusinessObj.RequestedQuantity * myBusinessObj.RequestedUnitPrice;
                        myBusinessObjList.Add(myBusinessObj);
                    }

                    if (!myBusinessObjList.Any())
                    {
                        return(new List <BusinessObject.TransactionItem>());
                    }

                    return(myBusinessObjList.OrderBy(m => m.ExpenseItem.Title).ToList());
                }
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(new List <BusinessObject.TransactionItem>());
            }
        }
コード例 #10
0
        public bool UpdateTransactionAndItems(BusinessObject.ExpenseTransaction transaction, List <BusinessObject.TransactionItem> updatedTransactionItemList)
        {
            try
            {
                //Re-Map Object to Entity Object

                double approvedTotalPrice = 0;
                using (var db = new ExpenseManagerDBEntities())
                {
                    foreach (var item in updatedTransactionItemList)
                    {
                        var myEntityObj = TransactionItemMapper.Map <BusinessObject.TransactionItem, TransactionItem>(item);
                        if (myEntityObj == null)
                        {
                            continue;
                        }

                        myEntityObj.Status = 1;

                        if (myEntityObj.ApprovedQuantity < 1)
                        {
                            myEntityObj.ApprovedQuantity = myEntityObj.RequestedQuantity;
                        }

                        if (myEntityObj.ApprovedUnitPrice < 1)
                        {
                            myEntityObj.ApprovedUnitPrice = myEntityObj.RequestedUnitPrice;
                        }

                        myEntityObj.ApprovedTotalPrice = myEntityObj.ApprovedQuantity * myEntityObj.ApprovedUnitPrice;
                        approvedTotalPrice            += myEntityObj.ApprovedTotalPrice;
                        db.TransactionItems.Attach(myEntityObj);
                        db.ObjectStateManager.ChangeObjectState(myEntityObj, EntityState.Modified);
                        db.SaveChanges();
                    }

                    var transactionEntityToUpdate = ExpenseTransactionMapper.Map <BusinessObject.ExpenseTransaction, ExpenseTransaction>(transaction);
                    transactionEntityToUpdate.TotalApprovedAmount = approvedTotalPrice;
                    db.ExpenseTransactions.Attach(transactionEntityToUpdate);
                    db.ObjectStateManager.ChangeObjectState(transactionEntityToUpdate, EntityState.Modified);
                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(false);
            }
        }
コード例 #11
0
        public List <BusinessObject.TransactionItem> GetDetailedTransactionItems(int transactionItemId)
        {
            try
            {
                using (var db = new ExpenseManagerDBEntities())
                {
                    var myObj             = db.TransactionItems.Where(m => m.TransactionItemId == transactionItemId).ToList();
                    var myBusinessObjList = new List <BusinessObject.TransactionItem>();
                    if (!myObj.Any())
                    {
                        return(myBusinessObjList);
                    }

                    var gtx = myObj[0];

                    var myObjList = db.TransactionItems.Where(m => m.ExpenseTransactionId == gtx.ExpenseTransactionId && (m.ExpensenseItemId == gtx.ExpensenseItemId)).ToList();

                    if (!myObjList.Any())
                    {
                        return(myBusinessObjList);
                    }

                    foreach (var item in myObjList)
                    {
                        var myBusinessObj = TransactionItemMapper.Map <TransactionItem, BusinessObject.TransactionItem>(item);

                        if (myBusinessObj == null)
                        {
                            continue;
                        }

                        //myBusinessObj.TotalPrice = myBusinessObj.RequestedQuantity * myBusinessObj.RequestedUnitPrice;
                        myBusinessObjList.Add(myBusinessObj);
                    }

                    if (!myBusinessObjList.Any())
                    {
                        return(new List <BusinessObject.TransactionItem>());
                    }

                    return(myBusinessObjList.OrderBy(m => m.ExpenseItem.Title).ToList());
                }
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(new List <BusinessObject.TransactionItem>());
            }
        }
コード例 #12
0
        public bool RevertChanges(List <BusinessObject.TransactionItem> transactionItems)
        {
            try
            {
                //Re-Map each Object to Entity Object

                if (transactionItems == null)
                {
                    return(false);
                }

                using (var db = new ExpenseManagerDBEntities())
                {
                    foreach (var item in transactionItems)
                    {
                        var myEntityObj = TransactionItemMapper.Map <BusinessObject.TransactionItem, TransactionItem>(item);

                        if (myEntityObj == null)
                        {
                            continue;
                        }
                        myEntityObj.ApprovedQuantity   = 0;
                        myEntityObj.ApprovedUnitPrice  = 0;
                        myEntityObj.ApprovedTotalPrice = 0;
                        db.TransactionItems.Attach(myEntityObj);
                        db.ObjectStateManager.ChangeObjectState(myEntityObj, EntityState.Modified);
                        db.SaveChanges();
                    }
                    return(true);
                }
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(false);
            }
        }
コード例 #13
0
 public bool UpdateTransactionItem(xPlug.BusinessObject.TransactionItem transactionItem)
 {
     try
     {
         //Re-Map Object to Entity Object
         var myEntityObj = TransactionItemMapper.Map <xPlug.BusinessObject.TransactionItem, TransactionItem>(transactionItem);
         if (myEntityObj == null)
         {
             return(false);
         }
         using (var db = new ExpenseManagerDBEntities())
         {
             db.TransactionItems.Attach(myEntityObj);
             db.ObjectStateManager.ChangeObjectState(myEntityObj, EntityState.Modified);
             db.SaveChanges();
             return(true);
         }
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(false);
     }
 }
コード例 #14
0
 public int AddTransactionItem(BusinessObject.TransactionItem transactionItem)
 {
     try
     {
         //Re-Map Object to Entity Object
         var myEntityObj = TransactionItemMapper.Map <xPlug.BusinessObject.TransactionItem, TransactionItem>(transactionItem);
         if (myEntityObj == null)
         {
             return(-2);
         }
         using (var db = new ExpenseManagerDBEntities())
         {
             db.AddToTransactionItems(myEntityObj);
             db.SaveChanges();
             transactionItem.TransactionItemId = myEntityObj.TransactionItemId;
             return(transactionItem.TransactionItemId);
         }
     }
     catch (Exception ex)
     {
         ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
         return(0);
     }
 }
コード例 #15
0
        public int AddTransactionItems(List <BusinessObject.TransactionItem> transactionItems, BusinessObject.ExpenseTransaction expenseTransaction)
        {
            try
            {
                //Re-Map Object to Entity Object
                double totalPrice = 0;
                if (!transactionItems.Any())
                {
                    return(-1);
                }
                using (var db = new ExpenseManagerDBEntities())
                {
                    if (transactionItems.Any(transactionItem => db.ExpenseTransactions.Count(m =>
                                                                                             m.TransactionDate == expenseTransaction.TransactionDate && m.Status == 0 && m.BeneficiaryId == expenseTransaction.BeneficiaryId && m.TransactionItems.Count(x => x.ExpensenseItemId == transactionItem.ExpensenseItemId) > 0) > 0))
                    {
                        return(-3);
                    }
                    var transactionEntityObj = ExpenseTransactionMapper.Map <BusinessObject.ExpenseTransaction, ExpenseTransaction>(expenseTransaction);
                    if (transactionEntityObj == null)
                    {
                        return(-2);
                    }
                    db.AddToExpenseTransactions(transactionEntityObj);
                    db.SaveChanges();
                    expenseTransaction.ExpenseTransactionId = transactionEntityObj.ExpenseTransactionId;
                    if (expenseTransaction.ExpenseTransactionId < 1)
                    {
                        return(-4);
                    }
                    foreach (var transactionItem in transactionItems)
                    {
                        transactionItem.ApprovedQuantity   = 0;
                        transactionItem.ApprovedTotalPrice = 0;
                        transactionItem.ApprovedUnitPrice  = 0;
                        totalPrice += (transactionItem.RequestedQuantity * transactionItem.RequestedUnitPrice);
                        transactionItem.ExpenseTransactionId = expenseTransaction.ExpenseTransactionId;
                        var myEntityObj = TransactionItemMapper.Map <BusinessObject.TransactionItem, TransactionItem>(transactionItem);
                        if (myEntityObj == null)
                        {
                            return(-5);
                        }
                        db.AddToTransactionItems(myEntityObj);
                        db.SaveChanges();
                        transactionItem.TransactionItemId = myEntityObj.TransactionItemId;
                    }

                    var transactionEntityToUpdate = db.ExpenseTransactions.SingleOrDefault(m => m.ExpenseTransactionId == expenseTransaction.ExpenseTransactionId);

                    if (transactionEntityToUpdate == null)
                    {
                        return(-6);
                    }
                    transactionEntityToUpdate.TotalTransactionAmount = totalPrice;
                    db.ObjectStateManager.ChangeObjectState(transactionEntityToUpdate, EntityState.Modified);
                    db.SaveChanges();
                }

                return(1);
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(0);
            }
        }