From 133f1a1dc59bbf13a35dc3d64e2ddaf6b37a335f Mon Sep 17 00:00:00 2001 From: lazhen <17772815105@139.com> Date: 星期一, 14 十月 2024 18:19:02 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg --- _Main/BL/Type_OfflinePlanTableInfo/Attribute_TableSaveTime.qbl | 7 + _Main/BL/Type_OfflinePlanTableInfo/_ROOT_Type_OfflinePlanTableInfo.qbl | 10 + _Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanMDSID.qbl | 7 + _Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def | 2 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def | 3 _Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanName.qbl | 7 + _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def | 9 + _Main/BL/Type_OfflinePlanTableInfo/Attribute_TableName.qbl | 7 + _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def | 10 - _Main/BL/Type_LocalCell_DemandComparison/StaticMethod_Compared.qbl | 24 +++ _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_ButtonRibbon_OnClick.def | 17 ++ _Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def | 12 + _Main/UI/MacroPlannerWebApp/Component_FormForecasts/Response_ListSalesDemands_MenuCreate_OnClick#715.def | 12 - _Main/BL/Type_Forecast/Function_CalcDiffernce.qbl | 13 + _Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl | 18 + _Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504#801.def | 44 ++++- _Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_ButtonCompare_OnClick.def | 2 _Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhOfflinePlanTables_OnCreated#57.def | 14 -- _Main/BL/Relations/Relation_OfflinePlanTableInfo_RecycleBin_RecycleBin_OfflinePlanTableInfo.qbl | 23 +++ _Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport#1.qbl | 26 ++- _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanByMDSID.def | 24 +++ _Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl | 20 ++ _Main/BL/Type_OfflinePlanTableInfo/StaticMethod_Create.qbl | 23 +++ _Main/BL/Type_Forecast/Attribute_Differnce.qbl | 7 + _Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_SplitShifts.qbl | 23 ++ _Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl | 4 26 files changed, 290 insertions(+), 78 deletions(-) diff --git a/_Main/BL/Relations/Relation_OfflinePlanTableInfo_RecycleBin_RecycleBin_OfflinePlanTableInfo.qbl b/_Main/BL/Relations/Relation_OfflinePlanTableInfo_RecycleBin_RecycleBin_OfflinePlanTableInfo.qbl new file mode 100644 index 0000000..6320701 --- /dev/null +++ b/_Main/BL/Relations/Relation_OfflinePlanTableInfo_RecycleBin_RecycleBin_OfflinePlanTableInfo.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation OfflinePlanTableInfo_RecycleBin_RecycleBin_OfflinePlanTableInfo +{ + #keys: '1[414996.1.124530089]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide RecycleBin + { + #keys: '3[414996.1.124530091][414996.1.124530090][414996.1.124530092]' + Cardinality: '0to1' + ObjectDefinition: OfflinePlanTableInfo + OwningSide: 'Reference' + } + RelationSide.RightSide OfflinePlanTableInfo + { + #keys: '3[414996.1.124530094][414996.1.124530093][414996.1.124530095]' + Cardinality: '1toN' + ObjectDefinition: RecycleBin + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl index a20b0a3..5f1c80b 100644 --- a/_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl +++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl @@ -6,9 +6,9 @@ [* // Akari Aug-21-2024 (created) value := ""; - if( this.FactoryName() = "澶ц繛宸ュ巶" ){ + if( this.FactoryName().LikeUserLocale( "澶ц繛" ) or this.FactoryName().LikeUserLocale( "DL" ) ){ value := "DL"; - }else if( this.FactoryName() = "闀挎槬宸ュ巶"){ + }else if( this.FactoryName().LikeUserLocale( "闀挎槬" ) or this.FactoryName().LikeUserLocale( "CC" )){ value := "CC"; } diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_SplitShifts.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_SplitShifts.qbl index 1de3a99..cd068af 100644 --- a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_SplitShifts.qbl +++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_SplitShifts.qbl @@ -12,19 +12,32 @@ shiftSchedulingInformations := construct( DispatchShiftSchedulingInformations ); if( shiftName = "3" ){ shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 ); - shiftSchedulingInformation1.SingleShiftName( "1鐝�" ); + shiftSchedulingInformation1.SingleShiftName( "鐧界彮" ); shiftSchedulingInformations.Add( shiftSchedulingInformation1 ); shiftSchedulingInformation2 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 ); - shiftSchedulingInformation2.SingleShiftName( "2鐝�" ); + shiftSchedulingInformation2.SingleShiftName( "浜岀彮" ); shiftSchedulingInformations.Add( shiftSchedulingInformation2 ); shiftSchedulingInformation3 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 ); - shiftSchedulingInformation3.SingleShiftName( "3鐝�" ); + shiftSchedulingInformation3.SingleShiftName( "涓夌彮" ); shiftSchedulingInformations.Add( shiftSchedulingInformation3 ); + }else if( shiftName = "2" ){ + shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 2 ); + shiftSchedulingInformation1.SingleShiftName( "鐧界彮" ); + shiftSchedulingInformations.Add( shiftSchedulingInformation1 ); + + shiftSchedulingInformation2 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 2 ); + shiftSchedulingInformation2.SingleShiftName( "浜岀彮" ); + shiftSchedulingInformations.Add( shiftSchedulingInformation2 ); + }else if( shiftName = "1" ){ + shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 1 ); + shiftSchedulingInformation1.SingleShiftName( "鐧界彮" ); + shiftSchedulingInformations.Add( shiftSchedulingInformation1 ); }else{ - shiftSchedulingInformation := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume ); - shiftSchedulingInformations.Add( shiftSchedulingInformation ); + shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 1 ); + shiftSchedulingInformation1.SingleShiftName( "" ); + shiftSchedulingInformations.Add( shiftSchedulingInformation1 ); } diff --git a/_Main/BL/Type_Forecast/Attribute_Differnce.qbl b/_Main/BL/Type_Forecast/Attribute_Differnce.qbl new file mode 100644 index 0000000..776bc62 --- /dev/null +++ b/_Main/BL/Type_Forecast/Attribute_Differnce.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Differnce +{ + #keys: '3[414996.1.124560122][414996.1.124560121][414996.1.124560123]' + ValueType: Real +} diff --git a/_Main/BL/Type_Forecast/Function_CalcDiffernce.qbl b/_Main/BL/Type_Forecast/Function_CalcDiffernce.qbl new file mode 100644 index 0000000..8592251 --- /dev/null +++ b/_Main/BL/Type_Forecast/Function_CalcDiffernce.qbl @@ -0,0 +1,13 @@ +Quintiq file version 2.0 +#parent: #root +Function CalcDiffernce +{ + TextBody: + [* + // Akari Oct-14-2024 (created) + + value := this.Quantity() - this.FulfilledQuantity(); + + this.Differnce( value ); + *] +} diff --git "a/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport\0431.qbl" "b/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport\0431.qbl" index 905b371..1eb1832 100644 --- "a/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport\0431.qbl" +++ "b/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateComprehensiveHoursReport\0431.qbl" @@ -85,15 +85,16 @@ workingDayCell.RealValue( workingDayCell.RealValue() + 1 ); if( shiftPlan.IsHoliday() ){ // 鑺傚亣鏃ュ姞鐝� - overtime := shiftPlan.GetBreakDayOvertimeHour( false ); + overtime := shiftPlan.GetHolidayOvertimeHour( false ); holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + overtime ); if( not isnull( nextShiftPlan )){ - nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); if( nextShiftPlan.IsHoliday()){ // 涓嬩竴澶╂槸鑺傚亣鏃� + nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true ); holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime ); }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){ // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃� + nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime ); }else{ // 涓嬩竴澶╂槸骞冲父鐨勫伐浣滄棩 @@ -106,12 +107,14 @@ overtime := shiftPlan.GetBreakDayOvertimeHour( false ); breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + overtime ); if( not isnull( nextShiftPlan )){ - nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); + if( nextShiftPlan.IsHoliday()){ // 涓嬩竴澶╂槸鑺傚亣鏃� + nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true ); holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime ); }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){ // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃� + nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime ); }else{ // 涓嬩竴澶╂槸骞冲父鐨勫伐浣滄棩 @@ -124,12 +127,13 @@ overtime := shiftPlan.GetDefaultDayOvertimeHour( false ); defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + overtime ); if( not isnull( nextShiftPlan )){ - nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); if( nextShiftPlan.IsHoliday()){ // 涓嬩竴澶╂槸鑺傚亣鏃� + nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true ); holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime ); }else if( shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄥ叚" ) or shiftPlan.DefaultRemark().LikeUserLocale( "鍛ㄦ棩" ) ){ // 涓嬩竴澶╂槸鍛ㄥ叚鎴栧懆鏃� + nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime ); }else{ // 涓嬩竴澶╂槸骞冲父鐨勫伐浣滄棩 @@ -150,6 +154,12 @@ defaultMultiplier := select( macroPlan,OvertimeMultiplier,object,object.Name() = "骞虫椂鍔犵彮" ); if( isnull( defaultMultiplier )){ defaultMultiplier := macroPlan.OvertimeMultiplier( relnew,Name := "骞虫椂鍔犵彮鍊嶇巼",Multiplier := 1.5 ); + } + + // 娆犲伐鍊嶇巼 + qiangongMultiplier := select( macroPlan,OvertimeMultiplier,object,object.Name() = "娆犲伐" ); + if( isnull( qiangongMultiplier )){ + qiangongMultiplier := macroPlan.OvertimeMultiplier( relnew,Name := "娆犲伐",Multiplier := 1 ); } // 浼戞伅鏃ュ姞鐝�嶇巼 @@ -174,11 +184,13 @@ unit := units.Element( unitIndexTree.Root().Child( unitIndexTree.GetHandle( rowKey )).GetValueAsNumber() ); jiejiariCell := LocalCell_Default::GetCell( rowKey + column5.Name(), cellIndexTree, cells, row, column5 ); - jiejiarifeiCell := LocalCell_Default::GetCell( rowKey + column6.Name(), cellIndexTree, cells, row, column6 ); - jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,jiejiariCell.RealValue())); + jiejiarifeiCell := LocalCell_Default::GetCell( rowKey + column7.Name(), cellIndexTree, cells, row, column7 ); + jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,holidayMultiplier,jiejiariCell.RealValue())); qiangongCell := LocalCell_Default::GetCell( rowKey + column4.Name(), cellIndexTree, cells, row, column4 ); - qiangongfeiCell := LocalCell_Default::GetCell( rowKey + column7.Name(), cellIndexTree, cells, row, column7 ); + qiangongCell.RealValue( qiangongCell.RealValue() - 8 ); + + qiangongfeiCell := LocalCell_Default::GetCell( rowKey + column6.Name(), cellIndexTree, cells, row, column6 ); qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,qiangongCell.RealValue() )); } diff --git a/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl b/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl index c46525a..2a888ca 100644 --- a/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl +++ b/_Main/BL/Type_LocalCell_Default/StaticMethod_GenerateStandardHoursReport.qbl @@ -157,6 +157,12 @@ defaultMultiplier := macroPlan.OvertimeMultiplier( relnew,Name := "骞虫椂鍔犵彮鍊嶇巼",Multiplier := 1.5 ); } + // 娆犲伐鍊嶇巼 + qiangongMultiplier := select( macroPlan,OvertimeMultiplier,object,object.Name() = "娆犲伐" ); + if( isnull( qiangongMultiplier )){ + qiangongMultiplier := macroPlan.OvertimeMultiplier( relnew,Name := "娆犲伐",Multiplier := 1 ); + } + // 浼戞伅鏃ュ姞鐝�嶇巼 breakDayMultiplier := select( macroPlan,OvertimeMultiplier,object,object.Name() = "鍛ㄦ湯鍔犵彮"); if( isnull( breakDayMultiplier )){ @@ -178,28 +184,32 @@ rowKey := row.CustomName(); unit := units.Element( unitIndexTree.Root().Child( unitIndexTree.GetHandle( rowKey )).GetValueAsNumber() ); + // 鑺傚亣鏃ュ姞鐝垂 jiejiariCell := LocalCell_Default::GetCell( rowKey + column6.Name(), cellIndexTree, cells, row, column6 ); jiejiarifeiCell := LocalCell_Default::GetCell( rowKey + column10.Name(), cellIndexTree, cells, row, column10 ); - jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,jiejiariCell.RealValue())); + jiejiarifeiCell.RealValue( EmployeeCost::GetSalary( unit,holidayMultiplier,jiejiariCell.RealValue())); + // 浼戞伅鏃ュ姞鐝垂 xiuxiCell := LocalCell_Default::GetCell( rowKey + column5.Name(), cellIndexTree, cells, row, column5 ); xiuxifeiCell := LocalCell_Default::GetCell( rowKey + column9.Name(), cellIndexTree, cells, row, column9 ); xiuxifeiCell.RealValue( EmployeeCost::GetSalary( unit,breakDayMultiplier,xiuxiCell.RealValue())); + // 骞虫椂鍔犵彮璐� jiabanCell := LocalCell_Default::GetCell( rowKey + column4.Name(), cellIndexTree, cells, row, column4 ); jiabanfeiCell := LocalCell_Default::GetCell( rowKey + column8.Name(), cellIndexTree, cells, row, column8 ); - jiabanfeiCell.RealValue( EmployeeCost::GetSalary( unit,holidayMultiplier,jiabanCell.RealValue())); + jiabanfeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier ,jiabanCell.RealValue())); + // 娆犲伐璐� qiangongCell := LocalCell_Default::GetCell( rowKey + column7.Name(), cellIndexTree, cells, row, column7 ); - qiangongCell.RealValue( qiangongCell.RealValue() - 1 ); + qiangongCell.RealValue( qiangongCell.RealValue() - 8 ); qiangongfeiCell := LocalCell_Default::GetCell( rowKey + column11.Name(), cellIndexTree, cells, row, column11 ); - qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,defaultMultiplier,qiangongCell.RealValue() )); + qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,qiangongMultiplier,qiangongCell.RealValue() )); // 宸ヤ綔鏃� workingDayCell := LocalCell_Default::GetCell( rowKey + column3.Name(), cellIndexTree, cells, row, column3 ); - workingDayCell.RealValue( workingDayCell.RealValue() + 1 ); + workingDayCell.RealValue( workingDayCell.RealValue() ); } return table; diff --git a/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_Compared.qbl b/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_Compared.qbl index 6d6bf49..f774c24 100644 --- a/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_Compared.qbl +++ b/_Main/BL/Type_LocalCell_DemandComparison/StaticMethod_Compared.qbl @@ -2,6 +2,7 @@ #parent: #root StaticMethod Compared ( RecycleBin recycleBin, + const MacroPlan mactoPlan, String baseVersionPath, String compareVersionPath, String baseVersionName, @@ -12,6 +13,17 @@ [* // rislai Jun-20-2024 (created) localTable := recycleBin.LocalTable( relnew,Name := baseVersionName + "__" + compareVersionName ); + + products := selectset( mactoPlan,Product_MP,product,not product.IsSystem() and product.IsUsed() ); + productIndexTree := NamedValueTree::Create(); + try{ + for( i := 0; i < products.Size(); i++){ + product := products.Element( i ); + productHandle := productIndexTree.GetHandle( product.Notes() ); + productIndexTree.Root().AddChild( productHandle,i ) + } + }onerror{} + baseVersionFile := OSFile::Construct(); compareVersionFile := OSFile::Construct(); @@ -88,7 +100,17 @@ CompareVersionValue := ifexpr( isnull( compareVersionCell ),"绌�",compareVersionCell.Value())); column.IsAttrbuteColumn( true ); if( columnName = "鍙戝姩鏈洪浂浠跺彿" ){ - row.ProductID( ifexpr( isnull( baseVersionCell ), ifexpr( isnull( compareVersionCell ),"绌�",compareVersionCell.Value()), baseVersionCell.Value()) ); + productID := ifexpr( isnull( baseVersionCell ), ifexpr( isnull( compareVersionCell ),"绌�",compareVersionCell.Value()), baseVersionCell.Value()); + + productHanlde := productIndexTree.GetHandle( productID ); + productIndex := guard( productIndexTree.Root().Child( productHanlde ), null( NamedValue )); + if( not isnull( productIndex )){ + product := products.Element( productIndex.GetValueAsNumber() ); + productID := product.ID(); + } + + row.ProductID( productID ); + } if( columnName = "杞﹀瀷" ){ row.CustomName( " > " + ifexpr( isnull( baseVersionCell ), ifexpr( isnull( compareVersionCell ),"绌�",compareVersionCell.Value()), baseVersionCell.Value()) ); diff --git a/_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanMDSID.qbl b/_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanMDSID.qbl new file mode 100644 index 0000000..992e017 --- /dev/null +++ b/_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanMDSID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MacroPlanMDSID +{ + #keys: '3[414996.1.124530070][414996.1.124530069][414996.1.124530071]' + ValueType: Key +} diff --git a/_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanName.qbl b/_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanName.qbl new file mode 100644 index 0000000..c4ade67 --- /dev/null +++ b/_Main/BL/Type_OfflinePlanTableInfo/Attribute_MacroPlanName.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MacroPlanName +{ + #keys: '3[414996.1.124550976][414996.1.124550975][414996.1.124550977]' + ValueType: String +} diff --git a/_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableName.qbl b/_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableName.qbl new file mode 100644 index 0000000..a5dd339 --- /dev/null +++ b/_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableName.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute TableName +{ + #keys: '3[414996.1.124530080][414996.1.124530079][414996.1.124530081]' + ValueType: String +} diff --git a/_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableSaveTime.qbl b/_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableSaveTime.qbl new file mode 100644 index 0000000..4a261cf --- /dev/null +++ b/_Main/BL/Type_OfflinePlanTableInfo/Attribute_TableSaveTime.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute TableSaveTime +{ + #keys: '3[414996.1.124540172][414996.1.124540171][414996.1.124540173]' + ValueType: DateTime +} diff --git a/_Main/BL/Type_OfflinePlanTableInfo/StaticMethod_Create.qbl b/_Main/BL/Type_OfflinePlanTableInfo/StaticMethod_Create.qbl new file mode 100644 index 0000000..419d238 --- /dev/null +++ b/_Main/BL/Type_OfflinePlanTableInfo/StaticMethod_Create.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Create ( + const constcontent MacroPlans macroPlans, + RecycleBin owner +) +{ + TextBody: + [* + // Akari Oct-14-2024 (created) + owner.OfflinePlanTableInfo( relflush ); + info( macroPlans.Size() ); + traverse( macroPlans,Elements,macroPlan ){ + mdsid := macroPlan.MDSID(); + name := macroPlan.MDSMacroPlan().Description(); + + traverse( macroPlan,OfflinePlanTable,offlinePlanTable ){ + owner.OfflinePlanTableInfo( relnew,MacroPlanName := name,TableName := offlinePlanTable.SaveDateTime().Format( "Y-M2-D2 H:m:s" ),MacroPlanMDSID := mdsid ,TableSaveTime := offlinePlanTable.SaveDateTime()); + } + } + info( owner.OfflinePlanTableInfo( relsize ) ); + *] +} diff --git a/_Main/BL/Type_OfflinePlanTableInfo/_ROOT_Type_OfflinePlanTableInfo.qbl b/_Main/BL/Type_OfflinePlanTableInfo/_ROOT_Type_OfflinePlanTableInfo.qbl new file mode 100644 index 0000000..4e59627 --- /dev/null +++ b/_Main/BL/Type_OfflinePlanTableInfo/_ROOT_Type_OfflinePlanTableInfo.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type OfflinePlanTableInfo +{ + #keys: '5[414996.1.124560137][414996.1.124560135][0.0.0][414996.1.124560136][414996.1.124560138]' + BaseType: Object + Description: '涓嬬嚎璁″垝瀵瑰簲鐨刴acroPlan淇℃伅' + StructuredName: 'OfflinePlanTableInfos' +} diff --git a/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl b/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl index 39d85a3..bf28d76 100644 --- a/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl +++ b/_Main/BL/Type_ProductionLineBatchData/Method_Enable.qbl @@ -29,9 +29,9 @@ tempPeriod_MPs := selectset( dayPeriod_MPs,Elements,period_MP,period_MP.StartDate() >= tempStartDate and period_MP.EndDate() <= tempEndDate ); - unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability())); - unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability())); - unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability())); + unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP())); + unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP())); + unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( tempPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP())); if( unitPeriodTimes1.Size() > 0 ){ this.OnOK( unitPeriodTimes1,shiftPattern1 ); } @@ -49,11 +49,17 @@ shiftPattern3 := tempShiftPattern; } } + + // 杞崲鐝缂撳瓨 + shiftPattern1 := this.ShiftPattern1(); + shiftPattern2 := this.ShiftPattern2(); + shiftPattern3 := this.ShiftPattern3(); + tempShiftPattern := shiftPattern1; if( weekPeriod_MPs.Size() <> 0 ){ traverse( weekPeriod_MPs,Elements,period_MP ){ - unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability())); - unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability())); - unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability())); + unitPeriodTimes1 := selectset( this.Unit1(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP()); + unitPeriodTimes2 := selectset( this.Unit2(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP()); + unitPeriodTimes3 := selectset( this.Unit3(),UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP()); if( unitPeriodTimes1.Size() > 0 ){ this.OnOK( unitPeriodTimes1,shiftPattern1 ); diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def index a6f622c..a9e718b 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageReport.def @@ -26,16 +26,6 @@ Taborder: 2 ] } - Component dhMDSHandles - { - #keys: '[414996.1.116451655]' - BaseType: 'WebDataHolder' - Databinding: 'structured[internal[ExternalMDSHandle]]*' - Properties: - [ - Taborder: 3 - ] - } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanByMDSID.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanByMDSID.def new file mode 100644 index 0000000..5dd44f2 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlanByMDSID.def @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +#parent: #root +Method GetMacroPlanByMDSID ( + OfflinePlanTableInfo offlinePlanInfo +) as MacroPlan id:Method_ApplicationMacroPlanner_GetMacroPlanByMDSID +{ + #keys: '[414996.1.122222878]' + Body: + [* + componentmds := ApplicationScope.ComponentMDS(); + + demandMacroPlan := null( MacroPlan ); + + if( exists( ScenarioManager,ScenarioMP,scemp,scemp.IsLoaded() and scemp.DatasetMDSID() = offlinePlanInfo.MacroPlanMDSID() )){ + mdsinstance := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = offlinePlanInfo.MacroPlanMDSID() ); + handle := mdsinstance.GetMDSHandle(); + demandMacroPlan := handle.AsMacroPlan(); + }else{ + error( "MacroPlan[ " + offlinePlanInfo.MacroPlanName() + "] is not load." ); + } + + return demandMacroPlan; + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def index a6154d6..695b69b 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Method_GetMacroPlans.def @@ -7,14 +7,13 @@ [* componentmds := ApplicationScope.ComponentMDS(); - dhMDSHandles.Data().Flush(); macroPlans := construct( MacroPlans ); scemps := selectset( ScenarioManager,ScenarioMP,mp,mp.IsLoaded()); traverse( scemps,Elements,scemp ){ mdsinstance := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = scemp.DatasetMDSID() ); handle := mdsinstance.GetMDSHandle(); - dhMDSHandles.Data().Add( handle ); + demandMacroPlan := handle.AsMacroPlan(); macroPlans.Add( demandMacroPlan ); } diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" index 0b818cc..56e00de 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_PanelRibbon504\043801.def" @@ -9,7 +9,7 @@ { #keys: '[412672.1.78210474]' BaseType: 'WebDropDownList' - Databinding: 'OfflinePlanTable' + Databinding: 'OfflinePlanTableInfo' Children: [ Component DataExtractorRibbon @@ -18,7 +18,7 @@ BaseType: 'WebDataExtractor' Properties: [ - DataType: 'structured[OfflinePlanTable]' + DataType: 'structured[OfflinePlanTableInfo]' Source: 'dhOfflinePlanTables' Taborder: 0 Transformation: 'Elements' @@ -27,7 +27,7 @@ ] Properties: [ - DisplayField: 'SaveDateTime' + DisplayField: 'TableName' Label: '鍩哄噯涓嬬嚎璁″垝:' Taborder: 0 ] @@ -46,7 +46,7 @@ { #keys: '[412672.1.78210579]' BaseType: 'WebDropDownList' - Databinding: 'OfflinePlanTable' + Databinding: 'OfflinePlanTableInfo' Children: [ Component DataExtractorRibbon300 @@ -55,7 +55,7 @@ BaseType: 'WebDataExtractor' Properties: [ - DataType: 'structured[OfflinePlanTable]' + DataType: 'structured[OfflinePlanTableInfo]' Source: 'dhOfflinePlanTables' Taborder: 0 Transformation: 'Elements' @@ -64,7 +64,7 @@ ] Properties: [ - DisplayField: 'SaveDateTime' + DisplayField: 'TableName' Label: '瀵规瘮涓嬬嚎璁″垝:' Taborder: 1 ] @@ -73,10 +73,25 @@ { #keys: '[414996.1.103241339]' BaseType: 'WebDataHolder' - Databinding: 'structured[OfflinePlanTable]*' + Databinding: 'structured[OfflinePlanTableInfo]*' + Children: + [ + Component deOfflinePlanTables + { + #keys: '[414996.1.124700546]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'RecycleBin' + Source: 'RecycleBin' + Taborder: 0 + Transformation: 'OfflinePlanTableInfo' + ] + } + ] Properties: [ - Taborder: 3 + Taborder: 4 ] } Component bExport @@ -86,7 +101,7 @@ Properties: [ Image: 'EXPORT1' - Taborder: 4 + Taborder: 5 ] } Component dhXMLDataListener @@ -112,7 +127,16 @@ ] Properties: [ - Taborder: 5 + Taborder: 6 + ] + } + Component ButtonRibbon + { + #keys: '[414996.1.125429607]' + BaseType: 'WebButton' + Properties: + [ + Taborder: 3 ] } ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def new file mode 100644 index 0000000..2054ef1 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_OnCreated.def @@ -0,0 +1,12 @@ +Quintiq file version 2.0 +#parent: #root +Response OnCreated () id:Response_FormOfflinePlanChanges_OnCreated +{ + #keys: '[414996.1.124740834]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_ButtonRibbon_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_ButtonRibbon_OnClick.def new file mode 100644 index 0000000..6488149 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_ButtonRibbon_OnClick.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: PanelRibbon504_801/ButtonRibbon +Response OnClick () id:Response_PanelRibbon504_801_ButtonRibbon_OnClick +{ + #keys: '[414996.1.125429626]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + macroPlans := ApplicationMacroPlanner.GetMacroPlans(); + OfflinePlanTableInfo::Create( macroPlans,RecycleBin ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def index da3570f..292494e 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_bComparison_OnClick.def @@ -9,8 +9,13 @@ { Body: [* - baseVersion := ddlBaseOfflinePlanTable.Data(); - compareVersion := ddlCompareOfflinePlanTable.Data(); + baseOfflineTableInfo := ddlBaseOfflinePlanTable.Data(); + baseMacroPlan := ApplicationMacroPlanner.GetMacroPlanByMDSID( baseOfflineTableInfo ); + baseVersion := select( baseMacroPlan ,OfflinePlanTable,table,table.SaveDateTime() = baseOfflineTableInfo.TableSaveTime() ); + + compareOfflineTableInfo := ddlCompareOfflinePlanTable.Data(); + compareMacroPlan := ApplicationMacroPlanner.GetMacroPlanByMDSID( compareOfflineTableInfo ); + compareVersion := select( compareMacroPlan ,OfflinePlanTable,table,table.SaveDateTime() = compareOfflineTableInfo.TableSaveTime() ); dhTable.Data( LocalCell_OfflinePlanComparison::Compared( RecycleBin,baseVersion,compareVersion )); *] diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhOfflinePlanTables_OnCreated\04357.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhOfflinePlanTables_OnCreated\04357.def" index 0df72f7..8844fc9 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhOfflinePlanTables_OnCreated\04357.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form701/Response_PanelRibbon504_801_dhOfflinePlanTables_OnCreated\04357.def" @@ -7,20 +7,6 @@ DefinitionID: 'Responsedef_WebComponent_OnCreated' QuillAction { - Body: - [* - macroPlans := ApplicationMacroPlanner.GetMacroPlans(); - offlinePlanTables := selectset( macroPlans,Elements.OfflinePlanTable,table,true ); - traverse( macroPlans,Elements,element ){ - info( element.MDSID() ); - } - info( dhMDSHandles.Data().Size() ); - traverse( dhMDSHandles.Data(),Elements,element ){ - info( element.AsMacroPlan().MDSMacroPlan().Description() ); - } - - this.Data( &offlinePlanTables ); - *] GroupServerCalls: false } } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_ButtonCompare_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_ButtonCompare_OnClick.def index 76c486e..d126b96 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_ButtonCompare_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_ButtonCompare_OnClick.def @@ -10,7 +10,7 @@ Body: [* - table := LocalCell_DemandComparison::Compared( RecycleBin,dhBaseVersionPath.Data(),dhCompareVersionPath.Data(),lBaseVersionName.Text(),lCompareVersionName.Text() ); + table := LocalCell_DemandComparison::Compared( RecycleBin,MacroPlan, dhBaseVersionPath.Data(),dhCompareVersionPath.Data(),lBaseVersionName.Text(),lCompareVersionName.Text() ); dhComparisonData.Data( table ); *] GroupServerCalls: false diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def index 8fc3953..5fc2143 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def @@ -7,7 +7,7 @@ { Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgNotLinkedToPeriod","title":"ImgNotLinkedToPeriod","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgNotLinkedToPeriod"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsPostponed","title":"ImgIsPostponed","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsPostponed"}},{"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":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"Quantity UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Original Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NettedQuantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"NettedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment Illustration","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":"Fulfillment","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.NettedQuantity()-object.FulfilledQuantity(),0.0).Round(2)"}}]}},{"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":"Priority.Name","title":"Priority","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Priority.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandUncertaintyPercentage","title":"Uncertainty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandUncertaintyPercentage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Origin","title":"Origin","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Origin"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgNotLinkedToPeriod","title":"ImgNotLinkedToPeriod","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgNotLinkedToPeriod"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsPostponed","title":"ImgIsPostponed","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsPostponed"}},{"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":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"Quantity UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Original Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NettedQuantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"NettedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment Illustration","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":"Fulfillment","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.NettedQuantity()-object.FulfilledQuantity(),0.0).Round(2)"}}]}},{"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":"Priority.Name","title":"Priority","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Priority.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandUncertaintyPercentage","title":"Uncertainty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandUncertaintyPercentage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Origin","title":"Origin","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Origin"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Differnce","title":"Differnce","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Differnce"}}]' ] } ] diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Response_ListSalesDemands_MenuCreate_OnClick\043715.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Response_ListSalesDemands_MenuCreate_OnClick\043715.def" index 7041dcb..4267aa8 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Response_ListSalesDemands_MenuCreate_OnClick\043715.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Response_ListSalesDemands_MenuCreate_OnClick\043715.def" @@ -2,16 +2,4 @@ #parent: ListSalesDemands Response OnClick () inherited id:Response_ListSalesDemands_MenuCreate_OnClick_715 #extension { - QuillAction #extension - { - Body: - [* - //Create new sales demand - dlg := construct( DialogCreateEditForecast ); - dlg.New(); - - dlg.bSplitUsingCurve().Visible( true ); - dlg.PanelCurve().Visible( true ); - *] - } } -- Gitblit v1.9.3