def _get_default_base(self, cr, uid, fields, context=None): product_price_type_obj = self.pool.get('product.price.type') if fields.get('type') == 'purchase': product_price_type_ids = product_price_type_obj.search(cr, uid, [('field', '=', 'standard_price')], context=context) elif fields.get('type') == 'sale': product_price_type_ids = product_price_type_obj.search(cr, uid, [('field','=','list_price')], context=context) else: return -1 if not product_price_type_ids: return False else: pricetype = product_price_type_obj.browse(cr, uid, product_price_type_ids, context=context)[0] return pricetype.id
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False): if not context: context = {} res = super(account_tax_line,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar,submenu) fields=res.get('fields',{}) if fields: if context.get('tax_group','')=='vat': if fields.get('ref'): res['fields']['ref']['string'] = _('Invoice No') else: if fields.get('ref'): res['fields']['ref']['string'] = _('WHT No') return res
def get_cedente_prestatore(self, cr, uid, fields, dte_dtr_id, context=None): if dte_dtr_id == 'DTE': CedentePrestatore = (CedentePrestatoreDTEType()) CedentePrestatore.IdentificativiFiscali = ( IdentificativiFiscaliITType()) # Company VAT number must be present CedentePrestatore.IdentificativiFiscali.IdFiscaleIVA = ( IdFiscaleITType()) partner_type = 'company' elif dte_dtr_id == 'DTR': CedentePrestatore = (CedentePrestatoreDTRType()) CedentePrestatore.IdentificativiFiscali = ( IdentificativiFiscaliType()) # Company VAT number must be present CedentePrestatore.IdentificativiFiscali.IdFiscaleIVA = ( IdFiscaleType()) partner_type = 'supplier' else: raise orm.except_orm( _('Error!'), _('Internal error: invalid partner selector')) CedentePrestatore.IdentificativiFiscali.IdFiscaleIVA.\ IdPaese = fields['xml_IdPaese'] CedentePrestatore.IdentificativiFiscali.IdFiscaleIVA.\ IdCodice = fields['xml_IdCodice'] if fields.get('xml_CodiceFiscale'): CedentePrestatore.IdentificativiFiscali.CodiceFiscale = \ CodiceFiscaleType(fields['xml_CodiceFiscale']) CedentePrestatore.AltriDatiIdentificativi = \ self.get_name(cr, uid, fields, dte_dtr_id, partner_type, context) return CedentePrestatore
def get_sede(self, cr, uid, fields, dte_dtr_id, selector, context=None): if dte_dtr_id == 'DTE': if selector == 'company': sede = (IndirizzoType()) elif selector == 'customer': sede = (IndirizzoNoCAPType()) elif selector == 'supplier': sede = (IndirizzoType()) else: raise orm.except_orm( _('Error!'), _('Internal error: invalid partner selector')) else: if selector == 'company': sede = (IndirizzoType()) elif selector == 'customer': sede = (IndirizzoNoCAPType()) elif selector == 'supplier': sede = (IndirizzoNoCAPType()) else: raise orm.except_orm( _('Error!'), _('Internal error: invalid partner selector')) if fields.get('xml_Indirizzo'): sede.Indirizzo = self.str60Latin(fields['xml_Indirizzo']) else: raise orm.except_orm( _('Error!'), _('Missed address %s %s %S' % (fields.get('xml_Denominazione'), fields.get('xml_Nome'), fields.get('xml_Cognome')))) if fields.get('xml_Comune'): sede.Comune = self.str60Latin(fields['xml_Comune']) else: raise orm.except_orm( _('Error!'), _('Missed city %s %s %S' % (fields.get('xml_Denominazione'), fields.get('xml_Nome'), fields.get('xml_Cognome')))) if fields.get('xml_CAP') and fields['xml_Nazione'] == 'IT': sede.CAP = fields['xml_CAP'] elif selector == 'company': raise orm.except_orm(_('Error!'), _('Missed company zip code')) if fields.get('xml_Provincia') and fields['xml_Nazione'] == 'IT': sede.Provincia = fields['xml_Provincia'] sede.Nazione = fields['xml_Nazione'] return sede
def _get_default_base(self, cr, uid, fields, context=None): product_price_type_obj = self.pool.get("product.price.type") if fields.get("type") == "purchase": product_price_type_ids = product_price_type_obj.search( cr, uid, [("field", "=", "standard_price")], context=context ) elif fields.get("type") == "sale": product_price_type_ids = product_price_type_obj.search( cr, uid, [("field", "=", "list_price")], context=context ) else: return -1 if not product_price_type_ids: return False else: pricetype = product_price_type_obj.browse(cr, uid, product_price_type_ids, context=context)[0] return pricetype.id
def create(self,fields): print "FIELDS CREATE==============================" var = fields.get('commission_field',0) print "FIELDS CREATE=====================",var print "FIELDS CREATE=====================",type(var) if 1 <= var <= 5: pass else: raise except_orm(_("Values Should be Between 1 to 5 Only!!!")) return super(res_users, self).create(fields)
def get_cessionario_committente(self, cr, uid, fields, dte_dtr_id, context=None): if dte_dtr_id == 'DTE': partner = (CessionarioCommittenteDTEType()) partner_type = 'customer' partner.IdentificativiFiscali = (IdentificativiFiscaliNoIVAType()) else: # DTR partner = (CessionarioCommittenteDTRType()) partner_type = 'company' partner.IdentificativiFiscali = (IdentificativiFiscaliITType()) if fields.get('xml_IdPaese') and fields.get('xml_IdCodice'): if dte_dtr_id == 'DTE': partner.IdentificativiFiscali.IdFiscaleIVA = (IdFiscaleType()) else: partner.IdentificativiFiscali.IdFiscaleIVA = ( IdFiscaleITType()) partner.IdentificativiFiscali.IdFiscaleIVA.\ IdPaese = fields['xml_IdPaese'] partner.IdentificativiFiscali.IdFiscaleIVA.\ IdCodice = fields['xml_IdCodice'] if fields.get('xml_IdPaese') == 'IT' and fields.get( 'xml_CodiceFiscale'): partner.IdentificativiFiscali.\ CodiceFiscale = CodiceFiscaleType( fields['xml_CodiceFiscale']) else: partner.IdentificativiFiscali.CodiceFiscale = CodiceFiscaleType( fields['xml_CodiceFiscale']) # row 44: 2.2.2 <AltriDatiIdentificativi> partner.AltriDatiIdentificativi = \ self.get_name(cr, uid, fields, dte_dtr_id, partner_type, context) return partner
def _xml_dati_partner(self, cr, uid, ids, fname, args, context=None): res = {} for line in self.browse(cr, uid, ids, context=context): fields = self._dati_partner(cr, uid, line.partner_id, args, context=context) result = {} for f in ('xml_IdPaese', 'xml_IdCodice', 'xml_CodiceFiscale'): if fields.get(f, ''): result[f] = fields[f] res[line.id] = result return res
def _default_get_mobile(self, cr, uid, fields, context=None): if context is None: context = {} partner_pool = self.pool.get('res.partner') active_ids = fields.get('active_ids') res = {} i = 0 for partner in partner_pool.browse(cr, uid, active_ids, context=context): i += 1 res = partner.mobile if i > 1: raise orm.except_orm(_('Error'), _('You can only select one partner')) return res
def get_cessionario_committente(self, cr, uid, fields, dte_dtr_id, context=None): if dte_dtr_id == 'DTE': partner = (CessionarioCommittenteDTEType()) partner_type = 'customer' partner.IdentificativiFiscali = (IdentificativiFiscaliNoIVAType()) else: # DTR partner = (CessionarioCommittenteDTRType()) partner_type = 'company' partner.IdentificativiFiscali = (IdentificativiFiscaliITType()) if fields.get('xml_IdPaese') and fields.get('xml_IdCodice'): if dte_dtr_id == 'DTE': partner.IdentificativiFiscali.IdFiscaleIVA = (IdFiscaleType()) else: partner.IdentificativiFiscali.IdFiscaleIVA = ( IdFiscaleITType()) partner.IdentificativiFiscali.IdFiscaleIVA.\ IdPaese = fields['xml_IdPaese'].upper() partner.IdentificativiFiscali.IdFiscaleIVA.\ IdCodice = fields['xml_IdCodice'] if fields.get('xml_IdPaese') == 'IT' and fields.get( 'xml_CodiceFiscale'): partner.IdentificativiFiscali.\ CodiceFiscale = CodiceFiscaleType( fields['xml_CodiceFiscale']) else: partner.IdentificativiFiscali.CodiceFiscale = CodiceFiscaleType( fields['xml_CodiceFiscale']) # row 44: 2.2.2 <AltriDatiIdentificativi> partner.AltriDatiIdentificativi = \ self.get_name(cr, uid, fields, dte_dtr_id, partner_type, context) return partner
def _xml_dati_partner(self, cr, uid, ids, fname, args, context=None): res = {} for line in self.browse(cr, uid, ids, context=context): ctx = context.copy() ctx['no_except'] = True fields = self._dati_partner(cr, uid, line.partner_id, args, context=ctx) result = {} for f in ('xml_IdPaese', 'xml_IdCodice', 'xml_CodiceFiscale'): if fields.get(f, ''): result[f] = fields[f] else: result[f] = False res[line.id] = result return res
def get_cedente_prestatore(self, cr, uid, fields, dte_dtr_id, context=None): if dte_dtr_id == 'DTE': CedentePrestatore = (CedentePrestatoreDTEType()) CedentePrestatore.IdentificativiFiscali = ( IdentificativiFiscaliITType()) # Company VAT number must be present CedentePrestatore.IdentificativiFiscali.IdFiscaleIVA = ( IdFiscaleITType()) partner_type = 'company' elif dte_dtr_id == 'DTR': CedentePrestatore = (CedentePrestatoreDTRType()) CedentePrestatore.IdentificativiFiscali = ( IdentificativiFiscaliType()) # Company VAT number must be present CedentePrestatore.IdentificativiFiscali.IdFiscaleIVA = ( IdFiscaleType()) partner_type = 'supplier' else: raise orm.except_orm( _('Error!'), _('Internal error: invalid partner selector')) if fields.get('xml_IdPaese') and fields.get('xml_IdCodice'): CedentePrestatore.IdentificativiFiscali.IdFiscaleIVA.\ IdPaese = fields['xml_IdPaese'] CedentePrestatore.IdentificativiFiscali.IdFiscaleIVA.\ IdCodice = fields['xml_IdCodice'] if fields.get('xml_CodiceFiscale'): CedentePrestatore.IdentificativiFiscali.CodiceFiscale = \ CodiceFiscaleType(fields['xml_CodiceFiscale']) CedentePrestatore.AltriDatiIdentificativi = \ self.get_name(cr, uid, fields, dte_dtr_id, partner_type, context) return CedentePrestatore
def _xml_dati_partner(self, cr, uid, ids, fname, args, context=None): res = {} for line in self.browse(cr, uid, ids, context=context): ctx = context.copy() ctx['no_except'] = True fields = self._dati_partner(cr, uid, line.partner_id, args, context=ctx) result = {} for f in fname: if fields.get(f, ''): result[f] = fields[f] res[line.id] = result return res
def _xml_dati_partner(self, cr, uid, ids, fname, args, context=None): res = {} for line in self.browse(cr, uid, ids, context=context): fields = self._dati_partner(cr, uid, line.partner_id, args, context=context) # if len(fields.get('xml_IdCodice', '')) < 2 and \ # not fields.get('xml_CodiceFiscale', ''): # raise orm.except_orm( # _('Error!'), # _('Check VAT for partner %s!') % line.partner_id.name) result = {} for f in ('xml_IdPaese', 'xml_IdCodice', 'xml_CodiceFiscale'): if fields.get(f, ''): result[f] = fields[f] res[line.id] = result return res
def _xml_dati_partner(self, cr, uid, ids, fname, args, context=None): res = {} ctx = context.copy() ctx['no_except'] = True for line in self.browse(cr, uid, ids, context=ctx): fields = self._dati_partner(cr, uid, line.partner_id, args, context=ctx) if not line.tax_rate and not line.tax_nature: fields['xml_Error'] += _('No tax Nature') elif line.tax_nature and line.tax_nature == 'N6' and not line.tax_rate: if line.invoice_id.type in ('in_invoice', 'in_refund'): fields['xml_Error'] += u"""la natura N6 - Reverse Charge è compatibile solo con l'aliquota diversa da 0 per le fatture ricevute""" result = {} for f in fname: if fields.get(f, ''): result[f] = fields[f] res[line.id] = result return res
def get_dte_dtr(self, cr, uid, commitment_model, commitment, dte_dtr_id, context=None): context = context or {} partners = [] partner_ids = commitment_model.get_partner_list( cr, uid, commitment, dte_dtr_id, context) for partner_id in partner_ids: fields = commitment_model.get_xml_cessionario_cedente( cr, uid, commitment, partner_id, dte_dtr_id, context) # Missed mandatory data: skip record if 'xml_IdPaese' not in fields and \ 'xml_CodiceFiscale' not in fields: continue elif not fields.get('xml_IdCodice', False) and \ not fields.get('xml_CodiceFiscale', False): # Corrispettivi continue # TODO: StabileOrganizzazione # TODO: RappresentanteFiscale if dte_dtr_id == 'DTE': partner = self.get_cessionario_committente( cr, uid, fields, dte_dtr_id, context) else: partner = self.get_cedente_prestatore( cr, uid, fields, dte_dtr_id, context ) invoices = [] # Iterate over invoices of current partner invoice_ids = commitment_model.get_invoice_list( cr, uid, commitment, partner_id, dte_dtr_id, context) for invoice_id in invoice_ids: fields = commitment_model.get_xml_invoice( cr, uid, commitment, invoice_id, dte_dtr_id, context) if dte_dtr_id == 'DTE': invoice = (DatiFatturaBodyDTEType()) invoice.DatiGenerali = (DatiGeneraliType()) else: invoice = (DatiFatturaBodyDTRType()) invoice.DatiGenerali = (DatiGeneraliDTRType()) invoice.DatiGenerali.TipoDocumento = fields[ 'xml_TipoDocumento'] invoice.DatiGenerali.Data = fields['xml_Data'] invoice.DatiGenerali.Numero = fields['xml_Numero'] if dte_dtr_id == 'DTR': invoice.DatiGenerali.DataRegistrazione = fields[ 'xml_DataRegistrazione'] dati_riepilogo = [] line_ids = commitment_model.get_riepilogo_list( cr, uid, commitment, invoice_id, dte_dtr_id, context) for line_id in line_ids: fields = commitment_model.get_xml_riepilogo( cr, uid, commitment, line_id, dte_dtr_id, context) riepilogo = (DatiRiepilogoType()) riepilogo.ImponibileImporto = '{:.2f}'.format( fields['xml_ImponibileImporto']) riepilogo.DatiIVA = (DatiIVAType()) riepilogo.DatiIVA.Imposta = '{:.2f}'.format( fields['xml_Imposta']) riepilogo.DatiIVA.Aliquota = '{:.2f}'.format( fields['xml_Aliquota']) if 'xml_Detraibile' in fields: riepilogo.Detraibile = '{:.2f}'.format( fields['xml_Detraibile']) if 'xml_Deducibile' in fields: riepilogo.Deducibile = fields['xml_Deducibile'] if 'xml_Natura' in fields: riepilogo.Natura = fields['xml_Natura'] riepilogo.EsigibilitaIVA = fields['xml_EsigibilitaIVA'] dati_riepilogo.append(riepilogo) invoice.DatiRiepilogo = dati_riepilogo invoices.append(invoice) if dte_dtr_id == 'DTE': partner.DatiFatturaBodyDTE = invoices else: partner.DatiFatturaBodyDTR = invoices partners.append(partner) fields = commitment_model.get_xml_company( cr, uid, commitment, dte_dtr_id, context) if dte_dtr_id == 'DTE': dte = (DTEType()) dte.CedentePrestatoreDTE = self.get_cedente_prestatore( cr, uid, fields, dte_dtr_id, context) dte.CessionarioCommittenteDTE = partners # dte.Rettifica = (RettificaType()) return dte else: dtr = (DTRType()) dtr.CessionarioCommittenteDTR = self.get_cessionario_committente( cr, uid, fields, dte_dtr_id, context ) dtr.CedentePrestatoreDTR = partners # dtr.Rettifica = (RettificaType()) return dtr
def _payment_fields2(self,fields): fields2 = super(epn_pos_order,self)._payment_fields2(fields) fields2['signature'] = fields.get('signature',False) fields2['epn_info'] = fields.get('epn_info','') print 'payment_fields2',fields return fields2
def fields_view_get(self, cr, uid, view_id=None, view_type="form", context=None, toolbar=False, submenu=False): res = super(product_product, self).fields_view_get( cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu ) if context is None: context = {} if context.get("location") and isinstance(context["location"], int): location_info = self.pool.get("stock.location").browse(cr, uid, context["location"]) fields = res.get("fields", {}) if fields: if location_info.usage == "supplier": if fields.get("virtual_available"): res["fields"]["virtual_available"]["string"] = _("Future Receipts") if fields.get("qty_available"): res["fields"]["qty_available"]["string"] = _("Received Qty") if location_info.usage == "internal": if fields.get("virtual_available"): res["fields"]["virtual_available"]["string"] = _("Forecasted Quantity") if location_info.usage == "customer": if fields.get("virtual_available"): res["fields"]["virtual_available"]["string"] = _("Future Deliveries") if fields.get("qty_available"): res["fields"]["qty_available"]["string"] = _("Delivered Qty") if location_info.usage == "inventory": if fields.get("virtual_available"): res["fields"]["virtual_available"]["string"] = _("Future P&L") if fields.get("qty_available"): res["fields"]["qty_available"]["string"] = _("P&L Qty") if location_info.usage == "procurement": if fields.get("virtual_available"): res["fields"]["virtual_available"]["string"] = _("Future Qty") if fields.get("qty_available"): res["fields"]["qty_available"]["string"] = _("Unplanned Qty") if location_info.usage == "production": if fields.get("virtual_available"): res["fields"]["virtual_available"]["string"] = _("Future Productions") if fields.get("qty_available"): res["fields"]["qty_available"]["string"] = _("Produced Qty") return res
def _payment_fields2(self, fields): fields2 = super(epn_pos_order, self)._payment_fields2(fields) fields2['signature'] = fields.get('signature', False) fields2['epn_info'] = fields.get('epn_info', '') print 'payment_fields2', fields return fields2
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): res = super(product_product, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu) if context is None: context = {} if ('location' in context) and context['location']: location_info = self.pool.get('stock.location').browse( cr, uid, context['location']) fields = res.get('fields', {}) if fields: if location_info.usage == 'supplier': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _( 'Future Receptions') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _( 'Received Qty') if location_info.usage == 'internal': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _( 'Future Stock') if location_info.usage == 'customer': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _( 'Future Deliveries') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _( 'Delivered Qty') if location_info.usage == 'inventory': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _( 'Future P&L') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _('P&L Qty') if location_info.usage == 'procurement': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _( 'Future Qty') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _( 'Unplanned Qty') if location_info.usage == 'production': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _( 'Future Productions') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _( 'Produced Qty') return res
def get_sede(self, cr, uid, fields, dte_dtr_id, selector, context=None): if dte_dtr_id == 'DTE': if selector == 'company': sede = (IndirizzoType()) elif selector == 'customer': if SPESOMETRO_VERSION == '2.0': sede = (IndirizzoNoCAPType()) else: sede = (IndirizzoType()) elif selector == 'supplier': sede = (IndirizzoType()) else: raise orm.except_orm( _('Error!'), _('Internal error: invalid partner selector')) else: if selector == 'company': sede = (IndirizzoType()) elif selector == 'customer': if SPESOMETRO_VERSION == '2.0': sede = (IndirizzoNoCAPType()) else: sede = (IndirizzoType()) elif selector == 'supplier': if SPESOMETRO_VERSION == '2.0': sede = (IndirizzoNoCAPType()) else: sede = (IndirizzoType()) else: raise orm.except_orm( _('Error!'), _('Internal error: invalid partner selector')) if fields.get('xml_Nazione'): if len(fields['xml_Nazione']) != 2: raise orm.except_orm( _('Error!'), _('Country Code \'{code}\' is wrong for partner {partner}').format(code=fields['xml_Nazione'], partner=fields.get('xml_Denominazione')) ) sede.Nazione = fields['xml_Nazione'] else: raise orm.except_orm( _('Error!'), _('Unknow country of %s %s %S' % (fields.get('xml_Denominazione'), fields.get('xml_Nome'), fields.get('xml_Cognome')))) if fields.get('xml_Indirizzo'): sede.Indirizzo = self.str60Latin(fields['xml_Indirizzo']) else: raise orm.except_orm( _('Error!'), _('Missed address %s %s %S' % (fields.get('xml_Denominazione'), fields.get('xml_Nome'), fields.get('xml_Cognome')))) if fields.get('xml_Comune'): sede.Comune = self.str60Latin(fields['xml_Comune']) else: raise orm.except_orm( _('Error!'), _('Missed city %s %s %S' % (fields.get('xml_Denominazione'), fields.get('xml_Nome'), fields.get('xml_Cognome')))) if fields.get('xml_CAP') and fields['xml_Nazione'] == 'IT': sede.CAP = fields['xml_CAP'] elif selector == 'company': raise orm.except_orm( _('Error!'), _('Missed company zip code')) if fields.get('xml_Provincia') and fields['xml_Nazione'] == 'IT': sede.Provincia = fields['xml_Provincia'] return sede
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): res = super(product_product,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu) if context is None: context = {} if ('location' in context) and context['location']: location_info = self.pool.get('stock.location').browse(cr, uid, context['location']) fields=res.get('fields',{}) if fields: if location_info.usage == 'supplier': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _('Future Receipts') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _('Received Qty') if location_info.usage == 'internal': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _('Future Stock') if location_info.usage == 'customer': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _('Future Deliveries') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _('Delivered Qty') if location_info.usage == 'inventory': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _('Future P&L') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _('P&L Qty') if location_info.usage == 'procurement': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _('Future Qty') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _('Unplanned Qty') if location_info.usage == 'production': if fields.get('virtual_available'): res['fields']['virtual_available']['string'] = _('Future Productions') if fields.get('qty_available'): res['fields']['qty_available']['string'] = _('Produced Qty') return res
def get_sede(self, cr, uid, fields, dte_dtr_id, selector, context=None): if dte_dtr_id == 'DTE': if selector == 'company': sede = (IndirizzoType()) elif selector == 'customer': if SPESOMETRO_VERSION == '2.0': sede = (IndirizzoNoCAPType()) else: sede = (IndirizzoType()) elif selector == 'supplier': sede = (IndirizzoType()) else: raise orm.except_orm( _('Error!'), _('Internal error: invalid partner selector')) else: if selector == 'company': sede = (IndirizzoType()) elif selector == 'customer': if SPESOMETRO_VERSION == '2.0': sede = (IndirizzoNoCAPType()) else: sede = (IndirizzoType()) elif selector == 'supplier': if SPESOMETRO_VERSION == '2.0': sede = (IndirizzoNoCAPType()) else: sede = (IndirizzoType()) else: raise orm.except_orm( _('Error!'), _('Internal error: invalid partner selector')) if fields.get('xml_Nazione'): if len(fields['xml_Nazione']) != 2: raise orm.except_orm( _('Error!'), _(u'Country Code \'{code}\' is wrong for partner {partner}' ).format(code=fields['xml_Nazione'], partner=fields.get('xml_Denominazione'))) sede.Nazione = fields['xml_Nazione'] else: raise orm.except_orm( _('Error!'), _(u'Unknown country of %s %s %s' % (fields.get('xml_Denominazione'), fields.get('xml_Nome'), fields.get('xml_Cognome')))) if fields.get('xml_Indirizzo'): sede.Indirizzo = self.str60Latin(fields['xml_Indirizzo']) else: raise orm.except_orm( _('Error!'), _(u'Missing address %s %s %s' % (fields.get('xml_Denominazione', ''), fields.get('xml_Nome', ''), fields.get('xml_Cognome', '')))) if fields.get('xml_Comune'): sede.Comune = self.str60Latin(fields['xml_Comune']) else: raise orm.except_orm( _('Error!'), _(u'Missing city %s %s %s' % (fields.get('xml_Denominazione', ''), fields.get('xml_Nome', ''), fields.get('xml_Cognome', '')))) if fields.get('xml_CAP') and fields['xml_Nazione'] == 'IT': sede.CAP = fields['xml_CAP'] elif selector == 'company': raise orm.except_orm(_('Error!'), _('Missed company zip code')) if fields.get('xml_Provincia') and fields['xml_Nazione'] == 'IT': sede.Provincia = fields['xml_Provincia'] return sede