From 295d89490caf9459c26e52870f057772c2d5e3a9 Mon Sep 17 00:00:00 2001 From: Akolzin Dmitry Date: Wed, 25 Mar 2020 10:35:08 +0300 Subject: [PATCH 1/2] Setting payment amount transfer --- .docker/Dockerfile | 1 + Makefile | 5 +++++ README.md | 2 +- VERSION | 2 +- docker-compose.yml | 1 - resources/pot/retailcrm-es_ES.pot | 5 ++++- resources/pot/retailcrm-ru_RU.pot | 5 ++++- .../class-wc-retailcrm-abstracts-settings.php | 9 +++++++++ .../class-wc-retailcrm-order-payment.php | 11 ++++++---- src/languages/retailcrm-es_ES.mo | Bin 6252 -> 6334 bytes src/languages/retailcrm-ru_RU.mo | Bin 7713 -> 7802 bytes src/retailcrm.php | 2 +- src/uninstall.php | 2 +- .../order/test-wc-retailcrm-order-payment.php | 19 ++++++++++++++++++ tests/test-wc-retailcrm-orders.php | 7 ++++++- 15 files changed, 59 insertions(+), 12 deletions(-) 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 ab3f8c43638c9d5d739c087002577291c8adf05d..45b2e9e18d69c48731225656990040cde5c2407c 100644 GIT binary patch delta 1397 zcmXxjOGs2v9LMqh*o^ticV=ad*#k9GOH;EfD-}bGGEJh*l#^LFJ{ki-oJE9S5XDd+ zqAh9@7!+1ei?YY6jA&CtR;y@{Qc$*t7JYwpz0A3vbMBmb&j0++xwAzNi$foi-ItB4 zma>x45Mk!S0XH{Yk!Fj*g)tb7ahQs+n2i}&;I!*-HSH!$#50(NL(cOt=lK-!UdUck zSx$$qxCA4aEgRFY0?Tj%_TWhz$9#;AGTVryr~ukf3mC*o9K}X_iwb02v{^isVFK1* z9P?YV^WZ3^^G7dg;9)Gl`=}ScpazV?Czg5mf&kRR56k|3$2)eGL`p z97Zv}#gIp(CQFU*{F!?xaoN-Dic9e>PIjaCvY#m!9vVV zVmom^7UMJAhQCmm*_=%N^Qbg2iVn>n9>51k3>KgAe1KE!c@$ z@j7ZDpB(2=nTq9rv|>4~!b>44I{mkhpzVd@3~CSO(2uc|PBDPTKwKC`%<2En3$ON@Do7 zCnY@PiA&l|OZi&3swY2q9z|vy?DYjsANTk6b_CkJ!4rOOx39m`9|(GVon3u_;N)oB iV2pR6lRt2*!{=@Dd;0?3&aObPOZ9GF`(%20v+FNI>X5Pk delta 1329 zcmXxkT}V_x7{>8;^Q^75rK{z(rIwmnYN?=^rkUv$g&AmO)YVD}_6Z?GVXZeI6bW_e zrVqLcBB5w+HIt|yyyzx^7K5Pf6p~0#2>L&I8l3Z+nLX#s%scP#b@fbD{9BfD-zZUP zF12liSq#rPTqwW%W-DP0`j{yf&ucL+-s*5g`iN8KMo-G9;heFzWIcTo$S z#sKr%A`OKog?O@9i+C2IUQ~{iSdUwm;DFEUBl4&<6JMIvj(YwC z@@M^A*5egq&vrM1`0K16GoT43a3g-kVw^**ILt-kTTu~cLxsE_x8Wcj!lzh?b9f00 zLT1%?4;%44Zo(8EF2kZM;;&@sV4xFkB6Hd_YA3U(9W0`Dl$O2R52GScf;+JZ8*l)% zkr$rtP?1XFaSV_k`4~eb{ZO0+i?xTIqo}hR$J3ZZ7HuuOm4vr0RR1I@S=(FqXXrO1Fa>q2RC$DKM~gZsxh z;%joF{-SPeMQ_tgtyC5L_tA<|s7hw~)1CBZyPy2Q b&^~$!+W)dQG3%d5O-u!^r6k338aUM#GwB-bGvZw@0@ezp7VX@e0nc;CD*kOVY;oj z%DCgX&-yA=iw{jaxYGQT^2c-x#2j3U#TbMRjKNbz{}QgJ--ny<4u;_@MxkzufAx;L zl!e)4f>?~jEDXWJxDiid4)&lOpW}J_hRIkNz&F^9sW^c$-)EGBRGS*iC?4v|li3F=!P`0Ym=wCM+LRokecj6ds!3C7S){w8A)BUJ zvBO8H%Sa4rDb!n2tFr&{fr-^6fH)r8(T;I=3=d%&X5tKP#-Esq)^MfvUlpVT4+EOb+ zC`I=e_#v?y~?Odg}Muv~>+JkR~w1#@(`q$-s`6rKYp z(1y*4F%pm@k;5(j_oPU7ahGXsb8`3rS`yL!t9T;V@3&uKRa>pIy}quk?VPj0*3npJ zYpv~Su5)(SYMWawIy;^QFNY-SBl?uPN1xIs^>KH zbKXy46YHB<8ro@?e6m?{7?r9MPQTl+7qxIdR^lKQ;~Uh*e&H$%5Y0Yp!VnH&0e(hK z*SMI3PmKpH?I@K7r(go8BPhXajG!`b5R334R^uS*h$c`QokD#-hvk^TOOj<8@SKYb zA#0nbDe+nwM|~et{$z>YtgB)E8GnTA9&b*XlC6qhRkM}5-X8WA<~Gt&5H;NT sKd0i{$Q`vmdCSta(9(|nUy;#*gqeiVs^l5JdvD18nVLCzEI-@*4build($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 { From 3475f369be97d81ea35f88dde5a59010b8f2b499 Mon Sep 17 00:00:00 2001 From: Akolzin Dmitry Date: Wed, 25 Mar 2020 13:58:12 +0300 Subject: [PATCH 2/2] update readme.txt --- src/readme.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 Добавлен вывод неактивных типов оплаты в настройках