Пример #1
0
        public async Task <IEnumerable <RevenueHelper> > GetRevenuesInYearAsync(string year)
        {
            List <RevenueHelper> list = new List <RevenueHelper>();
            int month   = DateTime.Now.Month;
            int curYear = DateTime.Now.Year;

            if (Int32.Parse(year) < curYear)
            {
                month = 12;
            }

            for (int i = 1; i <= month; i++)
            {
                RevenueHelper item = new RevenueHelper();
                item.Thang = year + "-" + i.ToString();
                var dummies = await _context.Doanhthungays.Where(p => p.Ngay.Year == Int32.Parse(year) &&
                                                                 p.Ngay.Month == i).ToListAsync();

                foreach (var dummy in dummies)
                {
                    item.DoanhThu += dummy.TongDoanhThu.GetValueOrDefault();
                    item.SoVe     += dummy.SoVe;
                }
                list.Add(item);
            }

            return(list);
        }
Пример #2
0
        private void ShowMonthlyReport(string monthlyDate, int propertyId)
        {
            if (string.IsNullOrEmpty(monthlyDate) || propertyId <= 0)
            {
                lbCompany2.Visible    = true;
                lbMonthlyDate.Visible = true;
                lbError2.Visible      = true;
            }
            else
            {
                lbCompany2.Visible    = false;
                lbMonthlyDate.Visible = false;
                lbError2.Visible      = false;

                divJqGridMonthlyReport.Attributes["style"] = "display:";
                divExportData2.Attributes["style"]         = "display:";

                var sesseionDateFrom = monthlyDate;
                var strFrom          = sesseionDateFrom.Split('/');
                var fromMonth        = Convert.ToInt32(strFrom[0]);
                var fromYear         = Convert.ToInt32(strFrom[1]);
                var endDate          = RevenueHelper.GetLastDayOfMonth(fromMonth, fromYear);

                //MTD
                var dateTimeFromThisMonth = new DateTime(fromYear, fromMonth, 1);
                var dateTimeToThisMonth   = new DateTime(fromYear, fromMonth, endDate);

                //MTD-LY
                var dateTimeFromThisMonthLY = dateTimeFromThisMonth.AddYears(-1);
                var dateTimeToThisMonthLY   = dateTimeToThisMonth.AddYears(-1);

                //YTD
                var dateTimeFromYtd = new DateTime(fromYear, 1, 1);
                var dateTimeToYtd   = new DateTime(fromYear, fromMonth, endDate);

                //YTD-LY
                var dateTimeFromYtdLY = dateTimeFromYtd.AddYears(-1);
                var dateTimeToTtdLY   = dateTimeToYtd.AddYears(-1);

                var listActualThisMonth   = ReportHelper.CalculateMonthlyReport(dateTimeFromThisMonth, dateTimeToThisMonth, propertyId);
                var listActualThisMonthLY = ReportHelper.CalculateMonthlyReport(dateTimeFromThisMonthLY, dateTimeToThisMonthLY, propertyId);

                var listActual = ListActual(listActualThisMonth, listActualThisMonthLY);


                var listYtd   = ReportHelper.CalculateMonthlyReport(dateTimeFromYtd, dateTimeToYtd, propertyId);
                var listYtdLY = ReportHelper.CalculateMonthlyReport(dateTimeFromYtdLY, dateTimeToTtdLY, propertyId);

                var listActualYtd = ListActualYtd(listYtd, listYtdLY);

                var listRow = ListMonthly(listActual, listActualYtd);
                BindRowToDataTableMonthlyReport(listRow);
            }
        }
