def test_edit_person(app): if app.object.count_person() == 0: app.object.create_person_form( Person( name="test", lastname="test", address="test", email="test", mobile="test", )) old_persons = app.object.get_person_list() index = randrange(len(old_persons)) person = Person( name="new 1", lastname="new 2", address="new 3", mobile="new 4", email="new 5", ) person.id = old_persons[index].id app.object.edit_person_form_by_index(index, person) new_persons = app.object.get_person_list() assert len(old_persons) == app.object.count_person() old_persons[index] = person assert sorted(old_persons, key=Person.id_or_max) == sorted(new_persons, key=Person.id_or_max)
def get_person_info_from_edit_page(self, index): wd = self.app.wd self.open_person_to_edit_by_index(index) firstname = wd.find_element_by_name("firstname").get_attribute("value") lastname = wd.find_element_by_name("lastname").get_attribute("value") id = wd.find_element_by_name("id").get_attribute("value") address = wd.find_element_by_name("address").get_attribute("value") email = wd.find_element_by_name("email").get_attribute("value") email2 = wd.find_element_by_name("email2").get_attribute("value") email3 = wd.find_element_by_name("email3").get_attribute("value") homephone = wd.find_element_by_name("home").get_attribute("value") workphone = wd.find_element_by_name("work").get_attribute("value") mobile = wd.find_element_by_name("mobile").get_attribute("value") secondphone = wd.find_element_by_name("phone2").get_attribute("value") return Person( name=firstname, lastname=lastname, id=id, address=address, email=email, email2=email2, email3=email3, mobile=mobile, homephone=homephone, workphone=workphone, secondphone=secondphone, )
def get_person_from_view_page(self, index): wd = self.app.wd self.open_person_view_by_index(index) text = wd.find_element_by_id("content").text homephone = re.search("H: (.*)", text).group(1) workphone = re.search("W: (.*)", text).group(1) mobile = re.search("M: (.*)", text).group(1) secondphone = re.search("P: (.*)", text).group(1) return Person( mobile=mobile, homephone=homephone, workphone=workphone, secondphone=secondphone, )
def test_add_person(app): old_persons = app.object.get_person_list() person = Person( name="1", lastname="2", address="3", mobile="4", email="5", ) app.object.create_person_form(person) new_persons = app.object.get_person_list() assert len(old_persons) + 1 == app.object.count_person() old_persons.append(person) assert sorted(old_persons, key=Person.id_or_max) == sorted(new_persons, key=Person.id_or_max)
def test_delete_some_person(app): if app.object.count_person() == 0: app.object.create_person_form( Person( name="test", lastname="test", address="test", email="test", mobile="test", )) old_persons = app.object.get_person_list() index = randrange(len(old_persons)) app.object.delete_person_by_index(index) new_persons = app.object.get_person_list() assert len(old_persons) - 1 == app.object.count_person() old_persons[index:index + 1] = [] assert old_persons == new_persons
def hello_world(): db.drop_all() db.create_all() order = Order() n = Person(username="******", email="*****@*****.**") nutzerList = db.session.query(Person).filter_by(username=n.username).all() if not nutzerList: db.session.add(n) db.session.commit() product1 = Product(name="CD") order.product = product1 order.user = n db.session.add(order) db.session.commit() return "new inn ;-)"
def get_person_list(self): if self.person_cache is None: wd = self.app.wd self.open_person_page() self.person_cache = [] for row in wd.find_elements_by_name("entry"): elements = row.find_elements_by_tag_name("td") id = elements[0].find_element_by_tag_name( "input").get_attribute("value") lastname = elements[1].text firstname = elements[2].text address = elements[3].text all_emails = elements[4].text all_phones = elements[5].text self.person_cache.append( Person( name=firstname, lastname=lastname, id=id, address=address, all_emails_frome_home_page=all_emails, all_phones_frome_home_page=all_phones, )) return list(self.person_cache)
def Process(self, section): if section == 'purchase': purchases = Order.select().where(Order.verified == 0) self.RenderFile('confirm/purchase.htm', {'_': config.i18n, 'purchases': purchases}) elif section == 'purchase.details': id = self.IntReq('id') products = Product.select().where(Product.order == Order.get(Order.id == id)) self.RenderFile('confirm/purchase.details.htm', {'_': config.i18n, 'products': products}) elif section == 'purchse.confirm': id = self.IntReq('id') try: o = Order().get(Order.id == id) o.verified = 1 o.save() # update storage info products = Product.select().join(Order).where(Order.id == o.id) for product in products: try: sc = StorageChange.get( (StorageChange.product == product) & (StorageChange.storage == o.storage)) sc.enter += product.quantity except: sc = StorageChange() sc.storage = o.storage sc.product = product sc.date = getDate() sc.time = getTime() sc.enter = product.quantity sc.purchase = product.purchase sc.sell = product.sale sc.reftype = 1 sc.refid = o.id sc.save() self.RenderJSON({'result': 'OK'}) except: self.RenderJSON({'result': 'NO'}) elif section == 'sale': sales = Sale.select().where(Sale.verified == 0) self.RenderFile('confirm/sale.htm', {'_': config.i18n, 'sales': sales}) elif section == 'sale.details': sale = Sale.get(Sale.id == self.IntReq('id')) details = sale.details i = 1 for detail in details: detail.index = i i = i + 1 customers = Person.select() storages = Storage.select() for cus in customers: if cus == sale.customer: cus.selected = True self.RenderFile('confirm/sale.details.htm', { '_': config.i18n, 'Sale': sale, 'Sale_details': details, 'Storages': storages, 'Customers': customers }) elif section == 'sale.confirm': id = self.IntReq('id') try: s = Sale().get(Sale.id == id) s.verified = 1 s.save() # update storage info # saledetails = SaleDetails.select().join(Sale).where(Sale.id == s.id) # for sd in saledetails: # try: # sc = StorageChange.get((StorageChange.product == sd.product) & (StorageChange.storage == sd.storage)) # sc.export += sd.quantity # sc.sell = sd.saleprice # sc.purchase = sd.product.purchase # sc.save() # except: # self.RenderJSON({'result':'NO'}) self.RenderJSON({'result': 'OK'}) except: self.RenderJSON({'result': 'NO'})
def Process(self, section): # Open a form in order to save or update if section == 'person.new': person = Person() person.id = 0 self.RenderFile('person/person.htm', { '_': config.i18n, 'person': person }) elif section == 'supplier.new': supplier = Supplier() supplier.id = 0 self.RenderFile('supplier/supplier.htm', { '_': config.i18n, 'supplier': supplier }) elif section == 'group.new': group = Group() group.id = 0 self.RenderFile('group/group.htm', { '_': config.i18n, 'group': group }) elif section == 'storage.new': storage = Storage() storage.id = 0 self.RenderFile('storage/storage.htm', { '_': config.i18n, 'storage': storage }) elif section == 'cost.new': cost = Cost() cost.id = 0 self.RenderFile('cost/cost.htm', {'_': config.i18n, 'cost': cost}) # Open a form with fields filled with data to update elif section == 'person.edit': id = self.IntReq('id') person = Person.get(Person.id == id) self.RenderFile('person/person.htm', { '_': config.i18n, 'person': person }) elif section == 'supplier.edit': id = self.IntReq('id') supplier = Supplier.get(Supplier.id == id) self.RenderFile('supplier/supplier.htm', { '_': config.i18n, 'supplier': supplier }) elif section == 'group.edit': id = self.IntReq('id') group = Group().get(Group.id == id) self.RenderFile('group/group.htm', { '_': config.i18n, 'group': group }) elif section == 'storage.edit': id = self.IntReq('id') storage = Storage().get(Storage.id == id) self.RenderFile('storage/storage.htm', { '_': config.i18n, 'storage': storage }) elif section == 'cost.edit': id = self.IntReq('id') cost = Cost().get(Cost.id == id) self.RenderFile('cost/cost.htm', {'_': config.i18n, 'cost': cost}) # Send save operation to the controler elif section == 'person.save': id = self.IntReq('id') try: p = Person.get(Person.id == id) except: p = Person() p.name = self.StringReq('name') p.city = self.StringReq('city') p.phone = self.StringReq('phone') p.email = self.StringReq('email') p.address = self.StringReq('address') p.save() self.RenderJSON({ 'Result': 'success', 'id': p.id }) elif section == 'supplier.save': id = self.IntReq('id') try: s = Supplier.get(Supplier.id == id) except: s = Supplier() s.name = self.StringReq('name') s.manager = self.StringReq('manager') s.tell = self.StringReq('tell') s.field = self.StringReq('field') s.save() self.RenderJSON({ 'Result': 'success', 'id': s.id }) elif section == 'group.save': id = self.IntReq('id') try: g = Group.get(Group.id == id) except: g = Group() g.name = self.StringReq('name') g.unit = self.StringReq('unit') g.save() self.RenderJSON({'Result': 'success', 'id': g.id}) elif section == 'storage.save': id = self.IntReq('id') try: st = Storage.get(Storage.id == id) except: st = Storage() st.name = self.StringReq('name') st.tell = self.StringReq('tell') st.address = self.StringReq('address') st.save() self.RenderJSON({'Result': 'success', 'id': st.id}) elif section == 'cost.save': id = self.IntReq('id') try: ct = Cost.get(Cost.id == id) except: ct = Cost() ct.regdate = self.StringReq('regdate') ct.regtime = self.StringReq('regtime') ct.title = self.StringReq('title') ct.invoiceno = self.StringReq('invoiceno') ct.amount = self.FloatReq('amount') ct.save() self.RenderJSON({'Result': 'success', 'id': ct.id}) elif section == 'person.check': self.output = '' elif section == 'person.filter': list = Person.select() args = {'data': list, '_': config.i18n} self.RenderFile('person/list.htm', args) # Delete section for each item elif section == 'group.delete': id = self.IntReq('id') group = Group.get(Group.id == id) group.delete_instance() self.RenderJSON({'result': 'OK'}) elif section == 'supplier.delete': id = self.IntReq('id') supplier = Supplier.get(Supplier.id == id) supplier.delete_instance() self.RenderJSON({'result': 'OK'}) elif section == 'storage.delete': id = self.IntReq('id') storage = Storage.get(Storage.id == id) storage.delete_instance() self.RenderJSON({'result': 'OK'}) elif section == 'person.delete': id = self.IntReq('id') person = Person.get(Person.id == id) person.delete_instance() self.RenderJSON({'result': 'OK'}) elif section == 'cost.delete': id = self.IntReq('id') cost = Cost.get(Cost.id == id) cost.delete_instance() self.RenderJSON({'result': 'OK'}) # Manage section for items elif section == 'person.manage': self.RenderFile('person/manage.htm', { '_': config.i18n, 'persons': Person.select() }) elif section == 'supplier.manage': args = {'_': config.i18n, 'suppliers': Supplier.select()} self.RenderFile('supplier/manage.htm', args) elif section == 'group.manage': list = Group.select() args = {'groups': list, '_': config.i18n} self.RenderFile('group/manage.htm', args) elif section == 'storage.manage': list = Storage.select() args = {'storages': list, '_': config.i18n} self.RenderFile('storage/manage.htm', args) elif section == 'cost.manage': list = Cost.select() args = {'costs': list, '_': config.i18n} self.RenderFile('cost/manage.htm', args) elif section == 'person.history': id = self.IntReq('id') person = Person.get(Person.id == id) sales = Sale.select().where(Sale.customer == person) i = 1 for sale in sales: sale.index = i i += 1 args = {'person': person, 'sales': sales, '_': config.i18n} self.RenderFile('person/history.htm', args) elif section == 'group.goodlist': id = self.IntReq('id') g = Group.get(Group.id == id) args = { 'group': g, 'products': g.products.group_by(Product.name), '_': config.i18n } self.RenderFile('group/goodlist.htm', args) elif section == 'storage.goodlist': id = self.IntReq('id') is_JSON = (self.IntReq('json') != 0) s = Storage.get(Storage.id == id) args = {'_': config.i18n, 'storage': s, 'products': s.goodlist()} if is_JSON: ps = [] for p in s.goodlist(): pr = p.purchase_string() sl = p.sell_string() ps.append({ 'id': p.product.id, 'name': p.product.name, 'qty': p.storage_current(s), 'purchase': pr, 'sale': sl }) self.RenderJSON(ps) else: self.RenderFile('storage/goodlist.htm', args) elif section == 'supplier.purchaselist': id = self.IntReq('id') s = Supplier.get(Supplier.id == id) products = Product.select().join(Order).where(Order.supplier == s) i = 1 for p in products: p.index = i i = i + 1 args = {'supplier': s, 'products': products, '_': config.i18n} self.RenderFile('supplier/purchaselist.htm', args) elif section == 'person.instullment': id = self.IntReq('id') inst = SaleInstallment.get(SaleInstallment.id == id) inst.currentdate = getDate() args = {'inst': inst, '_': config.i18n} self.RenderFile('person/instullment.htm', args) elif section == 'person.instullment.save': id = self.IntReq('id') try: si = SaleInstallment.get(SaleInstallment.id == id) except: si = SaleInstallment() si.dateback = self.StringReq('dateback') si.amount = self.FloatReq('amount') si.save() sale = Sale.get(Sale.id == si.sale.id) sale.payment = float(sale.payment) + float(si.amount) sale.save() self.RenderJSON({ 'result': 'ok', 'id': si.id, 'amount': si.amount, 'dateback': si.dateback }) else: self.NotImplemented(section)
def newUser(name): n = Person(username=name, email=name + "@example.com") db.session.add(n) db.session.commit() return jsonify(n.to_json())
def Process(self, section): if section == 'new': customers = Person.select() storages = Storage.select() sale = Sale() sale.id = 0 sale.advance = 0 sale.date = getDate() self.RenderFile( 'sale/sale.htm', { '_': config.i18n, 'Customers': customers, 'Storages': storages, 'Sale': sale }) elif section == 'edit': sale = Sale.get(Sale.id == self.IntReq('id')) details = sale.details i = 1 for detail in details: detail.index = i i = i + 1 i = 1 installments = sale.installments for si in installments: si.index = i i = i + 1 customers = Person.select() storages = Storage.select() for cus in customers: if cus == sale.customer: cus.selected = True self.RenderFile( 'sale/sale.htm', { '_': config.i18n, 'Sale': sale, 'Sale_details': details, 'Sale_installments': installments, 'Storages': storages, 'Customers': customers }) elif section == 'save': id = self.IntReq('id') pays = self.IntReq('pays') prepaid = self.FloatReq('prepaid') customerId = self.IntReq('customerId') try: sale = Sale.get(Sale.id == id) except: sale = Sale() sale.date = getDate() sale.time = getTime() sale.user = self.authentication.SessionObject.user sale.verified = False customer = Person.get(Person.id == customerId) sale.customer = customer sale.installment = pays sale.advance = prepaid sale.payment = 0 sale.fullsale = 0 sale.save() form = self.getForm() row_ids = [] srow_ids = [] for key in form.keys(): if key[0] == 'g': id = self.ToInt(key[(key.find('[') + 1):key.find(']')]) row_ids.append(id) elif key[0] == 'b': id = self.ToInt(key[(key.find('[') + 1):key.find(']')]) srow_ids.append(id) row_ids.sort() srow_ids.sort() sale.clearDetails() full_sale = 0 for row_id in row_ids: x = str(row_id) storage_id = self.IntReq('g[' + x + ']') product_id = self.IntReq('p[' + x + ']') sale_price = self.FloatReq('s[' + x + ']') sale_qty = self.FloatReq('q[' + x + ']') full_sale += sale_price * sale_qty detail = SaleDetails() detail.sale = sale detail.product = Product.get(Product.id == product_id) detail.quantity = sale_qty detail.saleprice = sale_price detail.storage = Storage.get(Storage.id == storage_id) detail.save() schange = StorageChange() schange.storage = detail.storage schange.product = detail.product schange.enter = 0 schange.export = sale_qty schange.purchase = detail.product.purchase schange.sell = sale_price schange.date = sale.date schange.time = sale.time schange.reftype = 2 schange.refid = sale.id schange.save() for row_id in srow_ids: x = str(row_id) date = self.StringReq('b_d[' + x + ']') pay = self.FloatReq('y_p[' + x + ']') sins = SaleInstallment() sins.sale = sale sins.date = date sins.amount = pay sins.save() sale.fullsale = full_sale sale.save() self.RenderJSON({'Id': sale.id}) elif section == 'manage': sales = Sale.select() self.RenderFile('sale/manage.htm', { '_': config.i18n, 'sales': sales }) elif section == 'return': self.output = 'Return' elif section == 'installments': saleId = self.IntReq('SaleId') pqty = self.IntReq('Pays') sale = Sale.get(Sale.id == saleId) if pqty != sale.installment: sale.installment = pqty sale.save() sale.createInstallments() i = 0 for ins in sale.installments: i = i + 1 ins.index = i self.RenderFile('sale/installments.htm', { '_': config.i18n, 'sale': sale })