def upgrade(): for table in "invoice", "cancelinvoice", "manualinv": if not column_exists(table, "financial_year"): op.add_column(table, sa.Column("financial_year", sa.Integer, nullable=False)) for type_ in (Invoice, CancelInvoice, ManualInvoice): for document in type_.query(): document.financial_year = document.taskDate.year DBSESSION.merge(document)
def upgrade(): from autonomie.models.task import Invoice, CancelInvoice, ManualInvoice from autonomie.models import DBSESSION for table in "invoice", "cancelinvoice", "manualinv": if not column_exists(table, "financial_year"): op.add_column( table, sa.Column("financial_year", sa.Integer, nullable=False)) for type_ in (Invoice, CancelInvoice, ManualInvoice): for document in type_.query(): document.financial_year = document.taskDate.year DBSESSION.merge(document)
def upgrade(): logger = logging.getLogger("alembic.migrate_code_compta") op.add_column("company", sa.Column("code_compta", sa.String(30), default=0)) dbsession = DBSESSION() for user in User.query(): code_compta = user.code_compta companies = user.companies if code_compta not in [u"0", None, u""]: if len(companies) == 1: company = companies[0] company.code_compta = code_compta dbsession.merge(company) else: logger.warn(u"User {0} has a code_compta and multiple \ companies".format(user.id))
def upgrade(): logger = logging.getLogger("alembic.migrate_code_compta") op.add_column("company", sa.Column("code_compta", sa.String(30), default=0)) dbsession = DBSESSION() for user in User.query(): code_compta = user.code_compta companies = user.companies if code_compta not in [u"0", None, u""]: if len(companies) == 1: company = companies[0] company.code_compta = code_compta dbsession.merge(company) else: logger.warn(u"User {0} has a code_compta and multiple \ companies".format(user.id))
def upgrade(): from autonomie.models.company import Company from autonomie.models.files import File from autonomie.models import DBSESSION from alembic.context import get_bind from autonomie.models.config import ConfigFiles for i in ('header_id', 'logo_id',): col = sa.Column(i, sa.Integer, sa.ForeignKey('file.id')) op.add_column('company', col) query = "select id, header, logo from company;" conn = get_bind() result = conn.execute(query) session = DBSESSION() for id_, header, logo in result: company = Company.get(id_) basepath = u"%scompany/%s" % (BASEFILEPATH, id_,) if header: header_path = u"%s/header/%s" % (basepath, header) try: file_datas = load_file_struct(header_path, header) except: print("Error while loading a header") print(id_) file_datas = None if file_datas: company.header = file_datas session.add(company.header_file) session.flush() if logo: logo_path = u"%s/logo/%s" % (basepath, logo) try: file_datas = load_file_struct(logo_path, logo) except: print("Error while loading a logo") print(id_) file_datas = None if file_datas: company.logo = file_datas company = session.merge(company) session.flush() filepath = u"%s/main/logo.png" % BASEFILEPATH if os.path.isfile(filepath): ConfigFiles.set('logo.png', load_file_struct(filepath, 'logo.png')) filepath = u"%s/main/accompagnement_header.png" % BASEFILEPATH if os.path.isfile(filepath): ConfigFiles.set( 'accompagnement_header.png', load_file_struct(filepath, 'accompagnement_header.png') )
def upgrade(): from autonomie.models.client import Client for table in ("estimation", "invoice", "cancelinvoice"): op.add_column(table, sa.Column("address", sa.Text, default="")) op.add_column( table, sa.Column("client_id", sa.Integer, sa.ForeignKey("customer.id"))) for obj in (Invoice, CancelInvoice, Estimation): for doc in obj.query(): if doc.project is not None and doc.project.client_id is not None: client = Client.get(doc.project.client_id) if client is not None: doc.address = client.full_address doc.client_id = client.id if len(doc._number) > 10: doc._number = doc._number[10:] DBSESSION.merge(doc)
def upgrade(): from autonomie.models.client import Client for table in ("estimation", "invoice", "cancelinvoice"): op.add_column(table, sa.Column("address", sa.Text, default="")) op.add_column(table, sa.Column("client_id", sa.Integer, sa.ForeignKey("customer.id"))) for obj in (Invoice, CancelInvoice, Estimation): for doc in obj.query(): if doc.project is not None and doc.project.client_id is not None: client = Client.get(doc.project.client_id) if client is not None: doc.address = client.full_address doc.client_id = client.id if len(doc._number) > 10: doc._number = doc._number[10:] DBSESSION.merge(doc)
def upgrade(): from autonomie.models.company import Company from autonomie.models.files import File from autonomie.models import DBSESSION from alembic.context import get_bind from autonomie.models.config import ConfigFiles for i in ( 'header_id', 'logo_id', ): col = sa.Column(i, sa.Integer, sa.ForeignKey('file.id')) op.add_column('company', col) query = "select id, header, logo from company;" conn = get_bind() result = conn.execute(query) session = DBSESSION() for id_, header, logo in result: company = Company.get(id_) basepath = u"%scompany/%s" % ( BASEFILEPATH, id_, ) if header: header_path = u"%s/header/%s" % (basepath, header) try: file_datas = load_file_struct(header_path, header) except: print("Error while loading a header") print(id_) file_datas = None if file_datas: company.header = file_datas session.add(company.header_file) session.flush() if logo: logo_path = u"%s/logo/%s" % (basepath, logo) try: file_datas = load_file_struct(logo_path, logo) except: print("Error while loading a logo") print(id_) file_datas = None if file_datas: company.logo = file_datas company = session.merge(company) session.flush() filepath = u"%s/main/logo.png" % BASEFILEPATH if os.path.isfile(filepath): ConfigFiles.set('logo.png', load_file_struct(filepath, 'logo.png')) filepath = u"%s/main/accompagnement_header.png" % BASEFILEPATH if os.path.isfile(filepath): ConfigFiles.set( 'accompagnement_header.png', load_file_struct(filepath, 'accompagnement_header.png'))