Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __author__ = 'pedroleguizamon'
- __doc__ = """
- Clases que manejan los procesos de retroalimentacion de datos entre el clarion y la aplicacion web.
- Con esto se adquiere mas modernidad y agilizacion en los procesos que conllevan el movimiento de mercaderia
- de bodegas
- Ya no habria problemas de facturas mal impresas, power packs incompletos.
- Por otro lado se asientan las bases para la administracion de los almacenajes desde esta aplicacion
- """
- import os, csv
- from warehouse_man.models import Pallets
- import datetime
- class WsClarionBridge(object):
- def update_pallets(self, **kwargs):
- """
- Actualizacion del estado de los pallets
- @param:
- arch = El archivo que contiene los datos de los pallets
- """
- arch = kwargs.get('arch')
- response = {}
- if not os.path.isfile(arch):
- response.update({'error':
- ['NO SE ENCUENTRA EL ARCHIVO %s' % arch]})
- return response
- response.update({'exitos':{
- 'pall_actuali': 0,
- 'pall_creados': 0
- }
- })
- with open(arch, 'rb') as csvpallets:
- lineas = csv.reader(csvpallets, delimiter='|', quotechar='"')
- for li in lineas[1:]:
- PAL_NUMERO, PAL_ESTADO, \
- PAL_COMPRA_NUMERO, PAL_CAJAS_X_PALLET, \
- PAL_UNIDADES_X_PALLET, PAL_UNIDADES_AVERIADAS, \
- PAL_LOTE, PAL_PROFORMA, \
- PAL_FECHA_CREACION, PAL_DIAS_DE_CREACION, \
- PAL_FECHA_VENCIMIENTO, PAL_DIAS_DE_VENCIMIENTO, \
- PAL_PARA_VENTA, PAL_UBICACION_BODEGA, \
- PAL_UBICACION_AREA, PAL_UBICACION_CELDA_ALTO, \
- PAL_UBICACION_CELDA_ANCHO, PAL_UBICACION_CELDA_PROFUNIDAD, \
- ACO_CODIGO_ARTICULO, ACO_DESCRIPCION, \
- DEF_CAJAS_X_PALLET, DEF_UNIDADES_X_CAJA, \
- DEF_MULTIPLO_VENTA, DEF_VOLUMEN_X_CAJA, \
- DEF_PESO_X_CAJA, DEF_STAT_FACTOR, \
- DEF_UNIDADES_ANALISIS, DEF_COSTO_PROMEDIO, \
- DEF_IVA, FABRICANTE, \
- GRUPO_FABRICANTE, ACO_FAMILIA_CODIGO, \
- ACO_FAMILIA, ACO_LINEA, \
- ACO_GRUPO, PROV_FAMILIA, \
- PROV_LINEA, PROV_GRUPO, \
- PROV_CODIGO_ARTICULO, PROV_DESCRIPCION, \
- SEGMENTO, MARCA, \
- MEDIDA, CONTENIDO, \
- EMPAQUE, GRUPO_EMPAQUE, \
- ESTRUCTURA, PERFORMANCE, \
- OTROS, CODIGO_BARRAS, \
- FECHA_PROCESO, HORA_INICIO_PROCESO, \
- HORA_ACTUALIZACION, VENCIMIENTO = li
- if PAL_UBICACION_BODEGA == '27':
- BODEGA = 'PICKING'
- if PAL_UBICACION_BODEGA == '17':
- BODEGA = 'PALLET'
- if PAL_PARA_VENTA.startwith('APTO'):
- COMPLETO = True
- else:
- continue
- ESTADO = 'DISPONIBLE'
- updated_values= {
- 'articulo_cod': ACO_CODIGO_ARTICULO,
- # 'articulo_cod_nuevo':
- 'articulo_descripcion': ACO_DESCRIPCION,
- 'articulo_lote': PAL_LOTE,
- 'articulo_caja_peso': DEF_PESO_X_CAJA,
- 'articulo_cajas': DEF_CAJAS_X_PALLET,
- 'articulo_unidades': DEF_UNIDADES_X_CAJA,
- 'articulo_codigo_barra_unidad': CODIGO_BARRAS,
- 'articulo_codigo_barra_caja': CODIGO_BARRAS,
- 'articulo_fecha_vencimiento': PAL_FECHA_VENCIMIENTO,
- 'pall_articulo_cajas': PAL_CAJAS_X_PALLET,
- 'pall_articulo_unidades': PAL_UNIDADES_X_PALLET,
- 'pall_numero': PAL_NUMERO,
- 'pall_orden_compra': PAL_COMPRA_NUMERO,
- 'pall_proforma': PAL_PROFORMA,
- 'bodega_cod': PAL_UBICACION_BODEGA,
- 'bodega': BODEGA,
- 'bodega_area_cod': PAL_UBICACION_AREA,
- 'pall_completo_05': COMPLETO,
- 'pall_averiados_06': False,
- 'estado': ESTADO,
- 'baja_040': False
- }
- obj = Pallets.objects.filter(pall_numero=PAL_NUMERO).update(**updated_values)
- if obj == 0:
- updated_values.update({
- 'cargado_010': True,
- 'cargado_010_por': 'AUTOMATICO',
- 'cargado_010_fecha': datetime.date.today(),
- 'cargado_010_hora': datetime.datetime.now()
- })
- Pallets.objects.create(**updated_values)
- response['exitos']['pall_creados'] += 1
- else:
- response['exitos']['pall_actuali'] += 1
- return response
Advertisement
Add Comment
Please, Sign In to add comment