Esempio n. 1
0
 def transition_duplicate(self):
     AnalysisFamily = Pool().get('lims.analysis.family')
     AnalysisFamily.copy(
         [self.start.family_origin],
         default={
             'code': self.start.code,
             'description': self.start.description,
             'party': self.start.party.id if self.start.party else None,
         })
     return 'end'
Esempio n. 2
0
    def copy(cls, forecasts, default=None):
        Line = Pool().get("stock.forecast.line")

        if default is None:
            default = {}
        default = default.copy()
        default["lines"] = None

        new_forecasts = []
        for forecast in forecasts:
            new_forecast, = super(Forecast, cls).copy([forecast], default=default)
            Line.copy([x for x in forecast.lines], default={"forecast": new_forecast.id})
            new_forecasts.append(new_forecast)
        return new_forecasts
Esempio n. 3
0
    def copy(cls, forecasts, default=None):
        Line = Pool().get('stock.forecast.line')

        if default is None:
            default = {}
        default = default.copy()
        default['lines'] = None

        new_forecasts = []
        for forecast in forecasts:
            new_forecast, = super(Forecast, cls).copy([forecast],
                                                      default=default)
            Line.copy([x for x in forecast.lines],
                      default={
                          'forecast': new_forecast.id,
                      })
            new_forecasts.append(new_forecast)
        return new_forecasts
Esempio n. 4
0
    def _credit(self):
        Selection = Pool().get('analytic_account.account.selection')

        result = super(InvoiceLine, self)._credit()

        if self.analytic_accounts:
            selection, = Selection.copy([self.analytic_accounts])
            result['analytic_accounts'] = selection.id
        return result
Esempio n. 5
0
    def copy(cls, forecasts, default=None):
        Line = Pool().get('stock.forecast.line')

        if default is None:
            default = {}
        default = default.copy()
        default['lines'] = None

        new_forecasts = []
        for forecast in forecasts:
            new_forecast, = super(Forecast, cls).copy([forecast],
                default=default)
            Line.copy([x for x in forecast.lines],
                default={
                    'forecast': new_forecast.id,
                    })
            new_forecasts.append(new_forecast)
        return new_forecasts
Esempio n. 6
0
    def copy(cls, lines, default=None):
        Selection = Pool().get("analytic_account.account.selection")

        new_lines = super(PurchaseLine, cls).copy(lines, default=default)

        for line in lines:
            if line.analytic_accounts:
                selection, = Selection.copy([line.analytic_accounts])
                cls.write([line], {"analytic_accounts": selection.id})
        return new_lines
Esempio n. 7
0
    def copy(cls, moves, default=None):
        Line = Pool().get('tmi.move.line')

        if default is None:
            default = {}
        default = default.copy()
        default['number'] = None
        default['post_number'] = None
        default['state'] = cls.default_state()
        default['post_date'] = None
        default['lines'] = None

        new_moves = []
        for move in moves:
            new_move, = super(Move, cls).copy([move], default=default)
            Line.copy(move.lines, default={
                    'move': new_move.id,
                    })
            new_moves.append(new_move)
        return new_moves
Esempio n. 8
0
    def copy(cls, lines, default=None):
        Selection = Pool().get('analytic_account.account.selection')

        new_lines = super(InvoiceLine, cls).copy(lines, default=default)

        for line in new_lines:
            if line.analytic_accounts:
                selection, = Selection.copy([line.analytic_accounts])
                cls.write([line], {
                        'analytic_accounts': selection.id,
                        })
        return new_lines
Esempio n. 9
0
    def get_invoice_line(self, invoice_type):
        AccountSelection = Pool().get('analytic_account.account.selection')

        invoice_lines = super(SaleLine, self).get_invoice_line(invoice_type)
        if not invoice_lines:
            return invoice_lines

        selection = None
        if self.analytic_accounts:
            selection, = AccountSelection.copy([self.analytic_accounts])
        for invoice_line in invoice_lines:
            invoice_line.analytic_accounts = selection
        return invoice_lines
Esempio n. 10
0
    def copy(self, ids, default=None):
        template_obj = Pool().get('product.template')

        int_id = False
        if isinstance(ids, (int, long)):
            int_id = True
            ids = [ids]
        if default is None:
            default = {}
        default = default.copy()
        default['products'] = None
        new_ids = []
        for product in self.browse(ids):
            default['template'] = template_obj.copy(product.template.id)
            new_id = super(Product, self).copy(product.id, default=default)
            new_ids.append(new_id)

        if int_id:
            return new_ids[0]
        return new_ids
