Advertisement
Guest User

Untitled

a guest
Aug 29th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XPP 23.40 KB | None | 0 0
  1. class DCExportSMMOpportunityToExcel
  2. {
  3.     smmOpportunityTable     smmOpportunityTable;
  4.  
  5.    
  6.  
  7.     public static void main(Args _args)
  8.     {
  9.         DCExportSMMOpportunityToExcel esote = new DCExportSMMOpportunityToExcel();
  10.  
  11.         if(_args.record().TableId == tableNum(smmOpportunityTable))
  12.         {
  13.             esote.parmSmmOpportunityTable(_args.record());
  14.         }
  15.    
  16.         esote.run();
  17.     }
  18.  
  19.     public str real2str(real r)
  20.     {
  21.         return Num2Str(r,0,0,2,0);
  22.     }
  23.  
  24.     public str real2str_mm(real r)
  25.     {
  26.         return Num2Str(r,0,2,DecimalSeparator::Dot,0);
  27.     }
  28.  
  29.     public str priceReal2str(real r)
  30.     {
  31.         return Num2Str(r,10,2,1,0);
  32.     }
  33.  
  34.     public void insertDuplicateRow(DocumentFormat.OpenXml.Packaging.SpreadsheetDocument    Excel,
  35.                                    DocumentFormat.OpenXml.Spreadsheet.Worksheet            worksheet,
  36.                                    int headerLines,
  37.                                    int i,
  38.         container data
  39.        )
  40.     {
  41.         DCUtils::setCellValueNew(Excel,
  42.                         DCUtils::getCell(worksheet,strFmt("A%1",headerLines + i)),
  43.                         conPeek(data,1));
  44.         DCUtils::setCellValueNew(Excel,
  45.                         DCUtils::getCell(worksheet,strFmt("B%1",headerLines + i)),
  46.                         conPeek(data,2));
  47.         DCUtils::setCellValueNew(Excel,
  48.                         DCUtils::getCell(worksheet,strFmt("C%1",headerLines + i)),
  49.                         conPeek(data,3));
  50.         DCUtils::setCellValueNew(Excel,
  51.                         DCUtils::getCell(worksheet,strFmt("E%1",headerLines + i)),
  52.                         conPeek(data,4));
  53.         DCUtils::setCellValueNew(Excel,
  54.                         DCUtils::getCell(worksheet,strFmt("F%1",headerLines + i)),
  55.                         conPeek(data,5));
  56.         DCUtils::setCellValueNew(Excel,
  57.                         DCUtils::getCell(worksheet,strFmt("G%1",headerLines + i)),
  58.                         conPeek(data,6));
  59.         DCUtils::setCellValueNew(Excel,
  60.                         DCUtils::getCell(worksheet,strFmt("H%1",headerLines + i)),
  61.                         conPeek(data,7));
  62.         DCUtils::setCellValueNew(Excel,
  63.                         DCUtils::getCell(worksheet,strFmt("I%1",headerLines + i)),
  64.                         conPeek(data,8));
  65.         DCUtils::setCellValueNew(Excel,
  66.                         DCUtils::getCell(worksheet,strFmt("J%1",headerLines + i)),
  67.                         conPeek(data,9));
  68.         DCUtils::setCellValueNew(Excel,
  69.                         DCUtils::getCell(worksheet,strFmt("K%1",headerLines + i)),
  70.                         conPeek(data,10));
  71.         DCUtils::setCellValueNew(Excel,
  72.                         DCUtils::getCell(worksheet,strFmt("L%1",headerLines + i)),
  73.                         conPeek(data,11));
  74.         DCUtils::setCellValueNew(Excel,
  75.                         DCUtils::getCell(worksheet,strFmt("M%1",headerLines + i)),
  76.                         conPeek(data,12));
  77.         DCUtils::setCellValueNew(Excel,
  78.                         DCUtils::getCell(worksheet,strFmt("N%1",headerLines + i)),
  79.                         conPeek(data,13));
  80.         DCUtils::setCellValueNew(Excel,
  81.                         DCUtils::getCell(worksheet,strFmt("O%1",headerLines + i)),
  82.                         conPeek(data,14));
  83.         DCUtils::setCellValueNew(Excel,
  84.                         DCUtils::getCell(worksheet,strFmt("P%1",headerLines + i)),
  85.                         conPeek(data,15));
  86.         DCUtils::setCellValueNew(Excel,
  87.                         DCUtils::getCell(worksheet,strFmt("Q%1",headerLines + i)),
  88.                         conPeek(data,16));
  89.         DCUtils::setCellValueNew(Excel,
  90.                         DCUtils::getCell(worksheet,strFmt("R%1",headerLines + i)),
  91.                         conPeek(data,17));
  92.         DCUtils::setCellValueNew(Excel,
  93.                         DCUtils::getCell(worksheet,strFmt("S%1",headerLines + i)),
  94.                         conPeek(data,18));
  95.         DCUtils::setCellValueNew(Excel,
  96.                         DCUtils::getCell(worksheet,strFmt("T%1",headerLines + i)),
  97.                         conPeek(data,19));
  98.     }
  99.  
  100.     public void run()
  101.     {
  102.         #File
  103.         #characters
  104.         #xppTexts
  105.  
  106.         DocumentFormat.OpenXml.Packaging.SpreadsheetDocument    Excel;
  107.         DocumentFormat.OpenXml.Packaging.WorkbookPart           workbook;
  108.         DocumentFormat.OpenXml.Spreadsheet.Worksheet            worksheet;
  109.         DocumentFormat.OpenXml.Spreadsheet.Sheet                sheet;
  110.         DocumentFormat.OpenXml.Packaging.WorksheetPart          worksheetPart;
  111.  
  112.         Filename            templateFilename;
  113.         FilenameSave        filenameSave;
  114.  
  115.         FileIOPermission    fileIoPermissionTemplate;
  116.         FileIOPermission    fileIoPermissionSave;
  117.         Set                 permissionSet;
  118.         System.IO.Stream    fileStream;
  119.         BinData             binData;
  120.  
  121.         DictTable           dictTable = new DictTable(tablenum(smmOpportunityTable));
  122.         Common              common = smmOpportunityTable;
  123.         ExecutePermission   perm = new ExecutePermission();
  124.         str                 cellAddress;
  125.         int                 i = 0;
  126.         int                 headerLines = 5;
  127.  
  128.         smmOpportunityTable smmOppTable = common;
  129.        
  130.         LemSalesOpportunityLineRef lemSalesOppLineRef;
  131.         InventTable                inventTable;
  132.         LemProductTable            lemProductTable;
  133.         InventDimCombination        inventDimCombination;
  134.         EcoResProductVariantColor   ecoResProductVariantColor;
  135.         EcoResProductVariantConfiguration ecoResProductVariantConfiguration;
  136.         EcoResProductVariantStyle       ecoResProductVariantStyle;
  137.         EcoResConfiguration             ecoResConfiguration;
  138.         EcoResStyle                     ecoResStyle;
  139.         InventModelGroupItem            inventModelGroupItem;
  140.         LemBasePriceImpregnation    lemBasePriceImpregnation;
  141.         CustTable                   custTable;
  142.         LemItemPacks                lemItemPacks;
  143.         CustVendExternalItem        custVendExternalItem;
  144.         InventDim   inventDim;
  145.         EcoResColor ecoResColor;
  146.         real        colorPrice, finalPrice;
  147.         UnitOfMeasureSymbol uom;
  148.         WHSPhysDimUOM physDim;
  149.         int         lemItemPacksNum = 1;
  150.         str         productOrItemId;
  151.         str         productName;
  152.         str         externalItemText;
  153.  
  154.         ;
  155.        
  156.         DocuTable docuTable = DocuTable::find("Fail", smmOpportunityTable.TableId);
  157.         if (docuTable)
  158.         {
  159.             templateFilename = docuTable.TemplateFilename;
  160.            
  161.             filenameSave = strRem(strFmt("%1_%2.xlsx",WinApiServer::getTempPath(),newGuid()),"{}");
  162.  
  163.             fileIoPermissionTemplate = new FileIOPermission(templateFilename, #io_read+#io_write);
  164.             fileIoPermissionSave = new FileIOPermission(filenameSave, #io_read+#io_write);
  165.             permissionSet = new Set(Types::Class);
  166.  
  167.             permissionSet.add(fileIoPermissionTemplate);
  168.             permissionSet.add(fileIoPermissionSave);
  169.             CodeAccessPermission::assertMultiple(permissionSet);
  170.  
  171.             WinAPIServer::copyFile(templateFilename, filenameSave);
  172.             Excel = DocumentFormat.OpenXml.Packaging.SpreadsheetDocument::Open(filenameSave,true);
  173.             workbook = Excel.WorkbookPart;
  174.            
  175.             worksheet = DCUtils::getFirstWorkSheet(workbook.Workbook);
  176.             if (worksheet == null)
  177.                 worksheet = DCUtils::getWorkbookFirstWorksheet(workbook);
  178.  
  179.             perm.assert();
  180.             select DefaultDeliveryDate, RecId, CustItemGroupId from custTable where custTable.Party == smmOppTable.Party;
  181.             DCUtils::setCellValueNew(Excel,
  182.                         DCUtils::getCell(worksheet,"B1"),
  183.                         DirPartyTable::getName(smmOppTable.Party));
  184.             DCUtils::setCellValueNew(Excel,
  185.                         DCUtils::getCell(worksheet,"B2"),
  186.                    
  187.                     date2Str(today(), 123, 2, DateSeparator::Dot, 2, DateSeparator::Dot, DateYear::Digits4));
  188.             if (custTable.RecId)
  189.             {
  190.                 DCUtils::setCellValueNew(Excel,
  191.                         DCUtils::getCell(worksheet,"B3"),
  192.                    
  193.                     int2Str(custTable.DefaultDeliveryDate));
  194.             }
  195.            
  196.             // LEMHLP-280 -->
  197.             //LemSalesOpportunityLineRef::correctOrderNums(smmOppTable.OpportunityId);
  198.             while select EcoResProduct, ProductId, Qty,EcoResDistinctProductVariant from lemSalesOppLineRef order by OrderNum where lemSalesOppLineRef.SalesOpportunityId == smmOppTable.OpportunityId
  199.             {
  200.  
  201.                 select firstonly * from lemProductTable where lemProductTable.ProductId == lemSalesOppLineRef.ProductId;
  202.                 if (lemProductTable.RecId)
  203.                 {
  204.  
  205.                     productName = lemProductTable.Name;
  206.                    
  207.                     DCUtils::setCellValueNew(Excel,
  208.                         DCUtils::getCell(worksheet,strFmt("A%1",headerLines + i)),
  209.                         productName);
  210.                     productOrItemId = "";
  211.                     if (lemProductTable.ItemId)
  212.                     {
  213.                         productOrItemId = lemProductTable.ItemId;
  214.                     }
  215.                     else
  216.                     {
  217.                         productOrItemId = lemProductTable.ProductId;
  218.                     }
  219.                     DCUtils::setCellValueNew(Excel,
  220.                         DCUtils::getCell(worksheet,strFmt("B%1",headerLines + i)),
  221.                         productOrItemId);
  222.  
  223.                     inventDimCombination = InventDimCombination::findByDistinctProductVariant(lemSalesOppLineRef.EcoResDistinctProductVariant);
  224.                     inventDim = InventDim::find(inventDimCombination.InventDimId);
  225.                     custVendExternalItem.clear();
  226.                     select firstonly * from custVendExternalItem
  227.                         where custVendExternalItem.ItemId      == lemProductTable.ItemId &&
  228.                               custVendExternalItem.InventDimId == inventDim.inventDimId  &&
  229.                               custVendExternalItem.CustVendRelation == custTable.CustItemGroupId;
  230.                     DCUtils::setCellValueNew(Excel,
  231.                         DCUtils::getCell(worksheet,strFmt("C%1",headerLines + i)),
  232.                         custVendExternalItem.ExternalItemTxt);
  233.  
  234.  
  235.                     DCUtils::setCellValueNew(Excel,
  236.                         DCUtils::getCell(worksheet,strFmt("E%1",headerLines + i)),
  237.                         lemProductTable.WallThickness);
  238.  
  239.                     DCUtils::setCellValueNew(Excel,
  240.                         DCUtils::getCell(worksheet,strFmt("F%1",headerLines + i)),
  241.                         int2str(lemProductTable.ProductHeight));
  242.  
  243.                     DCUtils::setCellValueNew(Excel,
  244.                         DCUtils::getCell(worksheet,strFmt("G%1",headerLines + i)),
  245.                         int2str(lemProductTable.ProductWidth));
  246.  
  247.                     DCUtils::setCellValueNew(Excel,
  248.                         DCUtils::getCell(worksheet,strFmt("H%1",headerLines + i)),
  249.                         int2str(lemProductTable.ProductDepth));
  250.  
  251.                     DCUtils::setCellValueNew(Excel,
  252.                         DCUtils::getCell(worksheet,strFmt("I%1",headerLines + i)),
  253.                         strFmt("%1",lemProductTable.InnerArea));
  254.                    
  255.                     DCUtils::setCellValueNew(Excel,
  256.                         DCUtils::getCell(worksheet,strFmt("J%1",headerLines + i)),
  257.                         strFmt("%1",lemProductTable.LemQtyInTm));
  258.  
  259.                     DCUtils::setCellValueNew(Excel,
  260.                         DCUtils::getCell(worksheet,strFmt("K%1",headerLines + i)),
  261.                         this.real2str(lemSalesOppLineRef.Qty));
  262.  
  263.                     DCUtils::setCellValueNew(Excel,
  264.                         DCUtils::getCell(worksheet,strFmt("L%1",headerLines + i)),
  265.                         int2str(lemProductTable.QtyOnTruck));
  266.  
  267.                     select * from ecoResProductVariantColor where ecoResProductVariantColor.DistinctProductVariant ==
  268.                                                                   lemSalesOppLineRef.EcoResDistinctProductVariant;
  269.                     select * from ecoResColor where ecoResColor.RecId == ecoResProductVariantColor.Color;
  270.                    
  271.                     select firstonly * from lemBasePriceImpregnation order by StartDate desc where lemBasePriceImpregnation.InventColorId == ecoResColor.Name
  272.                         && lemBasePriceImpregnation.StartDate <= DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone());
  273.                     uom = "";
  274.                     colorPrice = 0;
  275.                     finalPrice = 0;
  276.                     if (lemBasePriceImpregnation.RecId)
  277.                     {
  278.                         uom        = lemBasePriceImpregnation.UnitId;
  279.                         colorPrice = lemBasePriceImpregnation.Price;
  280.                         if (uom == "m2Act")
  281.                         {
  282.                             finalPrice = lemProductTable.Price + (lemProductTable.ColorArea * colorPrice);
  283.  
  284.                         }
  285.                  
  286.                         else if (uom == "m3Act")
  287.                         {
  288.                             finalPrice = lemProductTable.Price + (lemProductTable.LemQtyInTm * colorPrice);
  289.                         }
  290.                     }
  291.                     else
  292.                     {
  293.                         finalPrice = lemProductTable.Price;
  294.                     }
  295.                     //inventDimCombination = InventDimCombination::findByDistinctProductVariant(lemSalesOppLineRef.EcoResDistinctProductVariant);
  296.                     //inventDim = InventDim::find(inventDimCombination.InventDimId);
  297.                     select * from ecoResProductVariantConfiguration
  298.                         where ecoResProductVariantConfiguration.DistinctProductVariant == lemSalesOppLineRef.EcoResDistinctProductVariant;
  299.                     select firstonly * from ecoResConfiguration where ecoResConfiguration.RecId == ecoResProductVariantConfiguration.Configuration;
  300.  
  301.                     DCUtils::setCellValueNew(Excel,
  302.                         DCUtils::getCell(worksheet,strFmt("M%1",headerLines + i)),
  303.                         strFmt("%1",ecoResConfiguration.Name));
  304.  
  305.                     DCUtils::setCellValueNew(Excel,
  306.                         DCUtils::getCell(worksheet,strFmt("N%1",headerLines + i)),
  307.                         strFmt("%1",ecoResColor.Name));
  308.                    
  309.                     select * from ecoResProductVariantStyle
  310.                         where ecoResProductVariantStyle.DistinctProductVariant == lemSalesOppLineRef.EcoResDistinctProductVariant;
  311.                     select firstonly * from ecoResStyle where ecoResStyle.RecId == ecoResProductVariantStyle.Style;
  312.  
  313.                     DCUtils::setCellValueNew(Excel,
  314.                         DCUtils::getCell(worksheet,strFmt("O%1",headerLines + i)),
  315.                         strFmt("%1",ecoResStyle.Name));
  316.  
  317.                                        
  318.                     DCUtils::setCellValueNew(Excel,
  319.                         DCUtils::getCell(worksheet,strFmt("W%1",headerLines + i)),
  320.                         this.priceReal2str(finalPrice));
  321.                     DCUtils::setCellValueNew(Excel,
  322.                         DCUtils::getCell(worksheet,strFmt("V%1",headerLines + i)),
  323.                         lemProductTable.CustItemModelType);
  324.  
  325.                     LemItemPacks itemPacks;
  326.                     itemPacks.clear();
  327.                     select firstonly * from itemPacks
  328.                         where itemPacks.ProductId == lemProductTable.ProductId
  329.                            && itemPacks.Color     == ecoResColor.Name
  330.                            && itemPacks.Config    == ecoResConfiguration.Name;
  331.                     if (itemPacks.RecId)
  332.                     {
  333.                         DCUtils::setCellValueNew(Excel,
  334.                                 DCUtils::getCell(worksheet,strFmt("P%1",headerLines + i)),
  335.                                 this.real2str_mm(itemPacks.Weight));
  336.                         DCUtils::setCellValueNew(Excel,
  337.                                 DCUtils::getCell(worksheet,strFmt("Q%1",headerLines + i)),
  338.                                 this.real2str_mm(itemPacks.Width / 1000)); //LEMHLP-496 mm to m
  339.                         DCUtils::setCellValueNew(Excel,
  340.                                 DCUtils::getCell(worksheet,strFmt("R%1",headerLines + i)),
  341.                                 this.real2str_mm(itemPacks.Length / 1000)); //LEMHLP-496 mm to m
  342.                         DCUtils::setCellValueNew(Excel,
  343.                                 DCUtils::getCell(worksheet,strFmt("S%1",headerLines + i)),
  344.                                 this.real2str_mm(itemPacks.Height / 1000)); //LEMHLP-496 mm to m
  345.                         DCUtils::setCellValueNew(Excel,
  346.                                 DCUtils::getCell(worksheet,strFmt("T%1",headerLines + i)),
  347.                                 num2Str((itemPacks.Height / 1000) * (itemPacks.Width / 1000) * (itemPacks.Length / 1000),0,2,DecimalSeparator::Dot,0));
  348.  
  349.                         LemItemPacks itemPackDuplicates;
  350.  
  351.                         while select * from itemPackDuplicates
  352.                                 where itemPackDuplicates.ProductId == itemPacks.ProductId &&
  353.                                       itemPackDuplicates.Color     == itemPacks.Color &&
  354.                                       itemPackDuplicates.Config    == itemPacks.Config
  355.                         {
  356.                             if (itemPackDuplicates.RecId != itemPacks.RecId)
  357.                             {
  358.                                 i++;
  359.                                 container data = [productName, productOrItemId,custVendExternalItem.ExternalItemTxt, lemProductTable.WallThickness,
  360.                                      int2str(lemProductTable.ProductHeight), int2str(lemProductTable.ProductWidth), int2str(lemProductTable.ProductDepth),
  361.                                      lemProductTable.InnerArea, lemProductTable.LemQtyInTm, this.real2str(lemSalesOppLineRef.Qty),
  362.                                      int2str(lemProductTable.QtyOnTruck), strFmt("%1",ecoResConfiguration.Name), strFmt("%1",ecoResColor.Name), strFmt("%1",ecoResStyle.Name),
  363.                                     this.real2str_mm(itemPackDuplicates.Weight),this.real2str_mm(itemPackDuplicates.Width / 1000),this.real2str_mm(itemPackDuplicates.Length / 1000), this.real2str_mm(itemPackDuplicates.Height / 1000),
  364.                                     num2Str((itemPackDuplicates.Height / 1000) * (itemPackDuplicates.Width / 1000) * (itemPackDuplicates.Length / 1000),0,2,DecimalSeparator::Dot,0)
  365.                                     ];
  366.                                 this.insertDuplicateRow(Excel,worksheet,headerLines,i,data);
  367.                             }
  368.                         }
  369.                     }
  370.                     else
  371.                     {
  372.                         LemItemPacks itemPacksConfig;
  373.                         select firstonly * from itemPacksConfig
  374.                             where itemPacksConfig.ProductId == lemProductTable.ProductId &&
  375.                                   itemPacksConfig.Config    == ecoResConfiguration.Name;
  376.                         if (itemPacksConfig.RecId)
  377.                         {
  378.                             DCUtils::setCellValueNew(Excel,
  379.                                 DCUtils::getCell(worksheet,strFmt("P%1",headerLines + i)),
  380.                                 this.real2str_mm(itemPacksConfig.Weight));
  381.                             DCUtils::setCellValueNew(Excel,
  382.                                 DCUtils::getCell(worksheet,strFmt("Q%1",headerLines + i)),
  383.                                 this.real2str_mm(itemPacksConfig.Width / 1000)); //LEMHLP-496 mm to m
  384.                             DCUtils::setCellValueNew(Excel,
  385.                                 DCUtils::getCell(worksheet,strFmt("R%1",headerLines + i)),
  386.                                 this.real2str_mm(itemPacksConfig.Length / 1000)); //LEMHLP-496 mm to m
  387.                             DCUtils::setCellValueNew(Excel,
  388.                                 DCUtils::getCell(worksheet,strFmt("S%1",headerLines + i)),
  389.                                 this.real2str_mm(itemPacksConfig.Height / 1000)); //LEMHLP-496 mm to m
  390.                             DCUtils::setCellValueNew(Excel,
  391.                                 DCUtils::getCell(worksheet,strFmt("T%1",headerLines + i)),
  392.                                 num2Str((itemPacksConfig.Height / 1000) * (itemPacksConfig.Width / 1000) * (itemPacksConfig.Length / 1000),0,2,DecimalSeparator::Dot,0));
  393.                         }
  394.                         else
  395.                         {
  396.                             LemItemPacks itemPacksColor;
  397.                             select firstonly * from itemPacksColor
  398.                                 where itemPacksColor.ProductId == lemProductTable.ProductId &&
  399.                                           itemPacksColor.Color == ecoResColor.Name;
  400.                             if (itemPacksColor.RecId)
  401.                             {
  402.                                 DCUtils::setCellValueNew(Excel,
  403.                                     DCUtils::getCell(worksheet,strFmt("P%1",headerLines + i)),
  404.                                         this.real2str_mm(itemPacksColor.Weight));
  405.                                 DCUtils::setCellValueNew(Excel,
  406.                                     DCUtils::getCell(worksheet,strFmt("Q%1",headerLines + i)),
  407.                                         this.real2str_mm(itemPacksColor.Width / 1000)); //LEMHLP-496 mm to m
  408.                                 DCUtils::setCellValueNew(Excel,
  409.                                     DCUtils::getCell(worksheet,strFmt("R%1",headerLines + i)),
  410.                                         this.real2str_mm(itemPacksColor.Length / 1000)); //LEMHLP-496 mm to m
  411.                                 DCUtils::setCellValueNew(Excel,
  412.                                     DCUtils::getCell(worksheet,strFmt("S%1",headerLines + i)),
  413.                                         this.real2str_mm(itemPacksColor.Height / 1000)); //LEMHLP-496 mm to m
  414.                                 DCUtils::setCellValueNew(Excel,
  415.                                     DCUtils::getCell(worksheet,strFmt("T%1",headerLines + i)),
  416.                                         num2Str((itemPacksColor.Height / 1000) *
  417.                                                 (itemPacksColor.Width / 1000) *
  418.                                                 (itemPacksColor.Length / 1000),0,2,DecimalSeparator::Dot,0));
  419.                             }
  420.                         }
  421.                     }
  422.  
  423.                    
  424.                 }
  425.                 i++;
  426.                 //<-- LEMHLP-280
  427.             }
  428.             CodeAccessPermission::revertAssert();
  429.  
  430.             worksheet.Save();
  431.             Excel.Close();
  432.  
  433.             BinData = new BinData();
  434.             BinData.loadFile(filenameSave);
  435.  
  436.             fileStream = Binary::constructFromContainer(BinData.getData()).getMemoryStream();
  437.             File::SendFileToUser(fileStream,filenameSave);
  438.  
  439.             CodeAccessPermission::revertAssert();
  440.         }
  441.     }
  442.  
  443.     public void parmSmmOpportunityTable(smmOpportunityTable _smmOpportunityTable = smmOpportunityTable)
  444.     {
  445.         smmOpportunityTable = _smmOpportunityTable;
  446.     }
  447.  
  448. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement