jegatroncomponents_tests.sql 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. /*
  2. CALL `add_part_group`('krypton', 'Kryptoner', 'En krypton är typiskt dålig för stålmannen');
  3. CALL `add_part_group`('visp', 'Vispar', 'Med en visp kan man göra smör');
  4. CALL `add_part_group`('talisman', 'Tasmanska jävlar', 'Det är hittepå');
  5. CALL `add_part_group`('Oloong', 'Semi-grönt/svart & Te', 'Mellantinget i fermenteringen av teet, brukar förekomma i rullade bollar. Bryggs i 85 grader, 4 minuter.');
  6. CALL add_internal_part('Kinesiskt Oloong', 'Oloong', 'Kinesiskt Oloong som smakar mycket te', @fick_internal_pn);
  7. SELECT @fick_internal_pn;
  8. SELECT *
  9. FROM internal_parts ip
  10. JOIN part_groups pg ON ip.part_group_id = pg.part_group_id
  11. JOIN group_details_oloong gdo ON ip.internal_pn = gdo.internal_pn
  12. WHERE ip.internal_pn = 4;
  13. SET @part_display_name := 'Token item nr.1';
  14. SET @part_group_id := 'krypton';
  15. SET @part_description := 'This token will make thing great again';
  16. CALL add_internal_part(@part_display_name, @part_group_id, @part_description, @mymandude);
  17. SELECT @mymandude;
  18. SET @part_display_name := 'Token item nr.2';
  19. SET @part_group_id := 'krypton';
  20. CALL add_internal_part(@part_display_name, @part_group_id, @part_description, @mymandude);
  21. SELECT @mymandude;
  22. SET @part_display_name := 'Token item nr.3';
  23. SET @part_group_id := 'visp';
  24. CALL add_internal_part(@part_display_name, @part_group_id, @part_description, @mymandude);
  25. SELECT @mymandude;
  26. DELETE FROM `internal_parts` WHERE `internal_pn` = 1;
  27. SELECT *
  28. FROM `internal_parts` ip
  29. JOIN `group_details_krypton` gdk ON ip.internal_pn = gdk.internal_pn;
  30. */
  31. CALL `add_part_group`('car', 'Cars', 'Automotive vehicles for transporting people');
  32. ALTER TABLE jegatroncomponents.group_details_car ADD(
  33. `series` varchar(100) DEFAULT NULL,
  34. `color` varchar(50) NOT NULL,
  35. `release_date` timestamp NOT NULL
  36. );
  37. INSERT INTO manufacturers (mfr) VALUES ('volvo');
  38. INSERT INTO manufacturer_parts (mpn, mfr, part_group_id, part_description, lifecycle_status)
  39. VALUES ('S60', 'volvo', 'car', 'A good car', 'Obsolete'),
  40. ('S80', 'volvo', 'car', 'A bigger good car', 'Obsolete');
  41. CALL `add_part_group`('chip_resistor', 'Chip Resistor - SMD', 'Surface mount resistors');
  42. ALTER TABLE jegatroncomponents.group_details_chip_resistor ADD(
  43. `series` varchar(100) DEFAULT NULL,
  44. `resistance` float NOT NULL,
  45. `resistance_str` varchar(10) DEFAULT NULL,
  46. `resistance_tolerance_upper` float NOT NULL,
  47. `resistance_tolerance_lower` float NOT NULL,
  48. `power` float NOT NULL,
  49. `resistor_type` varchar(50) NOT NULL,
  50. `temperature_max` float NOT NULL,
  51. `temperature_min` float NOT NULL,
  52. `temperature_coefficient_upper` float NOT NULL,
  53. `temperature_coefficient_lower` float NOT NULL,
  54. `dimension_height` float NOT NULL,
  55. `dimension_width` float NOT NULL,
  56. `dimension_length` float NOT NULL,
  57. `component_package` varchar(50) NOT NULL,
  58. `component_symbol` varchar(50) NOT NULL,
  59. `number_of_terminals` int DEFAULT 2 NOT NULL,
  60. CONSTRAINT `group_details_chip_resistor_package_FK` FOREIGN KEY (`component_package`) REFERENCES `component_packages` (`component_package`) ON UPDATE CASCADE,
  61. CONSTRAINT `group_details_chip_resistor_symbol_FK` FOREIGN KEY (`component_symbol`) REFERENCES `component_symbols` (`component_symbol`) ON UPDATE CASCADE
  62. );
  63. delimiter //
  64. CREATE OR REPLACE TRIGGER add_resistance_str
  65. BEFORE INSERT ON jegatroncomponents.group_details_chip_resistor
  66. FOR EACH ROW
  67. IF NEW.`resistance_str` IS NULL THEN
  68. SET NEW.resistance_str := to_value_string(NEW.resistance, 'R');
  69. END IF;
  70. //
  71. CREATE OR REPLACE TRIGGER add_resistance_str
  72. BEFORE UPDATE ON jegatroncomponents.group_details_chip_resistor
  73. FOR EACH ROW
  74. IF NEW.`resistance_str` IS NULL THEN
  75. SET NEW.resistance_str := to_value_string(NEW.resistance, 'R');
  76. END IF;
  77. //
  78. delimiter ;
  79. DROP VIEW IF EXISTS kicad_resistors;
  80. CREATE OR REPLACE VIEW kicad_resistors
  81. AS
  82. SELECT ip.internal_pn, to_pn_string(ip.internal_pn) AS internal_pn_string, ip.part_description AS description, gdcr.resistance AS value,
  83. cp.package_display_name, ip.exclude_from_bom, ip.exclude_from_board, fk.kicad_footprint,
  84. fk.kicad_footprint_filter, sk.kicad_symbol,
  85. gdcr.resistance_str AS value_str
  86. FROM internal_parts ip
  87. JOIN group_details_chip_resistor gdcr ON ip.internal_pn = gdcr.internal_pn
  88. JOIN component_packages cp ON gdcr.component_package = cp.component_package
  89. LEFT JOIN footprints_kicad fk ON gdcr.component_package = fk.component_package
  90. LEFT JOIN symbols_kicad sk ON gdcr.component_symbol = sk.component_symbol;
  91. # SELECT * FROM kicad_resistors kr ;
  92. INSERT INTO manufacturers (mfr) VALUES ('yageo');
  93. INSERT INTO manufacturers (mfr) VALUES ('tdk');
  94. DELETE FROM component_packages ;
  95. INSERT INTO component_packages (component_package, package_display_name)
  96. VALUES
  97. ('R01005', '01005 (0402 Metric)'),
  98. ('R0201', '0201 (0603 Metric)'),
  99. ('R0402', '0402 (1010 Metric)'),
  100. ('R0603', '0603 (1608 Metric)'),
  101. ('R0805', '0805 (2012 Metric)'),
  102. ('R1206', '1206 (3216 Metric)'),
  103. ('R1210', '1210 (3225 Metric)'),
  104. ('R1812', '1812 (4532 Metric)'),
  105. ('R2010', '2010 (5025 Metric)'),
  106. ('R2512', '2512 (6332 Metric)'),
  107. ('C01005', '01005 (0402 Metric)'),
  108. ('C0201', '0201 (0603 Metric)'),
  109. ('C0402', '0402 (1010 Metric)'),
  110. ('C0603', '0603 (1608 Metric)'),
  111. ('C0805', '0805 (2012 Metric)'),
  112. ('C1206', '1206 (3216 Metric)'),
  113. ('C1210', '1210 (3225 Metric)')
  114. ON duplicate KEY UPDATE package_display_name = package_display_name;
  115. DELETE FROM footprints_kicad ;
  116. INSERT INTO footprints_kicad (component_package, kicad_footprint, kicad_footprint_filter)
  117. VALUES
  118. ('R01005', 'Resistor_SMD:R_01005_0402Metric', 'Resistor_SMD:R_01005_*'),
  119. ('R0201', 'Resistor_SMD:R_0201_0603Metric', 'Resistor_SMD:R_0201_*'),
  120. ('R0402', 'Resistor_SMD:R_0402_1010Metric', 'Resistor_SMD:R_0402_*'),
  121. ('R0603', 'Resistor_SMD:R_0603_1608Metric', 'Resistor_SMD:R_0603_*'),
  122. ('R0805', 'Resistor_SMD:R_0805_2012Metric', 'Resistor_SMD:R_0805_*'),
  123. ('R1206', 'Resistor_SMD:R_1206_3216Metric', 'Resistor_SMD:R_1206_*'),
  124. ('R1210', 'Resistor_SMD:R_1210_3225Metric', 'Resistor_SMD:R_1210_*'),
  125. ('R1812', 'Resistor_SMD:R_1812_4532Metric', 'Resistor_SMD:R_1812_*'),
  126. ('R2010', 'Resistor_SMD:R_2010_5025Metric', 'Resistor_SMD:R_2010_*'),
  127. ('R2512', 'Resistor_SMD:R_2512_6332Metric', 'Resistor_SMD:R_2512_*'),
  128. ('C01005', 'Capacitor_SMD:R_01005_0402Metric', 'Capacitor_SMD:R_01005_*'),
  129. ('C0201', 'Capacitor_SMD:R_0201_0603Metric', 'Capacitor_SMD:R_0201_*'),
  130. ('C0402', 'Capacitor_SMD:R_0402_1010Metric', 'Capacitor_SMD:R_0402_*'),
  131. ('C0603', 'Capacitor_SMD:R_0603_1608Metric', 'Capacitor_SMD:R_0603_*'),
  132. ('C0805', 'Capacitor_SMD:R_0805_2012Metric', 'Capacitor_SMD:R_0805_*'),
  133. ('C1206', 'Capacitor_SMD:R_1206_3216Metric', 'Capacitor_SMD:R_1206_*'),
  134. ('C1210', 'Capacitor_SMD:R_1210_3225Metric', 'Capacitor_SMD:R_1210_*')
  135. ON duplicate KEY UPDATE kicad_footprint = kicad_footprint;
  136. INSERT INTO component_symbols (component_symbol, symbol_display_name)
  137. VALUES
  138. ('resistor_2pin', 'Resistor'),
  139. ('capacitor_2pin', 'Capacitor');
  140. INSERT INTO symbols_kicad (component_symbol, kicad_symbol)
  141. VALUES
  142. ('resistor_2pin', 'Device:R'),
  143. ('capacitor_2pin', 'Device:C');