Esempio n. 1
0
 def _payment_fields(self, ui_paymentline):
     """
     This part is for credit note.
     """
     fields = super(PosOrder, self)._payment_fields(ui_paymentline)
     fields.update({'note': ui_paymentline.get('returned_ncf')})
     return fields
Esempio n. 2
0
 def fields_view_get(self,
                     view_id=None,
                     view_type='form',
                     toolbar=False,
                     submenu=False):
     res = super(object_merger, self).fields_view_get(view_id,
                                                      view_type,
                                                      toolbar=toolbar,
                                                      submenu=False)
     object_ids = self._context.get('active_ids', [])
     active_model = self._context.get('active_model')
     field_name = 'x_' + (active_model and active_model.replace('.', '_')
                          or '') + '_id'
     fields = res['fields']
     if object_ids:
         view_part = """<label for='""" + field_name + """'/>
                 <div>
                     <field name='""" + field_name + """' required="1" domain="[(\'id\', \'in\', """ + str(
             object_ids) + """)]"/>
                 </div>"""
         res['arch'] = res['arch'].replace(
             """<separator string="to_replace"/>""", view_part)
         field = self.fields_get([field_name])
         fields.update(field)
         res['fields'] = fields
         res['fields'][field_name]['domain'] = [('id', 'in', object_ids)]
         res['fields'][field_name]['required'] = True
     return res
Esempio n. 3
0
 def _payment_fields(self, order, ui_paymentline):
     fields = super(PosOrder, self)._payment_fields(order, ui_paymentline)
     fields.update({
         'pax_card_number': ui_paymentline.get('pax_card_number'),
         'pax_txn_id': ui_paymentline.get('pax_txn_id'),
     })
     return fields
Esempio n. 4
0
 def _payment_fields(self, order, ui_paymentline):
     fields = super(PosOrder, self)._payment_fields(order, ui_paymentline)
     if fields['payment_method_id'] == 10001:
         fields.update({
             'name': ui_paymentline.get('note'),
         })
     return fields
Esempio n. 5
0
    def postprocess(self, model, node, view_id, in_tree_view, model_fields):
        """Rajout des champs par défaut à la fields_view"""
        fields = super(IrUIView, self).postprocess(model, node, view_id,
                                                   in_tree_view, model_fields)
        if node.tag == 'planning':
            modifiers = {}
            # Tous ces champs peuvent être définis comme attributs de la balise <planning>
            # et n'ont pas besoin d'être rajoutés dans l'architecture de la vue
            for additional_field in ('date_start', 'date_delay', 'date_stop',
                                     'all_day', 'resource', 'color_bg',
                                     'color_ft'):
                if node.get(additional_field):
                    fields[node.get(additional_field)] = {}

            if not self._apply_group(model, node, modifiers, fields):
                # node must be removed, no need to proceed further with its children
                return fields

            # The view architeture overrides the python model.
            # Get the attrs before they are (possibly) deleted by check_group below
            orm.transfer_node_to_modifiers(node, modifiers, self._context,
                                           in_tree_view)

            for f in node:
                # useless here? if children or (node.tag == 'field' and f.tag in ('filter', 'separator')):
                fields.update(
                    self.postprocess(model, f, view_id, in_tree_view,
                                     model_fields))

            orm.transfer_modifiers_to_node(modifiers, node)
        return fields
Esempio n. 6
0
    def _payment_fields(self, ui_paymentline):
        fields = super(PosOrder, self)._payment_fields(ui_paymentline)

        fields.update({
            'credit_card_charge_amount':
            ui_paymentline.get('credit_card_charge_amount'),
        })

        return fields
Esempio n. 7
0
    def _payment_fields(self, ui_paymentline):
        fields = super(PosOrder, self)._payment_fields(ui_paymentline)

        fields.update({
            'card_code': ui_paymentline.get('card_code'),
            'card_bank_owner': ui_paymentline.get('card_bank_owner'),
        })

        return fields
