예제 #1
0
    def __init__(self):
        self.connODM = conection().conODM()
        self.connORM = conection().conORM()

        self.status = 200
        self.msg = None
        self.type = "text/plain"
        Session = sessionmaker(bind=self.connORM)
        self.session = Session()
예제 #2
0
파일: main.py 프로젝트: hidura/sugelico
    def exec_code(self, codeName, inputs, environ):
        method_class = codeName.split(".")[0]
        method = codeName.split(".")[1]

        self.connODM = conection().conODM()
        ClsPckg = {
            "general": general,
            "Company": Company,
            "General": General,
            "login": login,
            "ManContact": ManContact,
            "Accounting": Accounting,
            "Bills": Bills,
            "Items": Items,
            "Accounts": Accounts,
            "WareHouse": warehouse,
            "Clients": Clients,
            "Recepie": Recepie,
            "supplier": supplier,
            "Table": Table,
            "TableArea": TableArea,
            "Types": Types,
            "Level": LevelProc,
            "Status": StatusProc,
            "Categories": Categories
        }

        retVal = getattr(ClsPckg[method_class](), method)(inputs)

        return retVal
예제 #3
0
    def __init__(self, inputs):
        self.connODM = conection().conODM()
        self.connORM = conection().conORM()

        self.status = 200
        self.msg = "0"
        self.type = "text/plain"
        Session = sessionmaker(bind=self.connORM)
        self.session = Session()
        if inputs["company"] in self.endpoints:
            #This just will apply to systems registred on the endpoint handle
            targetCls=self.endpoints[inputs["company"]]()
            retVal=getattr(targetCls, "process")(inputs)
            self.msg= retVal["value"]
            self.type=retVal["type"]
            self.status=retVal["status"]
예제 #4
0
파일: main.py 프로젝트: hidura/sugelico
class main:
    connORM = conection().conORM()

    def __init__(self, inputs, environ):
        from tools.Utilities import getNewPage
        self.getPage = getNewPage
        self.callObjects(inputs, environ)

    def callObjects(self, inputs, environ):
        self.result = ""
        inputs["__documentroot__"] = environ["DOCUMENT_ROOT"]
        if "md" in inputs:

            self.result = {
                "status": 200,
                "value": self.getPage(inputs["md"], inputs,
                                      environ).getResult(),
                "type": "text/html"
            }
        elif "classname" in inputs and "md" not in inputs:

            codeName = inputs["classname"]
            inputs.pop("classname", None)
            self.result = self.exec_code(codeName, inputs, environ)

    def getResult(self):

        return self.result

    def exec_code(self, codeName, inputs, environ):
        method_class = codeName.split(".")[0]
        method = codeName.split(".")[1]

        self.connODM = conection().conODM()
        ClsPckg = {
            "general": general,
            "Company": Company,
            "General": General,
            "login": login,
            "ManContact": ManContact,
            "Accounting": Accounting,
            "Bills": Bills,
            "Items": Items,
            "Accounts": Accounts,
            "WareHouse": warehouse,
            "Clients": Clients,
            "Recepie": Recepie,
            "supplier": supplier,
            "Table": Table,
            "TableArea": TableArea,
            "Types": Types,
            "Level": LevelProc,
            "Status": StatusProc,
            "Categories": Categories
        }

        retVal = getattr(ClsPckg[method_class](), method)(inputs)

        return retVal
