Esempio n. 1
0
        public ResponseModel SaveJournalTransaction(List <ManualJournal> a_objList)
        {
            using (var transaction = _db.Database.BeginTransaction())
            {
                try
                {
                    var vouchers = a_objList.Select(x => x.VoucharNumber).ToList().Distinct();
                    foreach (Int32 v in vouchers)
                    {
                        var d = (from e in a_objList
                                 where e.VoucharNumber == v
                                 select
                                 new
                        {
                            e.TransactionDate,
                            e.Particulars
                        }).FirstOrDefault();
                        A_GlTransaction aGlTransaction = new A_GlTransaction()
                        {
                            TransactionDate = d.TransactionDate,
                            EntryMethod     = 1,
                            VoucharNumber   = v,
                            Description     = d.Particulars
                        };
                        _db.A_GlTransaction.Add(aGlTransaction);
                        _db.SaveChanges();
                        List <ManualJournal> manualJournals = (from o in a_objList
                                                               where o.VoucharNumber == v
                                                               select o).ToList();

                        foreach (var o in manualJournals)
                        {
                            A_GlTransactionDetails aGlTransactionDetails = new A_GlTransactionDetails()
                            {
                                A_GlAccountId     = o.A_GlAccountId,
                                A_GlTransactionId = aGlTransaction.A_GlTransactionId,
                                DebitAmount       = o.DebitAmount,
                                CreditAmount      = o.CreditAmount,
                                TransactionDate   = o.TransactionDate,
                                ChequeNumber      = o.ChequeNumber
                            };
                            _db.A_GlTransactionDetails.Add(aGlTransactionDetails);
                            _db.SaveChanges();
                        }
                    }
                    transaction.Commit();
                    return(_aModel.Respons(true, "Journal Saved"));
                }
                catch (Exception)
                {
                    transaction.Rollback();
                    return(_aModel.Respons(false, "Journal not saved"));
                }
            }
        }
Esempio n. 2
0
        public ResponseModel ProcessUnprocessedData(List <UnprocessedData> unprocessedData, int costCenterId)
        {
            using (var transaction = _db.Database.BeginTransaction())
            {
                try
                {
                    string debtAccountCode   = null;
                    string creditAccountCode = null;
                    if (costCenterId == 1)
                    {
                        foreach (var data in unprocessedData)
                        {
                            debtAccountCode   = _db.A_CostCenter.SingleOrDefault(x => x.A_CostCenterId == costCenterId && x.Particular == data.Particular).DebitAccount.ToString();
                            creditAccountCode = _db.A_CostCenter.SingleOrDefault(x => x.A_CostCenterId == costCenterId && x.Particular == data.Particular).CreditAccount.ToString();
                            if (String.IsNullOrWhiteSpace(debtAccountCode) || String.IsNullOrWhiteSpace(creditAccountCode))
                            {
                                return(_aModel.Respons(false, "Debit or credit account in Cost Center Not Found"));
                            }
                            else
                            {
                                if (data.A_GLTransactionId > 0)
                                {
                                    Int32 A_GlAccountId = 0;
                                    A_GlAccountId = _db.A_GlAccount.SingleOrDefault(x => x.Code == debtAccountCode).A_GlAccountId;

                                    A_GlTransactionDetails aGlTransactionDetailsDebit = _db.A_GlTransactionDetails.SingleOrDefault(i => i.A_GlTransactionId == data.A_GLTransactionId && i.A_GlAccountId == A_GlAccountId);
                                    aGlTransactionDetailsDebit.DebitAmount = data.Amount;
                                    _db.A_GlTransactionDetails.Attach(aGlTransactionDetailsDebit);
                                    _db.Entry(aGlTransactionDetailsDebit).State = EntityState.Modified;
                                    _db.SaveChanges();

                                    A_GlAccountId = _db.A_GlAccount.SingleOrDefault(x => x.Code == creditAccountCode).A_GlAccountId;

                                    A_GlTransactionDetails aGlTransactionDetailsCredit = _db.A_GlTransactionDetails.SingleOrDefault(i => i.A_GlTransactionId == data.A_GLTransactionId && i.A_GlAccountId == A_GlAccountId);
                                    aGlTransactionDetailsCredit.CreditAmount = data.Amount;
                                    _db.A_GlTransactionDetails.Attach(aGlTransactionDetailsCredit);
                                    _db.Entry(aGlTransactionDetailsCredit).State = EntityState.Modified;
                                    _db.SaveChanges();
                                    SupplierInvestment aInvestment = _db.SupplierInvestments.SingleOrDefault(x => x.SupplierInvestmentId == data.Id);
                                    if (aInvestment != null)
                                    {
                                        aInvestment.ProcessStatus     = 2;
                                        aInvestment.A_GlTransactionId = data.A_GLTransactionId;
                                        _db.SupplierInvestments.Attach(aInvestment);
                                        _db.Entry(aInvestment).State = EntityState.Modified;
                                        _db.SaveChanges();
                                    }
                                }
                                else
                                {
                                    A_GlTransaction aGlTransaction = new A_GlTransaction()
                                    {
                                        TransactionDate = DateTime.Now,
                                        EntryMethod     = 2,
                                        Description     = data.Particular,
                                        A_CostCenterId  = costCenterId
                                    };
                                    _db.A_GlTransaction.Add(aGlTransaction);
                                    _db.SaveChanges();
                                    A_GlTransactionDetails aGlTransactionDetailsforDebt = new A_GlTransactionDetails()
                                    {
                                        A_GlAccountId     = _db.A_GlAccount.SingleOrDefault(x => x.Code == debtAccountCode).A_GlAccountId,
                                        A_GlTransactionId = aGlTransaction.A_GlTransactionId,
                                        DebitAmount       = data.Amount,
                                        CreditAmount      = 0,
                                        TransactionDate   = DateTime.Now,
                                        Particular        = data.Particular
                                    };
                                    _db.A_GlTransactionDetails.Add(aGlTransactionDetailsforDebt);
                                    _db.SaveChanges();
                                    A_GlTransactionDetails aGlTransactionDetailsforCredit = new A_GlTransactionDetails()
                                    {
                                        A_GlAccountId     = _db.A_GlAccount.SingleOrDefault(x => x.Code == creditAccountCode).A_GlAccountId,
                                        A_GlTransactionId = aGlTransaction.A_GlTransactionId,
                                        DebitAmount       = 0,
                                        CreditAmount      = data.Amount,
                                        TransactionDate   = DateTime.Now,
                                        Particular        = data.Particular
                                    };
                                    _db.A_GlTransactionDetails.Add(aGlTransactionDetailsforCredit);
                                    _db.SaveChanges();
                                    SupplierInvestment aInvestment = _db.SupplierInvestments.SingleOrDefault(x => x.SupplierInvestmentId == data.Id);
                                    if (aInvestment != null)
                                    {
                                        aInvestment.ProcessStatus     = 2;
                                        aInvestment.A_GlTransactionId = aGlTransaction.A_GlTransactionId;

                                        _db.SupplierInvestments.Attach(aInvestment);
                                        _db.Entry(aInvestment).State = EntityState.Modified;
                                        _db.SaveChanges();
                                    }
                                }
                            }
                        }
                    }

                    transaction.Commit();
                    return(_aModel.Respons(true, "Data processing done successfully"));
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(_aModel.Respons(false, "Sorry ! Some error occured"));
                }
            }
        }
