using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using com.hnshituo.pur.vo;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Tool;
using Infragistics.Win.UltraWinGrid;
using Pur.configure;
using Pur.Entity;
using Pur.Pop_upWindow;
using Pur.PublicTools;
namespace Pur.require_plan
{
public partial class FrmOilTrade : FrmPmsBase
{
string errMsg = "";
public FrmOilTrade()
{
InitializeComponent();
this.IsLoadUserView = true;
}
private void FrmOilTrade_Load(object sender, EventArgs e)
{
Init();
ck_is_all.Checked = false;
txt_type1_M.SelectedIndex = 0;
GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], new string[] { });
PublicPur.InitCellEdit(new UltraGrid[] { ultraGrid2 }, new string[] { "CHK", "CARDDID", "M1ADD", "M2ADD", "M3ADD", "M4ADD", "M5ADD", "M6ADD", "M7ADD", "M8ADD", "M9ADD", "M10ADD", "M11ADD", "M12ADD", "M1USE", "M2USE", "M3USE", "M4USE", "M5USE", "M6USE", "M7USE", "M8USE", "M9USE", "M10USE", "M11USE", "M12USE", "remain", "REMARK" });
PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum" }, new String[] { "共{0}条", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}" }, new string[] { "CARDDID", "M1ADD", "M2ADD", "M3ADD", "M4ADD", "M5ADD", "M6ADD", "M7ADD", "M8ADD", "M9ADD", "M10ADD", "M11ADD", "M12ADD", "M1USE", "M2USE", "M3USE", "M4USE", "M5USE", "M6USE", "M7USE", "M8USE", "M9USE", "M10USE", "M11USE", "M12USE" }, this.ultraGrid2.DisplayLayout.Bands[0], SummaryDisplayAreas.TopFixed);
PublicPur.SetupSummaryHeade(new String[] { "Count" }, new String[] { "共{0}条" }, new string[] { "Id" }, this.ultraGrid1.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed);
}
#region toolbar工具栏
///
/// toolbar
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
Query();
break;
case "Save":
DoSave();
break;
case "Refresh":
doQuery_d("");
break;
case "Close":
this.Close();
break;
case "ImportUse":
importUse();
break;
case "ComputeAdd":
computeAdd();
break;
case "CarryOver":
carryOver();
break;
case "doExcel": // ButtonTool
doExcel();
break;
}
}
///
/// excel
///
private void doExcel()
{
try
{
this.Cursor = Cursors.Default;
if (ultraGrid2.Rows.Count <= 0)
{
MessageUtil.ShowTips("无可导出的消耗充值明细!");
return;
}
String strDpt = "";
String strType = "";
String tips = "";
if (ultraGrid1.ActiveRow != null)
{
strDpt = ultraGrid1.ActiveRow.GetCellValue("USERORGNAME").ToString().Trim();
strType = ultraGrid1.ActiveRow.GetCellValue("type").ToString().Trim();
}
if (!String.IsNullOrEmpty(strDpt))
{
tips = strDpt;
if (!String.IsNullOrEmpty(strType))
{
tips = tips+"_" + strType + "";
}
}
ArrayList alUltraGrid = new ArrayList();
alUltraGrid.Add(ultraGrid2);
ArrayList alSheeft = new ArrayList();
alSheeft.Add(tips+"充值消耗明细");
GridHelper.ulGridToExcel(alUltraGrid, alSheeft, tips + "充值消耗明细");
}
catch (Exception e)
{
MessageUtil.ShowTips("导出失败" + e.Message);
}
finally
{
this.Cursor = Cursors.Default;
}
}
///
/// 年末转结
///
private void carryOver()
{
frmPop_selectYear frm = new frmPop_selectYear(this.ob);
frm.ShowDialog();
if (frm.tips == "1")
{
String StrYear = frm.year + "";
OilTrade res = new OilTrade();
res.Year = StrYear;
res.CreateName = UserInfo.GetUserName();
res.CreateTime = DateTime.Now;
res.CreateUserid = UserInfo.GetUserID();
CoreResult crt = this.execute("com.hnshituo.pur.requireplan.service.OilTradeService", "carryOver", new object[] { res });
if (crt.Resultcode == 0)
{
MessageUtil.ShowTips("操作成功!");
}
else
{
MessageUtil.ShowTips("操作成功:" + crt.Resultmsg);
}
}
}
///
/// 查询头
///
private void Query()
{
try
{
this.Cursor = Cursors.WaitCursor;
cardM.Clear();
trade.Clear();
OilCardM cardM1 = new OilCardM();
cardM1.OilCardMId = txt_Card_No_M.Text.Trim();
cardM1.UserOrgName = txt_org_name.Text.Trim();
if (txt_type1_M.SelectedIndex != -1)
{
cardM1.Type = txt_type1_M.Value.ToString().Trim();
}
cardM1.DeleteUserid = txt_cardMD_no.Text.Trim();
cardM1.UpdateUserid = txt_User_name1.Text.Trim();
DataTable dt = this.execute("com.hnshituo.pur.requireplan.service.OilCardMService", "find_CardM", new object[] { cardM1 });
if (dt != null)
{
GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);
GridHelper.RefreshAndAutoSize(ultraGrid1);
}
}
catch (Exception ex)
{
MessageUtil.ShowError("加载数据失败;" + ex);
}
finally
{
this.Cursor = Cursors.Default;
}
}
///
/// 保存
///
private void DoSave()
{
try
{
ultraGrid2.UpdateData();
int i = 0;
ArrayList list = new ArrayList();
foreach (UltraGridRow row in ultraGrid2.Rows)
{
if (Convert.ToBoolean(row.Cells["CHK"].Value))
{
i++;
OilTrade res = new OilTrade();
res.CardDId = row.Cells["CARDDID"].Value.ToString().Trim();
res.Id = row.Cells["ID"].Value.ToString().Trim();
res.Year = row.Cells["year"].Value.ToString().Trim();
res.M1Use = row.Cells["M1USE"].Value.ToString().Trim();
res.M2Use = row.Cells["M2USE"].Value.ToString().Trim();
res.M3Use = row.Cells["M3USE"].Value.ToString().Trim();
res.M4Use = row.Cells["M4USE"].Value.ToString().Trim();
res.M5Use = row.Cells["M5USE"].Value.ToString().Trim();
res.M6Use = row.Cells["M6USE"].Value.ToString().Trim();
res.M7Use = row.Cells["M7USE"].Value.ToString().Trim();
res.M8Use = row.Cells["M8USE"].Value.ToString().Trim();
res.M9Use = row.Cells["M9USE"].Value.ToString().Trim();
res.M10Use = row.Cells["M10USE"].Value.ToString().Trim();
res.M11Use = row.Cells["M11USE"].Value.ToString().Trim();
res.M12Use = row.Cells["M12USE"].Value.ToString().Trim();
res.M1Add = row.Cells["M1ADD"].Value.ToString().Trim();
res.M2Add = row.Cells["M2ADD"].Value.ToString().Trim();
res.M3Add = row.Cells["M3ADD"].Value.ToString().Trim();
res.M4Add = row.Cells["M4ADD"].Value.ToString().Trim();
res.M5Add = row.Cells["M5ADD"].Value.ToString().Trim();
res.M6Add = row.Cells["M6ADD"].Value.ToString().Trim();
res.M7Add = row.Cells["M7ADD"].Value.ToString().Trim();
res.M8Add = row.Cells["M8ADD"].Value.ToString().Trim();
res.M9Add = row.Cells["M9ADD"].Value.ToString().Trim();
res.M10Add = row.Cells["M10ADD"].Value.ToString().Trim();
res.M11Add = row.Cells["M11ADD"].Value.ToString().Trim();
res.M12Add = row.Cells["M12ADD"].Value.ToString().Trim();
res.Remain = row.Cells["REMAIN"].Value.ToString().Trim();
res.Remark = row.Cells["REMARK"].Value.ToString().Trim();
if (res == null)
return;
if (TestData(res) == false)
{
MessageUtil.ShowTips(errMsg);
return;
}
if (res.Id.Equals(""))
{
res.CreateName = UserInfo.GetUserName();
res.CreateTime = DateTime.Now;
res.CreateUserid = UserInfo.GetUserID();
}
else
{
res.UpdateName = UserInfo.GetUserName();
res.UpdateTime = DateTime.Now;
res.UpdateUserid = UserInfo.GetUserID();
}
list.Add(res);
}
}
if (i == 0)
{
MessageUtil.ShowWarning("请选择需要操作的记录!");
return;
}
if (MessageBox.Show("是否确认保存数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
return;
CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.OilTradeService", "doSave", new object[] { list, 0, 0 });
if (re.Resultcode == 0)
{
MessageUtil.ShowTips("数据保存成功!");
Query();
OilTrade strbdg = (OilTrade)list[0];
string stroldId = strbdg.Did;
ConfigureClassCommon.doActiveSelRow(ultraGrid2, "DID", stroldId);
}
else
{
MessageUtil.ShowTips("保存失败:" + re.Resultmsg);
}
}
catch (Exception ex)
{
MessageUtil.ShowError("保存失败:" + ex);
}
}
///
/// 查询行
///
///
private void doQuery_d(string p)
{
trade.Clear();
try
{
String strMid="";
if (!ck_is_all.Checked)
{
if (ultraGrid1.ActiveRow == null)
{
return;
}
strMid = ultraGrid1.ActiveRow.GetCellValue("ID").ToString().Trim();
if (String.IsNullOrEmpty(strMid))
{
MessageUtil.ShowTips("主卡编号为空");
return;
}
}
OilTrade trade1 = new OilTrade();
trade1.Mid = strMid;
trade1.UserName = String.IsNullOrEmpty(QUse_Name.Text.Trim()) ? txt_User_name1.Text.Trim() : QUse_Name.Text.Trim();
trade1.CardDId = String.IsNullOrEmpty(Qcard_d_no.Text.Trim()) ? txt_cardMD_no.Text.Trim() : Qcard_d_no.Text.Trim();
trade1.Year = Qyear.Text.ToString().Trim();
if (Qstatus.SelectedIndex != -1)
{
trade1.Status = Qstatus.Value.ToString().Trim();
}
DataTable dt = this.execute("com.hnshituo.pur.requireplan.service.OilTradeService", "find_Trade", new object[] { trade1 });
if (dt != null)
{
GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);
GridHelper.RefreshAndAutoSize(ultraGrid2);
if (String.IsNullOrEmpty(p))
{
publicPms.doActiveSelRow(ultraGrid1, "OILCARDID", p);
}
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("加载数据异常:"+ex);
}
}
///
/// 计算充值金额
///
private void computeAdd()
{
try
{
this.Cursor = Cursors.WaitCursor;
//获取计算哪个月的充值金额
frmPop_selectDate frm = new frmPop_selectDate(this.ob, "0");
frm.ShowDialog();
if (frm.tips == "1")
{
DateTime date = frm.date;
if (date == null)
{
MessageUtil.ShowTips("选择的月份为空");
}
String strComputerType = frm.computerType;
String limit = frm.limitCount;
if (String.IsNullOrEmpty(strComputerType))
{
MessageUtil.ShowTips("选择的计算模式为空");
return;
}
OilTrade res = new OilTrade();
res.DeleteTime = date;
res.DeleteUserid = strComputerType;
res.CreateName = UserInfo.GetUserName();
res.CreateTime = DateTime.Now;
res.CreateUserid = UserInfo.GetUserID();
res.DeleteName = limit;
CoreResult crt = this.execute("com.hnshituo.pur.requireplan.service.OilTradeService", "computeAdd", new object[] { res });
if (crt.Resultcode == 0)
{
MessageUtil.ShowTips("操作成功!");
}
else
{
MessageUtil.ShowTips("操作失败:" + crt.Resultmsg);
doQuery_d("");
}
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("操作失败:"+ex.Message);
}
finally
{
this.Cursor = Cursors.Default;
}
}
///
/// 导入消耗
///
private void importUse()
{
FrmPurOilImportUse frm = new FrmPurOilImportUse(this.ob);
frm.ShowDialog();
if (frm.strTips == "1")
{
doQuery_d("");
}
}
#endregion
#region 界面事件
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
doQuery_d("");
}
#endregion
#region 公共函数
private void Init()
{
//绑定年份数据
DataTable dt1 = new DataTable();
dt1.Columns.Add("YEAR", Type.GetType("System.Int32"));
for (int i = DateTime.Now.AddYears(-3).Year; i <= DateTime.Now.AddYears(3).Year; i++)
dt1.Rows.Add(new object[] { i });
Qyear.DataSource = dt1;
Qyear.ValueMember = "YEAR";
Qyear.DisplayMember = "YEAR";
Qyear.Value = DateTime.Now.Year.ToString();
}
///
/// 判断是否为正数数字
///
///
///
private bool IsNum(string str)
{
if (str != "")
{
return StringUtil.IsNumber(str);
}
return true;
}
///
///
///
///
///
private bool isrightRange(String str)
{
if (!String.IsNullOrEmpty(str))
{
if (Convert.ToDouble(str) >= 200000 || Convert.ToDouble(str) <= -200000)
{
errMsg = "超出最大上限20万!";
return false;
}
}
return true;
}
///
/// 校验保存填写数据是否满足要求
///
///
///
private bool TestData(OilTrade res)
{
try
{
if (String.IsNullOrEmpty(res.Id))
{
if (String.IsNullOrEmpty(res.CardDId.ToString()))
{
errMsg = "若新增卡交易记录,需填写副卡卡号!";
return false;
}
}
else
{
if (String.IsNullOrEmpty(res.CardDId.ToString()))
{
errMsg = "副卡卡号不能为空!";
return false;
}
}
if (!IsNum(res.Year))
{
errMsg = "年份输入格式不正确!";
return false;
}
if (res.Year.Length!=4)
{
errMsg = "年份输入格式不正确!";
return false;
}
if (!IsNum(res.Remain.ToString()))
{
errMsg = "年初卡余额请输入数字!";
return false;
}
if (isrightRange(res.Remain.ToString()) == false)
{
errMsg = "年初卡余额" + errMsg;
return false;
}
if (!IsNum(res.M1Use.ToString()))
{
errMsg = "去年12月消耗输入数字!";
return false;
}
if (isrightRange(res.M1Use.ToString()) == false)
{
errMsg = "去年12月消耗" + errMsg;
return false;
}
if (!IsNum(res.M2Use.ToString()))
{
errMsg = "1月消耗请输入数字!";
return false;
}
if (isrightRange(res.M2Use.ToString()) == false)
{
errMsg = "1月消耗" + errMsg;
return false;
}
if (!IsNum(res.M3Use.ToString()))
{
errMsg = "2月消耗请输入数字!";
return false;
}
if (isrightRange(res.M3Use.ToString()) == false)
{
errMsg = "2月消耗" + errMsg;
return false;
}
if (!IsNum(res.M4Use.ToString()))
{
errMsg = "3月消耗请输入数字!";
return false;
}
if (isrightRange(res.M4Use.ToString()) == false)
{
errMsg = "3月消耗" + errMsg;
return false;
}
if (!IsNum(res.M5Use.ToString()))
{
errMsg = "4月消耗请输入数字!";
return false;
}
if (isrightRange(res.M5Use.ToString()) == false)
{
errMsg = "4月消耗" + errMsg;
return false;
}
if (!IsNum(res.M6Use.ToString()))
{
errMsg = "5月消耗请输入数字!";
return false;
}
if (isrightRange(res.M6Use.ToString()) == false)
{
errMsg = "5月消耗" + errMsg;
return false;
}
if (!IsNum(res.M7Use.ToString()))
{
errMsg = "6月消耗请输入数字!";
return false;
}
if (isrightRange(res.M7Use.ToString()) == false)
{
errMsg = "6月消耗" + errMsg;
return false;
}
if (!IsNum(res.M8Use.ToString()))
{
errMsg = "7月消耗请输入数字!";
return false;
}
if (isrightRange(res.M8Use.ToString()) == false)
{
errMsg = "7月消耗" + errMsg;
return false;
}
if (!IsNum(res.M9Use.ToString()))
{
errMsg = "8月消耗请输入数字!";
return false;
}
if (isrightRange(res.M9Use.ToString()) == false)
{
errMsg = "8月消耗" + errMsg;
return false;
}
if (!IsNum(res.M10Use.ToString()))
{
errMsg = "9月消耗请输入数字!";
return false;
}
if (isrightRange(res.M10Use.ToString()) == false)
{
errMsg = "9月消耗" + errMsg;
return false;
}
if (!IsNum(res.M11Use.ToString()))
{
errMsg = "10月消耗请输入数字!";
return false;
}
if (isrightRange(res.M11Use.ToString()) == false)
{
errMsg = "10月消耗" + errMsg;
return false;
}
if (!IsNum(res.M12Use.ToString()))
{
errMsg = "11月消耗请输入数字!";
return false;
}
if (isrightRange(res.M12Use.ToString()) == false)
{
errMsg = "11月消耗" + errMsg;
return false;
}
if (!IsNum(res.M1Add.ToString()))
{
errMsg = "1月充值输入数字!";
return false;
}
if (isrightRange(res.M1Add.ToString()) == false)
{
errMsg = "1月充值" + errMsg;
return false;
}
if (!IsNum(res.M2Add.ToString()))
{
errMsg = "2月充值请输入数字!";
return false;
}
if (isrightRange(res.M2Add.ToString()) == false)
{
errMsg = "2月充值" + errMsg;
return false;
}
if (!IsNum(res.M3Add.ToString()))
{
errMsg = "3月充值请输入数字!";
return false;
}
if (isrightRange(res.M3Add.ToString()) == false)
{
errMsg = "3月充值" + errMsg;
return false;
}
if (!IsNum(res.M4Add.ToString()))
{
errMsg = "4月充值请输入数字!";
return false;
}
if (isrightRange(res.M4Add.ToString()) == false)
{
errMsg = "4月充值" + errMsg;
return false;
}
if (!IsNum(res.M5Add.ToString()))
{
errMsg = "5月充值请输入数字!";
return false;
}
if (isrightRange(res.M5Add.ToString()) == false)
{
errMsg = "5月充值" + errMsg;
return false;
}
if (!IsNum(res.M6Add.ToString()))
{
errMsg = "6月充值请输入数字!";
return false;
}
if (isrightRange(res.M6Add.ToString()) == false)
{
errMsg = "6月充值" + errMsg;
return false;
}
if (!IsNum(res.M7Add.ToString()))
{
errMsg = "7月充值请输入数字!";
return false;
}
if (isrightRange(res.M7Add.ToString()) == false)
{
errMsg = "7月充值" + errMsg;
return false;
}
if (!IsNum(res.M8Add.ToString()))
{
errMsg = "8月充值请输入数字!";
return false;
}
if (isrightRange(res.M8Add.ToString()) == false)
{
errMsg = "8月充值" + errMsg;
return false;
}
if (!IsNum(res.M9Add.ToString()))
{
errMsg = "9月充值请输入数字!";
return false;
}
if (isrightRange(res.M9Add.ToString()) == false)
{
errMsg = "9月充值" + errMsg;
return false;
}
if (!IsNum(res.M10Add.ToString()))
{
errMsg = "10月充值请输入数字!";
return false;
}
if (isrightRange(res.M10Add.ToString()) == false)
{
errMsg = "10月充值" + errMsg;
return false;
}
if (!IsNum(res.M11Add.ToString()))
{
errMsg = "11月充值请输入数字!";
return false;
}
if (isrightRange(res.M11Add.ToString()) == false)
{
errMsg = "11月充值" + errMsg;
return false;
}
if (!IsNum(res.M12Add.ToString()))
{
errMsg = "12月充值请输入数字!";
return false;
}
if (isrightRange(res.M12Add.ToString()) == false)
{
errMsg = "12月充值" + errMsg;
return false;
}
return true;
}
catch (Exception ex)
{
errMsg = ex + "";
//MessageUtil.ShowError(""+ex);
return false;
}
}
#endregion
private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
{
e.Row.Cells["Year"].Value = Qyear.Text.ToString();
}
private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e)
{
if (e.Row.Cells["status"].Value.ToString().Equals("暂停"))
{
e.Row.Appearance.ForeColor = Color.Red;
}
else if (e.Row.Cells["status"].Value.ToString().Equals("注销"))
{
e.Row.Appearance.ForeColor = Color.Gray;
}
else
{
e.Row.Appearance.ForeColor = Color.Black;
}
}
private void btn_query_d_Click(object sender, EventArgs e)
{
doQuery_d("");
}
}
}