diff --git a/src/Controller/ProjectController.php b/src/Controller/ProjectController.php index 2a6d19ee..7b69ba2b 100644 --- a/src/Controller/ProjectController.php +++ b/src/Controller/ProjectController.php @@ -46,14 +46,16 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; - +use Symfony\Contracts\Translation\TranslatorInterface; use function Symfony\Component\Translation\t; #[Route(path: '/project')] class ProjectController extends AbstractController { - public function __construct(private readonly DataTableFactory $dataTableFactory) - { + public function __construct( + private readonly DataTableFactory $dataTableFactory, + private readonly TranslatorInterface $translator, + ) { } #[Route(path: '/{id}/info', name: 'project_info', requirements: ['id' => '\d+'])] @@ -147,6 +149,8 @@ class ProjectController extends AbstractController 'label' => 'project.bom_import.type', 'required' => true, 'choices' => [ + 'project.bom_import.type.json' => 'json', + 'project.bom_import.type.csv' => 'csv', 'project.bom_import.type.kicad_pcbnew' => 'kicad_pcbnew', 'project.bom_import.type.kicad_schematic' => 'kicad_schematic', 'project.bom_import.type.generic_csv' => 'generic_csv', @@ -189,17 +193,20 @@ class ProjectController extends AbstractController } // For PCB imports, proceed directly - $entries = $BOMImporter->importFileIntoProject($form->get('file')->getData(), $project, [ - 'type' => $import_type, + $importerResult = $BOMImporter->importFileIntoProject($form->get('file')->getData(), $project, [ + 'type' => $form->get('type')->getData(), ]); // Validate the project entries $errors = $validator->validateProperty($project, 'bom_entries'); - // If no validation errors occurred, save the changes and redirect to edit page - if (count($errors) === 0) { + //If no validation errors occured, save the changes and redirect to edit page + if (count ($errors) === 0 && $importerResult->getViolations()->count() === 0) { + $entries = $importerResult->getBomEntries(); + $this->addFlash('success', t('project.bom_import.flash.success', ['%count%' => count($entries)])); $entityManager->flush(); + return $this->redirectToRoute('project_edit', ['id' => $project->getID()]); } @@ -211,10 +218,29 @@ class ProjectController extends AbstractController } } + $jsonTemplate = [ + [ + "quantity" => 1.0, + "name" => $this->translator->trans('project.bom_import.template.entry.name'), + "part" => [ + "id" => null, + "ipn" => $this->translator->trans('project.bom_import.template.entry.part.ipn'), + "mpnr" => $this->translator->trans('project.bom_import.template.entry.part.mpnr'), + "name" => $this->translator->trans('project.bom_import.template.entry.part.name'), + "manufacturer" => [ + "id" => null, + "name" => $this->translator->trans('project.bom_import.template.entry.part.manufacturer.name') + ], + ] + ] + ]; + return $this->render('projects/import_bom.html.twig', [ 'project' => $project, + 'jsonTemplate' => $jsonTemplate, 'form' => $form, - 'errors' => $errors ?? null, + 'validationErrors' => $errors ?? null, + 'importerErrors' => isset($importerResult) ? $importerResult->getViolations() : null, ]); } diff --git a/src/Entity/ProjectSystem/ProjectBOMEntry.php b/src/Entity/ProjectSystem/ProjectBOMEntry.php index f58e4d5e..b2a3b2e9 100644 --- a/src/Entity/ProjectSystem/ProjectBOMEntry.php +++ b/src/Entity/ProjectSystem/ProjectBOMEntry.php @@ -36,6 +36,7 @@ use ApiPlatform\OpenApi\Model\Operation; use ApiPlatform\Serializer\Filter\PropertyFilter; use App\ApiPlatform\Filter\LikeFilter; use App\Entity\Contracts\TimeStampableInterface; +use App\Repository\DBElementRepository; use App\Validator\UniqueValidatableInterface; use Doctrine\DBAL\Types\Types; use App\Entity\Base\AbstractDBElement; @@ -54,7 +55,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface; * The ProjectBOMEntry class represents an entry in a project's BOM. */ #[ORM\HasLifecycleCallbacks] -#[ORM\Entity] +#[ORM\Entity(repositoryClass: DBElementRepository::class)] #[ORM\Table('project_bom_entries')] #[ApiResource( operations: [ diff --git a/src/Services/ImportExportSystem/BOMImporter.php b/src/Services/ImportExportSystem/BOMImporter.php index fc73835c..d1c5f939 100644 --- a/src/Services/ImportExportSystem/BOMImporter.php +++ b/src/Services/ImportExportSystem/BOMImporter.php @@ -87,7 +87,7 @@ class BOMImporter $this->partRepository = $entityManager->getRepository(Part::class); $this->manufacturerRepository = $entityManager->getRepository(Manufacturer::class); $this->categoryRepository = $entityManager->getRepository(Category::class); - $this->projectBOMEntryRepository = $entityManager->getRepository(Project::class); + $this->projectBOMEntryRepository = $entityManager->getRepository(ProjectBOMEntry::class); $this->assemblyBOMEntryRepository = $entityManager->getRepository(AssemblyBOMEntry::class); $this->translator = $translator; } @@ -111,18 +111,19 @@ class BOMImporter /** * Converts the given file into an array of BOM entries using the given options and save them into the given project. * The changes are not saved into the database yet. - * @return ProjectBOMEntry[] */ - public function importFileIntoProject(File $file, Project $project, array $options): array + public function importFileIntoProject(UploadedFile $file, Project $project, array $options): ImporterResult { - $bom_entries = $this->fileToBOMEntries($file, $options); + $importerResult = $this->fileToImporterResult($file, $options); - //Assign the bom_entries to the project - foreach ($bom_entries as $bom_entry) { - $project->addBomEntry($bom_entry); + if ($importerResult->getViolations()->count() === 0) { + //Assign the bom_entries to the project + foreach ($importerResult->getBomEntries() as $bomEntry) { + $project->addBomEntry($bomEntry); + } } - return $bom_entries; + return $importerResult; } /** @@ -202,7 +203,7 @@ class BOMImporter $fileExtension, [ '%extension%' => $fileExtension, - '%importType%' => $this->translator->trans('assembly.bom_import.type.'.$options['type']), + '%importType%' => $this->translator->trans($objectType === ProjectBOMEntry::class ? 'project.bom_import.type.'.$options['type'] : 'assembly.bom_import.type.'.$options['type']), '%allowedExtensions%' => implode(', ', $validExtensions), ] )); @@ -711,7 +712,7 @@ class BOMImporter $category = $categoryIdValid ? $this->categoryRepository->findOneBy(['id' => $entry['part']['category']['id']]) : null; $category = $category ?? ($categoryNameValid ? $this->categoryRepository->findOneBy(['name' => trim($entry['part']['category']['name'])]) : null); - if (($categoryIdValid || $categoryNameValid) && $category === null) { + if (($categoryIdValid || $categoryNameValid)) { $value = sprintf( 'category.id: %s, category.name: %s', isset($entry['part']['category']['id']) && $entry['part']['category']['id'] !== null ? '' . $entry['part']['category']['id'] . '' : '-', @@ -748,12 +749,12 @@ class BOMImporter $part->setDescription($partDescription); } - if ($manufacturer !== null && $manufacturer->getID() !== $part->getManufacturerID()) { + if ($manufacturer !== null && $manufacturer->getID() !== $part->getManufacturer()->getID()) { //When updating the associated parts, take over to a assembly of the manufacturer of the part. $part->setManufacturer($manufacturer); } - if ($category !== null && $category->getID() !== $part->getCategoryID()) { + if ($category !== null && $category->getID() !== $part->getCategory()->getID()) { //When updating the associated parts to a assembly, take over the category of the part. $part->setCategory($category); } @@ -771,11 +772,26 @@ class BOMImporter } } } else { - $bomEntry = new ProjectBOMEntry(); + $bomEntry = $this->projectBOMEntryRepository->findOneBy(['part' => $part]); + + if ($bomEntry === null) { + if (isset($entry['name']) && $entry['name'] !== '') { + $bomEntry = $this->projectBOMEntryRepository->findOneBy(['name' => $entry['name']]); + } + + if ($bomEntry === null) { + $bomEntry = new ProjectBOMEntry(); + } + } } $bomEntry->setQuantity((float) $entry['quantity']); - $bomEntry->setName($entry['name'] ?? ''); + + if (isset($entry['name'])) { + $bomEntry->setName(trim($entry['name']) === '' ? null : trim ($entry['name'])); + } else { + $bomEntry->setName(null); + } $bomEntry->setPart($part); diff --git a/templates/assemblies/import_bom.html.twig b/templates/assemblies/import_bom.html.twig index 9e99c541..89f504c2 100644 --- a/templates/assemblies/import_bom.html.twig +++ b/templates/assemblies/import_bom.html.twig @@ -29,7 +29,6 @@ {% endif %} {% endblock %} - {% block card_title %} {% trans %}assembly.import_bom{% endtrans %}{% if assembly %}: {{ assembly.name }}{% endif %} diff --git a/templates/projects/import_bom.html.twig b/templates/projects/import_bom.html.twig index 0e7f1787..3f905912 100644 --- a/templates/projects/import_bom.html.twig +++ b/templates/projects/import_bom.html.twig @@ -3,29 +3,107 @@ {% block title %}{% trans %}project.import_bom{% endtrans %}{% endblock %} {% block before_card %} - {% if errors %} + {% if validationErrors or importerErrors %}

