예제 #1
0
        public List <GetChiTietSoNo> GetChiTietSoNo(DateTime fromDate, DateTime toDate)
        {
            var dkData = BalanceLogic.GetSoDuDauKyCongNo(fromDate);

            dkData = dkData.Where(o => o.DebitBalance > 0 || o.CreditBalance > 0).ToList();

            var psData = ReportDAO.GetChiTietSoNo(fromDate, toDate);

            // Thêm DK
            var dkNotPS = new List <GetChiTietSoNo>();

            foreach (GetBalance item in dkData)
            {
                var psFind = psData.FindAll(o =>
                                            o.AccountID == item.AccountID &&
                                            o.AccountDetailID == item.AccountDetailID &&
                                            o.CustomerID == item.CustomerID);

                // có ps
                if (psFind != null && psFind.Count > 0)
                {
                    psFind.ForEach(o =>
                    {
                        o.DKNo = item.DebitBalance;
                        o.DKCo = item.CreditBalance;
                    });
                }
                // không có ps
                else
                {
                    dkNotPS.Add(new GetChiTietSoNo
                    {
                        AccountID       = item.AccountID,
                        AccountDetailID = item.AccountDetailID,
                        CustomerID      = item.CustomerID,
                        CustomerName    = item.CustomerName,
                        CustomerSName   = item.CustomerSName,
                        DKNo            = item.DebitBalance,
                        DKCo            = item.CreditBalance
                    });
                }
            }

            // Thêm danh sách có đầu kỳ nhưng không có phát sinh
            psData.AddRange(dkNotPS);

            return(psData);
        }