Rev 1225 | Rev 1261 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on 29-Mar-2010@author: ashish'''from elixir import *from elixir.entity import Entityfrom elixir.fields import Fieldfrom sqlalchemy.types import Integerfrom sqlalchemy import create_enginefrom elixir.relationships import OneToMany, ManyToOneimport datetimeimport elixir#===============================================================================# Different entities in the model#===============================================================================def initialize(dbname='transaction'):#metadata.bind = "sqlite:///Transactionsnew.sqlite"#metadata.bind = 'mysql://root:shop2020@localhost/transaction'engine = create_engine('mysql://root:shop2020@localhost/' + dbname, pool_recycle=7200)metadata.bind = enginemetadata.bind.echo = Truesetup_all(True)if __name__=="__main__":initialize()class LineItem(Entity):id = Field(Integer, primary_key=True, autoincrement=True)item_id = Field(Integer)productGroup = Field(String(100))brand = Field(String(100))model_number = Field(String(50))model_name = Field(String(50))color = Field(String(20))extra_info = Field(String(100))quantity = Field(Float)unit_price = Field(Float)unit_weight = Field(Float)total_price = Field(Float)transfer_price = Field(Float)total_weight = Field(Float)order = ManyToOne("Order")using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class Order(Entity):id = Field(Integer, primary_key=True, autoincrement=True)warehouse_id = Field(Integer)logistics_provider_id = Field(Integer)airwaybill_no = Field(String(50))tracking_id = Field(String(50))expected_delivery_time = Field(DateTime)customer_id = Field(Integer)customer_name = Field(String(50))customer_mobilenumber = Field(String(20))customer_pincode = Field(String(10))customer_address1 = Field(String(100))customer_address2 = Field(String(100))customer_city = Field(String(100))customer_state = Field(String(100))customer_email = Field(String(50))status = Field(Integer)statusDescription = Field(String(50))total_amount = Field(Float)total_weight = Field(Float)invoice_number = Field(String(30))billed_by = Field(String(30))created_timestamp = Field(DateTime)accepted_timestamp = Field(DateTime)billing_timestamp = Field(DateTime)shipping_timestamp = Field(DateTime)pickup_timestamp = Field(DateTime)delivery_timestamp = Field(DateTime)outofstock_timestamp = Field(DateTime)lineitems = OneToMany("LineItem")transaction = ManyToOne("Transaction")jacket_number = Field(Integer)receiver = Field(String(50))using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")batchNo = Field(Integer)serialNo = Field(Integer)class Transaction(Entity):id = Field(Integer, primary_key=True, autoincrement=True)createdOn = Field(DateTime)status = Field(Integer)status_message = Field(String(100))customer_id = Field(Integer)shopping_cart_id = Field(Integer)orders = OneToMany("Order")using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class Alerts(Entity):id = Field(Integer, primary_key=True, autoincrement=True)order_id = Field(Integer)valid = Field(Boolean)type = Field(Integer)time_set = Field(DateTime)comment = Field(String(100))time_unset = Field(DateTime)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")class BatchNoGenerator(Entity):id=Field(Integer, primary_key=True)using_options(shortnames=True)using_table_options(mysql_engine="InnoDB")