Esempio n. 8
0
    def _query(self, with_clause="", fields=None, groupby="", from_clause=""):
        if fields is None:
            fields = {}

        fields.update(
            {
                "fiscal_operation_id": ", l.fiscal_operation_id as fiscal_operation_id",
                "fiscal_operation_line_id": (
                    ", l.fiscal_operation_line_id as fiscal_operation_line_id"
                ),
                "ind_pres": ", s.ind_pres",
                "cfop_id": ", l.cfop_id as cfop_id",
                "fiscal_type": ", l.fiscal_type as fiscal_type",
                "ncm_id": ", l.ncm_id as ncm_id",
                "nbm_id": ", l.nbm_id as nbm_id",
                "cest_id": ", l.cest_id as cest_id",
                "icms_value": ", SUM(l.icms_value) as icms_value",
                "icmsst_value": ", SUM(l.icmsst_value) as icmsst_value",
                "ipi_value": ", SUM(l.ipi_value) as ipi_value",
                "cofins_value": ", SUM(l.cofins_value) as cofins_value",
                "pis_value": ", SUM(l.pis_value) as pis_value",
                "ii_value": ", SUM(l.ii_value) as ii_value",
                "freight_value": ", SUM(l.freight_value) as freight_value",
                "insurance_value": ", SUM(l.insurance_value) as insurance_value",
                "other_value": ", SUM(l.other_value) as other_value",
                "total_with_taxes": """
                    , SUM(l.price_total / CASE COALESCE(s.currency_rate, 0)
                        WHEN 0 THEN 1.0 ELSE s.currency_rate END)
                    + SUM(CASE WHEN l.ipi_value IS NULL THEN
                       0.00 ELSE l.ipi_value END)
                    + SUM(CASE WHEN l.icmsst_value IS NULL THEN
                       0.00 ELSE l.icmsst_value END)
                    + SUM(CASE WHEN l.freight_value IS NULL THEN
                       0.00 ELSE l.freight_value END)
                    + SUM(CASE WHEN l.insurance_value IS NULL THEN
                       0.00 ELSE l.insurance_value END)
                    + SUM(CASE WHEN l.other_value IS NULL THEN
                       0.00 ELSE l.other_value END)
                    as total_with_taxes""",
            }
        )
        groupby += """
            , l.fiscal_operation_id
            , l.fiscal_operation_line_id
            , s.ind_pres
            , l.cfop_id
            , l.fiscal_type
            , l.ncm_id
            , l.nbm_id
            , l.cest_id
        """
        return super()._query(
            with_clause=with_clause,
            fields=fields,
            groupby=groupby,
            from_clause=from_clause,
        )
Esempio n. 9
0
    def _map_ldap_attributes(self, conf, login, ldap_entry):
        fields = super()._map_ldap_attributes(conf, login, ldap_entry)

        _logger.info(
            'Initial setting field values from LDAP attributes for login "%s"',
            login)
        fields.update(
            self._map_attributes_to_fields(conf, ldap_entry,
                                           ['initial', 'always']))

        return fields
Esempio n. 10
0
 def _query(self, with_clause='', fields=None, groupby='', from_clause=''):
     if fields is None:
         fields = {}
     fields.update({
         "margin_delivered":
         " ,SUM(l.margin_delivered / COALESCE(s.currency_rate, 1.0)) AS"
         " margin_delivered"
     })
     return super()._query(with_clause=with_clause,
                           fields=fields,
                           groupby=groupby,
                           from_clause=from_clause)
Esempio n. 11
0
 def _query(self, with_clause='', fields=None, groupby='', from_clause=''):
     if fields is None:
         fields = {}
     fields.update({
         "purchase_price":
         " ,SUM(l.purchase_price / COALESCE(s.currency_rate, 1.0))"
         "AS purchase_price",
     })
     return super()._query(with_clause=with_clause,
                           fields=fields,
                           groupby=groupby,
                           from_clause=from_clause)
Esempio n. 12
0
    def _payment_fields(self, ui_paymentline):
        fields = super(PosOrder, self)._payment_fields(ui_paymentline)

        fields.update({
            'card_number': ui_paymentline.get('mercury_card_number'),
            'card_brand': ui_paymentline.get('mercury_card_brand'),
            'card_owner_name': ui_paymentline.get('mercury_card_owner_name'),
            'ref_no': ui_paymentline.get('mercury_ref_no'),
            'record_no': ui_paymentline.get('mercury_record_no'),
            'invoice_no': ui_paymentline.get('mercury_invoice_no')
        })

        return fields
