빈/위치 만 으로 표시하려면 수량. LocationAvailCstAttribute가 INTran.LocationID 필드에 추가 한 사용자 정의로
using PX.Data;
using System;
namespace PX.Objects.IN
{
public class INTransferEntryExt : PXGraphExtension<INTransferEntry>
{
[PXRemoveBaseAttribute(typeof(LocationAvailAttribute))]
[PXMergeAttributes(Method = MergeMethod.Append)]
[LocationAvailCst(typeof(INTran.inventoryID), typeof(INTran.subItemID),
typeof(INTran.siteID), typeof(INTran.tranType), typeof(INTran.invtMult))]
public virtual void INTran_LocationID_CacheAttached(PXCache sender)
{
}
public class LocationAvailCstAttribute : LocationAvailAttribute
{
public LocationAvailCstAttribute(Type inventoryType, Type subItemType,
Type siteIDType, Type TranType, Type InvtMultType)
: base(inventoryType, subItemType, siteIDType, TranType, InvtMultType)
{
var attr = _Attributes[_SelAttrIndex] as PXDimensionSelectorAttribute;
var dimAttr = attr.GetAttribute<PXDimensionAttribute>();
var selAttr = attr.GetAttribute<PXSelectorAttribute>();
var select = selAttr.GetSelect();
select = select.WhereAnd<Where<INLocationStatus.qtyAvail, Greater<Zero>>>();
var newAttr = new PXDimensionSelectorAttribute(DimensionName,
select.GetType(), typeof(INLocation.locationCD),
new Type[]
{
typeof(INLocation.locationCD),
typeof(INLocationStatus.qtyOnHand),
typeof(INLocationStatus.qtyAvail),
typeof(INLocationStatus.active),
typeof(INLocation.primaryItemID),
typeof(INLocation.primaryItemClassID),
typeof(INLocation.receiptsValid),
typeof(INLocation.salesValid),
typeof(INLocation.transfersValid),
typeof(INLocation.projectID),
typeof(INLocation.taskID)
});
_Attributes[_SelAttrIndex] = newAttr;
newAttr.ValidComboRequired = attr.ValidComboRequired;
newAttr.CacheGlobal = attr.CacheGlobal;
newAttr.DirtyRead = attr.DirtyRead;
newAttr.DescriptionField = attr.DescriptionField;
}
}
}
}
, 위치 선택은 빈/위치 표시됩니다,하는 : LocationAvailAttribute가 INTran.LocationID 필드를 장식하는 조건이 가능한 경우 0보다 큰, 당신은 확장해야 현재 재고 품목 수량 사용할 수있는 값이 0보다 큰 것 같습니다.
이 방법이 Acumatica에서 어떻게 구현 될 수 있는지 알고 있습니다. 내 질문은 어떻게이 Acumatica 모바일 제품에서 할 것이라고합니다. Acumatica에서 변경을하면 논리가 어떻게 든 모바일 제품에서도 작동합니다. 귀하의 게시물에 대해 확실하게 알고 싶습니다. Acumatica 코드에서이 작업을 수행하는 방법에 대해 꽤 분명했습니다. Acumatica Mobile에서도 동일한 작업을 수행하고 싶습니다. –
Acumatica 모바일 앱이 플레이어로 작동하기 때문에 비즈니스 로직 내부에서 무언가를 변경해야 할 때마다 (이 시나리오 중 하나임) 확장 클래스를 통해 변경해야합니다. 이러한 변경 사항은 웹 브라우저와 모바일 앱 모두에 적용됩니다. – RuslanDev
정보를 제공해 주셔서 감사합니다. 나는 이미 약간의 변화를 가졌다. 모바일 제품에서 제대로 작동하는지 확인하겠습니다. –