예제 #5
0
class ComapnyEarnings(Base):
    metadata = MetaData()

    __tablename__ = "companyearnings_reg"

    __table_args__ = {"useexisting": True}

    id = Column('id', BIGINT, primary_key=True)
    code = Column("code", BIGINT, nullable=True)
    company = Column("company", BIGINT, nullable=True)
    total_earnings = Column("total_earnings", NUMERIC(20, 2), nullable=True)
    _date = Column("_date", NUMERIC(20, 2), nullable=True)
    company_earnings = Column("company_earnings",
                              NUMERIC(20, 2),
                              nullable=True,
                              default=0.00)
    status = Column("status", BIGINT, nullable=True)

    ComapnyEarnings_tbl = Table(__tablename__, metadata, id, code, company,
                                total_earnings, _date, status)

    def __repr__(self):
        return "<ComapnyEarnings(id='%s',code='%s',total_earnings='%s',_date='%s'," \
               "comapany_earnings='%s',status='%s',company='%s')>" % \
               (self.id,self.code,self.total_earnings, self._date,
                self.company_earnings, self.status, self.company)

    engine = conection().conORM()
    metadata.create_all(engine)

    engine.connect().close()

    def __Publish__(self):
        data = {}
        for column in self.__table__.columns.keys():
            value = self.__dict__[self.__table__.columns[column].name]
            if self.__table__.columns[column].type == "BIGINT":
                data[self.__table__.columns[column].name] = int(value)
            elif self.__table__.columns[column].type == "Integer":
                data[self.__table__.columns[column].name] = int(value)

            elif self.__table__.columns[column].type == "NUMERIC":
                data[self.__table__.columns[column].name] = float(value)
            elif self.__table__.columns[column].type == "Decimal":
                data[self.__table__.columns[column].name] = float(value)

            elif self.__table__.columns[column].type == "time":
                data[self.__table__.columns[column].name] = str(
                    value.strftime('%H:%M:%S'))
            elif self.__table__.columns[column].type == "datetime":
                data[self.__table__.columns[column].name] = str(
                    value.strftime('%H:%M:%S'))
            else:
                data[self.__table__.columns[column].name] = str(value)
        return data
예제 #6
0
class productSale(Base):
    metadata = MetaData()

    __tablename__ = "productsale_reg"

    __table_args__ = {"useexisting": True}

    id = Column('id', BIGINT, primary_key=True, autoincrement=True)
    prod_name = Column("prod_name", Text, nullable=False)
    amount = Column("amount", NUMERIC(20,2), nullable=False)
    product = Column("product", BIGINT, nullable=False)
    bill = Column("bill", BIGINT, nullable=False)# Product ordered
    category = Column("category", BIGINT, nullable=False)# The amount of product ordered

    productSale_Tbl = Table(__tablename__, metadata, id, prod_name, amount,
                              product, category, bill)

    def __repr__(self):
        return "<decreaseItems(id='%s', prod_name='%s',amount='%s'," \
               "product='%s',bill='%s',category='%s')>" % \
               (self.id, self.prod_name, self.amount,
                self.product,self.bill,self.category)

    engine = conection().conORM()
    metadata.create_all(engine)

    engine.connect().close()

    def __Publish__(self):
        data={}
        for column in self.__table__.columns.keys():
            value=self.__dict__[self.__table__.columns[column].name]
            if self.__table__.columns[column].type =="BIGINT":
                data[self.__table__.columns[column].name]=int(value)
            elif self.__table__.columns[column].type =="Integer":
                data[self.__table__.columns[column].name]=int(value)

            elif self.__table__.columns[column].type=="NUMERIC":
                data[self.__table__.columns[column].name] = float(value)
            elif self.__table__.columns[column].type=="Decimal":
                data[self.__table__.columns[column].name] = float(value)

            elif self.__table__.columns[column].type=="time":
                data[self.__table__.columns[column].name] = str(value.strftime('%H:%M:%S'))
            elif self.__table__.columns[column].type=="datetime":
                data[self.__table__.columns[column].name] = str(value.strftime('%H:%M:%S'))
            else:
                data[self.__table__.columns[column].name] = str(value)
        return data