Пример #3
0
        private void BindDataEntryJqgrid(HotelDataEntryLib.HotelRevenue hotelEntry)
        {
            var userPermission = Session["permission"].ToString();
            var dataEntryList  = RevenueHelper.ListRevenueEntryByMonthYear(hotelEntry);

            JqGridRevenueEntry.DataSource = dataEntryList;
            AppendTotal(dataEntryList);
            JqGridRevenueEntry.DataBind();
            if (!string.IsNullOrEmpty(userPermission))
            {
                if (Convert.ToInt32(userPermission) >= 2)
                {
                    JqGridRevenueEntry.ToolBarSettings.ShowEditButton = true;
                }
            }
        }
Пример #4
0
        protected void JqGridDataEntry_RowEditing(object sender, JQGridRowEditEventArgs e)
        {
            var revenueEntryId = e.RowKey;
            var hotelEntryId   = e.RowData["HotelEntryId"] == "" ? 0 : Convert.ToInt32(e.RowData["HotelEntryId"]);
            var roomRevenue    = string.IsNullOrEmpty(e.RowData["RoomRevenue"]) ? 0.00 : Convert.ToDouble(e.RowData["RoomRevenue"]);
            var fbRevenue      = string.IsNullOrEmpty(e.RowData["FBRevenue"]) ? 0.00 : Convert.ToDouble(e.RowData["FBRevenue"]);
            var spa            = string.IsNullOrEmpty(e.RowData["SpaRevenue"]) ? 0.00 : Convert.ToDouble(e.RowData["SpaRevenue"]);
            var others         = string.IsNullOrEmpty(e.RowData["Others"]) ? 0.00 : Convert.ToDouble(e.RowData["Others"]);
            var occupancyRoom  = 0.0;

            if (string.IsNullOrEmpty(e.RowData["OccupancyRoom"]))
            {
                occupancyRoom = 0;
            }
            else
            {
                var strOccupancy = "";
                strOccupancy  = e.RowData["OccupancyRoom"].Contains("%") ? e.RowData["OccupancyRoom"].Remove(e.RowData["OccupancyRoom"].Length - 1, 1) : e.RowData["OccupancyRoom"];
                occupancyRoom = Convert.ToDouble(strOccupancy);
            }


            var revenueEntry = new RevenueEntry()
            {
                RevenueId      = Convert.ToInt32(revenueEntryId),
                HotelRevenueId = hotelEntryId,
                OccupancyRoom  = occupancyRoom,
                RoomRevenue    = roomRevenue,
                FBRevenue      = fbRevenue,
                SpaRevenue     = spa,
                Others         = others,
                UpdateUser     = Session["UserSession"].ToString(),
                Total          = roomRevenue + fbRevenue + spa + others
            };

            RevenueHelper.UpdateRevenueEntry(revenueEntry);
        }
Пример #5
0
        private void ShowData(int propertyId, string my)
        {
            if (string.IsNullOrEmpty(my) || propertyId <= 0)
            {
                lbError.Visible               = true;
                lbCalendar.Visible            = true;
                lbCompany.Visible             = true;
                divReport.Attributes["style"] = "display:none";
            }
            else
            {
                lbError.Visible               = false;
                lbCalendar.Visible            = false;
                lbCompany.Visible             = false;
                divReport.Attributes["style"] = "";
                divJqgrid.Attributes["style"] = "";

                var username = Session["UserSession"].ToString();
                var user     = UserHelper.GetUser(username);

                if (user.PropertyId == 15)//OHG ID
                {
                    divExportAllData.Attributes["style"] = "";
                }

                var str = my.Split('/');
                if (!string.IsNullOrEmpty(str[0]) && !string.IsNullOrEmpty(str[1]))
                {
                    Session["PropertyIdReport"] = propertyId;              //for reports.aspx property
                    Session["YearReport"]       = Convert.ToInt32(str[1]); //for reports.aspx year
                    var hotelEntry = new HotelDataEntryLib.HotelRevenue()
                    {
                        PropertyId = propertyId,
                        Month      = Convert.ToInt32(str[0]),
                        Year       = Convert.ToInt32(str[1])
                    };

                    if (HotelRevenueHelper.ExistMothYear(hotelEntry))
                    {
                        var exsitEntry = HotelRevenueHelper.GetHotelEntry(hotelEntry);
                        BindDataEntryJqgrid(exsitEntry);
                    }
                    else
                    {
                        var budgetEntry = new HotelBudget()
                        {
                            PropertyId = hotelEntry.PropertyId,
                            Year       = hotelEntry.Year
                        };
                        if (!HotelBudgetHelper.ExistYear(budgetEntry))
                        {
                            var newBudgetEntry = HotelBudgetHelper.AddHotelEntryListByYear(budgetEntry);
                            BudgetHelper.AddBudgetEntryListByYear(newBudgetEntry, Session["UserSession"].ToString());
                        }
                        var newEntry = HotelRevenueHelper.AddHotelEntryListByMonthYear(hotelEntry);
                        RevenueHelper.AddRevenueEntryListByMonthYear(newEntry, Session["UserSession"].ToString());
                        BindDataEntryJqgrid(newEntry);
                    }
                }
            }
        }
