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;
using CoreFS.CA06;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using System.Collections;
using Core.Mes.Client.Comm.Tool;
using Infragistics.Win.UltraWinGrid;
using Core.StlMes.Client.YdmPipeManage.Tool;
using Infragistics.Win;
namespace Core.StlMes.Client.YdmPipeManage
{
public partial class FrmBillReport : FrmBase
{
private string[] _salgPermissions;
private string[] _storagerPur;
public FrmBillReport()
{
InitializeComponent();
this.IsLoadUserView = true;
}
private void FrmBillReport_Load(object sender, EventArgs e)
{
DateTime now = DateTime.Now;
DateTime dt1 = new DateTime(now.Year, now.Month, 1);//当月第一天
DateTime dt2 = dt1.AddMonths(1).AddDays(-1);//当月最后一天
StratBillTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00");
EndBillTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59");
CloseStratTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00");
CloseEndTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59");
BaseMethod.InitMonth(cmbMonth);
BaseMethod.InitYear(cmbYear);
cmbMonth.Value = string.Format("{0:00}", DateTime.Now.Month);
cmbYear.Value = DateTime.Now.Year.ToString();
_salgPermissions = BaseMethod.InitPermissions(this.ValidDataPurviewIds, ob);
_storagerPur = BaseMethod.WarehousePermissions("", this.ValidDataPurviewIds, ob);
}
///
/// 重写基类方法
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
doQuery();
break;
case "Export"://导出
if (ultraTabControl1.SelectedTab.Key.Equals("0"))
{
GridHelper.ulGridToExcel(GridBill, "提单报表子信息");
}
else
{
GridHelper.ulGridToExcel(ultraGrid1, "提单报表主信息");
}
break;
case "Close":
this.Close();
break;
}
}
///
/// 验证Checked是否勾选,显示控件可编辑 打勾表示可编辑,不打勾表示不可编辑
///
///
///
private void chk_CheckedChanged(object sender, EventArgs e)
{
if (chkBillList.Checked) { txtBillList.Enabled = true; } else { txtBillList.Enabled = false; }
if (chkBillDate.Checked) { StratBillTime.Enabled = true; EndBillTime.Enabled = true; } else { StratBillTime.Enabled = false; EndBillTime.Enabled = false; }
if (chkCloseDate.Checked) { CloseStratTime.Enabled = true; CloseEndTime.Enabled = true; } else { CloseStratTime.Enabled = false; CloseEndTime.Enabled = false; }
if (chkOrder.Checked) { txtOrderNo.Enabled = true; } else { txtOrderNo.Enabled = false; }
if (chkBillType.Checked) { cmbStatus.Enabled = true; } else { cmbStatus.Enabled = false; }
if (chkSoage.Checked) { cmbSoage.Enabled = true; } else { cmbSoage.Enabled = false; }
if (chkjies.Checked) { cmbJies.Enabled = true; } else { cmbJies.Enabled = false; }
if (ChcTime.Checked) { cmbYear.Enabled = true; cmbMonth.Enabled = true; } else { cmbYear.Enabled = false; cmbMonth.Enabled = false; }
if (chkHk.Checked) { cmbHk.Enabled = true; cmbCkf.Enabled = true; cmbYf.Enabled = true; } else { cmbHk.Enabled = false; cmbCkf.Enabled = false; cmbYf.Enabled = false; }
if (chkJuno.Checked) { cmbJuNo.Enabled = true; } else { cmbJuNo.Enabled = false; }
}
///
/// 查询
///
private void doQuery()
{
if (!ValidQuery()) return;
ArrayList list = new ArrayList();
string strStartTime = "";//开始时间
string strEntTime = "";//结束时间
string strStatus = "";
string strBill = "";//提单号
string strOrder = "";
string closeStartTime = "";
string closeEndTime = "";
//string strHk="";
//string strCkf = "";
//string strYf = "";
if (chkBillList.Checked)
{
strBill = txtBillList.Text.Trim();
}
if (chkBillDate.Checked)
{
strStartTime = StratBillTime.Value.ToString();
strEntTime = EndBillTime.Value.ToString();
if (DataTimeUtil.JudgeTime(DateTime.Parse(strStartTime), DateTime.Parse(strEntTime)) == 0)
{
MessageUtil.ShowTips("您所选择的日期区域不对,请重新选择!");
return;
}
TimeSpan ts = Convert.ToDateTime(strEntTime) - Convert.ToDateTime(strStartTime);
int sub = ts.Days;
if (sub > 92)
{
MessageUtil.ShowTips("两个日期不能相差90天!");
return;
}
}
if(chkCloseDate.Checked)
{
closeStartTime = CloseStratTime.Value.ToString();
closeEndTime = CloseEndTime.Value.ToString();
if (DataTimeUtil.JudgeTime(DateTime.Parse(closeStartTime), DateTime.Parse(closeEndTime)) == 0)
{
MessageUtil.ShowTips("您所选择的日期区域不对,请重新选择!");
return;
}
TimeSpan ts = Convert.ToDateTime(closeEndTime) - Convert.ToDateTime(closeStartTime);
int sub = ts.Days;
if (sub >92)
{
MessageUtil.ShowTips("两个日期不能相差92天!");
return;
}
}
if (chkBillType.Checked)
{
strStatus = cmbStatus.Value.ToString();
}
if (chkOrder.Checked)
{
strOrder = txtOrderNo.Text.Trim();
}
string strSoage = "";
if (chkSoage.Checked)
{
strSoage = cmbSoage.Value.ToString();
}
string strJies = "";
if(chkjies.Checked)
{
strJies=cmbJies.Value.ToString();
}
string beginTime = "";
if (ChcTime.Checked)
{
beginTime = cmbYear.Text.Trim() + cmbMonth.Text.Trim();
}
//strHk = cmbHk.Value.ToString();
//strCkf = cmbCkf.Value.ToString();
//strYf=cmbYf.Value.ToString();
//if (cmbStatus.Text.Trim().Equals("票据对齐"))
//{
// if (strHk.Equals("0") && strCkf.Equals("0") & strYf.Equals("0"))
// {
// MessageUtil.ShowTips("票据对齐除了000和222的状态!");
// return;
// }
// if (strHk.Equals("2") && strCkf.Equals("2") & strYf.Equals("2"))
// {
// MessageUtil.ShowTips("票据对齐除了000和222的状态!");
// return;
// }
//}
bool strChkHk =false;
if (chkHk.Checked)
{
strChkHk = true;
}
string juNo = "";
if (chkJuno.Checked) { juNo = cmbJuNo.Text.Trim(); }
if (chkBillDate.Checked && chkCloseDate.Checked)
{
MessageUtil.ShowTips("提单编制时间与提单关闭时间只能选择一个!"); return;
}
if (!chkBillDate.Checked && !chkCloseDate.Checked && strStatus.Equals("") && strBill.Equals("") && strOrder.Equals("") && !ChcTime.Checked && strJies.Equals("") && strSoage.Equals("") && juNo.Equals(""))
{
MessageUtil.ShowTips("请至少选择一个条件!"); return;
}
list.Add(strStartTime);
list.Add(strEntTime);
list.Add(strBill);
list.Add(closeStartTime);
list.Add(closeEndTime);
string supplyUnit = this.CustomInfo;
if (supplyUnit.Equals("BELONG_CODE")) {
supplyUnit = "120501";
} else if (supplyUnit.Equals("BELONG_CODE_TH")) {
supplyUnit = "120504";
}
if (ultraTabControl1.SelectedTab.Key.Equals("0"))
{
list.Add(strOrder);
DataTable dtBill = null;
if (supplyUnit == "120501")
{
dtBill = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.CorePipeBillOfLadingClose.getQueryBillReport", new object[] { list, strJies, beginTime, strStatus, strChkHk, strSoage, juNo, supplyUnit, this.ValidDataPurviewIds }, ob);
}
else {
dtBill = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.CorePipeBillOfLadingClose.getQueryBillReport", new object[] { list, strJies, beginTime, strStatus, strChkHk, strSoage, juNo, supplyUnit }, ob);
}
GridHelper.CopyDataToDatatable(dtBill, this.dataBill, true);
BaseMethod.MergedCell(GridBill, new string[] { "BILL_NO" });
foreach (UltraGridRow ugr in GridBill.Rows)
{
//理货在途量
ugr.Cells["ActCountKc"].Value = (double.Parse(ugr.Cells["PLAN_COUNT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_COUNT"].Value.ToString())).ToString();
if (double.Parse(ugr.Cells["ActCountKc"].Value.ToString())!=0.0)
{
ugr.Cells["ActWeightKc"].Value = (double.Parse(ugr.Cells["PLAN_WEIGHT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())).ToString("f3");
}
else
{
ugr.Cells["ActWeightKc"].Value = "0.000";
}
ugr.Cells["ActCountZY"].Value = (double.Parse(ugr.Cells["ACT_COUNT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_COUNT"].Value.ToString())).ToString();
if (double.Parse(ugr.Cells["ActCountZY"].Value.ToString())!=0.0)
{
ugr.Cells["ActWeightZY"].Value = (double.Parse(ugr.Cells["ACT_WEIGHT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())).ToString("f3");
}
else
{
ugr.Cells["ActWeightZY"].Value = "0.000";
}
if (Math.Abs(double.Parse(ugr.Cells["ACT_WEIGHT_POST"].Value.ToString()) / double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())) > 0.003)
{
ugr.Cells["ACT_WEIGHT_POST"].Appearance.BackColor = Color.FromArgb(255, 192, 128);
ugr.Cells["ACT_WEIGHT_POST"].Appearance.BackHatchStyle = BackHatchStyle.None;
}
}
}
else
{
DataTable dtBill = null;
if (supplyUnit == "120501")
{
dtBill = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.CorePipeBillOfLadingClose.getQueryBillMReport", new object[] { list, strJies, beginTime, strStatus, strChkHk, strSoage, supplyUnit, this.ValidDataPurviewIds }, ob);
}
else
{
dtBill = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.CorePipeBillOfLadingClose.getQueryBillMReport", new object[] { list, strJies, beginTime, strStatus, strChkHk, strSoage, supplyUnit }, ob);
}
GridHelper.CopyDataToDatatable(dtBill, this.dataBillM, true);
//BaseMethod.MergedCell(ultraGrid1, new string[] { "BILL_NO" });
foreach (UltraGridRow ugr in ultraGrid1.Rows)
{
//理货在途量
ugr.Cells["ActCountKc"].Value = (double.Parse(ugr.Cells["PLAN_COUNT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_COUNT"].Value.ToString())).ToString();
if (double.Parse(ugr.Cells["ActCountKc"].Value.ToString())!=0.0)
{
ugr.Cells["ActWeightKc"].Value = (double.Parse(ugr.Cells["PLAN_WEIGHT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())).ToString("f3");
}
else { ugr.Cells["ActWeightKc"].Value = "0.000"; }
//提单在途量
ugr.Cells["ActCountZY"].Value = (double.Parse(ugr.Cells["ACT_COUNT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_COUNT"].Value.ToString())).ToString();
if (double.Parse(ugr.Cells["ActCountZY"].Value.ToString())!=0.0)
{
ugr.Cells["ActWeightZY"].Value = (double.Parse(ugr.Cells["ACT_WEIGHT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())).ToString("f3");
}
else { ugr.Cells["ActWeightZY"].Value = "0.000"; }
if (Math.Abs(double.Parse(ugr.Cells["ACT_WEIGHT_POST"].Value.ToString()) / double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())) > 0.003)
{
ugr.Cells["ACT_WEIGHT_POST"].Appearance.BackColor = Color.FromArgb(255, 192, 128);
ugr.Cells["ACT_WEIGHT_POST"].Appearance.BackHatchStyle = BackHatchStyle.None;
}
}
}
}
///
/// 查询时验证必填项
///
///
private bool ValidQuery()
{
if (DataTimeUtil.JudgeTime(DateTime.Parse(StratBillTime.Value.ToString()), DateTime.Parse(EndBillTime.Value.ToString())) == 0)
{
MessageUtil.ShowTips("您所选择的日期区域不对,请重新选择!");
return false;
}
if (chkBillList.Checked && string.IsNullOrEmpty(txtBillList.Text.Trim()))
{
MessageBox.Show("请输入提货单号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (chkOrder.Checked && string.IsNullOrEmpty(txtOrderNo.Text.Trim()))
{
MessageBox.Show("请输入合同号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (chkBillType.Checked && string.IsNullOrEmpty(cmbStatus.Text.Trim()))
{
MessageBox.Show("请选择提单状态!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (chkjies.Checked && string.IsNullOrEmpty(cmbJies.Text.Trim()))
{
MessageBox.Show("请选择是否结算!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (chkSoage.Checked && string.IsNullOrEmpty(cmbSoage.Text.Trim()))
{
MessageBox.Show("请选择销售组织!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (chkJuno.Checked && string.IsNullOrEmpty(cmbJuNo.Text.Trim()))
{
MessageBox.Show("请输入炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
return true;
}
///
/// 按回车键触发查询按钮
///
///
///
private void ContPublic_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
doQuery();
}
}
private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
{
if (ultraTabControl1.SelectedTab.Key.Equals("0"))
{
chkOrder.Visible = true;
txtOrderNo.Visible = true;
}
else
{
chkOrder.Visible = false;
txtOrderNo.Visible = false;
}
}
private void cmbStatus_ValueChanged(object sender, EventArgs e)
{
//if (cmbStatus.Text.Trim().Equals("票据对齐"))
//{
// chkHk.Visible = true;
// cmbHk.Visible = true;
// cmbCkf.Visible = true;
// cmbYf.Visible = true;
//}
//else
//{
// chkHk.Visible = false;
// cmbHk.Visible = false;
// cmbCkf.Visible = false;
// cmbYf.Visible = false;
//}
}
}
}