public override object Do(object obj) { ConfirmSuItemBP bpObj = (ConfirmSuItemBP)obj; using (ISession session = Session.Open()) { //确认包材子件信息 foreach (long id in bpObj.BOMLineKeyList) { OrderBomBE.OrderBomHead head = OrderBomBE.OrderBomHead.Finder.FindByID(id); head.ArrirmState = bpObj.IsConfirm; } session.Commit(); } return(true); }
private static decimal GetPurchasePrice(int type, GS.FT.ShipPlanDetailBE.ShipPlanDetailLine shipLine, OrderBomBE.OrderBomHead bomLine) { decimal purchasePrice = 0; //取采购价,销售订单行-供应商计划-采购订单,取采购订单单价 //UFIDA.U9.Cust.GS.SP.SupplyPlanBE.SupplyPlan plan = UFIDA.U9.Cust.GS.SP.SupplyPlanBE.SupplyPlan.Finder.Find("SOLineID=" + soLine.ID + ""); //if (plan != null) //{ // //UFIDA.U9.PM.PO.PurchaseOrder //} DataSet ds = new DataSet(); StringBuilder sb = new StringBuilder(); sb.Append(" select POLine.ID,POLine.FinallyPriceTC,PM.DescFlexField_PrivateDescSeg2 as PurchaseOrgCode,CBO_SI.DescFlexField_PrivateDescSeg10 as IsImport "); sb.Append(" from GS_SP_SupplyPlan SP "); sb.Append(" inner join GS_SP_SupplyPlanLine SPLine on SP.ID =SPLine.SupplyPlan"); sb.Append(" inner join PM_PurchaseOrder PM on SPLine.PO=PM.ID"); sb.Append(" inner join PM_POLine POLine on PM.ID=POLine.PurchaseOrder"); sb.Append(" left join CBO_SupplierItem CBO_SI on CBO_SI.SupplierInfo_Supplier=PM.Supplier_Supplier and CBO_SI.ItemInfo_ItemID=POLine.ItemInfo_ItemID"); sb.Append(" where SP.SOLineID=" + shipLine.SrcLineID + " and POLine.ItemInfo_ItemID=" + shipLine.Item.ID + ""); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), sb.ToString(), null, out ds); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { if (type == 0 && (ds.Tables[0].Rows[0]["PurchaseOrgCode"].ToString() == "J003" || (ds.Tables[0].Rows[0]["IsImport"].ToString() != "" && ds.Tables[0].Rows[0]["IsImport"].ToString().ToLower() == "true"))) { //计算退税额,所有HK组织的采购不退税,进口件不退税 purchasePrice = 0; } else { purchasePrice = decimal.Parse(ds.Tables[0].Rows[0]["FinallyPriceTC"].ToString()); } } else { if (bomLine == null) { throw new Exception("取不到出运明细单" + shipLine.ShipPlanDetailHead.DocNo + "行" + shipLine.RowNo + "对应料品采购合同价"); } else { throw new Exception("取不到出运明细单" + shipLine.ShipPlanDetailHead.DocNo + "行" + shipLine.RowNo + "对应料品子件" + bomLine.SubKey.Name + "采购合同价"); } purchasePrice = 0; } return(purchasePrice); }
public override object Do(object obj) { SOBomAddOrRemoveBP bpObj = (SOBomAddOrRemoveBP)obj; if (bpObj.InParams == null || bpObj.InParams.Count <= 0) { throw new Exception("未选择数据,请确认!"); } using (ISession sesion = Session.Open()) { #region 新增 if (bpObj.ActionType == 0) { OrderBomBE.OrderBomHead head = OrderBomBE.OrderBomHead.Finder.Find("OrderLine='" + bpObj.SOLineID + "' order by Tier desc"); if (head == null) { throw new Exception("未找到对应的销售订单行,请刷新!"); } int firstTier = Convert.ToInt32(head.Tier.Substring(0, head.Tier.IndexOf('.'))); int secondTier = Convert.ToInt32(head.Tier.Substring(head.Tier.IndexOf('.') + 1, head.Tier.Length - 2)); foreach (ReturnUpDownLineDto returnDTO in bpObj.InParams) { UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHead doc = UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHead.Create(); secondTier = secondTier + 1; doc.Tier = firstTier + "." + secondTier; ItemMaster item = ItemMaster.Finder.Find("ID='" + returnDTO.ItemInfo_ItemID + "'"); if (item == null) { throw new Exception("找不到对应的料品,请刷新!"); } doc.SubKey = item; doc.SubkeyType = ItemCategory.Finder.Find("Code='03'"); doc.ArrirmState = false; doc.ParentPart = head.ParentPart;//母件 //doc.BomMaster = head.BomMaster; //doc.BomCompont = dto.BomCompont; doc.Dosage = returnDTO.Qty; //用量 doc.DosageUnit = item.InventoryUOM; //用量单位 doc.SellNumber = returnDTO.Qty; //销售数量 doc.SellUnit = item.SalesUOM; //销售单位 doc.Loss = 1; //固定损耗 doc.NeedNumber = returnDTO.Qty; //需求数量 doc.SourceType = AllEnumBE.SourceTypeEnum.HandWork; doc.OrderLine = head.OrderLine; doc.OrderHead = head.OrderHead; OrderBomBE.OrderBomLine line = OrderBomBE.OrderBomLine.Create(doc); line.SalesMan = item.PurchaseInfo.Buyer; //line.Department = lineDto.Department; line.SubKey = item; line.NeedNumber = returnDTO.Qty; line.NeedUom = item.InventoryUOM; line.ProcurementQty = returnDTO.Qty; } } #endregion #region 除 if (bpObj.ActionType == 1) { foreach (ReturnUpDownLineDto returnDTO in bpObj.InParams) { OrderBomBE.OrderBomHead head = OrderBomBE.OrderBomHead.Finder.FindByID(returnDTO.SoID.ID); head.Remove(); } } #endregion sesion.Commit(); } return(null); }