From 9dcf0fac77268793eeaea6702e38ea099e70fad3 Mon Sep 17 00:00:00 2001 From: karneaud Date: Tue, 13 Aug 2024 12:35:50 -0400 Subject: [PATCH] add product/items logic --- .../Import/Quickbooks/ItemRepository.php | 11 +++++++++++ .../Import/Quickbooks/Transformers/Transformer.php | 12 ++++++++++++ app/Services/Import/Quickbooks/Service.php | 11 +++++++++++ 3 files changed, 34 insertions(+) create mode 100644 app/Repositories/Import/Quickbooks/ItemRepository.php diff --git a/app/Repositories/Import/Quickbooks/ItemRepository.php b/app/Repositories/Import/Quickbooks/ItemRepository.php new file mode 100644 index 000000000000..caa1b69355dd --- /dev/null +++ b/app/Repositories/Import/Quickbooks/ItemRepository.php @@ -0,0 +1,11 @@ +transformation($items, [ + 'Name', + 'Description', + 'PurchaseCost', + 'UnitPrice', + 'QtyOnHand', + 'MetaData' + ]); + } + protected function transformation(array $items, array $keys) : Collection { return collect($items)->select($keys); diff --git a/app/Services/Import/Quickbooks/Service.php b/app/Services/Import/Quickbooks/Service.php index e4db2879e5b5..4001ea0c0c4d 100644 --- a/app/Services/Import/Quickbooks/Service.php +++ b/app/Services/Import/Quickbooks/Service.php @@ -40,6 +40,17 @@ final class Service return $this->transformer->transform($this->fetchRecords( 'Invoice', $max), 'Invoice'); } + + /** + * fetch QuickBooks product records + * @param int $max The maximum records to fetch. Default 100 + * @return Illuminate\Support\Collection; + */ + public function fetchItems(int $max = 100): Collection + { + return $this->fetchRecords('Item', $max) ; + } + protected function fetchRecords(string $entity, $max = 100) : Collection { return (self::RepositoryFactory($entity))->get($max); }