def ajax_save(self): id = _g("id") type = _g('form_type') if type not in ['sendout', 'transit', 'exception', 'arrived']: return jsonify({'code' :-1, 'msg' : unicode(MSG_NO_SUCH_ACTION)}) header = DeliverHeader.get(id) if type == 'sendout': header.status = SEND_OUT[0] DBSession.add(TransferLog( refer_id = header.id, transfer_date = _g('send_out_time'), type = 1, remark = _g('send_out_remark') )) header.sendout_time = _g('send_out_time') DBSession.add(SystemLog( type = header.__class__.__name__, ref_id = header.id, remark = u'%s 确认该记录状态为已发货。' % session['user_profile']['name'] )) DBSession.commit() self._sms(header, u'已发货。') return jsonify({'code' : 0 , 'msg' : unicode(MSG_SAVE_SUCC)}) if type == 'transit': DBSession.add(TransferLog( refer_id = header.id, transfer_date = _g('transit_time'), type = 1, remark = _g('transit_remark') )) DBSession.commit() return jsonify({'code' : 0 , 'msg' : unicode(MSG_SAVE_SUCC)}) if type == 'arrived' : header.status = GOODS_ARRIVED[0] DBSession.add(TransferLog( refer_id = header.id, transfer_date = _g('arrived_time'), type = 1, remark = _g('arrived_remark') )) DBSession.add(SystemLog( type = header.__class__.__name__, ref_id = header.id, remark = u'%s 确认记录状态为货物已到达目的站。' % session['user_profile']['name'] )) for d in header.details: order_header = d.order_header order_header.actual_time = _g('arrived_time') DBSession.commit() self._sms(header, u'已到达。') return jsonify({'code' : 0 , 'msg' : unicode(MSG_SAVE_SUCC)})
def vendor_input(self): if not session.get('supplier_profile', None) or not session['supplier_profile'].get('id', None): flash(MSG_NO_SUCH_ACTION, MESSAGE_ERROR) return redirect(url_for('bpRoot.view', action = "index")) header = DeliverHeader.get(_g('id')) if not header : flash(MSG_RECORD_NOT_EXIST, MESSAGE_ERROR) return redirect(url_for('.view', action = 'vendor_select')) elif header.supplier_id != session['supplier_profile']['id']: flash(MSG_NO_SUCH_ACTION, MESSAGE_ERROR) return redirect(url_for('bpRoot.view', action = "index")) return {'values' : header.populate(), 'details' : header.details }
def vendor_input_save(self): if not session.get('supplier_profile', None) or not session['supplier_profile'].get('id', None): flash(MSG_NO_SUCH_ACTION, MESSAGE_ERROR) return redirect(url_for('bpRoot.view', action = "index")) header = DeliverHeader.get(_g('id')) if not header : flash(MSG_RECORD_NOT_EXIST, MESSAGE_ERROR) return redirect(url_for('.view', action = 'vendor_select')) elif header.supplier_id != session['supplier_profile']['id']: flash(MSG_NO_SUCH_ACTION, MESSAGE_ERROR) return redirect(url_for('bpRoot.view', action = "index")) if _g('type') == "IN_TRAVEL" : new_status = IN_TRAVEL[0] remark = u'货物在途。备注 :%s' % _g('remark') elif _g('type') == "GOODS_ARRIVED" : new_status = GOODS_ARRIVED[0] remark = u'货物到达。备注 :%s' % _g('remark') elif _g('type') == "GOODS_SIGNED" : new_status = GOODS_SIGNED[0] remark = u'货物签收。备注 :%s' % _g('remark') else: flash(MSG_NO_SUCH_ACTION, MESSAGE_ERROR) return redirect(url_for('.view', action = 'vendor_select')) try: header.update_status(new_status) for d in header.details: d.order_detail.update_status(new_status) # log = DeliverLog(deliver_header_id = header.id, remark = _g('remark')) # DBSession.add(log) DBSession.add(TransferLog( refer_id = header.id, transfer_date = dt.now().strftime(SYSTEM_DATETIME_FORMAT), type = 1, remark = remark )) DBSession.commit() except: DBSession.rollback() _error(traceback.print_exc()) flash(MSG_SERVER_ERROR, MESSAGE_ERROR) return redirect(url_for('.view', action = 'vendor_select')) else: flash(MSG_SAVE_SUCC, MESSAGE_INFO) return redirect(url_for('.view', action = 'vendor_select'))
def deliver_save_new(self): try: params = {} for f in ['ref_no', 'destination_province_id', 'destination_city_id', 'destination_address', 'destination_contact', 'destination_tel', 'destination_mobile', 'supplier_id', 'supplier_contact', 'supplier_tel', 'expect_time', 'order_time', 'insurance_charge', 'sendout_charge', 'receive_charge', 'package_charge', 'load_charge', 'unload_charge', 'other_charge', 'proxy_charge', 'amount', 'payment_id', 'pickup_type_id', 'remark', 'carriage_charge', 'qty', 'weight', 'vol', 'qty_ratio', 'weight_ratio', 'vol_ratio', 'shipment_type_id', ]: params[f] = _g(f) header = DeliverHeader(**params) DBSession.add(header) DBSession.flush() header.no = getDeliverNo(header.id) total_qty = total_vol = total_weight = 0 line_no = 1 for k, id in _gp('detail_'): order_header = DBSession.query(OrderHeader).get(id) d = DeliverDetail(header = header, order_header = order_header, line_no = line_no, qty = _g('qty_%s' % id), vol = _g('vol_%s' % id), weight = _g('weight_%s' % id), insurance_charge = _g('insurance_charge_%s' % id), sendout_charge = _g('sendout_charge_%s' % id), receive_charge = _g('receive_charge_%s' % id), package_charge = _g('package_charge_%s' % id), load_charge = _g('load_charge_%s' % id), unload_charge = _g('unload_charge_%s' % id), other_charge = _g('other_charge_%s' % id), proxy_charge = _g('proxy_charge_%s' % id), carriage_charge = _g('carriage_charge_%s' % id), amount = _g('amount_%s' % id), ) DBSession.add(d) if order_header.qty : total_qty += float(d.qty) if order_header.vol : total_vol += float(d.vol) if order_header.weight : total_weight += float(d.weight) order_header.update_status(SORTING[0]) order_header.cost = _g('amount_%s' % id), order_header.deliver_header_ref = header.id order_header.deliver_header_no = header.ref_no line_no += 1 header.qty = total_qty header.vol = total_vol header.weight = total_weight DBSession.add(TransferLog( refer_id = header.id, transfer_date = dt.now().strftime(SYSTEM_DATETIME_FORMAT), type = 1, remark = LOG_GOODS_SORTED )) # handle the upload file header.attachment = multiupload() DBSession.commit() except: DBSession.rollback() _error(traceback.print_exc()) flash(MSG_SERVER_ERROR, MESSAGE_ERROR) return redirect(self.default()) else: flash(MSG_SAVE_SUCC, MESSAGE_INFO) return redirect(self.default())