using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Text; using BGP.K3.GSP.Business.PlugIn.Template; using BGP.K3.GSP.Core.Gsp; using Kingdee.BOS; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Orm.Metadata.DataEntity; using Kingdee.BOS.ServiceHelper; namespace GZ.BGP.K3.GSP.Business.PlugIn.StorageAndMaintenance { [Description("药品养护计划表单插件")] public class DrugMaintPlanEdit : AbstractGspBillPlugIn { public override DynamicObject RequestOrg => Model.GetValue("F_BGP_OrgId") as DynamicObject; public override string DeptFieldKey => "F_BGP_Department"; public override string EmpFieldKey => "F_BGP_Staff"; public override void BarItemClick(BarItemClickEventArgs e) { string barItemKey = e.BarItemKey; DynamicObject dataObject = Model.DataObject; if (barItemKey == "tbButtonComDraw" && dataObject["F_BGP_OrgId"] is DynamicObject dynamicObject) { DynamicObjectCollection dynamicObjectCollection = ReceivableDetail1(base.Context, dynamicObject[0]); Entity entity = base.View.BusinessInfo.GetEntity("FEntity"); base.View.Model.GetEntityDataObject(entity); int entryRowCount = Model.GetEntryRowCount(entity.Key); for (int num = entryRowCount - 1; num > -1; num--) { base.View.Model.DeleteEntryRow("FEntity", num); } int count = dynamicObjectCollection.Count; for (int i = 0; i < count; i++) { base.View.Model.CreateNewEntryRow("FEntity"); base.View.Model.SetValue("F_BGP_MaterialNo", dynamicObjectCollection[i]["FMaterialId"], i); base.View.InvokeFieldUpdateService("FMaterialId", i); base.View.Model.SetValue("F_BGP_Warehouse", dynamicObjectCollection[i]["FSTOCKID"], i); base.View.Model.SetValue("F_BGP_Inventory", dynamicObjectCollection[i]["FBaseQty"], i); base.View.Model.SetValue("F_BGP_BatchNo", dynamicObjectCollection[i]["FLot"], i); base.View.Model.SetValue("F_BGP_Positions", dynamicObjectCollection[i]["FStockLocId"], i); base.View.Model.SetValue("F_BGP_OverTime", dynamicObjectCollection[i]["overday"], i); base.View.Model.SetValue("F_BGP_ShouldMainteDate", dynamicObjectCollection[i]["F_BGP_ShouldMainteDate"], i); base.View.Model.SetValue("F_BGP_MeasuringUnit", dynamicObjectCollection[i]["FStockUnitId"], i); base.View.Model.SetValue("F_BGP_UNITID", dynamicObjectCollection[i]["FBaseUnitId"], i); base.View.Model.SetValue("F_BGP_MAINTEPLANDATE", dynamicObjectCollection[i]["F_BGP_MAINTEPLANDATE"], i); base.View.Model.SetValue("F_BGP_MAINTECN", dynamicObjectCollection[i]["FBaseQty"], i); base.View.Model.SetValue("F_BGP_ProductDate", dynamicObjectCollection[i]["FPRODUCEDATE"], i); base.View.Model.SetValue("F_BGP_EffDate", dynamicObjectCollection[i]["FEXPIRYDATE"], i); base.View.Model.SetValue("F_BGP_BaseQty", dynamicObjectCollection[i]["FBaseQty"], i); base.View.Model.SetValue("F_BGP_InventoryState", dynamicObjectCollection[i]["FStockStatusId"], i); base.View.Model.SetValue("F_BGP_OwnerTypeId", dynamicObjectCollection[i]["FOwnerTypeId"], i); base.View.Model.SetValue("F_BGP_OwnerId", dynamicObjectCollection[i]["FOwnerId"], i); base.View.Model.SetValue("F_BGP_KeeperTypeId", dynamicObjectCollection[i]["FKeeperTypeId"], i); base.View.Model.SetValue("F_BGP_KeeperId", dynamicObjectCollection[i]["FKeeperId"], i); } } } public static DynamicObjectCollection ReceivableDetail1(Context cxt, object fOrg) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) StringBuilder stringBuilder = new StringBuilder("/*dialect*/ "); string gspDatabasetext = GspDatabaseTypeHelper.GetGspDatabasetext(cxt, "FORG"); SqlParam[] array = new SqlParam[1] { new SqlParam(gspDatabasetext, KDDbType.String, fOrg) }; if ((int)GspDatabaseTypeHelper.GetGspDatabaseType(cxt) == 0) { stringBuilder.AppendFormat(" SELECT i.FSTOCKID, i.FMaterialId, FLot, FStockUnitId, FBaseUnitId, FQty,FBaseQty, FStockStatusId, FStockLocId ,DATEDIFF(day,Maintdate ,getdate())-90 overday,dateadd(day,90.7,Maintdate) as F_BGP_ShouldMainteDate,isnull(l.FPRODUCEDATE,i.FPRODUCEDATE)FPRODUCEDATE, isnull(l.FEXPIRYDATE,i.FEXPIRYDATE)FEXPIRYDATE,getdate() F_BGP_MAINTEPLANDATE \r\n ,FOwnerTypeId ,FOwnerId ,FKeeperTypeId,FKeeperId,FStockStatusId\r\nFROM T_STK_INVENTORY i, T_BD_MATERIAL m,T_BGP_MaintainType mt,\r\n(select isnull(F_BGP_MaintDate,FInStockDate) Maintdate, FLOTID,FPRODUCEDATE,FEXPIRYDATE from T_BD_LOTMASTER) l\r\nWHERE i.FMaterialId = m.FMaterialId \r\nand F_BGP_MaintainClass=mt.FID\r\nand F_BGP_DAY=90\r\nand l.FLOTID=i.FLot\r\nand DATEDIFF(day,Maintdate ,getdate())>90 and i.FSTOCKORGID={0} and FBaseQty>0\r\nand m.FDOCUMENTSTATUS='C' and FStockStatusId=10000\r\n order by F_BGP_DosageForm,FSTOCKID,FMaterialId ", gspDatabasetext); } else { stringBuilder.AppendFormat(" SELECT i.FSTOCKID, i.FMaterialId, FLot, FStockUnitId, FBaseUnitId, FQty,FBaseQty, FStockStatusId, FStockLocId ,\r\n ROUND(TO_NUMBER(Maintdate-sysdate))-90 overday,\r\n /*dateadd(day,90.7,Maintdate)*/\r\n Maintdate+90.7 as F_BGP_ShouldMainteDate,\r\n NVL(l.FPRODUCEDATE,i.FPRODUCEDATE)FPRODUCEDATE, NVL(l.FEXPIRYDATE,i.FEXPIRYDATE)FEXPIRYDATE,\r\n sysdate F_BGP_MAINTEPLANDATE \r\n ,FOwnerTypeId ,FOwnerId ,FKeeperTypeId,FKeeperId,FStockStatusId\r\nFROM T_STK_INVENTORY i, T_BD_MATERIAL m,T_BGP_MaintainType mt,\r\n(select NVL(F_BGP_MaintDate,FInStockDate) Maintdate, FLOTID,FPRODUCEDATE,FEXPIRYDATE from T_BD_LOTMASTER) l\r\nWHERE i.FMaterialId = m.FMaterialId \r\nand F_BGP_MaintainClass=mt.FID\r\nand F_BGP_DAY=90\r\nand l.FLOTID=i.FLot\r\nand ROUND(TO_NUMBER(Maintdate-sysdate)) >90 \r\nand i.FSTOCKORGID={0} and FBaseQty>0\r\nand m.FDOCUMENTSTATUS='C' and FStockStatusId=10000\r\n order by F_BGP_DosageForm,FSTOCKID,FMaterialId", gspDatabasetext); } return DBServiceHelper.ExecuteDynamicObject(cxt, stringBuilder.ToString(), (IDataEntityType)null, (IDictionary)null, CommandType.Text, array); } } }