Quintiq file version 2.0
|
#parent: #root
|
Method MappingOperationBOMDataSupplyPurchase (
|
String orgCode,
|
String productId,
|
String productType
|
)
|
{
|
TextBody:
|
[*
|
|
product := Product_MP::FindById( this, productId );
|
if( isnull( product ) ) {
|
info( "product : " + productId + " not found" );
|
}
|
stockingPointId := orgCode + "_Stock";
|
stockingPoint := StockingPoint_MP::FindById( this, stockingPointId );
|
if( isnull( stockingPoint ) ) {
|
info( "stockingPoint : " + stockingPointId + " not found" );
|
}
|
|
if( not isnull( product) and not isnull( stockingPoint)){
|
routingId := "PR_"+orgCode + "_" + productId;
|
unitId := "供应商";
|
routingStepName := "Purchase";
|
operationId := orgCode + "_PR_" + productId;
|
routing := Routing::CreateOrUpdate( this, routingId );
|
toDeleteSteps := selectset( routing, RoutingStep, routingStep, true );
|
RoutingStep::Delete( toDeleteSteps );
|
routingStep := RoutingStep::Create( routing, routingStepName, "", true );
|
unit := Unit::FindById( this, unitId );
|
if( isnull( unit ) ) {
|
unit := this.Unit( relnew,
|
ID := unitId, Name := unitId, CapacityType := "Infinite",
|
DefaultGridX := 0, DefaultGridY := 0,
|
IsManuallyConfigured := false,
|
Currency_MP := this.BaseCurrency(), UnitOfMeasure_MP := this.DefaultUnitOfMeasure() );
|
}
|
// Operation
|
operation := Operation::FindOperationTypeIndex( operationId);
|
if( isnull( operation)){
|
operation := Operation::Create( operationId, unit, operationId, routingStep,
|
Duration::Zero(), Duration::Zero(), 1.0, false,
|
Real::MinReal(), false, Real::MaxReal(),
|
0.0, 0.0, false, true );
|
// OperaionBom
|
operation.CreateOperationBOM( product, stockingPoint, false, true );
|
operation.GetOperationBOM( product.ID(), stockingPoint.ID(), false ).Quantity( 1 );
|
}
|
|
}
|
*]
|
}
|