PageRenderTime 87ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/src/mpv5/ui/dialogs/subcomponents/wizard_MP45_Import.java

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 482 lines | 413 code | 44 blank | 25 comment | 20 complexity | af01ed8dfff2f0c81a1913f9846b6915 MD5 | raw file
Possible License(s): LGPL-3.0, Apache-2.0, GPL-3.0, GPL-2.0, AGPL-3.0, JSON, BSD-3-Clause
  1. package mpv5.ui.dialogs.subcomponents;
  2. import java.awt.Cursor;
  3. import java.math.BigDecimal;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Vector;
  7. import java.util.logging.Level;
  8. import java.util.logging.Logger;
  9. import javax.swing.DefaultComboBoxModel;
  10. import mpv5.db.common.ConnectionTypeHandler;
  11. import mpv5.db.common.Context;
  12. import mpv5.db.common.DatabaseConnection;
  13. import mpv5.db.common.DatabaseObject;
  14. import mpv5.db.common.NodataFoundException;
  15. import mpv5.db.common.QueryCriteria;
  16. import mpv5.db.common.QueryHandler;
  17. import mpv5.db.common.ReturnValue;
  18. import mpv5.db.objects.Contact;
  19. import mpv5.db.objects.Product;
  20. import mpv5.db.objects.ProductGroup;
  21. import mpv5.db.objects.Tax;
  22. import mpv5.globals.Messages;
  23. import mpv5.logging.Log;
  24. import mpv5.ui.dialogs.DialogForFile;
  25. import mpv5.ui.dialogs.Popup;
  26. import mpv5.ui.dialogs.WizardMaster;
  27. import mpv5.ui.dialogs.Wizardable;
  28. import mpv5.utils.text.RandomText;
  29. import mpv5.utils.ui.TextFieldUtils;
  30. /**
  31. *
  32. *
  33. */
  34. public class wizard_MP45_Import extends javax.swing.JPanel implements Wizardable {
  35. private static final long serialVersionUID = -8347532498124147821L;
  36. private WizardMaster master;
  37. private DatabaseConnection conn;
  38. private QueryHandler qh;
  39. private int imports;
  40. public wizard_MP45_Import(WizardMaster w) {
  41. this.master = w;
  42. initComponents();
  43. path.setFilter(DialogForFile.DIRECTORIES);
  44. jComboBox1.setModel(new DefaultComboBoxModel(ConnectionTypeHandler.DRIVERS));
  45. path.setModalityParent(this);
  46. }
  47. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  48. private void initComponents() {
  49. jPanel1 = new javax.swing.JPanel();
  50. path = new mpv5.ui.beans.LabeledTextChooser();
  51. jLabel1 = new javax.swing.JLabel();
  52. products = new javax.swing.JCheckBox();
  53. customers = new javax.swing.JCheckBox();
  54. suppliers = new javax.swing.JCheckBox();
  55. manufacturers = new javax.swing.JCheckBox();
  56. jComboBox1 = new javax.swing.JComboBox();
  57. jLabel2 = new javax.swing.JLabel();
  58. dbname = new mpv5.ui.beans.LabeledTextField();
  59. dbuser = new mpv5.ui.beans.LabeledTextField();
  60. dbpassword = new mpv5.ui.beans.LabeledTextField();
  61. dbprefix = new mpv5.ui.beans.LabeledTextField();
  62. setBackground(new java.awt.Color(255, 255, 255));
  63. setName("Form"); // NOI18N
  64. setLayout(new java.awt.BorderLayout());
  65. jPanel1.setBackground(new java.awt.Color(255, 255, 255));
  66. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  67. jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("wizard_MP45_Import.jPanel1.border.title"))); // NOI18N
  68. jPanel1.setName("jPanel1"); // NOI18N
  69. path.set_Label(bundle.getString("wizard_MP45_Import.path._Label")); // NOI18N
  70. path.setName("path"); // NOI18N
  71. jLabel1.setFont(jLabel1.getFont().deriveFont(jLabel1.getFont().getStyle() & ~java.awt.Font.BOLD));
  72. jLabel1.setText(bundle.getString("wizard_MP45_Import.jLabel1.text")); // NOI18N
  73. jLabel1.setName("jLabel1"); // NOI18N
  74. products.setBackground(new java.awt.Color(255, 255, 255));
  75. products.setSelected(true);
  76. products.setText(bundle.getString("wizard_MP45_Import.products.text")); // NOI18N
  77. products.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  78. products.setName("products"); // NOI18N
  79. customers.setBackground(new java.awt.Color(255, 255, 255));
  80. customers.setSelected(true);
  81. customers.setText(bundle.getString("wizard_MP45_Import.customers.text")); // NOI18N
  82. customers.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  83. customers.setName("customers"); // NOI18N
  84. suppliers.setBackground(new java.awt.Color(255, 255, 255));
  85. suppliers.setSelected(true);
  86. suppliers.setText(bundle.getString("wizard_MP45_Import.suppliers.text")); // NOI18N
  87. suppliers.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  88. suppliers.setName("suppliers"); // NOI18N
  89. manufacturers.setBackground(new java.awt.Color(255, 255, 255));
  90. manufacturers.setSelected(true);
  91. manufacturers.setText(bundle.getString("wizard_MP45_Import.manufacturers.text")); // NOI18N
  92. manufacturers.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  93. manufacturers.setName("manufacturers"); // NOI18N
  94. jComboBox1.setEditable(true);
  95. jComboBox1.setFont(new java.awt.Font("Dialog", 0, 11));
  96. jComboBox1.setName("jComboBox1"); // NOI18N
  97. jComboBox1.addActionListener(new java.awt.event.ActionListener() {
  98. public void actionPerformed(java.awt.event.ActionEvent evt) {
  99. jComboBox1ActionPerformed(evt);
  100. }
  101. });
  102. jLabel2.setText(bundle.getString("wizard_MP45_Import.jLabel2.text")); // NOI18N
  103. jLabel2.setName("jLabel2"); // NOI18N
  104. dbname.set_Label(bundle.getString("wizard_MP45_Import.dbname._Label")); // NOI18N
  105. dbname.setName("dbname"); // NOI18N
  106. dbuser.set_Label(bundle.getString("wizard_MP45_Import.dbuser._Label")); // NOI18N
  107. dbuser.setName("dbuser"); // NOI18N
  108. dbpassword.set_Label(bundle.getString("wizard_MP45_Import.dbpassword._Label")); // NOI18N
  109. dbpassword.setName("dbpassword"); // NOI18N
  110. dbprefix.set_Label(bundle.getString("wizard_MP45_Import.dbprefix._Label")); // NOI18N
  111. dbprefix.setName("dbprefix"); // NOI18N
  112. javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  113. jPanel1.setLayout(jPanel1Layout);
  114. jPanel1Layout.setHorizontalGroup(
  115. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  116. .addGroup(jPanel1Layout.createSequentialGroup()
  117. .addContainerGap()
  118. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  119. .addComponent(products)
  120. .addComponent(customers)
  121. .addComponent(suppliers)
  122. .addComponent(manufacturers)
  123. .addComponent(path, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 505, Short.MAX_VALUE)
  124. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  125. .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE)
  126. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  127. .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 431, javax.swing.GroupLayout.PREFERRED_SIZE))
  128. .addComponent(jLabel1)
  129. .addGroup(jPanel1Layout.createSequentialGroup()
  130. .addComponent(dbuser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  131. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 119, Short.MAX_VALUE)
  132. .addComponent(dbname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  133. .addGroup(jPanel1Layout.createSequentialGroup()
  134. .addComponent(dbpassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  135. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 119, Short.MAX_VALUE)
  136. .addComponent(dbprefix, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
  137. .addContainerGap())
  138. );
  139. jPanel1Layout.setVerticalGroup(
  140. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  141. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  142. .addContainerGap()
  143. .addComponent(manufacturers)
  144. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  145. .addComponent(suppliers)
  146. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  147. .addComponent(customers)
  148. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  149. .addComponent(products)
  150. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 102, Short.MAX_VALUE)
  151. .addComponent(jLabel1)
  152. .addGap(18, 18, 18)
  153. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  154. .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  155. .addComponent(jLabel2))
  156. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  157. .addComponent(path, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  158. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  159. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  160. .addGroup(jPanel1Layout.createSequentialGroup()
  161. .addComponent(dbuser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  162. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  163. .addComponent(dbpassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  164. .addGroup(jPanel1Layout.createSequentialGroup()
  165. .addComponent(dbname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  166. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  167. .addComponent(dbprefix, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
  168. .addContainerGap())
  169. );
  170. add(jPanel1, java.awt.BorderLayout.CENTER);
  171. }// </editor-fold>//GEN-END:initComponents
  172. private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
  173. }//GEN-LAST:event_jComboBox1ActionPerformed
  174. // Variables declaration - do not modify//GEN-BEGIN:variables
  175. private javax.swing.JCheckBox customers;
  176. private mpv5.ui.beans.LabeledTextField dbname;
  177. private mpv5.ui.beans.LabeledTextField dbpassword;
  178. private mpv5.ui.beans.LabeledTextField dbprefix;
  179. private mpv5.ui.beans.LabeledTextField dbuser;
  180. private javax.swing.JComboBox jComboBox1;
  181. private javax.swing.JLabel jLabel1;
  182. private javax.swing.JLabel jLabel2;
  183. private javax.swing.JPanel jPanel1;
  184. private javax.swing.JCheckBox manufacturers;
  185. private mpv5.ui.beans.LabeledTextChooser path;
  186. private javax.swing.JCheckBox products;
  187. private javax.swing.JCheckBox suppliers;
  188. // End of variables declaration//GEN-END:variables
  189. public boolean next() {
  190. master.setCursor(new Cursor(Cursor.WAIT_CURSOR));
  191. if (path.hasText()) {
  192. imports();
  193. return false;
  194. } else {
  195. return false;
  196. }
  197. }
  198. public boolean back() {
  199. return false;
  200. }
  201. public void load() {
  202. }
  203. private void imports() {
  204. Runnable runnable = new Runnable() {
  205. public void run() {
  206. if (dbname.getText().length() > 0) {
  207. if (path.get_Text(false).endsWith(dbname.getText())) {
  208. path.set_Text(path.get_Text(false).replace(dbname.getText(), ""));
  209. }
  210. try {
  211. conn = new DatabaseConnection();
  212. conn.connect(jComboBox1.getSelectedItem().toString(),
  213. dbuser.getText(),
  214. dbpassword.getText(),
  215. path.get_Text(false),
  216. dbname.getText(), dbprefix.getText(),
  217. false);
  218. conn.setProgressbar(master.getProgressbar());
  219. if (conn.getConnection().isValid(1000)) {
  220. qh = new QueryHandler(conn);
  221. if (manufacturers.isSelected()) {
  222. importm();
  223. }
  224. if (suppliers.isSelected()) {
  225. importl();
  226. }
  227. if (customers.isSelected()) {
  228. importc();
  229. }
  230. if (products.isSelected()) {
  231. importp();
  232. }
  233. }
  234. master.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
  235. master.isEnd(true);
  236. Popup.notice(imports + " " + Messages.IMPORTED.toString());
  237. if (!errors.isEmpty()) {
  238. Popup.notice(errors, mpv5.globals.Messages.ERROR_OCCURED);
  239. }
  240. } catch (Exception exception) {
  241. Popup.error(exception);
  242. Log.Debug(exception);
  243. }
  244. } else {
  245. TextFieldUtils.blinkerRed(dbname);
  246. }
  247. }
  248. };
  249. new Thread(runnable).start();
  250. }
  251. List<DatabaseObject> errors = new Vector<DatabaseObject>();
  252. /**
  253. * Fields in manufacturer table
  254. */
  255. public final String TABLE_MANUFACTURER_FIELDS =
  256. "nummer" + "," + "Firma" + "," + "Anrede" + "," + "Vorname" +
  257. "," + "Name" + "," + "Str" + "," + "PLZ" + "," + "Ort" + "," +
  258. "Tel" + "," + "Fax" + "," + "Mobil" + "," + "Mail" + "," + "Webseite" + "," + "Notizen" + "," + "id";
  259. HashMap<Integer, Integer> manufacturer = new HashMap<Integer, Integer>();
  260. private void importm() {
  261. try {
  262. qh.setTable2("hersteller");
  263. Object[][] data = qh.freeSelect(TABLE_MANUFACTURER_FIELDS).getData();
  264. for (int i = 0; i < data.length; i++) {
  265. Contact c = new Contact();
  266. c.setCNumber(String.valueOf(data[i][0]));
  267. c.setCompany(String.valueOf(data[i][1]));
  268. c.setTitle(String.valueOf(data[i][2]));
  269. c.setPrename(String.valueOf(data[i][3]));
  270. c.setCname(String.valueOf(data[i][4]));
  271. c.setStreet(String.valueOf(data[i][5]));
  272. c.setZip(String.valueOf(data[i][6]));
  273. c.setCity(String.valueOf(data[i][7]));
  274. c.setMainphone(String.valueOf(data[i][8]));
  275. c.setFax(String.valueOf(data[i][9]));
  276. c.setMobilephone(String.valueOf(data[i][10]));
  277. c.setMailaddress(String.valueOf(data[i][11]));
  278. c.setWebsite(String.valueOf(data[i][12]));
  279. c.setNotes(String.valueOf(data[i][12 + 1]));
  280. c.setisManufacturer(true);
  281. c.setisMale(true);
  282. c.saveImport();
  283. imports++;
  284. manufacturer.put(Integer.valueOf(String.valueOf(data[i][14])), c.__getIDS());
  285. }
  286. } catch (NodataFoundException ex) {
  287. Log.Debug(this, ex.getMessage());
  288. }
  289. }
  290. /**
  291. * Fields in Kunde table
  292. */
  293. public final String TABLE_Kunde_FIELDS =
  294. "nummer" + "," + "Firma" + "," + "Anrede" + "," + "Vorname" +
  295. "," + "Name" + "," + "Str" + "," + "PLZ" + "," + "Ort" + "," +
  296. "Tel" + "," + "Fax" + "," + "Mobil" + "," + "Mail" + "," +
  297. "Webseite" + "," + "Notizen" + "," + "Steuernummer";
  298. private void importc() {
  299. try {
  300. qh.setTable2("kunden");
  301. Object[][] data = qh.freeSelect(TABLE_Kunde_FIELDS).getData();
  302. for (int i = 0; i < data.length; i++) {
  303. Contact c = new Contact();
  304. c.setCNumber(String.valueOf(data[i][0]));
  305. c.setCompany(String.valueOf(data[i][1]));
  306. c.setTitle(String.valueOf(data[i][2]));
  307. c.setPrename(String.valueOf(data[i][3]));
  308. c.setCname(String.valueOf(data[i][4]));
  309. c.setStreet(String.valueOf(data[i][5]));
  310. c.setZip(String.valueOf(data[i][6]));
  311. c.setCity(String.valueOf(data[i][7]));
  312. c.setMainphone(String.valueOf(data[i][8]));
  313. c.setFax(String.valueOf(data[i][9]));
  314. c.setMobilephone(String.valueOf(data[i][10]));
  315. c.setMailaddress(String.valueOf(data[i][11]));
  316. c.setWebsite(String.valueOf(data[i][12]));
  317. c.setNotes(String.valueOf(data[i][12 + 1]));
  318. c.setisCustomer(true);
  319. c.setisManufacturer(false);
  320. c.setisSupplier(false);
  321. c.setisCompany(false);
  322. c.setisMale(true);
  323. c.saveImport();
  324. imports++;
  325. }
  326. } catch (NodataFoundException ex) {
  327. Log.Debug(this, ex.getMessage());
  328. }
  329. }
  330. /**
  331. * Fields in supplier table
  332. */
  333. public final String TABLE_SUPPLIER_FIELDS =
  334. "nummer" + "," + "Firma" + "," + "Anrede" + "," + "Vorname" +
  335. "," + "Name" + "," + "Str" + "," + "PLZ" + "," + "Ort" + "," +
  336. "Tel" + "," + "Fax" + "," + "Mobil" + "," + "Mail" + "," + "Webseite" + "," + "Notizen" + "," + "id";
  337. HashMap<Integer, Integer> supplier = new HashMap<Integer, Integer>();
  338. private void importl() {
  339. try {
  340. qh.setTable2("lieferanten");
  341. Object[][] data = qh.freeSelect(TABLE_SUPPLIER_FIELDS).getData();
  342. for (int i = 0; i < data.length; i++) {
  343. Contact c = new Contact();
  344. c.setCNumber(String.valueOf(data[i][0]));
  345. c.setCompany(String.valueOf(data[i][1]));
  346. c.setTitle(String.valueOf(data[i][2]));
  347. c.setPrename(String.valueOf(data[i][3]));
  348. c.setCname(String.valueOf(data[i][4]));
  349. c.setStreet(String.valueOf(data[i][5]));
  350. c.setZip(String.valueOf(data[i][6]));
  351. c.setCity(String.valueOf(data[i][7]));
  352. c.setMainphone(String.valueOf(data[i][8]));
  353. c.setFax(String.valueOf(data[i][9]));
  354. c.setMobilephone(String.valueOf(data[i][10]));
  355. c.setMailaddress(String.valueOf(data[i][11]));
  356. c.setWebsite(String.valueOf(data[i][12]));
  357. c.setNotes(String.valueOf(data[i][12 + 1]));
  358. c.setisSupplier(true);
  359. c.setisMale(true);
  360. c.saveImport();
  361. imports++;
  362. supplier.put(Integer.valueOf(String.valueOf(data[i][14])), c.__getIDS());
  363. }
  364. } catch (NodataFoundException ex) {
  365. Log.Debug(this, ex.getMessage());
  366. }
  367. }
  368. /**
  369. * Fields in products table
  370. */
  371. public final String TABLE_PRODUCTS_FIELDS =
  372. "Produktnummer" + "," + "Name" + "," + "Text" + "," + "VK" + "," + "EK" +
  373. "," + "steuersatzid" + "," + "herstellerid" + "," + "lieferantenid" + "," +
  374. "warengruppenid" + "," + "Datum" + "," + "Url" + "," + "EAN" +
  375. "," + "bestellnr" + "," + "herstellernr" + "," + "lieferantennr" + "," +
  376. "bestelldatum" + "," + "bestellmenge" + "," + "lagermenge";
  377. private void importp() {
  378. try {
  379. qh.setTable2("steuersaetze");
  380. Object[][] txes = qh.freeSelect("id, name, wert").getData();
  381. HashMap<Integer, Integer> taxes = new HashMap<Integer, Integer>();
  382. for (int i = 0; i < txes.length; i++) {
  383. Tax t = new Tax();
  384. t.setCname(txes[i][1].toString());
  385. t.setTaxvalue(new BigDecimal(txes[i][2].toString()));
  386. t.save();
  387. taxes.put(Integer.valueOf(txes[i][0].toString()), t.__getIDS());
  388. }
  389. qh.setTable2("warengruppengruppen");
  390. Object[][] pg = qh.freeSelect("id, name").getData();
  391. HashMap<Integer, Integer> productg = new HashMap<Integer, Integer>();
  392. ProductGroup g = new ProductGroup("Import " + dbname.getText() + " " + RandomText.getNumberText());
  393. g.save();
  394. for (int i = 0; i < pg.length; i++) {
  395. ProductGroup h = new ProductGroup(pg[i][1].toString());
  396. h.setProductgroupsids(g.__getIDS());
  397. productg.put(Integer.valueOf(pg[i][0].toString()), h.__getIDS());
  398. }
  399. qh.setTable2("produkte");
  400. Object[][] data = qh.freeSelect(TABLE_PRODUCTS_FIELDS).getData();
  401. for (int i = 0; i < data.length; i++) {
  402. Product c = new Product();
  403. c.setCnumber(String.valueOf(data[i][0]));
  404. c.setCname(String.valueOf(data[i][1]));
  405. c.setDescription(String.valueOf(data[i][2]));
  406. c.setExternalnetvalue(new BigDecimal(data[i][3].toString()));
  407. c.setInternalnetvalue(new BigDecimal(data[i][4].toString()));
  408. c.setTaxids(taxes.get(Integer.valueOf(String.valueOf(data[i][5]))));
  409. if (manufacturer.containsKey(Integer.valueOf(String.valueOf(data[i][6])))) {
  410. c.setManufacturersids(manufacturer.get(Integer.valueOf(String.valueOf(data[i][6]))));
  411. }
  412. if (supplier.containsKey(Integer.valueOf(String.valueOf(data[i][7])))) {
  413. c.setSuppliersids(supplier.get(Integer.valueOf(String.valueOf(data[i][7]))));
  414. }
  415. if (productg.containsKey(Integer.valueOf(String.valueOf(data[i][8])))) {
  416. c.setProductgroupsids(productg.get(Integer.valueOf(String.valueOf(data[i][8]))));
  417. }
  418. c.setUrl(String.valueOf(data[i][10]));
  419. c.setEan(String.valueOf(data[i][11]));
  420. c.setReference(String.valueOf(data[i][12]));
  421. c.saveImport();
  422. imports++;
  423. }
  424. } catch (NodataFoundException ex) {
  425. Log.Debug(this, ex.getMessage());
  426. }
  427. }
  428. /**
  429. * Fields in products table
  430. */
  431. public final String TABLE_SERVICES_FIELDS =
  432. "produktnummer,name ,beschreibung,einheit," +
  433. "preis , steuersatzid ," +
  434. "warengruppenid," + "datum";
  435. // "CREATE TABLE warengruppenkategorien (ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), kategorienummer VARCHAR(120),name VARCHAR(500),deleted INTEGER DEFAULT 0,reserve1 VARCHAR(500) default NULL,reserve2 VARCHAR(500) default NULL,PRIMARY KEY (id))",
  436. // "CREATE TABLE warengruppenfamilien (ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), familienummer VARCHAR(120), kategorieid BIGINT REFERENCES warengruppenkategorien(id) ON DELETE CASCADE, name VARCHAR(500),deleted INTEGER DEFAULT 0,reserve1 VARCHAR(500) default NULL,reserve2 VARCHAR(500) default NULL,PRIMARY KEY (id))",
  437. // "CREATE TABLE warengruppengruppen (ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), gruppenummer VARCHAR(120),familienid BIGINT REFERENCES warengruppenfamilien(id) ON DELETE CASCADE, name VARCHAR(500),deleted INTEGER DEFAULT 0,reserve1 VARCHAR(500) default NULL,reserve2 VARCHAR(500) default NULL,PRIMARY KEY (id))",
  438. }