Esempio n. 11
0
    def copy(cls, project_works, default=None):
        TimesheetWork = Pool().get('timesheet.work')

        if default is None:
            default = {}

        timesheet_default = default.copy()
        for key in timesheet_default.keys():
            if key in cls._fields:
                del timesheet_default[key]
        timesheet_default['children'] = None
        new_project_works = []
        for project_work in project_works:
            timesheet_work, = TimesheetWork.copy([project_work.work],
                default=timesheet_default)
            pwdefault = default.copy()
            pwdefault['children'] = None
            pwdefault['work'] = timesheet_work.id
            new_project_works.extend(super(Work, cls).copy([project_work],
                    default=pwdefault))
        return new_project_works
Esempio n. 12
0
    def copy(cls, project_works, default=None):
        TimesheetWork = Pool().get('timesheet.work')

        if default is None:
            default = {}

        timesheet_default = default.copy()
        for key in timesheet_default.keys():
            if key in cls._fields:
                del timesheet_default[key]
        timesheet_default['children'] = None
        new_project_works = []
        for project_work in project_works:
            timesheet_work, = TimesheetWork.copy([project_work.work],
                                                 default=timesheet_default)
            pwdefault = default.copy()
            pwdefault['children'] = None
            pwdefault['work'] = timesheet_work.id
            new_project_works.extend(
                super(Work, cls).copy([project_work], default=pwdefault))
        return new_project_works
Esempio n. 13
0
    def do_return_(self, action):
        Sale = Pool().get('sale.sale')

        sales = Sale.browse(Transaction().context['active_ids'])

        origin = str(sales)

        def in_group():
            pool = Pool()
            ModelData = pool.get('ir.model.data')
            User = pool.get('res.user')
            Group = pool.get('res.group')
            group = Group(
                ModelData.get_id('nodux_account_ec_pymes',
                                 'group_sale_return'))
            transaction = Transaction()
            user_id = transaction.user
            if user_id == 0:
                user_id = transaction.context.get('user', user_id)
            if user_id == 0:
                return True
            user = User(user_id)
            return origin and group in user.groups

        if not in_group():
            self.raise_user_error(
                "No esta autorizado a realizar una devolucion")

        return_sales = Sale.copy(sales)
        for sale in return_sales:
            for line in sale.lines:
                if line.type == 'line':
                    line.quantity *= -1
                    line.save()
        data = {'res_id': [s.id for s in return_sales]}
        if len(return_sales) == 1:
            action['views'].reverse()
        return action, data
Esempio n. 14
0
    def model_copy(cls, subscription_id):
        Cron = Pool().get('ir.cron')
        History = Pool().get('training.subscription.history')
        Invoice = Pool().get('account.invoice')
        Sale = Pool().get('sale.sale')
        SaleInvoice = Pool().get('sale.sale-account.invoice')
        
        subscription = cls(subscription_id)
        logger = logging.getLogger('training_subscription')
        number_calls = subscription.number_calls
        remaining = Cron.browse([subscription.cron.id])[0].number_calls
        actual = number_calls - remaining + 1
        model_id = subscription.model_source and subscription.model_source.id \
                or False
        if model_id:
            Model = Pool().get(subscription.model_source.__name__)
            default = {'state':'draft'}
            #default['subscription_code'] = subscription.model_source.subscription_code + ' ' +str(actual)
            default['subscription_code'] = subscription.model_source.subscription_code

            try:
                model = Model.copy([subscription.model_source], default)
            except:
                history_vals = {
                    'log': cls.raise_user_error(
                        error='error_creating',
                        error_args=subscription.model_source.__name__, 
                        raise_exception=False)
                }
            else:
                history_vals = {
                    'log': cls.raise_user_error(
                        error='created_successfully',
                        error_args=subscription.model_source.__name__, 
                        raise_exception=False)
                }
                history_vals['document'] = (subscription.model_source.__name__,
                                        model[0].id)
            History.create([history_vals])
            
            sales = Sale.search([
                         ('id','=',model[0].id)
                         ])
            
            for sale in sales:
                Sale.quote([sale])
                Sale.confirm([sale])
                Sale.process([sale])
                
                saleinvoices = SaleInvoice.search([
                    ('sale', '=', sale.id),
                    ])
                invoices = Invoice.search( [
                    ('id','=',saleinvoices[0].invoice.id)
                    ])
                Invoice.write(invoices, {
                    'reference': sale.subscription_code,
                    'invoice_date': sale.sale_date,
                    })
                Invoice.post(invoices)
                
                if invoices:
                    for invoice in invoices:
                        cls.write([subscription], 
                                           {'sales': [('add', [sale.id])],
                                           'invoices': [('add', [invoice.id])]
                                               })

            # If it is the last cron execution, set the state of the
            # subscription to done
            if remaining == 1:
                subscription.write([subscription], {'state': 'done'})
        else:
            logger.error('Document in subscription %s not found.\n' % \
                         subscription.code)