Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import("system.logging");
  2. import("system.question");
  3. import("system.datetime");
  4. import("system.util");
  5. import("system.db");
  6. import("system.text");
  7. import("system.vars");
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. var importData = vars.get("$local.ImportData");
  16. var importArray = text.parseCSV(importData, "\r\n", ";", "");
  17. importArray.splice(0, 1);
  18. var isMailbridge = vars.get("$local.isMailbridge");
  19.  
  20. var Mailname = vars.get("$local.Emailname");
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. var userNew;
  28. var dateNew;
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. var associativePublisherArray = getPublisherArray();
  37. var associativeLanguageArray = getLanguageArray();
  38. var associativeFormatArray = getFormatArray();
  39. var associativeAuthorArray = getAuthorArray();
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47. //Configuration for Database Table
  48. var table = "BOOK";
  49. var columns = ["BOOKID", "CONTACT_ID", "BOOKTITLE", "RELEASEDATE", "ISBN", "LANGUAGE", "FORMAT",
  50. "ORGANISATION_ID", "DATE_NEW", "USER_NEW"];
  51. var columnTypes = db.getColumnTypes(table, columns);
  52. var values;
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. //Array for Database Inserts
  61. var sqlStatements = [];
  62. var errMessages = "";
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. //Declare Variables used in for-loop
  71. var bookTitle;
  72. var releaseDate;
  73. var isbn;
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. var authorFirstname;
  82. var authorLastname;
  83. var authorMiddlename;
  84. var authorID;
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. var publisherID;
  93. var publisherName;
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101. var languageISO3;
  102. var languageName;
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. var formatKeyID;
  111. var formatTitle;
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119. //declare Variables used in PublisherArray
  120. var publisherSql;
  121. var associativeArrayPublisher;
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129. for(let i = 0; i < importArray.length; i++)
  130. {
  131.     authorFirstname = importArray[i][0];
  132.     authorMiddlename = importArray[i][1];
  133.     authorLastname = importArray[i][2];
  134.    
  135.     bookTitle = importArray[i][3];
  136.     releaseDate = datetime.toLong(importArray[i][4], "yyyy", "UTC");
  137.     isbn = importArray[i][6];
  138.    
  139.     //Content of .csv File
  140.     publisherName = importArray[i][7];  //e.g.: "blanvalet"
  141.     languageName = importArray[i][8];   //e.g.: "German"
  142.     formatTitle = importArray[i][9];    //e.g.: "pocketbook"
  143.    
  144.     //Content of associative Array
  145.     publisherID = associativePublisherArray[publisherName];
  146.     languageISO3 = associativeLanguageArray[languageName];  //e.g.: "deu"
  147.     formatKeyID = associativeFormatArray[formatTitle];      //e.g.: "abc123-523-bdfb-435"
  148.     authorID = associativeAuthorArray[authorFirstname + authorMiddlename + authorLastname];
  149.    
  150.     dateNew = vars.get("$sys.date");
  151.     userNew = Mailname;
  152.    
  153.     if(languageISO3 == "" || languageISO3 == undefined)
  154.         languageISO3 = "deu";
  155.    
  156.     values = [util.getNewUUID(), authorID, bookTitle, releaseDate, isbn, languageISO3, formatKeyID, publisherID, dateNew, userNew];
  157.    
  158.     if(publisherID != null && authorID != null)
  159.         sqlStatements.push([table, columns, columnTypes, values]);
  160.     else
  161.         errMessages += "ErrorMessage: the following Book couldn't be inserted: " + bookTitle + "\n";
  162. }
  163.  
  164.  
  165.  
  166. if(isMailbridge == "false")
  167.     question.showMessage(errMessages);
  168. else
  169.     logging.log(errMessages);
  170.  
  171.  
  172.  
  173.  
  174. db.inserts(sqlStatements);
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182. function getPublisherArray()
  183. {
  184.     var publisherSql = db.table("select ORGANISATIONID, NAME from ORGANISATION");
  185.     var associativeArrayPublisher = [];
  186.    
  187.     for(let i = 0; i < publisherSql.length; i++)
  188.     {
  189.         publisherName = publisherSql[i][1];
  190.         publisherID = publisherSql[i][0];
  191.         associativeArrayPublisher[publisherName] = publisherID;
  192.     }
  193.    
  194.     return associativeArrayPublisher;
  195. }
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204. function getLanguageArray()
  205. {
  206.     var languageSql = db.table("select ISO3, NAME_LATIN"
  207.         + " from AB_LANGUAGE order by ISO3");
  208.     var associativeLanguageArray = [];
  209.     var ISO3;
  210.     var Name;
  211.    
  212.     for(let i = 0; i < languageSql.length; i++)
  213.     {
  214.         ISO3 = languageSql[i][0];
  215.         Name = languageSql[i][1];   //Bspw.: "German"
  216.         associativeLanguageArray[Name] = ISO3;  //Assoziation an der Stelle "German" = "deu"
  217.     }
  218.    
  219.     return associativeLanguageArray;
  220. }
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228. function getFormatArray()
  229. {
  230.     var formatSql = db.table("select KEYID, TITLE"
  231.         + " from AB_KEYWORD_ENTRY"
  232.         + " where CONTAINER = 'format'")
  233.     var associativeArrayFormat = [];
  234.     var KeyID;
  235.     var Title;
  236.    
  237.     for(let i = 0; i < formatSql.length; i++)
  238.     {
  239.         KeyID = formatSql[i][0];
  240.         Title = formatSql[i][1];
  241.         associativeArrayFormat[Title] = KeyID;
  242.     }
  243.    
  244.     return associativeArrayFormat;
  245. }
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253. function getAuthorArray()
  254. {
  255.     var AuthorSql = db.table("select FIRSTNAME, MIDDLENAME, LASTNAME, CONTACTID"
  256.         + " from PERSON"
  257.         + " join CONTACT on PERSONID = PERSON_ID");
  258.     var associativeArrayAuthor = [];
  259.     var AuthorFirstname;
  260.     var AuthorMiddlename;
  261.     var AuthorLastname;
  262.     var AuthorID;
  263.    
  264.     for(let i = 0; i < AuthorSql.length; i++)
  265.     {
  266.         AuthorFirstname = AuthorSql[i][0];
  267.         AuthorMiddlename = AuthorSql[i][1];
  268.         AuthorLastname = AuthorSql[i][2];
  269.         AuthorID = AuthorSql[i][3];
  270.        
  271.         associativeArrayAuthor[AuthorFirstname + AuthorMiddlename + AuthorLastname] = AuthorID;
  272.     }
  273.    
  274.     return associativeArrayAuthor;
  275. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement