|
|
|
|
using DevComponents.DotNetBar;
|
|
|
|
|
using POS.Language.Language;
|
|
|
|
|
using POSV.Component;
|
|
|
|
|
using POSV.Entity;
|
|
|
|
|
using POSV.Helper;
|
|
|
|
|
using POSV.StoreBusiness;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace POSV.Report
|
|
|
|
|
{
|
|
|
|
|
public partial class SalesDayDetailSummary : BusinessForm
|
|
|
|
|
{
|
|
|
|
|
public SalesDayDetailSummary()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
Initialize();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Initialize()
|
|
|
|
|
{
|
|
|
|
|
DefaultGridStyle.setDefaultGridStyle(this.salesListTable);
|
|
|
|
|
|
|
|
|
|
this.startPicker.Value = DateTime.Parse(Global.Instance.BusinessPlan.StartTimeSimple);
|
|
|
|
|
this.endPicker.Value = DateTime.Parse(Global.Instance.BusinessPlan.EndTimeSimple);
|
|
|
|
|
|
|
|
|
|
this.pagerControl1.SetRowsPerPageList(new List<string>() { "100", "300", "500" });
|
|
|
|
|
InitializeCategory();
|
|
|
|
|
GetData();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private int pageNumber = 1;// 当前页码
|
|
|
|
|
private int pageSize = 100;// 每页展示
|
|
|
|
|
private int totalCount = 0;// 总条数
|
|
|
|
|
private int pageCount = 0;// 总页数
|
|
|
|
|
SalesDayDetailSummaryRequest request = null;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化商品大类控件
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void InitializeCategory()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
var sql = "select * from pos_product_type where parentId in ('',null) and products > 0";
|
|
|
|
|
|
|
|
|
|
var _data = db.Query<Entity.ProductType>(sql).ToList();
|
|
|
|
|
|
|
|
|
|
if (_data == null || _data.Count() == 0)
|
|
|
|
|
{
|
|
|
|
|
this.ShowToastNotify(this, LangProxy.ToLang("目前没有商品大类数据"));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
_data.Add(new ProductType() { Id = "", Name = LangProxy.ToLang("全部类别") });
|
|
|
|
|
_data.Sort((a, b) => a.Id.CompareTo(b.Id));
|
|
|
|
|
|
|
|
|
|
this.comProducttype.DataSource = _data.ToList();
|
|
|
|
|
this.comProducttype.ValueMember = "Name";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LOGGER.Info(ex);
|
|
|
|
|
this.ShowToastNotify(this, ex.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ButtonOk_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.GetData();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void GetData()
|
|
|
|
|
{
|
|
|
|
|
request = new SalesDayDetailSummaryRequest();
|
|
|
|
|
|
|
|
|
|
request.StartDate = this.startPicker.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
request.EndDate = this.endPicker.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
request.ProductNo = this.txtProductNo.Text;
|
|
|
|
|
request.SeriesId = (this.comProducttype.SelectedItem as ProductType).Id;
|
|
|
|
|
request.StoreId = Global.Instance.Authc.StoreId;
|
|
|
|
|
|
|
|
|
|
request.PageNumber = this.pageNumber;
|
|
|
|
|
request.PageSize = this.pageSize;
|
|
|
|
|
|
|
|
|
|
var _data = StoreBusinessUtils.SalesOrderSummary(request);
|
|
|
|
|
|
|
|
|
|
if (_data.Item1)
|
|
|
|
|
{
|
|
|
|
|
this.pageCount = _data.Item3.PageCount;
|
|
|
|
|
this.pageNumber = _data.Item3.PageNumber;
|
|
|
|
|
this.pageSize = _data.Item3.PageSize;
|
|
|
|
|
this.totalCount = _data.Item3.TotalCount;
|
|
|
|
|
|
|
|
|
|
this.pagerControl1.TotalPage = totalCount;
|
|
|
|
|
this.pagerControl1.CurrentPage = pageNumber;
|
|
|
|
|
this.pagerControl1.RecordCount = totalCount;
|
|
|
|
|
this.pagerControl1.RowsPerPage = pageSize;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_data.Item3.List.Add(new SalesDayDetailSummaryResponse()
|
|
|
|
|
{
|
|
|
|
|
ProductName = LangProxy.ToLang("合计"),
|
|
|
|
|
Count = _data.Item3.List.Sum(f => f.Count),
|
|
|
|
|
Amount = _data.Item3.List.Sum(f => f.Amount),
|
|
|
|
|
DiscountTotal = _data.Item3.List.Sum(f => f.DiscountTotal),
|
|
|
|
|
Receivable = _data.Item3.List.Sum(f => f.Receivable)
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
this.salesListTable.PrimaryGrid.DataSource = _data.Item3.List;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
this.ShowToastNotify(this, _data.Item2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void pagerControl1_PageChangeWithObject(object obj)
|
|
|
|
|
{
|
|
|
|
|
PagerControl pager = obj as PagerControl;
|
|
|
|
|
|
|
|
|
|
totalCount = pager.RecordCount;
|
|
|
|
|
pageNumber = pager.CurrentPage;
|
|
|
|
|
pageCount = pager.TotalPage;
|
|
|
|
|
pageSize = pager.RowsPerPage;
|
|
|
|
|
GetData();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void buttonX10_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
//先关闭父窗体
|
|
|
|
|
if (this.Owner != null)
|
|
|
|
|
{
|
|
|
|
|
this.Owner.Close();
|
|
|
|
|
}
|
|
|
|
|
//再关闭当前窗体
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void controlBox1_CloseClick(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
buttonX10_Click(null, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void btn_time_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
var obj = sender as ButtonX;
|
|
|
|
|
var date = obj.Tag as string;
|
|
|
|
|
switch (date)
|
|
|
|
|
{
|
|
|
|
|
case "today":
|
|
|
|
|
this.startPicker.Value = DateTime.Now.Date;
|
|
|
|
|
this.endPicker.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
|
|
|
|
|
break;
|
|
|
|
|
case "yesterday":
|
|
|
|
|
this.startPicker.Value = DateTime.Now.AddDays(-1).Date;
|
|
|
|
|
this.endPicker.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59"));
|
|
|
|
|
break;
|
|
|
|
|
case "curWeek":
|
|
|
|
|
//本周
|
|
|
|
|
var dayOfWeek = (int)DateTime.Now.DayOfWeek - 1;
|
|
|
|
|
if (dayOfWeek == -1)
|
|
|
|
|
{
|
|
|
|
|
//周日
|
|
|
|
|
dayOfWeek = 6;
|
|
|
|
|
}
|
|
|
|
|
this.startPicker.Value = DateTime.Now.AddDays(-dayOfWeek).Date;
|
|
|
|
|
this.endPicker.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
|
|
|
|
|
break;
|
|
|
|
|
case "lastWeek":
|
|
|
|
|
//上周
|
|
|
|
|
dayOfWeek = (int)DateTime.Now.DayOfWeek - 1;
|
|
|
|
|
if (dayOfWeek == -1)
|
|
|
|
|
{
|
|
|
|
|
//周日
|
|
|
|
|
dayOfWeek = 6;
|
|
|
|
|
}
|
|
|
|
|
this.startPicker.Value = DateTime.Now.AddDays(-dayOfWeek - 7).Date;
|
|
|
|
|
this.endPicker.Value = DateTime.Parse(DateTime.Now.AddDays(-dayOfWeek - 1).ToString("yyyy-MM-dd 23:59:59"));
|
|
|
|
|
break;
|
|
|
|
|
case "curMonth":
|
|
|
|
|
//当月
|
|
|
|
|
var day = DateTime.Now.Day - 1;
|
|
|
|
|
this.startPicker.Value = DateTime.Now.AddDays(-day).Date;
|
|
|
|
|
this.endPicker.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
|
|
|
|
|
break;
|
|
|
|
|
case "lastMonth":
|
|
|
|
|
//当月
|
|
|
|
|
day = DateTime.Now.Day - 1;
|
|
|
|
|
this.startPicker.Value = DateTime.Now.AddDays(-day).AddMonths(-1).Date;
|
|
|
|
|
this.endPicker.Value = DateTime.Parse(DateTime.Now.AddDays(-day - 1).ToString("yyyy-MM-dd 23:59:59"));
|
|
|
|
|
break;
|
|
|
|
|
case "lastDay":
|
|
|
|
|
//前一天
|
|
|
|
|
var txtDate = Convert.ToDateTime(this.startPicker.Value);
|
|
|
|
|
this.startPicker.Value = txtDate.AddDays(-1).Date;
|
|
|
|
|
this.endPicker.Value = DateTime.Parse(txtDate.AddDays(-1).ToString("yyyy-MM-dd 23:59:59"));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
this.GetData();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void buttonX8_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
var _data = this.salesListTable.PrimaryGrid.DataSource as List<SalesDayDetailSummaryResponse>;
|
|
|
|
|
|
|
|
|
|
if (_data == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var _variable = ReportHelper.SalesDayDetailSummaryVariable(_data, this.request);
|
|
|
|
|
Tuple<bool, string> result = ReportHelper.PrinterTicket("单品汇总", _variable, true, false);
|
|
|
|
|
this.ShowToastNotify(this, string.Format("{0}", result.Item2));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|