diff --git a/.docker/Dockerfile b/.docker/Dockerfile index cb967eb..3452dc8 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -17,6 +17,7 @@ RUN apt-get install -y zlib1g-dev libpq-dev git libicu-dev libxml2-dev libpng-de && docker-php-ext-install xsl \ && docker-php-ext-install mbstring +RUN apt-get install -y gettext RUN apt-get install -y subversion RUN apt-get install -y wget diff --git a/Makefile b/Makefile index f9e1098..7b6ab39 100644 --- a/Makefile +++ b/Makefile @@ -40,3 +40,8 @@ endif local_test: install phpunit -c phpunit.xml.dist + +run_tests: + docker-compose --no-ansi up -d --build mysql + docker-compose --no-ansi run --rm --no-deps app make local_test + docker-compose stop diff --git a/README.md b/README.md index 872c99c..dfb9d50 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,4 @@ Integration plugin for WooCommerce and [retailCRM](http://retailcrm.ru) #### Local testing -To local testing run `docker-compose up` +To local testing run `make run_tests` diff --git a/VERSION b/VERSION index c492825..40c341b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.5.6 +3.6.0 diff --git a/docker-compose.yml b/docker-compose.yml index 48ed647..a2663fe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,6 @@ services: user: ${UID:-1000}:${GID:-1000} depends_on: - mysql - entrypoint: make local_test env_file: - ./.env environment: diff --git a/resources/pot/retailcrm-es_ES.pot b/resources/pot/retailcrm-es_ES.pot index 034c141..0d5e56d 100644 --- a/resources/pot/retailcrm-es_ES.pot +++ b/resources/pot/retailcrm-es_ES.pot @@ -218,4 +218,7 @@ msgid "Enable transferring the number to retailCRM" msgstr "Activar la transferencia de números en retailCRM" msgid "Transferring the order number" -msgstr "Transferencia de un número de pedido" \ No newline at end of file +msgstr "Transferencia de un número de pedido" + +msgid "Transferring the payment amount" +msgstr "Transferencia de un monto de pago" diff --git a/resources/pot/retailcrm-ru_RU.pot b/resources/pot/retailcrm-ru_RU.pot index 49f83db..d8164b7 100644 --- a/resources/pot/retailcrm-ru_RU.pot +++ b/resources/pot/retailcrm-ru_RU.pot @@ -227,4 +227,7 @@ msgid "Enable transferring the number to retailCRM" msgstr "Активировать передачу номера в retailCRM" msgid "Transferring the order number" -msgstr "Передача номера заказа" \ No newline at end of file +msgstr "Передача номера заказа" + +msgid "Transferring the payment amount" +msgstr "Передача суммы оплаты" diff --git a/src/include/abstracts/class-wc-retailcrm-abstracts-settings.php b/src/include/abstracts/class-wc-retailcrm-abstracts-settings.php index 45bde07..a95f362 100644 --- a/src/include/abstracts/class-wc-retailcrm-abstracts-settings.php +++ b/src/include/abstracts/class-wc-retailcrm-abstracts-settings.php @@ -144,6 +144,15 @@ abstract class WC_Retailcrm_Abstracts_Settings extends WC_Integration 'desc_tip' => true, ); + $this->form_fields['send_payment_amount'] = array( + 'title' => __( 'Transferring the payment amount', 'retailcrm' ), + 'label' => ' ', + 'description' => '', + 'class' => 'checkbox', + 'type' => 'checkbox', + 'desc_tip' => true, + ); + $this->form_fields[] = array( 'title' => __( 'Catalog settings', 'retailcrm' ), 'type' => 'title', diff --git a/src/include/order/class-wc-retailcrm-order-payment.php b/src/include/order/class-wc-retailcrm-order-payment.php index c56e419..a1aa1a9 100644 --- a/src/include/order/class-wc-retailcrm-order-payment.php +++ b/src/include/order/class-wc-retailcrm-order-payment.php @@ -20,7 +20,6 @@ class WC_Retailcrm_Order_Payment extends WC_Retailcrm_Abstracts_Data /** @var array */ protected $data = array( 'externalId' => '', - 'amount' => 0.00, 'type' => '', 'order' => array() ); @@ -51,9 +50,13 @@ class WC_Retailcrm_Order_Payment extends WC_Retailcrm_Abstracts_Data */ public function build($order, $externalId = false) { - $data = array( - 'amount' => (double) $order->get_total() - ); + $data = array(); + + if (!empty($this->settings['send_payment_amount']) + && $this->settings['send_payment_amount'] === WC_Retailcrm_Base::YES + ) { + $data['amount'] = (double) $order->get_total(); + } if (!$this->is_new) { $data['externalId'] = $externalId; diff --git a/src/languages/retailcrm-es_ES.mo b/src/languages/retailcrm-es_ES.mo index ab3f8c4..45b2e9e 100644 Binary files a/src/languages/retailcrm-es_ES.mo and b/src/languages/retailcrm-es_ES.mo differ diff --git a/src/languages/retailcrm-ru_RU.mo b/src/languages/retailcrm-ru_RU.mo index 8c3749c..a379a3d 100644 Binary files a/src/languages/retailcrm-ru_RU.mo and b/src/languages/retailcrm-ru_RU.mo differ diff --git a/src/readme.txt b/src/readme.txt index 627587a..5414e2a 100644 --- a/src/readme.txt +++ b/src/readme.txt @@ -1,7 +1,7 @@ -=== Woocommerce RetailCRM === +=== Woocommerce retailCRM === Contributors: retailCRM Donate link: http://retailcrm.ru/ -Tags: Интеграция, Retailcrm +Tags: Интеграция, retailCRM Requires PHP: 5.3 Requires at least: 4.4 Tested up to: 5.3 @@ -46,6 +46,9 @@ API-ключ должен быть для отдельного магазина == Changelog == += 3.6.0 = +* Добавлена настройка передачи суммы оплаты в retailCRM + = 3.5.2 = * Исправлен баг с выгрузкой заказов в retailCRM @@ -192,6 +195,9 @@ API-ключ должен быть для отдельного магазина * Исправелены ошибки. == Upgrade Notice == += 3.6.0 = +Добавлена возможность отключить передачу суммы оплаты в retailCRM, тогда сумма будет рассчитываться в retailCRM + = 3.4.2 = Исправлено изменение типа оплаты на стороне WC Добавлен вывод неактивных типов оплаты в настройках diff --git a/src/retailcrm.php b/src/retailcrm.php index e311d3b..44bd314 100644 --- a/src/retailcrm.php +++ b/src/retailcrm.php @@ -1,6 +1,6 @@ build($this->order, $externalId)->get_data(); + $this->assertArrayHasKey('externalId', $data); + $this->assertArrayHasKey('type', $data); + $this->assertArrayNotHasKey('amount', $data); + $this->assertArrayHasKey('order', $data); + } + + /** + * @param mixed $externalId + * + * @dataProvider dataProvider + */ + public function test_build_with_amount($externalId) + { + $settings = $this->getOptions(); + $settings['send_payment_amount'] = 'yes'; + $order_payment = new WC_Retailcrm_Order_Payment($settings); + + $data = $order_payment->build($this->order, $externalId)->get_data(); + $this->assertArrayHasKey('externalId', $data); $this->assertArrayHasKey('type', $data); $this->assertArrayHasKey('amount', $data); diff --git a/tests/test-wc-retailcrm-orders.php b/tests/test-wc-retailcrm-orders.php index bda8a84..1679e45 100644 --- a/tests/test-wc-retailcrm-orders.php +++ b/tests/test-wc-retailcrm-orders.php @@ -209,10 +209,15 @@ class WC_Retailcrm_Orders_Test extends WC_Retailcrm_Test_Case_Helper if (!empty($payment)) { $this->assertArrayHasKey('type', $payment); - $this->assertArrayHasKey('amount', $payment); $this->assertArrayHasKey('order', $payment); $this->assertArrayHasKey('externalId', $payment); $this->assertEquals('payment1', $payment['type']); + + if (!empty($this->options['send_payment_amount']) && $this->options['send_payment_amount'] == 'yes') { + $this->assertArrayHasKey('amount', $payment); + } else { + $this->assertArrayNotHasKey('amount', $payment); + } } } } else {