¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateCustomOrder ( |
| | | MacroPlan macroPlan, |
| | | FillingCapacityOrder fillingCapacityOrder, |
| | | Real quantity |
| | | ) as CustomerOrder |
| | | { |
| | | TextBody: |
| | | [* |
| | | targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = fillingCapacityOrder.ProductID() ); |
| | | targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = fillingCapacityOrder.StockingPointID() ); |
| | | |
| | | targetCustomerOrder := CustomerOrder::Create( targetProduct_MP, |
| | | targetStockingPoint_MP, |
| | | OS::GenerateGUIDAsString(), |
| | | fillingCapacityOrder.OrderDate(), |
| | | quantity, |
| | | 0.0, |
| | | "Normal", |
| | | fillingCapacityOrder.SalesSegmentName(), |
| | | fillingCapacityOrder.CurrencyID(), |
| | | fillingCapacityOrder.UnitOfMeasureName(), |
| | | false, |
| | | fillingCapacityOrder.Customer(), |
| | | fillingCapacityOrder.CustomerID(), |
| | | "", |
| | | "", |
| | | true, |
| | | true, |
| | | false |
| | | ); |
| | | |
| | | return targetCustomerOrder; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod OrderOffset ( |
| | | MacroPlan macroPlan |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | needOffsetFillingCapacityOrders := selectset( macroPlan, FillingCapacityOrder, tempFCO, tempFCO.State() = "æªå²å" or tempFCO.State() ="" ); |
| | | |
| | | traverse ( needOffsetFillingCapacityOrders, Elements, fco, fco.Quantity() > 0 ) { |
| | | originalCounterSignedOrder := select( macroPlan, SalesDemand.astype( CustomerOrder ), tempCO, tempCO.CustomerName() = fco.Customer() and |
| | | tempCO.ProductID() = fco.ProductID() and |
| | | tempCO.OrderTag() = "åç¾" |
| | | ); |
| | | if ( fco.OrderType() = "åç¾" ) { |
| | | if ( isnull( originalCounterSignedOrder ) ) { |
| | | customerOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, fco.Quantity() ); |
| | | customerOrder.OrderTag( "åç¾" ); |
| | | } else { |
| | | originalCounterSignedOrder.Quantity( originalCounterSignedOrder.Quantity() + fco.Quantity() ); |
| | | } |
| | | } else if ( fco.OrderType() = "ææ" ) { |
| | | originalAuthorizedOrder := select( macroPlan, SalesDemand.astype( CustomerOrder ), tempCO, tempCO.CustomerName() = fco.Customer() and |
| | | tempCO.ProductID() = fco.ProductID() and |
| | | tempCO.OrderTag() = "ææ" |
| | | ); |
| | | if ( isnull( originalCounterSignedOrder ) ) { |
| | | if ( isnull( originalAuthorizedOrder ) ) { |
| | | customOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, fco.Quantity() ); |
| | | customOrder.OrderTag( "ææ" ); |
| | | } else { |
| | | originalAuthorizedOrder.Quantity( originalAuthorizedOrder.Quantity() + fco.Quantity() ); |
| | | } |
| | | } else { |
| | | numberOfReverseSignatures := originalCounterSignedOrder.Quantity(); |
| | | newNumberOfAuthorizations := ifexpr( ( fco.Quantity() - numberOfReverseSignatures ) >= 0, fco.Quantity() - numberOfReverseSignatures, 0 ); |
| | | numberOfReverseSignatures := ifexpr( ( fco.Quantity() - numberOfReverseSignatures ) >= 0, 0, numberOfReverseSignatures - fco.Quantity() ); |
| | | |
| | | if ( numberOfReverseSignatures >= 0 ) { |
| | | originalCounterSignedOrder.Quantity( numberOfReverseSignatures ); |
| | | } else { |
| | | originalCounterSignedOrder.Delete(); |
| | | } |
| | | |
| | | if ( newNumberOfAuthorizations > 0 ) { |
| | | if ( isnull( originalAuthorizedOrder ) ) { |
| | | customerOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, newNumberOfAuthorizations ); |
| | | customerOrder.OrderTag( "ææ" ); |
| | | } else { |
| | | originalAuthorizedOrder.Quantity( originalAuthorizedOrder.Quantity() + newNumberOfAuthorizations ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | Global_MappingCustomOrder::CreateCustomOrder( globalOTDTable, macroPlan ); |
| | | |
| | | try { |
| | | Global_MappingCustomOrder::CreateCustomOrder( globalOTDTable, macroPlan ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | H_FunctionClass::SM_OrderHedgingEx( MacroPlan, ApplicationMacroPlanner.GetUserName() ); |
| | | //H_FunctionClass::SM_OrderHedgingEx( MacroPlan, ApplicationMacroPlanner.GetUserName() ); |
| | | |
| | | FillingCapacityOrder::OrderOffset( MacroPlan ); |
| | | |
| | | WebMessageBox::Success( "å²åæåï¼ï¼ï¼", true ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |