using System; using System.Collections.Generic; using System.Windows.Forms; using Tanshu.Accounts.Repository; using Tanshu.Accounts.Contracts; namespace Tanshu.Accounts.PointOfSale { public partial class frmSaleAnalysisForm : Form { IList _list; bool _loading; public frmSaleAnalysisForm() { _loading = true; InitializeComponent(); } private void SaleAnalysisForm_Load(object sender, EventArgs e) { dtpStart.Format = DateTimePickerFormat.Custom; dtpStart.CustomFormat = "dd-MMM-yyyy"; dtpStart.Value = DateTime.Now.Date; dtpFinish.Format = DateTimePickerFormat.Custom; dtpFinish.CustomFormat = "dd-MMM-yyyy"; dtpFinish.Value = DateTime.Now.Date; _loading = false; ShowStatement(); } private void dtpStart_ValueChanged(object sender, EventArgs e) { ShowStatement(); } private void ShowStatement() { if (_loading) return; if (DateTime.Today.Subtract(dtpStart.Value.Date).Days > 5 && !Session.IsAllowed("Accounts Audit")) return; var start = dtpStart.Value.Date.AddHours(6); var finish = dtpFinish.Value.Date.AddDays(1).AddHours(5); _list = new List(); if (finish > start) { var bi = new SalesAnalysisBI(); var list = new List(); list.AddRange(bi.GetSale(start, finish)); list.Add(new SalesAnalysis() { GroupType = " -- ", Amount = 0 }); list.AddRange(bi.GetSettlements(start, finish)); list.Add(new SalesAnalysis() { GroupType = " -- ", Amount = 0 }); var sc = bi.GetServiceCharge(start, finish); if (sc != null) list.Add(sc); foreach (var item in bi.GetServiceTax(start, finish)) { if (item.TaxAmount != 0) { list.Add(new SalesAnalysis() { GroupType = item.Name, Amount = item.TaxAmount }); } } foreach (var item in bi.GetVat(start, finish)) { if (item.TaxAmount != 0) { list.Add(new SalesAnalysis() { GroupType = item.Name, Amount = item.TaxAmount }); } } _list = list; } dgvSale.AutoGenerateColumns = true; dgvSale.DataSource = _list; dgvSale.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; dgvSale.Columns[1].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; dgvSale.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } private void dtpFinish_ValueChanged(object sender, EventArgs e) { ShowStatement(); } private void btnPrint_Click(object sender, EventArgs e) { if (_list != null) { var startDate = dtpStart.Value.Date.AddHours(6); var finishDate = dtpFinish.Value.Date.AddDays(1).AddHours(5); Accounts.Print.Thermal.PrintSale(Session.User.Name, _list, startDate, finishDate); } } } }