{% trans %}parts.import.errors.title{% endtrans %}

{% endif %} {% endblock %} - {% block card_title %} {% trans %}project.import_bom{% endtrans %}{% if project %}: {{ project.name }}{% endif %} {% endblock %} {% block card_content %} - {{ form(form) }} +{% endblock %} +{% block additional_content %} +
+
+
+
+ {% trans %}project.import_bom.template.header.json{% endtrans %} +
+
+
{{ jsonTemplate|json_encode(constant('JSON_PRETTY_PRINT') b-or constant('JSON_UNESCAPED_UNICODE')) }}
+ + {{ 'project.bom_import.template.json.table'|trans|raw }} +
+
+
+
+
+
+ {% trans %}project.import_bom.template.header.csv{% endtrans %} +
+
+ {{ 'project.bom_import.template.csv.exptected_columns'|trans }} + +
quantity;name;part_id;part_mpnr;part_ipn;part_name;part_manufacturer_id;part_manufacturer_name
+ +
    +
  • quantity
  • +
  • name
  • +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + {{ 'project.bom_import.template.csv.table'|trans|raw }} +
+
+
+
+
+
+ {% trans %}project.import_bom.template.header.kicad_pcbnew{% endtrans %} +
+
+ {{ 'project.bom_import.template.kicad_pcbnew.exptected_columns'|trans }} +
Id;Designator;Package;Quantity;Designation;Supplier and ref
+ +
    +
  • Id
  • +
  • Designator
  • +
  • Package
  • +
  • Quantity
  • +
  • Designation
  • +
  • Supplier and ref
  • +
  • Note
  • +
  • Footprint
  • +
  • Value
  • +
  • Footprint
  • +
