diff --git a/app/Import/Providers/Quickbooks.php b/app/Import/Providers/Quickbooks.php new file mode 100644 index 000000000000..99cdc3490310 --- /dev/null +++ b/app/Import/Providers/Quickbooks.php @@ -0,0 +1,101 @@ +{$entity}(); + } + + //collate any errors + + // $this->finalizeImport(); + } + + public function client() + { + $entity_type = 'client'; + $data = $this->getData($entity_type); + if (empty($data)) { + $this->entity_count['clients'] = 0; + + return; + } + + $this->request_name = StoreClientRequest::class; + $this->repository_name = ClientRepository::class; + $this->factory_name = ClientFactory::class; + $this->repository = app()->make($this->repository_name); + $this->repository->import_mode = true; + $this->transformer = new ClientTransformer($this->company); + $client_count = $this->ingest($data, $entity_type); + $this->entity_count['clients'] = $client_count; + } + + public function getData($type) { + + // get the data from cache? file? or api ? + return []; + } + + public function invoice() + { + //make sure we update and create products + $initial_update_products_value = $this->company->update_products; + $this->company->update_products = true; + + $this->company->save(); + + $entity_type = 'invoice'; + $data = $this->getData($entity_type); + + if (empty($data)) { + $this->entity_count['invoices'] = 0; + + return; + } + + $this->request_name = StoreInvoiceRequest::class; + $this->repository_name = InvoiceRepository::class; + $this->factory_name = InvoiceFactory::class; + $this->repository = app()->make($this->repository_name); + $this->repository->import_mode = true; + $this->transformer = new InvoiceTransformer($this->company); + $invoice_count = $this->ingestInvoices($data, 'Invoice #'); + $this->entity_count['invoices'] = $invoice_count; + $this->company->update_products = $initial_update_products_value; + $this->company->save(); + } +}