Files

91 lines
6.7 KiB
C#
Raw Normal View History

2024-07-16 10:33:50 +08:00
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<string, Type>)null, CommandType.Text, array);
}
}
}