From 48e1312e7d12206fb961e6cfd2db3e31fdb820fc Mon Sep 17 00:00:00 2001 From: Oliver Date: Mon, 2 Aug 2021 23:38:41 +1000 Subject: [PATCH] Add some more parts - Fasteners - ICs --- inventree_data.json | 629 +++++++++++++++++- media/company_images/company_29_img.jpg | Bin 0 -> 18895 bytes .../company_29_img.thumbnail.jpg | Bin 0 -> 2667 bytes media/part_images/SHCS.jpg | Bin 0 -> 30249 bytes media/part_images/SHCS.thumbnail.jpg | Bin 0 -> 2906 bytes media/part_images/soic-16.jpg | Bin 0 -> 18624 bytes media/part_images/soic-16.thumbnail.jpg | Bin 0 -> 2549 bytes media/part_images/soic-8.jpg | Bin 0 -> 9387 bytes media/part_images/soic-8.thumbnail.jpg | Bin 0 -> 1871 bytes media/part_images/torx.jpg | Bin 0 -> 52263 bytes media/part_images/torx.thumbnail.jpg | Bin 0 -> 3536 bytes scripts/capacitor_digikey.py | 134 ++++ scripts/create_capacitor_stock.py | 67 ++ scripts/create_capacitors.py | 43 ++ scripts/create_resistor_stock.py | 64 ++ scripts/resistors_digikey.py | 131 ++++ 16 files changed, 1058 insertions(+), 10 deletions(-) create mode 100644 media/company_images/company_29_img.jpg create mode 100644 media/company_images/company_29_img.thumbnail.jpg create mode 100644 media/part_images/SHCS.jpg create mode 100644 media/part_images/SHCS.thumbnail.jpg create mode 100644 media/part_images/soic-16.jpg create mode 100644 media/part_images/soic-16.thumbnail.jpg create mode 100644 media/part_images/soic-8.jpg create mode 100644 media/part_images/soic-8.thumbnail.jpg create mode 100644 media/part_images/torx.jpg create mode 100644 media/part_images/torx.thumbnail.jpg create mode 100644 scripts/capacitor_digikey.py create mode 100644 scripts/create_capacitor_stock.py create mode 100644 scripts/create_capacitors.py create mode 100644 scripts/create_resistor_stock.py create mode 100644 scripts/resistors_digikey.py diff --git a/inventree_data.json b/inventree_data.json index 023363d..0b74be8 100644 --- a/inventree_data.json +++ b/inventree_data.json @@ -4,7 +4,7 @@ "pk": 1, "fields": { "password": "pbkdf2_sha256$260000$NNqALp0c36DPuISI5Q6iM3$+ILiuXGdDbEo4PXR5myUO/zHaNXhzHMPdtN2lZaKrg8=", - "last_login": "2021-07-28T12:51:26.950Z", + "last_login": "2021-08-02T13:14:16.179Z", "is_superuser": true, "username": "admin", "first_name": "", @@ -21,7 +21,7 @@ "model": "common.inventreesetting", "pk": 1, "fields": { - "value": "0.4.0", + "value": "0.4.2", "key": "INVENTREE_LATEST_VERSION" } }, @@ -353,6 +353,22 @@ "key": "PART_SHOW_IMPORT" } }, + { + "model": "common.inventreesetting", + "pk": 43, + "fields": { + "value": "False", + "key": "PART_CREATE_INITIAL" + } + }, + { + "model": "common.inventreesetting", + "pk": 44, + "fields": { + "value": "True", + "key": "PART_SHOW_PRICE_IN_FORMS" + } + }, { "model": "common.inventreeusersetting", "pk": 1, @@ -915,6 +931,26 @@ "currency": "USD" } }, + { + "model": "company.company", + "pk": 29, + "fields": { + "name": "Texas Instruments", + "description": "", + "website": "https://www.ti.com/", + "address": "", + "phone": "", + "email": "", + "contact": "", + "link": "", + "image": "company_images/company_29_img.jpg", + "notes": "", + "is_customer": false, + "is_supplier": true, + "is_manufacturer": true, + "currency": "USD" + } + }, { "model": "company.manufacturerpart", "pk": 1, @@ -2895,6 +2931,17 @@ "description": null } }, + { + "model": "company.manufacturerpart", + "pk": 191, + "fields": { + "part": 61, + "manufacturer": 29, + "MPN": "MAX232IDR", + "link": "", + "description": "MAX232IDR" + } + }, { "model": "company.supplierpart", "pk": 11, @@ -5775,6 +5822,22 @@ "multiple": 1 } }, + { + "model": "company.supplierpart", + "pk": 196, + "fields": { + "part": 61, + "supplier": 1, + "SKU": "2156-MAX232IDR-ND", + "manufacturer_part": 191, + "link": "https://www.digikey.com/en/products/detail/texas-instruments/MAX232IDR/13523247", + "description": "", + "note": "", + "base_cost": "0.000", + "packaging": "", + "multiple": 1 + } + }, { "model": "label.stockitemlabel", "pk": 1, @@ -5841,7 +5904,7 @@ "default_location": null, "default_keywords": null, "lft": 1, - "rght": 10, + "rght": 16, "tree_id": 1, "level": 0 } @@ -5885,8 +5948,8 @@ "parent": 1, "default_location": null, "default_keywords": null, - "lft": 2, - "rght": 9, + "lft": 8, + "rght": 15, "tree_id": 1, "level": 1 } @@ -5900,8 +5963,8 @@ "parent": 4, "default_location": null, "default_keywords": "passive resistor", - "lft": 7, - "rght": 8, + "lft": 13, + "rght": 14, "tree_id": 1, "level": 2 } @@ -5915,8 +5978,8 @@ "parent": 4, "default_location": null, "default_keywords": "passive capacitor", - "lft": 3, - "rght": 4, + "lft": 9, + "rght": 10, "tree_id": 1, "level": 2 } @@ -5930,6 +5993,51 @@ "parent": 4, "default_location": null, "default_keywords": null, + "lft": 11, + "rght": 12, + "tree_id": 1, + "level": 2 + } + }, + { + "model": "part.partcategory", + "pk": 8, + "fields": { + "name": "IC", + "description": "Integrated Circuits", + "parent": 1, + "default_location": null, + "default_keywords": null, + "lft": 2, + "rght": 7, + "tree_id": 1, + "level": 1 + } + }, + { + "model": "part.partcategory", + "pk": 9, + "fields": { + "name": "Interface", + "description": "Drivers, receivers, transceivers", + "parent": 8, + "default_location": null, + "default_keywords": null, + "lft": 3, + "rght": 4, + "tree_id": 1, + "level": 2 + } + }, + { + "model": "part.partcategory", + "pk": 11, + "fields": { + "name": "MCU", + "description": "Microcontrollers and processors", + "parent": 8, + "default_location": null, + "default_keywords": null, "lft": 5, "rght": 6, "tree_id": 1, @@ -8396,6 +8504,293 @@ "level": 0 } }, + { + "model": "part.part", + "pk": 61, + "fields": { + "name": "MAX232IDR", + "is_template": false, + "variant_of": null, + "description": "Dual RS232 transceiver in SOIC-16 package", + "keywords": null, + "category": 9, + "IPN": null, + "revision": null, + "link": null, + "image": "part_images/soic-16.jpg", + "default_location": null, + "default_supplier": null, + "default_expiry": 0, + "minimum_stock": 0, + "units": null, + "assembly": false, + "component": true, + "trackable": false, + "purchaseable": true, + "salable": false, + "active": true, + "virtual": false, + "notes": null, + "bom_checksum": "", + "bom_checked_by": null, + "bom_checked_date": null, + "creation_date": "2021-08-02", + "creation_user": 1, + "responsible": null, + "base_cost": "0.000", + "multiple": 1, + "lft": 1, + "rght": 2, + "tree_id": 61, + "level": 0 + } + }, + { + "model": "part.part", + "pk": 62, + "fields": { + "name": "MCP2561SN", + "is_template": false, + "variant_of": null, + "description": "High speed CAN transceiver in SOIC-8 package", + "keywords": null, + "category": 9, + "IPN": null, + "revision": null, + "link": null, + "image": "part_images/soic-8.jpg", + "default_location": null, + "default_supplier": null, + "default_expiry": 0, + "minimum_stock": 0, + "units": null, + "assembly": false, + "component": true, + "trackable": false, + "purchaseable": true, + "salable": false, + "active": true, + "virtual": false, + "notes": null, + "bom_checksum": "", + "bom_checked_by": null, + "bom_checked_date": null, + "creation_date": "2021-08-02", + "creation_user": 1, + "responsible": null, + "base_cost": "0.000", + "multiple": 1, + "lft": 1, + "rght": 2, + "tree_id": 62, + "level": 0 + } + }, + { + "model": "part.part", + "pk": 63, + "fields": { + "name": "M3x8 SHCS", + "is_template": false, + "variant_of": null, + "description": "Socket head cap screw, M3 thread, 8.0mm", + "keywords": "screw", + "category": 3, + "IPN": "", + "revision": "", + "link": "", + "image": "part_images/SHCS.jpg", + "default_location": null, + "default_supplier": null, + "default_expiry": 0, + "minimum_stock": 0, + "units": "", + "assembly": false, + "component": true, + "trackable": false, + "purchaseable": true, + "salable": false, + "active": true, + "virtual": false, + "notes": null, + "bom_checksum": "", + "bom_checked_by": null, + "bom_checked_date": null, + "creation_date": "2021-08-02", + "creation_user": 1, + "responsible": null, + "base_cost": "0.000", + "multiple": 1, + "lft": 1, + "rght": 2, + "tree_id": 63, + "level": 0 + } + }, + { + "model": "part.part", + "pk": 64, + "fields": { + "name": "M2x6 SHCS", + "is_template": false, + "variant_of": null, + "description": "Socket head cap screw, M2 thread, 6.0mm", + "keywords": "screw", + "category": 3, + "IPN": null, + "revision": null, + "link": null, + "image": "part_images/SHCS.jpg", + "default_location": null, + "default_supplier": null, + "default_expiry": 0, + "minimum_stock": 0, + "units": null, + "assembly": false, + "component": true, + "trackable": false, + "purchaseable": true, + "salable": false, + "active": true, + "virtual": false, + "notes": null, + "bom_checksum": "", + "bom_checked_by": null, + "bom_checked_date": null, + "creation_date": "2021-08-02", + "creation_user": 1, + "responsible": null, + "base_cost": "0.000", + "multiple": 1, + "lft": 1, + "rght": 2, + "tree_id": 64, + "level": 0 + } + }, + { + "model": "part.part", + "pk": 65, + "fields": { + "name": "M2x4 SHCS", + "is_template": false, + "variant_of": null, + "description": "Socket head cap screw, M2 thread, 4.0mm", + "keywords": "screw", + "category": 3, + "IPN": null, + "revision": null, + "link": null, + "image": "part_images/SHCS.jpg", + "default_location": null, + "default_supplier": null, + "default_expiry": 0, + "minimum_stock": 0, + "units": null, + "assembly": false, + "component": true, + "trackable": false, + "purchaseable": true, + "salable": false, + "active": true, + "virtual": false, + "notes": null, + "bom_checksum": "", + "bom_checked_by": null, + "bom_checked_date": null, + "creation_date": "2021-08-02", + "creation_user": 1, + "responsible": null, + "base_cost": "0.000", + "multiple": 1, + "lft": 1, + "rght": 2, + "tree_id": 65, + "level": 0 + } + }, + { + "model": "part.part", + "pk": 66, + "fields": { + "name": "M3x8 Torx", + "is_template": false, + "variant_of": null, + "description": "Torx head screw, M3 thread, 8.0mm", + "keywords": "screw", + "category": 3, + "IPN": null, + "revision": null, + "link": null, + "image": "part_images/torx.jpg", + "default_location": null, + "default_supplier": null, + "default_expiry": 0, + "minimum_stock": 0, + "units": null, + "assembly": false, + "component": true, + "trackable": false, + "purchaseable": true, + "salable": false, + "active": true, + "virtual": false, + "notes": null, + "bom_checksum": "", + "bom_checked_by": null, + "bom_checked_date": null, + "creation_date": "2021-08-02", + "creation_user": 1, + "responsible": null, + "base_cost": "0.000", + "multiple": 1, + "lft": 1, + "rght": 2, + "tree_id": 66, + "level": 0 + } + }, + { + "model": "part.part", + "pk": 67, + "fields": { + "name": "M3x10 Torx", + "is_template": false, + "variant_of": null, + "description": "Torx head screw, M3 thread, 10.0mm", + "keywords": "screw", + "category": 3, + "IPN": null, + "revision": null, + "link": null, + "image": "part_images/torx.jpg", + "default_location": null, + "default_supplier": null, + "default_expiry": 0, + "minimum_stock": 0, + "units": null, + "assembly": false, + "component": true, + "trackable": false, + "purchaseable": true, + "salable": false, + "active": true, + "virtual": false, + "notes": null, + "bom_checksum": "", + "bom_checked_by": null, + "bom_checked_date": null, + "creation_date": "2021-08-02", + "creation_user": 1, + "responsible": null, + "base_cost": "0.000", + "multiple": 1, + "lft": 1, + "rght": 2, + "tree_id": 67, + "level": 0 + } + }, { "model": "part.partparametertemplate", "pk": 1, @@ -8420,6 +8815,22 @@ "units": "%" } }, + { + "model": "part.partparametertemplate", + "pk": 4, + "fields": { + "name": "Length", + "units": "mm" + } + }, + { + "model": "part.partparametertemplate", + "pk": 5, + "fields": { + "name": "Thread", + "units": "" + } + }, { "model": "part.partparameter", "pk": 1, @@ -9716,6 +10127,96 @@ "data": "1%" } }, + { + "model": "part.partparameter", + "pk": 145, + "fields": { + "part": 63, + "template": 4, + "data": "8" + } + }, + { + "model": "part.partparameter", + "pk": 146, + "fields": { + "part": 63, + "template": 5, + "data": "M3" + } + }, + { + "model": "part.partparameter", + "pk": 147, + "fields": { + "part": 64, + "template": 4, + "data": "6" + } + }, + { + "model": "part.partparameter", + "pk": 148, + "fields": { + "part": 64, + "template": 5, + "data": "M2" + } + }, + { + "model": "part.partparameter", + "pk": 149, + "fields": { + "part": 65, + "template": 4, + "data": "4" + } + }, + { + "model": "part.partparameter", + "pk": 150, + "fields": { + "part": 65, + "template": 5, + "data": "M2" + } + }, + { + "model": "part.partparameter", + "pk": 151, + "fields": { + "part": 66, + "template": 4, + "data": "8" + } + }, + { + "model": "part.partparameter", + "pk": 152, + "fields": { + "part": 66, + "template": 5, + "data": "M3" + } + }, + { + "model": "part.partparameter", + "pk": 153, + "fields": { + "part": 67, + "template": 4, + "data": "10" + } + }, + { + "model": "part.partparameter", + "pk": 154, + "fields": { + "part": 67, + "template": 5, + "data": "M3" + } + }, { "model": "report.testreport", "pk": 1, @@ -15365,6 +15866,82 @@ "level": 0 } }, + { + "model": "stock.stockitem", + "pk": 172, + "fields": { + "uid": "", + "parent": null, + "part": 66, + "supplier_part": null, + "location": 3, + "packaging": "bag", + "belongs_to": null, + "customer": null, + "serial": null, + "link": "", + "batch": null, + "quantity": "580.00000", + "updated": "2021-08-02", + "build": null, + "is_building": false, + "purchase_order": null, + "sales_order": null, + "expiry_date": null, + "stocktake_date": null, + "stocktake_user": null, + "review_needed": false, + "delete_on_deplete": true, + "status": 10, + "notes": null, + "purchase_price_currency": "USD", + "purchase_price": "0.2800", + "owner": null, + "infinite": false, + "lft": 1, + "rght": 2, + "tree_id": 146, + "level": 0 + } + }, + { + "model": "stock.stockitem", + "pk": 173, + "fields": { + "uid": "", + "parent": null, + "part": 65, + "supplier_part": null, + "location": 3, + "packaging": "box", + "belongs_to": null, + "customer": null, + "serial": null, + "link": "", + "batch": null, + "quantity": "5000.00000", + "updated": "2021-08-02", + "build": null, + "is_building": false, + "purchase_order": null, + "sales_order": null, + "expiry_date": null, + "stocktake_date": null, + "stocktake_user": null, + "review_needed": false, + "delete_on_deplete": true, + "status": 10, + "notes": null, + "purchase_price_currency": "USD", + "purchase_price": null, + "owner": null, + "infinite": false, + "lft": 1, + "rght": 2, + "tree_id": 147, + "level": 0 + } + }, { "model": "stock.stockitemtracking", "pk": 2, @@ -15883,7 +16460,7 @@ "fields": { "tracking_type": 1, "item": 34, - "date": "2021-07-28T14:37:56.000Z", + "date": "2021-07-28T14:37:56Z", "notes": "", "user": null, "deltas": { @@ -17684,5 +18261,37 @@ "quantity": 500.0 } } + }, + { + "model": "stock.stockitemtracking", + "pk": 172, + "fields": { + "tracking_type": 1, + "item": 172, + "date": "2021-08-02T13:35:56.313Z", + "notes": "", + "user": 1, + "deltas": { + "status": 10, + "location": 3, + "quantity": 580.0 + } + } + }, + { + "model": "stock.stockitemtracking", + "pk": 173, + "fields": { + "tracking_type": 1, + "item": 173, + "date": "2021-08-02T13:36:47.681Z", + "notes": "", + "user": 1, + "deltas": { + "status": 10, + "location": 3, + "quantity": 5000.0 + } + } } ] \ No newline at end of file diff --git a/media/company_images/company_29_img.jpg b/media/company_images/company_29_img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bbe2d3c7756afc7395340743efa69125766c1bb GIT binary patch literal 18895 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 literal 0 HcmV?d00001 diff --git a/media/part_images/SHCS.jpg b/media/part_images/SHCS.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7702c27c22162d810cde64f27bcbd53dbbd5b62 GIT binary patch literal 30249 zcmcG#1ymeCur|5`OM(RrvWpXRan}$W0tELE+}+)R!vafK+4G|m-&}9zz11L8A$*F0sw&Ux&dCE0Rm#m5~8Y# z%KYSJ#$Zc(6EkvGHfC0GIu|DkTQhPQSt)YaZxT}EuH5YOOymwO2G$nN9^^vgyzK8^ zmH=V^WJDw+Bt+y_f{cuef{OkY^|fH3p}j-L#=^nD#=^$NB>;ZJ#UsYY#wMg7BnE-V z$jER%Qc_crQUgiJNdKb|gx5z=QBX18zQrWP!^R{1|6N`>0oZTfXui=zM4$w`!A3yD zMtJE30AEM=1`**u2K#>$WE4asRD?HgUu)$)01yxn-ypp~{f~~L08sz)ZX{%E6bc+% zHc=%5R6I&{hk!VIsxR499Lk1W6K@Hq#T-?P0)wDuoK88_>*pV7#8u;Kx?dY3eC6^# zF?yBn8$_hn8cOW{xQ_U`zmosGCkWVYDA;fiMU`+394Oge76It5)o-v7u>m50Cs
mCl;o6@|CQw2^Obo} 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

