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.Tool; using Infragistics.Win.UltraWinGrid; using Pur.Entity.configureEntity; using Pur.Entity.pur_orderEntiy; using com.hnshituo.pur.vo; using System.Collections; using Pur.order; using Core.Mes.Client.Comm.Server; using Pur.Pop_upWindow; using Pur.Entity.pur_planEntity; using System.Text.RegularExpressions; using com.hnshituo.ck; namespace Pur.pur_plan { public partial class frmOrderOK : FrmPmsBase { UltraGridRow uge = null; private String init_Mode_Id = ""; private String init_OrderTitleCode = ""; private String isAllowSplit = "0"; public frmOrderOK() { InitializeComponent(); } // 构造函数 public frmOrderOK(OpeBase ob,UltraGridRow ugr) { InitializeComponent(); this.ob = ob; uge = ugr; } // 界面加载 private void frmOrderOK_Load(object sender, EventArgs e) { init(); } //界面初始化 private void init() { try { this.Cursor = Cursors.WaitCursor; String strTaskId = uge.Cells["TaskId"].Value.ToString(); if (testStatusTask(strTaskId) == false) { this.Close(); return; } DataTable dt = this.execute("com.hnshituo.pur.purplan.service.TaskOfferMService", "getSuppResM", new object[] { strTaskId }); GridHelper.CopyDataToDatatable(dt, dataTable1, true); GridHelper.RefreshAndAutoSize(ultraGrid1); //初始化合同控件 initDropDownList(); //Grid不可编辑 GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], new string[] { }); if (this.isAllowSplit == "1") { GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], new string[] { "CHK", "ASKDELIVERDATE", "createQty" }); ultraGrid2.DisplayLayout.Bands[0].Columns["createQty"].CellAppearance.BackColor = Color.FromArgb(255, 255, 128); } else { GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], new string[] { "CHK", "ASKDELIVERDATE"}); ultraGrid2.DisplayLayout.Bands[0].Columns["createQty"].CellAppearance.BackColor =Color.White; } } catch (Exception ex) { MessageUtil.ShowTips("加载数据失败:" + ex.Message); } finally { this.Cursor = Cursors.Default; } } //初始化DropDownList控件 private void initDropDownList() { //合同类别 DataTable dt1 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1200" }, this.ob); comm.FilComboboxAdd(txt_OrderType, dt1, "baseCode", "baseName", "validflag NOT in ('0')", false, "/", ""); txt_OrderType.SelectedIndex = -1; //合同分类 DataTable dt3 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1220" }, this.ob); comm.FilComboboxAdd(txt_OrderClass, dt3, "baseCode", "baseName", "validflag NOT in ('0')", false, "/", ""); txt_OrderClass.SelectedIndex = 0; //货币代码 //throw new NotImplementedException(); DataTable dt4 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1001" }, this.ob); comm.FilComboboxAdd(txt_Currency, dt4, "baseCode", "baseName", "validflag NOT in ('0')", false, "/", ""); txt_Currency.SelectedIndex = 0; //加载运输条件 DataTable dt6 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1105" }, this.ob); comm.FilComboboxAdd(txt_deliveryCondition, dt6, "baseCode", "baseName", "validflag NOT in ('0')", true, "/", ""); txt_deliveryCondition.SelectedIndex = -1; //加载运输方式 DataTable dt7 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1102" }, this.ob); comm.FilComboboxAdd(txt_deliveryType, dt7, "baseCode", "baseName", "validflag NOT in ('0')", true, "/", ""); txt_deliveryType.SelectedIndex = -1; //加载合同金额分类 //DataTable dt10 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1222" }, this.ob); //comm.FilComboboxAdd(txt_OrderMoneyType, dt10, "baseCode", "baseName", "validflag NOT in ('0')", false, "/", ""); //txt_OrderMoneyType.SelectedIndex = -1; //接收方式 DataTable dt5 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1101" }, this.ob); comm.FilComboboxAdd(txt_ReceiveType, dt5, "baseCode", "baseName", "validflag NOT in ('0')", false, "/", ""); txt_ReceiveType.SelectedIndex = 0; } /// /// 工具菜单栏 /// /// /// private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)// 工具菜单栏 { switch (e.Tool.Key.ToString()) { case "doRefresh": init(); break; case "ok": AddOrder(); break; case "Esc": this.Close(); break; } } /// /// 生成合同 /// private void AddOrder()// 生成合同 { ultraGrid2.UpdateData(); if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowTips("无中标供应商"); return; } if (ultraGrid2.ActiveRow == null) { MessageUtil.ShowTips("无中标物料或者请先选择中标物料"); return; } UltraGridRow ugm = ultraGrid1.ActiveRow; UltraGridRow ugc = ultraGrid2.ActiveRow; String strOfferId = ugm.GetCellValue("OFFERID").ToString().Trim();//报价单 String strTaskRecord=ugm.GetCellValue("remark").ToString().Trim();//纪要号 String strTaskId = ugm.GetCellValue("taskId").ToString().Trim();//任务单 if (String.IsNullOrEmpty(strTaskRecord)) { MessageUtil.ShowTips("数据异常,选中行的采购纪要号为空,可能还未生成采购纪要!"); return; } if (String.IsNullOrEmpty(strOfferId)) { MessageUtil.ShowTips("数据异常,选中行的报价单号为空!"); return; } if (String.IsNullOrEmpty(strTaskId)) { MessageUtil.ShowTips("数据异常,选中行的任务单号为空,可能还未生成采购纪要!"); return; } if (testStatusRecord(strTaskRecord) == false) { return; } if (testStatusTask(strTaskId) == false) { return; } PurTaskOfferMEntity offerM = this.execute("com.hnshituo.pur.purplan.service.TaskOfferMService", "findById", new object[] { strOfferId }); String strSuppCode = offerM.SuppCode;//供应商 if(String.IsNullOrEmpty(strSuppCode)) { MessageUtil.ShowTips("数据异常,选中行的供应商编号为空!"); return; } Supp supp = this.execute("com.hnshituo.pur.configure.service.SuppService", "findById", new object[] { strSuppCode }); if (testInputData() == false) { return; } OrderM Odm = new OrderM(); //Odm.PorderId Odm.Status = "0";//草稿状态 Odm.Validflag = "1"; Odm.BuyerName =UserInfo.GetUserName();//合同提报业务员 Odm.CreateName = UserInfo.GetUserName(); Odm.CreateUserid = UserInfo.GetUserID(); Odm.CreateTime = DateTime.Now; Odm.SignDate = DateTime.Now; Odm.SignAddress = "天津市"; Odm.SuppCode = supp.SuppCode;//供应商代码 Odm.SuppName = supp.SuppName;//供应商名称 //Odm.TaxRateName = supp.SuppTaxRate;//税率 Odm.AftPaymentAmt1 = 0; Odm.TaskRecordId = strTaskRecord; //if (Odm.TaxRateName == "" || Odm.TaxRateName == "NULL") //{ // if (MessageUtil.ShowYesNoAndQuestion("供应商:" + strSuppCode + "未维护税率,若生成合同将默认税率为为0%,是否继续?") == DialogResult.Yes) // { // Odm.TaxRateName = "0%"; // } // else // { // return; // } //} Odm.Currency = txt_Currency.Value == null ? "" : txt_Currency.Value.ToString().Trim(); Odm.DeliveryCondition = txt_deliveryCondition.Value == null ? "" : txt_deliveryCondition.Value.ToString().Trim(); Odm.DeliveryType = txt_deliveryType.Value == null ? "" : txt_deliveryType.Value.ToString().Trim(); Odm.OrderClass = txt_OrderClass.Value == null ? "" : txt_OrderClass.Value.ToString().Trim(); Odm.OrderType = txt_OrderType.Value == null ? "" : txt_OrderType.Value.ToString().Trim(); Odm.ModeId = init_Mode_Id; Odm.ModeName = txt_ModeName.Text.ToString().Trim(); Odm.OrderTitleCode = init_OrderTitleCode; Odm.BuyerDeptCode = UserInfo.GetDeptid(); Odm.BuyerDeptDesc = UserInfo.GetDepartment(); double amtwithtax = 0; double amtwithouttax = 0; double amttax = 0; int i=0; ArrayList list = new ArrayList(); foreach (UltraGridRow uRows in ultraGrid2.Rows) { if (Convert.ToBoolean(uRows.GetCellValue("CHK")) == true) { i = i + 1; String strLineId = uRows.GetCellValue("Id").ToString().Trim(); if (String.IsNullOrEmpty(strLineId)) { MessageUtil.ShowTips("物料" + uRows.GetCellValue("itemName") + "无报价单行号,数据异常!"); return; } PurTaskOfferCEntity oc = this.execute("com.hnshituo.pur.purplan.service.TaskOfferCService", "findById", new object[] { strLineId }); OrderC odC = new OrderC(); odC.OfferType = oc.OfferType; odC.ResPriceFreight = oc.ResPriceFreight; odC.ResPricePackage = oc.ResPricePackage; odC.TaskOfferCId = oc.Id;//报价单行号 odC.TaskLineId = oc.TaskLineId;//任务单行号 odC.SuppCode = supp.SuppCode;//供应商代码 odC.SuppName = supp.SuppName;//供应商名称 odC.ItemName = oc.ItemName;//物料简称 odC.ItemCode = oc.ItemCode; odC.ItemUom = oc.ItemUom;//采购单位(个、袋、桶) odC.ItemUomId = oc.ItemUomId; odC.ItemUnique = oc.ItemUnique;//唯一码 odC.ItemStandardsCode = oc.ItemStandardsCode;//标准值 odC.ItemStandardsId = oc.ItemStandardsId;//标准编码 odC.ItemUomConefficient = oc.ItemUomConefficient;//转换系数 odC.WeightUnit = oc.WeightUnit;//库存单位 odC.BuyerName = UserInfo.GetUserName();//采购员 if (testHasStandards_jhy(odC) == false) { return; } //更新物料属性 odC.ItemAttr = oc.ItemAttr; odC.ItemAttrId = oc.ItemAttrId; odC.PurLineId = oc.MrLineId; odC.Validflag = "1"; odC.CreateName = UserInfo.GetUserName(); odC.CreateUserid = UserInfo.GetUserID(); odC.CreateTime = DateTime.Now; odC.ReceiveType = txt_ReceiveType.Value == null ? "" : txt_ReceiveType.Value.ToString(); odC.PaymentCode = oc.PaymentCode; odC.PackageType = oc.PackageType; odC.StartDate = DateTime.Now; if (String.IsNullOrEmpty(uRows.GetCellValue("ASKDELIVERDATE") == null ? "" : uRows.GetCellValue("ASKDELIVERDATE").ToString())) { MessageUtil.ShowTips("物料:" + odC.ItemName + "要求的交期不能为空!"); return; } odC.EndDate = Convert.ToDateTime(uRows.GetCellValue("ASKDELIVERDATE")); //金额计算 double bidQty = 0; double canUseQty = 0; double createQty = 0; double.TryParse(uRows.Cells["createQty"].Value.ToString(), out createQty); double.TryParse(uRows.Cells["bidWinQty"].Value.ToString(), out bidQty); double.TryParse(uRows.Cells["canUseQty"].Value.ToString(), out canUseQty); createQty = Math.Round(createQty, 3, MidpointRounding.AwayFromZero); bidQty = Math.Round(bidQty, 3, MidpointRounding.AwayFromZero); canUseQty = Math.Round(canUseQty, 3, MidpointRounding.AwayFromZero); if (createQty > canUseQty) { MessageUtil.ShowTips("编制量不能大于剩余可编制量"); return; } if (createQty > bidQty) { MessageUtil.ShowTips("编制量不能大于中标量"); return; } odC.Qty = createQty;//采购数量 odC.PriceWithTax = oc.BidWinWithTaxPrice; if (odC.Qty == null || oc.BidWinWithTaxPrice == null) { MessageUtil.ShowTips("物料:" + odC.SuppCode + "中标数量、中标含税单价不能为空!"); return; } if (oc.BidWinWithTaxPrice<0) { MessageUtil.ShowTips("物料:" + odC.SuppCode + "中标含税单价需大于等于0!"); return; } if (isRightRate(uRows.GetCellValue("TaxRateName"))) { MessageUtil.ShowTips("物料" + uRows.GetCellValue("itemName") + "无税率或者输入税率异常(例:13%),请确定!"); return; } odC.TaxRateName = uRows.GetCellValue("TaxRateName").ToString(); odC.CkQty = odC.Qty * oc.ItemUomConefficient; list.Add(odC); } } if (i == 0) { MessageUtil.ShowTips("未选择物料!"); return; } if (amtwithtax > 10000000000) { MessageUtil.ShowTips("合同最大采购额度为100亿!"); return; } CoreResult re2 = this.execute("com.hnshituo.pur.order.service.OrderMService", "insert_orderC", new object[] { Odm, list }); if (re2.Resultcode == 0) { String tempOrderId=re2.Resultmsg.ToString().Trim(); if (doSureOrder(tempOrderId) == "1")//确认退出 { CoreResult re3 = this.execute("com.hnshituo.pur.order.service.OrderMService", "doEffectOrderData", new object[] { tempOrderId });//正式启用合同 if (re3.Resultcode == 0) { MessageUtil.ShowTips("创建成功,生成合同:" + tempOrderId); init(); return; } else { CoreResult re5 = this.execute("com.hnshituo.pur.order.service.OrderMService", "doClearOrderData", new object[] { tempOrderId });//清除合同数据 if (re5.Resultcode != 0) { MessageUtil.ShowTips("操作失败:" + re5.Resultmsg); } else { MessageUtil.ShowTips("操作失败:" + re3.Resultmsg); } } } else { //清除无效合同数据 CoreResult re4 = this.execute("com.hnshituo.pur.order.service.OrderMService", "doClearOrderData", new object[] { tempOrderId });//清除合同数据 if (re4.Resultcode != 0) { MessageUtil.ShowTips("操作失败:"+re4.Resultmsg); init(); } } } else { MessageBox.Show("操作失败:" + re2.Resultmsg); return; } } /// /// 是否维护检验项目 /// /// /// private bool testHasStandards_jhy(OrderC odC) { DataTable dt8 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1229" }, this.ob); if (dt8== null) { MessageUtil.ShowTips("基础数据配置出错,请维护检化验物料限制条件"); return false; } if (dt8.Rows.Count <= 0) { MessageUtil.ShowTips("基础数据配置出错,请维护检化验物料限制条件"); return false; } DataRow row = dt8.Select("baseCode = '122901'")[0]; if (row["memo"].ToString() == "1") { MatEntity mat = this.execute("com.hnshituo.pur.configure.service.MatService", "findById", new object[] { odC.ItemCode}); if (mat.MeteringFlag == "1") { MatStdBaseinfo baseinfo = new MatStdBaseinfo(); baseinfo.ProductStd = odC.ItemStandardsCode; baseinfo.ItemCode = odC.ItemCode; baseinfo.Validflag = "1"; List list_baseinfo = this.execute>("com.hnshituo.pur.jhy.service.MatStdBaseinfo_jhyService", "find", new object[] { baseinfo, 0, 0 }); if (list_baseinfo == null) { MessageUtil.ShowTips("物料:" + odC.ItemName + "未维护检验标准,请联系质保部维护"); return false; } if (list_baseinfo.Count <= 0) { MessageUtil.ShowTips("物料:" + odC.ItemName + "未维护检验标准,请联系质保部维护"); return false; } //else //{ // MatStdDetail detail = new MatStdDetail(); // detail.Mic = list_baseinfo[0].Mic; // detail.Validflag = "1"; // List list_detail = this.execute>("com.hnshituo.pur.jhy.service.MatStdBaseinfo_jhyService", "find", new object[] { detail, 0, 0 }); // if (list_detail == null) // { // MessageUtil.ShowTips("物料:" + odC.ItemName + "未维护检验项目,请联系质保部维护"); // return false; // } // if (list_detail.Count <= 0) // { // MessageUtil.ShowTips("物料:" + odC.ItemName + "未维护检验项目,请联系质保部维护"); // return false; // } //} } } return true; } private string doSureOrder(string tempOrderId) { //合同预览 try { String tempTips = "0"; if (String.IsNullOrEmpty(tempOrderId)) { MessageUtil.ShowWarning("请选择合同的合同编号为空!"); return tempTips; } OrderM Omg = this.execute("com.hnshituo.pur.order.service.OrderMService", "findById", new object[] { tempOrderId }); if (Omg == null) { MessageUtil.ShowWarning("未发现合同:" + tempOrderId + "信息记录"); return tempTips; } OrderModeM omm = this.execute("com.hnshituo.pur.order.service.OrderModeMService", "findById", new object[] { Omg.ModeId }); this.Cursor = Cursors.WaitCursor; string strurl = ""; DataTable dt = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1223" }, this.ob); DataRow[] drArr = dt.Select("validflag='1'"); if (drArr.Length != 1) { MessageUtil.ShowTips("基础数据维护错误:报表系统需维护有效的Ip且只能维护一个有效ip!"); return tempTips; } String TipsEnv = drArr[0]["baseName"].ToString(); String strUrlPort = "http://172.54.10.42:8080";//报表系统IP String[] str = strUrlPort.Split(':'); String strUrl = str[0] + ":" + str[1]; if (ob.MainUrl.StartsWith(strUrl)) { //测试环境 if (TipsEnv == "2") { if (Omg.OrderType == "120024") { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrderDev_GT.cpt&op=view" + "&cmbOrder=" + tempOrderId; } else { if (omm.OrderClass == "122002") { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrderMMDev.cpt&op=view" + "&cmbOrder=" + tempOrderId; } else { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrderDev.cpt&op=view" + "&cmbOrder=" + tempOrderId; } } } else { if (Omg.OrderType == "120024") { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrder_GT.cpt&op=view" + "&cmbOrder=" + tempOrderId; } else { if (omm.OrderClass == "122002") { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrderMM.cpt&op=view" + "&cmbOrder=" + tempOrderId; } else { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrder.cpt&op=view" + "&cmbOrder=" + tempOrderId; } } } } else { //测试环境 if (TipsEnv == "2") { if (Omg.OrderType == "120024") { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrderDev_GT.cpt&op=view" + "&cmbOrder=" + tempOrderId; } else { if (omm.OrderClass == "122002") { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrderMMDev.cpt&op=view" + "&cmbOrder=" + tempOrderId; } else { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrderDev.cpt&op=view" + "&cmbOrder=" + tempOrderId; } } } else { if (Omg.OrderType == "120024") { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrder_GT.cpt&op=view" + "&cmbOrder=" + tempOrderId; } else { if (omm.OrderClass == "122002") { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrderMM.cpt&op=view" + "&cmbOrder=" + tempOrderId; } else { strurl = strUrlPort + "/webroot/decision/view/report?viewlet=RepPurOrder.cpt&op=view" + "&cmbOrder=" + tempOrderId; } } } } //if (ob.MainUrl.StartsWith("http://127.0.0.1")) //{ // strurl = "http://localhost:8075/webroot/decision/view/report?viewlet=RepPurOrderDev.cpt&__bypagesize__=false" + "&cmbOrder=" + tempOrderId; //} //else //{ // strurl = "http://localhost:8075/webroot/decision/view/report?viewlet=RepPurOrder.cpt&__bypagesize__=false" + "&cmbOrder=" + tempOrderId; //} FrmPurOrderReview fBug = new FrmPurOrderReview(ob, strurl); fBug.AutoSize = true; //fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); //fBug.WindowState = FormWindowState.Maximized; fBug.Text = "待生成合同确定"; fBug.ShowDialog(); if (fBug.Tips == "1") { tempTips = fBug.Tips; return tempTips; } else { return tempTips; } } finally { this.Cursor = Cursors.Default; } } //验证税率 private bool isRightRate(object p) { if (p == null) { return true; } String strP = p.ToString().Trim(); if (!Regex.IsMatch(strP, @"^[1-2]{0,1}[0-9]%$")) { return true; } return false; } private bool testStatusRecord(string strTaskRecord) { String strRecordId = strTaskRecord; PurTaskRecordEntity taskRecord = this.execute("com.hnshituo.pur.purplan.service.TaskRecordService", "findById", new object[] { strRecordId }); if (taskRecord == null) { MessageUtil.ShowTips("未发现纪要:" + strRecordId + "信息记录,可能已被作废!或请刷新界面重新操作!"); return false; } if (taskRecord.Validflag == "0") { MessageUtil.ShowTips("纪要:" + strRecordId + "信息记录可能已被作废!或请刷新界面重新操作!"); return false; } if (taskRecord.Status != "3") { MessageUtil.ShowTips("纪要:" + strRecordId + "信息未生效,无法生成合同!或请刷新界面重新操作!"); return false; } return true; } private bool testStatusTask(string strTaskId) { PurTaskMEntity PurTaskM = this.execute("com.hnshituo.pur.purplan.service.TaskMService", "findById", new object[] { strTaskId }); if (PurTaskM == null) { MessageUtil.ShowTips("未发现任务单:" + strTaskId + "信息记录,可能已被作废!或请刷新界面重新操作!"); return false; } if (PurTaskM.Validflag == "0") { MessageUtil.ShowTips("任务单:" + strTaskId + "信息记录可能已被作废!或请刷新界面重新操作!"); return false; } if (PurTaskM.Status== "11") { MessageUtil.ShowTips("任务单:" + strTaskId + "已完成合同生成!"); return false; } if (PurTaskM.Status != "10") { MessageUtil.ShowTips("任务单:" + strTaskId + "不在“待生成合同”状态,无法生成合同!"); return false; } this.isAllowSplit = PurTaskM.IsAllowSplit; return true; } /// /// 点击主表 /// /// /// private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)// 点击主表 { getOrderRow(); } private void getOrderRow() { UltraGridRow uRow = ultraGrid1.ActiveRow; if (uRow != null) { String strOfferId = uRow.GetCellValue("OFFERID").ToString().Trim();//报价单 if (String.IsNullOrEmpty(strOfferId)) { MessageUtil.ShowTips("数据异常,选中行的报价单号为空!"); return; } PurTaskOfferMEntity offerM = this.execute("com.hnshituo.pur.purplan.service.TaskOfferMService", "findById", new object[] { strOfferId }); String strSuppCode = offerM.SuppCode;//供应商 if (String.IsNullOrEmpty(strSuppCode)) { MessageUtil.ShowTips("数据异常,选中行的供应商编号为空!"); return; } Supp supp = this.execute("com.hnshituo.pur.configure.service.SuppService", "findById", new object[] { strSuppCode }); txt_deliveryCondition.Value = offerM.DeliveryCondition == null ? "" : offerM.DeliveryCondition; txt_deliveryType.Value = offerM.DeliveryType == null ? "" : offerM.DeliveryType; txt_Currency.Value = supp.SuppRegCapCurrency; if (txt_Currency.Value == null) { txt_Currency.SelectedIndex = 0;//默认选择人民币 } txt_ReceiveType.Value = offerM.ReceiveType; PurTaskOfferCEntity TkoC = new PurTaskOfferCEntity(); TkoC.TaskId = uRow.Cells["TaskId"].Value.ToString(); TkoC.Validflag = "1"; TkoC.IsBid = "1"; TkoC.OfferId = strOfferId; TkoC.SuppCode = strSuppCode; TkoC.DeleteName = "1";//查询未生成合同的 DataTable dt = this.execute("com.hnshituo.pur.purplan.service.TaskOfferCService", "findTaskOfferC", new object[] { TkoC }); double sumCurrency = 0;//中标含税总金额 dt.Columns.Add("BIDWITHOUTTAXAMT", Type.GetType("System.String")); dt.Columns.Add("BIDWITHTAXAMT", Type.GetType("System.String")); dt.Columns.Add("createQty", Type.GetType("System.String")); foreach (DataRow row in dt.Rows) { if (row["canUseQty"] == DBNull.Value) { MessageUtil.ShowTips("中标数据异常,物料" + row["ITEMNAME"] + "剩余可编制数量为为空或小于0"); continue; } double canUseQty = Convert.ToDouble(row["canUseQty"]); if (canUseQty <= 0) { MessageUtil.ShowTips("中标数据异常,物料" + row["ITEMNAME"] + "剩余可编制数量为为空或小于0"); continue; } row["createQty"] = canUseQty; if (row["BIDWINWITHTAXPRICE"] == DBNull.Value) { MessageUtil.ShowTips("中标数据异常,物料" + row["ITEMNAME"] + "中标含税为空或小于0"); continue; } double BIDWINWITHTAXPRICE = Convert.ToDouble(row["BIDWINWITHTAXPRICE"]); if (BIDWINWITHTAXPRICE < 0) { MessageUtil.ShowTips("中标数据异常,物料" + row["ITEMNAME"] + "中标含税为空或小于0"); continue; } double TaxRate = 0; String strTaxRate = ""; if (row["TAXRATENAME"] == DBNull.Value || String.IsNullOrEmpty(row["TAXRATENAME"].ToString().Trim())) { if (supp.SuppTaxRate == "NULL" || String.IsNullOrEmpty(supp.SuppTaxRate)) { MessageUtil.ShowTips("请维护供应商税率"); return; } else { strTaxRate = supp.SuppTaxRate; TaxRate = Convert.ToDouble(strTaxRate.TrimEnd('%')) / 100; } } else { strTaxRate = row["TAXRATENAME"].ToString().Trim(); TaxRate = Convert.ToDouble(strTaxRate.TrimEnd('%')) / 100; } double BIDWITHTAXAMT = BIDWINWITHTAXPRICE * canUseQty; row["BIDWITHTAXAMT"] = BIDWITHTAXAMT; double BIDWINWITHOUTTAXPRICE = Math.Round(BIDWINWITHTAXPRICE / (1 + TaxRate), 2); row["BIDWINWITHOUTTAXPRICE"] = BIDWINWITHOUTTAXPRICE; double BIDWITHOUTTAXAMT = BIDWINWITHOUTTAXPRICE * canUseQty; row["BIDWITHOUTTAXAMT"] = BIDWITHOUTTAXAMT; row["TAXRATENAME"] = strTaxRate; row["BIDWINTAXAMT"] = BIDWITHTAXAMT - BIDWITHOUTTAXAMT; sumCurrency = sumCurrency + BIDWITHOUTTAXAMT; } GridHelper.CopyDataToDatatable(dt, dataTable2, true); GridHelper.RefreshAndAutoSize(ultraGrid2); //DataTable dt10 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1222" }, this.ob); //foreach (DataRow row in dt10.Rows) //{ // if ((Convert.ToDouble(row["memo1"])<=sumCurrency/10000)&&(sumCurrency/10000 /// 合同模板弹窗 /// /// /// private void txt_ModeName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { String strOrderType=txt_OrderType.SelectedIndex == -1 ? "" : txt_OrderType.Value.ToString().Trim(); FrmPop_upOrderMode Pop = new FrmPop_upOrderMode(this.ob, strOrderType); Pop.ShowDialog(); if (Pop.ModeId == null) return; txt_ModeName.Text = Pop.ModeName.ToString(); init_Mode_Id = Pop.ModeId.ToString(); } /// /// 抬头弹窗 /// /// /// private void txt_TitleName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { FrmPop_upTitle Pot = new FrmPop_upTitle(this.ob); Pot.ShowDialog(); if (Pot.Id == null) return; init_OrderTitleCode = Pot.Id; txt_TitleName.Text = Pot.TitleName; } /// /// 清空编辑区 /// private void clearTab() { //合同类别 txt_OrderType.SelectedIndex = -1; //合同分类 txt_OrderClass.SelectedIndex = 0; //货币代码 txt_Currency.SelectedIndex = 0; //加载运输条件 txt_deliveryCondition.SelectedIndex = -1; //加载运输方式 txt_deliveryType.SelectedIndex = -1; //加载合同金额分类 //txt_OrderMoneyType.SelectedIndex = -1; txt_TitleName.Text = ""; txt_ModeName.Text = ""; init_Mode_Id = ""; init_OrderTitleCode = ""; txt_ReceiveType.SelectedIndex = -1; } /// /// 测试编辑区数据有效性 /// /// private bool testInputData() { if (txt_Currency.SelectedIndex == -1) { MessageUtil.ShowTips("合同货币类型未选择!"); txt_Currency.Focus(); return false; } if (txt_OrderType.SelectedIndex == -1) { MessageUtil.ShowTips("合同类别未选择!"); txt_OrderType.Focus(); return false; } if (txt_OrderClass.SelectedIndex == -1) { MessageUtil.ShowTips("合同分类未选择!"); txt_OrderClass.Focus(); return false; } //if (txt_OrderMoneyType.SelectedIndex == -1) //{ // MessageUtil.ShowTips("合同金额分类未选择!"); // txt_OrderMoneyType.Focus(); // return false; //} if (txt_ReceiveType.SelectedIndex == -1) { MessageUtil.ShowTips("合同接收方式未选择!"); txt_ReceiveType.Focus(); return false; } if (init_Mode_Id == "") { MessageUtil.ShowTips("合同模板未选择!"); txt_ModeName.Focus(); return false; } if (init_OrderTitleCode == "") { MessageUtil.ShowTips("合同买方未选择!"); txt_TitleName.Focus(); return false; } return true; } private void ultraGrid2_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key == "createQty")//采购数量 { object o = e.Cell.Value; ultraGrid2.UpdateData(); double bidQty = 0; double canUseQty = 0; double createQty = 0; double.TryParse(ultraGrid2.ActiveRow.Cells["createQty"].Value.ToString(), out createQty); double.TryParse(ultraGrid2.ActiveRow.Cells["bidWinQty"].Value.ToString(), out bidQty); double.TryParse(ultraGrid2.ActiveRow.Cells["canUseQty"].Value.ToString(), out canUseQty); createQty=Math.Round(createQty,3, MidpointRounding.AwayFromZero); bidQty=Math.Round(bidQty,3, MidpointRounding.AwayFromZero); canUseQty = Math.Round(canUseQty, 3, MidpointRounding.AwayFromZero); if (createQty > canUseQty) { MessageUtil.ShowTips("编制量不能大于剩余可编制量"); e.Cell.Value = o; return; } if (createQty > bidQty) { MessageUtil.ShowTips("编制量不能大于中标量"); e.Cell.Value = o; return; } } } } }