From 7edeca2ed3587a88d7f94cacf05e49c8db610fb0 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期四, 10 十月 2024 17:54:26 +0800
Subject: [PATCH] 发动机物流成本部分bug处理
---
_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl | 3
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOtherCost.qbl | 8 +
_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl | 3
_Main/BL/Type_EnginePipelineRow/StaticMethod_CraeteCellValueForRow.qbl | 4
_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl | 4
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl | 32 ++--
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl | 6
_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw | 10
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl | 14 +-
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimateTotalCost.qbl | 4
_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl | 5
_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp | 5
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting#568.def | 2
_Main/BL/Type_ChangeLossSetting/Function_CalcShowChangeLossNumber.qbl | 13 +
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl | 2
_Main/BL/Type_FinancialProductionRow/Method_Initialize#110.qbl | 2
_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl | 4
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl | 24 +-
_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl | 16 +-
_Main/BL/Type_EnginePipelineRow/Attribute_ShowName.qbl | 7 +
_Main/BL/Type_ChangeLossSetting/Attribute_ShowChangeLossNumber.qbl | 7 +
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_MatrixEditorTable.def | 2
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl | 1
_Main/Sys/Repr/Global/MachiningPipelineCell.qrp | 8
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQty.qbl | 8 +
/dev/null | 8 -
_Main/BL/Type_EnginePipelineReport/Method_GenerateNew.qbl | 180 +++++++++++++++++++++++++
_Main/BL/Type_FinancialProductionImportData/Function_CalcQuantity.qbl | 2
_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def | 2
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl | 2
32 files changed, 316 insertions(+), 84 deletions(-)
diff --git a/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQty.qbl b/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQty.qbl
new file mode 100644
index 0000000..1467ced
--- /dev/null
+++ b/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQty.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CCRentQty
+{
+ #keys: '3[415136.0.1184074701][415136.0.1184074700][415136.0.1184074702]'
+ Description: '闀挎槬澶栫搴撴暟閲�'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQuantity.qbl b/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQuantity.qbl
deleted file mode 100644
index cfd2692..0000000
--- a/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQuantity.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute CCRentQuantity
-{
- #keys: '3[415136.0.1160164759][415136.0.1160164758][415136.0.1160164760]'
- Description: '闀挎槬澶栫搴撴暟閲�'
- ValueType: Number
-}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOtherCost.qbl b/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOtherCost.qbl
new file mode 100644
index 0000000..84c8e7d
--- /dev/null
+++ b/_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOtherCost.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DLRentOtherCost
+{
+ #keys: '3[415136.0.1184074682][415136.0.1184074681][415136.0.1184074683]'
+ Description: '澶ц繛澶栫搴撳叾浠栬垂鐢�'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimateTotalCost.qbl b/_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimateTotalCost.qbl
index d9421bb..1e59ade 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimateTotalCost.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimateTotalCost.qbl
@@ -4,10 +4,10 @@
{
TextBody:
[*
- // 鐢勫叞楦� Aug-12-2024 (created)
+ // 鐢勫叞楦� Aug-12-2024 (created)
value := this.CCRentInCost() + this.CCRentOutOfCost() + this.CCLongTransCost() + this.CCShorTransCost() + this.CCRentStorCost()
- + this.DLRentInCost() + this.DLRentOutOfCost() + this.WerkToDLRentTransCost() + this.DLRentStorCost()
+ + this.DLRentInCost() + this.DLRentOutOfCost() + this.WerkToDLRentTransCost() + this.DLRentStorCost() + this.DLRentOtherCost()
this.EstimateTotalCost( value );
*]
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl
index 8d773b6..305d174 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl
@@ -107,31 +107,31 @@
}
//澶栫搴撳叆搴撹垂鐢�
rententercostcellElement := xmlDOM.CreateElement( "cell" );
- rententercostcellElement.SetAttribute( "value", [String]c.RentInCost() );
+ rententercostcellElement.SetAttribute( "value", c.RentInCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( rententercostcellElement );
//澶栫搴撳嚭搴撹垂鐢�
rentoutcostcellElement := xmlDOM.CreateElement( "cell" );
- rentoutcostcellElement.SetAttribute( "value", [String]c.RentOutOfCost() );
+ rentoutcostcellElement.SetAttribute( "value", c.RentOutOfCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( rentoutcostcellElement );
//鍘傚唴鍒板绉熷簱杩愯緭璐圭敤
factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" );
- factorytorenttranscostcellElement.SetAttribute( "value", [String]c.WerkToRentTransCost() );
+ factorytorenttranscostcellElement.SetAttribute( "value", c.WerkToRentTransCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( factorytorenttranscostcellElement );
//澶栫搴撲粨鍌ㄨ垂鐢�
rentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
- rentstoragecostcellElement.SetAttribute( "value", [String]c.RentStorCost() );
+ rentstoragecostcellElement.SetAttribute( "value", c.RentStorCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( rentstoragecostcellElement );
//棰勮鎬昏垂鐢�
estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" );
- estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimateTotalCost() );
+ estimatedtotalcostcellElement.SetAttribute( "value", c.EstimateTotalCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( estimatedtotalcostcellElement );
//绯绘暟
coefficientcellElement := xmlDOM.CreateElement( "cell" );
- coefficientcellElement.SetAttribute( "value", [String]c.Coefficient() );
+ coefficientcellElement.SetAttribute( "value", c.Coefficient().Format( 'N(Dec)' ) );
columnelement.AppendChild( coefficientcellElement );
//鎬昏垂鐢�
totalcostcellElement := xmlDOM.CreateElement( "cell" );
- totalcostcellElement.SetAttribute( "value", [String]c.AllCost() );
+ totalcostcellElement.SetAttribute( "value", c.AllCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( totalcostcellElement );
}
tableElement.AppendChild( columnelement );
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
index 69c2ade..3f5377f 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
@@ -154,7 +154,7 @@
if( not isnull( enginecost ) ){
periodtime := pispip.Start().StartOfMonth().Date();
periodname := periodtime.Format( "M2/D2/Y" );
- quantity := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
+ quantity := ceil( [Number]pispip.PlannedInventoryLevelEnd() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
column := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl
index 977a5d1..dae30bc 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl
@@ -147,51 +147,51 @@
}
//闀挎槬澶栫搴撳叆搴撹垂鐢�
ccrententercostcellElement := xmlDOM.CreateElement( "cell" );
- ccrententercostcellElement.SetAttribute( "value", [String]c.CCRentInCost() );
+ ccrententercostcellElement.SetAttribute( "value", c.CCRentInCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( ccrententercostcellElement );
//闀挎槬澶栫搴撳嚭搴撹垂鐢�
ccrentoutcostcellElement := xmlDOM.CreateElement( "cell" );
- ccrentoutcostcellElement.SetAttribute( "value", [String]c.CCRentOutOfCost() );
+ ccrentoutcostcellElement.SetAttribute( "value", c.CCRentOutOfCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( ccrentoutcostcellElement );
//闀挎槬闀块�旇繍杈撹垂鐢�
cclongtranscostcellElement := xmlDOM.CreateElement( "cell" );
- cclongtranscostcellElement.SetAttribute( "value", [String]c.CCLongTransCost() );
+ cclongtranscostcellElement.SetAttribute( "value", c.CCLongTransCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( cclongtranscostcellElement );
//闀挎槬鐭�旇繍杈撹垂鐢�
ccshorttranscostcellElement := xmlDOM.CreateElement( "cell" );
- ccshorttranscostcellElement.SetAttribute( "value", [String]c.CCShorTransCost() );
+ ccshorttranscostcellElement.SetAttribute( "value", c.CCShorTransCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( ccshorttranscostcellElement );
//闀挎槬澶栫搴撲粨鍌ㄨ垂鐢�
ccrentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
- ccrentstoragecostcellElement.SetAttribute( "value", [String]c.CCRentStorCost() );
+ ccrentstoragecostcellElement.SetAttribute( "value", c.CCRentStorCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( ccrentstoragecostcellElement );
//澶ц繛澶栫搴撳叆搴撹垂鐢�
dlrententercostcellElement := xmlDOM.CreateElement( "cell" );
- dlrententercostcellElement.SetAttribute( "value", [String]c.DLRentInCost() );
+ dlrententercostcellElement.SetAttribute( "value", c.DLRentInCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( dlrententercostcellElement );
//澶ц繛澶栫搴撳嚭搴撹垂鐢�
dlrentoutcostcellElement := xmlDOM.CreateElement( "cell" );
- dlrentoutcostcellElement.SetAttribute( "value", [String]c.DLRentOutOfCost() );
+ dlrentoutcostcellElement.SetAttribute( "value", c.DLRentOutOfCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( dlrentoutcostcellElement );
//鍘傚唴鍒板绉熷簱杩愯緭璐圭敤
factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" );
- factorytorenttranscostcellElement.SetAttribute( "value", [String]c.WerkToDLRentTransCost() );
+ factorytorenttranscostcellElement.SetAttribute( "value", c.WerkToDLRentTransCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( factorytorenttranscostcellElement );
//澶ц繛澶栫搴撲粨鍌ㄨ垂鐢�
dlrentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
- dlrentstoragecostcellElement.SetAttribute( "value", [String]c.DLRentStorCost() );
+ dlrentstoragecostcellElement.SetAttribute( "value", c.DLRentStorCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( dlrentstoragecostcellElement );
//棰勮鎬昏垂鐢�
estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" );
- estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimateTotalCost() );
+ estimatedtotalcostcellElement.SetAttribute( "value", c.EstimateTotalCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( estimatedtotalcostcellElement );
//绯绘暟
coefficientcellElement := xmlDOM.CreateElement( "cell" );
- coefficientcellElement.SetAttribute( "value", [String]c.Coefficient() );
+ coefficientcellElement.SetAttribute( "value", c.Coefficient().Format( 'N(Dec)' ) );
columnelement.AppendChild( coefficientcellElement );
//鎬昏垂鐢�
totalcostcellElement := xmlDOM.CreateElement( "cell" );
- totalcostcellElement.SetAttribute( "value", [String]c.AllCost() );
+ totalcostcellElement.SetAttribute( "value", c.AllCost().Format( 'N(Dec)' ) );
columnelement.AppendChild( totalcostcellElement );
}
tableElement.AppendChild( columnelement );
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl
index bb63502..fe1aaa7 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl
@@ -62,7 +62,7 @@
if( not isnull( enginecost ) ){
products.Add( product );
cell := selectobject( row, Cell, cell, cell.Column() = column );
- cell.CCRentQuantity( cell.CCRentQuantity() + quantity );
+ cell.CCRentQty( cell.CCRentQty() + quantity );
//闀挎槬澶栫搴撳叆搴撹垂鐢細鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环
entercost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
//闀挎槬澶栫搴撳嚭搴撹垂鐢�: 鍑哄簱閲�/鍖呰瀹归噺*鍑哄簱鍗曚环
diff --git a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl
index 47d9f59..aa66e0d 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_InitializeNew.qbl
@@ -35,11 +35,11 @@
traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '澶栫搴�' ) ){
// unit := stockingpoint.Unit();
// parentunits := unit.GetAllParent();
- //鏄惁灞炰簬闀挎槬澶栫搴�
+ //鏄惁灞炰簬闀挎槬澶栫搴撶敤浜庨暱鏄ュ绉熷簱浠撳偍璐圭敤
isccrent := stockingpoint.ID().StartsWith( '闀挎槬' ) or stockingpoint.ID().StartsWith( 'CC' );
- //鏄惁灞炰簬澶ц繛鍙戝姩鏈虹殑闀挎槬澶栫搴�
+ //鏄惁灞炰簬澶ц繛鍙戝姩鏈虹殑闀挎槬澶栫搴撶敤浜庨暱鏄ュ叆搴�/鍑哄簱璐圭敤
isdltoccrent := stockingpoint.ID().StartsWith( '澶ц繛鍙戝姩鏈虹殑闀挎槬' );
- //鏄惁灞炰簬澶ц繛澶栫搴�
+ //鏄惁灞炰簬澶ц繛澶栫搴撶敤浜庡ぇ杩炲绉熷簱浠撳偍璐圭敤
isdlrent := stockingpoint.ID().StartsWith( '澶ц繛' ) or stockingpoint.ID().StartsWith( 'DL' );
if( isccrent or isdlrent ){
traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf()
@@ -63,16 +63,15 @@
enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date()
and engine.Factory() = ccfactory );
if( not isnull( enginecost ) ){
- quantity := [Number]pispip.NewSupplyQuantity();
if( isccrent ){
- cost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
- cell.CCRentStorCost( cell.CCRentStorCost() + cost );
+ cost := ceil( pispip.PlannedInventoryLevelEnd() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
+ cell.CCRentStorCost( cell.CCRentStorCost() + cost );//闀挎槬澶栫搴撲粨鍌ㄨ垂鐢�
}else{
- cell.CCRentQuantity( cell.CCRentQuantity() + quantity );
- //闀挎槬澶栫搴撳叆搴撹垂鐢細鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环
- entercost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
+ cell.CCRentQty( cell.CCRentQty() + pispip.NewSupplyQuantity() );
+ //闀挎槬澶栫搴撳叆搴撹垂鐢細鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环
+ entercost := ceil( pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
//闀挎槬澶栫搴撳嚭搴撹垂鐢�: 鍑哄簱閲�/鍖呰瀹归噺*鍑哄簱鍗曚环
- outcost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice();
+ outcost := ceil( pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice();
cell.CCRentInCost( cell.CCRentInCost() + entercost );
cell.CCRentOutOfCost( cell.CCRentOutOfCost() + outcost );
}
@@ -82,8 +81,8 @@
enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date()
and engine.Factory() = dlfactory );
if( not isnull( enginecost ) ){
- cost := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
- cell.DLRentStorCost( cell.DLRentStorCost() + cost );
+ cost := ceil( [Number]pispip.PlannedInventoryLevelEnd() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//鍥涜垗浜斿叆
+ cell.DLRentStorCost( cell.DLRentStorCost() + cost );//澶ц繛澶栫搴撲粨鍌ㄨ垂鐢�
}
}
}
@@ -242,18 +241,23 @@
enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.Generation().ToLower() = product.Generation().ToLower()
and engine.MLB_MQB() = product.MQBMLB()
and engine.Factory() = ccfactory );
+ //鍦ㄨ繍杈撴垚鏈弬鏁拌〃閲屾壘鍒板彂鍔ㄦ満瀵瑰簲杩愯緭鍗曚环鍜岃杞藉閲�
+ transcosts := selectset( owner, LogisticsCostTransport, trans, trans.LoadingCapacity() <> 0 and trans.Origin() = '闀挎槬澶栫搴�'
+ and trans.Destination() = '瀹㈡埛搴�'
+ and exists( productparents, Elements, e, ifexpr( trans.Product().FindString( '鍙戝姩鏈�', 0 ) >= 0, e.ID() = produtparent, e.ID() = trans.Product() ) ) );
if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
products.Add( forecast.Product_MP() );
row := table.GetRow( forecast.ProductID() );
traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() > 0 ){
enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= psdip.StartDate() and engine.EndDate() >= psdip.StartDate() );
+ transcost := selectobject( transcosts, Elements, trans, trans.StartDate() <= psdip.StartDate() and trans.EndDate() >= psdip.StartDate() );
if( not isnull( enginecost ) ){
periodtime := psdip.StartDate().StartOfMonth();
periodname := periodtime.Format( "M2/D2/Y" );
// info( '-------------------------', periodname, periodtime );
column := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
// info( '-------------------------', column.Name() );
- cost := ceil( [Number]psdip.Quantity() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
+ cost := ceil( ceil( [Number]psdip.Quantity() / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();
cell := selectobject( row, Cell, cell, cell.Column() = column );
cell.CCShorTransCost( cell.CCShorTransCost() + cost );
}
@@ -269,7 +273,7 @@
e.RowNr( i );
i := i + 1;
}
- info( '-------------------------------------end---------------------------------' );
+ info( '-------------------------------------end----------------------------------' );
//
showtable.Generate( search, products );
*]
diff --git a/_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl b/_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl
index 691a01c..8445a49 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl
@@ -8,13 +8,15 @@
{
TextBody:
[*
- // 鐢勫叞楦� Jun-24-2024 (created)
+ // 鐢勫叞楦� Jun-24-2024 (created)
cell := selectobject( this, Cell, cell, cell.Column() = column );
- quantity := [Number]fpcell.Value() - cell.CCRentQuantity();
+ quantity := fpcell.Quantity() - cell.CCRentQty();
//鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环锛屽叆搴撻噺绛変簬闀挎槬浜ч噺
cost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
+ othercost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.OtherPrice();
value := cell.DLRentInCost() + cost;
cell.DLRentInCost( value );
+ cell.DLRentOtherCost( cell.DLRentOtherCost() + othercost );
*]
}
diff --git a/_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl b/_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl
index 50f77e6..2c253f0 100644
--- a/_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl
+++ b/_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl
@@ -10,7 +10,7 @@
[*
// 鐢勫叞楦� Jun-24-2024 (created)
cell := selectobject( this, Cell, cell, cell.Column() = column );
- quantity := [Number]fscell.Value() - cell.CCRentQuantity();
+ quantity := [Number]fscell.Value() - cell.CCRentQty();
//鍏ュ簱閲�/鍖呰瀹归噺*鍏ュ簱鍗曚环锛屽叆搴撻噺绛変簬闀挎槬浜ч噺
cost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_ShowChangeLossNumber.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_ShowChangeLossNumber.qbl
new file mode 100644
index 0000000..d4aa014
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSetting/Attribute_ShowChangeLossNumber.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShowChangeLossNumber
+{
+ #keys: '3[415136.0.1184074662][415136.0.1184074661][415136.0.1184074663]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_ChangeLossSetting/Function_CalcShowChangeLossNumber.qbl b/_Main/BL/Type_ChangeLossSetting/Function_CalcShowChangeLossNumber.qbl
new file mode 100644
index 0000000..4cf78cc
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSetting/Function_CalcShowChangeLossNumber.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcShowChangeLossNumber
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Oct-10-2024 (created)
+
+ value := [String]this.ChangeLossNumber();
+
+ this.ShowChangeLossNumber( value );
+ *]
+}
diff --git a/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl b/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
index ebd5300..892d832 100644
--- a/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
+++ b/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
@@ -29,13 +29,15 @@
feedback := Translations::MP_LibCal_Event_ValidDatePeriod();
}
if( exists( owner, ChangeLossSetting, cls, cls <> old and cls.Unit() = unit and not ( cls.StartDate() > enddate or cls.EndDate() < startdate )
- and ( ( cls.ProductFirst() = product1 and cls.ProductSecond() = product2 )
- or ( cls.ProductFirst() = product2 and cls.ProductSecond() = product1 ) ) ) ){
+ and cls.ProductFirst() = product1 and cls.ProductSecond() = product2 ) ){
+ // and ( ( cls.ProductFirst() = product1 and cls.ProductSecond() = product2 )
+ // or ( cls.ProductFirst() = product2 and cls.ProductSecond() = product1 ) ) ) ){
feedback := Translations::MP_ChangeLossSetting_Exist()
}
if( exists( owner, ChangeLossSetting, cls, cls <> old and cls.Unit() = unit and not ( cls.StartDate() > enddate or cls.EndDate() < startdate )
- and ( ( cls.ProductFirst() = product1 and cls.ProductSecond() = product2 )
- or ( cls.ProductFirst() = product2 and cls.ProductSecond() = product1 ) ) ) ){
+ and cls.ProductFirst() = product1 and cls.ProductSecond() = product2 ) ){
+ // and ( ( cls.ProductFirst() = product1 and cls.ProductSecond() = product2 )
+ // or ( cls.ProductFirst() = product2 and cls.ProductSecond() = product1 ) ) ) ){
feedback := Translations::MP_ChangeLossSetting_DateCoincide()
}
diff --git a/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl b/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl
index cd19c53..5d5baa7 100644
--- a/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl
+++ b/_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl
@@ -23,13 +23,13 @@
models := selectuniquevalues( table, Column.Cell.Demand, demand, demand.Model() );
cellnr := 5 + models.Size();
//鍚堣琛�
- sumrowproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '鐢熶骇', rows.Size() * cellnr, true );
+ sumrowproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '鎬讳骇閲�', rows.Size() * cellnr, true );
sumrowdlproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '澶ц繛浜ч噺', sumrowproduction.RowNr() + 1, false );
sumrowccproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '闀挎槬浜ч噺', sumrowproduction.RowNr() + 2, false );
- sumrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '闇�姹�', sumrowproduction.RowNr() + 3, false );
+ sumrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '鎬婚渶姹�', sumrowproduction.RowNr() + 3, false );
rowno := sumrowproduction.RowNr() + 4;
traverse( models, Elements, model ){
- EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', model, rowno, false );
+ EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', model.Concat( '闇�姹�' ), rowno, false );
rowno := rowno + 1;
}
sumrowinventory := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '搴撳瓨', rowno, false );
@@ -38,10 +38,10 @@
rownr := 0;
traverse( rows, Elements, row, productids.Find( row.Name() ) >= 0 ){
- showrowproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '鐢熶骇', rownr, true );;
+ showrowproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '鎬荤敓浜�', rownr, true );;
showrowdlproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '澶ц繛浜ч噺', rownr + 1, false );
showrowccproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '闀挎槬浜ч噺', rownr + 2, false );
- showrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '闇�姹�', rownr + 3, false );
+ showrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '鎬婚渶姹�', rownr + 3, false );
rownr := rownr + 4;
modelsnr := rownr + 3;
models := construct( Strings );
@@ -50,7 +50,7 @@
traverse( uniquemodels, Elements, e ){
if( rownr < modelsnr ){
- EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), e, rownr, false );
+ EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), e.Concat( '闇�姹�' ), rownr, false );
models.Add( e );
rownr := rownr + 1;
}
@@ -114,8 +114,8 @@
sumdemand.Value( [String]( [Real]sumdemand.Value() + cell.DemandQuantity() ) );
traverse( cell, Demand, demand, exists( models, Elements, model, model = demand.Model() ) ){
- demandrow := selectobject( this, Row, r, r.Name() = row.Name() and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model() ) );
- sumdemandrow := selectobject( this, Row, r, r.Name() = 'SUM' and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model() ) );
+ demandrow := selectobject( this, Row, r, r.Name() = row.Name() and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model().Concat( '闇�姹�' ) ) );
+ sumdemandrow := selectobject( this, Row, r, r.Name() = 'SUM' and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model().Concat( '闇�姹�' ) ) );
if( not isnull( demandrow ) ){
demandcell := column.CellValue( relnew, Value := [String]demand.Quantity() );
diff --git a/_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl b/_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl
index f579568..fa38c09 100644
--- a/_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl
@@ -29,10 +29,9 @@
}
if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){
for( start := startdate; start <= enddate; start := start.StartOfNextWeek() ){
- periodname := start.Format( "M2/D2/Y" );
weekend := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date();
- this.Column( relnew, Name := periodname, StartDate := start, EndDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
+ this.Column( relnew, Name := weekend.Format( "M2/D2/Y" ), StartDate := start, EndDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
}
}
}
diff --git a/_Main/BL/Type_EnginePipelineReport/Method_GenerateNew.qbl b/_Main/BL/Type_EnginePipelineReport/Method_GenerateNew.qbl
new file mode 100644
index 0000000..43b285e
--- /dev/null
+++ b/_Main/BL/Type_EnginePipelineReport/Method_GenerateNew.qbl
@@ -0,0 +1,180 @@
+Quintiq file version 2.0
+#parent: #root
+Method GenerateNew (
+ EnginePipelineSearch search,
+ Product_MPs products
+)
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Jun-25-2024 (created)
+ table := selectobject( this, Source.Report, report, not report.IsShow() );
+ //娓呯┖涔嬪墠瀛樺偍鐨勬樉绀烘暟鎹�
+ this.Clear( search.TimeUnit(), search.StartDate(), search.EndDate() );
+ Transaction::Transaction().Propagate( attribute( EnginePipelineColumn, Index ) );
+ Transaction::Transaction().Propagate( attribute( EnginePipelineCell, ProductionQuantity ) );
+ Transaction::Transaction().Propagate( attribute( EnginePipelineCell, DemandQuantity ) );
+ //杩囨护鍚庣殑浜у搧id
+ productids := selectuniquevalues( products, Elements, product, true, product.ID() );
+ rows := selectsortedset( table, Row, row, row.RowNr() );
+ //鏄剧ず鍒�
+ productcolumn := selectobject( this, Column, column, column.Index() = 0 );
+ attricolumn := selectobject( this, Column, column, column.Index() = 1 );
+ models := selectuniquevalues( table, Column.Cell.Demand, demand, demand.Model() );
+ cellnr := 5 + models.Size();
+ //鍚堣琛�
+ sumrowproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '鎬讳骇閲�', rows.Size() * cellnr, true );
+ sumrowdlproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '澶ц繛浜ч噺', sumrowproduction.RowNr() + 1, false );
+ sumrowccproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '闀挎槬浜ч噺', sumrowproduction.RowNr() + 2, false );
+ sumrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '鎬婚渶姹�', sumrowproduction.RowNr() + 3, false );
+ rowno := sumrowproduction.RowNr() + 4;
+ traverse( models, Elements, model ){
+ EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', model.Concat( '闇�姹�' ), rowno, false );
+ rowno := rowno + 1;
+ }
+ sumrowinventory := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '搴撳瓨', rowno, false );
+
+ //琛岃鏁�
+ rownr := 0;
+ traverse( rows, Elements, row, productids.Find( row.Name() ) >= 0 ){
+
+ //浜у搧鏄剧ず琛�
+ showrowproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '鎬荤敓浜�', rownr, true );;
+ showrowdlproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '澶ц繛浜ч噺', rownr + 1, false );
+ showrowccproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '闀挎槬浜ч噺', rownr + 2, false );
+ showrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '鎬婚渶姹�', rownr + 3, false );
+ rownr := rownr + 4;
+ modelsnr := rownr + 3;
+ models := construct( Strings );
+ uniquemodels := selectuniquevalues( row, Cell.Demand, demand, true, demand.Model() );
+ //闇�姹傛樉绀�
+ traverse( uniquemodels, Elements, e ){
+
+ if( rownr < modelsnr ){
+ EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), e.Concat( '闇�姹�' ), rownr, false );
+ models.Add( e );
+ rownr := rownr + 1;
+ }
+ }
+ //绌洪渶姹傝ˉ鍏�
+ for( rownr := rownr; rownr < modelsnr; rownr ++ ){
+
+ EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '', rownr, false );
+ }
+ showrowinventory := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '搴撳瓨', rownr, false );
+
+ // traverse( this, Column, column ){
+ // //鏌ヨ鏃堕棿绫诲瀷涓篸ay鐨勫崟鍏冩牸
+ // daycells := selectset( row, Cell, daycell, daycell.Column().TimeUnit() = Translations::MP_GlobalParameters_Day() and
+ // cell.Column().StartDate() >= column.StartDate() and
+ // cell.Column().StartDate() <= column.EndaDate() );
+ traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
+
+ column := selectobject( this, Column, column, column.Name() = cell.Column().Name() and column.TimeUnit() = search.TimeUnit() );
+
+ if( not isnull( column ) ){
+
+ //鐢熶骇
+ production := column.CellValue( relnew, Value := [String]cell.ProductionQuantity() );
+ showrowproduction.CellValue( relinsert, production );
+ sumproduction := selectobject( column, CellValue, c, c.Row() = sumrowproduction );
+
+ if( isnull( sumproduction ) ){
+ sumproduction := column.CellValue( relnew, Value := [String]0 );
+ sumrowproduction.CellValue( relinsert, sumproduction );
+ }
+ sumproduction.Value( [String]( [Real]sumproduction.Value() + cell.ProductionQuantity() ) );
+
+ //澶ц繛浜ч噺
+ dlproductionquantity := guard( cell.Production().DLProduction(), 0 );
+ dlproduction := column.CellValue( relnew, Value := [String]dlproductionquantity );
+ showrowdlproduction.CellValue( relinsert, dlproduction );
+ sumdlproduction := selectobject( column, CellValue, c, c.Row() = sumrowdlproduction );
+
+ if( isnull( sumdlproduction ) ){
+ sumdlproduction := column.CellValue( relnew, Value := [String]0 );
+ sumrowdlproduction.CellValue( relinsert, sumdlproduction );
+ }
+ sumdlproduction.Value( [String]( [Real]sumdlproduction.Value() + dlproductionquantity ) );
+
+ //闀挎槬浜ч噺
+ ccproductionquantity := guard( cell.Production().CCProduction(), 0 );
+ ccproduction := column.CellValue( relnew, Value := [String]ccproductionquantity );
+ showrowccproduction.CellValue( relinsert, ccproduction );
+ sumccproduction := selectobject( column, CellValue, c, c.Row() = sumrowccproduction );
+
+ if( isnull( sumccproduction ) ){
+ sumccproduction := column.CellValue( relnew, Value := [String]0 );
+ sumrowccproduction.CellValue( relinsert, sumccproduction );
+ }
+ sumccproduction.Value( [String]( [Real]sumccproduction.Value() + ccproductionquantity ) );
+
+ //闇�姹�
+ totaldemand := column.CellValue( relnew, Value := [String]cell.DemandQuantity() );
+ showrowdemand.CellValue( relinsert, totaldemand );
+ sumdemand := selectobject( column, CellValue, c, c.Row() = sumrowdemand );
+ if( isnull( sumdemand ) ){
+ sumdemand := column.CellValue( relnew, Value := [String]0 );
+ sumrowdemand.CellValue( relinsert, sumdemand );
+ }
+ sumdemand.Value( [String]( [Real]sumdemand.Value() + cell.DemandQuantity() ) );
+
+ traverse( cell, Demand, demand, exists( models, Elements, model, model = demand.Model() ) ){
+ demandrow := selectobject( this, Row, r, r.Name() = row.Name() and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model().Concat( '闇�姹�' ) ) );
+ sumdemandrow := selectobject( this, Row, r, r.Name() = 'SUM' and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model().Concat( '闇�姹�' ) ) );
+
+ if( not isnull( demandrow ) ){
+ demandcell := column.CellValue( relnew, Value := [String]demand.Quantity() );
+ demandrow.CellValue( relinsert, demandcell );
+ }
+ if( not isnull( sumdemandrow ) ){
+ sumdemandcell := selectobject( column, CellValue, c, c.Row() = sumdemandrow );
+ if( isnull( sumdemandcell ) ){
+ sumdemandcell := column.CellValue( relnew, Value := [String]0 );
+ sumdemandrow.CellValue( relinsert, sumdemandcell );
+ }
+ sumdemandcell.Value( [String]( [Real]sumdemandcell.Value() + demand.Quantity() ) );
+ }
+ }
+
+ for( demandr := showrowdemand.RowNr() + 1; demandr < showrowinventory.RowNr(); demandr := demandr + 1 ){
+ demandrow := selectobject( this, Row, r, r.RowNr() = demandr and r.Name() = row.Name() );
+ if( not isnull( demandrow ) and not exists( demandrow, CellValue, cv, cv.Column() = column ) ){
+ demandcell := column.CellValue( relnew, Value := '' );
+ demandrow.CellValue( relinsert, demandcell );
+ }
+ }
+
+
+ //搴撳瓨
+ inventory := column.CellValue( relnew, Value := [String]cell.InventoryQuantity() );
+ showrowinventory.CellValue( relinsert, inventory );
+ suminventory := selectobject( column, CellValue, c, c.Row() = sumrowinventory );
+ if( isnull( suminventory ) ){
+ suminventory := column.CellValue( relnew, Value := [String]0 );
+ sumrowinventory.CellValue( relinsert, suminventory );
+ }
+ suminventory.Value( [String]( [Real]suminventory.Value() + cell.InventoryQuantity() ) );
+
+ }
+ }
+ }
+ traverse( this, Column, column ){
+ for( demandr := sumrowdemand.RowNr() + 1; demandr < sumrowinventory.RowNr(); demandr := demandr + 1 ){
+ demandrow := selectobject( this, Row, r, r.RowNr() = demandr and r.Name() = 'SUM' );
+ // info( '------------------14----------------' );
+ if( not isnull( demandrow ) and not exists( demandrow, CellValue, cv, cv.Column() = column ) ){
+ demandcell := column.CellValue( relnew, Value := '' );
+ demandrow.CellValue( relinsert, demandcell );
+ }
+ }
+ }
+
+ rows := selectsortedset( this, Row, row, row.Name(), row.RowNr() );
+ i := 0;
+ traverse( rows, Elements, e ){
+ e.RowNr( i );
+ i := i + 1;
+ }
+ *]
+}
diff --git a/_Main/BL/Type_EnginePipelineRow/Attribute_ShowName.qbl b/_Main/BL/Type_EnginePipelineRow/Attribute_ShowName.qbl
new file mode 100644
index 0000000..bfdefe3
--- /dev/null
+++ b/_Main/BL/Type_EnginePipelineRow/Attribute_ShowName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShowName
+{
+ #keys: '3[415136.0.1185710016][415136.0.1185710015][415136.0.1185710017]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_EnginePipelineRow/StaticMethod_CraeteCellValueForRow.qbl b/_Main/BL/Type_EnginePipelineRow/StaticMethod_CraeteCellValueForRow.qbl
index bef755c..98c8ffe 100644
--- a/_Main/BL/Type_EnginePipelineRow/StaticMethod_CraeteCellValueForRow.qbl
+++ b/_Main/BL/Type_EnginePipelineRow/StaticMethod_CraeteCellValueForRow.qbl
@@ -21,6 +21,10 @@
acell := attricolumn.CellValue( relnew, Value := attriname );
row.CellValue( relinsert, pcell );
row.CellValue( relinsert, acell );
+ traverse( table, Column, column, column.Index() > 1 ){
+ cell := column.CellValue( relnew, Value := '0' );
+ row.CellValue( relinsert, cell );
+ }
return row;
*]
}
diff --git a/_Main/BL/Type_FinancialProductionImportData/Function_CalcQuantity.qbl b/_Main/BL/Type_FinancialProductionImportData/Function_CalcQuantity.qbl
index eb3e7a1..9dc13b7 100644
--- a/_Main/BL/Type_FinancialProductionImportData/Function_CalcQuantity.qbl
+++ b/_Main/BL/Type_FinancialProductionImportData/Function_CalcQuantity.qbl
@@ -6,7 +6,7 @@
[*
// 鐢勫叞楦� Aug-8-2024 (created)
- value := guard( [Number]this.Cell().Value(), 0 );
+ value := guard( [Number]this.Cell().Quantity(), 0 );
this.Quantity( value );
*]
diff --git "a/_Main/BL/Type_FinancialProductionRow/Method_Initialize\043110.qbl" "b/_Main/BL/Type_FinancialProductionRow/Method_Initialize\043110.qbl"
index bdd6e85..5662263 100644
--- "a/_Main/BL/Type_FinancialProductionRow/Method_Initialize\043110.qbl"
+++ "b/_Main/BL/Type_FinancialProductionRow/Method_Initialize\043110.qbl"
@@ -13,7 +13,7 @@
cell := column.FinancialProductionCell( relnew, Quantity := 0 );
this.FinancialProductionCell( relinsert, cell );
- if( unit <> FinancialProductionReport::GetDefaultAllUnit() ){
+ if( unit <> FinancialProductionReport::GetDefaultAllUnit() and not column.IsDay()){
importdata := product.MacroPlan().FPImportData( relnew, Generation := product.Generation()
, MqbMlb := product.MQBMLB()
, Power := product.Power()
diff --git a/_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl b/_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl
index 658b23c..a6d4f72 100644
--- a/_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl
+++ b/_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl
@@ -10,10 +10,10 @@
TextBody:
[*
// 鐢勫叞楦� Jun-24-2024 (created)
- cell := column.FinancialSalesCell( relnew, Value := '' );
+ cell := column.FinancialSalesCell( relnew, Value := '0' );
this.FinancialSalesCell( relinsert, cell );
- if( unit <> FinancialProductionReport::GetDefaultAllUnit() ){
+ if( unit <> FinancialProductionReport::GetDefaultAllUnit() and not column.IsDay() ){
importdata := product.MacroPlan().FSImportData( relnew, Generation := product.Generation()
, MqbMlb := product.MQBMLB()
, Power := product.Power()
diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl
index 4afd265..5d0c8a8 100644
--- a/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl
+++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl
@@ -9,6 +9,7 @@
[*
// 鐢勫叞楦� Jun-24-2024 (created)
owner.FinancialSalesSource( relflush );
+ owner.FSImportData( relflush );
products := construct( Product_MPs );
allunit := FinancialSalesReport::GetDefaultAllUnit();
ccunit := FinancialSalesReport::GetDefaultCCUnit();
diff --git a/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl b/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl
index 3af1676..257071d 100644
--- a/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl
@@ -28,16 +28,17 @@
this.InventorySummaryColumn( relnew, Name := periodname, StartDate := periodtime, EndaDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
}
}else if( timeunit = Translations::MP_GlobalParameters_Week() ){
+ weekstartstr := ' KW';
for( start := starttime; start <= endtime; start := start.StartOfNextWeek() ){
weekend := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date();
- this.InventorySummaryColumn( relnew, Name := weekend.Format( "M2/D2/Y" ), StartDate := start.Date(), EndaDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
+ this.InventorySummaryColumn( relnew, Name := weekend.Format( "M2/D2/Y" ).Concat( weekstartstr.Concat( weekend.Week().Format( 'N(LPad0(2))' ) ) ), StartDate := start.Date(), EndaDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
}
}else if( timeunit = Translations::MP_GlobalParameters_Month() ){
for( start := starttime; start <= endtime; start := start.StartOfNextMonth() ){
monthend := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
- this.InventorySummaryColumn( relnew, Name := monthend.Format( "M2/D2/Y" ), StartDate := start.Date(), EndaDate := monthend, TimeUnit := Translations::MP_GlobalParameters_Month() );
+ this.InventorySummaryColumn( relnew, Name := monthend.Format( "M2/D2/Y" ).Concat( ' ' ).Concat( monthend.Format( "MM" ).Concat( '/').Concat( [String]monthend.Month() ).Concat( '鏈�' ) ), StartDate := start.Date(), EndaDate := monthend, TimeUnit := Translations::MP_GlobalParameters_Month() );
}
}
}
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
index a1b13f7..dd97f73 100644
--- a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
@@ -47,10 +47,10 @@
products.Add( pisp.Product_MP() );
period := pispip.Period_MP();
periodtime := period.Start().Date();
- periodname := periodtime.Format( "M2/D2/Y" );
+ // periodname := periodtime.Format( "M2/D2/Y" );
//澶╋紝閫夋嫨鏃ラ绮掑害鏃讹紝鏈熸湯搴撳瓨锛屾渶灏忓簱瀛橈紝鏈�澶у簱瀛樺拰骞冲潎搴撳瓨鐨勬暟鍊间繚鎸佷竴鑷�
- daycolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.StartDate() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Day() );
+ daycolumn := selectobject( table, InventorySummaryColumn, column, column.StartDate() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Day() );
quantity := ifexpr( pispip.Period_MP().IsHistorical(), [Number]pispip.ActualInventoryLevelEnd(), [Number]pispip.PlannedInventoryLevelEnd() );
factoryrow.SetCellValue( daycolumn, quantity );
allrow.SetCellValue( daycolumn, quantity );
diff --git a/_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl b/_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl
index a421f47..2bac9e3 100644
--- a/_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl
@@ -30,10 +30,9 @@
}
if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){
for( start := startdate; start <= enddate; start := start.StartOfNextWeek() ){
- periodname := start.Format( "M2/D2/Y" );
weekend := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date();
- this.Column( relnew, Name := periodname, StartDate := start, EndDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
+ this.Column( relnew, Name := weekend.Format( "M2/D2/Y" ), StartDate := start, EndDate := weekend, TimeUnit := Translations::MP_GlobalParameters_Week() );
}
}
}
diff --git a/_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp b/_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp
index d2bf8d1..9fbd9c5 100644
--- a/_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp
+++ b/_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp
@@ -42,6 +42,11 @@
AttributeKey: '[415136.0.1160164787]'
Synonym: '澶ц繛澶栫搴撳叆搴撹垂鐢�'
}
+ AttributeRepresentation DLRentOtherCost
+ {
+ AttributeKey: '[415136.0.1184074681]'
+ Synonym: '澶ц繛澶栫搴撳叾浠栬垂鐢�'
+ }
AttributeRepresentation DLRentOutOfCost
{
AttributeKey: '[415136.0.1160164795]'
diff --git a/_Main/Sys/Repr/Global/MachiningPipelineCell.qrp b/_Main/Sys/Repr/Global/MachiningPipelineCell.qrp
index 0e40a27..77a9570 100644
--- a/_Main/Sys/Repr/Global/MachiningPipelineCell.qrp
+++ b/_Main/Sys/Repr/Global/MachiningPipelineCell.qrp
@@ -15,12 +15,12 @@
AttributeRepresentation CCProductionQty
{
AttributeKey: '[415136.0.886711530]'
- Synonym: 'CC鐢熶骇璁″垝'
+ Synonym: 'CC鏈哄姞璁″垝'
}
AttributeRepresentation CCTransferQty
{
AttributeKey: '[415136.0.894481175]'
- Synonym: 'CC璋冩嫧璁″垝'
+ Synonym: 'CC to DL'
}
AttributeRepresentation DLAssemblyPlanQty
{
@@ -35,12 +35,12 @@
AttributeRepresentation DLProductionQty
{
AttributeKey: '[415136.0.894481151]'
- Synonym: 'DL鐢熶骇璁″垝'
+ Synonym: 'DL鏈哄姞璁″垝'
}
AttributeRepresentation DLTransferQty
{
AttributeKey: '[415136.0.894481185]'
- Synonym: 'DL璋冩嫧璁″垝'
+ Synonym: 'DL to CC'
}
AttributeRepresentation TotalInventoryQty
{
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
index 19e17fb..e09da9c 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting\043568.def"
@@ -28,7 +28,7 @@
]
Properties:
[
- Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.ID","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductFirst.ID","title":"Product1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductFirst.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSecond.ID","title":"Product2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductSecond.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ChangeLossNumber","title":"ChangeLossNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ChangeLossNumber"}}]'
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.ID","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductFirst.ID","title":"Product1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductFirst.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSecond.ID","title":"Product2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductSecond.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShowChangeLossNumber","title":"ChangeLossNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShowChangeLossNumber"}}]'
ContextMenu: 'listContextMenuChangeLossSetting'
Taborder: 2
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def
index 8bfb505..bb6c8c4 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def
@@ -26,7 +26,7 @@
]
Properties:
[
- Attributes: 'CCRentInCost;CCRentOutOfCost;CCLongTransCost;CCShorTransCost;CCRentStorCost;DLRentInCost;DLRentOutOfCost;WerkToDLRentTransCost;DLRentStorCost;EstimateTotalCost;Coefficient;AllCost'
+ Attributes: 'CCRentInCost;CCRentOutOfCost;CCLongTransCost;CCShorTransCost;CCRentStorCost;DLRentInCost;DLRentOutOfCost;WerkToDLRentTransCost;DLRentStorCost;DLRentOtherCost;EstimateTotalCost;Coefficient;AllCost'
Column: 'Column'
Row: 'Row'
Taborder: 0
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_MatrixEditorTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_MatrixEditorTable.def
index b681d32..1b36875 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_MatrixEditorTable.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/Component_MatrixEditorTable.def
@@ -53,7 +53,7 @@
]
Properties:
[
- Legend: 'RowNr'
+ Legend: 'ShowName'
SortCriteria: 'RowNr'
Taborder: 1
]
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw b/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
index 3bafc0d..5a964f4 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/Change_loss_setting_view.vw
@@ -78,14 +78,14 @@
subtotals: ''
width: 150
}
- column_ChangeLossNumber
+ column_ShowChangeLossNumber
{
- columnId: 'ChangeLossNumber'
- dataPath: 'ChangeLossNumber'
- dataType: 'real'
+ columnId: 'ShowChangeLossNumber'
+ dataPath: 'ShowChangeLossNumber'
+ dataType: 'string'
index: 5
subtotals: ''
- width: 183
+ width: 150
}
}
}
--
Gitblit v1.9.3