+ + {{ 'project.bom_import.template.kicad_pcbnew.exptected_columns.note'|trans|raw }} + + {{ 'project.bom_import.template.kicad_pcbnew.table'|trans|raw }} +
+
+
+
{% endblock %} \ No newline at end of file diff --git a/translations/messages.cs.xlf b/translations/messages.cs.xlf index c4021c2c..1acfef09 100644 --- a/translations/messages.cs.xlf +++ b/translations/messages.cs.xlf @@ -11046,6 +11046,18 @@ Element 3 Typ + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11064,6 +11076,319 @@ Element 3 Výběrem této možnosti odstraníte všechny existující položky BOM v projektu a přepíšete je importovaným souborem BOM! + + + project.import_bom.template.header.json + Šablona importu JSON + + + + + project.import_bom.template.header.csv + Šablona importu CSV + + + + + project.import_bom.template.header.kicad_pcbnew + Šablona importu CSV (KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + Název komponenty v projektu + + + + + project.bom_import.template.entry.part.mpnr + Jedinečné číslo produktu u výrobce + + + + + project.bom_import.template.entry.part.ipn + Jedinečné IPN součásti + + + + + project.bom_import.template.entry.part.name + Jedinečný název součásti + + + + + project.bom_import.template.entry.part.manufacturer.name + Jedinečný název výrobce + + + + + project.bom_import.template.json.table + + + + + Pole + Podmínka + Datový typ + Popis + + + + + quantity + Povinné + Desetinné číslo (Float) + Musí být zadáno a obsahovat desetinnou hodnotu (Float), která je větší než 0.0. + + + name + Volitelné + Řetězec (String) + Pokud je přítomen, musí být neprázdný řetězec. Název položky v kusovníku. + + + part + Volitelné + Objekt/Array + + Pokud je potřeba přiřadit součástku, musí to být objekt/pole a musí být vyplněno alespoň jedno z následujících polí: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + Volitelné + Celé číslo (Integer) + Celé číslo (Integer) > 0. Odpovídá internímu číselnému ID součástky v Part-DB. + + + part.mpnr + Volitelné + Řetězec (String) + Neprázdný řetězec, pokud není uvedeno part.id, part.ipn nebo part.name. + + + part.ipn + Volitelné + Řetězec (String) + Neprázdný řetězec, pokud není uvedeno part.id, part.mpnr nebo part.name. + + + part.name + Volitelné + Řetězec (String) + Neprázdný řetězec, pokud není uvedeno part.id, part.mpnr nebo part.ipn. + + + part.manufacturer + Volitelné + Objekt/Array + + Pokud má být upraven výrobce součástky nebo pokud má být součástka nalezena jednoznačně na základě part.mpnr, musí to být objekt/pole a musí být vyplněno alespoň jedno z následujících polí: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + Volitelné + Celé číslo (Integer) + Celé číslo (Integer) > 0. Odpovídá internímu číselnému ID výrobce. + + + manufacturer.name + Volitelné + Řetězec (String) + Neprázdný řetězec, pokud není uvedeno manufacturer.id. + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + Možné sloupce: + + + + + project.bom_import.template.csv.table + + + + + Sloupec + Podmínka + Datový typ + Popis + + + + + quantity + Povinné + Desetinné číslo (Float) + Musí být uvedeno a obsahovat hodnotu desetinného čísla (Float) větší než 0.0. + + + name + Optional + String + Název položky v kusovníku. + + + Sloupce začínající part_ + + Pokud má být přiřazena součástka, musí být uveden a vyplněn alespoň jeden z následujících sloupců: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + Volitelné + Celé číslo (Integer) + Celé číslo (Integer) > 0. Odpovídá internímu číselnému ID součástky v Part-DB. + + + part_mpnr + Volitelné + Řetězec (String) + Musí být uvedeno, pokud nejsou vyplněny sloupce part_id, part_ipn nebo part_name. + + + part_ipn + Volitelné + Řetězec (String) + Musí být uvedeno, pokud nejsou vyplněny sloupce part_id, part_mpnr nebo part_name. + + + part_name + Volitelné + Řetězec (String) + Musí být uvedeno, pokud nejsou vyplněny sloupce part_id, part_mpnr nebo part_ipn. + + + Sloupce začínající part_manufacturer_ + + Pokud má být upraven výrobce dílu nebo má být díl jednoznačně identifikován podle hodnoty part_mpnr, musí být uveden a vyplněn alespoň jeden z následujících sloupců: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + Volitelné + Celé číslo (Integer) + Celé číslo (Integer) > 0. Odpovídá internímu číselnému ID výrobce. + + + part_manufacturer_name + Volitelné + Řetězec (String) + Musí být uvedeno, pokud není vyplněn sloupec part_manufacturer_id. + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + Očekávané sloupce: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + Poznámka: Nedochází k přiřazení ke konkrétním součástkám ze správy kategorií.

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + Pole + Podmínka + Datový typ + Popis + + + + + Id + Volitelné + Celé číslo (Integer) + Volný údaj. Jedinečné identifikační číslo pro každou součástku. + + + Designator + Volitelné + Řetězec (String) + Volný údaj. Jedinečný referenční označovač součástky na desce plošných spojů, např. „R1“ pro odpor 1.
Je převzat do osazovacího názvu záznamu součástky. + + + Package + Volitelné + Řetězec (String) + Volný údaj. Pouzdro nebo tvar součástky, např. „0805“ pro SMD odpory.
Pro záznam součástky není převzato. + + + Quantity + Povinné pole + Celé číslo (Integer) + Počet identických komponent, které jsou potřebné k vytvoření instance.
Je převzat jako počet položky komponenty. + + + Designation + Povinné pole + Řetězec (String) + Popis nebo funkce součástky, např. hodnota odporu „10kΩ“ nebo kapacita kondenzátoru „100nF“.
Je převzato do názvu záznamu součástky. + + + Supplier and ref + Volitelné + Řetězec (String) + Volný údaj. Může obsahovat např. distribuční specifickou hodnotu.
Je převzato jako poznámka ke záznamu součástky. + + + + ]]> +
+
+
project.bom_import.flash.invalid_file diff --git a/translations/messages.da.xlf b/translations/messages.da.xlf index 24d42ac6..108df80e 100644 --- a/translations/messages.da.xlf +++ b/translations/messages.da.xlf @@ -11078,6 +11078,18 @@ Oversættelsen Typ + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11090,6 +11102,319 @@ Oversættelsen let eksisterende styklisteposter før import + + + project.import_bom.template.header.json + JSON-importskabelon + + + + + project.import_bom.template.header.csv + CSV-importskabelon + + + + + project.import_bom.template.header.kicad_pcbnew + CSV-importskabelon (KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + Komponentens navn i projektet + + + + + project.bom_import.template.entry.part.mpnr + Unikt produktnummer hos producenten + + + + + project.bom_import.template.entry.part.ipn + Komponentens unikke IPN + + + + + project.bom_import.template.entry.part.name + Komponentens unikke navn + + + + + project.bom_import.template.entry.part.manufacturer.name + Producentens unikke navn + + + + + project.bom_import.template.json.table + + + + + Felt + Betingelse + Datatype + Beskrivelse + + + + + quantity + Obligatorisk + Decimaltal (Float) + Skal være angivet og skal indeholde en decimaltalsværdi (Float), der er større end 0.0. + + + name + Valgfrit + String + Hvis til stede, skal det være en ikke-tom streng. Navnet på posten i stykliste. + + + part + Valgfrit + Objekt/Array + + Hvis en komponent skal knyttes, skal det være et objekt/array, og mindst ét af felterne skal udfyldes: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + Valgfrit + Heltal (Integer) + Heltal (Integer) > 0. Svarer til det interne numeriske ID for komponenten i Part-DB. + + + part.mpnr + Valgfrit + String + En ikke-tom streng, hvis hverken part.id, part.ipn eller part.name er angivet. + + + part.ipn + Valgfrit + String + En ikke-tom streng, hvis hverken part.id, part.mpnr eller part.name er angivet. + + + part.name + Valgfrit + String + En ikke-tom streng, hvis hverken part.id, part.mpnr eller part.ipn er angivet. + + + part.manufacturer + Valgfrit + Objekt/Array + + Hvis en komponents producent skal justeres, eller hvis komponenten skal findes entydigt via part.mpnr, skal det være et objekt/array, og mindst ét af felterne skal udfyldes: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + Valgfrit + Heltal (Integer) + Heltal (Integer) > 0. Svarer til producentens interne numeriske ID. + + + manufacturer.name + Valgfrit + String + En ikke-tom streng, hvis manufacturer.id ikke er angivet. + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + Mulige kolonner: + + + + + project.bom_import.template.csv.table + + + + + Kolonne + Betingelse + Datatype + Beskrivelse + + + + + quantity + Obligatorisk + Decimaltal (Float) + Skal være angivet og indeholde en decimaltalsværdi (Float), som er større end 0,0. + + + name + Optional + String + Hvis tilgængelig, skal det være en ikke-tom streng. Navnet på elementet inden for stykliste. + + + Kolonner, der begynder med part_ + + Hvis en komponent skal tildeles, skal mindst én af følgende kolonner være angivet og udfyldt: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + Valgfri + Heltal (Integer) + Heltal (Integer) > 0. Svarer til den interne numeriske ID for komponenten i Part-DB. + + + part_mpnr + Valgfri + Streng (String) + Skal angives, hvis kolonnerne part_id, part_ipn eller part_name ikke er udfyldt. + + + part_ipn + Valgfri + Streng (String) + Skal angives, hvis kolonnerne part_id, part_mpnr eller part_name ikke er udfyldt. + + + part_name + Valgfri + Streng (String) + Skal angives, hvis kolonnerne part_id, part_mpnr eller part_ipn ikke er udfyldt. + + + Kolonner, der begynder med part_manufacturer_ + + Hvis komponentens producent skal ændres eller identificeres entydigt baseret på part_mpnr, skal mindst én af følgende kolonner være angivet og udfyldt: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + Valgfri + Heltal (Integer) + Heltal (Integer) > 0. Svarer til den interne numeriske ID for producenten. + + + part_manufacturer_name + Valgfri + Streng (String) + Skal angives, hvis kolonnen part_manufacturer_id ikke er udfyldt. + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + Forventede kolonner: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + Bemærk: Der sker ingen tilknytning til specifikke komponenter fra kategoristyringen.

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + Felt + Betingelse + Datatype + Beskrivelse + + + + + Id + Valgfrit + Heltal (Integer) + Fri opgave. Et entydigt identifikationsnummer for hver komponent. + + + Designator + Valgfrit + Streng (String) + Fri opgave. En entydig referencemarkering for komponenten på PCB'et, fx "R1" for modstand 1.
Bliver overført til monteringsnavnet på komponentindgangen. + + + Package + Valgfrit + Streng (String) + Fri opgave. Komponentens pakning eller form, fx "0805" for SMD-modstande.
Bliver ikke overført til komponentindgangen. + + + Quantity + Obligatorisk felt + Heltal (Integer) + Antallet af identiske komponenter, der kræves for at oprette en instans.
Overtages som antallet af komponentposter. + + + Designation + Obligatorisk felt + Streng (String) + Beskrivelse eller funktion af komponenten, fx modstandsværdi "10kΩ" eller kondensatorværdi "100nF".
Bliver overført til komponentindgangens navn. + + + Supplier and ref + Valgfrit + Streng (String) + Fri opgave. Kan eksempelvis indeholde en distributørspecifik værdi.
Bliver overført som en note til komponentindgangen. + + + + ]]> +
+
+
project.bom_import.clear_existing_bom.help @@ -12777,13 +13102,13 @@ Bemærk venligst, at du ikke kan kopiere fra deaktiveret bruger. Hvis du prøver - + assembly.bom_import.template.csv.exptected_columns Mulige kolonner: - + assembly.bom_import.template.csv.table @@ -12808,7 +13133,7 @@ Bemærk venligst, at du ikke kan kopiere fra deaktiveret bruger. Hvis du prøver name Valgfrit Streng - Navnet på posten inden for samlingen. + Navnet på posten inden for stykliste. Kolonner, der starter med part_ diff --git a/translations/messages.de.xlf b/translations/messages.de.xlf index 34879612..31eead69 100644 --- a/translations/messages.de.xlf +++ b/translations/messages.de.xlf @@ -11138,6 +11138,18 @@ Element 1 -> Element 1.2 Typ + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11156,6 +11168,319 @@ Element 1 -> Element 1.2 Wenn diese Option ausgewählt ist, werden alle bereits im Projekt existierenden BOM-Einträge gelöscht und mit den importierten BOM-Daten überschrieben. + + + project.import_bom.template.header.json + Import-Vorlage JSON + + + + + project.import_bom.template.header.csv + Import-Vorlage CSV + + + + + project.import_bom.template.header.kicad_pcbnew + Import-Vorlage CSV (KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + Name des Bauteils im Projekt + + + + + project.bom_import.template.entry.part.mpnr + Eindeutige Produktnummer innerhalb des Herstellers + + + + + project.bom_import.template.entry.part.ipn + Eideutige IPN des Bauteils + + + + + project.bom_import.template.entry.part.name + Eindeutiger Name des Bauteils + + + + + project.bom_import.template.entry.part.manufacturer.name + Eindeutiger Name des Herstellers + + + + + project.bom_import.template.json.table + + + + + Feld + Bedingung + Datentyp + Beschreibung + + + + + quantity + Pflichtfeld + Gleitkommazahl (Float) + Muss gegeben sein und enthält einen Gleitkommawert (Float), der größer als 0.0 ist. + + + name + Optional + String + Falls vorhanden, muss es ein nicht-leerer String sein. Name des Eintrags innerhalb der Stückliste. + + + part + Optional + Objekt/Array + + Falls ein Bauteil zugeordnet werden soll, muss es ein Objekt/Array und mindestens eines der Felder ausgefüllt sein: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + Optional + Ganzzahl (Integer) + Ganzzahl (Integer) > 0. Entspricht der Part-DB internen numerischen ID des Bauteils. + + + part.mpnr + Optional + String + Nicht-leerer String, falls keine part.id-, part-ipn- bzw. part.name-Angabe gegeben ist. + + + part.ipn + Optional + String + Nicht-leerer String, falls keine part.id-, part.mpnr bzw. part.name-Angabe gegeben ist. + + + part.name + Optional + String + Nicht-leerer String, falls keine part.id-, part.mpnr- bzw. part.ipn-Angabe gegeben ist. + + + part.manufacturer + Optional + Objekt/Array + + Falls der Hersteller eines Bauteils mit angepasst werden oder das Bauteil anhand der part.mpnr-Angabe eindeutig gesucht werden soll, muss es ein Objekt/Array und mindestens eines der Felder ausgefüllt sein: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + Optional + Ganzzahl (Integer) + Ganzzahl (Integer) > 0. Entspricht der internen numerischen ID des Herstellers. + + + manufacturer.name + Optional + String + Nicht-leerer String, falls keine manufacturer.id-Angabe gegeben ist. + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + Mögliche Spalten: + + + + + project.bom_import.template.csv.table + + + + + Spalte + Bedingung + Datentyp + Beschreibung + + + + + quantity + Pflichtfeld + Gleitkommazahl (Float) + Muss gegeben sein und enthält einen Gleitkommawert (Float), der größer als 0.0 ist. + + + name + Optional + String + Name des Eintrags innerhalb der Stückliste. + + + Spalten beginnend mit part_ + + Falls ein Bauteil zugeordnet werden soll, muss eine der folgenden Spalten gegeben und ausgefüllt sein: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + Optional + Ganzzahl (Integer) + Ganzzahl (Integer) > 0. Entspricht der Part-DB internen numerischen ID des Bauteils. + + + part_mpnr + Optional + String + Anzugeben, falls keine part_id-, part_ipn- bzw. part_name-Spalte ausgefüllt gegeben ist. + + + part_ipn + Optional + String + Anzugeben, falls keine part_id-, part_mpnr- bzw. part_name-Spalte ausgefüllt gegeben ist. + + + part_name + Optional + String + Anzugeben, falls keine part_id-, part_mpnr- bzw. part_ipn-Spalte ausgefüllt gegeben ist. + + + Spalten beginnend mit part_manufacturer_ + + Falls der Hersteller eines Bauteils mit angepasst werden oder das Bauteil anhand der part_mpnr-Angabe eindeutig gesucht werden soll, muss eine der folgenden Spalten gegeben und ausgefüllt sein: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + Optional + Ganzzahl (Integer) + Ganzzahl (Integer) > 0. Entspricht der internen numerischen ID des Herstellers. + + + part_manufacturer_name + Optional + String + Anzugeben, falls keine part_manufacturer_id-Spalte ausgefüllt gegeben ist. + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + Erwartete Spalten: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + Hinweis: Es findet keine Zuordnung zu konkreten Bauteilen aus der Kategorie-Verwaltung statt.

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + Feld + Bedingung + Datentyp + Beschreibung + + + + + Id + Optional + Ganzzahl (Integer) + Offene Angabe. Eine eindeutige Identifikationsnummer für jedes Bauteil. + + + Designator + Optional + String + Offene Angabe. Ein eindeutiger Referenzbezeichner des Bauteils auf der Leiterplatte, z.B. „R1“ für Widerstand 1.
Wird in den Bestückungsnamen des Bauteil-Eintrags übernommen. + + + Package + Optional + String + Offene Angabe. Das Gehäuse oder die Bauform des Bauteils, z.B. „0805“ für SMD-Widerstände.
Wird für ein Bauteil-Eintrag nicht übernommen. + + + Quantity + Pflichtfeld + Ganzzahl (Integer) + Anzahl der identischen Bauteile, die benötigt werden, um eine Instanz zu erstellen.
Wird als Anzahl des Bauteil-Eintrags übernommen. + + + Designation + Pflichtfeld + String + Beschreibung oder Funktion des Bauteils, z.B. Widerstandswert „10kΩ“ oder Kondensatorwert „100nF“.
Wird in den Namen des Bauteil-Eintrags übernommen. + + + Supplier and ref + Optional + String + Offene Angabe. Kann z.B. Distributor spezifischen Wert enthalten.
Wird als Notiz zum Bauteil-Eintrag übernommen. + + + + ]]> +
+
+
project.bom_import.flash.invalid_file @@ -13410,7 +13735,7 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön name Optional String - Falls vorhanden, muss es ein nicht-leerer String sein. Name des Eintrags innerhalb der Baugruppe. + Falls vorhanden, muss es ein nicht-leerer String sein. Name des Eintrags innerhalb der Stückliste. part @@ -13510,13 +13835,13 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön - + assembly.bom_import.template.csv.exptected_columns Mögliche Spalten: - + assembly.bom_import.template.csv.table diff --git a/translations/messages.el.xlf b/translations/messages.el.xlf index a6dda3d4..3707e55d 100644 --- a/translations/messages.el.xlf +++ b/translations/messages.el.xlf @@ -2116,13 +2116,13 @@ - + assembly.bom_import.template.csv.exptected_columns Δυνατές στήλες: - + assembly.bom_import.template.csv.table diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index 080ef02e..25572459 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -11139,6 +11139,18 @@ Element 1 -> Element 1.2 Type + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11151,6 +11163,319 @@ Element 1 -> Element 1.2 Clear existing BOM entries before importing + + + project.import_bom.template.header.json + JSON Import Template + + + + + project.import_bom.template.header.csv + CSV Import Template + + + + + project.import_bom.template.header.kicad_pcbnew + CSV Import Template (KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + Component name in the project + + + + + project.bom_import.template.entry.part.mpnr + Unique product number within the manufacturer + + + + + project.bom_import.template.entry.part.ipn + Unique IPN of the component + + + + + project.bom_import.template.entry.part.name + Unique name of the component + + + + + project.bom_import.template.entry.part.manufacturer.name + Unique name of the manufacturer + + + + + project.bom_import.template.json.table + + + + + Field + Condition + Data Type + Description + + + + + quantity + Required + Decimal (Float) + Must be provided and contains a decimal value (Float) greater than 0.0. + + + name + Optional + String + If present, it must be a non-empty string. The name of the entry within the bill of materials. + + + part + Optional + Object/Array + + If a component is to be assigned, it must be an object/array, and at least one of the following fields must be filled in: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + Optional + Integer + Integer > 0. Corresponds to the internal numeric ID of the component in the Part-DB. + + + part.mpnr + Optional + String + A non-empty string if no part.id, part.ipn, or part.name is provided. + + + part.ipn + Optional + String + A non-empty string if no part.id, part.mpnr, or part.name is provided. + + + part.name + Optional + String + A non-empty string if no part.id, part.mpnr, or part.ipn is provided. + + + part.manufacturer + Optional + Object/Array + + If a component's manufacturer is to be adjusted, or the component is to be unambiguously identified based on part.mpnr, it must be an object/array, and at least one of the following fields must be filled in: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + Optional + Integer + Integer > 0. Corresponds to the internal numeric ID of the manufacturer. + + + manufacturer.name + Optional + String + A non-empty string if no manufacturer.id is provided. + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + Possible columns: + + + + + project.bom_import.template.csv.table + + + + + Column + Condition + Data Type + Description + + + + + quantity + Required + Floating-point number (Float) + Must be provided and contain a floating-point value (Float) greater than 0.0. + + + name + Optional + String + If available, it must be a non-empty string. The name of the entry within the bill of materials. + + + Columns starting with part_ + + If a component is to be assigned, at least one of the following columns must be provided and filled in: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + Optional + Integer + Integer > 0. Corresponds to the internal numeric ID of the component in the Part-DB. + + + part_mpnr + Optional + String + Must be provided if the part_id, part_ipn, or part_name columns are not filled in. + + + part_ipn + Optional + String + Must be provided if the part_id, part_mpnr, or part_name columns are not filled in. + + + part_name + Optional + String + Must be provided if the part_id, part_mpnr, or part_ipn columns are not filled in. + + + Columns starting with part_manufacturer_ + + If the manufacturer of a component is to be adjusted or if the component is to be uniquely identified based on the part_mpnr, at least one of the following columns must be provided and filled in: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + Optional + Integer + Integer > 0. Corresponds to the internal numeric ID of the manufacturer. + + + part_manufacturer_name + Optional + String + Must be provided if the part_manufacturer_id column is not filled in. + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + Expected columns: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + Note: No assignment to specific components from the category management is performed.

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + Field + Condition + Data type + Description + + + + + Id + Optional + Integer + Free entry. A unique identification number for each component. + + + Designator + Optional + String + Free entry. A unique reference identifier of the component on the PCB, e.g., "R1" for resistor 1.
It is adopted into the assembly name of the component entry. + + + Package + Optional + String + Free entry. The housing or package type of the component, e.g., "0805" for SMD resistors.
It is not adopted into the component entry. + + + Quantity + Mandatory + Integer + The number of identical components required to create an instance.
It is adopted as the quantity of the entry. + + + Designation + Mandatory + String + Description or function of the component, e.g., resistor value "10kΩ" or capacitor value "100nF".
It is adopted into the name of the component entry. + + + Supplier and ref + Optional + String + Free entry. Can contain a distributor-specific value, for example.
It is adopted as a note to the component entry. + + + + ]]> +
+
+
project.bom_import.clear_existing_bom.help diff --git a/translations/messages.es.xlf b/translations/messages.es.xlf index 0ff8df3f..56bcf2a5 100644 --- a/translations/messages.es.xlf +++ b/translations/messages.es.xlf @@ -11076,6 +11076,18 @@ Elemento 3 Tipo + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11088,6 +11100,319 @@ Elemento 3 Eliminar entradas BOM existentes antes de importar + + + project.import_bom.template.header.json + Plantilla de importación JSON + + + + + project.import_bom.template.header.csv + Plantilla de importación CSV + + + + + project.import_bom.template.header.kicad_pcbnew + Plantilla de importación CSV (KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + Nombre del componente en el proyecto + + + + + project.bom_import.template.entry.part.mpnr + Número de producto único del fabricante + + + + + project.bom_import.template.entry.part.ipn + IPN único del componente + + + + + project.bom_import.template.entry.part.name + Nombre único del componente + + + + + project.bom_import.template.entry.part.manufacturer.name + Nombre único del fabricante + + + + + project.bom_import.template.json.table + + + + + Campo + Condición + Tipo de Datos + Descripción + + + + + quantity + Requerido + Decimal (Float) + Debe ser proporcionado y contener un valor decimal (Float) mayor que 0.0. + + + name + Opcional + Cadena (String) + Si está presente, debe ser una cadena no vacía. El nombre del elemento dentro de la lista de materiales. + + + part + Opcional + Objeto/Array + + Si se debe asignar un componente, debe ser un objeto/array, y al menos uno de los siguientes campos debe estar cumplimentado: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + Opcional + Entero (Integer) + Entero (Integer) > 0. Corresponde al ID numérico interno del componente en la base de datos de componentes (Part-DB). + + + part.mpnr + Opcional + Cadena (String) + Una cadena no vacía si no se proporciona part.id, part.ipn o part.name. + + + part.ipn + Opcional + Cadena (String) + Una cadena no vacía si no se proporciona part.id, part.mpnr o part.name. + + + part.name + Opcional + Cadena (String) + Una cadena no vacía si no se proporciona part.id, part.mpnr o part.ipn. + + + part.manufacturer + Opcional + Objeto/Array + + Si se debe ajustar el fabricante de un componente, o si el componente debe identificarse de manera unívoca en base a part.mpnr, debe ser un objeto/array, y al menos uno de los siguientes campos debe estar cumplimentado: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + Opcional + Entero (Integer) + Entero (Integer) > 0. Corresponde al ID numérico interno del fabricante. + + + manufacturer.name + Opcional + Cadena (String) + Una cadena no vacía si no se proporciona manufacturer.id. + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + Columnas posibles: + + + + + project.bom_import.template.csv.table + + + + + Columna + Condición + Tipo de dato + Descripción + + + + + quantity + Obligatoria + Número decimal (Float) + Debe proporcionarse y contener un valor decimal (Float) mayor que 0.0. + + + name + Optional + String + Si está disponible, debe ser una cadena no vacía. El nombre del elemento dentro de la lista de materiales. + + + Columnas que comienzan con part_ + + Si se va a asignar un componente, al menos una de las siguientes columnas debe proporcionarse y completarse: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + Opcional + Entero + Entero > 0. Corresponde al ID numérico interno del componente en la base de datos de partes (Part-DB). + + + part_mpnr + Opcional + Cadena (String) + Debe proporcionarse si las columnas part_id, part_ipn o part_name no están completas. + + + part_ipn + Opcional + Cadena (String) + Debe proporcionarse si las columnas part_id, part_mpnr o part_name no están completas. + + + part_name + Opcional + Cadena (String) + Debe proporcionarse si las columnas part_id, part_mpnr o part_ipn no están completas. + + + Columnas que comienzan con part_manufacturer_ + + Si el fabricante de un componente debe ajustarse o si el componente debe identificarse de forma única según el valor part_mpnr, al menos una de las siguientes columnas debe proporcionarse y completarse: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + Opcional + Entero + Entero > 0. Corresponde al ID numérico interno del fabricante. + + + part_manufacturer_name + Opcional + Cadena (String) + Debe proporcionarse si la columna part_manufacturer_id no está completa. + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + Columnas esperadas: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + Nota: No se realiza ninguna asignación a componentes específicos desde la gestión de categorías.

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + Campo + Condición + Tipo de dato + Descripción + + + + + Id + Opcional + Entero + Entrada libre. Un número de identificación único para cada componente. + + + Designator + Opcional + Cadena (String) + Entrada libre. Un identificador de referencia único del componente en el PCB, por ejemplo, "R1" para la resistencia 1.
Se adopta en el nombre de ensamblaje del registro del componente. + + + Package + Opcional + Cadena (String) + Entrada libre. El encapsulado o tipo de la carcasa del componente, por ejemplo, "0805" para resistencias SMD.
No se adopta en el registro del componente. + + + Quantity + Obligatorio + Entero + El número de componentes idénticos necesarios para crear una instancia.
Se toma como la cantidad de la entrada del componente. + + + Designation + Obligatorio + Cadena (String) + Descripción o función del componente, por ejemplo, valor de resistencia "10kΩ" o valor de condensador "100nF".
Se adopta en el nombre del registro del componente. + + + Supplier and ref + Opcional + Cadena (String) + Entrada libre. Puede contener, por ejemplo, un valor específico del distribuidor.
Se adopta como una nota en el registro del componente. + + + + ]]> +
+
+
project.bom_import.clear_existing_bom.help @@ -12949,13 +13274,13 @@ Por favor ten en cuenta que no puedes personificar a un usuario deshabilitado. S - + assembly.bom_import.template.csv.exptected_columns Columnas posibles: - + assembly.bom_import.template.csv.table diff --git a/translations/messages.fr.xlf b/translations/messages.fr.xlf index 234dee6e..6d455221 100644 --- a/translations/messages.fr.xlf +++ b/translations/messages.fr.xlf @@ -9481,6 +9481,18 @@ exemple de ville CSV pour un assemblage + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + assembly.bom_import.type.kicad_pcbnew diff --git a/translations/messages.it.xlf b/translations/messages.it.xlf index 57654f44..1f56dfc9 100644 --- a/translations/messages.it.xlf +++ b/translations/messages.it.xlf @@ -11078,6 +11078,18 @@ Element 3 Tipo + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11090,6 +11102,319 @@ Element 3 Cancellare le voci della BOM (lista dei materiali) esistenti prima dell'importazione + + + project.import_bom.template.header.json + Modello di importazione JSON + + + + + project.import_bom.template.header.csv + Modello di importazione CSV + + + + + project.import_bom.template.header.kicad_pcbnew + Modello di importazione CSV (KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + Nome del componente nel progetto + + + + + project.bom_import.template.entry.part.mpnr + Codice prodotto unico del produttore + + + + + project.bom_import.template.entry.part.ipn + IPN unico del componente + + + + + project.bom_import.template.entry.part.name + Nome unico del componente + + + + + project.bom_import.template.entry.part.manufacturer.name + Nome unico del produttore + + + + + project.bom_import.template.json.table + + + + + Campo + Condizione + Tipo di Dati + Descrizione + + + + + quantity + Obbligatorio + Decimale (Float) + Deve essere fornito e contenere un valore decimale (Float) maggiore di 0.0. + + + name + Opzionale + Stringa (String) + Se presente, deve essere una stringa non vuota. Il nome dell'elemento all'interno della distinta materiali. + + + part + Opzionale + Oggetto/Array + + Se un componente deve essere assegnato, deve essere un oggetto/array e almeno uno dei seguenti campi deve essere compilato: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + Opzionale + Intero (Integer) + Intero (Integer) > 0. Corrisponde all'ID numerico interno del componente nel database delle parti (Part-DB). + + + part.mpnr + Opzionale + Stringa (String) + Una stringa non vuota se non sono forniti part.id, part.ipn o part.name. + + + part.ipn + Opzionale + Stringa (String) + Una stringa non vuota se non sono forniti part.id, part.mpnr o part.name. + + + part.name + Opzionale + Stringa (String) + Una stringa non vuota se non sono forniti part.id, part.mpnr o part.ipn. + + + part.manufacturer + Opzionale + Oggetto/Array + + Se il produttore di un componente deve essere modificato o se è necessario identificare univocamente il componente basandosi su part.mpnr, deve essere un oggetto/array e almeno uno dei seguenti campi deve essere compilato: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + Opzionale + Intero (Integer) + Intero (Integer) > 0. Corrisponde all'ID numerico interno del produttore. + + + manufacturer.name + Opzionale + Stringa (String) + Una stringa non vuota se non è fornito manufacturer.id. + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + Colonne possibili: + + + + + project.bom_import.template.csv.table + + + + + Colonna + Condizione + Tipo di dato + Descrizione + + + + + quantity + Obbligatoria + Numero decimale (Float) + Deve essere fornita e contenere un valore decimale (Float) maggiore di 0.0. + + + name + Optional + String + Se disponibile, deve essere una stringa non vuota. Il nome della voce all'interno della distinta base. + + + Colonne che iniziano con part_ + + Se un componente deve essere assegnato, almeno una delle seguenti colonne deve essere fornita e compilata: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + Opzionale + Intero (Integer) + Intero > 0. Corrisponde all'ID numerico interno del componente nel database delle parti (Part-DB). + + + part_mpnr + Opzionale + Stringa (String) + Deve essere fornita se le colonne part_id, part_ipn o part_name non sono compilate. + + + part_ipn + Opzionale + Stringa (String) + Deve essere fornita se le colonne part_id, part_mpnr o part_name non sono compilate. + + + part_name + Opzionale + Stringa (String) + Deve essere fornita se le colonne part_id, part_mpnr o part_ipn non sono compilate. + + + Colonne che iniziano con part_manufacturer_ + + Se il produttore di un componente deve essere modificato o il componente deve essere identificato univocamente in base al valore part_mpnr, almeno una delle seguenti colonne deve essere fornita e compilata: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + Opzionale + Intero (Integer) + Intero > 0. Corrisponde all'ID numerico interno del produttore. + + + part_manufacturer_name + Opzionale + Stringa (String) + Deve essere fornita se la colonna part_manufacturer_id non è compilata. + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + Colonne previste: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + Nota: Non viene effettuata alcuna associazione con componenti specifici dalla gestione delle categorie.

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + Campo + Condizione + Tipo di dato + Descrizione + + + + + Id + Opzionale + Numero intero + Valore libero. Un numero identificativo univoco per ciascun componente. + + + Designator + Opzionale + Stringa + Valore libero. Un identificatore di riferimento univoco del componente sul PCB, ad esempio "R1" per il resistore 1.
Viene trasferito nel nome di montaggio del record del componente. + + + Package + Opzionale + Stringa + Valore libero. L'involucro o la forma del componente, ad esempio "0805" per i resistori SMD.
Non viene trasferito nel record del componente. + + + Quantity + Campo obbligatorio + Numero intero + Il numero dei componenti identici necessari per creare un'istanza.
Registrato come il numero della voce del componente. + + + Designation + Campo obbligatorio + Stringa + Descrizione o funzione del componente, ad esempio valore del resistore "10kΩ" o valore del condensatore "100nF".
Viene trasferita nel nome del record del componente. + + + Supplier and ref + Opzionale + Stringa + Valore libero. Può contenere ad esempio un valore specifico del distributore.
Viene trasferito come nota nel record del componente. + + + + ]]> +
+
+
project.bom_import.clear_existing_bom.help @@ -12927,13 +13252,13 @@ Notare che non è possibile impersonare un utente disattivato. Quando si prova a - + assembly.bom_import.template.csv.exptected_columns Colonne possibili: - + assembly.bom_import.template.csv.table diff --git a/translations/messages.ja.xlf b/translations/messages.ja.xlf index 2ff7a744..8991fc17 100644 --- a/translations/messages.ja.xlf +++ b/translations/messages.ja.xlf @@ -9403,13 +9403,13 @@ Exampletown - + assembly.bom_import.template.csv.exptected_columns 可能なカラム: - + assembly.bom_import.template.csv.table diff --git a/translations/messages.nl.xlf b/translations/messages.nl.xlf index be8728ce..9525ba29 100644 --- a/translations/messages.nl.xlf +++ b/translations/messages.nl.xlf @@ -1341,13 +1341,13 @@ - + assembly.bom_import.template.csv.exptected_columns Mogelijke kolommen: - + assembly.bom_import.template.csv.table diff --git a/translations/messages.pl.xlf b/translations/messages.pl.xlf index d48e0d93..c221767b 100644 --- a/translations/messages.pl.xlf +++ b/translations/messages.pl.xlf @@ -11081,6 +11081,18 @@ Element 3 Typ + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11093,6 +11105,319 @@ Element 3 Wyczyść istniejące wpisy BOM przed importem + + + project.import_bom.template.header.json + Szablon importu JSON + + + + + project.import_bom.template.header.csv + Szablon importu CSV + + + + + project.import_bom.template.header.kicad_pcbnew + Szablon importu CSV (KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + Nazwa komponentu w projekcie + + + + + project.bom_import.template.entry.part.mpnr + Unikalny numer produktu producenta + + + + + project.bom_import.template.entry.part.ipn + Unikalny IPN komponentu + + + + + project.bom_import.template.entry.part.name + Unikalna nazwa komponentu + + + + + project.bom_import.template.entry.part.manufacturer.name + Unikalna nazwa producenta + + + + + project.bom_import.template.json.table + + + + + Pole + Warunek + Typ Danych + Opis + + + + + quantity + Wymagane + Dziesiętny (Float) + Musi być podane i zawierać wartość dziesiętną (Float) większą niż 0.0. + + + name + Opcjonalne + Ciąg (String) + Jeśli jest obecny, musi być niepustym ciągiem znaków. Nazwa elementu w wykazie materiałów. + + + part + Opcjonalne + Obiekt/Tablica + + Jeśli komponent musi być przypisany, musi być obiektem/tablą i co najmniej jedno z następujących pól musi zostać wypełnione: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + Opcjonalne + Całkowity (Integer) + Całkowity (Integer) > 0. Odpowiada wewnętrznemu numerycznemu identyfikatorowi komponentu w bazie danych części (Part-DB). + + + part.mpnr + Opcjonalne + Ciag (String) + Niepusty ciąg, jeśli part.id, part.ipn ani part.name nie zostały podane. + + + part.ipn + Opcjonalne + Ciag (String) + Niepusty ciąg, jeśli part.id, part.mpnr ani part.name nie zostały podane. + + + part.name + Opcjonalne + Ciag (String) + Niepusty ciąg, jeśli part.id, part.mpnr ani part.ipn nie zostały podane. + + + part.manufacturer + Opcjonalne + Obiekt/Tablica + + Jeśli producent komponentu musi zostać dostosowany lub komponent musi zostać jednoznacznie zidentyfikowany na podstawie part.mpnr, musi być obiektem/tablą, a co najmniej jedno z następujących pól musi zostać wypełnione: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + Opcjonalne + Całkowity (Integer) + Całkowity (Integer) > 0. Odpowiada wewnętrznemu numerycznemu identyfikatorowi producenta. + + + manufacturer.name + Opcjonalne + Ciag (String) + Niepusty ciąg, jeśli manufacturer.id nie został podany. + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + Możliwe kolumny: + + + + + project.bom_import.template.csv.table + + + + + Kolumna + Warunek + Typ danych + Opis + + + + + quantity + Wymagana + Liczba zmiennoprzecinkowa (Float) + Liczba identycznych komponentów potrzebnych do utworzenia instancji.
Traktowane jako liczba wpisów komponentu. + + + name + Optional + String + Jeśli dostępny, musi być niepustym ciągiem znaków. Nazwa elementu w wykazie materiałów. + + + Kolumny zaczynające się od part_ + + Jeśli ma zostać przypisany komponent, co najmniej jedna z poniższych kolumn musi zostać podana i uzupełniona: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + Opcjonalna + Liczba całkowita (Integer) + Liczba całkowita > 0. Odpowiada wewnętrznemu ID numerycznemu komponentu w Part-DB. + + + part_mpnr + Opcjonalna + Cišg znaków (String) + Musi być podana, jeśli kolumny part_id, part_ipn ani part_name nie są podane. + + + part_ipn + Opcjonalna + Cišg znaków (String) + Musi być podana, jeśli kolumny part_id, part_mpnr ani part_name nie są podane. + + + part_name + Opcjonalna + Cišg znaków (String) + Musi być podana, jeśli kolumny part_id, part_mpnr ani part_ipn nie są podane. + + + Kolumny zaczynające się od part_manufacturer_ + + Jeśli producent komponentu ma zostać zmieniony lub komponent ma zostać jednoznacznie zidentyfikowany na podstawie wartości part_mpnr, co najmniej jedna z poniższych kolumn musi zostać podana i uzupełniona: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + Opcjonalna + Liczba całkowita (Integer) + Liczba całkowita > 0. Odpowiada wewnętrznemu numerycznemu ID producenta. + + + part_manufacturer_name + Opcjonalna + Cišg znaków (String) + Musi być podana, jeśli kolumna part_manufacturer_id nie jest uzupełniona. + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + Oczekiwane kolumny: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + Uwaga: Nie następuje przypisanie do konkretnych komponentów z zarządzania kategoriami.

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + Pole + Warunek + Typ danych + Opis + + + + + Id + Opcjonalne + Liczba całkowita (Integer) + Dowolna wartość. Unikalny numer identyfikacyjny dla każdego komponentu. + + + Designator + Opcjonalne + String + Dowolna wartość. Unikalny identyfikator referencyjny komponentu na płytce PCB, np. „R1” dla rezystora 1.
Zostaje przeniesiony do nazwy montażowej wpisu komponentu. + + + Package + Opcjonalne + String + Dowolna wartość. Obudowa lub typ komponentu, np. „0805” dla rezystorów SMD.
Nie zostaje przeniesiony do wpisu komponentu. + + + Quantity + Pole obowiązkowe + Liczba całkowita (Integer) + Liczba identycznych komponentów potrzebnych do stworzenia instancji zestawu.
Zostaje przeniesiona jako ilość wpisu komponentu. + + + Designation + Pole obowiązkowe + String + Opis lub funkcja komponentu, np. wartość rezystora „10kΩ” lub wartość kondensatora „100nF”.
Zostaje przeniesiony do nazwy wpisu komponentu. + + + Supplier and ref + Opcjonalne + String + Dowolna wartość. Może zawierać np. wartość specyficzną dla dystrybutora.
Zostaje przeniesiona jako notatka do wpisu komponentu. + + + + ]]> +
+
+
project.bom_import.clear_existing_bom.help @@ -12804,13 +13129,13 @@ Należy pamiętać, że nie możesz udawać nieaktywnych użytkowników. Jeśli - + assembly.bom_import.template.csv.exptected_columns Możliwe kolumny: - + assembly.bom_import.template.csv.table diff --git a/translations/messages.ru.xlf b/translations/messages.ru.xlf index f27cd858..5d4c8885 100644 --- a/translations/messages.ru.xlf +++ b/translations/messages.ru.xlf @@ -11085,6 +11085,18 @@ Тип + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11097,6 +11109,319 @@ Удалить существующие записи BOM перед импортом. + + + project.import_bom.template.header.json + Шаблон импорта JSON + + + + + project.import_bom.template.header.csv + Шаблон импорта CSV + + + + + project.import_bom.template.header.kicad_pcbnew + Шаблон импорта CSV (KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + Название компонента в проекте + + + + + project.bom_import.template.entry.part.mpnr + Уникальный номер продукта производителя + + + + + project.bom_import.template.entry.part.ipn + Уникальный IPN компонента + + + + + project.bom_import.template.entry.part.name + Уникальное название компонента + + + + + project.bom_import.template.entry.part.manufacturer.name + Уникальное название производителя + + + + + project.bom_import.template.json.table + + + + + Поле + Условие + Тип данных + Описание + + + + + quantity + Обязательно + Дробное число (Float) + Должно быть указано и содержать дробное значение (Float), большее 0.0. + + + name + Опционально + Строка (String) + Если присутствует, должно быть непустой строкой. Название элемента в спецификации материалов. + + + part + Опционально + Объект/Массив + + Если необходимо назначить компонент, он должен быть объектом/массивом, и должно быть заполнено хотя бы одно из следующих полей: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + Опционально + Целое число (Integer) + Целое число (Integer) > 0. Соответствует внутреннему числовому идентификатору компонента в базе данных компонентов (Part-DB). + + + part.mpnr + Опционально + Строка (String) + Непустая строка, если не указаны part.id, part.ipn или part.name. + + + part.ipn + Опционально + Строка (String) + Непустая строка, если не указаны part.id, part.mpnr или part.name. + + + part.name + Опционально + Строка (String) + Непустая строка, если не указаны part.id, part.mpnr или part.ipn. + + + part.manufacturer + Опционально + Объект/Массив + + Если необходимо указать производителя компонента или однозначно идентифицировать компонент на основе part.mpnr, он должен быть объектом/массивом, и хотя бы одно из следующих полей должно быть заполнено: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + Опционально + Целое число (Integer) + Целое число (Integer) > 0. Соответствует внутреннему числовому идентификатору производителя. + + + manufacturer.name + Опционально + Строка (String) + Непустая строка, если manufacturer.id не указан. + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + Возможные колонки: + + + + + project.bom_import.template.csv.table + + + + + Колонка + Условие + Тип данных + Описание + + + + + quantity + Обязательная + Число с плавающей запятой (Float) + Количество идентичных компонентов, необходимых для создания экземпляра.
Считается количеством записей компонента. + + + name + Optional + String + Если доступно, должна быть непустая строка. Название элемента в спецификации материалов. + + + Колонки, начинающиеся с part_ + + Если нужно назначить компонент, должна быть указана и заполнена по крайней мере одна из следующих колонок: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + Необязательная + Целое число (Integer) + Целое > 0. Соответствует внутреннему числовому ID компонента в базе данных компонентов (Part-DB). + + + part_mpnr + Необязательная + Строка (String) + Должна быть указана, если колонки part_id, part_ipn или part_name не заполнены. + + + part_ipn + Необязательная + Строка (String) + Должна быть указана, если колонки part_id, part_mpnr или part_name не заполнены. + + + part_name + Необязательная + Строка (String) + Должна быть указана, если колонки part_id, part_mpnr или part_ipn не заполнены. + + + Колонки, начинающиеся с part_manufacturer_ + + Если требуется указать производителя компонента или уникально идентифицировать компонент на основе значения part_mpnr, должна быть указана и заполнена по крайней мере одна из следующих колонок: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + Необязательная + Целое число (Integer) + Целое > 0. Соответствует внутреннему числовому ID производителя. + + + part_manufacturer_name + Необязательная + Строка (String) + Должна быть указана, если колонка part_manufacturer_id не заполнена. + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + Ожидаемые столбцы: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + Примечание: Не выполняется привязка к конкретным компонентам из управления категориями.

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + Поле + Условие + Тип данных + Описание + + + + + Id + Необязательно + Целое число (Integer) + Свободный ввод. Уникальный идентификационный номер для каждого компонента. + + + Designator + Необязательно + Строка (String) + Свободный ввод. Уникальный идентификатор компонента на печатной плате, например, «R1» для резистора 1.
Добавляется в название сборочного узла записи компонента. + + + Package + Необязательно + Строка (String) + Свободный ввод. Корпус или тип компонента, например, «0805» для SMD резисторов.
Не добавляется в запись компонента. + + + Quantity + Обязательно + Целое число (Integer) + Число идентичных компонентов, необходимых для создания экземпляра сборки.
Добавляется как количество записи компонента. + + + Designation + Обязательно + Строка (String) + Описание или функция компонента, например, значение резистора «10kΩ» или значение конденсатора «100nF».
Добавляется в название записи компонента. + + + Supplier and ref + Необязательно + Строка (String) + Свободный ввод. Может содержать дистрибьюторское значение, например.
Добавляется как примечание к записи компонента. + + + + ]]> +
+
+
project.bom_import.clear_existing_bom.help @@ -12904,13 +13229,13 @@ - + assembly.bom_import.template.csv.exptected_columns Возможные столбцы: - + assembly.bom_import.template.csv.table diff --git a/translations/messages.zh.xlf b/translations/messages.zh.xlf index 9fd6855a..3a6f5375 100644 --- a/translations/messages.zh.xlf +++ b/translations/messages.zh.xlf @@ -11084,6 +11084,18 @@ Element 3 Type + + + assembly.bom_import.type.json + JSON + + + + + assembly.bom_import.type.csv + CSV + + project.bom_import.type.kicad_pcbnew @@ -11096,6 +11108,319 @@ Element 3 导入前删除现有BOM条目 + + + project.import_bom.template.header.json + JSON导入模板 + + + + + project.import_bom.template.header.csv + CSV导入模板 + + + + + project.import_bom.template.header.kicad_pcbnew + CSV导入模板(KiCAD Pcbnew BOM) + + + + + project.bom_import.template.entry.name + 项目中的组件名称 + + + + + project.bom_import.template.entry.part.mpnr + 制造商的唯一产品编号 + + + + + project.bom_import.template.entry.part.ipn + 唯一的组件IPN + + + + + project.bom_import.template.entry.part.name + 组件唯一名称 + + + + + project.bom_import.template.entry.part.manufacturer.name + 制造商唯一名称 + + + + + project.bom_import.template.json.table + + + + + 字段 + 条件 + 数据类型 + 描述 + + + + + quantity + 必填 + 小数 (Float) + 必须提供,并包含大于 0.0 的小数值 (Float)。 + + + name + 可选 + 字符串 (String) + 如果存在,必须是非空字符串。物料清单中元素的名称。 + + + part + 可选 + 对象/数组 + + 如果需要分配组件,则必须是对象/数组,并且以下字段中的至少一个必须填写: +
    +
  • part.id
  • +
  • part.mpnr
  • +
  • part.ipn
  • +
  • part.name
  • +
