class SalesRow(db.Model): __tablename__ = "tblsalesrow" id = db.Column(db.Integer, primary_key=True) sales_id = db.Column( db.Integer, db.ForeignKey('tblsales.id', ondelete='NO ACTION', onupdate='CASCADE')) item_code = db.Column( db.String(100), db.ForeignKey('tblitems.item_code', ondelete='NO ACTION', onupdate='NO ACTION')) quantity = db.Column(db.Float, nullable=False, default=0.00) whsecode = db.Column(db.String(100), db.ForeignKey('tblwhses.whsecode', onupdate='CASCADE'), nullable=False) uom = db.Column(db.String(50), db.ForeignKey('tbluom.code', onupdate='CASCADE')) unit_price = db.Column(db.Float, nullable=False) disc_amount = db.Column(db.Float, nullable=False, default=0.00) discprcnt = db.Column(db.Float, nullable=False, default=0.00) gross = db.Column(db.Float, nullable=False, default=0.00) linetotal = db.Column(db.Float, nullable=False, default=0.00) free = db.Column(db.Boolean, default=False) row_whse = db.relationship("Warehouses", backref="salesrow", foreign_keys=[whsecode]) salesheader = db.relationship("SalesHeader", back_populates="salesrow", lazy=True)
class ItemRequest(db.Model): __tablename__ = "tblitemreq" id = db.Column(db.Integer, primary_key=True) series = db.Column(db.Integer, db.ForeignKey('tblseries.id', ondelete='NO ACTION', onupdate='NO ACTION')) # series id seriescode = db.Column(db.String(50), nullable=False) # series code transnumber = db.Column(db.Integer, nullable=False) docstatus = db.Column(db.String(10), default='O', nullable=False) reference = db.Column(db.String(100)) transdate = db.Column(db.DateTime, nullable=False, default=datetime.now) duedate = db.Column(db.DateTime, nullable=False, default=datetime.now) reference2 = db.Column(db.String(100)) remarks = db.Column(db.String(250)) objtype = db.Column(db.Integer, nullable=False) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id', ondelete='NO ACTION'), nullable=False) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) confirm = db.Column(db.Boolean) sap_number = db.Column(db.Integer) request_rows = db.relationship('ItemRequestRow', back_populates="request_header", lazy=True)
class PayTransHeader(db.Model): __tablename__ = "tblpayment" id = db.Column(db.Integer, primary_key=True) series = db.Column(db.Integer, db.ForeignKey('tblseries.id', ondelete='NO ACTION', onupdate='NO ACTION')) # series id seriescode = db.Column(db.String(50), nullable=False) # series code transnumber = db.Column(db.Integer, nullable=False) # series next_num objtype = db.Column(db.Integer, db.ForeignKey( 'tblobjtype.objtype'), nullable=False) # seriescode + number reference = db.Column(db.String(100), nullable=False) transdate = db.Column(db.DateTime, nullable=False) base_id = db.Column(db.Integer, db.ForeignKey( 'tblsales.id', ondelete='CASCADE')) # sales id base_num = db.Column(db.Integer) # sales transnum # C for Close, N for Cancel docstatus = db.Column(db.String(10), default='C') cust_code = db.Column(db.String(100), nullable=False) total_due = db.Column(db.Float, nullable=False, default=0.00) total_paid = db.Column(db.Float, nullable=False, default=0.00) remarks = db.Column(db.String(250)) reference2 = db.Column(db.String(250)) sap_number = db.Column(db.Integer) created_by = db.Column( db.Integer, db.ForeignKey('tbluser.id'), nullable=False) updated_by = db.Column( db.Integer, db.ForeignKey('tbluser.id'), nullable=False) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) payrows = db.relationship( 'PayTransRow', back_populates='payheader', lazy=True)
class PullOutHeader(db.Model): __tablename__ = "tblpullout" id = db.Column(db.Integer, primary_key=True) series = db.Column(db.Integer, db.ForeignKey('tblseries.id', ondelete='NO ACTION', onupdate='NO ACTION')) # series id seriescode = db.Column(db.String(50), nullable=False) # series code transnumber = db.Column(db.Integer, nullable=False) # series next_num objtype = db.Column(db.Integer, db.ForeignKey('tblobjtype.objtype'), nullable=False) transdate = db.Column(db.DateTime, nullable=False) reference = db.Column(db.String(100), nullable=False) # seriescode + number remarks = db.Column(db.String(250)) docstatus = db.Column(db.String(10), default='O', nullable=False) sap_number = db.Column(db.Integer) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) confirm = db.Column(db.Boolean, default=False) row = db.relationship("PullOutRow", backref="pulloutheader", lazy=True)
class TransferRow(db.Model): __tablename__ = "tbltransrow" id = db.Column(db.Integer, primary_key=True, unique=True) transfer_id = db.Column(db.Integer, db.ForeignKey( 'tbltransfer.id', ondelete='CASCADE'), nullable=False) transnumber = db.Column(db.Integer, nullable=False) objtype = db.Column(db.Integer, nullable=False) from_whse = db.Column(db.String(100), db.ForeignKey('tblwhses.whsecode', ondelete='CASCADE', onupdate='CASCADE'), nullable=False) to_whse = db.Column(db.String(100), db.ForeignKey( 'tblwhses.whsecode'), nullable=False) item_code = db.Column(db.String(100), db.ForeignKey('tblitems.item_code', ondelete='CASCADE', onupdate='CASCADE'), nullable=False) quantity = db.Column(db.Float, nullable=False) uom = db.Column(db.String(50), db.ForeignKey( 'tbluom.code'), nullable=False) sap_number = db.Column(db.Integer, nullable=True, default=None) confirm = db.Column(db.Boolean, nullable=False, default=False) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id', ondelete='NO ACTION'), nullable=False) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) status = db.Column(db.Integer, default=1) # 1 for not cancel, 2 for cancel transheader = db.relationship( "TransferHeader", back_populates="transrow", lazy=True)
class ReceiveHeader(db.Model): __tablename__ = "tblreceive" id = db.Column(db.Integer, primary_key=True) series = db.Column(db.Integer, db.ForeignKey('tblseries.id', ondelete='NO ACTION', onupdate='NO ACTION')) # series id seriescode = db.Column(db.String(50), nullable=False) # series code transnumber = db.Column(db.Integer, nullable=False) # series next_num base_id = db.Column(db.Integer) # if from System Transfer objtype = db.Column(db.Integer, nullable=False) sap_number = db.Column(db.Integer, nullable=True, default=None) docstatus = db.Column(db.String(10), nullable=False, default='O') transtype = db.Column(db.String(100)) transdate = db.Column(db.DateTime) reference = db.Column(db.String(100)) reference2 = db.Column(db.String(100)) remarks = db.Column(db.String(250), nullable=True) supplier = db.Column(db.String(150)) type2 = db.Column(db.String(100)) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id', ondelete='NO ACTION'), nullable=False) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) recrow = db.relationship( "ReceiveRow", back_populates="recheader", lazy=True)
class Series(db.Model): __tablename__ = "tblseries" id = db.Column(db.Integer, primary_key=True) code = db.Column(db.String(50), nullable=False) # series code name = db.Column(db.String(100), nullable=False) # series name whsecode = db.Column(db.String(100), db.ForeignKey('tblwhses.whsecode', ondelete='NO ACTION', onupdate='CASCADE'), nullable=False) objtype = db.Column(db.Integer, db.ForeignKey('tblobjtype.objtype'), nullable=False) start_num = db.Column(db.Integer, nullable=False) next_num = db.Column(db.Integer, nullable=False) end_num = db.Column(db.Integer, nullable=False) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) updated_by = db.Column(db.DateTime, nullable=False, default=datetime.now) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id'), nullable=False) obj_code = db.relationship("ObjectType", backref="series", lazy=True) def __repr__(self): return f"Series('{self.code}', '{self.name}', '{self.objtype}', \
class UnitOfMeasure(db.Model): __tablename__ = "tbluom" id = db.Column(db.Integer, primary_key=True) code = db.Column(db.String(50), nullable=False, unique=True) description = db.Column(db.String(100), nullable=False, unique=True) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id', ondelete='NO ACTION'), nullable=False) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) items = db.relationship('Items', backref='unitofmeasure', lazy=True) def __repr__(self): return f"UnitOfMeasure('{self.code}', '{self.description}')"
class WhseInv(db.Model): __tablename__ = "tblwhseinv" id = db.Column(db.Integer, primary_key=True) item_code = db.Column(db.String(100), db.ForeignKey('tblitems.item_code', ondelete='CASCADE', onupdate='CASCADE'), nullable=False) quantity = db.Column(db.Float, nullable=False, default=0.00) warehouse = db.Column(db.String(100), db.ForeignKey('tblwhses.whsecode', ondelete='CASCADE', onupdate='CASCADE'), nullable=False) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id', ondelete='NO ACTION'), nullable=False) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) item = db.relationship("Items", backref="whseinv", lazy=True) def __repr__(self): return f"WhseInv('{self.item_code}', '{self.item_name}', '{self.quantity}')"
class Customer(db.Model): __tablename__ = "tblcustomer" id = db.Column(db.Integer, primary_key=True) code = db.Column(db.String(100), unique=True, nullable=False) name = db.Column(db.String(100), nullable=False) birthdate = db.Column(db.DateTime, default=datetime.now) cust_type = db.Column(db.Integer, db.ForeignKey('tblcusttype.id'), nullable=False) address = db.Column(db.String(250)) contact = db.Column(db.String(100)) whse = db.Column(db.String(100), db.ForeignKey('tblwhses.whsecode')) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) balance = db.Column(db.Float, nullable=False, default=0.00) dep_balance = db.Column(db.Float, default=0.00) custtype = db.relationship('CustomerType', backref='custtype', lazy=True)
class PayTransRow(db.Model): __tablename__ = "tblpaymentrow" id = db.Column(db.Integer, primary_key=True) payment_id = db.Column(db.Integer, db.ForeignKey( 'tblpayment.id', ondelete='NO ACTION'), nullable=False) payment_type = db.Column(db.String(50), db.ForeignKey( 'tblpaymenttype.code', onupdate='CASCADE'), nullable=False) deposit_id = db.Column(db.Integer) amount = db.Column(db.Float, nullable=False) created_by = db.Column( db.Integer, db.ForeignKey('tbluser.id'), nullable=False) updated_by = db.Column( db.Integer, db.ForeignKey('tbluser.id'), nullable=False) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) status = db.Column(db.Integer, default=1) # 1 if not cancel, 2 if canceled reference2 = db.Column(db.String(100)) sap_number = db.Column(db.Integer) payheader = db.relationship( 'PayTransHeader', back_populates='payrows', lazy=True)
class FinalInvCount(db.Model): __tablename__ = "tblfinalcount" id = db.Column(db.Integer, primary_key=True) series = db.Column(db.Integer, db.ForeignKey('tblseries.id', ondelete='NO ACTION', onupdate='NO ACTION')) # series id seriescode = db.Column(db.String(50), nullable=False) # series code transnumber = db.Column(db.Integer, nullable=False) # series next_num objtype = db.Column(db.Integer, db.ForeignKey('tblobjtype.objtype'), nullable=False) transdate = db.Column(db.DateTime, nullable=False) reference = db.Column(db.String(100), nullable=False) # seriescode + number remarks = db.Column(db.String(250)) docstatus = db.Column(db.String(10), default='C', nullable=False) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) sales_user = db.Column(db.String(100)) auditor_user = db.Column(db.String(100)) manager_user = db.Column(db.String(100)) row = db.relationship("FinalInvCountRow", backref="finalinvcount", lazy=True)
class TransferHeader(db.Model): __tablename__ = "tbltransfer" id = db.Column(db.Integer, primary_key=True) series = db.Column(db.Integer, db.ForeignKey('tblseries.id', ondelete='NO ACTION', onupdate='NO ACTION')) # series id seriescode = db.Column(db.String(50), nullable=False) # series code transnumber = db.Column(db.Integer, nullable=False) # series next_num reference = db.Column(db.String(100)) # Objcode + Series Next Num objtype = db.Column(db.Integer, nullable=False) sap_number = db.Column(db.Integer, nullable=True, default=None) docstatus = db.Column(db.String(10), nullable=False, default='O') transdate = db.Column(db.DateTime) reference2 = db.Column(db.String(100)) remarks = db.Column(db.String(250)) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id', ondelete='NO ACTION'), nullable=False) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) transrow = db.relationship( "TransferRow", back_populates="transheader", lazy=True)
class ItemRequestRow(db.Model): __tablename__ = "tblitemreqrow" id = db.Column(db.Integer, primary_key=True) request_id = db.Column(db.Integer, db.ForeignKey('tblitemreq.id', ondelete='CASCADE'), nullable=False) objtype = db.Column(db.Integer, nullable=False) from_whse = db.Column(db.String(100), db.ForeignKey('tblwhses.whsecode', ondelete='CASCADE', onupdate='CASCADE'), nullable=False) to_whse = db.Column(db.String(100), db.ForeignKey('tblwhses.whsecode'), nullable=False) item_code = db.Column(db.String(100), db.ForeignKey('tblitems.item_code', ondelete='CASCADE', onupdate='CASCADE'), nullable=False) quantity = db.Column(db.Float, nullable=False) deliverqty = db.Column(db.Float, nullable=False, default=0.00) uom = db.Column(db.String(50), db.ForeignKey('tbluom.code'), nullable=False) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id', ondelete='NO ACTION'), nullable=False) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id')) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) request_header = db.relationship("ItemRequest", back_populates="request_rows", lazy=True)
class SalesHeader(db.Model): __tablename__ = "tblsales" id = db.Column(db.Integer, primary_key=True) series = db.Column(db.Integer, db.ForeignKey('tblseries.id', ondelete='NO ACTION', onupdate='NO ACTION')) # series id docstatus = db.Column(db.String(30), default='O') seriescode = db.Column(db.String(50), nullable=False) transnumber = db.Column(db.Integer, nullable=False) reference = db.Column(db.String(100)) transdate = db.Column(db.DateTime, nullable=False, default=datetime.now) cust_code = db.Column(db.String(100), db.ForeignKey('tblcustomer.code', ondelete='CASCADE', onupdate='CASCADE'), nullable=False) cust_name = db.Column(db.String(100), nullable=False) objtype = db.Column(db.Integer, db.ForeignKey('tblobjtype.objtype'), nullable=False) remarks = db.Column(db.String(250)) transtype = db.Column(db.String(50), db.ForeignKey('tblsalestype.code'), nullable=False) delfee = db.Column(db.Float, default=0.00) disctype = db.Column(db.String(50), db.ForeignKey('tbldscnttype.code')) discprcnt = db.Column(db.Float, nullable=False, default=0.00) disc_amount = db.Column(db.Float, nullable=False, default=0.00) gross = db.Column(db.Float, nullable=False, default=0.00) gc_amount = db.Column(db.Float, nullable=False, default=0.00) doctotal = db.Column(db.Float, nullable=False, default=0.00) reference2 = db.Column(db.String(100)) tenderamt = db.Column(db.Float, default=0.00) sap_number = db.Column(db.Integer) appliedamt = db.Column(db.Float, default=0.00) change = db.Column(db.Float, default=0.00) amount_due = db.Column(db.Float, default=0.00) row_discount = db.Column(db.Float, default=0.00) void = db.Column(db.Boolean, nullable=True, default=False) created_by = db.Column(db.Integer, db.ForeignKey('tbluser.id'), nullable=False) updated_by = db.Column(db.Integer, db.ForeignKey('tbluser.id'), nullable=False) date_created = db.Column(db.DateTime, nullable=False, default=datetime.now) date_updated = db.Column(db.DateTime, nullable=False, default=datetime.now) confirm = db.Column(db.Boolean, default=False) date_confirm = db.Column(db.DateTime, default=datetime.now) confirm_by = db.Column(db.Integer) # user id latitude = db.Column(db.Float) longitude = db.Column(db.Float) created_user = db.relationship("User", backref="salesheader", foreign_keys=[created_by]) salesrow = db.relationship("SalesRow", back_populates="salesheader", lazy=True)