/// <summary> /// 提交失败单据状况 /// </summary> /// <returns>是否提交成功</returns> private bool ErrSubmit() { string cCode = txtOrder.Text; DataSet ds; ArrivalVouch av; av = ArrivalBusiness.CreateAVOrderByMomain(cCode, out ds); if (av == null) { return(true); } if (av.U8Details == null || av.U8Details.Count < 1) { return(true); } if (av.U8Details.Count != tempAVH.U8Details.Count) { return(true); } ArrivalVouchs opera = tempAVH.OperateDetails[0]; ArrivalVouchs sd = null; sd = av.U8Details.Find(delegate(ArrivalVouchs sdd) { return(sdd.cInvCode.ToUpper() == opera.cInvCode.ToUpper()); }); if (sd == null || sd.nQuantity != opera.nQuantity) { return(true); } return(false); }
/// <summary> /// 录入数量 /// </summary> /// <returns>是否录入正确</returns> private bool RecordNum() { string _qty = txtCount.Text.Trim(); try { if (txtOrder.Tag != null) { decimal qty = Convert.ToDecimal(_qty) * scanCount; ArrivalVouchs sdl; sdl = tempAVH.U8Details.Find(delegate(ArrivalVouchs sdd) { return(sdd.cInvCode.ToUpper() == txtLabel.Text.Trim().ToUpper() && sdd.nQuantity > 0); }); if (sdl == null) { MessageBox.Show("该货物已全部扫描!"); return(false); } if (sdl.bInvBatch && string.IsNullOrEmpty(txtBatch.Text)) { MessageBox.Show("该货物有批次管理,请输入批次后重试!"); return(false); } else if (!sdl.bInvBatch && !string.IsNullOrEmpty(txtBatch.Text)) { MessageBox.Show("该货物没有批次管理,请勿输入批次!"); return(false); } if (qty > sdl.nQuantity) { MessageBox.Show("输入数量大于应到货数量!" + Environment.NewLine + "应不大于" + sdl.nQuantity.ToString("F4") + sdl.cInvm_Unit); return(false); } ArrivalVouchs tempAVS = sdl.getNewDetail(); if (!addData(qty, tempAVS)) { return(false); } Clear(); txtLabel.Focus(); } return(true); } catch (Exception er) { MessageBox.Show(er.Message); txtCount.Focus(); return(false); } }
/// <summary> /// 根据采购订单号查询订单信息 /// </summary> /// <param name="cOrderCode"></param> /// <param name="errMsg"></param> /// <returns></returns> public ArrivalVouch PO_POMian_Load(string cOrderCode, out string errMsg) { DataSet ds = Common.GetInstance().Service.Po_Pomain_Load(Common.CurrentUser.ConnectionString, cOrderCode, out errMsg); //判断是否有数据 if (ds.Tables["dtMain"] == null || ds.Tables["dtMain"].Rows.Count == 0) { errMsg = "没有查询到数据:单据号不存在或已被处理"; return(null); } //转换主表 ArrivalVouch arrivalVouch = EntityConvert.ConvertToArrivalVouch(ds.Tables["dtMain"].Rows[0]); ArrivalVouchs arrivalVouchs = null; //循环转换子表 foreach (DataRow row in ds.Tables["dtDetails"].Rows) { arrivalVouchs = EntityConvert.ConvertToArrivalVouchs(row); arrivalVouchs.cVenAbbName = arrivalVouch.cVenAbbName; arrivalVouch.U8Details.Add(arrivalVouchs); } return(arrivalVouch); }
/// <summary> /// 数据累计 /// </summary> /// <param name="_qty">扫描数量</param> /// <param name="sd">累加货物</param> /// <returns>是否累加成功</returns> private bool addData(decimal _qty, ArrivalVouchs sd) { try { decimal num = 0; ArrivalVouchs temp = null; temp = tempAVH.U8Details.Find(delegate(ArrivalVouchs av) { return(av.cInvCode.ToUpper() == sd.cInvCode.ToUpper()); }); foreach (ArrivalVouchs avs in tempAVH.OperateDetails) { if (avs.cInvCode.ToUpper() == sd.cInvCode.ToUpper()) { num += avs.Quantity; if (num + _qty >= temp.nQuantity) { break; } } } if (num + _qty > temp.nQuantity) { MessageBox.Show("扫描数量大于最大扫描数量"); Clear(); return(false); } sd.cBatch = txtBatch.Text.Trim().ToUpper(); if (tempAVH.OperateDetails.Count > 0) { foreach (ArrivalVouchs siodl in tempAVH.OperateDetails) { if (siodl.cInvCode.ToUpper() == sd.cInvCode.ToUpper() && siodl.cBatch == sd.cBatch && siodl.nQuantity > 0)//看还要加什么条件? { if (siodl.nQuantity >= _qty + siodl.Quantity) { siodl.Quantity = siodl.Quantity + _qty;//数量累加 if (!siodl.bGsp) { //非质检到货合格数量 siodl.fRealQuantity += _qty; siodl.fValidQuantity += _qty; } siodl.iMoney = siodl.Quantity * siodl.iCost; //本币无税金额 siodl.iTaxPrice = siodl.iMoney * siodl.iTaxRate * Convert.ToDecimal(0.01); //本币税额 siodl.iSum = siodl.iMoney + siodl.iTaxPrice; //本币价税合计 siodl.iOriMoney = siodl.Quantity * siodl.iOriCost; //原币无税金额 siodl.iOriTaxPrice = siodl.iOriMoney * siodl.iTaxRate * Convert.ToDecimal(0.01); //原币税额 siodl.iOriSum = siodl.iOriMoney + siodl.iOriTaxPrice; //原币价税合计 if (siodl.iMassDate > 0 && siodl.dPDate != Cast.ToDateTime(dtpProDate.Value.ToShortDateString())) { siodl.dPDate = Cast.ToDateTime(dtpProDate.Value.ToShortDateString()); //生产日期 sd.dVDate = Cast.ToDateTime(dtpValityDate.Value.AddDays(1).ToShortDateString()); //失效日期 sd.cExpirationDate = dtpValityDate.Value.ToString("yyyy-MM-dd"); //有效期至 } if (cbChinese.Checked) { siodl.Define23 = dtpChineseDate.Value.ToString("yyyy-MM-dd");//中成药生产日期 } return(true); } else { MessageBox.Show("已扫描数量大于最大扫描数量" + Environment.NewLine + "应小于" + sd.nQuantity.ToString("F4") + sd.cInvm_Unit + ",已扫描" + siodl.Quantity.ToString("F4") + sd.cInvm_Unit); Clear(); return(false); } } } } //统一仓库 sd.cWhCode = cmbWarehouse.SelectedValue.ToString(); sd.cWhName = cmbWarehouse.Text; if (!sd.bGsp) { //非质检到货合格数量 sd.fRealQuantity = _qty; sd.fValidQuantity = _qty; } sd.Quantity = _qty; sd.iMoney = sd.Quantity * sd.iCost; //本币无税金额 sd.iTaxPrice = sd.iMoney * sd.iTaxRate * Convert.ToDecimal(0.01); //本币税额 sd.iSum = sd.iMoney + sd.iTaxPrice; //本币价税合计 sd.iOriMoney = sd.Quantity * sd.iOriCost; //原币无税金额 sd.iOriTaxPrice = sd.iOriMoney * sd.iTaxRate * Convert.ToDecimal(0.01); //原币税额 sd.iOriSum = sd.iOriMoney + sd.iOriTaxPrice; //原币价税合计 //是否效期管理 if (sd.iMassDate > 0) { sd.dPDate = Cast.ToDateTime(dtpProDate.Value.ToShortDateString()); //生产日期 sd.dVDate = Cast.ToDateTime(dtpValityDate.Value.AddDays(1).ToShortDateString()); //失效日期 sd.cExpirationDate = dtpValityDate.Value.ToString("yyyy-MM-dd"); //有效期至 sd.cMassUnit = 2; sd.iExpiratDateCalcu = 2; } if (cbChinese.Checked) { sd.Define23 = dtpChineseDate.Value.ToString("yyyy-MM-dd");//中成药生产日期 } tempAVH.OperateDetails.Add(sd); btnSubmit.Enabled = true; return(true); } catch (Exception er) { MessageBox.Show(er.Message); txtCount.Focus(); return(false); } }
/// <summary> /// 读取标签 /// </summary> /// <returns>是否存在对应存货</returns> private bool ReadLabel() { try { foreach (ArrivalVouchs sid in tempAVH.U8Details) { if (sid.cInvCode.ToUpper() == txtLabel.Text.Trim().ToUpper()) { lblName.Text = sid.cInvName; //品名 lblStandard.Text = sid.cInvStd; //规格 //lblcInvCode.Text = sid.cInvCode; //生产编码 lblAddrCode.Text = sid.Define22; //sid.cAddress; //产地 decimal qty = 0; //已扫数量 foreach (ArrivalVouchs sdd in tempAVH.OperateDetails) { if (sdd.cInvCode.ToUpper() == txtLabel.Text.Trim().ToUpper() && sdd.Quantity > 0) { if (!string.IsNullOrEmpty(txtBatch.Text) && sdd.cBatch.ToUpper() != txtBatch.Text.Trim().ToUpper()) { continue; } qty += sdd.Quantity; } } lblDoneNum.Text = qty.ToString("F4"); //非二维码扫描且效期管理 if (!is2Code && sid.bInvBatch && sid.iMassDate > 0) { cbChinese.Enabled = true; if (!string.IsNullOrEmpty(sid.Define23)) { cbChinese.Checked = true; dtpChineseDate.Value = ConvertDate(sid.Define23); } dtpProDate.Enabled = true; dtpValityDate.Enabled = true; if (dtpProDate.Value == dtpValityDate.Value || dtpProDate.Value == DateTime.Now) { ArrivalVouchs temp = null; temp = tempAVH.OperateDetails.Find(delegate(ArrivalVouchs avs) { return(avs.cInvCode.ToUpper() == txtLabel.Text.Trim().ToUpper() && avs.cBatch.ToUpper() == txtBatch.Text.Trim().ToUpper()); }); try { if (temp != null) { dtpValityDate.Value = ConvertDate(temp.cExpirationDate); dtpProDate.Value = temp.dPDate;// ConvertDate(temp.dPDate); dtpChineseDate.Value = ConvertDate(temp.Define23); } else { dtpValityDate.Value = ConvertDate(sid.cExpirationDate); dtpProDate.Value = temp.dPDate;// ConvertDate(sid.dPDate); } } catch { dtpValityDate.Value = Common.err_Time.AddMonths(sid.iMassDate).AddDays(-1); dtpProDate.Value = Common.err_Time; } } } else { dtpProDate.Enabled = false; dtpValityDate.Enabled = false; } // txtCount.Focus(); txtCount.SelectAll(); txtOrder.Tag = sid; return(true); } } MessageBox.Show("没有相应的物料信息"); Clear(); return(false); } catch (Exception ex) { MessageBox.Show(ex.Message); return(false); } }
/// <summary> /// 转换(表体) /// </summary> /// <param name="avDetail"></param> /// <param name="dr"></param> /// <param name="type"></param> public static void ArrivalDetailRow(ArrivalVouchs avDetail, DataRow dr, bool type) { if (type) { #region Body_Detail avDetail.Autoid = Common.DB2Int(dr["autoid"]); avDetail.ID = Common.DB2Int(dr["id"]); avDetail.cWhCode = Common.DB2String(dr["cwhcode"]); avDetail.cInvCode = Common.DB2String(dr["cinvcode"]); avDetail.cInvName = Common.DB2String(dr["cinvname"]); avDetail.cInvStd = Common.DB2String(dr["cinvstd"]); avDetail.iNum = Common.DB2Decimal(dr["inum"]); avDetail.Quantity = Common.DB2Decimal(dr["iquantity"]); avDetail.iOriCost = Common.DB2Decimal(dr["ioricost"]); avDetail.iOriTaxCost = Common.DB2Decimal(dr["ioritaxcost"]); avDetail.iOriMoney = Common.DB2Decimal(dr["iorimoney"]); avDetail.iOriTaxPrice = Common.DB2Decimal(dr["ioritaxprice"]); avDetail.iOriSum = Common.DB2Decimal(dr["iorisum"]); avDetail.iCost = Common.DB2Decimal(dr["icost"]); avDetail.iMoney = Common.DB2Decimal(dr["imoney"]); avDetail.iTaxPrice = Common.DB2Decimal(dr["itaxprice"]); avDetail.iSum = Common.DB2Decimal(dr["isum"]); avDetail.Free1 = Common.DB2String(dr["cfree1"]); avDetail.Free2 = Common.DB2String(dr["cfree2"]); avDetail.Free3 = Common.DB2String(dr["cfree3"]); avDetail.Free4 = Common.DB2String(dr["cfree4"]); avDetail.Free5 = Common.DB2String(dr["cfree5"]); avDetail.Free6 = Common.DB2String(dr["cfree6"]); avDetail.Free7 = Common.DB2String(dr["cfree7"]); avDetail.Free8 = Common.DB2String(dr["cfree8"]); avDetail.Free9 = Common.DB2String(dr["cfree9"]); avDetail.Free10 = Common.DB2String(dr["cfree10"]); avDetail.iTaxRate = Common.DB2Decimal(dr["itaxrate"]); avDetail.Define22 = Common.DB2String(dr["cdefine22"]); avDetail.Define23 = Common.DB2String(dr["cdefine23"]); avDetail.Define24 = Common.DB2String(dr["cdefine24"]); avDetail.Define25 = Common.DB2String(dr["cdefine25"]); avDetail.Define26 = Common.DB2Decimal(dr["cdefine26"]); avDetail.Define27 = Common.DB2Decimal(dr["cdefine27"]); avDetail.Define28 = Common.DB2String(dr["cdefine28"]); avDetail.Define29 = Common.DB2String(dr["cdefine29"]); avDetail.Define30 = Common.DB2String(dr["cdefine30"]); avDetail.Define31 = Common.DB2String(dr["cdefine31"]); avDetail.Define32 = Common.DB2String(dr["cdefine32"]); avDetail.Define33 = Common.DB2String(dr["cdefine33"]); avDetail.Define34 = Common.DB2Int(dr["cdefine34"]); avDetail.Define35 = Common.DB2Int(dr["cdefine35"]); avDetail.Define36 = Common.DB2DateTime(dr["cdefine36"]); avDetail.Define37 = Common.DB2DateTime(dr["cdefine37"]); avDetail.cItem_class = Common.DB2String(dr["citem_class"]); avDetail.cItemCode = Common.DB2String(dr["citemcode"]); avDetail.iPOsID = Common.DB2Int(dr["iposid"]); avDetail.cItemName = Common.DB2String(dr["citemname"]); avDetail.cUnitID = Common.DB2String(dr["cunitid"]); avDetail.fKPQuantity = Common.DB2Decimal(dr["fkpquantity"]); avDetail.fRealQuantity = Common.DB2Decimal(dr["frealquantity"]); avDetail.fValidInQuan = Common.DB2Decimal(dr["fvalidInQuan"]); avDetail.finValidQuantity = Common.DB2Decimal(dr["finvalidquantity"]); avDetail.cCloser = Common.DB2String(dr["ccloser"]); avDetail.iCorId = Common.DB2Int(dr["icorid"]); avDetail.bGsp = Common.DB2Bool(dr["bgsp"]); //avDetail.cGsp = avDetail.bGsp ? "是" : "否"; avDetail.cBatch = Common.DB2String(dr["cbatch"]); avDetail.dVDate = Common.DB2DateTime(dr["dvdate"]); avDetail.dPDate = Common.DB2DateTime(dr["dpdate"]); avDetail.fRefuseQuantity = Common.DB2Decimal(dr["frefusequantity"]); avDetail.cGspState = Common.DB2String(dr["cgspstate"]); avDetail.fInvalidInNum = Common.DB2Decimal(dr["finvalidnum"]); avDetail.bTaxCost = Common.DB2Bool(dr["btaxcost"]); avDetail.bInspect = Common.DB2String(dr["binspect"]); avDetail.fRefuseNum = Common.DB2Decimal(dr["frefusenum"]); avDetail.iPPartId = Common.DB2Int(dr["ippartid"]); avDetail.iPTOSeq = Common.DB2Int(dr["iptoseq"]); avDetail.SoDId = Common.DB2String(dr["sodid"]); avDetail.SoType = Common.DB2Int(dr["sotype"]); avDetail.ContractRowGUID = Common.DB2String(dr["contractrowguid"]); avDetail.iMassDate = Common.DB2Int(dr["imassdate"]); avDetail.cMassUnit = Common.DB2Int(dr["cmassunit"]); avDetail.bExigency = Common.DB2String(dr["bexigency"]); avDetail.cBcloser = Common.DB2String(dr["cbcloser"]); avDetail.fDTQuantity = Common.DB2Decimal(dr["fdtquantity"]); avDetail.fInvalidInNum = Common.DB2Decimal(dr["finvalidinnum"]); avDetail.fDegradeQuantity = Common.DB2Decimal(dr["fdegradequantity"]); avDetail.fDegradeNum = Common.DB2Decimal(dr["fdegradenum"]); avDetail.fDegradeInQuantity = Common.DB2Decimal(dr["fdegradeinquantity"]); avDetail.fDegradeInNum = Common.DB2Decimal(dr["fdegradeinnum"]); avDetail.fInspectQuantity = Common.DB2Decimal(dr["finspectquantity"]); avDetail.fInspectNum = Common.DB2Decimal(dr["finspectnum"]); avDetail.iInvMPCost = Common.DB2Decimal(dr["iinvmpcost"]); avDetail.Guids = Common.DB2String(dr["guids"]); avDetail.iInvexchRate = Common.DB2Decimal(dr["iinvexchrate"]); avDetail.Objectid_Source = Common.DB2String(dr["objectid_source"]); avDetail.Autoid_Source = Common.DB2Int(dr["autoid_source"]); avDetail.Ufts_Source = Common.DB2String(dr["ufts_source"]); avDetail.iRowno_Source = Common.DB2Int(dr["irowno_source"]); avDetail.cSoCode = Common.DB2String(dr["csocode"]); avDetail.iSoRowNo = Common.DB2Int(dr["isorowno"]); avDetail.iOrderId = Common.DB2Int(dr["iorderid"]); avDetail.cOrderCode = Common.DB2String(dr["cordercode"]); avDetail.iOrderRowNo = Common.DB2Int(dr["iorderrowno"]); avDetail.dLineCloseDate = Common.DB2String(dr["dlineclosedate"]); avDetail.ContractCode = Common.DB2String(dr["contractcode"]); avDetail.ContractRowNo = Common.DB2String(dr["contractrowno"]); avDetail.RejectSource = Common.DB2Bool(dr["rejectsource"]); avDetail.iCiqBookId = Common.DB2Int(dr["iciqbookid"]); avDetail.cCiqBookCode = Common.DB2String(dr["cciqbookcode"]); avDetail.cCiqCode = Common.DB2String(dr["cciqcode"]); avDetail.iRejectAutoId = Common.DB2Int(dr["irejectautoid"]); avDetail.iExpiratDateCalcu = Common.DB2Int(dr["iexpiratdatecalcu"]); avDetail.cExpirationDate = Common.DB2String(dr["cexpirationdate"]); avDetail.dExpirationDate = Common.DB2DateTime(dr["dexpirationdate"]); avDetail.cUpSoCode = Common.DB2String(dr["cupsocode"]); avDetail.iOrderdId = Common.DB2Int(dr["iorderdid"]); avDetail.iOrderType = Common.DB2Int(dr["iordertype"]); avDetail.cSoOrderCode = Common.DB2String(dr["csoordercode"]); avDetail.iOrderSeq = Common.DB2Int(dr["iorderseq"]); avDetail.BatchProperty1 = Common.DB2Decimal(dr["cbatchproperty1"]); avDetail.BatchProperty2 = Common.DB2Decimal(dr["cbatchproperty2"]); avDetail.BatchProperty3 = Common.DB2Decimal(dr["cbatchproperty3"]); avDetail.BatchProperty4 = Common.DB2Decimal(dr["cbatchproperty4"]); avDetail.BatchProperty5 = Common.DB2Decimal(dr["cbatchproperty5"]); avDetail.BatchProperty6 = Common.DB2String(dr["cbatchproperty6"]); avDetail.BatchProperty7 = Common.DB2String(dr["cbatchproperty7"]); avDetail.BatchProperty8 = Common.DB2String(dr["cbatchproperty8"]); avDetail.BatchProperty9 = Common.DB2String(dr["cbatchproperty9"]); avDetail.BatchProperty10 = Common.DB2String(dr["cbatchproperty10"]); avDetail.iVouchRowNo = Common.DB2Int(dr["ivouchrowno"]); avDetail.cVenName = Common.DB2String(dr["cvenname"]); avDetail.cVenAbbName = Common.DB2String(dr["cvenabbname"]); avDetail.cAddress = Common.DB2String(dr["caddress"]); avDetail.nQuantity = Common.DB2Decimal(dr["inquantity"]); avDetail.cInvm_Unit = Common.DB2String(dr["cinvm_unit"]); avDetail.dArriveDate = Common.DB2String(dr["darrivedate"]); avDetail.cDemandMemo = Common.DB2String(dr["cdemandmemo"]); avDetail.bInvBatch = Common.DB2Bool(dr["binvbatch"]); avDetail.OrderQuantity = Common.DB2Decimal(dr["orderquantity"]); //委外 avDetail.cMoDetailsID = Common.DB2String(dr["modetailsID"]); #endregion } else { #region Body_Row dr["autoid"] = avDetail.Autoid; dr["id"] = avDetail.ID; dr["cwhcode"] = avDetail.cWhCode; dr["cinvcode"] = avDetail.cInvCode; dr["cinvname"] = avDetail.cInvName; dr["cinvstd"] = avDetail.cInvStd; dr["inum"] = avDetail.iNum; dr["iquantity"] = avDetail.Quantity; dr["ioricost"] = avDetail.iOriCost; dr["ioritaxcost"] = avDetail.iOriTaxCost; dr["iorimoney"] = avDetail.iOriMoney; dr["ioritaxprice"] = avDetail.iOriTaxPrice; dr["iorisum"] = avDetail.iOriSum; dr["icost"] = avDetail.iCost; dr["imoney"] = avDetail.iMoney; dr["itaxprice"] = avDetail.iTaxPrice; dr["isum"] = avDetail.iSum; dr["cfree1"] = avDetail.Free1; dr["cfree2"] = avDetail.Free2; dr["cfree3"] = avDetail.Free3; dr["cfree4"] = avDetail.Free4; dr["cfree5"] = avDetail.Free5; dr["cfree6"] = avDetail.Free6; dr["cfree7"] = avDetail.Free7; dr["cfree8"] = avDetail.Free8; dr["cfree9"] = avDetail.Free9; dr["cfree10"] = avDetail.Free10; dr["itaxrate"] = avDetail.iTaxRate; dr["cdefine22"] = avDetail.Define22; dr["cdefine23"] = avDetail.Define23; dr["cdefine24"] = avDetail.Define24; dr["cdefine25"] = avDetail.Define25; dr["cdefine26"] = avDetail.Define26; dr["cdefine27"] = avDetail.Define27; dr["cdefine28"] = avDetail.Define28; dr["cdefine29"] = avDetail.Define29; dr["cdefine30"] = avDetail.Define30; dr["cdefine31"] = avDetail.Define31; dr["cdefine32"] = avDetail.Define32; dr["cdefine33"] = avDetail.Define33; dr["cdefine34"] = avDetail.Define34; dr["cdefine35"] = avDetail.Define35; dr["cdefine36"] = avDetail.Define36; dr["cdefine37"] = avDetail.Define37; dr["citem_class"] = avDetail.cItem_class; dr["citemcode"] = avDetail.cItemCode; dr["iposid"] = avDetail.iPOsID; dr["citemname"] = avDetail.cItemName; dr["cunitid"] = avDetail.cUnitID; dr["fkpquantity"] = avDetail.fKPQuantity; dr["frealquantity"] = avDetail.fRealQuantity; dr["fValidQuantity"] = avDetail.fValidQuantity; dr["fvalidInQuan"] = avDetail.fValidInQuan; dr["finvalidquantity"] = avDetail.finValidQuantity; dr["ccloser"] = avDetail.cCloser; dr["icorid"] = avDetail.iCorId; dr["bgsp"] = avDetail.bGsp; dr["cbatch"] = avDetail.cBatch; dr["dvdate"] = avDetail.dVDate; dr["dpdate"] = avDetail.dPDate; dr["frefusequantity"] = avDetail.fRefuseQuantity; dr["cgspstate"] = avDetail.cGspState; dr["finvalidnum"] = avDetail.fInvalidInNum; dr["btaxcost"] = avDetail.bTaxCost; dr["binspect"] = avDetail.bInspect; dr["frefusenum"] = avDetail.fRefuseNum; dr["ippartid"] = avDetail.iPPartId; dr["iptoseq"] = avDetail.iPTOSeq; dr["sodid"] = avDetail.SoDId; dr["sotype"] = avDetail.SoType; dr["contractrowguid"] = avDetail.ContractRowGUID; dr["imassdate"] = avDetail.iMassDate; dr["cmassunit"] = avDetail.cMassUnit; dr["bexigency"] = avDetail.bExigency; dr["cbcloser"] = avDetail.cBcloser; dr["fdtquantity"] = avDetail.fDTQuantity; dr["finvalidinnum"] = avDetail.fInvalidInNum; dr["fdegradequantity"] = avDetail.fDegradeQuantity; dr["fdegradenum"] = avDetail.fDegradeNum; dr["fdegradeinquantity"] = avDetail.fDegradeInQuantity; dr["fdegradeinnum"] = avDetail.fDegradeInNum; dr["finspectquantity"] = avDetail.fInspectQuantity; dr["finspectnum"] = avDetail.fInspectNum; dr["iinvmpcost"] = avDetail.iInvMPCost; dr["guids"] = avDetail.Guids; dr["iinvexchrate"] = avDetail.iInvexchRate; dr["objectid_source"] = avDetail.Objectid_Source; dr["autoid_source"] = avDetail.Autoid_Source; dr["ufts_source"] = avDetail.Ufts_Source; dr["irowno_source"] = avDetail.iRowno_Source; dr["csocode"] = avDetail.cSoCode; dr["isorowno"] = avDetail.iSoRowNo; dr["iorderid"] = avDetail.iOrderId; dr["cordercode"] = avDetail.cOrderCode; dr["iorderrowno"] = avDetail.iOrderRowNo; dr["dlineclosedate"] = avDetail.dLineCloseDate; dr["contractcode"] = avDetail.ContractCode; dr["contractrowno"] = avDetail.ContractRowNo; dr["rejectsource"] = avDetail.RejectSource; dr["iciqbookid"] = avDetail.iCiqBookId; dr["cciqbookcode"] = avDetail.cCiqBookCode; dr["cciqcode"] = avDetail.cCiqCode; dr["irejectautoid"] = avDetail.iRejectAutoId; dr["iexpiratdatecalcu"] = avDetail.iExpiratDateCalcu; dr["cexpirationdate"] = avDetail.cExpirationDate; dr["dexpirationdate"] = avDetail.dExpirationDate; dr["cupsocode"] = avDetail.cUpSoCode; dr["iorderdid"] = avDetail.iOrderdId; dr["iordertype"] = avDetail.iOrderType; dr["csoordercode"] = avDetail.cSoOrderCode; dr["iorderseq"] = avDetail.iOrderSeq; dr["cbatchproperty1"] = avDetail.BatchProperty1; dr["cbatchproperty2"] = avDetail.BatchProperty2; dr["cbatchproperty3"] = avDetail.BatchProperty3; dr["cbatchproperty4"] = avDetail.BatchProperty4; dr["cbatchproperty5"] = avDetail.BatchProperty5; dr["cbatchproperty6"] = avDetail.BatchProperty6; dr["cbatchproperty7"] = avDetail.BatchProperty7; dr["cbatchproperty8"] = avDetail.BatchProperty8; dr["cbatchproperty9"] = avDetail.BatchProperty9; dr["cbatchproperty10"] = avDetail.BatchProperty10; dr["ivouchrowno"] = avDetail.iVouchRowNo; dr["cvenname"] = avDetail.cVenName; dr["caddress"] = avDetail.cAddress; dr["inquantity"] = avDetail.nQuantity; dr["cinvm_unit"] = avDetail.cVenName; dr["darrivedate"] = avDetail.cAddress; dr["cdemandmemo"] = avDetail.nQuantity; dr["binvbatch"] = avDetail.bInvBatch; dr["orderquantity"] = avDetail.OrderQuantity; //委外 dr["modetailsID"] = avDetail.cMoDetailsID; #endregion } }
/// <summary> /// 转换(表头) /// </summary> /// <param name="objAVOrder"></param> /// <param name="order"></param> private static void ArrivalVouchSource(ArrivalVouch objAVOrder, DataSet order) { #region Head objAVOrder.VT_ID = Common.DB2Int(order.Tables["head"].Rows[0]["ivtid"]); objAVOrder.ID = Common.DB2Int(order.Tables["head"].Rows[0]["id"]); objAVOrder.cCode = Common.DB2String(order.Tables["head"].Rows[0]["ccode"]); objAVOrder.cPTCode = Common.DB2String(order.Tables["head"].Rows[0]["cptcode"]); objAVOrder.dDate = Common.DB2String(order.Tables["head"].Rows[0]["ddate"]); objAVOrder.cVenCode = Common.DB2String(order.Tables["head"].Rows[0]["cvencode"]); objAVOrder.cDepCode = Common.DB2String(order.Tables["head"].Rows[0]["cdepcode"]); objAVOrder.cPersonCode = Common.DB2String(order.Tables["head"].Rows[0]["cpersoncode"]); objAVOrder.cPayCode = Common.DB2String(order.Tables["head"].Rows[0]["cpaycode"]); objAVOrder.cSCCode = Common.DB2String(order.Tables["head"].Rows[0]["csccode"]); objAVOrder.cExch_Name = Common.DB2String(order.Tables["head"].Rows[0]["cexch_name"]); objAVOrder.iExchRate = Common.DB2Decimal(order.Tables["head"].Rows[0]["iexchrate"]); objAVOrder.iTaxRate = Common.DB2Decimal(order.Tables["head"].Rows[0]["itaxrate"]); objAVOrder.cMemo = Common.DB2String(order.Tables["head"].Rows[0]["cmemo"]); objAVOrder.cBusType = Common.DB2String(order.Tables["head"].Rows[0]["cbustype"]); objAVOrder.cMaker = Common.DB2String(order.Tables["head"].Rows[0]["cmaker"]); objAVOrder.bNegative = Common.DB2Int(order.Tables["head"].Rows[0]["bnegative"]); objAVOrder.Define1 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine1"]); objAVOrder.Define2 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine2"]); objAVOrder.Define3 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine3"]); objAVOrder.Define4 = Common.DB2DateTime(order.Tables["head"].Rows[0]["cdefine4"]); objAVOrder.Define5 = Common.DB2Int(order.Tables["head"].Rows[0]["cdefine5"]); objAVOrder.Define6 = Common.DB2DateTime(order.Tables["head"].Rows[0]["cdefine6"]); objAVOrder.Define7 = Common.DB2Int(order.Tables["head"].Rows[0]["cdefine7"]); objAVOrder.Define8 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine8"]); objAVOrder.Define9 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine9"]); objAVOrder.Define10 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine10"]); objAVOrder.Define11 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine11"]); objAVOrder.Define12 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine12"]); objAVOrder.Define13 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine13"]); objAVOrder.Define14 = Common.DB2String(order.Tables["head"].Rows[0]["cdefine14"]); objAVOrder.Define15 = Common.DB2Int(order.Tables["head"].Rows[0]["cdefine15"]); objAVOrder.Define16 = Common.DB2Decimal(order.Tables["head"].Rows[0]["cdefine16"]); objAVOrder.cCloser = Common.DB2String(order.Tables["head"].Rows[0]["ccloser"]); objAVOrder.iDiscountTaxType = Common.DB2String(order.Tables["head"].Rows[0]["idiscounttaxtype"]); objAVOrder.iBillType = Common.DB2String(order.Tables["head"].Rows[0]["ibilltype"]); objAVOrder.cVouchType = Common.DB2String(order.Tables["head"].Rows[0]["cvouchtype"]); objAVOrder.cGeneralOrderCode = Common.DB2String(order.Tables["head"].Rows[0]["cgeneralordercode"]); objAVOrder.cTmCode = Common.DB2String(order.Tables["head"].Rows[0]["ctmcode"]); objAVOrder.cIncotermCode = Common.DB2String(order.Tables["head"].Rows[0]["cincotermcode"]); objAVOrder.cTransOrderCode = Common.DB2String(order.Tables["head"].Rows[0]["ctransordercode"]); objAVOrder.dPortDate = Common.DB2String(order.Tables["head"].Rows[0]["dportdate"]); objAVOrder.cSportCode = Common.DB2String(order.Tables["head"].Rows[0]["csportcode"]); objAVOrder.cAportCode = Common.DB2String(order.Tables["head"].Rows[0]["caportcode"]); objAVOrder.cSvenCode = Common.DB2String(order.Tables["head"].Rows[0]["csvencode"]); objAVOrder.cArrivalPlace = Common.DB2String(order.Tables["head"].Rows[0]["carrivalplace"]); objAVOrder.dCloseDate = Common.DB2String(order.Tables["head"].Rows[0]["dclosedate"]); objAVOrder.iDec = Common.DB2Int(order.Tables["head"].Rows[0]["idec"]); objAVOrder.bCal = Common.DB2Bool(order.Tables["head"].Rows[0]["bcal"]); objAVOrder.Guid = Common.DB2String(order.Tables["head"].Rows[0]["guid"]); objAVOrder.iVerifyState = Common.DB2Int(order.Tables["head"].Rows[0]["iverifystate"]); objAVOrder.cAuditDate = Common.DB2String(order.Tables["head"].Rows[0]["cauditdate"]); objAVOrder.cVerifier = Common.DB2String(order.Tables["head"].Rows[0]["cverifier"]); objAVOrder.iVerifyStateex = Common.DB2Int(order.Tables["head"].Rows[0]["iverifystateex"]); objAVOrder.iReturnCount = Common.DB2Int(order.Tables["head"].Rows[0]["ireturncount"]); objAVOrder.isWfContRolled = Common.DB2Bool(order.Tables["head"].Rows[0]["iswfcontrolled"]); objAVOrder.cVenPUOMProtocol = Common.DB2String(order.Tables["head"].Rows[0]["cvenpuomprotocol"]); objAVOrder.cChanger = Common.DB2String(order.Tables["head"].Rows[0]["cchanger"]); objAVOrder.iFlowId = Common.DB2Int(order.Tables["head"].Rows[0]["iflowid"]); objAVOrder.cVenName = Common.DB2String(order.Tables["head"].Rows[0]["cvenname"]); objAVOrder.cAddress = Common.DB2String(order.Tables["head"].Rows[0]["caddress"]); objAVOrder.ufts = Common.DB2String(order.Tables["head"].Rows[0]["ufts"]); #endregion #region Body objAVOrder.U8Details = new List <ArrivalVouchs>(); foreach (DataRow dr in order.Tables["body"].Rows) { ArrivalVouchs objDetail = new ArrivalVouchs(); ArrivalDetailRow(objDetail, dr, true); objAVOrder.U8Details.Add(objDetail); } #endregion }
/// <summary> /// 把数据行转换为ArrivalVouchs实体对象 /// </summary> /// <param name="row"></param> /// <returns></returns> public static ArrivalVouchs ConvertToArrivalVouchs(DataRow row) { ArrivalVouchs arrivalVouchs = new ArrivalVouchs(); arrivalVouchs.ID = Cast.ToInteger(row["poid"]); //采购订单主表ID arrivalVouchs.Autoid = Cast.ToInteger(row["id"]); //采购订单子表ID //是否批次管理 arrivalVouchs.bInvBatch = Cast.ToBoolean(row["bInvBatch"]); //是否保质期管理 arrivalVouchs.bInvQuality = Cast.ToBoolean(row["bInvQuality"]); arrivalVouchs.cVenCode = Cast.ToString(row["cvencode"]); arrivalVouchs.iExchRate = Cast.ToDecimal(row["iexchrate"]); //arrivalVouchs.ID = Cast.ToInteger(row["id"]); arrivalVouchs.bTaxCost = Cast.ToBoolean(row["btaxcost"]); arrivalVouchs.cInvCode = Cast.ToString(row["cinvcode"]); arrivalVouchs.cInvName = Cast.ToString(row["cinvname"]); arrivalVouchs.cInvStd = Cast.ToString(row["cinvstd"]); arrivalVouchs.cInvm_Unit = Cast.ToString(row["cinvm_unit"]); arrivalVouchs.bGsp = Cast.ToBoolean(row["bgsp"]); arrivalVouchs.iMassDate = Cast.ToInteger(row["imassdate"]); arrivalVouchs.cMassUnit = Cast.ToInteger(row["cmassunit"]); arrivalVouchs.Quantity = Cast.ToDecimal(row["iquantity"]); //订单数量 arrivalVouchs.iArrQty = Cast.ToDecimal(row["iArrQty"]); //到货数量 arrivalVouchs.iNum = Cast.ToDecimal(row["inum"]); arrivalVouchs.iInvexchRate = Cast.ToDecimal(row["iinvexchrate"]); arrivalVouchs.iunitprice = Cast.ToDecimal(row["iunitprice"]); //原币无税单价 arrivalVouchs.iTaxPrice = Cast.ToDecimal(row["iTaxPrice"]); //原币含税单价 arrivalVouchs.iTax = Cast.ToDecimal(row["iTax"]); //原币税额 arrivalVouchs.iSum = Cast.ToDecimal(row["isum"]); //原币价税合计 arrivalVouchs.iMoney = Cast.ToDecimal(row["iMoney"]); //原币无税金额 arrivalVouchs.inatunitprice = Cast.ToDecimal(row["inatunitprice"]); arrivalVouchs.iVouchRowNo = Cast.ToInteger(row["ivouchrowno"]); arrivalVouchs.inatmoney = Cast.ToDecimal(row["inatmoney"]); arrivalVouchs.inattax = Cast.ToDecimal(row["inattax"]); arrivalVouchs.inatsum = Cast.ToDecimal(row["inatsum"]); arrivalVouchs.iTaxRate = Cast.ToDecimal(row["itaxrate"]); arrivalVouchs.Free1 = Cast.ToString(row["cfree1"]); arrivalVouchs.Free2 = Cast.ToString(row["cfree2"]); arrivalVouchs.Free3 = Cast.ToString(row["cfree3"]); arrivalVouchs.Free4 = Cast.ToString(row["cfree4"]); arrivalVouchs.Free5 = Cast.ToString(row["cfree5"]); arrivalVouchs.Free6 = Cast.ToString(row["cfree6"]); arrivalVouchs.Free7 = Cast.ToString(row["cfree7"]); arrivalVouchs.Free8 = Cast.ToString(row["cfree8"]); arrivalVouchs.Free9 = Cast.ToString(row["cfree9"]); arrivalVouchs.Free10 = Cast.ToString(row["cfree10"]); arrivalVouchs.Define22 = Cast.ToString(row["cdefine22"]);//产地 arrivalVouchs.Define23 = Cast.ToString(row["cdefine23"]); arrivalVouchs.Define24 = Cast.ToString(row["cdefine24"]); arrivalVouchs.Define25 = Cast.ToString(row["cdefine25"]); arrivalVouchs.Define26 = Cast.ToDecimal(row["cdefine26"]); arrivalVouchs.Define27 = Cast.ToDecimal(row["cdefine27"]); arrivalVouchs.Define28 = Cast.ToString(row["cdefine28"]); arrivalVouchs.Define29 = Cast.ToString(row["cdefine29"]); arrivalVouchs.Define30 = Cast.ToString(row["cdefine30"]); arrivalVouchs.Define31 = Cast.ToString(row["cdefine31"]); arrivalVouchs.Define32 = Cast.ToString(row["cdefine32"]); arrivalVouchs.Define33 = Cast.ToString(row["cdefine33"]); arrivalVouchs.Define34 = Cast.ToInteger(row["cdefine34"]); arrivalVouchs.Define35 = Cast.ToInteger(row["cdefine35"]); arrivalVouchs.Define36 = Cast.ToDateTime(row["cdefine36"]); arrivalVouchs.Define37 = Cast.ToDateTime(row["cdefine37"]); arrivalVouchs.cItem_class = Cast.ToString(row["citem_class"]); arrivalVouchs.cItemCode = Cast.ToString(row["citemcode"]); arrivalVouchs.cItemName = Cast.ToString(row["citemname"]); arrivalVouchs.cinvdefine1 = Cast.ToString(row["cinvdefine1"]); arrivalVouchs.cinvdefine2 = Cast.ToString(row["cinvdefine2"]); arrivalVouchs.cinvdefine3 = Cast.ToString(row["cinvdefine3"]); arrivalVouchs.cinvdefine4 = Cast.ToString(row["cinvdefine4"]); arrivalVouchs.cinvdefine5 = Cast.ToString(row["cinvdefine5"]); arrivalVouchs.cinvdefine6 = Cast.ToString(row["cinvdefine6"]); arrivalVouchs.cinvdefine7 = Cast.ToString(row["cinvdefine7"]); arrivalVouchs.cinvdefine8 = Cast.ToString(row["cinvdefine8"]); arrivalVouchs.cinvdefine9 = Cast.ToString(row["cinvdefine9"]); arrivalVouchs.cinvdefine10 = Cast.ToString(row["cinvdefine10"]); arrivalVouchs.cinvdefine11 = Cast.ToString(row["cinvdefine11"]); arrivalVouchs.cinvdefine12 = Cast.ToString(row["cinvdefine12"]); arrivalVouchs.cinvdefine13 = Cast.ToString(row["cinvdefine13"]); arrivalVouchs.cinvdefine14 = Cast.ToString(row["cinvdefine14"]); arrivalVouchs.cinvdefine15 = Cast.ToString(row["cinvdefine15"]); arrivalVouchs.cinvdefine16 = Cast.ToString(row["cinvdefine16"]); arrivalVouchs.ContractCode = Cast.ToString(row["contractcode"]); arrivalVouchs.ContractRowNo = Cast.ToString(row["contractrowno"]); arrivalVouchs.ContractRowGUID = Cast.ToString(row["contractrowguid"]); arrivalVouchs.cSoCode = Cast.ToString(row["csocode"]); arrivalVouchs.SoType = Cast.ToInteger(row["sotype"]); arrivalVouchs.SoDId = Cast.ToString(row["sodid"]); arrivalVouchs.cWhCode = Cast.ToString(row["cwhcode"]); arrivalVouchs.cWhName = Cast.ToString(row["cwhname"]); arrivalVouchs.iInvMPCost = Cast.ToDecimal(row["iinvmpcost"]); arrivalVouchs.cOrderCode = Cast.ToString(row["cordercode"]); arrivalVouchs.dArriveDate = Cast.ToString(row["darrivedate"]); arrivalVouchs.iOrderdId = Cast.ToInteger(row["iorderdid"]); arrivalVouchs.iOrderType = Cast.ToInteger(row["iordertype"]); arrivalVouchs.cSoOrderCode = Cast.ToString(row["csoordercode"]); arrivalVouchs.iOrderSeq = Cast.ToInteger(row["iorderseq"]); arrivalVouchs.cDemandMemo = Cast.ToString(row["cdemandmemo"]); arrivalVouchs.iExpiratDateCalcu = Cast.ToInteger(row["iexpiratdatecalcu"]); //arrivalVouchs.cExpirationDate = Cast.ToString(row["cexpirationdate"]); //arrivalVouchs.dExpirationDate = Cast.ToDateTime(row["dexpirationdate"]); arrivalVouchs.iOrderRowNo = Cast.ToInteger(row["irowno"]);//订单行号 //委外 //arrivalVouchs.cMoDetailsID = Cast.ToString(row["modetailsID"]); return(arrivalVouchs); }
private void btnClear_Click(object sender, EventArgs e) { arrivalVouchs = null; BarCodeLooper(); }
/// <summary> /// 录入数量回车 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtCount_KeyPress(object sender, KeyPressEventArgs e) { string strCount = txtCount.Text.Trim(); if (e.KeyChar == (char)Keys.Enter && !string.IsNullOrEmpty(strCount)) { //判断数量是否正确 Decimal qty = (Decimal)Cast.ToDouble(strCount); if (qty <= 0) { MessageBox.Show("请输入正确的数量!"); txtCount.Focus(); txtCount.SelectAll(); return; } //仓库 Warehouse wh = cmbWarehouse.SelectedItem as Warehouse; if (wh == null || wh.cwhcode.Equals("-1")) { MessageBox.Show("请选择仓库"); return; } String cBatch = txtBatch.Text.Trim(); //在已操作数据中查找 ArrivalVouchs avs = null; //判断是否有批次管理:如果没有批次 if (arrivalVouchs.bInvBatch) { if (string.IsNullOrEmpty(cBatch)) { MessageBox.Show("请输入批次!"); txtBatch.Focus(); txtBatch.SelectAll(); return; } //按存货批次查询 avs = arrivalVouch.OperateDetails.Find(delegate(ArrivalVouchs temp) { return(temp.cInvCode.Equals(arrivalVouchs.cInvCode) && temp.cBatch.Equals(cBatch)); }); } else { //只按存货查询 avs = arrivalVouch.OperateDetails.Find(delegate(ArrivalVouchs temp) { return(temp.cInvCode.Equals(arrivalVouchs.cInvCode)); }); } if (avs == null)//说明还没有扫描该存货 { avs = arrivalVouchs.getNewDetail(); //判断数量是否正确 if (avs.Quantity - avs.iArrQty - avs.iScanQuantity < qty) { MessageBox.Show("录入数量大于订单数量!"); txtCount.Focus(); txtCount.SelectAll(); return; } if (chkChinese.Checked) { avs.Define23 = dtpChineseDate.Value.ToString("yyyy-MM-dd");//中成药 } //判断是否保质期管理 if (avs.bInvQuality) { avs.dPDate = Cast.ToDateTime(dtpProDate.Value.ToShortDateString()); //生产日期 avs.dVDate = Cast.ToDateTime(dtpValidDate.Value.AddDays(1).ToShortDateString()); //失败日期 avs.dExpirationDate = Cast.ToDateTime(dtpValidDate.Value.ToShortDateString()); //有效期计算项 avs.cExpirationDate = dtpValidDate.Value.ToString("yyyy-MM-dd"); //有效期至 } avs.cBatch = cBatch; //批次 avs.cWhCode = wh.cwhcode; //仓库 if (!btnDone.Enabled) { btnDone.Enabled = btnSubmit.Enabled = true; } //数量 avs.iScanQuantity = qty; //扫描数量 arrivalVouchs.iScanQuantity += qty; //来源中的扫描数量 //是否质检 if (!avs.bGsp) { avs.fRealQuantity = qty; avs.fValidQuantity = qty; } avs.iMoney = avs.iunitprice * qty; //原币无税金额 avs.iTax = (avs.iTaxPrice - avs.iunitprice) * qty; //原币税额 avs.iSum = avs.iTaxPrice * qty; //原币价税合计 //添加到已操作 arrivalVouch.OperateDetails.Add(avs); } else { //判断数量是否正确 if (avs.Quantity - avs.iArrQty - arrivalVouchs.iScanQuantity < qty)//可能分多个批次 所以 减去的是arrivalVouchs中的已扫数量 { MessageBox.Show("录入数量大于订单数量!"); txtCount.Focus(); txtCount.SelectAll(); return; } //数量 avs.iScanQuantity += qty; arrivalVouchs.iScanQuantity += qty; if (!avs.bGsp) { avs.fRealQuantity += qty; avs.fValidQuantity += qty; } avs.iMoney = avs.iunitprice * avs.iScanQuantity; //原币无税金额 avs.iTax = (avs.iTaxPrice - avs.iunitprice) * avs.iScanQuantity; //原币税额 avs.iSum = avs.iTaxPrice * avs.iScanQuantity; //原币价税合计 } arrivalVouchs = null; //循环扫描条码 BarCodeLooper(); } }
/// <summary> /// 扫描条码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtBarcode_KeyPress(object sender, KeyPressEventArgs e) { string strBarcode = txtBarcode.Text.Trim(); if (e.KeyChar == (char)Keys.Enter && !string.IsNullOrEmpty(strBarcode)) { try { string[] barcode = new string[7] { "", "", "", "", "", "", "" }; string errMsg = string.Empty; string cInvCode = string.Empty; //存货编码 bool IsQR = false; if (strBarcode.IndexOf('@') == -1) //没有查到说明为一维条码 { //根据一维条码查询存货编码 bool flag = Common.GetCInvCode(strBarcode, out cInvCode, out errMsg); if (!flag) { MessageBox.Show("没有找到对应的存货编码!" + errMsg); return; } barcode[2] = cInvCode; } else { barcode = strBarcode.Split('@'); IsQR = true; ///根据20121109日讨论结果:以69码为主,根据69码查询对应的存货编码 //根据一维条码查询存货编码 bool flag = Common.GetCInvCode(barcode[0], out cInvCode, out errMsg); if (!flag) { MessageBox.Show("没有找到对应的存货编码!" + errMsg); return; } barcode[2] = cInvCode; } //在来源单据中查找存货编号为cInvCode arrivalVouchs = arrivalVouch.U8Details.Find(delegate(ArrivalVouchs avs) { return(avs.cInvCode.Equals(barcode[2])); }); if (arrivalVouchs == null)//没有找到对象,说明不是该单据中的存货 { MessageBox.Show("条码错误:存货编码不在订单中"); txtBarcode.Focus(); txtBarcode.SelectAll(); return; } //显示存货基本信息 lblcInvName.Text = arrivalVouchs.cInvName; lblcInvStd.Text = arrivalVouchs.cInvStd; lblAddress.Text = arrivalVouchs.Define22; //产地 chkChinese.Enabled = true; //中成药可选 lblScanNum.Text = arrivalVouchs.iScanQuantity.ToString("F2"); //已扫数量 //如果是二维则批次及生产日期、有效期不可修改 if (IsQR) { //dtpProDate.Enabled = dtpValidDate.Enabled = true; dtpProDate.Text = barcode[4]; dtpValidDate.Text = barcode[5]; txtBatch.Text = barcode[3]; //到数量 txtCount.Enabled = true; txtCount.Focus(); } else { //是否保质期管理 dtpProDate.Enabled = dtpValidDate.Enabled = arrivalVouchs.bInvQuality; dtpProDate.Value = DateTime.Now; //是否批次管理 txtBatch.Enabled = arrivalVouchs.bInvBatch; txtCount.Enabled = !arrivalVouchs.bInvBatch; //选择焦点 bool b = arrivalVouchs.bInvQuality ? dtpProDate.Focus() : arrivalVouchs.bInvBatch ? txtBatch.Focus() : txtCount.Focus(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Cursor.Current = Cursors.Default; } } }