From 6f975a16fe071d2ff7dbc562c5c95c1405c4957d Mon Sep 17 00:00:00 2001 From: Rafael Monnerat <rafael@nexedi.com> Date: Wed, 19 May 2021 18:45:42 +0000 Subject: [PATCH] slapos_jio: Display reference to number on payzen/wechat receipt on the Invoice UI. --- ...e_slap_sale_invoice_transaction_view_js.js | 19 ++- ..._slap_sale_invoice_transaction_view_js.xml | 4 +- ...tRelatedPaymentTransactionIntegrationId.py | 33 +++++ ...RelatedPaymentTransactionIntegrationId.xml | 70 ++++++++++ .../SaleInvoiceTransaction_viewAsHateoas.xml | 1 + .../my_payment_transaction_external_id.xml | 124 ++++++++++++++++++ 6 files changed, 247 insertions(+), 4 deletions(-) create mode 100644 master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId.py create mode 100644 master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId.xml create mode 100644 master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_viewAsHateoas/my_payment_transaction_external_id.xml diff --git a/master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js.js b/master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js.js index deaa77ec6..47bde4b2b 100644 --- a/master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js.js +++ b/master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js.js @@ -69,7 +69,8 @@ "Instance", "From", "To", - "Quantity" + "Quantity", + "Payment Receipt Reference" ]; return new RSVP.Queue() .push(function () { @@ -121,6 +122,17 @@ "hidden": 0, "type": "StringField" }, + "my_payment_transaction_external_id": { + "description": "", + "title": result[1][13], + "default": gadget.state.doc.payment_transaction_external_id, + "css_class": "", + "required": 0, + "editable": 0, + "key": "payment_transaction_external_id", + "hidden": gadget.state.doc.payment_transaction_external_id === "", + "type": "StringField" + }, "my_total_price": { "description": "", "title": result[1][3], @@ -201,7 +213,10 @@ group_list: [[ "left", [["my_start_date"], ["my_reference"], ["my_total_price"], - ["my_resource_title"], ['my_payment_state'], ["my_download"]] + ["my_resource_title"], ["my_download"]] + ],[ + "right", + [["my_payment_transaction_external_id"], ['my_payment_state']] ],[ "bottom", [["listbox"]] diff --git a/master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js.xml b/master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js.xml index 60c147ac8..98fea74aa 100644 --- a/master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js.xml +++ b/master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js.xml @@ -236,7 +236,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>992.9877.18647.54442</string> </value> + <value> <string>992.11149.35424.21572</string> </value> </item> <item> <key> <string>state</string> </key> @@ -254,7 +254,7 @@ </tuple> <state> <tuple> - <float>1621377250.27</float> + <float>1621448974.82</float> <string>UTC</string> </tuple> </state> diff --git a/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId.py b/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId.py new file mode 100644 index 000000000..018e05cd5 --- /dev/null +++ b/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId.py @@ -0,0 +1,33 @@ +from zExceptions import Unauthorized +if REQUEST is not None: + raise Unauthorized + +portal = context.getPortalObject() +portal_membership=portal.portal_membership + +person = portal_membership.getAuthenticatedMember().getUserValue() + +def wrapWithShadow(**kw): + payment = portal.portal_catalog.getResultValue( + portal_type="Payment Transaction", + default_causality_uid=context.getUid(), + simulation_state="stopped" + ) + + if not payment: + return + + if context.getPaymentMode() == "payzen": + return payment.PaymentTransaction_getPayzenId() + elif context.getPaymentMode() == "wechat": + return payment.PaymentTransaction_getWechatId() + +transaction_date, transaction_id = person.Person_restrictMethodAsShadowUser( + shadow_document=person, + callable_object=wrapWithShadow, + argument_list=[]) + +if transaction_id is None: + return + +return "%s-%s" % (transaction_date.strftime("%Y%m%d"), transaction_id) diff --git a/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId.xml b/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId.xml new file mode 100644 index 000000000..65c7c7e19 --- /dev/null +++ b/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>REQUEST=None</string> </value> + </item> + <item> + <key> <string>_proxy_roles</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_viewAsHateoas.xml b/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_viewAsHateoas.xml index 2c782c425..c91b45e0b 100644 --- a/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_viewAsHateoas.xml +++ b/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_viewAsHateoas.xml @@ -98,6 +98,7 @@ <string>my_start_date</string> <string>my_total_price</string> <string>my_resource_title</string> + <string>my_payment_transaction_external_id</string> </list> </value> </item> diff --git a/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_viewAsHateoas/my_payment_transaction_external_id.xml b/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_viewAsHateoas/my_payment_transaction_external_id.xml new file mode 100644 index 000000000..76ed3d30a --- /dev/null +++ b/master/bt5/slapos_jio/SkinTemplateItem/portal_skins/slapos_hal_json_style/SaleInvoiceTransaction_viewAsHateoas/my_payment_transaction_external_id.xml @@ -0,0 +1,124 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>default</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_payment_transaction_external_id</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewWebFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>External Payment Reference</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>context/SaleInvoiceTransaction_getRelatedPaymentTransactionIntegrationId</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> -- 2.30.9