Esempio n. 3
0
        public ResponseModel ReprocessedData()
        {
            List <A_CostCenter> costCenterList = _db.A_CostCenter.ToList();
            var objCtx = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)_db).ObjectContext;

            objCtx.ExecuteStoreCommand("SELECT * INTO #Temp_A_GlTransaction FROM A_GlTransaction Where EntryMethod=1 AND A_CostCenterId IS NULL ;" +
                                       "SELECT * INTO #Temp_A_GlTransactionDetails FROM A_GlTransactionDetails Where A_GlTransactionId in (SELECT A_GlTransactionId FROM #Temp_A_GlTransaction);" +
                                       "TRUNCATE TABLE A_GlTransactionDetails;DELETE FROM A_GlTransaction;" +
                                       "DBCC CHECKIDENT('A_GlTransaction',RESEED,0);" +
                                       "INSERT INTO A_GlTransaction SELECT TransactionDate,EntryMethod,Description,A_CostCenterId,VoucharNumber FROM #Temp_A_GlTransaction;" +
                                       "INSERT INTO A_GlTransactionDetails  SELECT A_GlAccountId,A_GlTransactionId,DebitAmount,CreditAmount,TransactionDate,ChequeNumber,Particular FROM #Temp_A_GlTransactionDetails;" +
                                       "DROP TABLE #Temp_A_GlTransaction,#Temp_A_GlTransactionDetails;");

            foreach (var aCostCenter in costCenterList)
            {
                switch (aCostCenter.A_CostCenterId)
                {
                case 1:
                    if (aCostCenter.Particular == "Supplier Investment")
                    {
                        var supplierInvestMentList = _db.SupplierInvestments.ToList();
                        if (supplierInvestMentList.Count == 0)
                        {
                            return(_aModel.Respons(false, "Debit or credit account in Cost Center Not Found"));
                        }
                        var costCenterAH = _db.A_CostCenter.SingleOrDefault(x => x.A_CostCenterId == 1 && x.Particular == "Supplier Investment");
                        if (costCenterAH != null)
                        {
                            string debtAccountCode   = costCenterAH.DebitAccount.ToString();
                            string creditAccountCode = costCenterAH.CreditAccount.ToString();
                            foreach (var supplierInvestment in supplierInvestMentList)
                            {
                                using (var transaction = _db.Database.BeginTransaction())
                                {
                                    try
                                    {
                                        A_GlTransaction aGlTransaction = new A_GlTransaction()
                                        {
                                            TransactionDate = supplierInvestment.TransactionDate,
                                            EntryMethod     = 2,
                                            Description     = supplierInvestment.Particular,
                                            A_CostCenterId  = 1
                                        };
                                        _db.A_GlTransaction.Add(aGlTransaction);
                                        _db.SaveChanges();
                                        A_GlTransactionDetails aGlTransactionDetailsforDebt = new A_GlTransactionDetails()
                                        {
                                            A_GlAccountId     = _db.A_GlAccount.SingleOrDefault(x => x.Code == debtAccountCode).A_GlAccountId,
                                            A_GlTransactionId = aGlTransaction.A_GlTransactionId,
                                            DebitAmount       = supplierInvestment.Amount,
                                            CreditAmount      = 0,
                                            TransactionDate   = supplierInvestment.TransactionDate,
                                        };
                                        _db.A_GlTransactionDetails.Add(aGlTransactionDetailsforDebt);
                                        _db.SaveChanges();
                                        A_GlTransactionDetails aGlTransactionDetailsforCredit = new A_GlTransactionDetails()
                                        {
                                            A_GlAccountId     = _db.A_GlAccount.SingleOrDefault(x => x.Code == creditAccountCode).A_GlAccountId,
                                            A_GlTransactionId = aGlTransaction.A_GlTransactionId,
                                            DebitAmount       = 0,
                                            CreditAmount      = supplierInvestment.Amount,
                                            TransactionDate   = supplierInvestment.TransactionDate,
                                        };
                                        _db.A_GlTransactionDetails.Add(aGlTransactionDetailsforCredit);
                                        _db.SaveChanges();
                                    }
                                    catch (Exception ex)
                                    {
                                        transaction.Rollback();
                                        return(_aModel.Respons(false, "Sorry ! Some error occured"));
                                    }
                                    transaction.Commit();
                                }
                            }

                            return(_aModel.Respons(true, "Data processing done successfully"));
                        }

                        break;
                    }
                    break;

                case 2:

                    break;

                default:

                    break;
                }
            }
            return(_aModel.Respons(true, "Data Re-processing done successfully"));
        }
