using DevComponents.DotNetBar.Controls; using DevComponents.DotNetBar.SuperGrid; using POSV.Card; using POSV.Component; using POSV.Report; using POSV.Template; using POSV.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace POSV.Stock { public partial class StoreStorageConsumeListForm : BusinessForm { public StoreStorageConsumeListForm() { InitializeComponent(); this.controlBox1.Text = "耗料单"; this.controlBox1.ShowApplicationVersion = false; //默认设置一周的查询时间 this.startPicker.Value = Convert.ToDateTime(DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd 00:00:00")); this.endPicker.Value = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); BuilderOrderGrid(); BuilderOrderDetailGrid(); Task.Factory.StartNew(() => { this.Invoke(new Action(() => { OnQueryClick(this, null); })); }); } private void BuilderOrderGrid() { var panel = orderGrid.PrimaryGrid; panel.RowHeaderIndexOffset = 1; panel.DefaultRowHeight = 40; var cols = ReportUtils.GetGridObject("POSV.Stock.", "StoreStorageConsumeTicket.json"); if(cols != null) { foreach(var col in cols) { panel.Columns.Add(new DevComponents.DotNetBar.SuperGrid.GridColumn() { Name = col.Name, HeaderText = col.HeaderText, DataPropertyName = col.DataPropertyName, Visible = col.Display, Width = col.Width }); } } else { panel.NoRowsText = "加载报表错误,请联系管理员"; } } private void BuilderOrderDetailGrid() { var panel = detailGrid.PrimaryGrid; panel.RowHeaderIndexOffset = 1; panel.DefaultRowHeight = 40; var cols = ReportUtils.GetGridObject("POSV.Stock.", "StoreStorageConsumeTicketDetail.json"); if (cols != null) { foreach (var col in cols) { panel.Columns.Add(new DevComponents.DotNetBar.SuperGrid.GridColumn() { Name = col.Name, HeaderText = col.HeaderText, DataPropertyName = col.DataPropertyName, Visible = col.Display, Width = col.Width }); } } else { panel.NoRowsText = "加载报表错误,请联系管理员"; } } private int _orderStatus = 0; /// /// 状态变更,触发查询 /// /// /// private void OnStatusCheckedChanged(object sender, EventArgs e) { if(sender is CheckBoxX) { var obj = sender as CheckBoxX; if (obj.Checked) { _orderStatus = StringUtils.GetInt(obj.Tag); } } } /// /// 查询 /// /// /// private void OnQueryClick(object sender, EventArgs e) { QueryOrder(1, this.orderPaper.RowsPerPage); } private void QueryOrder(int pageNumber, int pageSize) { var startTime = startPicker.Value.ToString("yyyy-MM-dd HH:mm:ss"); var endTime = endPicker.Value.ToString("yyyy-MM-dd HH:mm:ss"); var queryNo = this.txtNo.Text.Trim(); var res = StockUtils.QueryStoreStorageOutTicketList("2", "no", queryNo, pageNumber, pageSize, _orderStatus.ToString(), startTime, endTime); if (res.Item1) { if (this.IsDisposed || !this.IsHandleCreated) return; orderGrid.PrimaryGrid.DataSource = res.Item3.List; this.orderPaper.TotalPage = res.Item3.PageCount; this.orderPaper.CurrentPage = res.Item3.PageNumber; this.orderPaper.RecordCount = res.Item3.TotalCount; this.orderPaper.RowsPerPage = res.Item3.PageSize; } else { this.ShowToastNotify(this, res.Item2); } } private string _ticketId = null; private void OnOrderRowActivated(object sender, DevComponents.DotNetBar.SuperGrid.GridRowActivatedEventArgs e) { if(e.NewActiveRow != null) { GridRow row = e.NewActiveRow as GridRow; _ticketId = StringUtils.GetString(row.Cells["id"].Value); QueryDetail(_ticketId, 1, this.detailPaper.RowsPerPage); } else { this.detailGrid.PrimaryGrid.Rows.Clear(); } } private void QueryDetail(string ticketId, int pageNumber, int pageSize) { var res = StockUtils.QueryStoreStorageOutTicketDetailList(ticketId, pageNumber, pageSize); if (res.Item1) { this.detailGrid.PrimaryGrid.DataSource = res.Item3.List; this.detailPaper.TotalPage = res.Item3.PageCount; this.detailPaper.CurrentPage = res.Item3.PageNumber; this.detailPaper.RecordCount = res.Item3.TotalCount; this.detailPaper.RowsPerPage = res.Item3.PageSize; } else { this.ShowToastNotify(this, res.Item2); } } private void OnOrderPageChange(object obj) { int cur = this.orderPaper.CurrentPage; int rows = this.orderPaper.RowsPerPage; QueryOrder(cur, rows); } private void OnDetailPageChange(object obj) { int cur = this.detailPaper.CurrentPage; int rows = this.detailPaper.RowsPerPage; if (!string.IsNullOrEmpty(_ticketId)) { QueryDetail(_ticketId, cur, rows); } } /// /// 新增入库单 /// /// /// private void OnAddStorageInClick(object sender, EventArgs e) { var form = new StoreStorageConsumeAddForm(OperateType.ADD, null); form.OnSaveSuccess += (o, args) => { //保存成功,刷新 OnQueryClick(o, args); }; TransparentForm trans = new TransparentForm(this, form); trans.ShowDialog(this); } private void OnCloseClick(object sender, EventArgs e) { if(this.Owner != null) { this.Owner.Close(); } this.Close(); } private void OnExistClick(object sender, EventArgs e) { OnCloseClick(sender, e); } private void OnDataBindingComplete(object sender, GridDataBindingCompleteEventArgs e) { var rows = e.GridPanel.Rows; foreach(GridRow row in rows) { row.Cells["amount"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["amount"].Value)); row.Cells["price"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["price"].Value)); row.Cells["money"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["money"].Value)); } } private void OnModifyClick(object sender, EventArgs e) { var row = this.orderGrid.ActiveRow as GridRow; if(row == null) { this.ShowToastNotify(this, "请选择修改的单据"); return; } var id = row.Cells["id"].Value.ToString(); var status = row.Cells["status"].Value.ToString(); if(status != "0") { this.ShowToastNotify(this, "请选择新建状态的单据"); return; } var form = new StoreStorageConsumeAddForm(OperateType.EDIT, id); form.OnSaveSuccess += (o, args) => { //保存成功,刷新 OnQueryClick(o, args); }; TransparentForm trans = new TransparentForm(this, form); trans.ShowDialog(this); } private void OnConfirmClick(object sender, EventArgs e) { var row = this.orderGrid.ActiveRow as GridRow; if (row == null) { this.ShowToastNotify(this, "请选择操作的单据"); return; } var id = row.Cells["id"].Value.ToString(); DialogForm dialog = new DialogForm("操作提示", "确定审核通过?", MessageBoxIcon.Question, MessageBoxButtons.OKCancel); if(dialog.ShowDialog(this) == DialogResult.OK) { var res = StockUtils.ChangeStoreStorageOutTicketStatus(id, 2, Global.Instance.Worker.Name, null); if (res.Item1) { dialog = new DialogForm("操作提示", "审核成功", MessageBoxIcon.Warning, MessageBoxButtons.OK); dialog.ShowDialog(this); OnQueryClick(sender, e); } else { dialog = new DialogForm("操作提示", "审核失败" + res.Item2, MessageBoxIcon.Warning, MessageBoxButtons.OK); dialog.ShowDialog(this); } } } /// /// 作废 /// /// /// private void OnCancelClick(object sender, EventArgs e) { var row = this.orderGrid.ActiveRow as GridRow; if (row == null) { this.ShowToastNotify(this, "请选择操作的单据"); return; } var id = row.Cells["id"].Value.ToString(); DialogForm dialog = new DialogForm("操作提示", "确定作废?", MessageBoxIcon.Question, MessageBoxButtons.OKCancel); if (dialog.ShowDialog(this) == DialogResult.OK) { var res = StockUtils.ChangeStoreStorageOutTicketStatus(id, 3, Global.Instance.Worker.Name, null); if (res.Item1) { dialog = new DialogForm("操作提示", "作废成功", MessageBoxIcon.Warning, MessageBoxButtons.OK); dialog.ShowDialog(this); OnQueryClick(sender, e); } else { dialog = new DialogForm("操作提示", "作废失败" + res.Item2, MessageBoxIcon.Warning, MessageBoxButtons.OK); dialog.ShowDialog(this); } } } /// /// 最小化 /// /// /// private void OnMinimizedClick(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void OnTxtNoCustomClick(object sender, EventArgs e) { var obj = sender as NormalTextBox; var txtForm = new TxtKeyboardForm(StringUtils.GetString(obj.Text)); txtForm.NotifyChanged += (o, args) => { obj.Text = args.Data.ToString(); }; var trans = new TransparentForm(this, .5, txtForm); trans.Show(this); } } }