CNeh0+eni)9I=Yl>-aI6<@)&DrBVf*wB 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 literal 0 HcmV?d00001 diff --git a/media/part_images/SHCS.thumbnail.jpg b/media/part_images/SHCS.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c40eb392295c00a52c4a510bb75fceca4a055f5e GIT binary patch literal 2906 zcma)72{@Gf7Jp~PEY{vJ$QENQYBb0i5n~%)M%l)iCBCvR`9#u?=z+eCX zgC2lA02l%&4h{|^2MUQqaiXBbjX|L>+&o-d++18dAkQ{|JbXLA9eg}EoPYohCoU!? zCNBAtwv52gXf!VmuP_J-iwa@|MSm*)UxwWPU@-swlGakJ3*-vb%oUIdUG>P6>-) z@%xkvBKSE1)UsB5L-M8f2@30tR;61}KeryaAr2&F?aT34_|z6r5yvbGC; z5kXoNQ*+%Zp2kY4Pa~@ES*%J&AMJ>5*~}K#f8~kAhkx+-uO3qlySzT;5*T=CzL3)9y${kMzgb7LdpI~ zdj`6%xNIM|-{6>y<3Wr@WO-v^wXUm2&XxTtgs;gSZ43SnD{H5liyyxEprB6{%%v7^ zesni+m%Y~Qo|*5EU~_lbF@!Fdl}?d3OPpKkpDUNlj`h5A`66Y+wt75FjD>7pOrH1@S~z{q3#rt*r}*?G>YaiJDRkG+#plo$5?+ zhH0sSTgY+I`E48OAONKYjzXi*KkPsl#qvublyTB3hmX2}cp258lz9#V*Wl|McyhwWqP_PnX6mGLx$I+5Zsi2E=<)WjX3ph3DI43m7*O=bhn0IZZUl!WLY zD61*i^{layc}v%Sg&(FT#Rg0)30?OEoPgqYJzS`s#p+iuuKbbr2veExYU#VVAS$PB zXz|8eNa+37OsfB9MnHLP_D~jS@Ku!UrnrG&!RgAE`kz|5E0=7YzfvvEzYM`nJ>oW6 z1FV9tF}QMO6tDQFCw1ermAgbrj@rbWJmeu1#&qcPIU6OcvM555BKIy$zCBhIPMI3N z~`v^a2-pqZK zS<$Y&reCDXEw|`E!PoGA0AxJ+-1dFR*jaTjeqQUZv&XC=0+hbdN6AiNM$6Plt6is} zlD{nvho99btZ-CMXB?7G7FOnI5qdd=IoBwt(o9{Md_$JjO+F=u58(PR<^1fpLv&IC zsd!-os;2G9uwC+Cs+sKnc<~L8%EbMWvTST_uoyzNo*{PH%M?Itv|d)H5m$6}$zE{T z%LZO7r5*sx|Jv4?PAewOeBI=1XR))jozavR zm5A0EVdo1Z?N9du-#109xj4qH1jXPfipNDgNtpEuB!cFlQ%M$odJYtnh77>Rs)KYa z&s4vp*1_%|laiTPR3AeDwCL1?z#Vs_LtK5{9GrGC`I(i;!EvU7WtFzT!CGMfPTGBp zMck{-Dv<8EM>i))L*KNmln}-zqkCVBoBw%Z4^rbYjM&{Z>l7*UIOmPU<3E0PP0XVQ z)b#EBOh0Nf9nyDECPVbfw3*Ux+9wYTMX&*j3N!hz-U*$ef{`Ai2nNyA_lXUZ!&MLB z*B5t>cL*uU*jUqitODW*H3t$Iu^aC;^W@7O{$=x?Z!z8_1IbD1OB|2)cyc;#np0Cz z>Fe|7&o{A1x4o>I3&kM_)D-#p<8b96KX8FTi{rQL?wv_kndmS?PpV zyP@d|R)6=jw4OZ6j~cTy*t%@w5G`@&n>)4ho|^aBmb&QD4@v!T#zLdA+=$mZ_@Bn^ zJW@7OVE;^q#=F0*mNh{&8y{yH4~%-sz@YQKf1_a;&L0sfR*O(BPNg@Q?EwYF476=;u^i33$rmu{95Sk@oM&7TtVvgUr1l$~n*JGgUf8-+ z0#)T`TRs4{0VGK;xLv-PQtBDAKpkAt&WCfLn>G@^Q(>`S^X|zs+_;){)6Vmx=NK-4 dPl`Vy=~&@tu_mx1SI-Zf^+gzwG+E2;`zNsPqB{Tp literal 0 HcmV?d00001 diff --git a/media/part_images/soic-16.jpg b/media/part_images/soic-16.jpg new file mode 100644 index 0000000000000000000000000000000000000000..af7b47cd4c7ff684f8401f4d828d6c2ae23a7d39 GIT binary patch literal 18624 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 literal 0 HcmV?d00001 diff --git a/media/part_images/soic-16.thumbnail.jpg b/media/part_images/soic-16.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9aca976908f822b0313da328ed731d31969181f GIT binary patch literal 2549 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 X_44x{6`1d|0jN&M??P&aVC@6 literal 0 HcmV?d00001 diff --git a/media/part_images/soic-8.thumbnail.jpg b/media/part_images/soic-8.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35ebf3cf0c6cc3a39e206bf3e10a40a47ea77edd GIT binary patch literal 1871 zcma)5Yg7~07M__r4Iq;Q5D-iPC}0XCfZ?S=Oh6(9g5ZKE@{H8wMUnKSu&x9Vg;cL3 z252n^_^1VnKm;pPPDapp(9-f*nAV=8X)P56G0 z8@NmM!-S+`W(ga zj#nZF<$G*@oVxL3VuD=k{KEZi)tgYyCT)vsVtmP#&AMtt!-t-Va^T0yh?$vfUc6hP7HAVAiN3}L|fz+jZj5+)cpf)f1U@g%EV&1oRi z8r;bTMS&EUOlJi^LPIQ~j~%E%NEIHz6Y>=UI2&{V!Qc@h;r$hXBSfZP8EkH1x*dy3 zcMsSRk=>7)+3%LrtM32Z7`#97dWz?~w&`?^+S}B7vc~IjbYuhGC8b#FDy~g_@FMo< z+$}$0rc4Ptws0;#=-9OX?f8CXR@lH+5i>CJ-c9F1 z^>znS7ajD(VPlAiG-JybpS;U$7F*MLq~8tg8k1aOyHq%RUnSrCudTxkxlXr_6q%KI zD9b;~BVBzE{*$3=jwsLu7C~Ty@b|TVX<)D;xQVQEdbS)5sHpFsn}07Nf5x0(T)44w z1H&ht0pg=AzBC`lRWs`}5L5X>aH-H;4JLx8K1%qWpJvR=V2~RLoaivkGbU zHH!VuOK$fLsM7+;aBzNJ+AjlUaWxm7YJ*OT^KTZN;kD;JvhGZE=biY6RcrH1HNV(v z2`ZHBwAiev{F%A%<3K^gJTtfH0lQnqNdM~a=aZ+4PVoa7)Kkw)P5&9mS*)!%@4KiR zS&%(yT*LgTQr5g9+{n&nr%VC&m1(Tz(JnXMO5jIR(z7!!`H}KOo@Z3=Kqoe4&nEk_ zNAg2QGx^HeOtzwK*gZ7ojO14ZDV5a3e4mwQau z<8mO`>VD^^a8f<()sRzuVO z)j^_X>VAcV%BJj(&6j#dG+g_O-a4rLkVhVuGV|{|=VvuXO8wh&@$0hRObnix$vPW? z@d>+>*+U!(%SiBQWu+z=e>Y&awD2yT6kD!pOWW$vv?3q-wO&l-bKiZ9963GOK0#|Z zu3eNqmXS=t3MN^NoN>Q_a;LPQvvjG+vlT{E+(KOkb9YI#a)@uVK^ye4g4HE`eUS8J zX!5b7=NIX=GtOQ`{@)a3$FxgoImzX%XM61tdeurFUG)2!AmwBEQfysiE<*xEYu<9| kRPpCy-bQN*s;{K5MHUZ4HzF$|M*Z-<71IcHB~3T{KQv9L$p8QV literal 0 HcmV?d00001 diff --git a/media/part_images/torx.jpg b/media/part_images/torx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..51ff1f19b0554d3da9b12fb9adad843a885c72f0 GIT binary patch literal 52263 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 Vws!CJ38KS@fBe2b{{Rp#|JehOXJ-Ha literal 0 HcmV?d00001 diff --git a/media/part_images/torx.thumbnail.jpg b/media/part_images/torx.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8599efbd1adcedb91b7cb82cbd72989a9c990295 GIT binary patch literal 3536 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 A?EnA( literal 0 HcmV?d00001 diff --git a/scripts/capacitor_digikey.py b/scripts/capacitor_digikey.py new file mode 100644 index 0000000..28a4e36 --- /dev/null +++ b/scripts/capacitor_digikey.py @@ -0,0 +1,134 @@ +from inventree.api import InvenTreeAPI +from inventree.part import Part, PartCategory +from inventree.base import Parameter +from inventree.company import Company, ManufacturerPart, SupplierPart, ManufacturerPartParameter + +import os +import sys +import digikey +from digikey.v3.productinformation import KeywordSearchRequest + +os.environ['DIGIKEY_CLIENT_ID'] = 'DjV4w1v0ebNTiL7Nqvslw0GkNYuYdrLG' +os.environ['DIGIKEY_CLIENT_SECRET'] = 'dK0dTRimeq3aiPH1' +os.environ['DIGIKEY_CLIENT_SANDBOX'] = 'False' +os.environ['DIGIKEY_STORAGE_PATH'] = 'C:\\Users\\Oliver\\Desktop\\digikey\\' + +INVENTREE_URL = "http://localhost:8000" +INVENTREE_USERNAME = "admin" +INVENTREE_PASSWORD = "inventree" + +inventree = InvenTreeAPI(INVENTREE_URL, username=INVENTREE_USERNAME, password=INVENTREE_PASSWORD) + +resistors = Part.list(inventree, category=6) + +def getParameter(result, name): + + for param in result.parameters: + if param.parameter.lower() == name.lower(): + return param + + return None + + +def getValue(result, name): + + param = getParameter(result, name) + + if param: + return param.value + else: + return None + +manufacturers = {} + +DIGIKEY_PK = 1 + +for res in resistors: + + search_term = res.name.replace('_', ' ').replace('C ' , 'Capacitor ceramic X7R ') + + print(f"Capacitor: {res.name} -> {search_term}") + + request = KeywordSearchRequest(search_term, record_count=25) + + result = digikey.keyword_search(body=request) + + # Set of manufacturer part numbers + MPN = set() + + if len(result.products) == 0: + print("--- NO RESULTS FOUND ---") + + for product in result.products: + + mpn = product.manufacturer_part_number + + if mpn in MPN or len(MPN) >= 2: + continue + + print(f"MPN > {mpn}") + + MPN.add(mpn) + + sku = product.digi_key_part_number + + man_name = product.manufacturer.value + + if man_name in manufacturers.keys(): + manufacturer = manufacturers[man_name] + else: + + # Search InvenTree for manufacturer name + query = Company.list(inventree, search=man_name) + + if len(query) == 0: + + print(f"Creating new manufacturer: '{man_name}'") + + manufacturer = Company.create(inventree, data={ + 'is_supplier': False, + 'is_manufacturer': True, + 'name': man_name, + }) + + else: + manufacturer = query[0] + + if manufacturer == None: + continue + + manufacturers[man_name] = manufacturer + + m_parts = ManufacturerPart.list(inventree, MPN=mpn) + + if len(m_parts) == 0: + print(f"Creating new part: {man_name} -> {mpn}") + manufacturer_part = ManufacturerPart.create(inventree, data={ + 'part': res.pk, + 'manufacturer': manufacturer.pk, + 'MPN': mpn, + }) + + print(manufacturer_part) + else: + manufacturer_part = m_parts[0] + + # Check if a "supplier part" exists + s_parts = SupplierPart.list( + inventree, + manufacturer_part=manufacturer_part.pk, + supplier=DIGIKEY_PK + ) + + if s_parts is None or len(s_parts) == 0: + print(f"Creating new supplier part") + + SupplierPart.create(inventree, data={ + 'part': res.pk, + 'supplier': DIGIKEY_PK, + 'manufacturer_part': manufacturer_part.pk, + 'SKU': sku, + 'link': product.product_url, + 'description': product.product_description, + }) + diff --git a/scripts/create_capacitor_stock.py b/scripts/create_capacitor_stock.py new file mode 100644 index 0000000..046862f --- /dev/null +++ b/scripts/create_capacitor_stock.py @@ -0,0 +1,67 @@ +from inventree.api import InvenTreeAPI + +from inventree.part import Part, PartCategory +from inventree.stock import StockItem, StockLocation +from inventree.company import SupplierPart + +import random +import sys + +INVENTREE_URL = "http://localhost:8000" +INVENTREE_USERNAME = "admin" +INVENTREE_PASSWORD = "inventree" + +api = InvenTreeAPI(INVENTREE_URL, username=INVENTREE_USERNAME, password=INVENTREE_PASSWORD) + +capacitors = Part.list(api, category=6) + +storage = StockLocation(api, pk=8) + +count = 0 + +for cap in capacitors: + + if random.random() > 0.65: + continue + + # Get the first matching supplierpart + sp_list = SupplierPart.list(api, part=cap.pk) + + for sp in sp_list: + if random.random() > 0.6: + continue + + status = 10 + + q = random.random() + + quantity = 1000 + + if q < 0.1: + quantity = 500 + + elif q > 0.85: + quantity = 4000 + + if random.random() < 0.2: + quantity += int(random.random() * 2000) + + if random.random() > 0.95: + status = 55 # Damaged + elif random.random() > 0.95: + status = 50 # Attention + + StockItem.create(api, data={ + 'location': storage.pk, + 'part': cap.pk, + 'quantity': quantity, + 'supplier_part': sp.pk, + 'packaging': 'reel', + 'status': status, + }) + + count += 1 + +print(f"Created {count} new stock items") + + diff --git a/scripts/create_capacitors.py b/scripts/create_capacitors.py new file mode 100644 index 0000000..c87b0ff --- /dev/null +++ b/scripts/create_capacitors.py @@ -0,0 +1,43 @@ +from inventree.api import InvenTreeAPI + +from inventree.part import Part, PartCategory +from inventree.stock import StockItem, StockLocation +from inventree.company import SupplierPart + +import random +import sys + +INVENTREE_URL = "http://localhost:8000" +INVENTREE_USERNAME = "admin" +INVENTREE_PASSWORD = "inventree" + +api = InvenTreeAPI(INVENTREE_URL, username=INVENTREE_USERNAME, password=INVENTREE_PASSWORD) + +category = 6 + +packages = [ + '0402', + '0603', + '0805', +] + +values = [ + # '100pF', + '100nF', + '1uF', + '10uF', +] + +for package in packages: + for value in values: + name = f"C_{value}_{package}" + description = f"{value} in {package} SMD package" + keywords = "cap smd ceramic" + + Part.create(api, data={ + 'name': name, + 'category': category, + 'description': description, + 'keywords': keywords, + 'purchaseable': True, + }) diff --git a/scripts/create_resistor_stock.py b/scripts/create_resistor_stock.py new file mode 100644 index 0000000..27df822 --- /dev/null +++ b/scripts/create_resistor_stock.py @@ -0,0 +1,64 @@ +from inventree.api import InvenTreeAPI + +from inventree.part import Part, PartCategory +from inventree.stock import StockItem, StockLocation +from inventree.company import SupplierPart + +import random +import sys + +INVENTREE_URL = "http://localhost:8000" +INVENTREE_USERNAME = "admin" +INVENTREE_PASSWORD = "inventree" + +api = InvenTreeAPI(INVENTREE_URL, username=INVENTREE_USERNAME, password=INVENTREE_PASSWORD) + +resistors = Part.list(api, category=5) + +storage = StockLocation(api, pk=8) + +count = 0 + +for resistor in resistors: + + if random.random() > 0.65: + continue + + q = random.random() + + quantity = 1000 + + if q < 0.1: + quantity = 2000 + + elif q > 0.85: + quantity = 4000 + + # Get the first matching supplierpart + sp_list = SupplierPart.list(api, part=resistor.pk) + + for sp in sp_list: + if random.random() > 0.6: + continue + + status = 10 + + if random.random() > 0.95: + status = 55 # Damaged + elif random.random() > 0.95: + status = 50 # Attention + + StockItem.create(api, data={ + 'location': storage.pk, + 'part': resistor.pk, + 'quantity': quantity, + 'supplier_part': sp.pk, + 'packaging': 'reel', + 'status': status, + }) + + count += 1 + +print(f"Created {count} new stock items") + + diff --git a/scripts/resistors_digikey.py b/scripts/resistors_digikey.py new file mode 100644 index 0000000..77b4dcd --- /dev/null +++ b/scripts/resistors_digikey.py @@ -0,0 +1,131 @@ +from inventree.api import InvenTreeAPI +from inventree.part import Part, PartCategory +from inventree.base import Parameter +from inventree.company import Company, ManufacturerPart, SupplierPart, ManufacturerPartParameter + +import os +import sys +import digikey +from digikey.v3.productinformation import KeywordSearchRequest + +os.environ['DIGIKEY_CLIENT_ID'] = 'DjV4w1v0ebNTiL7Nqvslw0GkNYuYdrLG' +os.environ['DIGIKEY_CLIENT_SECRET'] = 'dK0dTRimeq3aiPH1' +os.environ['DIGIKEY_CLIENT_SANDBOX'] = 'False' +os.environ['DIGIKEY_STORAGE_PATH'] = 'C:\\Users\\Oliver\\Desktop\\digikey\\' + +INVENTREE_URL = "http://localhost:8000" +INVENTREE_USERNAME = "admin" +INVENTREE_PASSWORD = "inventree" + +inventree = InvenTreeAPI(INVENTREE_URL, username=INVENTREE_USERNAME, password=INVENTREE_PASSWORD) + +resistors = Part.list(inventree, category=5) + +def getParameter(result, name): + + for param in result.parameters: + if param.parameter.lower() == name.lower(): + return param + + return None + + +def getValue(result, name): + + param = getParameter(result, name) + + if param: + return param.value + else: + return None + +manufacturers = {} + +DIGIKEY_PK = 1 + +for res in resistors: + + search_term = res.name.replace('_', ' ').replace('R ' , 'Resistor ') + + print(res.name, res.description) + + request = KeywordSearchRequest(search_term, record_count=25) + + result = digikey.keyword_search(body=request) + + # Set of manufacturer part numbers + MPN = set() + + for product in result.products: + + mpn = product.manufacturer_part_number + + print(f"> {mpn}") + + if mpn in MPN or len(MPN) >= 5: + continue + + MPN.add(mpn) + + sku = product.digi_key_part_number + + man_name = product.manufacturer.value + + if man_name in manufacturers.keys(): + manufacturer = manufacturers[man_name] + else: + + # Search InvenTree for manufacturer name + query = Company.list(inventree, search=man_name) + + if len(query) == 0: + + print(f"Creating new manufacturer: '{man_name}'") + + manufacturer = Company.create(inventree, data={ + 'is_supplier': False, + 'is_manufacturer': True, + 'name': man_name, + }) + + else: + manufacturer = query[0] + + manufacturers[man_name] = manufacturer + + m_parts = ManufacturerPart.list(inventree, MPN=mpn) + + print("Existing Manufacturer Parts:") + + for mp in m_parts: + print(f" - {mp.MPN}, {mp.manufacturer}") + + if len(m_parts) == 0: + print(f"Creating new part: {man_name} -> {mpn}") + manufacturer_part = ManufacturerPart.create(inventree, data={ + 'part': res.pk, + 'manufacturer': manufacturer.pk, + 'MPN': mpn, + }) + else: + manufacturer_part = m_parts[0] + + # Check if a "supplier part" exists + s_parts = SupplierPart.list( + inventree, + manufacturer_part=manufacturer_part.pk, + supplier=DIGIKEY_PK + ) + + if s_parts is None or len(s_parts) == 0: + print(f"Creating new supplier part") + + SupplierPart.create(inventree, data={ + 'part': res.pk, + 'supplier': DIGIKEY_PK, + 'manufacturer_part': manufacturer_part.pk, + 'SKU': sku, + 'link': product.product_url, + 'description': product.product_description, + }) +