예제 #7
0
파일: Level.py 프로젝트: hidura/sugelico
class Level(Base):
    """The level of the type,
    means the classification of any
     type in the system."""

    metadata = MetaData(conection().conORM())

    __tablename__="level_reg"

    __table_args__ = {"useexisting": True}

    id = Column('id',BIGINT, primary_key=True)
    level_name = Column('lvl_name',Text, nullable=False)
    code = Column('code',BIGINT, nullable=False, unique=True)

    level_tbl = Table(__tablename__, metadata, id, level_name,code)




    def __repr__(self):
        return "<level_reg(id='%s', level_name='%s', " \
               "code='%s')>"%(self.id, self.level_name,
                              self.code)


    metadata.create_all()
    def __Publish__(self):
        data={}
        for column in self.__table__.columns.keys():
            value=self.__dict__[self.__table__.columns[column].name]
            if self.__table__.columns[column].type =="BIGINT":
                data[self.__table__.columns[column].name]=int(value)
            elif self.__table__.columns[column].type =="Integer":
                data[self.__table__.columns[column].name]=int(value)

            elif self.__table__.columns[column].type=="NUMERIC":
                data[self.__table__.columns[column].name] = float(value)
            elif self.__table__.columns[column].type=="Decimal":
                data[self.__table__.columns[column].name] = float(value)

            elif self.__table__.columns[column].type=="time":
                data[self.__table__.columns[column].name] = str(value.strftime('%H:%M:%S'))
            elif self.__table__.columns[column].type=="datetime":
                data[self.__table__.columns[column].name] = str(value.strftime('%H:%M:%S'))
            else:
                data[self.__table__.columns[column].name] = str(value)
        return data
예제 #8
0
class AccountsTbl(Base):
    metadata = MetaData()

    __tablename__ = "accounts_reg"

    __table_args__ = {"useexisting": True}

    id = Column('id', BIGINT, primary_key=True)
    code = Column("code", BIGINT, nullable=False)
    account_name = Column("account_name", Text, nullable=False)
    current_amount = Column("current_amount",
                            NUMERIC(20, 2),
                            default=0.00,
                            nullable=False)
    classification = Column("classification", Text, nullable=False)
    account_type = Column("account_type", Text, nullable=False)
    position = Column("position", Text)

    status = Column("status", BIGINT, nullable=False, default=11)
    Accounts_tbl = Table(__tablename__, metadata, id, code, account_name,
                         current_amount, classification, account_type,
                         position, status)

    def __repr__(self):
        return "<Accounts (id='%s', code='%s', " \
               "account_name='%s', current_amount='%s'," \
               "classification='%s',account_type='%s'," \
               "position='%s',status='%s')>" % \
               (self.id, self.code,
                self.account_name, self.current_amount,
                self.classification, self.account_type,
                self.position,self.status)

    engine = conection().conORM()
    metadata.create_all(engine)

    engine.connect().close()
예제 #9
0
class ProductRecepie(Base):
    metadata = MetaData()

    __tablename__ = "productrecepie_reg"

    __table_args__ = {"useexisting": True}

    id = Column('id', BIGINT, primary_key=True)
    code = Column("code",
                  BIGINT,
                  nullable=False,
                  unique=True,
                  default=sa.text("setcode('" + __tablename__ +
                                  "'::text, 'code'::text)"))
    product = Column("product", BIGINT, nullable=False)
    item_recipe = Column("item_recipe", BIGINT, nullable=False)
    item_name = Column("item_name", Text, nullable=False)
    unit = Column("unit", BIGINT, nullable=False)
    unit_name = Column("unit_name", Text, nullable=False, default="")
    amount = Column("amount", NUMERIC(20, 2), nullable=False, default=0.00)
    status = Column("status", BIGINT, nullable=False, default=11)

    product_rec_rel = relationship(Item, backref=backref("product"))
    item_recipe_rec_rel = relationship(Item, backref=backref("item_recipe"))

    ProductRecepie_tbl = Table(__tablename__, metadata, id, code, item_recipe,
                               item_name, unit_name, unit, amount, status,
                               product)

    def __repr__(self):
        return "<ProductRecepie(id='%s',code='%s',item_recipe='%s',item_recipe_name='%s'," \
               "unit='%s',unit_name='%s',amount='%s',status='%s',product='%s')>" % \
               (self.id,self.code,self.item_recipe,self.item_recipe_name,self.unit,
                self.unit_name,self.amount, self.status,self.product)

    def __Publish__(self):
        data = {}
        for column in self.__table__.columns.keys():
            value = self.__dict__[self.__table__.columns[column].name]
            if self.__table__.columns[column].type == "BIGINT":
                data[self.__table__.columns[column].name] = int(value)
            elif self.__table__.columns[column].type == "Integer":
                data[self.__table__.columns[column].name] = int(value)

            elif self.__table__.columns[column].type == "NUMERIC":
                data[self.__table__.columns[column].name] = float(value)
            elif self.__table__.columns[column].type == "Decimal":
                data[self.__table__.columns[column].name] = float(value)

            elif self.__table__.columns[column].type == "time":
                data[self.__table__.columns[column].name] = str(
                    value.strftime('%H:%M:%S'))
            elif self.__table__.columns[column].type == "datetime":
                data[self.__table__.columns[column].name] = str(
                    value.strftime('%H:%M:%S'))
            else:
                data[self.__table__.columns[column].name] = str(value)
        return data

    engine = conection().conORM()
    metadata.create_all(engine)

    engine.connect().close()

    @staticmethod
    def get_all(db):
        s = db.session.query(ProductRecepie)

        return s.__dict__

    def exist(self, db):
        exists = db.session.query(
            db.session.query(ProductRecepie).filter_by(
                code=self.code).exists()).scalar()

        return exists

    @staticmethod
    def insert(data, db):
        db.session.add(ProductRecepie(**data))
        db.session.commit()

    @staticmethod
    def bulk_insert(data, db):
        db.session.bulk_save_objects(data)
        db.session.commit()
