def redirect_lens_by_vd(request, parameters=''): _form_data = {} rm = response_message() dh = dict_helper() try: if request.method == 'POST': logging.debug('收到请求 ....') logging.debug(AUTHOR) entity = parameters parameters = {} vendor = request.POST.get('vendor', '') index = request.POST.get('index', '') if vendor == '2': vendor = '3' if vendor == '0': vendor = '' if vendor == '9': vendor = '5' parameters['vendor'] = vendor parameters['index'] = index rm_req = response_message() rm_req.obj = parameters lc = lens_contoller() rm = lc.get_by_vd(rm_req) objs = rm.obj vendor_lens_list = [] for obj in objs: vendor_lens = {} vendor_lens['sku'] = obj.sku vendor_lens['name'] = obj.name vendor_lens_list.append(vendor_lens) logging.debug(obj.sku) rm.obj = vendor_lens_list json_body = dh.convert_to_dict(rm) logging.debug(json_body) json_body = json.dumps(json_body, cls=DateEncoder) logging.debug(json_body) return HttpResponse(json_body) lc = lens_contoller() rm = lc.get_all(parameters) _form_data['list'] = rm.obj except Exception as e: rm.capture_execption(e) json_body = dh.convert_to_dict(rm) json_body = json.dumps(json_body, cls=DateEncoder) return HttpResponse(json_body) return render(request, "lens_all.html", {"form": _form_data})
def get(self, request, pk=None): if not pk: logger.debug("PollView GET.") return response_message(success=True, data=Poll.objects.json_serialize_all()) try: poll = Poll.objects.get(pk=pk) return response_message(success=True, data=poll.json_serialize()) except Poll.DoesNotExist: logger.debug("PollView GET. Requested Poll object Does Not Exists. pk=%d" % pk) return response_message(success=False, error=True, text='no such poll')
def get(self, request, pk=None): if not pk: logger.debug("PollView GET.") return response_message(success=True, data=Poll.objects.json_serialize_all()) try: poll = Poll.objects.get(pk=pk) return response_message(success=True, data=poll.json_serialize()) except Poll.DoesNotExist: logger.debug( "PollView GET. Requested Poll object Does Not Exists. pk=%d" % pk) return response_message(success=False, error=True, text='no such poll')
def get_pgorder_item(self): """获取pgorder下符合is_inlab为False的条目 更新inventory_struct的reserve_quantity""" rm = response_message() try: logging.info("get_pgorder_item start") pgorders = PgOrder.objects.filter(is_inlab=False) file = "wms/data/get_pgorder_item.txt" file = settings.RUN_DIR + '/get_pgorder_item_log.txt' for item in pgorders: logging.info("pgorders id " + str(item.id)) for pgitem in PgOrderItem.objects.filter(pg_order_entity=item): try: #frame = pgitem.frame[1:8] poc = pgorder_frame_controller() res_rm = poc.get_lab_frame({"pg_frame": item.frame}) frame = res_rm.obj['lab_frame'] logging.info("pgitem frame " + frame) iis = inventory_struct.objects.get(sku=frame) qty = iis.reserve_quantity + pgitem.quantity iis.reserve_quantity = qty iis.save() logging.info("iis id " + str(iis.id)) except Exception as e: with codecs.open(file, 'a', 'utf-8') as w: w.write(u"{0}\t{1}\t{2}\n".format( pgitem.id, pgitem.frame, e)) logging.info("get_pgorder_item end") except Exception as e: logging.critical(u"错误:" + str(e)) rm.capture_execption(e) rm.message = u'获取pgorder错误'
def get_statment_month_list(self, request): rm = response_message() try: doc_type = request.GET.get('doc_type', '') if doc_type == 'LENS': vendor = request.GET.get('filter', '') begin_date = request.GET.get('begindate', '') end_date = request.GET.get('enddate', '') lrs = lens_registration.objects.filter( created_at__range=(begin_date, end_date), laborder_entity__vendor=vendor) logging.critical(lrs.query) rm.obj = lrs else: workshop = request.GET.get('workshop', '') begin_date = request.GET.get('begindate', '') end_date = request.GET.get('enddate', '') rgs = received_glasses.objects.filter( created_at__range=(begin_date, end_date)) logging.debug(rgs.query) list = [] for rg in rgs: lbo = LabOrder.objects.get(id=rg.lab_order_entity) if lbo.workshop == workshop: rg.laborder_entity = lbo list.append(rg) rm.obj = list return rm except Exception as e: rm.capture_execption(e) logging.critical(e.message) return rm
def archived(self, parameters): rm = response_message() logging.debug('job archived ....') try: lbo = parameters.get('lbo', None) if lbo: jts = job_archived.objects.filter(entity_id=lbo.id).order_by('-id') if jts.count() > 0: jt = jts[0] logging.critical('repeat records ....') else: jt = job_archived() jt.status = lbo.status jt.order_number = lbo.order_number jt.entity_id = lbo.id jt.lab_number = lbo.lab_number jt.frame = lbo.frame jt.lens_sku = lbo.lens_sku jt.comments = lbo.comments jt.save() logging.critical('archived ok ....') rm.obj = lbo return rm except Exception as e: rm.capture_execption(e) logging.debug(str(e)) return rm
def get_laborder_item(self): """获取laborder下符合status='' or NONE or REQUEST_NOTES的条目 更新inventory_struct的reserve_quantity""" rm = response_message() try: logging.info("get_laborder_item start") file = "wms/data/get_laborder_item.txt" file = settings.RUN_DIR + '/get_laborder_item_log.txt' laborders = LabOrder.objects.filter( status__in=['', None, 'REQUEST_NOTES']) for item in laborders: try: logging.info("laborders id " + str(item.id)) iis = inventory_struct.objects.get(sku=item.frame) qty = iis.reserve_quantity + item.quantity iis.reserve_quantity = qty iis.save() except Exception as e: with codecs.open(file, 'a', 'utf-8') as w: w.write(u"{0}\t{1}\t{2}\n".format( item.id, item.frame, e)) logging.info("get_laborder_item end") except Exception as e: logging.critical(u"错误:" + str(e)) rm.capture_execption(e) rm.message = u'获取laborder错误'
def redirect_distribute_lab_orders(request, parameters=''): _form_data = {} _items = [] rm = response_message() rm.code = 0 dh = dict_helper() try: rm.obj = 'ok' lab_number = request.POST.get('lab_number', '') paras = {} paras['pa'] = parameters paras['user'] = request.user lbo = LabOrder.objects.get(lab_number=lab_number) paras['lbo'] = lbo dc = distribute_controller() rm = dc.distribute_vendor(lbo, paras) except Exception as e: _rm.capture_execption(e) json_body = dh.convert_to_dict(rm) json_body = json.dumps(json_body, cls=DateEncoder) return HttpResponse(json_body)
def post(self, request, pk): user = request.user try: poll = Poll.objects.get(pk=pk) except Poll.DoesNotExist: return response_message(success=False, error=True, text='no such poll') name, json = request.POST.get("name"), request.POST.get("json") try: result = PollResult.objects.create( user=user, poll=poll, poll_result=json ) result.save() return response_message(success=True) except IntegrityError: return response_message(success=False, error=True, text='cannot save poll to db')
def redirect_products_list(request): _form_data = {} items = [] _form_data['items'] = items try: page = request.GET.get('page', 1) category_id = request.GET.get('category', 6) frame = request.GET.get('frame', '') currentPage = int(page) query_string = re.sub(r'page=[0-9]+[&]?', '', request.META.get('QUERY_STRING', None)) rm = response_message() _form_data["request_module"] = "Merchandising" _form_data["request_feature"] = "Web 产品清单" from .models import ProductListController plc = ProductListController() rm = plc.GetAll(category_id, frame) items = rm.obj _form_data['rm'] = rm count = len(items) if query_string: query_string = '&' + query_string if count > 0: _form_data['total'] = count logging.debug("count: %s" % count) _form_data["base_url"] = plc.base_url paginator = Paginator(items, count) # Show 20 contacts per page try: items = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. items = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. items = paginator.page(paginator.num_pages) _form_data["items"] = items # GET return render( request, 'products_list.html', { 'form_data': _form_data, 'list': items, 'currentPage': currentPage, 'paginator': paginator, 'requestUrl': '/merchandising/products_list/', 'query_string': query_string, }) except Exception as ex: pass return render(request, 'products_list.html', { 'form_data': _form_data, 'list': items, })
def redirect_products_list_csv(request): # 查询 try: _form_data = {} items = [] _form_data['items'] = items category_id = request.GET.get('category', 6) frame = request.GET.get('frame', '') min_qty = request.GET.get('min_qty', '') max_qty = request.GET.get('max_qty', '') cate_type = request.GET.get('cate_type', '') if category_id == '': category_id = 6 rm = response_message() _form_data["request_module"] = "Merchandising" _form_data["request_feature"] = "Web 产品清单" from .models import ProductListController plc = ProductListController() rm = plc.GetAll(category_id, frame, min_qty, max_qty, cate_type) items = rm.obj response = HttpResponse(content_type='text/csv') file_name = 'products_list' response[ 'Content-Disposition'] = 'attachment;filename=' + file_name + '.csv' response.write(codecs.BOM_UTF8) writer = csv.writer(response) writer.writerow(['产品清单CSV']) writer.writerow([ 'Img Url', 'Request Url', 'Name', 'Product ID', 'SKU', 'Frame SKU', 'Price', 'Shape', 'Material', 'Bridge', 'Temple Length', 'Width', 'Weight', 'Category Name', 'Position', 'Quantity', 'Stock Status' ]) base_url = plc.base_url product_url = plc.product_url for item in items: if item.image_url != '': img_url = base_url + item.image_url else: img_url = '' if item.request_path != '': request_url = product_url + item.request_path else: request_url = '' writer.writerow([ img_url, request_url, item.name, item.product_id, item.sku, item.frame_sku, item.price, item.shape, item.material, item.bridge, item.temple_length, item.width, item.weight, item.category_name, item.position, item.quantity, item.is_in_stock ]) return response except Exception as e: return HttpResponse(e.message)
def post(self, request, pk): user = request.user try: poll = Poll.objects.get(pk=pk) except Poll.DoesNotExist: return response_message(success=False, error=True, text='no such poll') name, json = request.POST.get("name"), request.POST.get("json") try: result = PollResult.objects.create(user=user, poll=poll, poll_result=json) result.save() return response_message(success=True) except IntegrityError: return response_message(success=False, error=True, text='cannot save poll to db')
def initialization_inventory_struct(self): """初始化inventory_struct下的reserve_quantity为0""" rm = response_message() try: logging.info("initialization_inventory_struct start") inventory_struct.objects.all().update(reserve_quantity=0) logging.info("initialization_inventory_struct end") except Exception as e: logging.critical(u"错误:" + str(e)) rm.capture_execption(e) rm.message = u'初始化inventory_struct错误'
def handle(self, *args, **options): # 每次读一个EXCEL文件的第一张表 logging.critical("******开始读取excel库存文件程序******") rm = response_message() try: if options['import']: for var in options['filename']: logging.critical('filename=%s' % var) filename = var else: rm.message = 'filename not found' return rm # 获取excel对象 exl = xlrd.open_workbook(filename) # 获取第一张表 sheet = exl.sheet_by_index(0) # 获取仓库代码 warehouse_code = sheet.cell_value(1, 1) # excel表中是2行B列 logging.critical('warehouse_code=%s' % warehouse_code) # 获取sku sku = sheet.cell_value(2, 1) # excel表中是3行B列 logging.critical('sku=%s' % sku) # 获取最大行和列 max_row = sheet.nrows max_col = sheet.ncols # 获取 sph cyl 列表 cyl_list = sheet.row_values(6) # 第6行 sph_list = sheet.col_values(0) # 第0列 # 循环遍历数量,并写入初始化表 for row in range(7, max_row - 3): sph = sph_list[row] # 第3列的第row行 for col in range(1, max_col): cyl = cyl_list[col] # 第2行的第col列 quantity = sheet.cell_value(row, col) # 数量大于0才写入 初始化表 if quantity: logging.critical("SPH=" + str(sph) + ",散光=" + str(cyl) + ",数量=" + str(quantity) + ', 开始写入') iilc = inventory_initial_lens_controller() rm = iilc.add(warehouse_code, sku, float(sph), cyl, 0, quantity, '', 'init') logging.critical("写入结果=%s" % rm.message) else: logging.critical("SPH=" + str(sph) + ",散光=" + str(cyl) + ",数量=" + str(quantity) + ', 不写入') logging.critical("操作完成,%s" % rm.message) except Exception as e: logging.critical("错误:" + str(e)) rm.capture_execption(e) rm.message = str(e)
def production_operation_log_list(request): sku = request.GET.get('sku', '') operation_type = request.GET.get('operation_type', '') _form_data = {} rm = response_message() try: page = request.GET.get('page', 1) currentPage = int(page) ots = inventory_operation_log.objects.filter( operation_type=operation_type).order_by('-created_at') if sku: ots = inventory_operation_log.objects.filter( operation_type=operation_type, sku=sku) items = ots _form_data['list'] = items _form_data['total'] = ots.count paginator = Paginator(items, 20) # Show 20 contacts per page # 获取URL中除page外的其它参数 import re query_string = re.sub(r'page=[0-9]+[&]?', '', request.META.get('QUERY_STRING', None)) if query_string: query_string = '&' + query_string try: items = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. items = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. items = paginator.page(paginator.num_pages) except Exception as e: logging.debug(e.message) rm.message(e) # json_body = dh.convert_to_dict(rm) # json_body = json.dumps(json_body, cls=DateEncoder) # return HttpResponse(json_body) return render( request, "production_operation_log_list.html", { "form": _form_data, 'list': items, 'sku': sku, 'currentPage': currentPage, 'paginator': paginator, 'requestUrl': reverse('production_operation_log_list'), 'query_string': query_string, })
def redirect_lens(request, parameters=''): _form_data = {} rm = response_message() dh = dict_helper() try: if request.method == 'POST': entity = parameters parameters = {} parameters['entity'] = entity lc = lens_contoller() rm = lc.get_all(parameters) json_body = dh.convert_to_dict(rm) json_body = json.dumps(json_body, cls=DateEncoder) return HttpResponse(json_body) lc = lens_contoller() rm = lc.get_all(parameters) _form_data['list'] = rm.obj # 获取页码 page = request.GET.get('page', 1) # 获取URL中除page外的其它参数 import re query_string = re.sub(r'page=[0-9]+[&]?', '', request.META.get('QUERY_STRING', None)) if query_string: query_string = '&' + query_string # 分页对象,设置每页20条数据 paginator = Paginator(_form_data['list'], 20) try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) except Exception as e: rm.capture_execption(e) json_body = dh.convert_to_dict(rm) json_body = json.dumps(json_body, cls=DateEncoder) return HttpResponse(json_body) return render( request, "lens_all.html", { "form": _form_data, 'list': contacts, 'paginator': paginator, 'query_string': query_string, })
def handle(self, *args, **options): logging.critical('---') rm = response_message() try: #self.initialization_channel() self.initialization_inventory_struct() self.get_pgorder_item() self.get_laborder_item() self.synchronization_inventory_initial_channel() self.generate_channel_receipt() except Exception as e: logging.critical("错误:" + str(e)) rm.capture_execption(e) rm.message = '初始化表导入入库表出错'
def set_last_entity(self, parameters): rm = response_message() try: jl = job_log() last_entity_id = parameters.get('last_entity', 0) jl.last_entity_id = last_entity_id jl.save() return rm except Exception as e: rm.capture_execption(e) logging.debug(str(e)) return rm
def set_priority(self, request, data): rm = response_message() try: user = { 'id': 0, 'username': '******' } if request: user = request.user order_number = data.get('order_number', 0) priority = data.get('priority', 0) if not order_number: rm.code = -2 rm.message = "Pg Order Not found!" return rm po = PgOrder.objects.get(order_number=order_number) if po.status in ['complete', 'shipped', 'delivered']: rm.code = -3 rm.message = "Pg Order status [%s] is not validate" % po.status return rm PgOrder.objects.filter(order_number=order_number).update(priority=priority) PgOrderItem.objects.filter(order_number=order_number).update(priority=priority) LabOrder.objects.filter(order_number=order_number).update(priority=priority) logging.debug('changed priority ....') from api.controllers.tracking_controllers import tracking_operation_controller tc = tracking_operation_controller() tc.tracking( po.type, po.id, po.order_number, 'set_priority', 'priority', user, po.priority, priority, None, None, ) logging.debug('logging operation ....') except Exception as ex: rm.capture_execption(ex) return rm
def initialization_channel(self): """初始化channel""" rm = response_message() try: logging.info("initialization_channel start") ch = channel() ch.code = "WEBSITE" ch.name = "Web Site" ch.user_id = 0 ch.user_name = 'system' ch.save() logging.info("initialization_channel end") except Exception as e: logging.critical("error:" + str(e)) rm.capture_execption(e) rm.message = '初始化initialization_channel错误'
def generate_channel_receipt(self): """从inventory_initial_channel 生成入库单""" rm = response_message() try: logging.info("generate_channel_receipt start") iics = inventory_initial_channel.objects.all() for item in iics: inventory_receipt_channel_controller().add( None, "20190618", 'WEBSITE', "INIT", item.sku, item.quantity) logging.info("generate_channel_receipt sku" + item.sku) logging.info("generate_channel_receipt end") except Exception as e: logging.critical(u"error:" + str(e)) rm.capture_execption(e) rm.message = u'生成入库单错误'
def get_last_entity_id(self, parameters): rm = response_message() try: objs = job_log.objects.all().order_by('-id')[:1] if objs.count() > 0: obj = objs[0] rm.obj = obj.last_entity_id else: rm.obj = 0 return rm except Exception as e: rm.capture_execption(e) logging.debug(str(e)) return rm
def handle(self, *args, **options): logging.critical('---') rm = response_message() try: logging.info("calculation_reserve_quantity start") inventory_struct.objects.all().update(reserve_quantity=0) sql = """SELECT i.frame as frame, SUM(i.quantity) AS quantity FROM oms_pgorder AS p LEFT JOIN oms_pgorderitem AS i ON p.id = i.pg_order_entity_id WHERE p.is_inlab=FALSE AND p.status <> 'closed' AND p.status <> 'canceled' GROUP BY i.frame """ with connections['pg_oms_query'].cursor() as cursor: cursor.execute(sql) items = namedtuplefetchall(cursor) for item in items: try: #frame = item.frame[1:8] poc = pgorder_frame_controller() res_rm = poc.get_lab_frame({"pg_frame": item.frame}) iis = inventory_struct.objects.get( sku=res_rm.obj['lab_frame']) qty = iis.reserve_quantity + item.quantity iis.reserve_quantity = qty iis.save() except Exception as e: pass lab_sql = """SELECT frame, SUM(quantity) AS quantity FROM oms_laborder WHERE (`status` in ('', NULL, 'REQUEST_NOTES') OR (`status`='ONHOLD' AND current_status in ('', NULL, 'REQUEST_NOTES'))) GROUP BY frame""" cursor.execute(lab_sql) laborders = namedtuplefetchall(cursor) for item in laborders: try: iis = inventory_struct.objects.get(sku=item.frame) qty = iis.reserve_quantity + item.quantity iis.reserve_quantity = qty iis.save() except Exception as e: pass logging.info("calculation_reserve_quantity end") except Exception as e: logging.critical("错误:" + str(e)) rm.capture_execption(e) rm.message = str(e)
def get_all(self, parameters): rm = response_message() try: logging.debug('########################################') try: lenss = None rm.obj = lenss return rm except Exception as e: rm.capture_execption(e) logging.debug(str(e)) return rm except Exception as e: rm.capture_execption(e) logging.debug(str(e)) return rm
def redirect_refresh_product_index(request): ''' 刷新产品索引 :param request: :return: ''' rm = response_message() dh = dict_helper() if request.method == 'POST': try: requrl = PG_SYNC_API_BASE_URL + PG_SYNC_COMMANDS_URL + PG_SYNC_COMMAND_REFRESH_PRODUCT_INDEX + '/' logging.debug(requrl) req_data = {} req_data['token'] = PG_SYNC_API_TOKEN req_data = json.dumps(req_data) headers = {'Content-Type': 'application/json'} req = urllib2.Request(url=requrl, data=req_data, headers=headers) try: res = urllib2.urlopen(req) logging.debug(res) res_data = res.read() logging.debug(res_data) return HttpResponse(res_data) except Exception as e: rm.capture_execption(e) logging.debug(e.message) json_body = dh.convert_to_dict(rm) json_body = json.dumps(json_body, cls=DateEncoder) return HttpResponse(json_body) except Exception as e: rm.capture_execption(e) logging.debug(e.message) json_body = dh.convert_to_dict(rm) json_body = json.dumps(json_body, cls=DateEncoder) return HttpResponse(json_body) else: rm.code = 400 rm.message = '无效请求' json_body = dh.convert_to_dict(rm) json_body = json.dumps(json_body, cls=DateEncoder) return HttpResponse(json_body)
def redirect_lens_orders(request, parameters=''): _form_data = {} rm = response_message() dh = dict_helper() try: page = request.GET.get('page', 1) currentPage = int(page) loc = lens_order_contoller() rm = loc.get_all(parameters) items = rm.obj _form_data['list'] = items _form_data['total'] = rm.count paginator = Paginator(items, 20) # Show 20 contacts per page # 获取URL中除page外的其它参数 import re query_string = re.sub(r'page=[0-9]+[&]?', '', request.META.get('QUERY_STRING', None)) if query_string: query_string = '&' + query_string try: items = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. items = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. items = paginator.page(paginator.num_pages) except Exception as e: rm.capture_execption(e) # json_body = dh.convert_to_dict(rm) # json_body = json.dumps(json_body, cls=DateEncoder) # return HttpResponse(json_body) return render( request, "lens_orders.html", { "form": _form_data, 'list': items, 'currentPage': currentPage, 'paginator': paginator, 'requestUrl': reverse('lens_orders'), 'query_string': query_string, })
def redirect_tasks(request, parameters=''): _form_data = {} rm = response_message() dh = dict_helper() try: if request.method == 'POST': entity = parameters parameters = {} parameters['entity'] = entity _form_data['list'] = rm.obj except Exception as e: rm.capture_execption(e) json_body = dh.convert_to_dict(rm) json_body = json.dumps(json_body, cls=DateEncoder) return HttpResponse(json_body) return render(request, "tasks.html", {"form": _form_data})
def refund_ra(self, obj): nw = datetime.datetime.now() rm = response_message() data = {} data['order_number'] = obj.order_number poc = pg_order_controller() rm = poc.refund(data) if rm.code != 0: return rm obj.state = '90' obj.status = '40' obj.is_refund = True obj.refund_at = nw return rm
def tracking(self, parameters): rm = response_message() logging.debug('job tracking ....') try: lbo = parameters.get('lbo', None) if lbo: status = lbo.status if not status: status = 'NEW' last_status = None jts = job_tracking.objects.filter(entity_id=lbo.id).order_by('-id') jt = None if jts.count() > 0: jt = jts[0] if jt: last_status = jt.status if not last_status == status: jt = job_tracking() jt.status = status jt.order_number = lbo.order_number jt.entity_id = lbo.id jt.lab_number = lbo.lab_number jt.frame = lbo.frame jt.lens_sku = lbo.lens_sku jt.comments = lbo.comments jt.save() logging.critical('tracking ok ....') else: logging.critical('repeat records ....') rm.obj = lbo return rm except Exception as e: rm.capture_execption(e) logging.debug(str(e)) return rm
def handle(self, *args, **options): logging.critical('---开始从镜片库存初始化表-》写入-》镜片库存入库表---') rm = response_message() try: if options['startid']: for var in options['fileid']: logging.critical('fileid=%s' % var) fileid = var # 获取输入的ID else: fileid = 1 try: iils = inventory_initial_lens.objects.filter( id__gte=fileid).order_by("id") except Exception as e: logging.critical("错误:" + str(e)) rm.capture_execption(e) rm.message = '获取初始化表出错' for iil in iils: # 写入 # 通过时间获取编号 time_now = time.strftime('%Y%m%d', time.localtime(time.time())) sku = iil.sku quantity = iil.quantity cyl = iil.cyl sph = iil.sph add = iil.add entity_id = iil.entity_id warehouse_code = iil.warehouse_code batch_number = '' # iil.batch_number 在镜片库存表-批次 里自动生成 irlc = inventory_receipt_lens_controller() # 当前默认上海仓 rm = irlc.add('', time_now, 'INIT', warehouse_code, sku, float(quantity), float(sph), float(cyl), float(add), 0, '', '', batch_number, 'init') logging.critical('---写入-》镜片库存入库表完成---') except Exception as e: logging.critical("错误:" + str(e)) rm.capture_execption(e) rm.message = '初始化表导入入库表出错'
def handle(self, *args, **options): # 每次读一个EXCEL文件的第一张表 logging.critical("******开始读取文件******") rm = response_message() try: file_name = "" if options['import']: for var in options['filename']: logging.critical('filename=%s' % var) filename = var else: rm.message = 'filename not found' return rm logging.critical('filename: %s' % filename) full_name = '%s/%s' % (settings.BASE_DIR, filename) logging.debug(full_name) sql = """ select order_number as origin_order_number,item_id as origin_item_id,create_at as created_at,frame from oms_pgorderitem where id in (select base_entity from oms_laborder where date(create_at)>=date('2020.01.01') and lab_number like '%-R%'); """ json_data = [] obj = {} with connections['default'].cursor() as cursor: cursor.execute(sql) items = dictfetchall(cursor) json_data = json.dumps(items, cls=DateEncoder) logging.debug(json_data) fh = FileHelper(full_name) fh.write(json_data) logging.critical('after 10 seconds will start remake ....') except Exception as e: logging.critical("错误:" + str(e)) rm.capture_execption(e) rm.message = str(e)
def synchronization_inventory_initial_channel(self): """同步inventory_struct表中 status == IN_STOCK数据到inventory_initial_channel""" rm = response_message() try: logging.info("synchronization_inventory_initial_channel start") #iiss = inventory_struct.objects.filter(status='IN_STOCK') iiss = inventory_struct.objects.all() for item in iiss: qty = item.quantity - item.lock_quantity - item.reserve_quantity iic = inventory_initial_channel() iic.sku = item.sku iic.quantity = qty iic.channel_code = 'WEBSITE' iic.channel_name = 'Web Site' iic.user_id = 0 iic.user_name = 'system' iic.save() logging.info("inventory_initial_channel id" + str(iic.id)) logging.info("synchronization_inventory_initial_channel end") except Exception as e: logging.critical(u"错误:" + str(e)) rm.capture_execption(e) rm.message = u'同步数据错误'
def get(self, request): logger.debug('LogoutView GET.') logout(request) return response_message(success=True)