+ + + + part.id + 可选 + 整数 (Integer) + 整数 (Integer) > 0。对应于零件数据库 (Part-DB) 中组件的内部数字 ID。 + + + part.mpnr + 可选 + 字符串 (String) + 如果未提供 part.id、part.ipn 或 part.name,则为非空字符串。 + + + part.ipn + 可选 + 字符串 (String) + 如果未提供 part.id、part.mpnr 或 part.name,则为非空字符串。 + + + part.name + 可选 + 字符串 (String) + 如果未提供 part.id、part.mpnr 或 part.ipn,则为非空字符串。 + + + part.manufacturer + 可选 + 对象/数组 + + 如果需要调整组件的制造商,或者需要基于 part.mpnr 唯一标识组件,则必须是对象/数组,并且以下字段中的至少一个必须填写: +
    +
  • manufacturer.id
  • +
  • manufacturer.name
  • +
+ + + + manufacturer.id + 可选 + 整数 (Integer) + 整数 (Integer) > 0。对应于制造商的内部数字 ID。 + + + manufacturer.name + 可选 + 字符串 (String) + 如果未提供 manufacturer.id,则为非空字符串。 + + + + ]]> +
+
+
+ + + project.bom_import.template.csv.exptected_columns + 可能的列: + + + + + project.bom_import.template.csv.table + + + + + 列 + 条件 + 数据类型 + 描述 + + + + + quantity + 必填 + 浮点数 (Float) + 创建一个实例所需的相同组件数量。
记录为组件条目的数量。 + + + name + Optional + String + 如果可用,则必须是非空字符串。材料清单中项目的名称。 + + + 以 part_ 开头的列 + + 如果需要分配一个组件,必须提供并填写以下列之一: +
    +
  • part_id
  • +
  • part_mpnr
  • +
  • part_ipn
  • +
  • part_name
  • +