Пример #6
0
        protected void btnPDFAll_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            var hr = new HotelRevenue();

            if (Session["MonthYear"] == null)
            {
                return;
            }
            var my      = Session["MonthYear"].ToString();
            var month   = Convert.ToInt32(my.Split('/')[0]);
            var year    = Convert.ToInt32(my.Split('/')[1]);
            var revenue = HotelDataEntryLib.Page.RevenueHelper.GetAllPropertyByHotelRevenue(year, month);

            var attachment = "attachment; filename= All Properties" + " Revenue " + my + ".pdf";
            var pdfDoc     = new Document(PageSize.A4.Rotate(), 30.0f, 5.0f, 40.0f, 0f);
            var pdfStream  = new MemoryStream();
            var pdfWriter  = PdfWriter.GetInstance(pdfDoc, pdfStream);

            pdfDoc.Open();//Open Document to write

            pdfDoc.NewPage();

            var fontH  = FontFactory.GetFont("ARIAL", 9, Font.BOLD);
            var fontT  = FontFactory.GetFont("ARIAL", 12, Font.BOLD);
            var font8  = FontFactory.GetFont("ARIAL", 8);
            var font8B = FontFactory.GetFont("ARIAL", 8, Font.BOLD);


            var prefacedate = new Paragraph {
                new Paragraph("Print Date: [" + DateTime.Now + "] ", font8B)
            };
            var widths = new float[] { 60, 75f, 75f, 75f, 75f, 75f, 75f, 75f };


            /////////////////////////////////////////////////////////////////////////////////////////////////////////
            for (var i = 0; i < revenue.Count; i++)
            {
                //Begin table
                var pdfTable = new PdfPTable(8);
                pdfTable.HorizontalAlignment = 0;
                pdfTable.TotalWidth          = 781f;
                pdfTable.LockedWidth         = true;
                pdfTable.SetWidths(widths);
                pdfTable.SpacingBefore = 15f; // Give some space after the text or it may overlap the table

                hr.HotelRevenueId = revenue[i].HotelRevenueId;
                hr.Month          = month;
                hr.Year           = year;
                var listRevenue = RevenueHelper.ListRevenueEntryByMonthYear(hr);
                var total       = CalculateTotal(listRevenue);
                var preface     = new Paragraph();
                // Header
                preface.Add(new Paragraph("[" + revenue[i].CurrencyCode + "] " + revenue[i].PropertyName + " Revenue " + my, fontT));
                pdfDoc.Add(preface);

                PdfPCell pdfPCell = null;

                //Add Header of the pdf table
                pdfPCell = new PdfPCell(new Phrase(new Chunk("Date", fontH)));
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk("Occupancy(%)", fontH)));
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk("Room Revenue", fontH)));
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk("F & B Revenue", fontH)));
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk("Spa Revenue", fontH)));
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk("Others", fontH)));
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk("Total", fontH)));
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk("Budget", fontH)));
                pdfTable.AddCell(pdfPCell);

                //How add the data from datatable to pdf table
                for (var rows = 0; rows < listRevenue.Count; rows++)
                {
                    var date = DateTime.Parse(listRevenue[rows].PositionDate.ToString());
                    pdfPCell = new PdfPCell(new Phrase(new Chunk(date.ToShortDateString(), font8)))
                    {
                        HorizontalAlignment = Element.ALIGN_LEFT
                    };
                    pdfTable.AddCell(pdfPCell);
                    pdfPCell = new PdfPCell(new Phrase(new Chunk(listRevenue[rows].OccupancyRoom.ToString("#,##0.00"), font8)))
                    {
                        HorizontalAlignment = Element.ALIGN_RIGHT
                    };
                    pdfTable.AddCell(pdfPCell);
                    pdfPCell = new PdfPCell(new Phrase(new Chunk(listRevenue[rows].RoomRevenue.ToString("#,##0.00"), font8)))
                    {
                        HorizontalAlignment = Element.ALIGN_RIGHT
                    };
                    pdfTable.AddCell(pdfPCell);
                    pdfPCell = new PdfPCell(new Phrase(new Chunk(listRevenue[rows].FBRevenue.ToString("#,##0.00"), font8)))
                    {
                        HorizontalAlignment = Element.ALIGN_RIGHT
                    };
                    pdfTable.AddCell(pdfPCell);
                    pdfPCell = new PdfPCell(new Phrase(new Chunk(listRevenue[rows].SpaRevenue.ToString("#,##0.00"), font8)))
                    {
                        HorizontalAlignment = Element.ALIGN_RIGHT
                    };
                    pdfTable.AddCell(pdfPCell);
                    pdfPCell = new PdfPCell(new Phrase(new Chunk(listRevenue[rows].Others.ToString("#,##0.00"), font8)))
                    {
                        HorizontalAlignment = Element.ALIGN_RIGHT
                    };
                    pdfTable.AddCell(pdfPCell);
                    pdfPCell = new PdfPCell(new Phrase(new Chunk(listRevenue[rows].Total.ToString("#,##0.00"), font8)))
                    {
                        HorizontalAlignment = Element.ALIGN_RIGHT
                    };
                    pdfTable.AddCell(pdfPCell);
                    pdfPCell = new PdfPCell(new Phrase(new Chunk(listRevenue[rows].Budget.ToString("#,##0.00"), font8)))
                    {
                        HorizontalAlignment = Element.ALIGN_RIGHT
                    };
                    pdfTable.AddCell(pdfPCell);
                }

                pdfPCell = new PdfPCell(new Phrase(new Chunk("Total", font8B)))
                {
                    HorizontalAlignment = Element.ALIGN_RIGHT
                };
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk("-", font8B)))
                {
                    HorizontalAlignment = Element.ALIGN_RIGHT
                };
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk(total[0].ToString("#,##0.00"), font8B)))
                {
                    HorizontalAlignment = Element.ALIGN_RIGHT
                };
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk(total[1].ToString("#,##0.00"), font8B)))
                {
                    HorizontalAlignment = Element.ALIGN_RIGHT
                };
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk(total[2].ToString("#,##0.00"), font8B)))
                {
                    HorizontalAlignment = Element.ALIGN_RIGHT
                };
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk(total[3].ToString("#,##0.00"), font8B)))
                {
                    HorizontalAlignment = Element.ALIGN_RIGHT
                };
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk(total[4].ToString("#,##0.00"), font8B)))
                {
                    HorizontalAlignment = Element.ALIGN_RIGHT
                };
                pdfTable.AddCell(pdfPCell);
                pdfPCell = new PdfPCell(new Phrase(new Chunk(total[5].ToString("#,##0.00"), font8B)))
                {
                    HorizontalAlignment = Element.ALIGN_RIGHT
                };
                pdfTable.AddCell(pdfPCell);

                pdfDoc.Add(pdfTable); // add pdf table to the document

                var newLine = new Paragraph();
                newLine.Add(new Paragraph("", fontT));
                preface.Leading = 50.0f;

                pdfDoc.Add(newLine);
            }

            /////////////////////////////////////////////////////////////////////////////////////////////////////////

            pdfDoc.Add(prefacedate);
            pdfDoc.Close();
            pdfWriter.Close();


            Response.ClearContent();
            Response.ClearHeaders();
            Response.ContentType = "application/pdf";
            Response.AppendHeader("Content-Disposition", attachment);
            Response.BinaryWrite(pdfStream.ToArray());
            Response.End();
        }
