InstallData.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. /**
  3. * @copyright Vertex. All rights reserved. https://www.vertexinc.com/
  4. * @author Mediotype https://www.mediotype.com/
  5. */
  6. namespace Vertex\Tax\Setup;
  7. use Magento\Framework\Setup\InstallDataInterface;
  8. use Magento\Framework\Setup\ModuleContextInterface;
  9. use Magento\Framework\Setup\ModuleDataSetupInterface;
  10. use Magento\Tax\Api\TaxClassManagementInterface;
  11. /**
  12. * Data Installation Script
  13. *
  14. * @codeCoverageIgnore
  15. */
  16. class InstallData implements InstallDataInterface
  17. {
  18. /**
  19. * Install Tax Classes & Customer Attribute
  20. *
  21. * {@inheritDoc}
  22. *
  23. * MEQP2 Warning: $context necessary for interface
  24. *
  25. * @see \Magento\Framework\Setup\InstallDataInterface::install()
  26. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  27. */
  28. public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
  29. {
  30. $taxClassTable = $setup->getTable('tax_class');
  31. $select = $setup->getConnection()->select()->from($taxClassTable);
  32. $query = $setup->getConnection()->query($select);
  33. $results = $query->fetchAll();
  34. $classNames = array_map(
  35. function ($result) {
  36. return $result['class_name'];
  37. },
  38. $results
  39. );
  40. $data = [
  41. [
  42. 'class_name' => 'Refund Adjustments',
  43. 'class_type' => TaxClassManagementInterface::TYPE_PRODUCT
  44. ],
  45. [
  46. 'class_name' => 'Gift Options',
  47. 'class_type' => TaxClassManagementInterface::TYPE_PRODUCT
  48. ],
  49. [
  50. 'class_name' => 'Order Gift Wrapping',
  51. 'class_type' => TaxClassManagementInterface::TYPE_PRODUCT
  52. ],
  53. [
  54. 'class_name' => 'Item Gift Wrapping',
  55. 'class_type' => TaxClassManagementInterface::TYPE_PRODUCT
  56. ],
  57. [
  58. 'class_name' => 'Printed Gift Card',
  59. 'class_type' => TaxClassManagementInterface::TYPE_PRODUCT
  60. ],
  61. [
  62. 'class_name' => 'Reward Points',
  63. 'class_type' => TaxClassManagementInterface::TYPE_PRODUCT
  64. ]
  65. ];
  66. foreach ($data as $row) {
  67. if (!in_array($row['class_name'], $classNames, true)) {
  68. $setup->getConnection()->insertForce($taxClassTable, $row);
  69. }
  70. }
  71. }
  72. }