| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931 |
- 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<DataTable>("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;
- }
- /// <summary>
- /// 工具菜单栏
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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;
- }
- }
- /// <summary>
- /// 生成合同
- /// </summary>
- 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<PurTaskOfferMEntity>("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<Supp>("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<PurTaskOfferCEntity>("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<CoreResult>("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<CoreResult>("com.hnshituo.pur.order.service.OrderMService", "doEffectOrderData", new object[] { tempOrderId });//正式启用合同
- if (re3.Resultcode == 0)
- {
- MessageUtil.ShowTips("创建成功,生成合同:" + tempOrderId);
- init();
- return;
- }
- else
- {
- CoreResult re5 = this.execute<CoreResult>("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<CoreResult>("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;
- }
- }
- /// <summary>
- /// 是否维护检验项目
- /// </summary>
- /// <param name="odC"></param>
- /// <returns></returns>
- 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<MatEntity>("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<MatStdBaseinfo> list_baseinfo = this.execute<List<MatStdBaseinfo>>("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<MatStdDetail> list_detail = this.execute<List<MatStdDetail>>("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<OrderM>("com.hnshituo.pur.order.service.OrderMService", "findById", new object[] { tempOrderId });
- if (Omg == null)
- {
- MessageUtil.ShowWarning("未发现合同:" + tempOrderId + "信息记录");
- return tempTips;
- }
- OrderModeM omm = this.execute<OrderModeM>("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<PurTaskRecordEntity>("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<PurTaskMEntity>("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;
- }
- /// <summary>
- /// 点击主表
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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<PurTaskOfferMEntity>("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<Supp>("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<DataTable>("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<Convert.ToDouble(row["memo2"])))
- // {
- // txt_OrderMoneyType.Value = row["basecode"].ToString().Trim();
- // }
- //}
- foreach (UltraGridRow row in ultraGrid2.Rows)
- {
- row.Cells["CHK"].Value = true;
- }
- }
- }
- /// <summary>
- /// 合同模板弹窗
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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();
- }
- /// <summary>
- /// 抬头弹窗
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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;
- }
- /// <summary>
- /// 清空编辑区
- /// </summary>
- 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;
- }
- /// <summary>
- /// 测试编辑区数据有效性
- /// </summary>
- /// <returns></returns>
- 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;
- }
- }
- }
- }
- }
|