def delete_invoice(uid): inv = invapi.get_doc(uid) old_status = inv.meta.status invapi.delete(inv) if workerqueue is not None: obj = doc_to_workobject(inv, objtype=WorkObject.INV, action=WorkObject.DELETE) workerqueue(work=json_dumps(obj)) if old_status == Status.COMITTED: obj = doc_to_workobject(inv, objtype=WorkObject.INV_TRANS, action=WorkObject.DELETE) workerqueue(work=json_dumps(obj)) return {'status': inv.meta.status}
def postear_invoice(uid): inv = invapi.get_doc(uid) invapi.commit(inv) if workerqueue is not None: obj = doc_to_workobject(inv, objtype=WorkObject.INV_TRANS, action=WorkObject.CREATE) workerqueue(work=json_dumps(obj)) return {'status': inv.meta.status}
def create_invoice(): json_content = request.body.read() if not json_content: return '' content = json_loads(json_content) inv, options = parse_invoice_and_options(content) fix_inv_by_options(dbapi, inv, options) if inv.meta.timestamp is None: inv.meta.timestamp = datetime.datetime.now() # at this point, inv should no longer change if options.crear_cliente: # create client if not exist client = inv.meta.client if not dbapi.get(Client, client.codigo): dbapi.save(client) inv = invapi.save(inv) # increment the next invoice's number if options.incrementar_codigo: user = User(username=inv.meta.user) dbapi.update(user, {'last_factura': int(inv.meta.codigo) + 1}) dbapi.db_session.commit() if workerqueue is not None: obj = doc_to_workobject(inv, objtype=WorkObject.INV, action=WorkObject.CREATE) workerqueue(work=json_dumps(obj)) return {'codigo': inv.meta.uid}
def delete_ingreso(ingreso_id): trans = transapi.get_doc(ingreso_id) old_status = trans.meta.status transapi.delete(trans) if forward_transaction is not None and old_status == Status.COMITTED: obj = doc_to_workobject(trans, action=WorkObject.DELETE, objtype=WorkObject.TRANS) forward_transaction(work=json_dumps(obj)) return {'status': trans.meta.status}
def eliminar_factura(): almacen_id = int(request.forms.get('almacen_id')) codigo = request.forms.get('codigo').strip() ref = request.forms.get('motivo') if not ref: abort(400, 'escriba el motivo') user = get_user(request) db_instance = get_inv_db_instance(dbapi.db_session, almacen_id, codigo) if db_instance is None: alm = dbapi.get(almacen_id, Store) db_instance = dbapi.db_session.query(NNota).filter_by( almacen_ruc=alm.ruc, codigo=codigo).first() if db_instance is None: return eliminar_factura_form('Factura no existe') if db_instance.status == Status.DELETED: # already deleted redirect('/app/nota/{}'.format(db_instance.id)) old_status = db_instance.status comment = Comment( user_id=user['username'], timestamp=datetime.datetime.now(), comment=ref, objtype='notas', objid=str(db_instance.id), ) dbapi.create(comment) doc = invapi.get_doc_from_file(db_instance.items_location) doc.meta.status = db_instance.status try: invapi.delete(doc) except ValueError: abort(400) if workqueue is not None: obj = doc_to_workobject(doc, objtype=WorkObject.INV, action=WorkObject.DELETE) workqueue(work=json_dumps(obj)) if old_status == Status.COMITTED: obj = doc_to_workobject(doc, objtype=WorkObject.INV_TRANS, action=WorkObject.DELETE) workqueue(work=json_dumps(obj)) redirect('/app/nota/{}'.format(db_instance.id))
def postear_ingreso(ingreso_id): trans = transapi.get_doc(ingreso_id) transapi.commit(trans) if forward_transaction is not None: if trans.meta.trans_type == TransType.EXTERNAL: trans.meta.dest = 4 # policentro trans.meta.trans_type = TransType.TRANSFER obj = doc_to_workobject(trans, action=WorkObject.CREATE, objtype=WorkObject.TRANS) forward_transaction(work=json_dumps(obj)) return {'status': trans.meta.status}
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'