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'
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
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
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
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
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
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
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
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
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
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
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
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)