request = $request; $this->resource = $resource; $this->ordershipment = $ordershipment; $this->helper = $helper; $this->json = $json; $this->logger = $logger; $this->netsuiteupdateinvoicepdf = $netsuiteupdateinvoicepdf; } public function updateInvoicePdf() { $responseData = []; $responseData['success'] = NetSuiteConstants::NETSUITE_DEFAULT_ERROR_CODE; $responseData['message'] = NetSuiteConstants::NETSUITE_DISABLE_MESSAGE; if ($this->helper->getNetSuiteIsEnabled() && $this->helper->getNetsuiteUpdateInvoicepdfEnabled()) { $this->logger->initLog(NetSuiteConstants::NETSUITE_CREATE_UPDATEPDF_LOG_FILENAME); $this->logger->writeLog('----------------------------'); $this->logger->writeLog('Update invoice pdf Started'); $this->logger->writeLog('----------------------------'); $this->logger->writeLog(''); $postData = $this->request->getBodyParams(); try { if ($postData['magento_shipment_id']) { $this->logger->writeLog('Magento Shipment Id: '.$postData['magento_shipment_id']); $postDataarray = []; $postDataarray['ns_fulfillment_id'] = $postData['ns_fulfillment_id']; $postDataarray['ns_fulfillment_number'] = $postData['ns_fulfillment_number']; $postDataarray['magento_shipment_id'] = $postData['magento_shipment_id']; $postDataarray['invoice_url'] = $postData['invoice_url']; foreach ($postDataarray as $key => $postvalue) { if ($postvalue == "") { $this->logger->writeLog('Please add required fields'); $responseData['success'] = false; $responseData['message'] = "Please add required fields"; return [$responseData]; } } $getshipmentid = $this->getordershipment($postData['magento_shipment_id']); if ($getshipmentid != "") { $netsuiteShipmentsModel = $this->netsuiteupdateinvoicepdf->create(); $netsuiteShipmentsModel->setMagentoShipmentId($postData['magento_shipment_id']); $netsuiteShipmentsModel->setFulfillmentId($postData['ns_fulfillment_id']); $netsuiteShipmentsModel->setFulfillmentNumber($postData['ns_fulfillment_number']); $netsuiteShipmentsModel->setInvoiceUrl($postData['invoice_url']); $netsuiteShipmentsModel->setStatus("completed"); $jsonData = $this->json->serialize($postData); $netsuiteShipmentsModel->setJsonData($jsonData); $netsuiteShipmentsModel->setMessages("Update Invoice PDF successfully."); $netsuiteShipmentsModel->save(); //update data for shipment table $connection = $this->resource->getConnection(); $data = []; $data['ns_invoice_url'] = $postData['invoice_url']; $where = ['increment_id = ?' => $postData['magento_shipment_id']]; /* update sales_shipment_grid */ $tableName = $connection->getTableName("sales_shipment_grid"); $connection->update($tableName, $data, $where); /* update sales_shipment */ $tableName = $connection->getTableName("sales_shipment"); $connection->update($tableName, $data, $where); $this->logger->writeLog('Invoice URL updated successfully'); $responseData['success'] = true; $responseData['message'] = "Invoice URL updated successfully"; $responseData['magento_shipment_id'] = $postData['magento_shipment_id']; } else { $this->logger->writeLog('Shipment id not found in system ='.$postData['magento_shipment_id']); $responseData['success'] = false; $responseData['message'] = "Shipment id not found in system"; } } else { $this->logger->writeLog('magento_shipment_id field can\'t be empty'); $responseData['success'] = false; $responseData['message'] = "magento_shipment_id field can't be empty"; } } catch (Exception $e) { $responseData['success'] = false; $responseData['message'] = 'Exception : '.$e->getMessage(); $this->logger->writeLog('Exception: '.$e->getMessage()); } $this->logger->writeLog(''); $this->logger->writeLog('----------------------------'); $this->logger->writeLog('Update invoice pdf Stopped'); $this->logger->writeLog('----------------------------'); } return [$responseData]; } public function getordershipment(string $incrementshipId) { $shipId = 0; try { $shipment = $this->ordershipment->loadByIncrementId($incrementshipId); $shipId = $shipment->getId(); return $shipId; } catch (Exception $e) { return $shipId; } } }