Esempio n. 13
0
    def _query(self, with_clause="", fields=None, groupby="", from_clause=""):
        if fields is None:
            fields = {}
        select_str = """,
            sum(l.qty_return) as qty_return
		"""
        fields.update({"qty_return": select_str})
        return super()._query(
            with_clause=with_clause,
            fields=fields,
            groupby=groupby,
            from_clause=from_clause,
        )
Esempio n. 14
0
    def _payment_fields(self, ui_paymentline):
        fields = super(PosOrder, self)._payment_fields(ui_paymentline)

        fields.update({
            'card_number': ui_paymentline.get('mercury_card_number'),
            'card_brand': ui_paymentline.get('mercury_card_brand'),
            'card_owner_name': ui_paymentline.get('mercury_card_owner_name'),
            'ref_no': ui_paymentline.get('mercury_ref_no'),
            'record_no': ui_paymentline.get('mercury_record_no'),
            'invoice_no': ui_paymentline.get('mercury_invoice_no')
        })

        return fields
Esempio n. 15
0
 def _query(self, with_clause='', fields=None, groupby='', from_clause=''):
     if fields is None:
         fields = {}
     select_str = """ ,
         partner.state_id as state_id
     """
     fields.update({
         'state_id': select_str,
     })
     groupby += """,
         partner.state_id
     """
     return super()._query(with_clause=with_clause, fields=fields,
                           groupby=groupby, from_clause=from_clause)
Esempio n. 16
0
 def _query(self, with_clause='', fields=None, groupby='', from_clause=''):
     if fields is None:
         fields = {}
     select_str = """ ,
         sum((l.price_subtotal /
              coalesce(nullif(l.product_uom_qty, 0), 1)
             ) * l.qty_delivered)
         as price_subtotal_delivered
     """
     fields.update({
         'price_subtotal_delivered': select_str,
     })
     return super()._query(with_clause=with_clause, fields=fields,
                           groupby=groupby, from_clause=from_clause)
Esempio n. 17
0
    def _query(self, with_clause="", fields=None, groupby="", from_clause=""):
        if fields is None:
            fields = {}
        select_str = """ ,
            pcr.category_id as category_id
        """
        fields.update({
            "category_id": select_str,
        })
        from_clause += ("left join res_partner_res_partner_category_rel pcr "
                        "on (pcr.partner_id=s.partner_id)")
        groupby += """,
            pcr.category_id
        """

        return super(SaleReport, self)._query(with_clause, fields, groupby,
                                              from_clause)
Esempio n. 18
0
 def _query(self, with_clause='', fields=None, groupby='', from_clause=''):
     fields = dict(fields or {})
     fields.update({
         'event_id':
         ' ,min(l.event_id) as event_id',
         'session_id':
         ' ,min(l.session_id) as session_id',
         'event_session_count':
         ', min(ev.sessions_count) as event_session_count',
     })
     from_clause += """
         LEFT JOIN event_session es ON l.session_id = es.id
         LEFT JOIN event_event ev ON l.event_id = ev.id
     """
     groupby += """
         ,l.event_id, l.session_id, l.id
     """
     return super()._query(with_clause, fields, groupby, from_clause)
Esempio n. 19
0
 def _query(self, with_clause="", fields=None, groupby="", from_clause=""):
     fields = dict(fields or {})
     fields.update(
         {
             "event_id": " ,min(l.event_id) as event_id",
             "session_id": " ,min(l.session_id) as session_id",
             "event_session_count": (
                 ", min(ev.sessions_count) as event_session_count"
             ),
         }
     )
     from_clause += """
         LEFT JOIN event_session es ON l.session_id = es.id
         LEFT JOIN event_event ev ON l.event_id = ev.id
     """
     groupby += """
         ,l.event_id, l.session_id, l.id
     """
     return super()._query(with_clause, fields, groupby, from_clause)
Esempio n. 20
0
    def _payment_fields(self, ui_paymentline):
        fields = super(PosOrder, self)._payment_fields(ui_paymentline)

        fields.update({
            'payment_method':
            ui_paymentline.get('pos_payment_method'),
            'card_number':
            ui_paymentline.get('pos_card_number'),
            'card_owner_name':
            ui_paymentline.get('pos_card_owner_name'),
            'ref_no':
            ui_paymentline.get('pos_ref_no'),
            'invoice_no':
            ui_paymentline.get('pos_invoice_no'),
            'sales_person':
            ui_paymentline.get('pos_sales_person'),
        })

        return fields