Esempio n. 4
0
        public ResponseModel SaveReceiveTransaction(List <ManualJournal> data, int cashOrBankHead, Int32 voucherNo, DateTime transactionDate, string particular)
        {
            using (var transaction = _db.Database.BeginTransaction())
            {
                try
                {
                    long    aGlTransactionId = 0;
                    decimal total            = 0;
                    if (data.Any())
                    {
                        A_GlTransaction aGlTransaction = new A_GlTransaction()
                        {
                            Description     = particular,
                            EntryMethod     = 2,
                            TransactionDate = transactionDate,
                            VoucharNumber   = voucherNo
                        };
                        _db.A_GlTransaction.Add(aGlTransaction);
                        _db.SaveChanges();
                        aGlTransactionId = aGlTransaction.A_GlTransactionId;
                    }
                    if (aGlTransactionId > 0)
                    {
                        foreach (ManualJournal t in data)
                        {
                            var aGlTransactionDetails = new A_GlTransactionDetails()
                            {
                                A_GlAccountId     = t.A_GlAccountId,
                                A_GlTransactionId = aGlTransactionId,
                                DebitAmount       = 0,
                                CreditAmount      = t.CreditAmount,
                                Particular        = t.Particulars,
                                TransactionDate   = t.TransactionDate,
                                ChequeNumber      = t.ChequeNumber
                            };
                            total = total + t.CreditAmount;
                            _db.A_GlTransactionDetails.Add(aGlTransactionDetails);
                        }
                        _db.SaveChanges();
                        var aGlDetailsCashBank = new A_GlTransactionDetails()
                        {
                            A_GlAccountId     = cashOrBankHead,
                            A_GlTransactionId = aGlTransactionId,
                            DebitAmount       = total,
                            CreditAmount      = 0,
                            Particular        = particular,
                            TransactionDate   = transactionDate
                        };
                        _db.A_GlTransactionDetails.Add(aGlDetailsCashBank);
                        _db.SaveChanges();
                    }

                    transaction.Commit();
                    return(_aModel.Respons(true, " Transaction saved successfully"));
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(_aModel.Respons(false, "Sorry ! An error occur ." + ex));
                }
            }
        }