using System; using System.Collections.Generic; using System.Windows.Forms; using Tanshu.Accounts.BI; using Tanshu.Accounts.Contracts; namespace Tanshu.Accounts.PointOfSale { public partial class frmSaleAnalysisForm : Form { Guid? _details; List _analysis; List _analysisDetail; private static readonly Tanshu.Logging.SqlLogger Log = new Tanshu.Logging.SqlLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public frmSaleAnalysisForm() { InitializeComponent(); Log.Warn(string.Format("Sales Analysis by: {0}", CurrentUser.user.Name)); } private void dtpStart_ValueChanged(object sender, EventArgs e) { ShowStatement(); } private void ShowStatement() { var startDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 00:00:00", dtpStart.Value)); var finishDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); if (_details.HasValue) { _analysisDetail = new SalesAnalysisBI().GetSaleDetail(startDate, finishDate, _details.Value); dgvSale.AutoGenerateColumns = true; dgvSale.DataSource = _analysisDetail; dgvSale.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; dgvSale.Columns[2].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; dgvSale.Columns[3].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; } else { _analysis = new SalesAnalysisBI().GetSale(startDate, finishDate); dgvSale.AutoGenerateColumns = true; dgvSale.DataSource = _analysis; dgvSale.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; dgvSale.Columns[0].Visible = false; dgvSale.Columns[2].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; dgvSale.Columns[3].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; } } private void dtpFinish_ValueChanged(object sender, EventArgs e) { ShowStatement(); } private void Sale_Analysis_Form_Load(object sender, EventArgs e) { dtpStart.Value = DateTime.Today; dtpFinish.Value = DateTime.Today; ShowStatement(); } private void dgvSale_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (!_details.HasValue) _details = ((SalesAnalysisBO)dgvSale.SelectedRows[0].DataBoundItem).ProductGroupID; else _details = null; ShowStatement(); } private void btnPrint_Click(object sender, EventArgs e) { if (!_details.HasValue) { var startDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 00:00:00", dtpStart.Value)); var finishDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); Print.Thermal.PrintSale(_analysis, startDate, finishDate); } else { var startDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 00:00:00", dtpStart.Value)); var finishDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); Print.Thermal.PrintSale(_analysisDetail, startDate, finishDate); } } private void btnCopy_Click(object sender, EventArgs e) { if (_analysisDetail == null) return; var data = string.Format("{0}\t{1}\t{2}\t{3}\n", "Group", "Product", "Quantity", "Amount"); foreach (var item in _analysisDetail) { data += string.Format("{0}\t{1}\t{2}\t{3}\n", item.Section, item.Product, item.Quantity, item.Amount); } Clipboard.SetText(data, TextDataFormat.Text); } } }