def main(): root = 'http://45.55.88.99:99/' auth = ('test', 'han') processor = ForwardRequestProcessor(dbapi, root, auth, codename='test') start = datetime.datetime(2015, 12, 1) end = datetime.datetime(2016, 1, 1) with dbapi.session: for meta in invapi.search_metadata_by_date_range(start, end, status=Status.COMITTED): r = requests.get('http://192.168.0.23/api/nota/{}'.format(meta.uid), auth=('yu', 'yu')) if r.status_code != 200: print r.status_code continue inv = Invoice.deserialize(r.json()) work = doc_to_workobject(inv, action=WorkObject.CREATE, objtype=WorkObject.INV) processor.exec_work(work) print inv.meta.uid, 'created' work2 = doc_to_workobject(inv, action=WorkObject.CREATE, objtype=WorkObject.INV_TRANS) processor.exec_work(work2) print inv.meta.uid, 'commited'
def main(): with dbapi.session: trans = transapi.search_metadata_by_date_range(start, end, other_filters={'dest': 1}) invs = invapi.search_metadata_by_date_range(start, end, status=Status.COMITTED) trans_by_month = defaultdict(Decimal) sale_by_month = defaultdict(Decimal) for x in trans: key = (x.timestamp.year, x.timestamp.month) if x.status != Status.DELETED: trans_by_month[key] += x.value for x in invs: key = (x.timestamp.year, x.timestamp.month) sale_by_month[key] += Decimal(x.subtotal - (x.discount or 0)) / 100 for x, y in sorted(sale_by_month.items()): print '\t'.join(map(str, [x, y, trans_by_month[x], y - trans_by_month[x]]))