public Factura RegistrarFactura(DateTime fechaHora, string tipoFactura, int importeTotal, int formaPagoId, int estadoId, int clienteId, string NroTarjeta = "N/A")
        {
            var datos                = new OperacionesDAC();
            var inte                 = new IntegridadDatos();
            var aud                  = new Auditoria();
            var clienteDatos         = new ClienteDAC();
            var estadoOperacionDatos = new EstadoOperacionDAC();
            var accDatosFormaPago    = new FormaPagoDAC();

            var factura = new Factura
            {
                FechaHora = fechaHora,
                Tipo      = tipoFactura,
                Monto     = importeTotal,
                FormaPago = accDatosFormaPago.BuscarPorId(formaPagoId), //Mapper FormaPago.
                Estado    = estadoOperacionDatos.BuscarPorId(estadoId), //Mapper EstadoOperacion.
                Cliente   = clienteDatos.BuscarPorId(clienteId),        // Mapper Cliente.
            };

            var facturaActual = datos.RegistrarFactura(factura);

            var facturaDVH = inte.CalcularDVH(facturaActual.Codigo.ToString() + facturaActual.FechaHora.ToString() + facturaActual.Tipo + facturaActual.Cliente.Id.ToString() + facturaActual.Monto.ToString() + facturaActual.FormaPago.Id.ToString() + facturaActual.Estado.Id.ToString());

            // Actualiza el DVH y DVV.
            inte.ActualizarDVHFactura(facturaActual.Codigo, facturaDVH);
            inte.RecalcularDVV("Factura");

            // Grabo en Bitácora.
            aud.grabarBitacora(DateTime.Now, "SISTEMA", "ALTA FACTURA", "INFO", "Se generó la factura: " + facturaActual.Codigo.ToString() + " para el Cliente " + facturaActual.Cliente.Id + " por un Importe de $ " + facturaActual.Monto.ToString() + " con estado " + facturaActual.Estado.Descripcion);

            return(facturaActual);
        }