← Back to team overview

avanzosc team mailing list archive

Re: [Merge] lp:~mikelarregi/avanzosc/dos_shipping_labels_print into lp:~avanzosc-security-team/avanzosc/72horas

 

Review: Approve code review

Un par de cosillas y listo.

Un saludo.

Diff comments:

> === modified file 'dos_shipping_labels_report/__init__.py'
> --- dos_shipping_labels_report/__init__.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/__init__.py	2014-07-01 12:53:55 +0000
> @@ -19,8 +19,7 @@
>  ##############################################################################
>  
>  import report
> -import stock
>  import wizard
> +import models

from . import models

>  
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> -
> 
> === modified file 'dos_shipping_labels_report/__openerp__.py'
> --- dos_shipping_labels_report/__openerp__.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/__openerp__.py	2014-07-01 12:53:55 +0000
> @@ -19,22 +19,19 @@
>  ##############################################################################
>  
>  {
> -	"name" : "DOS Shipping Labels Report",
> -	"version" : "1.0",
> -	"author" : "DOS",
> -	"category" : "Enterprise Specific Modules",
> -	"description":"""Module to print shipping labes from picking with custom format.
> -	""",
> -	"depends" : ["stock"],
> -	"init_xml" : [],
> -	"demo_xml" : [],
> -	"update_xml" : [
> -		'shipping_labels_report.xml',
> -		'stock_view.xml',
> -		'shipping_labels_wizard.xml',
> -	],
> -	"website": 'http://www.dos-sl.es',
> -	"active": False,
> -	"installable": True,
> +    "name": "DOS Shipping Labels Report",
> +    "version": "1.0",
> +    "author": "DOS",
> +    "category": "Enterprise Specific Modules",
> +    "description": ("""Module to print shipping labes from """
> +                    """picking with custom format."""),
> +    "depends": ["stock","partner_firstname"],
> +    "data": [
> +        'report/shipping_labels_report.xml',
> +        'views/stock_view.xml',
> +        'wizard/shipping_labels_wizard.xml',
> +    ],
> +    "website": 'http://www.dos-sl.es',
> +    "installable": True,
>  }
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> 
> === added directory 'dos_shipping_labels_report/models'
> === added file 'dos_shipping_labels_report/models/__init__.py'
> --- dos_shipping_labels_report/models/__init__.py	1970-01-01 00:00:00 +0000
> +++ dos_shipping_labels_report/models/__init__.py	2014-07-01 12:53:55 +0000
> @@ -0,0 +1,22 @@
> +# -*- coding: utf-8 -*-
> +##############################################################################
> +#
> +#    OpenERP, Open Source Management Solution
> +#    Copyright (C) 2004-2010 DOS (<http://www.dos-sl.es>).
> +#
> +#    This program is free software: you can redistribute it and/or modify
> +#    it under the terms of the GNU Affero General Public License as
> +#    published by the Free Software Foundation, either version 3 of the
> +#    License, or (at your option) any later version.
> +#
> +#    This program is distributed in the hope that it will be useful,
> +#    but WITHOUT ANY WARRANTY; without even the implied warranty of
> +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +#    GNU Affero General Public License for more details.
> +#
> +#    You should have received a copy of the GNU Affero General Public License
> +#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +#
> +##############################################################################
> +
> +from . import stock
> 
> === renamed file 'dos_shipping_labels_report/stock.py' => 'dos_shipping_labels_report/models/stock.py'
> --- dos_shipping_labels_report/stock.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/models/stock.py	2014-07-01 12:53:55 +0000
> @@ -20,65 +20,60 @@
>  ##############################################################################
>  
>  
> -from osv import osv
> -from osv import fields
> -from tools.translate import _
> -import netsvc
> +from openerp.osv import orm, fields
> +from openerp.tools.translate import _
> +from openerp import netsvc
>  import base64
>  
> -class stock_picking(osv.osv):
> -
> -	_inherit ="stock.picking"
> -	
> -	
> -	def create_report(self, cr, uid, res_ids, report_name=False, context={}):
> -		if not report_name or not res_ids:
> -			raise osv.except_osv(_('Error !'),_('Report name and Resources ids are required !!!'))
> -		
> -		try:
> -			service = netsvc.LocalService("report."+report_name);
> -			result, format = service.create(cr, uid, res_ids, {}, context)
> -			
> -		except Exception,e:
> -			print 'Exception in create report:',e
> -			raise osv.except_osv(_('Error !'),_('Exception in create report.'))
> -		
> -		return result, format
> -	
> -
> -	def print_shipping_labels(self, cr, uid, ids, context=None):
> -		
> -		report_obj = self.pool.get('ir.actions.report.xml')
> -		printer_obj = self.pool.get('printing.printer')
> -		
> -		# Obtenemos la impresora Brother-QL-1060N-62x100
> -		default_printer = printer_obj.search(cr, uid, [('system_name', '=', 'Brother-QL-1060N-62x100')])
> -	
> -		if default_printer:
> -			default_printer = default_printer[0]
> -			printer = printer_obj.browse(cr, uid, default_printer, context).system_name
> -		else:
> -			raise osv.except_osv(_('Error !'),_('Not found any default printer. Please set the default printer.')) 
> -		
> -			
> -		for picking in self.browse(cr, uid, ids, context):
> -			
> -			num_packages = picking.number_of_packages or 0
> -			
> -			# Imprimimos un informe por cada paquete
> -			for i in range(1, num_packages+1):
> -			
> -				# Creamos informe
> -				result, format = self.create_report(cr, uid, [picking.id], 'shipping.labels.package.report', {'page_number': i})
> -			
> -				# Imprimimos informe
> -				report_obj.print_direct(cr, uid, base64.encodestring(result), format, printer)
> -				
> -			# Imprimimos informe con datos del receptor
> -			# result, format = self.create_report(cr, uid, [picking.id], 'shipping.labels.receiver.report')
> -		
> -			# report_obj.print_direct(cr, uid, base64.encodestring(result), format, printer)			
> -				
> -		return True
> -
> -stock_picking()
> +
> +class StockPicking(orm.Model):
> +
> +    _inherit = "stock.picking"
> +
> +    def create_report(self, cr, uid, res_ids, report_name=False,
> +                      context=None):
> +        if not report_name or not res_ids:
> +            raise orm.except_orm(_('Error !'),
> +                                 _('Report name and '
> +                                   'Resources ids are required !!!'))
> +        try:
> +            service = netsvc.LocalService("report." + report_name)
> +            result, format = service.create(cr, uid, res_ids, {}, context)
> +        except Exception, e:
> +            print 'Exception in create report:', e
> +            raise orm.except_orm(_('Error !'),
> +                                 _('Exception in create report.'))
> +        return result, format
> +
> +    def print_shipping_labels(self, cr, uid, ids, context=None):
> +        report_obj = self.pool['ir.actions.report.xml']
> +        printer_obj = self.pool['printing.printer']
> +        # Obtenemos la impresora Brother-QL-1060N-62x100
> +        default_printer = printer_obj.search(
> +            cr, uid, [('system_name', '=', 'Brother-QL-1060N-62x100')],
> +            context=context)
> +        if default_printer:
> +            default_printer = default_printer[0]
> +            printer = printer_obj.browse(
> +                cr, uid, default_printer, context).system_name
> +        else:
> +            raise orm.except_orm(
> +                _('Error !'), _('Not found any default printer.'
> +                                ' Please set the default printer.'))
> +        for picking in self.browse(cr, uid, ids, context):
> +            num_packages = picking.number_of_packages or 0
> +            # Imprimimos un informe por cada paquete
> +            for i in range(1, num_packages+1):
> +                # Creamos informe
> +                result, format = self.create_report(
> +                    cr, uid, [picking.id], 'shipping.labels.package.report',
> +                    {'page_number': i})
> +                # Imprimimos informe
> +                report_obj.print_direct(cr, uid, base64.encodestring(result),
> +                                        format, printer)
> +            # Imprimimos informe con datos del receptor
> +            # result, format = self.create_report(cr, uid, [picking.id],
> +            # 'shipping.labels.receiver.report')
> +            # report_obj.print_direct(cr, uid, base64.encodestring(result),
> +            # format, printer)
> +        return True
> 
> === modified file 'dos_shipping_labels_report/report/__init__.py'
> --- dos_shipping_labels_report/report/__init__.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/report/__init__.py	2014-07-01 12:53:55 +0000
> @@ -18,9 +18,8 @@
>  #
>  ##############################################################################
>  
> -import shipping_labels
> -import shipping_labels_package
> -import shipping_labels_receiver
> +from . import shipping_labels
> +from . import shipping_labels_package
> +from . import shipping_labels_receiver
>  
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> -
> 
> === modified file 'dos_shipping_labels_report/report/shipping_labels.py'
> --- dos_shipping_labels_report/report/shipping_labels.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/report/shipping_labels.py	2014-07-01 12:53:55 +0000
> @@ -22,13 +22,14 @@
>  import time
>  from datetime import datetime
>  from report import report_sxw
> -from osv import osv
> -from tools.translate import _
> -import pooler
> -
> -class shipping_labels_report(report_sxw.rml_parse):
> +from openerp.osv import orm, fields
> +from openerp.tools.translate import _
> +
> +
> +class ShippingLabelsReport(report_sxw.rml_parse):
>      def __init__(self, cr, uid, name, context):
> -        super(shipping_labels_report, self).__init__(cr, uid, name, context=context)
> +        super(ShippingLabelsReport, self).__init__(cr, uid, name,
> +                                                   context=context)
>          self.localcontext.update({
>              'time': time,
>              'get_phone_contact': self.get_phone_contact,
> @@ -38,89 +39,64 @@
>              'get_packages_lines': self.get_packages_lines,
>          })
>          self.context = context
> -        user = self.pool.get('res.users').browse(cr, uid, uid)
> +        user = self.pool['res.users'].browse(cr, uid, uid, context=context)
>          self.company = user.company_id
> -		
> -        
> -    def get_partner_contact (self, picking):
> -        contact = picking.contact_id and picking.contact_id.contact_id or None
> +
> +    def get_partner_contact(self, picking):
> +        contact = picking.partner_id or None
>          if contact:
> -            return ((contact.first_name if contact.first_name else '') + ' ' + contact.name).strip()
> +            return ('%s %s' % (contact.first_name or '', contact.name)).strip()
>          else:
>              return ''
>  
> -            
> -    def get_phone_contact (self, picking):
> -        if picking.contact_id:
> -            return picking.contact_id.phone or ''
> +    def get_phone_contact(self, picking):
> +        if picking.partner_id:
> +            return picking.partner_id.phone or ''
>          else:
>              return picking.address_id and picking.address_id.phone or ''
>  
> -    
> -    def get_email_contact (self, picking):
> -        if picking.contact_id:
> -            return picking.contact_id.email or ''
> +    def get_email_contact(self, picking):
> +        if picking.partner_id:
> +            return picking.partner_id.email or ''
>          else:
>              return picking.address_id and picking.address_id.email or ''
>  
> -    
> -    def get_company_address (self, picking):
> -        
> +    def get_company_address(self, picking):
>          res = []
> -        
>          company = picking.company_id or self.company or None
> -        
>          if company and company.partner_id:
> -            
>              partner = company.partner_id
> -            addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
> -            addr_id = addr_ids['default']
> -            addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
> -            
> -            phone = addr and addr.phone or ''
> +            phone = partner.phone or ''
>              format_phone = phone[0:3] + ' ' + phone[3:6] + ' ' + phone[6:9]
> -            
> -            res.append(partner and partner.name or "")
> -            res.append(addr and addr.street or '')
> -            res.append(addr and addr.city or '')
> -            res.append(addr and addr.zip or '')
> -            res.append(addr and addr.state_id and addr.state_id.name or '')
> +            res.append(partner.name or "")
> +            res.append(partner.street or '')
> +            res.append(partner.city or '')
> +            res.append(partner.zip or '')
> +            res.append(partner.state_id and partner.state_id.name or '')
>              res.append(phone)
>              res.append(format_phone)
> -            res.append(addr and addr.email or '')
> -            
> +            res.append(partner.email or '')
>          else:
> -            
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            
> +            for i in range(8):
> +                res.append(" ")
>              """
>              res.append("Nayar Systems S.L.")
>              res.append("Calle Taxida 10")
>              res.append("12003 Castellón")
>              res.append("España")
> -            res.append("B-12757795") 
> +            res.append("B-12757795")
>              """
> -            
>          return res
> -                            
> -    def get_packages_lines (self, picking):
> -        
> +
> +    def get_packages_lines(self, picking):
>          res = []
> -        
>          num_packages = picking.number_of_packages or 0
> -      
>          for i in range(0, num_packages):
> -
>              res.append(i+1)
> -                
>          return res
> -		
> -report_sxw.report_sxw('report.shipping.labels.report','stock.picking','addons/dos_shipping_labels_report/report/shipping_labels.rml',parser=shipping_labels_report)
> +
> +report_sxw.report_sxw('report.shipping.labels.report', 'stock.picking',
> +                      'addons/dos_shipping_labels_report/'
> +                      'report/shipping_labels.rml',
> +                      parser=shipping_labels_report)
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> 
> === modified file 'dos_shipping_labels_report/report/shipping_labels_package.py'
> --- dos_shipping_labels_report/report/shipping_labels_package.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/report/shipping_labels_package.py	2014-07-01 12:53:55 +0000
> @@ -22,16 +22,15 @@
>  import time
>  from datetime import datetime
>  from report import report_sxw
> -from osv import osv
> -from tools.translate import _
> -import pooler
> -
> -class shipping_labels_package_report(report_sxw.rml_parse):
> +from openerp.osv import orm, fields
> +from openerp.tools.translate import _
> +
> +
> +class ShippingLabelsPackageReport(report_sxw.rml_parse):
>      def __init__(self, cr, uid, name, context):
> -        super(shipping_labels_package_report, self).__init__(cr, uid, name, context=context)
> -        
> +        super(ShippingLabelsPackageReport, self).__init__(cr, uid, name,
> +                                                          context=context)
>          self.context = context
> -        
>          self.localcontext.update({
>              'time': time,
>              'context': self.context,
> @@ -40,71 +39,51 @@
>              'get_partner_contact': self.get_partner_contact,
>              'get_company_address': self.get_company_address,
>          })
> -
> -        user = self.pool.get('res.users').browse(cr, uid, uid)
> +        user = self.pool['res.users'].browse(cr, uid, uid,context=context)
>          self.company = user.company_id
>  
> -
> -    def get_partner_contact (self, picking):
> -        contact = picking.contact_id and picking.contact_id.contact_id or None
> +    def get_partner_contact(self, picking):
> +        contact = picking.partner_id or None
>          if contact:
> -            return ((contact.first_name if contact.first_name else '') + ' ' + contact.name).strip()
> +            return ('%s %s' % (contact.first_name or '', contact.name)).strip()
>          else:
>              return ''
>  
> -            
> -    def get_phone_contact (self, picking):
> -        if picking.contact_id:
> -            return picking.contact_id.phone or ''
> +    def get_phone_contact(self, picking):
> +        if picking.partner_id:
> +            return picking.partner_id.phone or ''
>          else:
>              return picking.address_id and picking.address_id.phone or ''
>  
> -    
> -    def get_email_contact (self, picking):
> -        if picking.contact_id:
> -            return picking.contact_id.email or ''
> +    def get_email_contact(self, picking):
> +        if picking.partner_id:
> +            return picking.partner_id.email or ''
>          else:
>              return picking.address_id and picking.address_id.email or ''
>  
> -    
> -    def get_company_address (self, picking):
> -        
> +    def get_company_address(self, picking):
>          res = []
> -        
>          company = picking.company_id or self.company or None
> -        
>          if company and company.partner_id:
> -            
>              partner = company.partner_id
> -            addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
> -            addr_id = addr_ids['default']
> -            addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
> -            
> -            phone = addr and addr.phone or ''
> +            phone = partner and partner.phone or ''
>              format_phone = phone[0:3] + ' ' + phone[3:6] + ' ' + phone[6:9]
> -            
> -            res.append(partner and partner.name or "")
> -            res.append(addr and addr.street or '')
> -            res.append(addr and addr.city or '')
> -            res.append(addr and addr.zip or '')
> -            res.append(addr and addr.state_id and addr.state_id.name or '')
> +            res.append(partner.name or "")
> +            res.append(partner.street or '')
> +            res.append(partner.city or '')
> +            res.append(partner.zip or '')
> +            res.append(partner.state_id
> +                       and partner.state_id.name or '')
>              res.append(phone)
>              res.append(format_phone)
> -            res.append(addr and addr.email or '')
> -            
> +            res.append(partner.email or '')
>          else:
> -            
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            
> +            for i in range(8):
> +                res.append(" ")
>          return res
> -                    
> -		
> -report_sxw.report_sxw('report.shipping.labels.package.report','stock.picking','addons/dos_shipping_labels_report/report/shipping_labels_package.rml',parser=shipping_labels_package_report)
> +
> +report_sxw.report_sxw('report.shipping.labels.package.report', 'stock.picking',
> +                      'addons/dos_shipping_labels_report/report/'
> +                      'shipping_labels_package.rml',
> +                      parser=shipping_labels_package_report)
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> 
> === modified file 'dos_shipping_labels_report/report/shipping_labels_receiver.py'
> --- dos_shipping_labels_report/report/shipping_labels_receiver.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/report/shipping_labels_receiver.py	2014-07-01 12:53:55 +0000
> @@ -22,13 +22,14 @@
>  import time
>  from datetime import datetime
>  from report import report_sxw
> -from osv import osv
> -from tools.translate import _
> -import pooler
> -
> -class shipping_labels_receiver_report(report_sxw.rml_parse):
> +from openerp.osv import orm, fields
> +from openerp.tools.translate import _
> +
> +
> +class ShippingLabelsReceiverReport(report_sxw.rml_parse):
>      def __init__(self, cr, uid, name, context):
> -        super(shipping_labels_receiver_report, self).__init__(cr, uid, name, context=context)
> +        super(ShippingLabelsReceiverReport, self).__init__(cr, uid, name,
> +                                                           context=context)
>          self.localcontext.update({
>              'time': time,
>              'get_phone_contact': self.get_phone_contact,
> @@ -37,70 +38,50 @@
>              'get_company_address': self.get_company_address,
>          })
>          self.context = context
> -        user = self.pool.get('res.users').browse(cr, uid, uid)
> +        user = self.pool['res.users'].browse(cr, uid, uid)
>          self.company = user.company_id
> -		
> -        
> -    def get_partner_contact (self, picking):
> -        contact = picking.contact_id and picking.contact_id.contact_id or None
> +
> +    def get_partner_contact(self, picking):
> +        contact = picking.partner_id or None
>          if contact:
> -            return ((contact.first_name if contact.first_name else '') + ' ' + contact.name).strip()
> +            return ('%s %s' % (contact.first_name or '', contact.name)).strip()
>          else:
>              return ''
>  
> -            
> -    def get_phone_contact (self, picking):
> -        if picking.contact_id:
> -            return picking.contact_id.phone or ''
> +    def get_phone_contact(self, picking):
> +        if picking.partner_id:
> +            return picking.partner_id.phone or ''
>          else:
>              return picking.address_id and picking.address_id.phone or ''
>  
> -    
> -    def get_email_contact (self, picking):
> -        if picking.contact_id:
> -            return picking.contact_id.email or ''
> +    def get_email_contact(self, picking):
> +        if picking.partner_id:
> +            return picking.partner_id.email or ''
>          else:
>              return picking.address_id and picking.address_id.email or ''
>  
> -    
> -    def get_company_address (self, picking):
> -        
> +    def get_company_address(self, picking):
>          res = []
> -        
>          company = picking.company_id or self.company or None
> -        
>          if company and company.partner_id:
> -            
>              partner = company.partner_id
> -            addr_ids = self.pool.get('res.partner').address_get(self.cr, self.uid, [partner.id], ['default'])
> -            addr_id = addr_ids['default']
> -            addr = self.pool.get('res.partner.address').browse(self.cr, self.uid, addr_id)
> -            
> -            phone = addr and addr.phone or ''
> +            phone = partner.phone or ''
>              format_phone = phone[0:3] + ' ' + phone[3:6] + ' ' + phone[6:9]
> -            
>              res.append(partner and partner.name or "")
> -            res.append(addr and addr.street or '')
> -            res.append(addr and addr.city or '')
> -            res.append(addr and addr.zip or '')
> -            res.append(addr and addr.state_id and addr.state_id.name or '')
> +            res.append(partner.street or '')
> +            res.append(partner.city or '')
> +            res.append(partner.zip or '')
> +            res.append(partner.state_id and partner.state_id.name or '')
>              res.append(phone)
>              res.append(format_phone)
> -            res.append(addr and addr.email or '')
> -            
> +            res.append(partner.email or '')
>          else:
> -            
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            res.append(" ")
> -            
> +            for i in range(8):
> +                res.append(" ")
>          return res
> -                            
> -		
> -report_sxw.report_sxw('report.shipping.labels.receiver.report','stock.picking','addons/dos_shipping_labels_report/report/shipping_labels_receiver.rml',parser=shipping_labels_receiver_report)
> +
> +report_sxw.report_sxw('report.shipping.labels.receiver.report',
> +                      'stock.picking', 'addons/dos_shipping_labels_report/'
> +                      'report/shipping_labels_receiver.rml',
> +                      parser=shipping_labels_receiver_report)
>  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> 
> === renamed file 'dos_shipping_labels_report/shipping_labels_report.xml' => 'dos_shipping_labels_report/report/shipping_labels_report.xml'
> === added directory 'dos_shipping_labels_report/views'
> === renamed file 'dos_shipping_labels_report/stock_view.xml' => 'dos_shipping_labels_report/views/stock_view.xml'
> --- dos_shipping_labels_report/stock_view.xml	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/views/stock_view.xml	2014-07-01 12:53:55 +0000
> @@ -4,7 +4,6 @@
>  
>          <record id="view_stock_picking_labels_inherit" model="ir.ui.view">
>              <field name="name">stock.picking.out.report.form</field>
> -            <field name="type">form</field>
>              <field name="model">stock.picking</field>
>              <field name="inherit_id" ref="delivery.view_delivery_order_inherit_stock"/>
>              <field name="arch" type="xml">
> 
> === modified file 'dos_shipping_labels_report/wizard/__init__.py'
> --- dos_shipping_labels_report/wizard/__init__.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/wizard/__init__.py	2014-07-01 12:53:55 +0000
> @@ -2,7 +2,8 @@
>  ##############################################################################
>  #
>  #    OpenERP, Open Source Management Solution
> -#    Copyright (c) 2008 Zikzakmedia S.L. (http://zikzakmedia.com) All Rights Reserved.
> +#    Copyright (c) 2008 Zikzakmedia S.L. (http://zikzakmedia.com)
> +#    All Rights Reserved.
>  #                       Jordi Esteve <jesteve@xxxxxxxxxxxxxxx>
>  #    $Id$
>  #
> @@ -21,4 +22,4 @@
>  #
>  ##############################################################################
>  
> -import wizard_shipping_labels_print
> \ No newline at end of file
> +from . import wizard_shipping_labels_print
> 
> === renamed file 'dos_shipping_labels_report/shipping_labels_wizard.xml' => 'dos_shipping_labels_report/wizard/shipping_labels_wizard.xml'
> --- dos_shipping_labels_report/shipping_labels_wizard.xml	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/wizard/shipping_labels_wizard.xml	2014-07-01 12:53:55 +0000
> @@ -1,9 +1,43 @@
>  <?xml version="1.0" encoding="utf-8"?>
>  <openerp>
> -    <data>
> -        <wizard string="Print Shipping Labels" 
> -        		model="stock.picking"
> -        		name="stock.picking.print_shipping_labels" 
> -        		id="stock_picking_print_shipping_labels"/>
> -    </data>
> +	<data>
> +	
> +	<record id="view_print_shipping_labels" model="ir.ui.view">
> +		<field name="name">view.print.production.labels</field>
> +		<field name="model">print.labels</field>
> +		<field name="arch" type="xml">
> +			<form string="Print Production Labels" version="7.0">
> +				<separator string="The following production labels will be print:" colspan="4"/>
> +				<field name="text_print" nolabel="1" colspan="4" width="600" height="250" />
> +				<footer>
> +					<button class="oe_link" special="cancel" string="Cancel"/>

