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
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
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
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
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
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
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
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, )
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
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)
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)
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
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, )
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)
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)
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)
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)
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)
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
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)
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)
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
def make_fields(self): fields = {} for id in self.elastic_fields_mapping_ids: fields.update({id.name: {"type": id.field_type}}) return fields
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
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)
def _payment_fields(self, ui_paymentline): fields = super(PosOrder, self)._payment_fields(ui_paymentline) fields.update({"note": ui_paymentline.get("returned_ncf")}) return fields