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); }
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); } }
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; } } }
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); }
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); } } } }
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(); }
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(); }