コード例 #1
0
ファイル: vl.py プロジェクト: kslima/bootTransp
    def criar_remessa(sap_session, remessa, remessa_sem_transporte=False):
        try:
            ordem = remessa.itens[0].numero_ordem
            SAPTransaction.call(sap_session, 'vl01n')
            SAPGuiElements.set_text(sap_session, SHIPPING_PLACE_FIELD,
                                    SHIPPING_PLACE_VALUE)
            SAPGuiElements.set_text(sap_session, SHIPPING_ORDER_FIELD, ordem)
            SAPGuiElements.press_keyboard_keys(sap_session, "Enter")

            # verificando se houve alguma mensagem de erro.
            # Uma exceçao será lançada no caso de erro.
            SAPGuiElements.verificar_mensagem_barra_inferior(sap_session)
            SAPGuiElements.select_element(sap_session, ELEMENTO_ABA_PICKING)

            linha = 0
            for item in remessa.itens:
                item_str = VL01.__procurar_item_pelo_codigo_produto(
                    sap_session, item.produto.codigo_sap, ordem)
                VL01.__inserir_deposito(sap_session, item.produto.deposito,
                                        item_str)
                VL01.__inserir_lote(sap_session, item.produto.lote, item_str)
                VL01.__inserir_quantidade(sap_session, item.quantidade,
                                          item_str)
                VL01.__inserir_picking(sap_session, item.quantidade, item_str)
                VL01.__alterar_direitos_fiscais_se_necessario(
                    sap_session, item.produto, linha)

            VL01.__inserir_dados_cabecalho(sap_session,
                                           remessa.itens[0].produto)

            SAPGuiElements.enter(sap_session)
            # ignorando alerta de remessas parciais
            SAPGuiElements.ignorar_alerta(sap_session)

            if SAPGuiElements.verificar_mensagem_barra_inferior(sap_session):
                SAPGuiElements.enter(sap_session)

            SAPGuiElements.salvar(sap_session)

            # ignorando alerta de remessas parciais
            SAPGuiElements.ignorar_alerta(sap_session)

            # verificando se houve alguma mensagem de erro.
            mensagem = SAPGuiElements.verificar_mensagem_barra_inferior(
                sap_session)

            # retornando o número da remessa
            return VL01.extrair_numero_remessa(mensagem)

        except Exception as e:
            raise e
コード例 #2
0
ファイル: vt.py プロジェクト: kslima/bootTransp
    def create(sap_session, carregamento):
        try:

            VT01.__abrir_transacao(sap_session)
            VT01.__inserir_codigo_transportador(
                sap_session, carregamento.transportador.codigo_sap)
            VT01.__inserir_dados_veiculo(sap_session, carregamento.veiculo)

            if carregamento.remessas[0].itens[0].produto.inspecao_produto == 1:
                VT01.__inserir_lote_controle_produto(
                    sap_session, carregamento.lotes_qualidade[-1])
            SAPGuiElements.enter(sap_session)

            SAPGuiElements.verificar_mensagem_barra_inferior(sap_session)

            VT01.__inserir_dados_motorista(sap_session, carregamento.motorista)

            # verificando se é necessário lacres para esse produto
            tipo_lacres = carregamento.remessas[0].itens[0].produto.tipo_lacres
            if tipo_lacres != 0:
                VT01.__inserir_lacres(sap_session, tipo_lacres,
                                      carregamento.lacres)

            # verificando se há número de pedido
            if carregamento.numero_pedido:
                VT01.__inserir_pedido(sap_session, carregamento.numero_pedido)

            SAPGuiElements.enter(sap_session)

            VT01.__inserir_remessas(sap_session, carregamento.remessas)
            SAPGuiElements.press_button(sap_session, ELEMENTO_SINTESE)
            sap_session.findById(ELEMENTO_ABA_DADOS).select()
            SAPGuiElements.press_button(sap_session,
                                        ELEMENTO_ORGANIZAR_TRANSPORTE)

            SAPGuiElements.salvar(sap_session)

            message = SAPGuiElements.verificar_mensagem_barra_inferior(
                sap_session)
            transport_number = VT01.extrair_numero_transport(message)
            return transport_number

        except Exception as e:
            traceback.print_exc(file=sys.stdout)
            raise e
コード例 #3
0
ファイル: qa.py プロジェクト: kslima/bootTransp
    def create(sap_session, lote_inspecao):
        try:
            SAPTransaction.call(sap_session, 'qa01')
            SAPGuiElements.set_text(sap_session, ELEMENTO_CODIGO_PRODUTO, lote_inspecao.material)
            SAPGuiElements.set_text(sap_session, ELEMENTO_CENTRO, CENTRO)
            SAPGuiElements.set_text(sap_session, ELEMENTO_LOTE_ORIGEM, lote_inspecao.origem)
            SAPGuiElements.press_keyboard_keys(sap_session, "Enter")

            # verificando se o lote é de inspecao de produto(89) ou de veiculo(07)
            inspecionando_produto = lote_inspecao.origem == "89"
            if inspecionando_produto:
                sap_session.findById("wnd[1]/usr/lbl[1,3]").setFocus()
                SAPGuiElements.press_keyboard_keys(sap_session, "Enter")
                SAPGuiElements.set_text(sap_session, ELEMENTO_QUANTIDADE_LOTE, QUANTIDADE_LOTES)
                SAPGuiElements.set_text(sap_session, ELEMENTO_TXT_BREVE_INSP_PRODUTO, lote_inspecao.texto_breve)
            else:
                SAPGuiElements.set_text(sap_session, ELEMENTO_TXT_BREVE_INSP_VEICULO, lote_inspecao.texto_breve)

            # o lote e o deposito sao setados agora pq caso o lote seja de inspecao de produto, o sap mostra uma
            # mensagem antes de abrir a tela do lote
            SAPGuiElements.set_text(sap_session, ELEMENTO_LOTE, lote_inspecao.lote)
            SAPGuiElements.set_text(sap_session, ELEMENTO_DEPOSITO,
                                    lote_inspecao.deposito if lote_inspecao.deposito is not None else '')

            SAPGuiElements.salvar(sap_session)

            try:
                SAPGuiElements.press_button(sap_session, OPTIONAL_CREATE)
                error_message = SAPGuiElements.get_text(sap_session, ERROR_MESSAGE_ELEMENT)
                if error_message:
                    raise RuntimeError(QA01.get_formated_error_message(error_message, lote_inspecao.texto_breve))

            except AttributeError:
                pass

            mensagem = SAPGuiElements.verificar_mensagem_barra_inferior(sap_session)
            return QA01.get_batch_controller_number(mensagem)

        except Exception as e:
            traceback.print_exc(file=sys.stdout)
            raise e