예제 #10
0
class GetProducts(Base):
    def __init__(self, name):
        self.name = name
    metadata = MetaData()

    __tablename__ = "getproducts"

    __table_args__ = {"useexisting": True}

    item_reg_item_id= Column('item_reg_item_id', BIGINT, primary_key=True)
    item_name = Column('item_name', Text)
    code= Column('code', BIGINT)
    price = Column('price', Text)
    item_reg_status = Column('item_reg_status', BIGINT)
    category=Column('category', BIGINT)
    status_reg_description = Column('status_reg_description', Text)
    type_reg_tpname = Column('type_reg_tpname', Text)
    item_reg_item_type= Column('item_reg_item_type', BIGINT)
    subtotal = Column('subtotal', Text)
    tax = Column('tax', Text)
    cat_name= Column('cat_name', Text)
    cat_typename= Column('cat_typename', Text)

    printer= Column('printer', Text)
    category_reg_avatar= Column('category_reg_avatar', Text)
    category_reg_cat_type= Column('category_reg_cat_type', BIGINT)
    category_reg_status = Column('category_reg_status', BIGINT)
    category_code = Column('category_code', BIGINT)

    type_product= Column('type_product', BIGINT)
    item_reg_avatar= Column('item_reg_avatar', Text)
    tp_avatar= Column('tp_avatar', Text)


    GetProducts_tbl = Table(__tablename__, metadata, item_reg_item_id,item_name, code,price,
                            item_reg_status,category,status_reg_description,type_reg_tpname,item_reg_item_type,
                            subtotal,tax,cat_name,printer,category_reg_avatar,
                            category_reg_cat_type,type_product,item_reg_avatar,tp_avatar,
                            category_reg_status,cat_typename)



    engine = conection().conORM()
    metadata.create_all(engine)

    engine.connect().close()

    def __Publish__(self):
        data = {}
        for column in self.__table__.columns.keys():
            value = self.__dict__[self.__table__.columns[column].name]
            if self.__table__.columns[column].type == "BIGINT":
                data[self.__table__.columns[column].name] = int(value)
            elif self.__table__.columns[column].type == "Integer":
                data[self.__table__.columns[column].name] = int(value)
            elif self.__table__.columns[column].type == "NUMERIC":
                data[self.__table__.columns[column].name] = float(value)
            elif self.__table__.columns[column].type == "Decimal":
                data[self.__table__.columns[column].name] = float(value)
            elif self.__table__.columns[column].type == "time":
                data[self.__table__.columns[column].name] = str(value.strftime('%H:%M:%S'))
            elif self.__table__.columns[column].type == "datetime":
                data[self.__table__.columns[column].name] = str(value.strftime('%H:%M:%S'))
            else:
                data[self.__table__.columns[column].name] = str(value)
        return data
