narsil/Tanshu.Accounts.PointOfSale/Reports/SaleDetail.cs
tanshu 20eac3c216 Refactor: Instead of a concept of Price/FullPrice, happy hour is now a checkbox in the product.
This needed major refactor in all parts dealing with product or inventory.
2016-04-11 12:31:52 +05:30

82 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using Tanshu.Accounts.Repository;
using Tanshu.Accounts.Contracts;
namespace Tanshu.Accounts.PointOfSale
{
public partial class FrmSaleDetail : Form
{
IList<SalesAnalysisDetail> _list;
public FrmSaleDetail()
{
InitializeComponent();
dgvSale.AutoGenerateColumns = false;
}
private void dtpStart_ValueChanged(object sender, EventArgs e)
{
ShowStatement();
}
private void ShowStatement()
{
if (DateTime.Today.Subtract(dtpStart.Value.Date).Days > 5 && !Session.IsAllowed("Accounts Audit"))
return;
var bi = new ReportsBI();
_list = bi.SaleQuantity(dtpStart.Value, dtpFinish.Value);
foreach (var item in bi.NcQuantity(dtpStart.Value, dtpFinish.Value))
{
var old = _list.FirstOrDefault(x => x.ProductID == item.ProductID);
if (old != null)
old.NC = item.NC;
else
_list.Add(new SalesAnalysisDetail() { Name = item.Name, ProductID = item.ProductID, NC = item.NC });
}
dgvSale.DataSource = _list;
}
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 btnPrint_Click(object sender, EventArgs e)
{
if (_list == null)
return;
var startDate = dtpStart.Value.Date.AddHours(6);
var finishDate = dtpFinish.Value.Date.AddDays(1).AddHours(5);
Print.Thermal.PrintSale(Session.User.Name, _list, startDate, finishDate);
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnExport_Click(object sender, EventArgs e)
{
if (_list == null)
return;
var data = string.Format("{0}\t{1}\t{2}\t{3}\n", "ProductID", "Product", "Sale", "NC");
foreach (var item in _list)
{
data += string.Format("{0}\t{1}\t{2}\t{3}\n", item.ProductID, item.Name, item.Sale, item.NC);
}
Clipboard.SetText(data, TextDataFormat.Text);
}
}
}