private void registrarIva(Poliza p, List<GFacturaPorCompra> facs) {
    // Impuesto de gastos
    for (GFacturaPorCompra fac : facs) {
      PolizaDet a = p.agregarPartida();
      a.setCuenta(getCuenta("117"));
      a.setDescripcion("Iva x acreditar");
      String pattern = "IVA F:{0} {1}";
      String descripcion2 =
          MessageFormat.format(
              pattern, fac.getDocumento(), fac.getCompra().getProveedor().getNombreRazon());
      a.setDescripcion2(descripcion2);
      CantidadMonetaria impuestoGastos = CantidadMonetaria.pesos(0);
      for (GCompraDet det : fac.getCompra().getPartidas()) {
        if (!det.getProducto().getInversion()) {
          CantidadMonetaria imp = det.getImpuestoMN();
          impuestoGastos = impuestoGastos.add(imp);
        }
      }
      a.setDebe(impuestoGastos.amount());
      if ((fac.getCompra().getRet1MN() != null)
          && (fac.getCompra().getRet1MN().amount().doubleValue() > 0)) {
        a.setDebe(a.getDebe().subtract(fac.getCompra().getRet1MN().amount()));
      }
      a.setReferencia(fac.getCompra().getProveedor().getNombreRazon());
      a.setReferencia2(fac.getCompra().getSucursal().getNombre());
    }
    /** Impuesto de gastos* */
    for (GFacturaPorCompra fac : facs) {
      PolizaDet a = p.agregarPartida();
      a.setCuenta(getCuenta("117"));
      a.setDescripcion("Iva x acreditar");
      String pattern = "IVA F:{0} {1}";
      String descripcion2 =
          MessageFormat.format(
              pattern, fac.getDocumento(), fac.getCompra().getProveedor().getNombreRazon());
      a.setDescripcion2(descripcion2);

      CantidadMonetaria impuestoGastos = CantidadMonetaria.pesos(0);
      for (GCompraDet det : fac.getCompra().getPartidas()) {
        if (det.getProducto().getInversion()) {
          CantidadMonetaria imp = det.getImpuestoMN();
          impuestoGastos = impuestoGastos.add(imp);
        }
      }
      a.setDebe(impuestoGastos.amount());
      a.setReferencia(fac.getCompra().getProveedor().getNombreRazon());
      a.setReferencia2(fac.getCompra().getSucursal().getNombre());
    }
  }
  /**
   * @param dets
   * @param registros
   */
  public void registrarGasto(
      final List<GCompraDet> dets, final Poliza poliza, final String factura) {
    GCompraDet det = dets.get(0);
    PolizaDet asiento = poliza.agregarPartida();
    asiento.setCuenta(getCuenta("600"));
    asiento.setDescripcion("");

    String pattern = "F-{0} {1}";
    String descripcion2 =
        MessageFormat.format(pattern, det.getFactura(), det.getProducto().getDescripcion());
    descripcion2 = StringUtils.substring(descripcion2, 0, 50);
    asiento.setDescripcion2(descripcion2);

    if ((det.getRubro() != null) || (det.getRubro().getRubroCuentaOrigen() != null)) {
      ConceptoDeGasto concepto = det.getRubro().getRubroCuentaOrigen();
      String cc = concepto != null ? concepto.getDescripcion() : "NA";
      asiento.setDescripcion2(cc);
    }

    CantidadMonetaria debe = CantidadMonetaria.pesos(0);
    for (GCompraDet part : dets) {
      debe = debe.add(part.getImporteMN());
    }

    asiento.setDebe(debe.amount());
    asiento.setReferencia(dets.get(0).getCompra().getProveedor().getNombreRazon());
    asiento.setReferencia2(det.getSucursal().getNombre());
  }