using DevExpress.XtraRichEdit.Fields;
using Gs.DevApp.ToolBox;
using Newtonsoft.Json;
using System;
using System.Windows.Forms;
using System.Text.RegularExpressions;
namespace Gs.DevApp.DevFrm.BasicData
{
public partial class Frm_MesItemsShow : DevExpress.XtraEditors.XtraForm
{
string guidList = "";
public Frm_MesItemsShow(string _guidList)
{
InitializeComponent();
this.guidList = _guidList;
this.Text = "设置提前送货日期:" + guidList;
this.btnCancel.Click += BtnCancel_Click;
this.btnSave.Click += BtnSave_Click;
}
///
/// 验证超采率输入值
///
private bool ValidateLossPercent()
{
if (txt_lossPercent.EditValue == null || string.IsNullOrWhiteSpace(txt_lossPercent.Text))
{
txt_lossPercent.EditValue = 0.0;
return true;
}
if (double.TryParse(txt_lossPercent.EditValue.ToString(), out double value))
{
if (value < 0.0 || value > 1.0)
{
MsgHelper.ShowError("超采率必须在0到1之间!");
txt_lossPercent.Focus();
return false;
}
// 格式化显示,保留适当的小数位数
txt_lossPercent.EditValue = Math.Round(value, 4);
return true;
}
else
{
MsgHelper.ShowError("请输入有效的数字!");
txt_lossPercent.EditValue = 0.0;
txt_lossPercent.Focus();
return false;
}
}
///
/// 验证提前到货天数必须为大于0的整数
///
private bool ValidateDay()
{
var text = txt_day.Text?.Trim();
if (string.IsNullOrWhiteSpace(text))
{
// 允许为空,表示不设置提前天数
txt_day.EditValue = null;
return true;
}
if (int.TryParse(text, out int days))
{
if (days <= 0)
{
MsgHelper.ShowError("提前到货天数必须为大于0的整数。");
txt_day.Focus();
return false;
}
// 规范化显示为整数
txt_day.EditValue = days;
return true;
}
else
{
MsgHelper.ShowError("请输入有效的整数天数。");
txt_day.Focus();
return false;
}
}
private void BtnSave_Click(object sender, EventArgs e)
{
if (!ValidateDay())
return;
string _bz10 = txt_day.Text;
string _percent = txt_lossPercent.Text;
string _bz09 = txt_bz09.Text;
// 保存前验证超采率
if (!string.IsNullOrEmpty(_percent) && !ValidateLossPercent())
{
return;
}
var _obj = new
{
guidList = this.guidList,
bz10 = _bz10,//提前到货天数
percent = _percent,
bz09 = _bz09,//后来改为iqc称重属性1要称重0不称重
};
try
{
var strJson = UtilityHelper.HttpPost("", "MesItemsManager/SetDays",
JsonConvert.SerializeObject(_obj));
var _rtn = UtilityHelper.ReturnToDynamic(strJson);
if (_rtn.rtnCode > 0)
{
MsgHelper.ShowInformation("提示:" + _rtn.rtnMsg);
DialogResult = DialogResult.OK;
Close();
}
else
{
MsgHelper.ShowError("提示:" + _rtn.rtnMsg);
DialogResult = DialogResult.None;
}
}
catch (Exception ex)
{
DialogResult = DialogResult.Cancel;
MsgHelper.ShowError("提示:" + ex.Message);
}
}
private void BtnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
}
}