lazhen
2024-09-03 94861b664bc8ed851c047a013d3be239ea0c46dc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Quintiq file version 2.0
#parent: #root
StaticMethod Import (
  MacroPlan macroplan,
  BinaryValue binaryvalue
)
{
  TextBody:
  [*
    // 甄兰鸽 Aug-22-2024 (created)
    
    macroplan.ValidateBroker( typeof( MP_ImportChangeLossSettingsBroker ).ShortName(), macroplan.MP_ImportChangeLossSettingsBroker().Source(), binaryvalue );
    progress( 'Importing lanes', DateTime::ActualTime() );
    macroplan.MP_ImportChangeLossSettingsBroker().ExecuteFromXLS( binaryvalue.AsBinaryData(), true );
    
    try{
      ChangeLossSettingExcel::CheckImport( macroplan );
    }onerror{
      //校验失败后删除
      macroplan.ChangeLossSettingExcel( relflush );
      error( e.GeneralInformation() );
    }
    //遍历处理导入的数据
    traverse( macroplan, ChangeLossSettingExcel, excel ){
      cls               := selectobject(  macroplan, ChangeLossSetting, cls, cls.ProductFirst().ID() = excel.Product1()
                                          and cls.ProductSecond().ID() = excel.Product2()
                                          and cls.Unit().ID() = excel.Unit() );
      if( isnull( cls ) ){
        cls             := macroplan.ChangeLossSetting( relnew, ChangeLossNr := [Number]excel.ChangeLossNumber() );
        product1        := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product1() );
        product2        := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product2() );
        unit            := selectobject( macroplan, Unit, unit, unit.ID() = excel.Unit() );
        cls.ProductFirst( relset, product1 );
        cls.ProductSecond( relset, product2 );
        cls.Unit( relset, unit );
      }else {
        cls.ChangeLossNr( [Number]excel.ChangeLossNumber() );
      }
      excel.Delete();
    }
  *]
}