def __abrir_item_para_edicao(sap_session, linha): try: SAPGuiElements.selecionar_linha(sap_session, ELEMENTO_LINHA, linha) sap_session.findById("wnd[0]").sendVKey(2) SAPGuiElements.ignorar_alerta(sap_session) if SAPGuiElements.verificar_mensagem_barra_inferior(sap_session): SAPGuiElements.enter(sap_session) except Exception: raise RuntimeError('Erro ao inserir direitos fiscais!')
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
def __abrir_detalhes_cabecalho(sap_session): SAPGuiElements.press_button(sap_session, ELEMENTO_BOTAO_DETALHE_CABECALHJO) SAPGuiElements.ignorar_alerta(sap_session)