Пример #7
0
        protected void btnExcelAll_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            var hr = new HotelDataEntryLib.HotelRevenue();

            if (Session["MonthYear"] == null)
            {
                return;
            }
            var my      = Session["MonthYear"].ToString();
            var month   = Convert.ToInt32(my.Split('/')[0]);
            var year    = Convert.ToInt32(my.Split('/')[1]);
            var revenue = HotelDataEntryLib.Page.RevenueHelper.GetAllPropertyByHotelRevenue(year, month);

            var attachment = "attachment; filename=All Properties" + " Revenue " + my + ".xls";

            Response.ClearContent();
            Response.AddHeader("content-disposition", attachment);
            Response.ContentType = "application/vnd.ms-excel";
            for (var i = 0; i < revenue.Count; i++)
            {
                Response.Write("[" + revenue[i].CurrencyCode + "] " + revenue[i].PropertyName + " Revenue " + my);
                Response.Write("\r\n");
                Response.Write("\r\n");

                Response.Write("Date\t");
                Response.Write("Occupancy(%)\t");
                Response.Write("Room Revenue\t");
                Response.Write("F & B Revenue\t");
                Response.Write("Spa Revenue\t");
                Response.Write("Others\t");
                Response.Write("Total\t");
                Response.Write("Budget\t");
                Response.Write("\n");

                hr.HotelRevenueId = revenue[i].HotelRevenueId;
                hr.Month          = month;
                hr.Year           = year;
                var listRevenue = RevenueHelper.ListRevenueEntryByMonthYear(hr);
                var total       = CalculateTotal(listRevenue);
                for (var j = 0; j < listRevenue.Count; j++)
                {
                    var date = DateTime.Parse(listRevenue[j].PositionDate.ToString());
                    Response.Write(date.ToShortDateString() + "\t");
                    Response.Write(listRevenue[j].OccupancyRoom.ToString("#,##0.00") + "\t");
                    Response.Write(listRevenue[j].RoomRevenue.ToString("#,##0.00") + "\t");
                    Response.Write(listRevenue[j].FBRevenue.ToString("#,##0.00") + "\t");
                    Response.Write(listRevenue[j].SpaRevenue.ToString("#,##0.00") + "\t");
                    Response.Write(listRevenue[j].Others.ToString("#,##0.00") + "\t");
                    Response.Write(listRevenue[j].Total.ToString("#,##0.00") + "\t");
                    Response.Write(listRevenue[j].Budget.ToString("#,##0.00") + "\t");
                    Response.Write("\n");
                }
                Response.Write("Total" + "\t");
                Response.Write("-" + "\t");
                Response.Write(total[0].ToString("#,##0.00") + "\t");
                Response.Write(total[1].ToString("#,##0.00") + "\t");
                Response.Write(total[2].ToString("#,##0.00") + "\t");
                Response.Write(total[3].ToString("#,##0.00") + "\t");
                Response.Write(total[4].ToString("#,##0.00") + "\t");
                Response.Write(total[5].ToString("#,##0.00") + "\t");
                Response.Write("\n");
                Response.Write("\n");
                Response.Write("\n");
            }

            Response.Write("\n");
            Response.Write("Print Date: [" + DateTime.Now + "] ");
            Response.Write("\r\n");
            Response.End();
        }