+ + + + part_id + 可选 + 整数 (Integer) + 整数 > 0。对应于零件数据库 (Part-DB) 中组件的内部数字 ID。 + + + part_mpnr + 可选 + 字符串 (String) + 如果 part_id、part_ipn 或 part_name 列未填写,则必须提供此列。 + + + part_ipn + 可选 + 字符串 (String) + 如果 part_id、part_mpnr 或 part_name 列未填写,则必须提供此列。 + + + part_name + 可选 + 字符串 (String) + 如果 part_id、part_mpnr 或 part_ipn 列未填写,则必须提供此列。 + + + 以 part_manufacturer_ 开头的列 + + 如果需要调整组件的制造商,或者组件需要根据 part_mpnr 值唯一标识,必须提供并填写以下列之一: +
    +
  • part_manufacturer_id
  • +
  • part_manufacturer_name
  • +
+ + + + part_manufacturer_id + 可选 + 整数 (Integer) + 整数 > 0。对应于制造商的内部数字 ID。 + + + part_manufacturer_name + 可选 + 字符串 (String) + 如果 part_manufacturer_id 列未填写,则必须提供此列。 + + + + ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.exptected_columns + 预期的列: + + + + + project.bom_import.template.kicad_pcbnew.exptected_columns.note + + 注意:分类管理中不会执行与特定组件的映射。

