Verificación de factura BAPI_INCOMINGINVOICE_CREATE

Cuatro tipos de verificación de facturas

1. Verificación de la factura basada en la orden de compra: complete la orden de compra (determine si necesita recibir la orden de compra de acuerdo con la configuración)

2. Verificación de facturas en base a la entrada de mercancías: cumplimente los comprobantes de referencia para las órdenes de compra y los materiales de entrada de mercancías. Necesita verificar la orden de compra, según la verificación de la factura del recibo (después de verificar, la factura solo puede basarse en el recibo)

3. Verificación de facturas sin orden: no complete la orden de compra, cuéntela directamente en el libro mayor o en la cuenta de activos.

 

error:

Si no se completa lt_bapi_item-po_unit, se producirá un error de que no se especifica la unidad de medida de ISO-CodeSPACE

Si el recibo es acreditado o la devolución es positiva, se informará un error: el monto dado de baja hasta el momento es mayor que el monto prestado

Si la cantidad de verificación de la factura es mayor que la cantidad disponible en el comprobante de referencia, informará un error "La cantidad de compensación es mayor que la cantidad de la factura actual". Por ejemplo, si el monto del descuento es mayor que el monto total al realizar un descuento,

Cuando la cantidad es negativa y se utiliza como nota de crédito, se informará de este error (el artículo de la orden de compra no es una devolución) (por lo que este esquema no funciona).

M8147-No es posible la determinación de la cuenta para la entrada : esta es la diferencia de monto es demasiado grande, monto_bruto no es igual al monto del artículo de línea + monto de impuestos

 

Diferencias en la verificación de facturas

Si el monto del artículo de línea de verificación de la factura no coincide con el monto del artículo de línea de la orden de compra, hay dos formas de registrar la diferencia según la configuración.

1. Complete el monto real en el artículo de línea y el encabezado durante la verificación de la factura. Según la configuración, cuando se genera el comprobante contable, se calcula automáticamente una cuenta de diferencia de material. En este momento, la cuenta de diferencia está con el número de material.

2. Durante la verificación de la factura, complete el monto de la orden de compra en el artículo de línea, complete el monto real en el encabezado y registre una cuenta de diferencia. En este momento, se contabiliza en la cuenta de inventario de productos básicos, y habrá una cuenta de diferencia (registrada manualmente) al mismo tiempo, y la diferencia no lleva el número de material.

 

problema

M8 088 envía un error con una cantidad de 0,

Si se basa en la verificación del recibo, el comprobante de referencia entrante se cancela, incluso si se recibe la orden de compra, se informará de este error.

Se puede configurar a través de OMRM. Tenga en cuenta que el estándar es W significa que MIRO no informará un error, por lo que

No se asigna ninguna unidad de medida al código ISO y

Razón: La unidad de medida del pedido y la unidad del precio del pedido son inconsistentes, debe completar PO_PR_UOM_ISO, PO_PR_UOM

 

4. Tomar datos de referencia para la verificación de facturas.

ME_READ_HEADER_INVOICE

ME_READ_ITEM_INVOICE 

 

MANIFESTACIÓN

formulario de publicación usando ut_out tipo ty_t_out

           cambiando cv_belnr cv_msg.

  datos ls_out tipo ty_out.

 

* BAPI

  datos: ls_header como bapi_incinv_create_header,

        ls_item tipo bapi_incinv_create_item,

        tabla de tipo lt_item de bapi_incinv_create_item,

        ls_tax tipo bapi_incinv_create_tax,

        tabla de tipo lt_tax de bapi_incinv_create_tax,

        ls_return tipo bapiret2,

        Tabla de tipo lt_return de bapiret2.

 

  datos:

* lv_invno como bapi_incinv_fld-inv_doc_no,

        lv_fyear como bapi_incinv_fld-fisc_year.

 

  claro: cv_belnr, cv_msg.

 

* Verificación de facturas basada en orden de compra

  bucle en ut_out en ls_out.

    ls_item-invoice_doc_item = sy-tabix.

    ls_item-po_number = ls_out-ebeln. "INTRODUZCA EL NÚMERO DE PO

    ls_item-po_item = ls_out-ebelp. "INGRESE EL NÚMERO DE ARTÍCULO DEL PO

    ls_item-tax_code = ls_out-mwskz. "税 码

    ls_item-item_amount = ls_out-netwr. "Excluyendo el monto de impuestos

    ls_item-amount = ls_out-fkimg. "数量

    ls_item-po_unit = ls_out-meins. "Unidad

    ls_item-ITEM_TEXT = p_sh. "Número de identificación fiscal

    agregue ls_item a lt_item.

 

    ls_header-monto_bruto = ls_header-monto_bruto + ls_out-hsje.

    ls_tax-tax_amount = ls_tax-monto_impuesto + ls_out-mwsbp. "税额

  endloop.

 

  agregue ls_tax a lt_tax.

 

  ls_header-invoice_ind = 'X'. "Factura contable (reenviar)

  ls_header-pmnttrms = ls_out-zterm. "Condiciones de pago

  ls_header-doc_date = P_DATUM. "INTRODUZCA LA FECHA DEL DOCUMENTO

  ls_header-pstng_date = ls_out-budat. "INTRODUZCA LA FECHA DE PUBLICACIÓN

  ls_header-ref_doc_no = p_sh.

  ls_header-comp_code = p_bukrs.

  ls_header-gross_amount = ls_header-gross_amount. "Importe total de la factura (impuestos incluidos)

* ls_header-calc_tax_ind = 'X'. "Cálculo automático del importe del impuesto (el importe del impuesto no se puede modificar, no se requieren datos fiscales, pero parece que el monto_bruto todavía se calcula, por lo que el tipo impositivo todavía se calcula)

  ls_header-currency = 'CNY'.

 

 

 

  llamar a la función 'BAPI_INCOMINGINVOICE_CREATE'

    exportador

      headerdata = ls_header

* ADDRESSDATA =

    importador

      invoicedocnumber = cv_belnr

      fiscalyear = lv_fyear

    mesas

      itemdata = lt_item

* ACCOUNTINGDATA =

* GLACCOUNTDATA =

*     MATERIALDATA        =

      taxdata = lt_tax

* SINTAXDATA =

*     VENDORITEMSPLITDATA =

      return = lt_return

* EXTENSIONIN =

    .

 

  si cv_belnr no es inicial.

    llamar a la función 'BAPI_TRANSACTION_COMMIT'

      exportador

        esperar = 'X'.

* cv_msg = 'La verificación de la factura se realizó correctamente, número de factura:' && cv_belnr.

  demás.

    llamar a la función 'BAPI_TRANSACTION_ROLLBACK'.

    cv_msg = 'Error en la verificación de la factura'.

    bucle en lt_return en ls_return donde escriba = 'E' o escriba = 'A' o escriba = 'X'.

      cv_msg = cv_msg && ',' && ls_return-message.

    endloop.

  terminara si.

 

endform. " CORREO

 

 

Supongo que te gusta

Origin blog.csdn.net/cylcylcylcylwo/article/details/114014892
Recomendado
Clasificación