using DevComponents.DotNetBar.Controls; using DevComponents.DotNetBar.SuperGrid; using POSV.Card; using POSV.Component; using POSV.Helper; using POSV.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Reflection; using System.Text; using System.Windows.Forms; namespace POSV.Stock { public partial class AskGoodsListForm : BusinessForm { public int Status = 0;//状态 public int PayStatus = 0;//结算状态 public string No = null;//单号 public string TicketId = null;//选中的单据ID public string TicktStatus = null;//选中的单据状态 //选择的明细列表 AskgoodsTicketResponse response; List detailList; public AskGoodsListForm() { InitializeComponent(); this.controlBox1.Text = "要货单信息"; this.controlBox1.ShowApplicationVersion = false; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (this.DesignMode) return; //默认设置一周的查询时间 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")); radioButton2.Checked = true; this.Focus(); this.noTextBox.Focus(); this.noTextBox.SelectAll(); this.ActiveControl = this.noTextBox; //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; AskgoodsTicket(cur, rows); } private void addClick(object sender, EventArgs e) { var addForm = new AskGoodsAddForm(); addForm.OnTicktQuery += Form_OnTicktQuery; TransparentForm trans = new TransparentForm(this, addForm); trans.Show(this); } private void editClick(object sender, EventArgs e) { if ("待审核".Equals(TicktStatus) || "驳回".Equals(TicktStatus)) { var editForm = new AskGoodsEditForm(response, detailList); editForm.OnTicktQuery += Form_OnTicktQuery; TransparentForm trans = new TransparentForm(this, editForm); trans.Show(this); } else { this.ShowToastNotify(this, "只有[待审核、驳回]的要货单才能修改"); return; } } /// /// 审核单据 /// /// /// private void applyClick(object sender, EventArgs e) { try { if (!"待审核".Equals(TicktStatus)) { this.ShowToastNotify(this, "只有[待审核]的要货单才能审核"); return; } AskgoodsStatusRequest request = new AskgoodsStatusRequest(); request.StoreId = Global.Instance.BusinessPlanLog.StoreId; request.TicketId = this.TicketId; request.Type = 2; request.Operator = Global.Instance.BusinessPlanLog.WorkerNo; request.Reason = "审核通过"; var response = StockUtils.AskgoodsStatus(request); //成功 if (response.Item1) { //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; AskgoodsTicket(cur, rows); this.ShowToastNotify(this, response.Item2); } else { this.ShowToastNotify(this, response.Item2); } } catch (Exception ex) { this.ShowToastNotify(this, "要货单审核异常"); LOGGER.Error(ex, "要货单审核异常"); } } private void unApplyClick(object sender, EventArgs e) { try { if (!"已审核".Equals(TicktStatus)) { this.ShowToastNotify(this, "只有[已审核]的要货单才能反审核"); return; } AskgoodsStatusRequest request = new AskgoodsStatusRequest(); request.StoreId = Global.Instance.BusinessPlanLog.StoreId; request.TicketId = this.TicketId; request.Type = 4; request.Operator = Global.Instance.BusinessPlanLog.WorkerNo; request.Reason = "反审核单据"; var response = StockUtils.AskgoodsStatus(request); //成功 if (response.Item1) { //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; AskgoodsTicket(cur, rows); this.ShowToastNotify(this, response.Item2); } else { this.ShowToastNotify(this, response.Item2); } } catch (Exception ex) { this.ShowToastNotify(this, "要货单审核异常"); LOGGER.Error(ex, "要货单审核异常"); } } private void cancelClick(object sender, EventArgs e) { try { if (!"待审核".Equals(TicktStatus)) { this.ShowToastNotify(this, "只有[待审核]的要货单才能作废"); return; } AskgoodsStatusRequest request = new AskgoodsStatusRequest(); request.StoreId = Global.Instance.BusinessPlanLog.StoreId; request.TicketId = this.TicketId; request.Type = 3; request.Operator = Global.Instance.BusinessPlanLog.WorkerNo; request.Reason = "作废单据"; var response = StockUtils.AskgoodsStatus(request); //成功 if (response.Item1) { //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; AskgoodsTicket(cur, rows); this.ShowToastNotify(this, response.Item2); } else { this.ShowToastNotify(this, response.Item2); } } catch (Exception ex) { this.ShowToastNotify(this, "要货单审核异常"); LOGGER.Error(ex, "要货单审核异常"); } } private void queryClick(object sender, EventArgs e) { //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; AskgoodsTicket(cur, rows); } private void exitClick(object sender, EventArgs e) { //先关闭父窗体 if (this.Owner != null) { this.Owner.Close(); } //再关闭当前窗体 this.Close(); } private void cb_change_click(object sender, EventArgs e) { var obj = sender as CheckBoxX; var indexT = obj.Tag as string; if ("全部".Equals(indexT) && obj.Checked) { Status = -1; } if ("待审核".Equals(indexT) && obj.Checked) { Status = 0; } if ("驳回".Equals(indexT) && obj.Checked) { Status = 1; } if ("已审核".Equals(indexT) && obj.Checked) { Status = 2; } if ("已作废".Equals(indexT) && obj.Checked) { Status = 3; } if ("已配送".Equals(indexT) && obj.Checked) { Status = 4; } if ("已收货".Equals(indexT) && obj.Checked) { Status = 5; } //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; AskgoodsTicket(cur, rows); } private void OnCloseTouchClick(object sender, EventArgs e) { //先关闭父窗体 if (this.Owner != null) { this.Owner.Close(); } //再关闭当前窗体 this.Close(); } private void OnControlBoxKeyboardClick(object sender, EventArgs e) { try { KeyboardType keyboardType = KeyboardType.数字; Type type = this.ActiveControl.GetType(); PropertyInfo pinfo = type.GetProperty("Keyboard"); if (pinfo != null) { keyboardType = (KeyboardType)pinfo.GetValue(this.ActiveControl, null); } var keyboard = Application.OpenForms["VirtualKeyboard"]; if (keyboard == null) { keyboard = new VirtualKeyboard(keyboardType); } ((VirtualKeyboard)keyboard).ShowVirtualKeyboard(this, keyboardType); } catch (Exception ex) { LOGGER.Error(ex, "打开屏幕键盘异常"); } } private void OnQueryPageChangeWithObject(object obj) { //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; PagerControl pager = obj as PagerControl; if (pager != null) { AskgoodsTicket(cur, rows); } } public void AskgoodsTicket(int PageNum, int pageSize) { try { var request = new AskgoodsTicketRequest(); request.StoreId = Global.Instance.Authc.StoreId; request.No = this.noTextBox.Text; request.PageNumber = PageNum; request.PageSize = pageSize; request.Status = Status; request.PayStatus = PayStatus; request.StartTime = this.startPicker.Value.ToString("yyyy-MM-dd HH:mm:ss"); request.EndTime = this.endPicker.Value.ToString("yyyy-MM-dd HH:mm:ss"); var response = StockUtils.AskgoodsTicket(request); //成功 if (response.Item1) { List askgoodsTicketResponse = response.Item7; foreach (AskgoodsTicketResponse ticketResponse in askgoodsTicketResponse) { switch (ticketResponse.Status) { case 0: ticketResponse.StatusName = "待审核"; break; case 1: ticketResponse.StatusName = "驳回"; break; case 2: ticketResponse.StatusName = "已审核"; break; case 3: ticketResponse.StatusName = "作废"; break; case 4: ticketResponse.StatusName = "已发货"; break; case 5: ticketResponse.StatusName = "已收货"; break; default: ticketResponse.StatusName = "其他"; break; } switch (ticketResponse.PayStatus) { case 0: ticketResponse.PayStatusName = "未支付"; break; case 1: ticketResponse.PayStatusName = "部分支付"; break; case 2: ticketResponse.PayStatusName = "已支付"; break; case 3: ticketResponse.PayStatusName = "部分退款"; break; case 4: ticketResponse.PayStatusName = "全额退款"; break; case 5: ticketResponse.PayStatusName = "已结算"; break; default: ticketResponse.PayStatusName = "其他"; break; } } this.pagerControl1.TotalPage = response.Item4; this.pagerControl1.CurrentPage = response.Item5; this.pagerControl1.RecordCount = response.Item3; this.pagerControl1.RowsPerPage = response.Item6; ticketListTable.PrimaryGrid.DataSource = askgoodsTicketResponse; } else { List list = new List(); ticketListTable.PrimaryGrid.DataSource = list; this.ShowToastNotify(this, response.Item2); } } catch (Exception ex) { this.ShowToastNotify(this, "要货单列表查询异常"); LOGGER.Error(ex, "要货单列表查询异常"); } } private void OnTicketRowActivated(object sender, DevComponents.DotNetBar.SuperGrid.GridRowActivatedEventArgs e) { GridPanel grid = e.GridPanel; if (e.NewActiveRow != null) { detailListTable.PrimaryGrid.Rows.Clear(); //先清除其他表数据 GridRow row = e.NewActiveRow as GridRow; grid.SetSelected(e.NewActiveRow, false); grid.SetActiveRow(e.NewActiveRow); var ticketId = StringUtils.GetString(row.Cells["id"].Value); var statusName = StringUtils.GetString(row.Cells["statusName"].Value); response = new AskgoodsTicketResponse(); var ticketNo = StringUtils.GetString(row.Cells["no"].Value); var ticketDescription = StringUtils.GetString(row.Cells["description"].Value); var productMoney = StringUtils.GetString(row.Cells["productMoney"].Value); var dispatchMoney = StringUtils.GetString(row.Cells["dispatchMoney"].Value); var totalMoney = StringUtils.GetString(row.Cells["totalMoney"].Value); var deliveryMode = StringUtils.GetString(row.Cells["deliveryMode"].Value); var deliveryModeDesc = StringUtils.GetString(row.Cells["deliveryModeDesc"].Value); var setMan = StringUtils.GetString(row.Cells["setMan"].Value); var checkMan = StringUtils.GetString(row.Cells["checkMan"].Value); response.Id = ticketId; response.No = ticketNo; response.SetMan = setMan; response.CheckMan = checkMan; response.StatusName = statusName; response.Description = ticketDescription; response.ProductMoney = productMoney; response.DispatchMoney = dispatchMoney; response.TotalMoney = totalMoney; response.DeliveryMode = deliveryMode; response.DeliveryModeDesc = deliveryModeDesc; this.TicketId = ticketId; this.No = ticketNo; this.TicktStatus = statusName; AskgoodsTicketDetail(ticketId, 1, 1000); } else { detailListTable.PrimaryGrid.Rows.Clear(); } } public void AskgoodsTicketDetail(string ticketId, int PageNum, int pageSize) { try { var request = new AskgoodsDetailRequest(); request.StoreId = Global.Instance.Authc.StoreId; request.TicketId = ticketId; request.PageNumber = PageNum; request.PageSize = pageSize; var response = StockUtils.AskgoodsDetail(request); //成功 if (response.Item1) { List askgoodsDetailResponse = response.Item7; detailListTable.PrimaryGrid.DataSource = askgoodsDetailResponse; detailList = askgoodsDetailResponse; } else { List list = new List(); detailListTable.PrimaryGrid.DataSource = list; detailList = list; this.ShowToastNotify(this, response.Item2); } } catch (Exception ex) { this.ShowToastNotify(this, "要货单明细查询异常"); LOGGER.Error(ex, "要货单明细查询异常"); } } private void Form_OnTicktQuery(object sender) { //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; AskgoodsTicket(cur, rows); } private void OnTicketDoubleClick(object sender, GridRowDoubleClickEventArgs e) { if ("待审核".Equals(TicktStatus) || "驳回".Equals(TicktStatus)) { var editForm = new AskGoodsEditForm(response, detailList); editForm.OnTicktQuery += Form_OnTicktQuery; TransparentForm trans = new TransparentForm(this, editForm); trans.Show(this); } } /// /// 输入单号按回车 /// /// /// private void in_KeyWord_Enter(object sender, EnterEventArg e) { // 获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; AskgoodsTicket(cur, rows); } private void OnOrderDataBindingComplete(object sender, GridDataBindingCompleteEventArgs e) { var rows = e.GridPanel.Rows; foreach (GridRow row in rows) { row.Cells["productMoney"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["productMoney"].Value)); row.Cells["dispatchMoney"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["dispatchMoney"].Value)); row.Cells["totalMoney"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["totalMoney"].Value)); } } private void OnDetailDataBindingComplete(object sender, GridDataBindingCompleteEventArgs e) { var rows = e.GridPanel.Rows; foreach (GridRow row in rows) { row.Cells["packUnitAmount"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["packUnitAmount"].Value)); 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 BtnPrint(object sender, EventArgs e) { if (response != null && detailList.Count > 0) { this.ShowToastNotify(this, "开始打印"); //构建收银小票模版参数 var vars = StockHelper.BuilderAskGoodsVariable(response, detailList); Tuple result = StockHelper.PrinterTicket("要货单_通用模版", vars, true, false); this.ShowToastNotify(this, string.Format("{0}", result.Item2)); } else { this.ShowToastNotify(this, "请选择要打印的要货单!"); } } } }