Esempio n. 21
0
    def _query(self, with_clause='', fields={}, groupby='', from_clause=''):
        if fields is None:
            fields = {}
        select_str = """ ,
            sum((l.price_subtotal /
                 coalesce(nullif(l.product_uom_qty, 0), 1)
                ) * d.delivered_qty)
            as subtotal_delivered_date
        """
        fields.update({
            'subtotal_delivered_date': select_str,
            'delivered_qty': " ,d.delivered_qty as delivered_qty",
            'type_id': ", s.type_id as type_id",

            #'remain_qty': " , l.product_uom_qty - d.delivered_qty as remain_qty",
        })
        from_clause += " left join (SELECT sum(quantity) as delivered_qty, min(line_id) as line_id FROM sale_order_line_delivery " \
                       " GROUP BY line_id) d on (d.line_id = l.id)"
        groupby += ", d.delivered_qty, s.type_id"
        return super(SaleReport, self)._query(with_clause, fields, groupby, from_clause)
Esempio n. 22
0
    def _query(self, with_clause='', fields=None, groupby='', from_clause=''):
        if fields is None:
            fields = {}

        fields.update({
            'fiscal_operation_id':
            ', l.fiscal_operation_id as fiscal_operation_id',
            'fiscal_operation_line_id':
            ', l.fiscal_operation_line_id as fiscal_operation_line_id',
            'ind_pres': ', s.ind_pres',
        })
        groupby += """
            , l.fiscal_operation_id
            , l.fiscal_operation_line_id
            , s.ind_pres
        """
        return super()._query(with_clause=with_clause,
                              fields=fields,
                              groupby=groupby,
                              from_clause=from_clause)
Esempio n. 23
0
    def _order_fields(self, ui_order):
        fields = super(pos_order, self)._order_fields(ui_order)

        fields.update({
            'blackbox_date':
            ui_order.get('blackbox_date'),
            'blackbox_time':
            ui_order.get('blackbox_time'),
            'blackbox_pos_receipt_time':
            ui_order.get('blackbox_pos_receipt_time'),
            'blackbox_ticket_counters':
            ui_order.get('blackbox_ticket_counters'),
            'blackbox_unique_fdm_production_number':
            ui_order.get('blackbox_unique_fdm_production_number'),
            'blackbox_vsc_identification_number':
            ui_order.get('blackbox_vsc_identification_number'),
            'blackbox_signature':
            ui_order.get('blackbox_signature'),
            'blackbox_tax_category_a':
            ui_order.get('blackbox_tax_category_a'),
            'blackbox_tax_category_b':
            ui_order.get('blackbox_tax_category_b'),
            'blackbox_tax_category_c':
            ui_order.get('blackbox_tax_category_c'),
            'blackbox_tax_category_d':
            ui_order.get('blackbox_tax_category_d'),
            'plu_hash':
            ui_order.get('blackbox_plu_hash'),
            'pos_version':
            ui_order.get('blackbox_pos_version'),
            'pos_production_id':
            ui_order.get('blackbox_pos_production_id'),
            'terminal_id':
            ui_order.get('blackbox_terminal_id'),
            'hash_chain':
            ui_order.get('blackbox_hash_chain'),
        })

        return fields
Esempio n. 24
0
 def make_fields(self):
     fields = {}
     for id in self.elastic_fields_mapping_ids:
         fields.update({id.name: {"type": id.field_type}})
     return fields
