Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev
已重命名1个文件
已添加29个文件
已修改24个文件
已删除25个文件
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation H_CustomOrder_MacroPlan_MacroPlan_H_CustomOrder |
| | | { |
| | | #keys: '1[414724.0.177854649]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide MacroPlan |
| | | { |
| | | #keys: '3[414724.0.177854651][414724.0.177854650][414724.0.177854652]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: H_CustomOrder |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide H_CustomOrder |
| | | { |
| | | #keys: '3[414724.0.177854654][414724.0.177854653][414724.0.177854655]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: MacroPlan |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute OrderTag |
| | | { |
| | | #keys: '3[414724.0.177854629][414724.0.177854628][414724.0.177854630]' |
| | | Description: '订åç¶æï¼å²ååèµå¼ï¼çº¯é¢æµ,æé¢æµï¼æ 颿µï¼åç¾ï¼ææ' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetIsLinkedWithFinishedGoodAttributes |
| | | { |
| | | Description: 'Method to traverse the supply chain to determine if there are any products that are not used to produce finished goods.' |
| | | TextBody: |
| | | [* |
| | | // Reset IsLinkedWithFinishedGood |
| | | traverse( this, Global_MappingProduct_MP, instance ) |
| | | { |
| | | instance.IsLinkedWithFinishedGood( false ); |
| | | } |
| | | |
| | | traverse( this, Global_MappingOperation, instance ) |
| | | { |
| | | instance.IsLinkedWithFinishedGood( false ); |
| | | } |
| | | |
| | | traverse( this, Global_MappingOperationBOM, instance ) |
| | | { |
| | | instance.IsLinkedWithFinishedGood( false ); |
| | | } |
| | | |
| | | productspool := selectset( this, Global_MappingProduct_MP, product, |
| | | product.ProductMajorType() <> "æå" ); |
| | | operationspool := this.Global_MappingOperation( relget ); |
| | | operationbomspool := this.Global_MappingOperationBOM( relget ); |
| | | |
| | | // Traverse each finished good and search for linked products/operations/lanes |
| | | traverse( this, Global_MappingProduct_MP, product, |
| | | product.ProductMajorType() = "æå" ) |
| | | { |
| | | product.SetIsLinkedWithFinishedGoodAttributes_Recursive( 0, // depth |
| | | 100, // maxdepth |
| | | productspool, |
| | | operationspool, |
| | | operationbomspool ); |
| | | |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute IsLinkedWithFinishedGood |
| | | { |
| | | #keys: '3[157968.0.1145180207][157968.0.1145180206][157968.0.1145180208]' |
| | | Description: 'Updated procedurally for checking whether this object is used to produce a finished good.' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute IsLinkedWithFinishedGood |
| | | { |
| | | #keys: '3[157968.0.1145180190][157968.0.1145180189][157968.0.1145180191]' |
| | | Description: 'Updated procedurally for checking whether this object is used to produce a finished good.' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute IsLinkedWithFinishedGood |
| | | { |
| | | #keys: '3[157968.0.1145180168][157968.0.1145180167][157968.0.1145180169]' |
| | | Description: 'Updated procedurally for checking whether this product is used to produce a finished good.' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetIsLinkedWithFinishedGoodAttributes_Recursive ( |
| | | Number depth, |
| | | Number maxdepth, |
| | | Global_MappingProduct_MPs productspool, |
| | | Global_MappingOperations operationspool, |
| | | Global_MappingOperationBOMs operationbomspool |
| | | ) |
| | | { |
| | | Description: 'Method to traverse the supply chain recursively to determine if there are any products that are not used to produce finished goods.' |
| | | TextBody: |
| | | [* |
| | | if( not this.IsLinkedWithFinishedGood() ) |
| | | { |
| | | depth := depth + 1; |
| | | this.IsLinkedWithFinishedGood( true ); |
| | | |
| | | if( depth <= maxdepth ) |
| | | { |
| | | operations := selectset( operationspool, Elements, operation, |
| | | not operation.IsLinkedWithFinishedGood() |
| | | and operation.BusinessType() = this.BusinessType() |
| | | and operation.ProductID() = this.ID() ); |
| | | operationspool.Remove( operations ); |
| | | |
| | | traverse( operations, Elements, operation ) |
| | | { |
| | | operation.IsLinkedWithFinishedGood( true ); |
| | | |
| | | operationboms := selectset( operationbomspool, Elements, operationbom, |
| | | not operationbom.IsLinkedWithFinishedGood() |
| | | and operationbom.BusinessType() = operation.BusinessType() |
| | | and operationbom.OrganCode() = operation.OrganCode() |
| | | and operationbom.ProcessSection() = operation.ProcessSection() |
| | | and operationbom.ProductCode() = operation.ProductID() ); |
| | | operationbomspool.Remove( operationboms ); |
| | | |
| | | traverse( operationboms, Elements, operationbom ) |
| | | { |
| | | operationbom.IsLinkedWithFinishedGood( true ); |
| | | |
| | | componentproduct := Global_MappingProduct_MP::FindTypeIndexIDAndBusinessType( operationbom.ComponentCode(), |
| | | operationbom.BusinessType() ); |
| | | |
| | | if( guard( not componentproduct.IsLinkedWithFinishedGood(), false ) ) |
| | | { |
| | | productspool.Remove( componentproduct ); |
| | | componentproduct.SetIsLinkedWithFinishedGoodAttributes_Recursive( depth, |
| | | maxdepth, |
| | | productspool, |
| | | operationspool, |
| | | operationbomspool ); |
| | | } |
| | | |
| | | if( operationbom.AlternativeMaterialCode() <> "" |
| | | and operationbom.AlternativeMaterialCode() <> operationbom.ComponentCode() ) |
| | | { |
| | | alternativeproduct := Global_MappingProduct_MP::FindTypeIndexIDAndBusinessType( operationbom.AlternativeMaterialCode(), |
| | | operationbom.BusinessType() ); |
| | | |
| | | if( guard( not alternativeproduct.IsLinkedWithFinishedGood(), false ) ) |
| | | { |
| | | productspool.Remove( alternativeproduct ); |
| | | alternativeproduct.SetIsLinkedWithFinishedGoodAttributes_Recursive( depth, |
| | | maxdepth, |
| | | productspool, |
| | | operationspool, |
| | | operationbomspool ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | debuginfo( "Product:", this.ID(), |
| | | "| BusinessType:", this.BusinessType(), |
| | | "| Max depth reached, stop searching... (", depth, ")" ); |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type H_CustomOrder |
| | | { |
| | | #keys: '5[414724.0.177854646][414724.0.177854644][0.0.0][414724.0.177854645][414724.0.177854647]' |
| | | BaseType: Object |
| | | Description: 'é建åç订å' |
| | | StructuredName: 'H_CustomOrders' |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SM_GetBOMBySKU ( |
| | | MacroPlan Owner, |
| | | GlobalOTDTable GlobData, |
| | | String SKU |
| | | ) as MappingBOM |
| | | ) as Global_MappingOperationBOM |
| | | { |
| | | Description: 'æ ¹æ®SKUè·åBOM' |
| | | TextBody: |
| | | [* |
| | | Obj :=null( MappingBOM,constcontent ); |
| | | if( not isnull( Owner) and SKU.Length()>0) |
| | | Obj :=null( Global_MappingOperationBOM,constcontent ); |
| | | if( not isnull( GlobData) and SKU.Length()>0) |
| | | { |
| | | Obj := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU); |
| | | Obj := select( GlobData,Global_MappingOperationBOM,ObjM,ObjM.ProductCode()=SKU); |
| | | } |
| | | return Obj; |
| | | *] |
| | |
| | | Number ProductQty, |
| | | String ForecastId, |
| | | String VCode, |
| | | Date NDate |
| | | Date NDate, |
| | | GlobalOTDTable GlobData |
| | | ) as owning JSON |
| | | { |
| | | Description: 'è·åç©æä¿¡æ¯' |
| | |
| | | if( Owner.MappingBOM(relsize )>0) |
| | | { |
| | | // å¾å°ä¸ä¸çº§æ°æ® |
| | | AllData:= selectset( Owner, MappingBOM,object,object.ComponentCode()=ParentSKU); |
| | | ObjProduct := null( MappingProduct,constcontent ); |
| | | AllData:= selectset( GlobData, Global_MappingOperationBOM,object,object.ComponentCode()=ParentSKU); |
| | | ObjProduct := null( Product_MP,constcontent ); |
| | | ObjUnit := null( Unit,constcontent ); |
| | | MaterialType:=""; |
| | | MaterialName:="-"; |
| | | StockPoint := ""; |
| | | NRate:=1.0; |
| | | NComponentsUsed :=0.0; |
| | | ObjBOM := H_FunctionClass::SM_GetBOMBySKU( Owner,ParentSKU); |
| | | ObjBOM := H_FunctionClass::SM_GetBOMBySKU(GlobData,ParentSKU); |
| | | if(not isnull( ObjBOM)) |
| | | { |
| | | NRate := ObjBOM.ComponentOutputRate(); |
| | |
| | | // ç©æç±»å |
| | | MaterialType := Obj.ProductType(); |
| | | // å¾å°ç©æä¿¡æ¯ |
| | | ObjProduct:= H_FunctionClass::SM_GetProductInfo(Owner, Obj.ProductCode()); |
| | | ObjProduct:= H_FunctionClass::SM_GetProductInfo(Owner,Obj.ProductCode()); |
| | | if( not isnull( ObjProduct)) |
| | | { |
| | | MaterialType:= ObjProduct.ProductMajorType(); |
| | | MaterialType:= ObjProduct.ParentID(); |
| | | MaterialName:=ObjProduct.Name(); |
| | | } |
| | | ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ProductCode()); |
| | |
| | | ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := "åææ",NeedDate := NDate |
| | | ,NeedQty := [Number](ProductQty*0.8).Round( 0),Unit := "PCS" |
| | | ,StockPoint :="æµè¯",MaterialName := "æµè¯æ°æ®" ); |
| | | Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := "SKU_M"+ (nCount+1).AsQUILL() ,ForecastID := ForecastId,OrgCode := "ORG_000",VCode := VCode |
| | | ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := "åæå",NeedDate := NDate |
| | | ,NeedQty := [Number](ProductQty*0.8).Round( 0),Unit := "PCS" |
| | | ,StockPoint :="æµè¯",MaterialName := "æµè¯æ°æ®" ); |
| | | } |
| | | bStatus := true; |
| | | strMsg :=""; |
| | |
| | | StaticMethod SM_GetProductInfo ( |
| | | MacroPlan Owner, |
| | | String SKU |
| | | ) as MappingProduct |
| | | ) as Product_MP |
| | | { |
| | | Description: 'æ ¹æ®SKUè·åç©æä¿¡æ¯' |
| | | TextBody: |
| | | [* |
| | | // æ ¹æ®SKUè·åç©æä¿¡æ¯ |
| | | Obj := null( MappingProduct,constcontent ); |
| | | // 注æï¼ç©æç±»åå ParentID |
| | | Obj := null( Product_MP,constcontent ); |
| | | if( not isnull( Owner) and SKU.Length()>0) |
| | | { |
| | | Obj:= select( Owner,MappingProduct,ObjMP,ObjMP.ID()=SKU); |
| | | Obj:= select( Owner,Product_MP,ObjMP,ObjMP.ID()=SKU); |
| | | } |
| | | return Obj; |
| | | *] |
| | |
| | | #parent: #root |
| | | StaticMethod SM_InitialForcastDataEx ( |
| | | MacroPlan Owner, |
| | | Boolean IsNew |
| | | Boolean IsNew, |
| | | String VersionCode |
| | | ) as owning JSON |
| | | { |
| | | Description: 'åå§å订å颿µä¿¡æ¯' |
| | |
| | | /**********************************åå§å订å颿µä¿¡æ¯*************************************** |
| | | *æ³¨ï¼æªç¡®å®ä¸æ¸¸é¢æµè®¢åæ´æ°é»è¾åæ°æ®æææ§ï¼è¿éè¿è¡äºæ¬¡å¤çï¼æ°çæä¸ä¸ªå表ï¼é¿å
䏿¸¸ä¿¡æ¯åå¨ä¸¥é |
| | | * å½±ååè½ |
| | | * |
| | | *åæ°ï¼IsNew æ¯å¦æ¶å
¨æ°æ°æ®ï¼å
¨æ°æ°æ®ä¼å°æ§çæ°æ®æ¸
é¤ï¼ç¶åéæ°å¡«å
ï¼ä¸æ¯å
¨æ°æ°æ®ï¼å°ç´¯è®¡åæ´æ° |
| | | *****************************************************************************************/ |
| | | // åå§åç»æ |
| | | bStatus := false; |
| | | strMsg :=""; |
| | | |
| | | try{ |
| | | // æ¸
餿§æ°æ®ï¼éæ°æå |
| | | if(Owner.H_Forecast(relget ).Size()>0) |
| | | // 20230925 ä¼åçä¸å¡é»è¾,å¦ææ¶æ°æ°æ®ï¼å颿µæ°æ®å
¨é¨å¹²æï¼ç¶åéæ°çæ |
| | | if( IsNew) |
| | | { |
| | | traverse( Owner,H_Forecast,Obj,not isnull( Obj)) |
| | | if( Owner.H_OrderForecastRealQty(relsize )>0) |
| | | { |
| | | Owner.H_Forecast(reldelete, Obj); |
| | | traverse( Owner,H_OrderForecastRealQty,Obj,not isnull( Obj)) |
| | | { |
| | | Owner.H_OrderForecastRealQty(reldelete, Obj); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // è·å颿µè®¢åï¼å½æåä¹åç3个æé¢æµæ°æ® ä¸é¢æµæ°é>0ç |
| | | AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth() |
| | | and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth() |
| | | AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object, |
| | | object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth() |
| | | // éæ±ç»æªæ¥4个æçæ°æ®ï¼ä½å¯è½å¹¶ä¸åç¡®ï¼ææ¶æ³¨éæï¼å个æéå¶ |
| | | //and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth() |
| | | and object.Quantity()>0 ); |
| | | |
| | | CustomName:=""; |
| | | DepartMent:=""; |
| | | idx:=0; |
| | | strOrderCode:=""; |
| | | RQty:=0; |
| | | ObjOrderRealQty:=null( H_OrderForecastRealQty,constcontent ); |
| | | // ObjPruduct :=null( MappingProduct,constcontent ); |
| | | SKU:=""; |
| | | SKUName := ""; |
| | | |
| | | traverse( AllData,Elements,Obj,not isnull(Obj)) |
| | | { |
| | | // 没æå®¢æ·ä¿¡æ¯åé¨é¨ä¿¡æ¯ï¼SalesSegmentName=äºä¸é¨+â-â+客æ·åç§° |
| | | CustomName := Obj.SalesSegmentName(); |
| | | DepartMent := Obj.SalesSegmentName(); |
| | | SKU :=Obj.ProductID(); |
| | | // è¿éç¨æ¥æ¾åæªåï¼å 为ä¸ç¡®å®æå 个横线ï¼ä»¥ç¬¬ä¸ä¸ªä¸ºå |
| | | idx:=Obj.SalesSegmentName().FindString( "-",0); |
| | | if(idx>0) |
| | |
| | | DepartMent:=Obj.SalesSegmentName().SubString( 0,idx); |
| | | CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1)); |
| | | } |
| | | else |
| | | |
| | | // è·åç©æä¿¡æ¯ |
| | | ObjMaterial := H_FunctionClass::SM_GetProductInfo( Owner,Obj.ProductID()); |
| | | if(not isnull( ObjMaterial)) |
| | | { |
| | | CustomName :=Obj.SalesSegmentName(); |
| | | DepartMent := "é¨é¨æ°æ®è·å失败ï¼" |
| | | SKUName := ObjMaterial.Name(); |
| | | } |
| | | // // ä»ç©æè¡¨è·åç©æä¿¡æ¯ |
| | | // ObjPruduct := H_FunctionClass::SM_GetProductInfo( Owner,Obj.ProductID()); |
| | | // if( not isnull( ObjPruduct)) |
| | | // { |
| | | // |
| | | // } |
| | | // åå
¥é¢æµè®¢åä¿¡æ¯è¡¨ |
| | | strOrderCode:=H_FunctionClass::SM_GenerateID( "OF"); |
| | | Owner.H_Forecast(relnew,OrderCode := strOrderCode, |
| | | SKU := Obj.ProductID(), |
| | | CustomCode := CustomName, |
| | | CustomName := CustomName, |
| | | Util:=Obj.UnitOfMeasureName(), |
| | | NeedTime:=Obj.EndDate(), |
| | | ForecastQty:=[Number]Obj.Quantity().Round( 0), |
| | | StockingPointID := Obj.StockingPointID(), |
| | | Department:=DepartMent); |
| | | // åå
¥é¢æµå®æ¶ä¿¡æ¯ |
| | | ObjOrderRealQty := select( Owner,H_OrderForecastRealQty,ObjO,ObjO.CustomID()=CustomName and ObjO.SKU()=Obj.ProductID() |
| | | |
| | | // æ´æ°é¢æµä¿¡æ¯ï¼éæ°æ°æ®æ´æ°ä¿¡æ¯ã |
| | | ObjOrderRealQty := select( Owner,H_OrderForecastRealQty,ObjO,ObjO.CustomCode()=CustomName and ObjO.SKU()=Obj.ProductID() |
| | | and ObjO.Month().StartOfMonth() = Obj.EndDate().StartOfMonth() ) |
| | | if( isnull( ObjOrderRealQty)) |
| | | if( IsNew or isnull( ObjOrderRealQty)) |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,CustomID := CustomName,CustomName := CustomName,ForecatsQty := [Number]Obj.Quantity().Round( 0) |
| | | ,ForecatsRealQty := [Number]Obj.Quantity().Round( 0),ID := H_FunctionClass::SM_GenerateID( "OR") |
| | | ,Month := Obj.EndDate(),OrderCode := strOrderCode,SKU := Obj.ProductID(),Unit := Obj.UnitOfMeasureName()); |
| | | Owner.H_OrderForecastRealQty(relnew,CustomCode := CustomName,CustomName := CustomName,ForecastQty := [Number]Obj.Quantity().Round( 0) |
| | | ,ForecatsRealQty := [Number]Obj.Quantity().Round( 0),ID := H_FunctionClass::SM_GenerateID( "OR") |
| | | ,Month := Obj.EndDate(),SKU := Obj.ProductID(),Unit := Obj.UnitOfMeasureName() |
| | | ,Department := DepartMent,VCode := VersionCode,SKUName := SKUName); |
| | | } |
| | | else |
| | | { |
| | | if( IsNew) |
| | | { |
| | | ObjOrderRealQty.ForecatsQty([Number]Obj.Quantity().Round( 0)); |
| | | ObjOrderRealQty.ForecatsRealQty([Number]Obj.Quantity().Round( 0)); |
| | | } |
| | | else |
| | | { |
| | | if( [Number]Obj.Quantity().Round( 0)<> ObjOrderRealQty.ForecatsQty()) |
| | | { |
| | | RQty := [Number]Obj.Quantity().Round( 0) - ObjOrderRealQty.ForecatsQty(); |
| | | RQty := ObjOrderRealQty.ForecatsRealQty() + RQty; |
| | | if( RQty<0) |
| | | { |
| | | RQty :=0; |
| | | } |
| | | ObjOrderRealQty.ForecatsQty([Number]Obj.Quantity().Round( 0)); |
| | | ObjOrderRealQty.ForecatsRealQty(RQty); |
| | | } |
| | | } |
| | | // æ´æ°äºé¢æµæ°æ®ï¼å计ç®å®æ¶æ°æ®å¢å |
| | | if( [Number]Obj.Quantity().Round( 0)<> ObjOrderRealQty.ForecastQty()) |
| | | { |
| | | RQty := [Number]Obj.Quantity().Round( 0) - ObjOrderRealQty.ForecastQty(); |
| | | RQty := ObjOrderRealQty.ForecatsRealQty() + RQty; |
| | | if( RQty<0) |
| | | { |
| | | RQty :=0; |
| | | } |
| | | ObjOrderRealQty.ForecastQty([Number]Obj.Quantity().Round( 0)); |
| | | ObjOrderRealQty.ForecatsRealQty(RQty); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | bStatus := true; |
| | | strMsg :="订å颿µåå§åæå!"; |
| | |
| | | nNoHaveForecastQty:=0;//äºé¢æµæ°é |
| | | // è·å颿µæ°éï¼å®¢æ·+SKU+æä»½ çè®ºæ¯æ²¡æç©æé¢æµï¼ |
| | | OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = SKU |
| | | and Obj.CustomID() = CustomerCode |
| | | and Obj.CustomCode() = CustomerCode |
| | | and Obj.Month().Format( "YM2") = Date::ActualDate().Format( "YM2")); |
| | | if ( not isnull(OrderForecast)) |
| | | { |
| | |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := SKU, |
| | | Month := Date::ActualDate(), |
| | | CustomID := CustomerCode, |
| | | CustomCode := CustomerCode, |
| | | CustomName := "客æ·è¡¨è·å", |
| | | OrderCode := "-", |
| | | ForecatsQty :=0, |
| | | ForecastQty := 0, |
| | | ForecatsRealQty :=nForecastQtyNew, |
| | | Unit := "SKU å°ç©æè¡¨è·å"); |
| | | } |
| | |
| | | if( not isnull( Owner)) |
| | | { |
| | | // åå§å颿µä¿¡æ¯ |
| | | JResult := H_FunctionClass::SM_InitialForcastDataEx( Owner,IsNew); |
| | | JResult := H_FunctionClass::SM_InitialForcastDataEx( Owner,IsNew,"--"); |
| | | // 颿µåå§å宿 |
| | | if( JResult.Get( "Status").GetBoolean()) |
| | | { |
| | | traverse( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder,not isnull( ObjOrder)) |
| | | nForecastQtyOld := 0; //å颿µæ°é |
| | | nReverseQtyOld :=0; //ååç¾æ°é |
| | | nAuthorizeQtyOld :=0; //åæææ°é |
| | | nForecastQtyNew :=0; //计ç®åç颿µæ°é |
| | | nReverseQtyNew :=0; //计ç®åçåç¾æ°é |
| | | nAuthorizeQtyNew :=0; //计ç®åçæææ°é |
| | | nHaveForecastQty :=0; //æé¢æµæ°é |
| | | nNoHaveForecastQty:=0;//äºé¢æµæ°é |
| | | OrderQuantity := 0; //å©ä½è®¢åæ°é |
| | | traverse( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder) |
| | | { |
| | | //----------------------------------------以ä¸åå»é¢æµ åç¾ æææ°æ®ä¿¡æ¯---------------- |
| | | nForecastQtyOld := 0; //å颿µæ°é |
| | | nReverseQtyOld :=0; //ååç¾æ°é |
| | | nAuthorizeQtyOld :=0; //åæææ°é |
| | | nForecastQtyNew :=0; //计ç®åç颿µæ°é |
| | | nReverseQtyNew :=0; //计ç®åçåç¾æ°é |
| | | nAuthorizeQtyNew :=0; //计ç®åçæææ°é |
| | | nHaveForecastQty :=0; //æé¢æµæ°é |
| | | nNoHaveForecastQty:=0;//äºé¢æµæ°é |
| | | OrderQuantity := 0; //å©ä½è®¢åæ°é |
| | | |
| | | // è·å颿µæ°éï¼å®¢æ·+SKU+æä»½ çè®ºæ¯æ²¡æç©æé¢æµï¼ |
| | | OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() |
| | | and Obj.CustomID() = ObjOrder.CustomerName() |
| | | and Obj.Month().Format( "YM2") =ObjOrder.EndDate().Format( "YM2")); |
| | | if ( not isnull(OrderForecast)) |
| | | // ç´æ¥å 餿¬æä¹åç订å |
| | | if( ObjOrder.EndDate()<Date::ActualDate().StartOfMonth()) |
| | | { |
| | | nForecastQtyOld := OrderForecast.ForecatsRealQty(); |
| | | nForecastQtyNew := nForecastQtyOld; |
| | | } |
| | | |
| | | // è·ååç¾æ°éï¼åªå¤æSKUï¼ |
| | | ObjReverse := select(Owner, H_ReverseRealQty , Obj, Obj.SKU() = ObjOrder.ProductID()); |
| | | if ( not isnull(ObjReverse)) |
| | | { |
| | | nReverseQtyOld := ObjReverse.ReverseRealQty(); |
| | | nReverseQtyNew := nReverseQtyOld; |
| | | } |
| | | |
| | | // è·åæææ°éï¼å®¢æ·ID+SKUï¼ |
| | | ObjAuthorize := select(Owner, H_AuthorizeRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() |
| | | and Obj.CustomID() = ObjOrder.CustomerName()); |
| | | if ( not isnull(ObjAuthorize)) |
| | | { |
| | | nAuthorizeQtyOld := ObjAuthorize.AuthorizeRealQty(); |
| | | nAuthorizeQtyNew :=nAuthorizeQtyOld; |
| | | } |
| | | //-----------------------------以ä¸è®¢åå²å-------------------- |
| | | // ææè®°å½ID |
| | | AQID := H_FunctionClass::SM_GenerateID( "AQ"); |
| | | // 订åå©ä½æ°é |
| | | OrderQuantity := [Number]ObjOrder.Quantity().Round( 0); |
| | | // 1 å
岿æ |
| | | if( OrderQuantity>0 and nAuthorizeQtyOld>0) |
| | | { |
| | | OrderQuantity := OrderQuantity-nAuthorizeQtyOld; |
| | | nAuthorizeQtyNew :=0; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nAuthorizeQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | } |
| | | } |
| | | // 2 åå²åç¾ |
| | | if( OrderQuantity>0 and nReverseQtyOld>0) |
| | | { |
| | | OrderQuantity := OrderQuantity-nReverseQtyOld; |
| | | nReverseQtyNew :=0; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nReverseQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | } |
| | | } |
| | | // 3 æåå²é¢æµ |
| | | if( OrderQuantity>0 and nForecastQtyOld>0) |
| | | { |
| | | //é»è®¤è®¢åæ°é>颿µæ°é |
| | | OrderQuantity := OrderQuantity-nForecastQtyOld; |
| | | nForecastQtyNew :=0; |
| | | nHaveForecastQty := nForecastQtyOld; |
| | | nNoHaveForecastQty := OrderQuantity; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nForecastQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | nHaveForecastQty := nForecastQtyOld - nForecastQtyNew; |
| | | nNoHaveForecastQty := 0; |
| | | } |
| | | } |
| | | // è®°å½å¨ä½ |
| | | Owner.H_OrderRecord(relnew, |
| | | ID := AQID, |
| | | VCode:=VCode, |
| | | SKU:=ObjOrder.ProductID(), |
| | | ReverseQty := nReverseQtyNew, |
| | | CustomerCode := ObjOrder.CustomerName(), |
| | | CustomerName := ObjOrder.CustomerName(), |
| | | ForecastQty := nForecastQtyNew, |
| | | OrderDateTime := ObjOrder.EndDate(), |
| | | OrderQty := [Number]ObjOrder.Quantity().Round( 0), |
| | | OrderCode:=ObjOrder.OrderID(), |
| | | AuthorizeQty := nAuthorizeQtyNew, |
| | | ReverseDeductQty := nReverseQtyOld - nReverseQtyNew, |
| | | AuthorizeDeductQty := 0, |
| | | ForecastHitQty :=nHaveForecastQty, |
| | | ForecastNoHitQty :=nNoHaveForecastQty, |
| | | OperateType := OperatorType, |
| | | Operator := Operator, |
| | | Unit := ObjOrder.UnitOfMeasureName(), |
| | | OperateQty := [Number]ObjOrder.Quantity().Round( 0), |
| | | OperateTime := DateTime::ActualTime()); |
| | | |
| | | // æ´æ°å½ååç¾æ°é |
| | | if( not isnull( ObjReverse)) |
| | | { |
| | | ObjReverse.ReverseRealQty(nReverseQtyNew); |
| | | ObjOrder.Delete(); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_ReverseRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "RQ"),SKU := ObjOrder.ProductID(),Unit := ObjOrder.UnitOfMeasureName() |
| | | ,ReverseRealQty := nReverseQtyNew); |
| | | } |
| | | // æ´æ°ææ |
| | | if( not isnull( ObjAuthorize)) |
| | | { |
| | | ObjAuthorize.AuthorizeRealQty(nAuthorizeQtyNew); |
| | | //----------------------------------------以ä¸åå»é¢æµ åç¾ æææ°æ®ä¿¡æ¯---------------- |
| | | nForecastQtyOld := 0; //å颿µæ°é |
| | | nReverseQtyOld :=0; //ååç¾æ°é |
| | | nAuthorizeQtyOld :=0; //åæææ°é |
| | | nForecastQtyNew :=0; //计ç®åç颿µæ°é |
| | | nReverseQtyNew :=0; //计ç®åçåç¾æ°é |
| | | nAuthorizeQtyNew :=0; //计ç®åçæææ°é |
| | | nHaveForecastQty :=0; //æé¢æµæ°é |
| | | nNoHaveForecastQty:=0;//äºé¢æµæ°é |
| | | OrderQuantity := 0; //å©ä½è®¢åæ°é |
| | | // è·å颿µæ°éï¼å®¢æ·+SKU+æä»½ çè®ºæ¯æ²¡æç©æé¢æµï¼ |
| | | OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() |
| | | and Obj.CustomCode() = ObjOrder.CustomerName() |
| | | and Obj.Month().Format( "YM2") =ObjOrder.EndDate().Format( "YM2")); |
| | | if ( not isnull(OrderForecast)) |
| | | { |
| | | nForecastQtyOld := OrderForecast.ForecatsRealQty(); |
| | | nForecastQtyNew := nForecastQtyOld; |
| | | } |
| | | // è·ååç¾æ°éï¼åªå¤æSKUï¼ |
| | | ObjReverse := select(Owner, H_ReverseRealQty , Obj, Obj.SKU() = ObjOrder.ProductID()); |
| | | if ( not isnull(ObjReverse)) |
| | | { |
| | | nReverseQtyOld := ObjReverse.ReverseRealQty(); |
| | | nReverseQtyNew := nReverseQtyOld; |
| | | } |
| | | // è·åæææ°éï¼å®¢æ·ID+SKUï¼ |
| | | ObjAuthorize := select(Owner, H_AuthorizeRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() |
| | | and Obj.CustomID() = ObjOrder.CustomerName()); |
| | | if ( not isnull(ObjAuthorize)) |
| | | { |
| | | nAuthorizeQtyOld := ObjAuthorize.AuthorizeRealQty(); |
| | | nAuthorizeQtyNew :=nAuthorizeQtyOld; |
| | | } |
| | | //-----------------------------以ä¸è®¢åå²å-------------------- |
| | | // ææè®°å½ID |
| | | AQID := H_FunctionClass::SM_GenerateID( "AQ"); |
| | | // 订åå©ä½æ°é |
| | | OrderQuantity := [Number]ObjOrder.Quantity().Round( 0); |
| | | // 1 å
岿æ |
| | | if( OrderQuantity>0 and nAuthorizeQtyOld>0) |
| | | { |
| | | OrderQuantity := OrderQuantity-nAuthorizeQtyOld; |
| | | nAuthorizeQtyNew :=0; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nAuthorizeQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | } |
| | | } |
| | | // 2 åå²åç¾ |
| | | if( OrderQuantity>0 and nReverseQtyOld>0) |
| | | { |
| | | OrderQuantity := OrderQuantity-nReverseQtyOld; |
| | | nReverseQtyNew :=0; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nReverseQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | } |
| | | } |
| | | // 3 æåå²é¢æµ |
| | | if( OrderQuantity>0) |
| | | { |
| | | //é»è®¤è®¢åæ°é>颿µæ°é |
| | | OrderQuantity := OrderQuantity-nForecastQtyOld; |
| | | nForecastQtyNew :=0; |
| | | nHaveForecastQty := nForecastQtyOld; |
| | | nNoHaveForecastQty := OrderQuantity; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nForecastQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | nHaveForecastQty := nForecastQtyOld - nForecastQtyNew; |
| | | nNoHaveForecastQty := 0; |
| | | } |
| | | } |
| | | // è®°å½å¨ä½ |
| | | Owner.H_OrderRecord(relnew, |
| | | ID := AQID, |
| | | VCode:=VCode, |
| | | SKU:=ObjOrder.ProductID(), |
| | | ReverseQty := nReverseQtyNew, |
| | | CustomerCode := ObjOrder.CustomerName(), |
| | | CustomerName := ObjOrder.CustomerName(), |
| | | ForecastQty := nForecastQtyNew, |
| | | OrderDateTime := ObjOrder.EndDate(), |
| | | OrderQty := [Number]ObjOrder.Quantity().Round( 0), |
| | | OrderCode:=ObjOrder.OrderID(), |
| | | AuthorizeQty := nAuthorizeQtyNew, |
| | | ReverseDeductQty := nReverseQtyOld - nReverseQtyNew, |
| | | AuthorizeDeductQty := 0, |
| | | ForecastHitQty :=nHaveForecastQty, |
| | | ForecastNoHitQty :=nNoHaveForecastQty, |
| | | OperateType := OperatorType, |
| | | Operator := Operator, |
| | | Unit := ObjOrder.UnitOfMeasureName(), |
| | | OperateQty := [Number]ObjOrder.Quantity().Round( 0), |
| | | OperateTime := DateTime::ActualTime()); |
| | | // çº¯é¢æµè®¢å |
| | | if( nForecastQtyNew>0) |
| | | { |
| | | FOrder := ObjOrder.Copy(); |
| | | FOrder.OrderTag("çº¯é¢æµ"); |
| | | FOrder.Quantity(nForecastQtyNew); |
| | | } |
| | | // æé¢æµè®¢å |
| | | if(nHaveForecastQty>0) |
| | | { |
| | | HFOrder := ObjOrder.Copy(); |
| | | HFOrder.OrderTag("æé¢æµ"); |
| | | HFOrder.Quantity(nHaveForecastQty); |
| | | } |
| | | // æ 颿µ |
| | | if(nNoHaveForecastQty>0) |
| | | { |
| | | NHFOrder := ObjOrder.Copy(); |
| | | NHFOrder.OrderTag("æ 颿µ"); |
| | | NHFOrder.Quantity(nNoHaveForecastQty); |
| | | } |
| | | // ERPåç¾ææè®¢å-æ¥å£æªæä¾ |
| | | |
| | | // æ´æ°å½ååç¾æ°é |
| | | if( not isnull( ObjReverse)) |
| | | { |
| | | ObjReverse.ReverseRealQty(nReverseQtyNew); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_ReverseRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "RQ"),SKU := ObjOrder.ProductID(),Unit := ObjOrder.UnitOfMeasureName() |
| | | ,ReverseRealQty := nReverseQtyNew); |
| | | } |
| | | // æ´æ°ææ |
| | | if( not isnull( ObjAuthorize)) |
| | | { |
| | | ObjAuthorize.AuthorizeRealQty(nAuthorizeQtyNew); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_AuthorizeRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "AR"),SKU := ObjOrder.ProductID(), |
| | | Month := ObjOrder.EndDate(), |
| | | CustomID := ObjOrder.CustomerName(), |
| | | CustomName := ObjOrder.CustomerName(), |
| | | OrderCode := "-", |
| | | AuthorizeRealQty :=nAuthorizeQtyNew, |
| | | Unit := ObjOrder.UnitOfMeasureName()); |
| | | } |
| | | // æ´æ°é¢æµ |
| | | if( not isnull( OrderForecast)) |
| | | { |
| | | OrderForecast.ForecatsRealQty(nForecastQtyNew); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := ObjOrder.ProductID(), |
| | | Month := ObjOrder.EndDate(), |
| | | CustomCode := ObjOrder.CustomerName(), |
| | | CustomName := ObjOrder.CustomerName(), |
| | | ForecastQty := 0, |
| | | ForecatsRealQty :=nForecastQtyNew, |
| | | Unit := ObjOrder.UnitOfMeasureName()); |
| | | } |
| | | ObjOrder.Delete(); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_AuthorizeRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "AR"),SKU := ObjOrder.ProductID(), |
| | | Month := ObjOrder.EndDate(), |
| | | CustomID := ObjOrder.CustomerName(), |
| | | CustomName := ObjOrder.CustomerName(), |
| | | OrderCode := "-", |
| | | AuthorizeRealQty :=nAuthorizeQtyNew, |
| | | Unit := ObjOrder.UnitOfMeasureName()); |
| | | } |
| | | // æ´æ°é¢æµ |
| | | if( not isnull( OrderForecast)) |
| | | { |
| | | OrderForecast.ForecatsRealQty(nForecastQtyNew); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := ObjOrder.ProductID(), |
| | | Month := ObjOrder.EndDate(), |
| | | CustomID := ObjOrder.CustomerName(), |
| | | CustomName := ObjOrder.CustomerName(), |
| | | OrderCode := "-", |
| | | ForecatsQty :=0, |
| | | ForecatsRealQty :=nForecastQtyNew, |
| | | Unit := ObjOrder.UnitOfMeasureName()); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | strMsg:="颿µè®¢åä¿¡æ¯å 载失败ï¼è¯·è系系ç»ç®¡çåï¼"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | onerror |
| | |
| | | nNoHaveForecastQty:=0;//äºé¢æµæ°é |
| | | // è·å颿µæ°éï¼å®¢æ·+SKU+æä»½ çè®ºæ¯æ²¡æç©æé¢æµï¼ |
| | | OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = SKU |
| | | and Obj.CustomID() = CustomerCode |
| | | and Obj.CustomCode() = CustomerCode |
| | | and Obj.Month().Format( "YM2") = Date::ActualDate().Format( "YM2")); |
| | | if ( not isnull(OrderForecast)) |
| | | { |
| | |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := SKU, |
| | | Month := Date::ActualDate(), |
| | | CustomID := CustomerCode, |
| | | CustomCode := CustomerCode, |
| | | CustomName := CustomName, |
| | | OrderCode := "-", |
| | | ForecatsQty :=0, |
| | | ForecastQty := 0, |
| | | ForecatsRealQty :=nForecastQtyNew, |
| | | Unit := Unit); |
| | | } |
| | |
| | | for ( x := 1; x <= 10; x := x + 1 ) |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,ID := "AAAAA_"+ x.AsQUILL(),SKU := "OTN-01-ACC-00"+ x.AsQUILL() , Month := Date::ActualDate(),CustomName := "å°ç±³", |
| | | CustomID := "XM0001",OrderCode:="OD0001",ForecatsQty:=1000,ForecatsRealQty:=1000, Unit := "PCS"); |
| | | CustomCode := "XM0001",ForecastQty := 1000,ForecatsRealQty:=1000, Unit := "PCS"); |
| | | } |
| | | } |
| | | //H_FunctionClass := Owner.H_FunctionClass(relnew,VCode_Material := VCode,UpdateTime_Material := Date::ActualDate()); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute CustomCode |
| | | { |
| | | #keys: '3[414724.0.174571651][414724.0.174571650][414724.0.174571652]' |
| | | Description: '客æ·IDï¼å¯ä¸å»ºä¹ä¸' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Department |
| | | { |
| | | #keys: '3[414724.0.174571661][414724.0.174571660][414724.0.174571662]' |
| | | Description: 'é¨é¨ï¼æ²¡æä»·å¼ï¼æ¾ç¤ºä½¿ç¨' |
| | | ValueType: String |
| | | } |
ÎļþÃû´Ó _Main/BL/Type_H_OrderForecastRealQty/Attribute_ForecatsQty.qbl ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ForecatsQty |
| | | Attribute ForecastQty |
| | | { |
| | | #keys: '3[414724.0.46380358][414724.0.46380357][414724.0.46380359]' |
| | | Description: '颿µæ°é' |
| | |
| | | Attribute Month |
| | | { |
| | | #keys: '3[414724.0.46380308][414724.0.46380307][414724.0.46380309]' |
| | | Description: 'æä»½' |
| | | Description: 'æä»½ï¼å¯ä¸é®ä¹ä¸' |
| | | ValueType: Date |
| | | } |
| | |
| | | Attribute SKU |
| | | { |
| | | #keys: '3[414724.0.46380348][414724.0.46380347][414724.0.46380349]' |
| | | Description: 'SKUç¼ç ' |
| | | Description: 'SKUç¼ç ï¼å¯ä¸é®ä¹ä¸' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute SKUName |
| | | { |
| | | #keys: '3[414724.0.174572228][414724.0.174572227][414724.0.174572229]' |
| | | Description: 'SKUåç§°' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StockingPointID |
| | | { |
| | | #keys: '3[414724.0.174571671][414724.0.174571670][414724.0.174571672]' |
| | | Description: 'åºåç¹ï¼æ²¡æä»·å¼ï¼æ¾ç¤ºä½¿ç¨' |
| | | ValueType: String |
| | | } |
| | |
| | | Attribute Unit |
| | | { |
| | | #keys: '3[414724.0.46380378][414724.0.46380377][414724.0.46380379]' |
| | | Description: 'åä½' |
| | | Description: 'åä½ï¼æ²¡æä»·å¼ï¼æ¾ç¤ºä½¿ç¨' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute VCode |
| | | { |
| | | #keys: '3[414724.0.174571641][414724.0.174571640][414724.0.174571642]' |
| | | Description: 'çæ¬å·ï¼ææ¶ä¸éç¨ï¼é»è®¤-' |
| | | ValueType: String |
| | | } |
| | |
| | | infinite, |
| | | unitofmeasurename ); |
| | | |
| | | Unit::CreateOrUpdate( this, |
| | | supplyunit := Unit::CreateOrUpdate( this, |
| | | "ä¾åºå", |
| | | "ä¾åºå", |
| | | "天马éå¢", |
| | | infinite, |
| | | unitofmeasurename ); |
| | | supplyunit.IsSupplier(true); |
| | | |
| | | Unit::CreateOrUpdate( this, |
| | | "æ´è½¦è¿è¾", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method DoSanityCheckData ( |
| | | output Strings feedback_o, |
| | | output Strings sanitycheckfeedback_o |
| | | ) declarative remote #extension |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Adhi Feb-10-2016 (created) |
| | | |
| | | isvalid := true; |
| | | |
| | | isvalid := this.GetHasValidInput( feedback_o, sanitycheckfeedback_o ) and isvalid; |
| | | |
| | | isvalid := this.GetHasTianmaNonSupplierOperationWithNoInput( feedback_o, sanitycheckfeedback_o ) and isvalid; |
| | | |
| | | return isvalid; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GetHasTianmaNonSupplierOperationWithNoInput ( |
| | | output Strings feedback_o, |
| | | output Strings sanitycheckfeedback_o |
| | | ) declarative remote as Boolean |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Tianma change 20230925: If the unit is not a supplier, raise a data issue if there's no input |
| | | value := forall( this, RoutingStep.Operation, operation, |
| | | guard( operation.Unit().IsSupplier(), false ) |
| | | or operation.OperationInput( relsize ) > 0 ); |
| | | |
| | | if( not value ) |
| | | { |
| | | // Add instance text |
| | | routingname := MacroPlan::GetSubstituteName( this.Name() ); |
| | | instance := Translations::MP_Routing_Instance( routingname ); |
| | | feedback := SanityCheckMessage::GetFormattedMessage( instance, |
| | | "éä¾åºåæä½æ²¡ææå
¥æã" ); |
| | | feedback_o.Add( feedback ); |
| | | sanitycheckfeedback_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning() ); |
| | | } |
| | | |
| | | return value; |
| | | *] |
| | | } |
| | |
| | | String parentunitid, |
| | | String capacitytype, |
| | | String unitofmeasurename |
| | | ) |
| | | ) as Unit |
| | | { |
| | | TextBody: |
| | | [* |
| | |
| | | unit := Unit::FindById( owner, id ); |
| | | |
| | | if( id="天马éå¢" and isnull( unit ) ){ |
| | | owner.Unit( relnew, |
| | | unit := owner.Unit( relnew, |
| | | ID := id, |
| | | Name := name, |
| | | UnitOfMeasureName := unitofmeasurename, |
| | |
| | | CapacityType := capacitytype ); |
| | | }else{ |
| | | if( isnull( unit ) ){ |
| | | owner.Unit( relnew, ID := id, |
| | | unit := owner.Unit( relnew, ID := id, |
| | | Name := name, |
| | | ParentUnitID := parentunitid, |
| | | CapacityType := capacitytype, |
| | |
| | | unit.UnitOfMeasureName( unitofmeasurename ); |
| | | } |
| | | } |
| | | |
| | | return unit; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListSalesDemands #extension |
| | | { |
| | | Children: |
| | | [ |
| | | Component DataSetLevelSalesDemands #extension |
| | | { |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPoint_MP.ID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPoint_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegment_MP.Name","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegment_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"Customer name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"Customer ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"Order ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"Order line ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Order date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Unfulfilled demand","color":"rgb(232,123,0)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Unfulfilled demand","title":"Unfulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"maxvalue( object.Quantity() - object.FulfilledQuantity(), 0.0).Round( 2)"}},{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfilled demand","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round( 2)"}}]}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"Is firmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"Is eligible for netting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriceUoM","title":"PriceUoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PriceUoM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderTag","title":"è®¢åæ ç¾","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderTag"}}]' |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelAllSalesDemands #extension |
| | | { |
| | | Children: |
| | | [ |
| | | #child: ListSalesDemands |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelSalesDemands #extension |
| | | { |
| | | Children: |
| | | [ |
| | | #child: PanelAllSalesDemands |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: LibMacroPlannerWebUI |
| | | OrphanComponent FormCustomerOrders #extension |
| | | { |
| | | Children: |
| | | [ |
| | | #child: PanelSalesDemands |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListSDIP |
| | | { |
| | | #keys: '[134266.1.1970512356]' |
| | | BaseType: 'ListSDIP' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | Component DataSetLevelSDIP |
| | | { |
| | | #keys: '[134266.1.1970512358]' |
| | | BaseType: 'DataSetLevelSDIP' |
| | | IsDerived: true |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsRestricted","title":"ImgIsRestricted","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsRestricted"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MasterSalesDemand.UnitOfMeasureName","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MasterSalesDemand.UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"QuantityInSalesDemandUOM","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"QuantityInSalesDemandUOM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantityInSalesDemandUOM","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantityInSalesDemandUOM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfilled demand","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round( 2)"}},{"name":"Unfulfilled demand","color":"rgb(232,123,0)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Unfulfilled demand","title":"Unfulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"maxvalue( object.Quantity()-object.FulfilledQuantity(),0.0)"}}]}}]' |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListSalesDemands |
| | | { |
| | | #keys: '[134266.1.1970507083]' |
| | | BaseType: 'ListSalesDemands' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | Component DataExtractorSalesDemands |
| | | { |
| | | #keys: '[134266.1.1970507084]' |
| | | BaseType: 'DataExtractorSalesDemands' |
| | | IsDerived: true |
| | | Properties: |
| | | [ |
| | | Transformation: 'Elements.astype(CustomerOrder)' |
| | | ] |
| | | } |
| | | Component DataSetLevelSalesDemands |
| | | { |
| | | #keys: '[134266.1.1970507085]' |
| | | BaseType: 'DataSetLevelSalesDemands' |
| | | IsDerived: true |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPoint_MP.ID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPoint_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegment_MP.Name","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegment_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"Customer name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"Customer ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"Order ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"Order line ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Order date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Unfulfilled demand","color":"rgb(232,123,0)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Unfulfilled demand","title":"Unfulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"maxvalue( object.Quantity() - object.FulfilledQuantity(), 0.0).Round( 2)"}},{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfilled demand","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round( 2)"}}]}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"Is firmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"Is eligible for netting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriceUoM","title":"PriceUoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PriceUoM"}}]' |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelAllSalesDemands |
| | | { |
| | | #keys: '[134266.1.1970497658]' |
| | | BaseType: 'PanelAllSalesDemands' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | #child: ListSalesDemands |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelSDIP |
| | | { |
| | | #keys: '[134266.1.1970511019]' |
| | | BaseType: 'PanelSDIP' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | #child: ListSDIP |
| | | ] |
| | | Properties: |
| | | [ |
| | | Title: 'Customer orders at planning level' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelSalesDemands |
| | | { |
| | | #keys: '[134266.1.1970506995]' |
| | | BaseType: 'PanelSalesDemands' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | #child: PanelSDIP |
| | | #child: PanelAllSalesDemands |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListSalesDemands |
| | | Response OnClick () inherited id:Response_ListSalesDemands_MenuCopy_OnClick |
| | | { |
| | | #keys: '[136682.1.799924425]' |
| | | BaseType: 'Response_ListSalesDemands_MenuCopy_OnClick' |
| | | DefinitionID: 'Responsedef_ListSalesDemands_WebMenu_OnClick' |
| | | Initiator: 'MenuCopy' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | // Copy sales demand |
| | | data := selectset( selection, Elements.astype( CustomerOrder ), co, true, true ); |
| | | CustomerOrder::Copy( data ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListSalesDemands |
| | | Response OnClick () inherited id:Response_ListSalesDemands_MenuCreate_OnClick_715 |
| | | { |
| | | #keys: '[136682.1.803262814]' |
| | | BaseType: 'Response_ListSalesDemands_MenuCreate_OnClick_715' |
| | | DefinitionID: 'Responsedef_ListSalesDemands_WebMenu_OnClick' |
| | | Initiator: 'MenuCreate' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | //Create new sales demand |
| | | dlg := construct( DialogCreateEditCustomerOrder ); |
| | | dlg.New(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListSalesDemands |
| | | Response OnClick () inherited id:Response_ListSalesDemands_MenuEdit_OnClick |
| | | { |
| | | #keys: '[136682.1.803135245]' |
| | | BaseType: 'Response_ListSalesDemands_MenuEdit_OnClick' |
| | | DefinitionID: 'Responsedef_ListSalesDemands_WebMenu_OnClick' |
| | | Initiator: 'MenuEdit' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | //Edit sales demand |
| | | dlg := construct( DialogCreateEditCustomerOrder ); |
| | | |
| | | data := selectset( selection, Elements.astype( CustomerOrder ), f, true, true ); |
| | | dlg.Edit( data ); |
| | | *] |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormCustomerOrders226 |
| | | { |
| | | #keys: '[414724.0.179160850]' |
| | | Accessibility: 'Extensible' |
| | | BaseType: 'FormSalesDemands' |
| | | Children: |
| | | [ |
| | | #child: PanelSalesDemands |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'SALES_QUOTATION' |
| | | Title: 'Customer orders' |
| | | ] |
| | | } |
| | |
| | | { |
| | | JInfo := JSON::Parse( SelectItem.ValueJsonString()); |
| | | lb_SUK_FAACM.Text(JInfo.Get( "ParentSKU").GetString()); |
| | | lb_SKUName_FAACM.Text(JInfo.Get( "ParentSKUName").GetString()); |
| | | lb_MaterialCode_FAACM.Text(JInfo.Get( "SKU").GetString()); |
| | | lb_MaterialName.Text(JInfo.Get( "MaterialName").GetString()); |
| | | lb_Unit_FAACM.Text(JInfo.Get( "Unit").GetString()); |
| | | lb_Operator_FAACM.Text(ApplicationMacroPlanner.GetUserName()); |
| | | lb_MaterialType_FAACM.Text(JInfo.Get( "MaterialType").GetString()); |
| | | txt_CustomID_FAACM.Text(JInfo.Get( "CustomCode").GetString()); |
| | | txt_CustomName_FAACM.Text(JInfo.Get( "CustomName").GetString()); |
| | | } |
| | |
| | | [* |
| | | if( not isnull( selection)) |
| | | { |
| | | // 颿µè®¢ååºæ¬ä¿¡æ¯ |
| | | CustomCode:=""; |
| | | CustomName:=""; |
| | | SKUName:=""; |
| | | SValueJsonString:=""; |
| | | // è·å客æ·åç§°å客æ·ID |
| | | if(txtSaveForecastData_FM.Text().Length()>0) |
| | | { |
| | | jForecast := JSON::Parse( txtSaveForecastData_FM.Text()); |
| | | CustomCode := jForecast.Get( "CustomCode").GetString(); |
| | | CustomName := jForecast.Get( "CustomName").GetString(); |
| | | SKUName := jForecast.Get( "SKUName").GetString(); |
| | | } |
| | | |
| | | if(selection.MaterialType()="åæå") |
| | | { |
| | | OrderCode:=""; |
| | | ForecastID:=""; |
| | | if( txtSaveForecastData_FM.Text().Length()>0) |
| | | { |
| | | JForecast := JSON::Parse( txtSaveForecastData_FM.Text()); |
| | | OrderCode := JForecast.Get( "OrderCode").GetString(); |
| | | JForecast := JSON::Parse(txtSaveForecastData_FM.Text()); |
| | | ForecastID := JForecast.Get( "ForecastID").GetString(); |
| | | } |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.NeedQty(), OrderCode,"-",selection.NeedDate()); |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.NeedQty(), ForecastID,"-",selection.NeedDate(),GlobalOTDTable); |
| | | if(jResult.Get( "Status").GetBoolean()) |
| | | { |
| | | de_dh_FM_ProductMP.FixedFilter( "object.ParentSKU() = " + selection.SKU().AsQUILL() |
| | | + " and object.ForecastID() = " + OrderCode.AsQUILL() |
| | | + " and object.ForecastID() = " + ForecastID.AsQUILL() |
| | | ); |
| | | } |
| | | else |
| | |
| | | } |
| | | else |
| | | { |
| | | // å¼¹åºç©æåç¾ææ |
| | | SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect"); |
| | | if(not isnull(selection)) |
| | | { |
| | | SValueJsonString:= JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "MaterialName",selection.MaterialName()) |
| | | .Add( "MaterialType",selection.MaterialType()) |
| | | .Add( "OrgCode",selection.OrgCode()) |
| | | .Add( "Unit",selection.Unit()) |
| | | .Add( "CustomCode",CustomCode) |
| | | .Add( "ParentSKU",lb_SUK_FM.Text()) |
| | | .Add( "ParentSKUName",SKUName) |
| | | .Add( "CustomName",CustomName).Build().AsString(); |
| | | } |
| | | if(isnull( SelectItem)) |
| | | { |
| | | MacroPlan.H_MessagePassing(relnew,FKey := "FrmMaterial",ItemKey := "ListSelect", ValueJsonString:=SValueJsonString); |
| | | } |
| | | else |
| | | { |
| | | SelectItem.ValueJsonString( SValueJsonString); |
| | | } |
| | | Application.OpenForm( "FrmAuthorizeAndCountersign_Material","modal"); |
| | | } |
| | | } |
| | | *] |
| | |
| | | { |
| | | if( SelectItem.ValueJsonString().Length()>0) |
| | | { |
| | | txtSaveForecastData_FM.Text( SelectItem.ValueJsonString()); |
| | | JSelect := JSON::Parse( SelectItem.ValueJsonString()); |
| | | txtSaveForecastData_FM.Text(SelectItem.ValueJsonString()); |
| | | JSelect := JSON::Parse(SelectItem.ValueJsonString()); |
| | | lb_SUK_FM.Text(JSelect.Get( "SKU").GetString()); |
| | | de_dh_FM_ProductMP.FixedFilter( "object.ParentSKU() = " + JSelect.Get( "SKU").GetString().AsQUILL() |
| | | + " and object.ForecastID() = " + JSelect.Get( "OrderCode").GetString().AsQUILL() |
| | | + " and object.ForecastID() = " + JSelect.Get( "ForecastID").GetString().AsQUILL() |
| | | ); |
| | | } |
| | | } |
| | |
| | | CustomName:=""; |
| | | SValue:=""; |
| | | SValueJsonString:=""; |
| | | SKUName:=""; |
| | | // è·å客æ·åç§°å客æ·ID |
| | | if(txtSaveForecastData_FM.Text().Length()>0) |
| | | { |
| | | jForecast := JSON::Parse( txtSaveForecastData_FM.Text()); |
| | | CustomCode := jForecast.Get( "CustomCode").GetString(); |
| | | CustomName := jForecast.Get( "CustomName").GetString(); |
| | | SKUName := jForecast.Get( "SKUName").GetString(); |
| | | } |
| | | if(not isnull(selection)) |
| | | { |
| | |
| | | .Add( "Unit",selection.Unit()) |
| | | .Add( "CustomCode",CustomCode) |
| | | .Add( "ParentSKU",lb_SUK_FM.Text()) |
| | | .Add( "ParentSKUName",SKUName) |
| | | .Add( "CustomName",CustomName).Build().AsString(); |
| | | } |
| | | if( isnull( SelectItem)) |
| | |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | ButtonSize: 'compact' |
| | | Description: 'è®¢åæ°å¢åç¾/ææ' |
| | | Label: 'è®¢åæ°å¢åç¾/ææ' |
| | | Taborder: 1 |
| | | Taborder: 0 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | ButtonSize: 'compact' |
| | | Description: 'åææ°å¢åç¾/ææ' |
| | | Label: 'åææ°å¢åç¾/ææ' |
| | | Taborder: 2 |
| | | Taborder: 1 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | |
| | | } |
| | | ] |
| | | } |
| | | Component btn_InitialData778 |
| | | { |
| | | #keys: '[414724.0.115504406]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Description: 'å è½½æ°æ®ï¼åçï¼åç»éè¦å¯¹æ¥æ°æ®ï¼' |
| | | Label: 'å è½½é¢æµè®¢åæ°æ®' |
| | | Taborder: 0 |
| | | Visible: false |
| | | ] |
| | | } |
| | | Component btn_OrderH_FOF |
| | | { |
| | | #keys: '[414724.0.165490408]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | ButtonSize: 'compact' |
| | | Description: 'ERO订åå²å' |
| | | Image: 'AMMUNITION_BOX_CLOSED' |
| | | Label: 'ERP订åå²å' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component txt_QueryContent_FOF |
| | | { |
| | | #keys: '[414724.0.172390935]' |
| | | BaseType: 'WebEditField' |
| | | Properties: |
| | | [ |
| | | PlaceHolder: 'æ¨¡ç³æç´¢' |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component btn_Query_FOF |
| | | { |
| | | #keys: '[414724.0.172390951]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | ButtonSize: 'compact' |
| | | Description: 'æ¥è¯¢' |
| | | Image: 'VIEW' |
| | | Label: 'æ¥è¯¢' |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[H_Forecast]' |
| | | Source: 'dh_FOF_H_Forecast' |
| | | DataType: 'structured[H_OrderForecastRealQty]' |
| | | Source: 'dh_FOF_H_OrderForecastRealQty' |
| | | Taborder: 0 |
| | | Transformation: 'Elements' |
| | | ] |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"订åç¼å·","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKUç¼ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"颿µæ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedTime","title":"éæ±æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Util","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Util"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomName","title":"客æ·åç§°","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Department","title":"éå®é¨é¨","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Department"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Month","title":"æä»½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Month"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomName","title":"客æ·åç§°","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKUç¼å·","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecatsQty","title":"颿µæ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecatsQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecatsRealQty","title":"çº¯é¢æµæ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecatsRealQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Department","title":"é¨é¨","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Department"}}]' |
| | | ContextMenu: 'listContextMenu367' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 7 |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | // åå§åæ¥è¯¢åæ°æä»½ |
| | | ds_Month_FOF.Date(Date::ActualDate()); |
| | | // åå§å颿µæ°æ® |
| | | JResult := H_FunctionClass::SM_InitialForcastData( MacroPlan); |
| | | JResult := H_FunctionClass::SM_InitialForcastDataEx( MacroPlan,true,"-"); |
| | | if(not JResult.Get( "Status").GetBoolean()) |
| | | { |
| | | WebMessageBox::Warning( JResult.Get( "Msg").GetString()); |
| | | WebMessageBox::Warning( JResult.Get( "Msg").GetString()); |
| | | } |
| | | else |
| | | { |
| | | WebMessageBox::Information( JResult.Get( "Msg").GetString()); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: Panel351/btn_Add_Material_FOF503 |
| | | Response OnClick ( |
| | | H_Forecast selection |
| | | H_OrderForecastRealQty selection |
| | | ) id:Response_Panel351_btn_Add_Material_FOF503_OnClick_222 |
| | | { |
| | | #keys: '[414724.0.145178766]' |
| | |
| | | if( isnull( SelectItem)) |
| | | { |
| | | MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect", |
| | | Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(), |
| | | ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "NeedTime",selection.NeedTime().AsQUILL()) |
| | | .Add( "OrderCode",selection.OrderCode()).Build().AsString()); |
| | | .Add( "SKUName",selection.SKUName()) |
| | | .Add( "Util",selection.Unit()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "ForecastID",selection.ID()) |
| | | .Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString()); |
| | | } |
| | | else |
| | | { |
| | | SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName()); |
| | | SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "NeedTime",selection.NeedTime().AsQUILL()) |
| | | .Add( "OrderCode",selection.OrderCode()).Build().AsString()); |
| | | .Add( "SKUName",selection.SKUName()) |
| | | .Add( "Util",selection.Unit()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "ForecastID",selection.ID()) |
| | | .Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString()); |
| | | } |
| | | |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.OrderCode(),"-",selection.NeedTime()); |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.ID(),"-",selection.Month(),GlobalOTDTable); |
| | | if(jResult.Get( "Status").GetBoolean()) |
| | | { |
| | | Application.OpenForm( "FrmMaterial","popout"); |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: Panel351/btn_Add_Order_FOF449 |
| | | Response OnClick ( |
| | | H_Forecast selection |
| | | H_OrderForecastRealQty selection |
| | | ) id:Response_Panel351_btn_Add_Order_FOF449_OnClick_880 |
| | | { |
| | | #keys: '[414724.0.141244111]' |
| | |
| | | SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); |
| | | if( isnull( SelectItem)) |
| | | { |
| | | |
| | | MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect", |
| | | Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(), |
| | | ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()).Build().AsString()); |
| | | ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Unit()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "SKUName",selection.SKUName()) |
| | | .Add( "CustomName",selection.CustomName()).Build().AsString()); |
| | | } |
| | | else |
| | | { |
| | | SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName()); |
| | | SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()).Build().AsString()); |
| | | .Add( "Util",selection.Unit()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "SKUName",selection.SKUName()) |
| | | .Add( "CustomName",selection.CustomName()).Build().AsString()); |
| | | } |
| | | Application.OpenForm( "FrmAuthorizeAndCountersign_Order","modal"); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: Panel351/btn_Query_FOF |
| | | Response OnClick () id:Response_Panel351_btn_Query_FOF_OnClick |
| | | { |
| | | #keys: '[414724.0.172390950]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | de_dh_FOF_H_Foecast.FixedFilter( "object.SKU().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" |
| | | + " or " + "object.CustomName().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" |
| | | + " or " + "object.Unit().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" |
| | | + " or " + "object.Department().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" |
| | | + " or " + "object.StockingPointID().LikeUserLocale( " + txt_QueryContent_FOF.Text().AsQUILL() + " )" |
| | | ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: liH_Forecast |
| | | Response OnDoubleClick ( |
| | | H_Forecast selection |
| | | H_OrderForecastRealQty selection |
| | | ) id:Response_liH_Forecast_OnDoubleClick |
| | | { |
| | | #keys: '[414724.0.111761136]' |
| | |
| | | if( isnull( SelectItem)) |
| | | { |
| | | MacroPlan.H_MessagePassing(relnew,FKey :="FrmOrderForecast",ItemKey := "ListSelect", |
| | | Value := selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName(), |
| | | ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "SKUName",selection.SKUName()) |
| | | .Add( "Util",selection.Unit()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "NeedTime",selection.NeedTime().AsQUILL()) |
| | | .Add( "OrderCode",selection.OrderCode()).Build().AsString()); |
| | | .Add( "ForecastID",selection.ID()) |
| | | .Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString()); |
| | | } |
| | | else |
| | | { |
| | | SelectItem.Value(selection.SKU()+";"+selection.Util()+";"+selection.CustomCode()+";"+selection.CustomName()); |
| | | SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "NeedTime",selection.NeedTime().AsQUILL()) |
| | | .Add( "OrderCode",selection.OrderCode()).Build().AsString()); |
| | | .Add( "SKUName",selection.SKUName()) |
| | | .Add( "Util",selection.Unit()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "ForecastID",selection.ID()) |
| | | .Add( "NeedTime",selection.Month().AsQUILL()).Build().AsString()); |
| | | } |
| | | |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.OrderCode(),"-",selection.NeedTime()); |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.ID(),"-",selection.Month(),GlobalOTDTable ); |
| | | if(jResult.Get( "Status").GetBoolean()) |
| | | { |
| | | Application.OpenForm( "FrmMaterial","popout"); |
| | |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: Panel849 |
| | | #child: list_ForecastView_FOF |
| | | Component dh_FOF_Data |
| | | { |
| | | #keys: '[414724.0.86151860]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[SalesDemandBase]*' |
| | | Children: |
| | | [ |
| | | Component de_dh_FOF_Data |
| | | { |
| | | #keys: '[414724.0.86151875]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[SalesDemandBase]' |
| | | Source: 'dh_FOF_ChildrenData' |
| | | Taborder: 0 |
| | | Transformation: 'Elements' |
| | | ] |
| | | } |
| | | Component DataExtractor819 |
| | | { |
| | | #keys: '[414724.0.107645127]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 1 |
| | | Transformation: 'SalesDemand' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | #child: Panel961 |
| | | Component dh_FOF_ChildrenData |
| | | { |
| | | #keys: '[414724.0.106541535]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[SalesDemandBase]*' |
| | | Children: |
| | | [ |
| | | Component de_FOF_ChildrenData_0 |
| | | { |
| | | #keys: '[414724.0.106541577]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[Product_MP]' |
| | | Source: 'ApplicationMacroPlanner.DataHolderProduct' |
| | | Taborder: 0 |
| | | Transformation: 'Elements.SalesDemand' |
| | | ] |
| | | } |
| | | Component de_FOF_ChildrenData_1 |
| | | { |
| | | #keys: '[414724.0.106541594]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[StockingPoint_MP]' |
| | | Source: 'ApplicationMacroPlanner.DataHolderStockingPoint' |
| | | Taborder: 1 |
| | | Transformation: 'Elements.SalesDemand' |
| | | ] |
| | | } |
| | | Component de_FOF_ChildrenData_2 |
| | | { |
| | | #keys: '[414724.0.106541611]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[SalesSegment_MP]' |
| | | Source: 'ApplicationMacroPlanner.DataHolderSalesSegment' |
| | | Taborder: 2 |
| | | Transformation: 'Elements.SalesDemand' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component dh_FOF_H_Forecast |
| | | Component dh_FOF_H_OrderForecastRealQty |
| | | { |
| | | #keys: '[414724.0.109053093]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[H_Forecast]*' |
| | | Databinding: 'structured[H_OrderForecastRealQty]*' |
| | | Children: |
| | | [ |
| | | Component de_dh_FOF_H_Foecast |
| | |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'H_Forecast' |
| | | Transformation: 'H_OrderForecastRealQty' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 6 |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | #child: liH_Forecast |