예제 #11
0
class CodeGen:
    #This class work with the generation of the code
    #On every table.
    conn = conection().conORM()

    def getCodeLstingCode(self, code=None):
        if code == None:
            result = self.conn.execute(select([CodeListing]))

            valCurrentCode = self.conn.execute(select([CodeListing]).where(CodeListing.code == len(result.fetchall())+1))

            if valCurrentCode == None:
                return len(valCurrentCode.fetchall())+1
            else:
                _futureCode = self.getCodeLstingCode(len(valCurrentCode.fetchall())+2)
                return _futureCode
        else:

            valCurrentCode = self.conn.execute(select([CodeListing]).where(CodeListing.code == code))

            if len(valCurrentCode.fetchall())==0:
                return code
            else:
                _futureCode = self.getCodeLstingCode(code+1)
                return _futureCode

    def GenCode(self, kwargs):


        getCurrCode = select([CodeListing]).where(CodeListing.name_tbl == kwargs["table"])

        codeTbl = 0
        
        result = self.conn.execute(getCurrCode).fetchone()
        currentCode = 1
        if result != None:
            currentCode = int(result.curCode)+1
            self.conn.execute(update(CodeListing).where(CodeListing.code == int(result.code)).values(curCode=currentCode))
        else:
            if "column" not in kwargs:
                kwargs["column"] = "code"

            description = ""
            headCode = 0
            code = CodeGen().getCodeLstingCode()


            if "description" in kwargs:
                description = kwargs["description"]

            elif "headCode" in kwargs:
                headCode=int(kwargs["headCode"])



            self.conn.execute(insert(CodeListing).values(curCode=currentCode, name_tbl=kwargs["table"], name_col=kwargs["column"],
                                                    description=description, headCode=headCode, code=code))

        return currentCode
        #this method will generate and save a new code,
        #And will find if that code is in use, if not in use will returned.


    def RollBackCode(self, kwargs):


        getCurrCode = select([CodeListing]).where(CodeListing.name_tbl == kwargs["table"])

        codeTbl = 0

        result = self.conn.execute(getCurrCode).fetchone()
        currentCode = 1
        if result != None:
            currentCode = (int(result.curCode)-1)
            self.conn.execute(update(CodeListing).where(CodeListing.code == int(result.code)).values(curCode=currentCode))
        else:
            currentCode=0

        return currentCode
예제 #12
0
    company_code = LongField(required=True)
    rule_name = StringField(required=True)


# HELPER AREA##########################################
# Here I complete some table that were designed in
# a way and now change it will brake the system apart
class product_type(Document):

    prod_type = LongField(required=True)
    avatar = StringField(required=False, default="dinner.png")


if __name__ == '__main__':
    ###Testing area
    myConn = conection().conODM()
    print(Module.objects())
    #UsertypeMenu.objects(id='579cc3748f01b939d41efe0a').delete()
    # code = CodeGen().GenCode({"table": "printer", "column": "code"})
    # printer_reg(code=code, brand="Smart & Cool", model="POS-5890C", papersize=58).save()
    # code = CodeGen().GenCode({"table": "printer", "column": "code"})
    # printer_reg(code=code, brand="Star", model="SP200", papersize=90).save()

    # code = CodeGen().GenCode({"table": "cashbox", "column": "code"})
    #
    # cashbox(_name="001", code=code, company=3, branch=1, description="Caja del piso principal.", printer=1).save()
    # #UsertypeMenu.objects(id="579cc3748f01b937b857915c").update(set__module=21)
    # UsertypeMenu(user_type=74, module=21, created_by=11, created_date=2457634).save()
    # for piece in UsertypeMenu.objects(user_type=74):
    #     print(piece.user_type, piece.module, piece.id, piece.created_by, piece.created_date)
    # for piece in Module.objects():