Esempio n. 25
0
    def postprocess(self, model, node, view_id, in_tree_view, model_fields):
        """Return the description of the fields in the node.

        In a normal call to this method, node is a complete view architecture
        but it is actually possible to give some sub-node (this is used so
        that the method can call itself recursively).

        Originally, the field descriptions are drawn from the node itself.
        But there is now some code calling fields_get() in order to merge some
        of those information in the architecture.

        """
        result = False
        fields = {}
        children = True

        modifiers = {}
        if model not in self.env:
            self.raise_view_error(
                _('Model not found: %(model)s') % dict(model=model), view_id)
        Model = self.env[model]

        if node.tag in ('field', 'node', 'arrow'):
            if node.get('object'):
                attrs = {}
                views = {}
                xml_form = E.form(*(f for f in node if f.tag == 'field'))
                xarch, xfields = self.with_context(
                    base_model_name=model).postprocess_and_fields(
                        node.get('object'), xml_form, view_id)
                views['form'] = {
                    'arch': xarch,
                    'fields': xfields,
                }
                attrs = {'views': views}
                fields = xfields
            if node.get('name'):
                attrs = {}
                field = Model._fields.get(node.get('name'))
                if field:
                    children = False
                    views = {}
                    for f in node:
                        if f.tag in ('form', 'tree', 'graph', 'kanban',
                                     'calendar'):
                            node.remove(f)
                            xarch, xfields = self.with_context(
                                base_model_name=model).postprocess_and_fields(
                                    field.comodel_name, f, view_id)
                            views[str(f.tag)] = {
                                'arch': xarch,
                                'fields': xfields,
                            }
                    attrs = {'views': views}
                    if field.comodel_name in self.env and field.type in (
                            'many2one', 'many2many'):
                        Comodel = self.env[field.comodel_name]
                        node.set(
                            'can_create',
                            'true' if Comodel.check_access_rights(
                                'create', raise_exception=False) else 'false')
                        node.set(
                            'can_write', 'true' if Comodel.check_access_rights(
                                'write', raise_exception=False) else 'false')
                fields[node.get('name')] = attrs

                field = model_fields.get(node.get('name'))
                if field:
                    orm.transfer_field_to_modifiers(field, modifiers)

        elif node.tag in ('form', 'tree'):
            result = Model.view_header_get(False, node.tag)
            if result:
                node.set('string', result)
            in_tree_view = node.tag == 'tree'

        elif node.tag == 'calendar':
            for additional_field in ('date_start', 'date_delay', 'date_stop',
                                     'color', 'all_day', 'attendee'):
                if node.get(additional_field):
                    fields[node.get(additional_field)] = {}

        if not self._apply_group(model, node, modifiers, fields):
            # node must be removed, no need to proceed further with its children
            return fields

        # The view architeture overrides the python model.
        # Get the attrs before they are (possibly) deleted by check_group below
        extended_funct.transfer_node_to_modifiers(node, modifiers,
                                                  self._context, in_tree_view)

        for f in node:
            if children or (node.tag == 'field'
                            and f.tag in ('filter', 'separator')):
                fields.update(
                    self.postprocess(model, f, view_id, in_tree_view,
                                     model_fields))

        orm.transfer_modifiers_to_node(modifiers, node)
        return fields
