/**
 * Pago en guaraníes de una factura en moneda extranjera (ej: cuota inmobiliaria
 * pactada y facturada en USD que el comprador paga en Gs.).
 *
 * SIFEN informa el pago en la moneda en que se pagó: dMonTiPag en Gs. y
 * cMoneTiPag = PYG, sin dTiCamTiPag (sólo va cuando la moneda del pago no es PYG).
 * Para la caja y la contabilidad el monto se lleva a la moneda de la factura con
 * el tipo de cambio de la propia factura (dticam), que es el que declara SIFEN.
 */
export function pagoEnGuaraniesDeFacturaExtranjera(
  montoGs: number,
  dticamFactura: number | null | undefined,
): { montoGs: number; montoBase: number } {
  const tc = Number(dticamFactura) || 0;
  if (tc <= 0) {
    throw new Error('La factura en moneda extranjera no tiene tipo de cambio para convertir el pago en guaraníes');
  }
  const gs = Math.round(Number(montoGs) || 0);
  return { montoGs: gs, montoBase: Math.round((gs / tc) * 100) / 100 };
}
