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 Pur.Entity;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm;
using Pur.Entity.configureEntity;
using Infragistics.Win.UltraWinGrid;
using System.Collections;
using Pur.Entity.pur_orderEntiy;
using Pur.configure;
using Pur.Pop_upWindow;
using Pur.require_plan;
using Core.Mes.Client.Comm.Tool;
using com.hnshituo.pur.vo;
using Pur.Entity.ck;
using Infragistics.Win;
using Pur.ck;
using Core.Mes.Client.Comm.Server;
using Infragistics.Win.UltraWinEditors;
namespace Pur.Pop_upWindow
{
public partial class FrmPopConfirmCkInBill : FrmPmsBase
{
public FrmPopConfirmCkInBill()
{
InitializeComponent();
txt_CreateTimeStart.Value = ((DateTime)txt_CreateTimeStart.Value).AddMonths(-1);//将查询的起始日期推前一月
GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "Check");//设置grid只读
GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], "qty");//设置只读
//GridBindDropDownList();
}
public FrmPopConfirmCkInBill(OpeBase ob)
{
InitializeComponent();
this.ob = ob;
txt_CreateTimeStart.Value = ((DateTime)txt_CreateTimeStart.Value).AddMonths(-1);//将查询的起始日期推前一月
GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "Check");//设置grid只读
GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], "qty");//设置只读
GridBindDropDownList();
}
//菜单按钮事件
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
{
GetCkInBill();
}
break;
case "conFirmation":
{
conFirmation();
}
break;
case "ESC":
{
this.Close();
}
break;
}
}
//菜单单击事件
private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key.ToString())
{
case "Query":
{
GetCkInBill();
}
break;
case "conFirmation":
{
conFirmation();
}
break;
case "ESC":
{
this.Close();
}
break;
}
}
///
/// 查询
///
private void GetCkInBill()
{
PurCkInBillEntity pcibEntity = new PurCkInBillEntity();
pcibEntity.RefType = "1";
if (txt_CreateTimeStart.Value != null)//创建开始时间
{
pcibEntity.CreateTime = (DateTime)txt_CreateTimeStart.Value;
}
else
{
pcibEntity.CreateTime = DateTime.MinValue;
}
if (txt_CreateTimeEnd.Value != null)//创建结束时间
{
pcibEntity.UpdateTime = (DateTime)txt_CreateTimeEnd.Value;
pcibEntity.UpdateTime = pcibEntity.UpdateTime.Value.AddDays(1);
}
else
{
pcibEntity.UpdateTime = DateTime.MaxValue;
}
if (txt_IN_STOCK_NO.Text != "")
{
pcibEntity.InStockNo = txt_IN_STOCK_NO.Text;//收货(入库)单行号
}
DataTable dt = this.execute("com.hnshituo.pur.ck.service.CkInBillService", "GetCkInBill", new object[] { pcibEntity });
GridHelper.CopyDataToDatatable(dt, dataTable2, true);
}
///
/// 确认收货
///
public void conFirmation()
{
ultraGrid1.UpdateData();//发货通知单行号
ultraGrid2.UpdateData();//入库单储位明细表
//ultraGrid5.UpdateData();//库存储位表
ArrayList al_CkInBillEntity = new ArrayList();//入库单表
ArrayList al_PurCkInbillPositionEntity = new ArrayList();//入库单储位明细表
ArrayList al_CkStorageEntity = new ArrayList();//库存表
ArrayList al_CkStoragePosEntity = new ArrayList();//库存储位表
//ArrayList al_CkStatisticsEntity = new ArrayList();
//循环发货通知单
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if (!(bool)ultraGrid1.Rows[i].Cells["Check"].Value)
{ continue; }
//-----------------------------------------------------------------------------入库单表
//ExcDeliveryC ExcDeliveryCEntity = this.execute("com.hnshituo.pur.ck.service.ExcDeliveryCService", "findById", new object[] { ultraGrid1.Rows[i].Cells["DELIVERYLINESQE"].Value.ToString() });
//ExcDeliveryM ExcDeliveryMEntity = this.execute("com.hnshituo.pur.ck.service.ExcDeliveryMService", "findById", new object[] { ultraGrid1.Rows[i].Cells["DELIVERYID"].Value.ToString() });
PurCkInBillEntity CkInBillEntity = this.execute("com.hnshituo.pur.ck.service.CkInBillService", "findById", new object[] { ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString() });//入库单表
//CkInBillEntity = EntityHelper.CopyEntity(ExcDeliveryCEntity);//复制送货通知单行号中相同的字段值
CkInBillEntity.RefeId = ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString();//送货通知单行号
CkInBillEntity.RefType = "1";//1收货单:2:送货单
//CkInBillEntity.SuppCode = ExcDeliveryMEntity.SuppCode;
//CkInBillEntity.SuppName = ExcDeliveryMEntity.SuppName;
double b_qty = 0;
double.TryParse(ultraGrid1.Rows[i].Cells["InNum"].Value.ToString(), out b_qty);
CkInBillEntity.InNum = b_qty;//收货
CkInBillEntity.CreateUserid = UserInfo.GetUserID();
CkInBillEntity.CreateName = UserInfo.GetUserName();
CkInBillEntity.UpdateName = null;
CkInBillEntity.UpdateUserid = null;
CkInBillEntity.UpdateTime = null;
//-----------------------------------------------------------------------------库存单表
CkStorage CkStorageEntity = new CkStorage();
//CkStorageEntity = EntityHelper.CopyEntity(ExcDeliveryCEntity);//复制发货通知单行号中相同的字段值
//CkStorageEntity = EntityHelper.CopyEntity(CkInBillEntity);//复制合同行号中相同的字段值
//CkStorageEntity.RefeId = ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString();//发货通知单行号
//CkStorageEntity.RefType = "1";//1.收货单2:送货单
//CkStorageEntity.Validflag = "1";
//CkStorageEntity.SuppCode = ExcDeliveryMEntity.SuppCode;
//CkStorageEntity.SuppName = ExcDeliveryMEntity.SuppName;
CkStorageEntity.RefeId = ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString();
CkStorageEntity.InvQty = b_qty;//库存数量
CkStorageEntity.CreateUserid = UserInfo.GetUserID();
CkStorageEntity.CreateName = UserInfo.GetUserName();
CkStorageEntity.UpdateName = null;
CkStorageEntity.UpdateUserid = null;
CkStorageEntity.UpdateTime = null;
al_CkStorageEntity.Add(CkStorageEntity);
//-------------------------------------------------------------------------------------------------------入库单储位明细表1
//PurCkInbillPositionEntity CkInbillPositionEntity1 = new PurCkInbillPositionEntity();//入库单储位明细表
//CkInbillPositionEntity1.InStockNo = ultraGrid1.Rows[i].Cells["DELIVERYLINESQE"].Value.ToString();//入库单号记录送货通知单行号,方便在后台获取入库单号
//CkInbillPositionEntity1.Validflag = "1";
//CkInbillPositionEntity1.InNum = b_qty;//入库量
//CkInbillPositionEntity1.PackageQty = ultraGrid1.Rows[i].Cells["PackageQty"].Value.ToString();//包装数量
//CkInbillPositionEntity1.PackageType = ultraGrid1.Rows[i].Cells["PackageType"].Value.ToString();//包装类型
//CkInbillPositionEntity1.InvPhysic = ultraGrid1.Rows[i].Cells["INVPHYSIC"].Value.ToString();//物理库区
//CkInbillPositionEntity1.InvPos = ultraGrid1.Rows[i].Cells["INVPOS"].Value.ToString();//库位
//CkInbillPositionEntity1.MatBatchNo = ultraGrid1.Rows[i].Cells["MatBatchNo"].Value.ToString();//检验批号
//CkInbillPositionEntity1.CreateUserid = UserInfo.GetUserID();
//CkInbillPositionEntity1.CreateName = UserInfo.GetUserName();
//al_PurCkInbillPositionEntity.Add(CkInbillPositionEntity1);//添加入库单储位明细表
//-----------------------------------------------------------------------------------------------------库存储位明细表1
//PurCkStoragePosEntity CkStoragePosEntity = new PurCkStoragePosEntity();//库存收发存表
//CkStoragePosEntity.InvId = ultraGrid1.Rows[i].Cells["DELIVERYLINESQE"].Value.ToString();//库存记录号记录发货通知单行号,方便在后台获取入库单号
//CkStoragePosEntity.Validflag = "1";
//CkStoragePosEntity.InvOrigQty = b_qty;//入库量
//CkStoragePosEntity.InvPhysic = ultraGrid1.Rows[i].Cells["INVPHYSIC"].Text.ToString();//物理库区
//CkStoragePosEntity.InvPos = ultraGrid1.Rows[i].Cells["INVPOS"].Text.ToString();//库位
//CkStoragePosEntity.PackageQty = ultraGrid1.Rows[i].Cells["PackageQty"].Value.ToString();//包装数量
//CkStoragePosEntity.PackageType = ultraGrid1.Rows[i].Cells["PackageType"].Value.ToString();//包装类型
//CkStoragePosEntity.MatBatchNo = ultraGrid1.Rows[i].Cells["MatBatchNo"].Value.ToString();//检验批号
//CkStoragePosEntity.InvQty = b_qty;
////CkStorageEntity.InvOrigQty += b_InNum;//库存原始数量
//al_CkStoragePosEntity.Add(CkStoragePosEntity);//添加库存单储位明细表
//-----------------------------------------------------------------------------------------------------------入库单储位明细表2
for (int j = 0; j < ultraGrid2.Rows.Count; j++)
{
if (ultraGrid1.Rows[i].Cells["InStockNo"].Value.ToString() != ultraGrid2.Rows[j].Cells["InStockNo"].Value.ToString())
{
continue;
}
PurCkInbillPositionEntity CkInbillPositionEntity = new PurCkInbillPositionEntity();//入库单储位明细表
double bINNUM = 0;//入库量
double.TryParse(ultraGrid2.Rows[j].Cells["INNUM"].Value.ToString().Trim(), out bINNUM);
if (bINNUM > 0 && ultraGrid2.Rows[j].Cells["INVPHYSIC"].Value.ToString() != "" && ultraGrid2.Rows[j].Cells["INVPOS"].Value.ToString() != "")
{
//-----------------------------------------------------------------------------------------------------------入库单储位明细表2
CkInbillPositionEntity.InStockNo = ultraGrid1.Rows[i].Cells["InStockNo"].Value.ToString();//入库单号记录送货通知单行号,方便在后台获取入库单号
CkInbillPositionEntity.Validflag = "1";
CkInbillPositionEntity.InNum = bINNUM;//入库量
CkInbillPositionEntity.PackageQty = ultraGrid2.Rows[j].Cells["PackageQty"].Value.ToString();//包装数量
CkInbillPositionEntity.PackageType = ultraGrid2.Rows[j].Cells["PackageType"].Value.ToString();//包装类型
CkInbillPositionEntity.InvPhysic = ultraGrid2.Rows[j].Cells["INVPHYSIC"].Value.ToString();//物理库区
CkInbillPositionEntity.InvPos = ultraGrid2.Rows[j].Cells["INVPOS"].Value.ToString();//库位
CkInbillPositionEntity.MatBatchNo = ultraGrid2.Rows[j].Cells["MatBatchNo"].Value.ToString();//检验批号
CkInbillPositionEntity.Remark = ultraGrid2.Rows[j].Cells["REMARK"].Value.ToString();
CkInbillPositionEntity.CreateUserid = UserInfo.GetUserID();
CkInbillPositionEntity.CreateName = UserInfo.GetUserName();
//CkInBillEntity.InNum += bINNUM;//入库单表的入库量
al_PurCkInbillPositionEntity.Add(CkInbillPositionEntity);//添加入库单储位明细表
//---------------------------------------------------------------------------------------------------------------------------------库存储位明细表1
PurCkStoragePosEntity CkStoragePosEntity1 = new PurCkStoragePosEntity();//库存收发存表
CkStoragePosEntity1.InvId = ultraGrid1.Rows[i].Cells["InStockNo"].Value.ToString();//库存记录号记录发货通知单行号,方便在后台获取入库单号
CkStoragePosEntity1.Validflag = "1";
CkStoragePosEntity1.InvOrigQty = b_qty;//入库量
CkStoragePosEntity1.InvQty = b_qty;//入库量
CkStoragePosEntity1.InvPhysic = ultraGrid2.Rows[j].Cells["INVPHYSIC"].Text.ToString();//物理库区
CkStoragePosEntity1.InvPos = ultraGrid2.Rows[j].Cells["INVPOS"].Text.ToString();//库位
CkStoragePosEntity1.PackageQty = ultraGrid2.Rows[j].Cells["PackageQty"].Value.ToString();//包装数量
//CkStoragePosEntity1.PackageType = ultraGrid2.Rows[j].Cells["PackageType"].Text.ToString();//包装类型
CkStoragePosEntity1.MatBatchNo = ultraGrid2.Rows[j].Cells["MatBatchNo"].Value.ToString();//检验批号
//CkStoragePosEntity1.InvQty += b_qty;
CkStorageEntity.InvQty += b_qty;//库存原始数量
al_CkStoragePosEntity.Add(CkStoragePosEntity1);//添加库存单储位明细表
}
}
al_CkInBillEntity.Add(CkInBillEntity);
}
if (al_CkInBillEntity.Count < 1)
{
MessageUtil.ShowTips("请至少选择一条收货行");
return;
}
CoreResult crt = this.execute("com.hnshituo.pur.ck.service.CkInBillService", "AddCkInBill_2016417", new object[] { al_CkInBillEntity, al_PurCkInbillPositionEntity, al_CkStorageEntity, al_CkStoragePosEntity });
if (crt.Resultcode != 0)
{
MessageUtil.ShowTips("入库失败 " + crt.Resultmsg);
return;
}
MessageUtil.ShowTips("入库成功,入库单号:" + crt.Resultmsg);
this.Close();
}
///
/// 激活入库单行
///
///
///
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
UltraGridRow uge = ultraGrid1.ActiveRow;
PurCkInbillPositionEntity CkInbillPositionEntity = new PurCkInbillPositionEntity();
CkInbillPositionEntity.InStockNo = uge.Cells["InStockNo"].Value.ToString();
DataTable dtCkInbillPositio = this.execute("com.hnshituo.pur.ck.service.CkInbillPositionService", "find", new object[] { CkInbillPositionEntity,0,0 });
GridHelper.CopyDataToDatatable(dtCkInbillPositio, dataTable3, true);
}
private void GridBindDropDownList()
{
//绑定物料库区
PhysicSeatEntity Phouse = new PhysicSeatEntity();
Phouse.Validflag = "1";
DataTable dt_Phouse = this.execute("com.hnshituo.pur.configure.service.ActualSeatService", "getActualSeat", new object[] { Phouse, 0, 0 });
ultraChk_Phouse.DataSource = dt_Phouse;
ultraChk_Phouse.DisplayMember = "invPhysicName";
ultraChk_Phouse.ValueMember = "invPhysic";
ultraGrid2.DisplayLayout.Bands[0].Columns["INVPHYSIC"].EditorComponent = ultraChk_Phouse;
ultraGrid2.DisplayLayout.Bands[0].Columns["INVPHYSIC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ActualSeatPosEntity PosEntity = new ActualSeatPosEntity();
PosEntity.Validflag = "1";
//PosEntity.InvPhysic = e.Cell.Value.ToString();
DataTable dt3 = this.execute("com.hnshituo.pur.configure.service.ActualSeatPosService", "find", new object[] { PosEntity, 0, 0 });
UltraComboEditor cmb = getNewUltraComboEditor();
cmb.DataSource = dt3;
cmb.DisplayMember = "invPosName";
cmb.ValueMember = "invPos";
ultraGrid2.DisplayLayout.Bands[0].Columns["INVPOS"].EditorComponent = cmb;
ultraGrid2.DisplayLayout.Bands[0].Columns["INVPOS"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//包装方式
DataTable dt4 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1107" }, this.ob);
removeNotValiflagData(dt4);
getUltcmbBindValueList(dt4, cmb_PACKAGE_TYPE);
ultraGrid2.DisplayLayout.Bands[0].Columns["PACKAGETYPE"].EditorComponent = cmb_PACKAGE_TYPE;
ultraGrid2.DisplayLayout.Bands[0].Columns["PACKAGETYPE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
///
/// 移除无效数据
///
///
private void removeNotValiflagData(DataTable dt)
{
for (int i = 0; i < dt.Rows.Count; )
{
if (dt.Rows[i]["VALIDFLAG"].ToString() == "0")
{
dt.Rows.RemoveAt(i);
}
else
{
i++;
}
}
}
///
/// 绑定所有的下拉列表的数据
///
private void getUltcmbBindValueList(DataTable dt, UltraComboEditor ultcmb)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
ValueListItem vlItem = new ValueListItem(dt.Rows[i]["BASECODE"].ToString().Trim(), dt.Rows[i]["BASENAME"].ToString().Trim());
ultcmb.Items.Add(vlItem);
}
}
private UltraComboEditor getNewUltraComboEditor()
{
UltraComboEditor cmb = new UltraComboEditor();
cmb.Visible = false;
this.Controls.Add(cmb);
return cmb;
}
}
}