Exemplo n.º 1
0
 def sanhigia_pedidos_visibility(self, model, oParam):
     visible = cacheController.getSessionVariable(ustr(u"visibeLRS_", qsatype.FLUtil.nameUser()))
     if not visible:
         cacheController.setSessionVariable(ustr(u"visibeLRS_", qsatype.FLUtil.nameUser()), True)
     elif visible:
         cacheController.setSessionVariable(ustr(u"visibeLRS_", qsatype.FLUtil.nameUser()), False)
     return True
Exemplo n.º 2
0
 def sanhigia_pedidos_checkPDAButton(self, cursor):
     arrProveedores = cacheController.getSessionVariable(ustr(u"grupoPedidos_", qsatype.FLUtil.nameUser())).split(u",")
     for p in arrProveedores:
         np = qsatype.FLUtil.sqlSelect(u"pedidosprov", u"pda", ustr(u"idpedido = '", str(p), u"'"))
         if np != "Preparado":
             return "disabled"
     return "enabled"
Exemplo n.º 3
0
    def vbarba_cabrera_actualizarDisponible(self, model):
        fincaUsr = cacheController.getSessionVariable(ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
        q = qsatype.FLSqlQuery()
        q.setTablesList(u"vb_fincas")
        q.setSelect(u"codproveedor")
        q.setFrom(u"vb_fincas")
        q.setWhere(ustr(u"codfinca = ('", fincaUsr, u"')"))
        if q.exec_():
            if q.next():
                codprov = q.value(0)
                print("____", codprov)
                if not codprov:
                    response = {}
                    response['status'] = 1
                    response['msg'] = "No se encuentra proveedor asociado"
                    return response
            else:
                return False
        else:
            return False

        cursor = qsatype.FLSqlCursor("articulosprov")
        cursor.select(ustr(u"codproveedor = ('", codprov, u"') AND referencia = '", model.referencia, "'"))
        cursor.setModeAccess(cursor.Edit)
        cursor.refreshBuffer()
        if cursor.first():
            if cursor.valueBuffer("disponible"):
                cursor.setValueBuffer("disponible", False)
            else:
                cursor.setValueBuffer("disponible", True)
        else:
            q = qsatype.FLSqlQuery()
            q.setTablesList(u"ariculos")
            q.setSelect(u"pvp, codbarras")
            q.setFrom(u"articulos")
            q.setWhere(ustr(u"referencia = ('", model.referencia, u"')"))
            if q.exec_():
                if q.next():
                    pvpart = q.value(0)
                    codbarrasart = q.value(1)
                else:
                    return False
            else:
                return False
            cursor = qsatype.FLSqlCursor("articulosprov")
            cursor.setModeAccess(cursor.Insert)
            cursor.refreshBuffer()
            cursor.setValueBuffer("referencia", model.referencia)
            cursor.setActivatedBufferChanged(True)
            cursor.setValueBuffer("disponible", True)
            cursor.setValueBuffer("codproveedor", codprov)
            cursor.setValueBuffer("coste", pvpart)
            cursor.setValueBuffer("codbarras", codbarrasart)
            cursor.setActivatedBufferChanged(False)

        if not cursor.commitBuffer():
            return False

        return True
Exemplo n.º 4
0
    def diagnosis_get_estado(self):
        estado = cacheController.getSessionVariable("estado_gruposprocesos", None)

        if not estado:
            self.iface.set_estado("procesos")
            estado = "procesos"

        return estado
Exemplo n.º 5
0
    def diagnosis_get_estado_master(self):
        estado = cacheController.getSessionVariable("estado_master_clientessincro", None)

        if not estado:
            self.iface.set_estado_master("clientes")
            estado = "clientes"

        return estado
Exemplo n.º 6
0
 def vbarba_cabrera_initValidation(self, name, data):
     response = True
     if name == 'articulosStock':
         fincaUsr = cacheController.getSessionVariable(ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
         if not fincaUsr:
             return False
         return response
     return response
Exemplo n.º 7
0
 def vbarba_cabrera_iniciaValoresLabel(self,
                                       model=None,
                                       template=None,
                                       cursor=None,
                                       data=None):
     labels = {}
     labels[u"fincaActual"] = cacheController.getSessionVariable(
         ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
     return labels
Exemplo n.º 8
0
    def vbarba_cabrera_getFilters(self, model, name, template=None):
        if name == 'almacenesUsuario':
            fincaUsr = cacheController.getSessionVariable(ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
            aAlmacenes = []
            for almacen in almacenes.objects.filter(codfinca__exact=fincaUsr):
                aAlmacenes.append(almacen.codalmacen)
            return [{'criterio': 'codalmacen__in', 'valor': aAlmacenes}]

        return []
Exemplo n.º 9
0
    def gesttare_get_estado(self):
        estado = cacheController.getSessionVariable("estado_timetracking",
                                                    None)

        if not estado:
            self.iface.set_estado("noagrupado")
            estado = "noagrupado"

        return estado
Exemplo n.º 10
0
    def gesttare_get_estado(self):
        estado = cacheController.getSessionVariable("estado_controlhorario",
                                                    None)

        if not estado:
            self.iface.set_estado("diario")
            estado = "diario"

        return estado
Exemplo n.º 11
0
    def vbarba_cabrera_initValidation(self, model, name, data):
        response = True

        if name == 'inventariosAlmacen':
            fincaUsr = cacheController.getSessionVariable(
                ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
            if not fincaUsr:
                return False
            return response

        return response
Exemplo n.º 12
0
 def sanhigia_pedidos_getFilters(self, model, name, template=None):
     filters = []
     if name == 'soloAbiertas':
         visible = cacheController.getSessionVariable(ustr(u"visibeLRS_", qsatype.FLUtil.nameUser()))
         if visible is None:
             cacheController.setSessionVariable(ustr(u"visibeLRS_", qsatype.FLUtil.nameUser()), False)
         if visible:
             return [{'criterio': 'sh_estado__in', 'valor': ["Abierta", "Cerrada"]}]
         else:
             return [{'criterio': 'sh_estado__exact', 'valor': "Abierta"}]
     return filters
Exemplo n.º 13
0
def YB_exception_handler(exc, context):
    # print("________________YBEXCEPTIONHANDLER________________")
    errorMsg = exc.__str__() or None
    try:
        milog.info("Excepcion capturada de alto nivel: %s", errorMsg)
        # if settings.DEBUG:
        #     milog.exception(exc)
    except Exception:
        pass

    miresp = {}
    code = status.HTTP_400_BAD_REQUEST
    # tratamiento de errores de validacion
    if isinstance(exc, ValidationError):
        miresp['tipo'] = 3
        miresp['msg'] = [
            _('Error en los datos recibidos. Revise mensajes adicionales.')
        ]
        miresp['data'] = exc.detail
    elif isinstance(exc, PermissionDenied) or isinstance(
            exc, NotAuthenticated) or isinstance(exc, AuthenticationFailed):
        return HttpResponseRedirect("/")
        # Cuando falle el login por no tener permisos o no estar autenficiado redirigira a /
        # raise djPermissionDenied
    else:
        cacheError = cacheController.getSessionVariable("ErrorHandler")
        if cacheError:
            response = exception_handler(exc, context)
            print(context['view']._prefix)
            errorMsg = YB_error_handler(cacheError, exc)
            cacheController.dropSessionVariable("ErrorHandler")
        else:
            # Comportamiento por defecto
            response = exception_handler(exc, context)
        if not (response is None):
            # Pasamos a nuestro estandar
            miresp['tipo'] = 1
            miresp['msg'] = [response.data.get('detail', None)]
            response.data = miresp
            return response
        else:
            # Tratamiento de excepciones propias y no controladas por API
            if isinstance(exc, excepcionAplicacion):
                if isinstance(exc, excepcionAplicacionRollBack):
                    # set_rollback()
                    pass
                miresp['tipo'] = 2
                miresp['msg'] = [force_text(errorMsg)]
            else:
                # set_rollback()
                miresp['tipo'] = 4
                miresp['msg'] = [force_text(errorMsg)]
    return Response(data=miresp, status=code)
Exemplo n.º 14
0
    def diagnosis_field_activas(self, model):
        try:
            if self.get_estado() == "activity":
                activity = self.iface.get_activity(model.cliente)
                cacheController.setSessionVariable("activity", activity)
            else:
                cacheController.setSessionVariable("activity", {"active": {}, "reserved": {}, "scheduled": {}})
                return {}

            return cacheController.getSessionVariable("activity")["active"]
        except Exception:
            return {}
Exemplo n.º 15
0
    def vbarba_cabrera_getFilters(self, model, name, template):
        if name == 'fincaUsuario':
            fincaUsr = cacheController.getSessionVariable(
                ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
            aAlmacenes = []
            curAlmacenes = qsatype.FLSqlCursor("almacenes")
            curAlmacenes.select("codfinca = '" + str(fincaUsr) + "'")
            while curAlmacenes.next():
                curAlmacenes.setModeAccess(curAlmacenes.Browse)
                curAlmacenes.refreshBuffer()
                aAlmacenes.append(curAlmacenes.valueBuffer("codalmacen"))

            return [{'criterio': 'codalmacen__in', 'valor': aAlmacenes}]

        return []
Exemplo n.º 16
0
 def sanhigia_pedidos_queryGrid_grupoPedidosCli(self, model):
     preparacion = cacheController.getSessionVariable(
         ustr(u"grupoPedidoscli_", qsatype.FLUtil.nameUser()))
     query = {}
     query[
         "tablesList"] = "lineaspedidoscli, ubicacionesarticulo, pedidoscli, articulosprov"
     query[
         "select"] = "lineaspedidoscli.idlinea, lineaspedidoscli.idpedido, lineaspedidoscli.shcantalbaran, lineaspedidoscli.cantidad, lineaspedidoscli.descripcion, lineaspedidoscli.referencia, lineaspedidoscli.totalenalbaran, lineaspedidoscli.cerradapda, stocks.disponible, stocks.cantidad, ubicacionesarticulo.codubicacion, pedidoscli.codigo, articulosprov.refproveedor, lineaspedidoscli.cantidad - lineaspedidoscli.totalenalbaran, lineaspedidoscli.codpreparaciondepedido, pedidoscli.pda"
     query[
         "from"] = "lineaspedidoscli INNER JOIN pedidoscli ON lineaspedidoscli.idpedido = pedidoscli.idpedido INNER JOIN ubicacionesarticulo ON lineaspedidoscli.referencia = ubicacionesarticulo.referencia INNER JOIN stocks on lineaspedidoscli.referencia = stocks.referencia AND pedidoscli.codalmacen = stocks.codalmacen LEFT OUTER JOIN articulosprov ON (lineaspedidoscli.referencia = articulosprov.referencia AND articulosprov.pordefecto)"
     query[
         "where"] = "lineaspedidoscli.codpreparaciondepedido = '" + preparacion + "' AND lineaspedidoscli.sh_preparacion = 'En Curso' AND ubicacionesarticulo.pordefecto"
     # query["where"] = "lineaspedidoscli.codpreparaciondepedido = '" + preparacion + "'"
     query[
         "orderby"] = "ubicacionesarticulo.codubicacion, lineaspedidoscli.referencia, lineaspedidoscli.idlinea"
     return query
Exemplo n.º 17
0
 def sanhigia_pedidos_grupopedidosListoPDA(self, model, oParam):
     pedidos = cacheController.getSessionVariable(ustr(u"grupoPedidos_", qsatype.FLUtil.nameUser()))
     pedidos = pedidos.split(u",")
     curPedido = qsatype.FLSqlCursor(u"pedidosprov")
     codgrupo = qsatype.FLUtil.sqlSelect(u"pedidosprov", u"max(sh_codgrupopedido)", "1=1") or 0
     for p in pedidos:
         curPedido.select("idpedido = " + str(p))
         if not curPedido.first():
             raise ValueError("Error no se encuentra el pedido ")
             return False
         curPedido.setModeAccess(curPedido.Edit)
         curPedido.refreshBuffer()
         curPedido.setValueBuffer("pda", 'Listo PDA')
         curPedido.setValueBuffer("sh_codgrupopedido", codgrupo + 1)
         if not curPedido.commitBuffer():
             return False
     return True
Exemplo n.º 18
0
 def sanhigia_pedidos_procesaCodBarrasGrupo(self, model, oParam):
     # print("Procesa codbarrasgrupo")
     arridPedido = "("
     pedidos = cacheController.getSessionVariable(ustr(u"grupoPedidos_", qsatype.FLUtil.nameUser()))
     oParam["selecteds"] = pedidos
     pedidos = pedidos.split(u",")
     for p in pedidos:
         arridPedido = arridPedido + "'" + str(p) + "',"
     arridPedido = arridPedido[:-1]
     arridPedido = arridPedido + ")"
     # pedido = pedidosprov.objects.filter(idpedido__exact=str(pedidos[0]))
     pedido = {}
     pedido["idpedido"] = pedidos[0]
     pedido["codalmacen"] = qsatype.FLUtil.sqlSelect("pedidosprov", "codalmacen", "idpedido = {}".format(pedido["idpedido"]))
     oParam['grupoPedidos'] = arridPedido
     # return pedidosprov_def.form.iface.procesaCodBarras(pedido[0], oParam)
     return pedidosprov_def.form.iface.procesaCodBarras(pedido, oParam)
Exemplo n.º 19
0
    def vbarba_cabrera_fieldartdisponible(self, model):
        fincaUsr = cacheController.getSessionVariable(ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
        q = qsatype.FLSqlQuery()
        q.setTablesList(u"vb_fincas, articulosprov")
        q.setSelect(u"a.disponible")
        q.setFrom(u"vb_fincas f INNER JOIN articulosprov a ON f.codproveedor = a.codproveedor")
        q.setWhere(ustr(u"f.codfinca = ('", fincaUsr, u"') AND referencia = '", model.referencia, "'"))

        if q.exec_():
            if q.size() == 0:
                return 'No'
            elif q.next():
                if q.value(0):
                    return 'Sí'
                else:
                    return 'No'
        else:
            print("error raro")

        return 'No'
Exemplo n.º 20
0
 def vbarba_cabrera_almacenesUsuario(self, model, oParam):
     data = []
     print(oParam)
     fincaUsr = cacheController.getSessionVariable(
         ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
     q = qsatype.FLSqlQuery()
     q.setTablesList(u"almacenes")
     q.setSelect(u"codalmacen, nombre")
     q.setFrom(u"almacenes")
     q.setWhere(u"(UPPER(nombre) LIKE '%" + oParam["val"].upper() +
                "%' or UPPER(codalmacen) LIKE '%" + oParam["val"].upper() +
                "%') AND  codfinca = '" + fincaUsr + "'")
     if not q.exec_():
         print("Error inesperado")
         return []
     if q.size() > 200:
         return []
     while q.next():
         descripcion = str(q.value(0))
         data.append({"codalmacen": descripcion, "nombre": str(q.value(1))})
     return data
Exemplo n.º 21
0
    def save(self):
        if self.skip_record:
            return

        self.dump_to_cursor()

        pk_name = self.cursor._model._meta.pk.name

        if not self.cursor.commitBuffer():
            error = cacheController.getSessionVariable("ErrorHandler")

            raise NameError(
                "No se pudo guardar el registro {} de la tabla {}. {}".format(
                    self.data[pk_name], self.table, error))

        for child in self.children:
            if child.skip_record:
                continue

            child.get_parent_data(self.cursor)
            child.save()
Exemplo n.º 22
0
 def sanhigia_pedidos_getRerenciasInventario(self, model, oParam, cursor):
     data = []
     codinventario = cacheController.getSessionVariable(
         ustr(u"inventarios_", qsatype.FLUtil.nameUser()))
     q = qsatype.FLSqlQuery()
     q.setTablesList(u"articulos, lineasregstocks")
     q.setSelect(u"distinct(a.referencia),a.descripcion")
     q.setFrom(
         u"articulos a INNER JOIN lineasregstocks l ON a.referencia = l.referencia"
     )
     q.setWhere(
         u"l.codinventario = '{0}' AND (UPPER(a.referencia) LIKE '%{1}%' OR UPPER(a.descripcion) LIKE '%{1}%')"
         .format(codinventario, oParam['val'].upper()))
     if not q.exec_():
         # print("Error inesperado")
         return []
     if q.size() > 200:
         return []
     while q.next():
         descripcion = str(q.value(0)) + "  " + q.value(1)
         data.append({"descripcion": descripcion, "referencia": q.value(0)})
     return data
Exemplo n.º 23
0
 def diagnosis_field_programadas(self, model):
     try:
         return cacheController.getSessionVariable("activity")["scheduled"]
     except Exception:
         return {}
Exemplo n.º 24
0
 def diagnosis_field_reservadas(self, model):
     try:
         return cacheController.getSessionVariable("activity")["reserved"]
     except Exception:
         return {}
Exemplo n.º 25
0
 def firma_albaranescli_comprobarPuesto(self, cursor):
     puesto = cacheController.getSessionVariable(ustr(u"puestodefirma_", qsatype.FLUtil.nameUser()))
     print("firma_albaranescli_comprobarPuesto: ", puesto)
     if puesto:
         return False
     return True
Exemplo n.º 26
0
    def vbarba_cabrera_iniciaValoresLabel(self, model=None, template=None, cursor=None, data=None):
        labels = {}
        fincaUsr = cacheController.getSessionVariable(ustr(u"fincaUsr_", qsatype.FLUtil.nameUser()))
        if template == 'stock':
            almacenes = []
            query = qsatype.FLSqlQuery()
            query.setTablesList(u"almacenes")
            query.setSelect(u"codalmacen")
            query.setFrom(u"almacenes")
            query.setWhere(ustr(u"codfinca = '", fincaUsr, u"'"))

            if query.exec_():
                while query.next():
                    almacenes.append(query.value("codalmacen"))

            stocksAlmacenes = ""
            for alma in almacenes:
                stocksAlmacenes += alma + ":"
                q = qsatype.FLSqlQuery()
                q.setTablesList(u"stocks")
                q.setSelect(u"sum(cantidad)")
                q.setFrom(u"stocks")
                q.setWhere(ustr(u"codalmacen IN ('", alma, u"') AND referencia = '", str(cursor.valueBuffer("referencia")), "'"))

                if q.exec_():
                    if q.next():
                        if(q.value(0)):
                            stocksAlmacenes += " " + str(int(q.value(0))) + "\n"

            almaStr = "', '".join(almacenes)
            totalStockFinca = ""
            q = qsatype.FLSqlQuery()
            q.setTablesList(u"stocks")
            q.setSelect(u"sum(cantidad)")
            q.setFrom(u"stocks")
            q.setWhere(ustr(u"codalmacen IN ('", almaStr, u"') AND referencia = '", str(cursor.valueBuffer("referencia")), "'"))

            if q.exec_():
                if q.next():
                    totalStockFinca = q.value(0)

            q = qsatype.FLSqlQuery()
            q.setTablesList(u"vb_fincas, articulosprov")
            q.setSelect(u"a.disponible")
            q.setFrom(u"vb_fincas f INNER JOIN articulosprov a ON f.codproveedor = a.codproveedor")
            q.setWhere(ustr(u"f.codfinca = ('", fincaUsr, u"') AND referencia = '", str(cursor.valueBuffer("referencia")), "'"))
            disponible = 'No'
            if q.exec_():
                if q.size() == 0:
                    disponible = 'No'
                elif q.next():
                    if q.value(0):
                        disponible = 'Sí'
                    else:
                        disponible = 'No'
            else:
                disponible = 'No'

            labels[u"totalStockFinca"] = totalStockFinca
            labels[u"stocksAlmacenes"] = stocksAlmacenes
            labels[u"disponibleProv"] = disponible
        if template == "stock" or template == "formRecord":
            tienefoto = 'No'
            if cursor.valueBuffer("tienefoto"):
                tienefoto = 'Sí'
            labels[u"tieneFoto"] = tienefoto
        labels[u"fincaActual"] = fincaUsr
        return labels
Exemplo n.º 27
0
 def sanhigia_pedidos_getFilters(self, model, name, template=None):
     filters = []
     if name == 'grupopedidos':
         pedidos = cacheController.getSessionVariable(ustr(u"grupoPedidos_", qsatype.FLUtil.nameUser()))
         return [{'criterio': 'idpedido__in', 'valor': pedidos.split(u",")}]
     return filters
Exemplo n.º 28
0
 def sanhigia_pedidos_procesaCodBarrasGrupo(self, model, oParam):
     cantidad = 1
     if "preparacion" not in oParam:
         preparacion = cacheController.getSessionVariable(
             ustr(u"grupoPedidoscli_", qsatype.FLUtil.nameUser()))
         oParam['preparacion'] = preparacion
     if "idlinea" in oParam and "codlote" in oParam:
         idPedido = qsatype.FLUtil.sqlSelect(
             u"lineaspedidoscli", u"idpedido",
             u"idlinea = {}".format(oParam["idlinea"]))
         oParam["codalmacen"] = qsatype.FLUtil.sqlSelect(
             u"pedidoscli", u"codalmacen",
             u"idpedido = {}".format(idPedido))
         # codLote = qsatype.FLUtil.sqlSelect(u"lotes", u"codlote", ustr(u"codigo = '", oParam['codlote'], u"' AND referencia = '", oParam['referencia'], "' AND enalmacen > 0 "))
         codLote = oParam["codlote"]
         val = pedidoscli.form.iface.insertarMovilote(
             oParam['idlinea'], oParam['referencia'], cantidad,
             oParam["codalmacen"], codLote)
         if val['status'] == 0:
             return True
         return val
     else:
         datos = flfactalma_def.iface.datosLecturaCodBarras(
             oParam['codbarras'])
         codBarras = datos['codbarras']
         # Ver si existe alguna referencia para ese codigo de barras
         referencia = qsatype.FLUtil.sqlSelect(
             u"articulosprov", u"referencia",
             u"codbarrasprov = '{}' AND referencia IN (select referencia from lineaspedidoscli where codpreparaciondepedido = '{}')"
             .format(codBarras, oParam['preparacion']))
         if referencia:
             oParam["referencia"] = referencia
             oParam["idlinea"] = pedidoscli.form.iface.dameIdLinea(oParam)
             if oParam["idlinea"] == -1:
                 resul = {}
                 resul['status'] = -1
                 resul[
                     'msg'] = "El estado de preparación del artículo con código de barras {} no está 'En curso'".format(
                         codBarras)
                 return resul
             idPedido = qsatype.FLUtil.sqlSelect(
                 u"lineaspedidoscli", u"idpedido",
                 u"idlinea = {}".format(oParam["idlinea"]))
             oParam["codalmacen"] = qsatype.FLUtil.sqlSelect(
                 u"pedidoscli", u"codalmacen",
                 u"idpedido = {}".format(idPedido))
         else:
             resul = {}
             resul['status'] = -1
             resul[
                 'msg'] = "No se encuentra artículo con código: " + codBarras
             return resul
         # Analizar si el articulo va por lotes y si es asi comprobar si tenemos lote o necesitamos pedir
         porLotes = qsatype.FLUtil.sqlSelect(
             u"articulos", u"porlotes",
             u"referencia = '{}'".format(referencia))
         if not porLotes and "lote" in datos:
             datos['lote'] = None
         if not porLotes:
             # Actualizo línea
             shcantidad = qsatype.FLUtil.sqlSelect(
                 u"lineaspedidoscli", u"shcantalbaran",
                 u"idlinea = {}".format(oParam["idlinea"])) or 0
             shcantidad = shcantidad + 1
             if not qsatype.FLUtil.sqlUpdate(
                     u"lineaspedidoscli", u"shcantalbaran", shcantidad,
                     u"idlinea = {}".format(oParam["idlinea"])):
                 resul['status'] = -3
                 resul['msg'] = "Error al actualizar línea del pedido"
                 resul['param'] = idLinea
                 return resul
         else:
             if "lote" in datos and datos["lote"]:
                 codLote = qsatype.FLUtil.sqlSelect(
                     u"lotes", u"codlote",
                     u"codigo = '{}' AND referencia = '{}'  AND enalmacen > 0 "
                     .format(datos["lote"], oParam['referencia']))
                 # print("_____codlote3____", codLote)
                 val = pedidoscli.form.iface.insertarMovilote(
                     oParam['idlinea'], oParam['referencia'], cantidad,
                     oParam["codalmacen"], codLote)
                 if val['status'] == 0:
                     return True
                 return val
             else:
                 # No tengo codlote hay que pedirlo
                 val = pedidoscli.form.iface.analizaCodBarras(
                     idPedido, oParam['codbarras'], cantidad,
                     oParam["codalmacen"], oParam['idlinea'])
                 return pedidoscli.form.iface.respuestaAnalizaCodBarras(
                     None, oParam, val)
     return True