Esempio n. 26
0
    def _query(self, with_clause='', fields={}, groupby='', from_clause=''):
        fields.update({
            'is_property':
            ", t.is_property as property_sale",
            'managing_director_employee_id':
            ",  s.managing_director_employee_id as managing_director_employee_id",
            'marketing_lead_employee_id':
            ", s.marketing_lead_employee_id as marketing_lead_employee_id",
            'broker_partner_id':
            ", s.broker_partner_id as broker_partner_id",
            'vendor_group_id':
            ", s.vendor_group_id as vendor_group_id",
            'downpayment_term_id':
            ", s.downpayment_term_id as downpayment_term_id",
            'downpayment_percent':
            ", s.downpayment_percent as downpayment_percent",
            'financing_type_id':
            ", s.financing_type_id as financing_type_id",
            'financing_type_term_id':
            ", s.financing_type_term_id as financing_type_term_id",
            'downpayment_amount':
            ", s.downpayment_amount as downpayment_amount",
            'dp_discount_amount':
            ", s.dp_discount_amount as dp_discount_amount",
            'ntcp_discount_amount':
            ", s.ntcp_discount_amount as ntcp_discount_amount",
            'net_of_ntcp_discount_amount':
            ", s.net_of_ntcp_discount_amount as net_of_ntcp_discount_amount",
            'spot_amount':
            ", s.spot_amount as spot_amount",
            'dp_amount_due':
            ", s.dp_amount_due as dp_amount_due",
            'dp_interest':
            ", s.dp_interest as dp_interest",
            'dp_monthly_due':
            ", s.dp_monthly_due as dp_monthly_due",
            'turned_over_balance_amount':
            ", s.turned_over_balance_amount as turned_over_balance_amount",
            'turned_over_balance_percent':
            ", s.turned_over_balance_percent as turned_over_balance_percent",
            'turned_over_balance_mdue':
            ", s.turned_over_balance_mdue as turned_over_balance_mdue",
            'property_id':
            ", s.property_id as property_id",
            'house_price':
            ", s.house_price as house_price",
            'lot_price':
            ", s.lot_price as lot_price",
            'miscellaneous_amount':
            ", s.miscellaneous_amount as miscellaneous_amount",
            'reservation_fee':
            ", s.reservation_fee as reservation_fee",
            'ntcp':
            ", s.ntcp as ntcp",
            'tcp':
            ", s.tcp as tcp",
            'tcp_vat':
            ", s.tcp_vat as tcp_vat",
            'property_vat':
            ", s.property_vat as property_vat",
            'spot_dp_invoice_id':
            ", s.spot_dp_invoice_id as spot_dp_invoice_id",
            'dp_invoice_id':
            ", s.dp_invoice_id as dp_invoice_id",
            'turnover_balance_invoice_id':
            ", s.turnover_balance_invoice_id as turnover_balance_invoice_id",
            'subdivision_id':
            ", s.subdivision_id as subdivision_id",
            'subdivision_phase_id':
            ", s.subdivision_phase_id as subdivision_phase_id",
            'house_model_id':
            ", s.house_model_id as house_model_id",
            'model_type_id':
            ", s.model_type_id as model_type_id",
            'floor_area':
            ", s.floor_area as floor_area",
            'lot_area':
            ", s.lot_area as lot_area",
            'property_type':
            ", s.property_type as property_type",
            'brand_id':
            ", s.brand_id as brand_id",
            'model_type_id':
            ", s.model_type_id as model_type_id",
            'floor_area':
            ", s.floor_area as floor_area",
            'lot_area':
            ", s.lot_area as lot_area",
            'property_type':
            ", s.property_type as property_type",
            'property_continent_id':
            ", s.property_continent_id as property_continent_id",
            'property_continent_region_id':
            ", s.property_continent_region_id as property_continent_region_id",
            'property_country_id':
            ", s.property_country_id as property_country_id",
            'property_island_group_id':
            ", s.property_island_group_id as property_island_group_id",
            'property_province_id':
            ", s.property_province_id as property_province_id",
            'property_city_id':
            ", s.property_city_id as property_city_id",
            'property_barangay_id':
            ", s.property_barangay_id as property_barangay_id",
            'property_state_id':
            ", s.property_state_id as property_state_id",
            'property_zip':
            ", s.property_zip as property_zip",
            'property_cluster_id':
            ", s.property_cluster_id as property_cluster_id",
            'property_cluster2_id':
            ", s.property_cluster2_id as property_cluster2_id",
            'property_street':
            ", s.property_street as property_street",
            'property_street2':
            ", s.property_street2 as property_street2",
        })

        groupby += ', t.is_property, s.managing_director_employee_id, s.marketing_lead_employee_id, s.broker_partner_id, \
                    s.vendor_group_id, s.downpayment_term_id, s.downpayment_percent, s.financing_type_id, s.financing_type_term_id, \
                    s.downpayment_amount, s.dp_discount_amount, s.ntcp_discount_amount, s.net_of_ntcp_discount_amount, s.spot_amount, \
                    s.dp_interest, s.dp_monthly_due, s.turned_over_balance_amount, s.turned_over_balance_percent, s.turned_over_balance_mdue, \
                    s.property_id, s.house_price, s.lot_price, s.miscellaneous_amount, s.reservation_fee, s.ntcp, s.tcp, s.tcp_vat, \
                    s.property_vat, s.spot_dp_invoice_id, s.dp_invoice_id, s.turnover_balance_invoice_id, s.subdivision_id, s.subdivision_phase_id, \
                    s.house_model_id, s.model_type_id, s.floor_area, s.lot_area, s.property_type, s.brand_id, s.model_type_id, s.floor_area, \
                    s.lot_area, s.property_type, s.property_continent_id, s.property_continent_region_id, s.property_country_id, s.property_island_group_id, \
                    s.property_province_id, s.property_city_id, s.property_barangay_id, s.property_state_id, s.property_zip, \
                    s.property_cluster_id, s.property_cluster2_id, s.property_street, s.property_street2'

        return super(SaleReport, self)._query(with_clause, fields, groupby,
                                              from_clause)
Esempio n. 27
0
    def _payment_fields(self, ui_paymentline):
        fields = super(PosOrder, self)._payment_fields(ui_paymentline)

        fields.update({"note": ui_paymentline.get("returned_ncf")})

        return fields