Cambia el orden de los botones como se hace en v7 y ponle entre medias la letra o

> +					<button  icon="gtk-ok" name="print_labels" string="Print" type="object"/>
> +				</footer>
> +				<newline />
> +			</form>
> +		</field>
> +	</record>
> +	
> +	<record id="view_done_form" model="ir.ui.view">
> +		<field name="name">view.done.form</field>
> +		<field name="model">print.labels</field>
> +		<field name="arch" type="xml">
> +		<form string="Print Production Labels">
> +			<separator string="Production labels have been successfully sent to print" colspan="4"/>
> +			<field name="qty_labels" readonly="1"/>
> +			<button class="oe_link" special="cancel" string="Done"/>
> +		</form>
> +		</field>
> +	</record>
> +
> +	<act_window 
> +		id= "mrp_production_print_labels"
> +		name= "Print Production Labels" 
> +		res_model= "print.labels"
> +		src_model= "stock.picking"
> +		key2= "client_action_multi"
> +		view_id = "view_print_shipping_labels"
> +		target ="new" />
> +
> +	</data>
>  </openerp>
> 
> === modified file 'dos_shipping_labels_report/wizard/wizard_shipping_labels_print.py'
> --- dos_shipping_labels_report/wizard/wizard_shipping_labels_print.py	2014-06-11 10:23:47 +0000
> +++ dos_shipping_labels_report/wizard/wizard_shipping_labels_print.py	2014-07-01 12:53:55 +0000
> @@ -18,129 +18,105 @@
>  #
>  ##############################################################################
>  
> -import wizard
> -import pooler
> -import tools
> -
> -from tools.translate import _
> -from osv import fields,osv
> +from openerp.tools.translate import _
> +from openerp.osv import fields, orm
>  import time
>  import netsvc
> -from tools.misc import UpdateableStr, UpdateableDict
>  import base64
>  
> -print_init_form = '''<?xml version="1.0" encoding="utf-8"?>
> -<form string="Print Shipping Labels">
> -	<separator string="The following shipping labels will be print:" colspan="4"/>
> -	<field name="text_print" nolabel="1" colspan="4" width="600" height="250" />
> -	<newline />
> -</form>'''
> -
> -print_init_fields = {
> -	'text_print': {'string':'Message', 'type':'text', 'readonly':True},
> -}
> -
> -print_done_form = '''<?xml version="1.0" encoding="utf-8"?>
> -<form string="Print Shipping Labels">
> -	<separator string="Shipping labels have been successfully sent to print" colspan="4"/>
> -	<field name="qty_labels"/>
> -</form>'''
> -
> -print_done_fields = {
> -	'qty_labels': {'string':'Printed Labels', 'type':'integer', 'readonly': True},
> -}
> -
> -
> -def _get_defaults(self, cr, uid, data, context):
> -	p = pooler.get_pool(cr.dbname)
> -	user = p.get('res.users').browse(cr, uid, uid, context)
> -	
> -	text_print = ''
> -	i = 0
> -	
> -	pickings = p.get(data['model']).browse(cr, uid, data['ids'], context)
> - 
> -	for picking in pickings:
> -
> -		i += 1
> -		name = picking.name or ''
> -		partner_name = picking.partner_id and picking.partner_id.name or ''
> -			
> -		text_print += str(i) + '. ' + name + ' - ' + partner_name + '\n'
> -			
> -	return {'text_print': text_print}
> -
> -
> -def create_report(cr, uid, res_ids, report_name=False, context={}):
> -	if not report_name or not res_ids:
> -		raise osv.except_osv(_('Error !'),_('Report name and Resources ids are required !!!'))
> -	
> -	try:
> -		service = netsvc.LocalService("report."+report_name);
> -		result, format = service.create(cr, uid, res_ids, {}, context)
> -		
> -	except Exception,e:
> -		print 'Exception in create report:',e
> -		raise osv.except_osv(_('Error !'),_('Exception in create report.'))
> -	
> -	return result, format
> -
> -
> -def _print_labels(self, cr, uid, data, context):
> -	import re
> -	p = pooler.get_pool(cr.dbname)
> -	user = p.get('res.users').browse(cr, uid, uid, context)
> -	
> -	report_obj = p.get('ir.actions.report.xml')
> -	printer_obj = p.get('printing.printer')
> -	
> -	qty_labels = 0
> -	
> -	# Obtenemos la impresora Brother-QL-1060N-62x100
> -	default_printer = printer_obj.search(cr, uid, [('system_name', '=', 'Brother-QL-1060N-62x100')])
> -
> -	if default_printer:
> -		default_printer = default_printer[0]
> -		printer = printer_obj.browse(cr, uid, default_printer, context).system_name
> -	else:
> -		raise osv.except_osv(_('Error !'),_('Not found any default printer. Please set the default printer.')) 
> -	
> -	
> -	pickings = p.get(data['model']).browse(cr, uid, data['ids'], context)
> -	
> -	for picking in pickings:
> -		
> -		num_packages = picking.number_of_packages or 0
> -		
> -		# Imprimimos un informe por cada paquete
> -		for i in range(1, num_packages+1):
> -		
> -			# Creamos informe
> -			result, format = create_report(cr, uid, [picking.id], 'shipping.labels.package.report', {'page_number': i})
> -		
> -			# Imprimimos informe
> -			report_obj.print_direct(cr, uid, base64.encodestring(result), format, printer)
> -			
> -		# Imprimimos informe con datos del receptor
> -		# result, format = create_report(cr, uid, [picking.id], 'shipping.labels.receiver.report')
> -	
> -		# report_obj.print_direct(cr, uid, base64.encodestring(result), format, printer)	
> -		
> -		qty_labels += num_packages
> -		
> -	return {'qty_labels': qty_labels}
> -	
> -	
> -class print_labels(wizard.interface):
> -	states = {
> -		'init': {
> -			'actions': [_get_defaults],
> -			'result': {'type': 'form', 'arch': print_init_form, 'fields': print_init_fields, 'state':[('end','Cancel'), ('done','Print')]}
> -		},
> -		'done': {
> -			'actions': [_print_labels],
> -			'result': {'type': 'form', 'arch': print_done_form, 'fields': print_done_fields, 'state': [('end', 'Close')] }
> -		}
> -	}
> -	
> -print_labels('stock.picking.print_shipping_labels')
> +
> +class PrintLabels(orm.TransientModel):
> +
> +    _name = 'print.labels'
> +
> +    def _get_defaults(self, cr, uid, data, context=None):
> +        user = self.pool['res.users'].browse(cr, uid, uid, context=context)
> +        text_print = ''
> +        i = 0
> +        pickings = p.get(data['model']).browse(cr, uid, data['ids'],
> +                                               context=context)
> +        for picking in pickings:
> +            i += 1
> +            name = picking.name or ''
> +            partner_name = picking.partner_id and picking.partner_id.name or ''
> +            text_print += str(i) + '. ' + name + ' - ' + partner_name + '\n'
> +        return text_print
> +
> +    _columns = {
> +        'text_print': fields.text('Message', readonly=True),
> +        'qty_labels': fields.integer('Printed Labels'),
> +    }
> +    _defaults = {
> +        'text_print': _get_defaults,
> +        'qty_labels':
> +            lambda self, cr, uid, context: context.get('qty_labels', 0)
> +    }
> +
> +    def create_report(cr, uid, res_ids, report_name=False, context=None):
> +        if not report_name or not res_ids:
> +            raise orm.except_orm(
> +                _('Error !'),
> +                _('Report name and Resources ids are required !!!'))
> +        try:
> +            service = netsvc.LocalService("report."+report_name)
> +            result, format = service.create(cr, uid, res_ids, {},
> +                                            context=context)
> +        except Exception, e:
> +            print 'Exception in create report:', e
> +            raise orm.except_orm(_('Error !'),
> +                                 _('Exception in create report.'))
> +        return result, format
> +
> +    def _print_labels(self, cr, uid, data, context):
> +        user = self.pool['res.users'].browse(cr, uid, uid, context=context)
> +        report_obj = self.pool['ir.actions.report.xml']
> +        printer_obj = self.pool['printing.printer']
> +        qty_labels = 0
> +        # Obtenemos la impresora Brother-QL-1060N-62x100
> +        default_printer = printer_obj.search(
> +            cr, uid, [('system_name', '=', 'Brother-QL-1060N-62x100')])
> +        if default_printer:
> +            default_printer = default_printer[0]
> +            printer = (
> +                printer_obj.browse(
> +                    cr, uid, default_printer, context=context).system_name)
> +        else:
> +            raise orm.except_orm(_('Error !'),
> +                                 _('Not found any default printer. '
> +                                   'Please set the default printer.'))
> +        pickings = self.pool[data['model']].browse(cr, uid, data['ids'],
> +                                                   context=context)
> +        for picking in pickings:
> +            num_packages = picking.number_of_packages or 0
> +            # Imprimimos un informe por cada paquete
> +            for i in range(1, num_packages+1):
> +                # Creamos informe
> +                result, format = (
> +                    self.create_report(cr, uid, [picking.id],
> +                                       'shipping.labels.package.report',
> +                                       {'page_number': i}))
> +                # Imprimimos informe
> +                report_obj.print_direct(cr, uid, base64.encodestring(result),
> +                                        format, printer)
> +            # Imprimimos informe con datos del receptor
> +            # result, format = create_report(cr, uid, [picking.id],
> +            # 'shipping.labels.receiver.report')
> +            # report_obj.print_direct(cr, uid, base64.encodestring(result),
> +            # format, printer)
> +            qty_labels += num_packages
> +        data_obj = self.pool['ir.model.data']
> +        id2 = data_obj._get_id(cr, uid, 'dos_shipping_labels_report',
> +                               'view_done_form')
> +        if id2:
> +            id2 = data_obj.browse(cr, uid, id2, context=context).res_id
> +            context['qty_labels'] = qty_labels
> +        return {
> +            'view_type': 'form',
> +            'view_mode': 'form',
> +            'res_model': 'print.labels',
> +            'views': [(id2, 'form')],
> +            'view_id': False,
> +            'type': 'ir.actions.act_window',
> +            'target': 'new',
> +            'context': context
> +            }
> 


-- 
https://code.launchpad.net/~mikelarregi/avanzosc/dos_shipping_labels_print/+merge/225040
Your team Avanzosc_security is subscribed to branch lp:~avanzosc-security-team/avanzosc/72horas.


References