+ ]]> +
+
+
+ + + project.bom_import.template.kicad_pcbnew.table + + + + + 字段 + 条件 + 数据类型 + 描述 + + + + + Id + 可选 + 整数 + 自由输入。每个组件的唯一标识编号。 + + + Designator + 可选 + 字符串 (String) + 自由输入。PCB 上组件的唯一参考标识符,例如“R1”代表电阻 1。
会被采用到组件记录的装配名称中。 + + + Package + 可选 + 字符串 (String) + 自由输入。组件的封装或形状,例如 "0805" 表示 SMD 电阻。
不会被采用到组件记录中。 + + + Quantity + 必填 + 整数 + 创建组件实例所需的相同组件的数量。
会被采用为组件记录的数量。 + + + Designation + 必填 + 字符串 (String) + 组件的描述或功能,例如电阻值 “10kΩ” 或电容值 “100nF”。
会被采用到组件记录的名称中。 + + + Supplier and ref + 可选 + 字符串 (String) + 自由输入。例如,可以包含供应商的特定值。
会被采用为组件记录的备注。 + + + + ]]> +
+
+
project.bom_import.clear_existing_bom.help @@ -12789,13 +13114,13 @@ Element 3 - + assembly.bom_import.template.csv.exptected_columns 可用列: - + assembly.bom_import.template.csv.table