def weigh_delivery_task(id_): class DeliveryTaskForm(Form): weight = IntegerField("weight", [validators.required()]) url = HiddenField("url") from lite_mms.apis.delivery import get_delivery_task from lite_mms.basemain import nav_bar task = get_delivery_task(id_) if not task: abort(404) if request.method == "POST": form = DeliveryTaskForm(request.form) if form.validate(): weight = form.weight.data - task.last_weight result = task.update(weight=weight) if not result: abort(500) import fsm from lite_mms.apis import todo fsm.fsm.reset_obj(task.delivery_session) fsm.fsm.next(constants.delivery.ACT_WEIGHT, current_user) todo.remove_todo(todo.WEIGH_DELIVERY_TASK, id_) else: if request.form.get("action") == "delete": try: task.delete() flash(u"删除发货任务成功") except: abort(403) else: return render_template( "validation-error.html", errors=form.errors, back_url=delivery_session_view.url_for_object( model=task.unload_session.model), nav_bar=nav_bar), 403 return redirect(form.url.data or url_for("delivery.delivery_session", id_=task.delivery_session_id)) else: return render_template("delivery/delivery-task.html", titlename=u"发货任务称重", task=task, nav_bar=nav_bar)
def delete(self): us = self.unload_session do_commit(self.model, "delete") from lite_mms.portal.cargo.fsm import fsm fsm.reset_obj(us) from flask.ext.login import current_user from lite_mms.basemain import timeline_logger timeline_logger.info(u"删除了卸货任务%d" % self.id, extra={"obj": self.unload_session.model, "obj_pk": self.unload_session.id, "action": u"删除卸货任务", "actor": current_user}) fsm.next(constants.cargo.ACT_WEIGHT, current_user) from lite_mms.apis import todo # delete todo.remove_todo(todo.WEIGH_UNLOAD_TASK, self.id) return True
def delete(self): ds = self.delivery_session do_commit(self.model, "delete") from lite_mms.portal.delivery.fsm import fsm fsm.reset_obj(ds) from flask.ext.login import current_user from lite_mms.basemain import timeline_logger timeline_logger.info(u"删除了发货任务%d" % self.id, extra={"obj": self.delivery_session.model, "obj_pk": self.delivery_session.id, "action": u"删除发货任务", "actor": current_user}) fsm.next(constants.delivery.ACT_WEIGHT, current_user) from lite_mms.apis import todo # delete todo todo.remove_todo(todo.WEIGH_DELIVERY_TASK, self.id) return True
def weigh_unload_task(id_): from lite_mms import apis from lite_mms.apis import todo task = apis.cargo.get_unload_task(id_) if not task: abort(404) if request.method == 'GET': return dict(plate=task.unload_session.plate, task=task, nav_bar=nav_bar, product_types=apis.product.get_product_types(), products=json.dumps(apis.product.get_products()), customers=apis.customer.get_customer_list(), titlename=u"收货任务") else: # POST class _ValidationForm(Form): weight = IntegerField('weight', [validators.required()]) customer = IntegerField('customer', [validators.required()]) product = IntegerField('product') form = _ValidationForm(request.form) if form.validate(): customer = apis.customer.get_customer(form.customer.data) weight = task.last_weight - form.weight.data if weight < 0 or not customer: abort(403) task.update(weight=weight, product_id=form.product.data, customer=customer) from flask.ext.login import current_user fsm.fsm.reset_obj(task.unload_session) fsm.fsm.next(cargo_const.ACT_WEIGHT, current_user) todo.remove_todo(todo.WEIGH_UNLOAD_TASK, id_) return redirect( request.form.get("url", unload_session_model_view.url_for_object(model=task.unload_session.model))) else: if request.form.get("action") == "delete": if task.delete(): flash(u"删除卸货任务%d成功" % task.id) return redirect(request.form.get("url", unload_session_model_view.url_for_object( model=task.unload_session.model))) return redirect(url_for("error", errors=form.errors, url=unload_session_model_view.url_for_object(model=task.unload_session.model)))
def delete(self): ds = self.delivery_session do_commit(self.model, "delete") from lite_mms.portal.delivery.fsm import fsm fsm.reset_obj(ds) from flask.ext.login import current_user from lite_mms.basemain import timeline_logger timeline_logger.info(u"删除了发货任务%d" % self.id, extra={ "obj": self.delivery_session.model, "obj_pk": self.delivery_session.id, "action": u"删除发货任务", "actor": current_user }) fsm.next(constants.delivery.ACT_WEIGHT, current_user) from lite_mms.apis import todo # delete todo todo.remove_todo(todo.WEIGH_DELIVERY_TASK, self.id) return True
def weigh_delivery_task(id_): class DeliveryTaskForm(Form): weight = IntegerField("weight", [validators.required()]) url = HiddenField("url") from lite_mms.apis.delivery import get_delivery_task from lite_mms.basemain import nav_bar task = get_delivery_task(id_) if not task: abort(404) if request.method == "POST": form = DeliveryTaskForm(request.form) if form.validate(): weight = form.weight.data - task.last_weight result = task.update(weight=weight) if not result: abort(500) import fsm from lite_mms.apis import todo fsm.fsm.reset_obj(task.delivery_session) fsm.fsm.next(constants.delivery.ACT_WEIGHT, current_user) todo.remove_todo(todo.WEIGH_DELIVERY_TASK, id_) else: if request.form.get("action") == "delete": try: task.delete() flash(u"删除发货任务成功") except: abort(403) else: return render_template("validation-error.html", errors=form.errors, back_url=delivery_session_view.url_for_object(model=task.unload_session.model), nav_bar=nav_bar), 403 return redirect(form.url.data or url_for("delivery.delivery_session", id_=task.delivery_session_id)) else: return render_template("delivery/delivery-task.html", titlename=u"发货任务称重", task=task, nav_bar=nav_bar)
def op(self, obj): from lite_mms.apis.todo import remove_todo, WEIGH_UNLOAD_TASK for task in obj.task_list: remove_todo(WEIGH_UNLOAD_TASK, task.id) super(DeleteUnloadSessionAction, self).op(obj)
def work_command(): """ 生成一个新的工单 """ if request.method == "GET": from lite_mms import apis sub_order = apis.order.SubOrderWrapper.get_sub_order( request.args.get("sub_order_id", type=int)) if not sub_order: abort(404) try: dep = apis.harbor.get_harbor_model(sub_order.harbor.name).department return dict(sub_order=sub_order, procedure_list=dep.procedure_list, department=dep, titlename=u"预排产") except AttributeError: abort(404) else: from lite_mms.apis import manufacture, order class PreScheduleForm(Form): sub_order_id = HiddenField('sub_order_id', [validators.required()]) schedule_weight = IntegerField('schedule_weight', [validators.required()]) procedure = IntegerField('procedure') tech_req = TextField('tech_req') schedule_count = IntegerField('schedule_count') urgent = BooleanField('urgent') url = HiddenField("url") form = PreScheduleForm(request.form) sub_order = order.get_sub_order(form.sub_order_id.data) if not sub_order: abort(404) if form.validate(): try: inst = manufacture.new_work_command( sub_order_id=sub_order.id, org_weight=form.schedule_weight.data, procedure_id=form.procedure.data, org_cnt=form.schedule_count.data, urgent=form.urgent.data, tech_req=form.tech_req.data) if inst: from lite_mms.apis.todo import remove_todo, DISPATCH_ORDER remove_todo(DISPATCH_ORDER, sub_order.order.id) from lite_mms.basemain import timeline_logger timeline_logger.info(u"新建", extra={"obj": inst, "actor": current_user if current_user.is_authenticated() else None, "action": u"新建", "obj_pk": inst.id}) if inst.sub_order.returned: flash(u"成功创建工单(编号%d),请提醒质检员赶快处理" % inst.id) else: flash(u"成功创建工单(编号%d)" % inst.id) except ValueError as a: return render_template("error.html", msg=a.message, back_url=form.url.data or url_for('order.order', id_=sub_order.order.id)), 403 return redirect(form.url.data or url_for('order.order', id_=sub_order.order.id)) else: return render_template("error.html", msg=form.errors, back_url=url_for('order.order', id_=sub_order.order.id)), 403
def work_command(): """ 生成一个新的工单 """ if request.method == "GET": from lite_mms import apis sub_order = apis.order.SubOrderWrapper.get_sub_order( request.args.get("sub_order_id", type=int)) if not sub_order: abort(404) try: dep = apis.harbor.get_harbor_model(sub_order.harbor.name).department return dict(sub_order=sub_order, procedure_list=dep.procedure_list, department=dep, titlename=u"预排产") except AttributeError: abort(404) else: from lite_mms.apis import manufacture, order class PreScheduleForm(Form): sub_order_id = HiddenField('sub_order_id', [validators.required()]) schedule_weight = IntegerField('schedule_weight', [validators.required()]) procedure = IntegerField('procedure') tech_req = TextField('tech_req') schedule_count = IntegerField('schedule_count') urgent = BooleanField('urgent') url = HiddenField("url") form = PreScheduleForm(request.form) sub_order = order.get_sub_order(form.sub_order_id.data) if not sub_order: abort(404) if form.validate(): try: inst = manufacture.new_work_command( sub_order_id=sub_order.id, org_weight=form.schedule_weight.data, procedure_id=form.procedure.data, org_cnt=form.schedule_count.data, urgent=form.urgent.data, tech_req=form.tech_req.data) if inst: from lite_mms.apis.todo import remove_todo, DISPATCH_ORDER remove_todo(DISPATCH_ORDER, sub_order.order.id) from lite_mms.basemain import timeline_logger timeline_logger.info(u"新建", extra={"obj": inst, "actor": current_user if current_user.is_authenticated else None, "action": u"新建", "obj_pk": inst.id}) if inst.sub_order.returned: flash(u"成功创建工单(编号%d),请提醒质检员赶快处理" % inst.id) else: flash(u"成功创建工单(编号%d)" % inst.id) except ValueError as a: return render_template("error.html", msg=a.message, back_url=form.url.data or url_for('order.order', id_=sub_order.order.id)), 403 return redirect(form.url.data or url_for('order.order', id_=sub_order.order.id)) else: return render_template("error.html", msg=form.errors, back_url=url_for('order.order', id_=sub_order.order.id)), 403
def op(self, obj): from lite_mms.apis.todo import remove_todo, WEIGH_DELIVERY_TASK for task in obj.delivery_task_list: remove_todo(WEIGH_DELIVERY_TASK, task.id) super(DeleteDeliverySession, self).op(obj)