1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

[RESOLVIDO] Criar novas parcelas

Discussão em 'EMS , HCM e Totvs 11' iniciado por Rogerio, Janeiro 10, 2011.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Galera to com uma duvida...

    No momento de criação de uma Ordem de Compra preciso alterar a forma da criação das parcelas...

    Tenho que em vez de que seja aberto a tela CC0301b, eu crie uma nova tela com um browse com o número de parcelas pre-determinadas pelo usuário, até ai tranquilo, mas e para incluir essas parcelas no banco ai que fica minha duvida!!!

    Eu dou um create direto na tabela prazo-compra ou existe alguma outra maneira!!!!
  2. costa

    costa Sem Pontuação

    Boa Tarde

    Rogerio eu uso a BO inbo/boin356.p, é melhor do que criar diretamente na base.

    Obrigado
  3. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Você teria algum exemplo de utilização dela para me passar?
  4. costa

    costa Sem Pontuação

    Ve se da para entender.

    RUN piLogWrite ("Iniciando processo para tratamento Prazo Compra ").

    FIND FIRST prazo-compra WHERE prazo-compra.numero-ordem = ttOrdemCompra.numero-ordem NO-LOCK NO-ERROR.
    CREATE ttPrazoCompra.
    IF AVAILABLE prazo-compra THEN
    BUFFER-COPY prazo-compra TO ttPrazoCompra.
    ELSE
    BUFFER-COPY ttOrdemCompra TO ttPrazoCompra.

    ASSIGN lQtdAlterada = NO.

    IF AVAIL prazo-compra THEN DO:
    IF prazo-compra.quantidade <> es_po_import.quantity THEN
    ASSIGN lQtdAlterada = YES
    cMensagem = cMensagem + " Qtd.Anterior : " + STRING(prazo-compra.quantidade) + " Qtd.Atual: " + STRING(es_po_import.quantity).

    END.
    ASSIGN ttPrazoCompra.un = es_un_externa.un
    ttPrazoCompra.data-entrega = es_po_import.schedule_date.

    IF es_po_import.quantity = 0 THEN
    ASSIGN ttPrazoCompra.situacao = 6.

    IF ttPrazoCompra.quant-receb = 0 THEN DO:
    ASSIGN ttPrazoCompra.qtd-sal-forn = es_po_import.quantity
    ttPrazoCompra.quant-saldo = es_po_import.quantity
    ttPrazoCompra.quantidade = es_po_import.quantity.

    END.
    ELSE IF es_po_import.quantity > ttPrazoCompra.quant-receb THEN DO:
    ASSIGN ttPrazoCompra.qtd-sal-forn = es_po_import.quantity - ttPrazoCompra.quant-receb
    ttPrazoCompra.quant-saldo = es_po_import.quantity - ttPrazoCompra.quant-receb
    ttPrazoCompra.quantidade = es_po_import.quantity
    ttPrazoCompra.situacao = 2.
    END.
    ELSE IF es_po_import.quantity <= ttPrazoCompra.quant-receb THEN DO:
    ASSIGN ttPrazoCompra.qtd-sal-forn = 0
    ttPrazoCompra.quant-saldo = 0
    ttPrazoCompra.quantidade = ttPrazoCompra.quant-receb
    ttPrazoCompra.situacao = 6.
    END.

    IF AVAILABLE prazo-compra THEN DO:
    RUN repositionRecord IN hboin356 (INPUT ROWID(prazo-compra)).
    END.

    RUN setRecord IN hboin356 (INPUT TABLE ttPrazoCompra).

    EMPTY TEMP-TABLE rowErrors.
    RUN emptyRowErrors IN hboin356.

    IF NOT AVAILABLE prazo-compra THEN
    RUN validateRecord IN hboin356 (INPUT "create":U).
    ELSE
    RUN validateRecord IN hboin356 (INPUT "update":U).

    RUN getRowErrors IN hboin356 (OUTPUT TABLE RowErrors).
    ASSIGN lErro = NO.
    IF CAN-FIND(FIRST RowErrors
    WHERE RowErrors.ErrorType <> "INTERNAL":U) THEN DO:
    FOR EACH RowErrors
    WHERE RowErrors.ErrorType <> "INTERNAL":U
    AND RowErrors.ErrorSubType = "ERROR":
    RUN piLogWrite("*** Erro Nr: " + STRING(RowErrors.ErrorNumber) + " - " + RowErrors.ErrorDescription).
    CREATE ttMsgImport.
    ASSIGN ttMsgImport.cdn_msg = RowErrors.ErrorNumber
    ttMsgImport.des_msg = RowErrors.ErrorDescription
    ttMsgImport.help_msg = RowErrors.ErrorHelp
    ttMsgImport.idTokenImport = es_po_import.idTokenImport
    ttMsgImport.nivel = 3 /* PRAZO */
    ttMsgImport.seq_msg = 0
    ttMsgImport.SUBTYPE_msg = RowErrors.ErrorSubType
    ttMsgImport.rRowid = ROWID(ttMsgImport).
    ASSIGN lErro = YES.
    END.
    IF lErro THEN
    UNDO blk_trans, LEAVE blk_trans.
    END.

    EMPTY TEMP-TABLE rowErrors.
    RUN emptyRowErrors IN hboin356.

    IF NOT AVAILABLE prazo-compra THEN
    RUN createRecord IN hboin356.
    ELSE
    RUN updateRecord IN hboin356.

    RUN getRowErrors IN hboin356 (OUTPUT TABLE RowErrors).

    ASSIGN lErro = NO.
    IF CAN-FIND(FIRST RowErrors WHERE RowErrors.ErrorType <> "INTERNAL":U) THEN DO:
    FOR EACH RowErrors
    WHERE RowErrors.ErrorType <> "INTERNAL":U
    AND RowErrors.ErrorSubType = "ERROR":
    RUN piLogWrite("*** Erro Nr: " + STRING(RowErrors.ErrorNumber) + " - " + RowErrors.ErrorDescription).
    CREATE ttMsgImport.
    ASSIGN ttMsgImport.cdn_msg = RowErrors.ErrorNumber
    ttMsgImport.des_msg = RowErrors.ErrorDescription
    ttMsgImport.help_msg = RowErrors.ErrorHelp
    ttMsgImport.idTokenImport = es_po_import.idTokenImport
    ttMsgImport.nivel = 3 /* PRAZO */
    ttMsgImport.seq_msg = 0
    ttMsgImport.SUBTYPE_msg = RowErrors.ErrorSubType
    ttMsgImport.rRowid = ROWID(ttMsgImport).
    ASSIGN lErro = YES.
    END.
    IF lErro THEN
    UNDO blk_trans, LEAVE blk_trans.
    END.
  5. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Cara coloquei o seguite codigo em um botao OK:

    Código:
        EMPTY TEMP-TABLE rowErrors.
    
        RUN inbo/boin356 PERSISTEN SET hboin356.
        FOR EACH tt-prazo:
            RUN setRecord IN hboin356 (INPUT TABLE tt-prazo).
            RUN validateRecord IN hboin356 (INPUT "create":U).
            RUN getRowErrors IN hboin356 (OUTPUT TABLE RowErrors).
            FIND FIRST rowerrors NO-LOCK NO-ERROR.
            IF AVAIL rowerrors THEN
            DO:
                FOR EACH RowErrors:
                    MESSAGE rowerrors.ErrorDescription
                        VIEW-AS ALERT-BOX INFO BUTTONS OK.
                END.
                NEXT.
            END.
            EMPTY TEMP-TABLE rowErrors.
            RUN createRecord IN hboin356.
            RUN getRowErrors IN hboin356 (OUTPUT TABLE RowErrors).
            FIND FIRST rowerrors NO-LOCK NO-ERROR.
            IF AVAIL rowerrors THEN
            DO:
                FOR EACH RowErrors:
                    MESSAGE rowerrors.ErrorDescription
                        VIEW-AS ALERT-BOX INFO BUTTONS OK.
                END.
            END.
        END.
    
    Mas esta dando o seguinte erro:

    Numero imcopativel de parametros passado para a rotina openQuery inbo/boin356. (3234)


    Você sabe o que seria isso???
  6. costa

    costa Sem Pontuação

    Rogerio acho que é a definição da temp table:
    DEFINE TEMP-TABLE ttPrazoCompra NO-UNDO LIKE prazo-compra
    FIELDS r-rowid AS ROWID.

    e depois quando inicializa o handle fica assim:

    IF NOT VALID-HANDLE(hboin356) THEN DO:
    RUN inbo/boin356.p PERSISTENT SET hboin356.
    RUN openQueryStatic in hboin356 ("Main":U).
    END.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página