Quintiq file version 2.0
#parent: PanelOperation/ButtonSalesImport
Response OnClick () id:Response_PanelOperation_ButtonSalesImport_OnClick
{
  #keys: '[415136.0.1193322030]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString             := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson                 := JSON::Parse( uploadJsonString );
          Archive::VerifyTheFileName( uploadJson );
                
          fileName                   := uploadJson.Get( "name" ).GetString();
          base64String               := uploadJson.Get( "data" ).GetString();
              
          webFileBinaryData          := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
          
          source                     := FinancialSalesSource::Upload( MacroPlan, webFileBinaryData, fileName );
          source.ReadStructure();
          //如果存在计划开始后的日期数据需要点击确认
          if( not source.IsExistFutureMonthData() or 
              ( source.IsExistFutureMonthData() and WebMessageBox::Question( this, Translations::MP_FinancialProductionReport_Question(), 'Yes|No' ) = 0 ) ){
             FinancialSalesSource::InitializeNew( MacroPlan );
             source.AfterImport();
             productids              := selectuniquevalues( DataHolderProduct.Data(), Elements, product, exists( dhGenerations.Data(), Elements, e, e.Generation() = product.Generation() )
                                                       and exists( dhMQBMLBs.Data(), Elements, e, e.MLBMQB() = product.MQBMLB() )
                                                       and exists( dhPowers.Data(), Elements, e, e.Power() = product.Power() ), product.ID() );
        
             table                   := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, table.IsShow() );
             table.Generate( dhSearch.Data(), dhFactorys.Data(), productids );
             DataHolderTable.Data( table );
      //       DataHolderTable.Data( FinancialSalesSource::InitiateSearch( MacroPlan ) );
          }
          
          WebMessageBox::Success( Translations::A_VWED_Success() );
          traverse( MacroPlan, FinancialSalesSource, psource, psource.IsImport() and psource <> source ){
            psource.Delete();
          }
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
