<?php
header("Content-Type: text/html;charset=utf-8");
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

use Shuchkin\SimpleXLSX;
require_once '../SimpleXLSX/SimpleXLSX.php';

require_once("../data/Conexion.php");
require_once("../data/Tablas.php");
require_once("../clases/cls_usuario.php");
require_once("../clases/cls_categoria.php");
require_once("../clases/cls_unidad_medida.php");
require_once("../clases/cls_moneda.php");
require_once("../clases/cls_proveedor.php");
require_once("../clases/cls_responsable.php");
require_once("../clases/cls_producto.php");
require_once("../clases/cls_tienda.php");
require_once("../clases/cls_compra.php");
require_once("../clases/cls_compra_producto.php");
require_once("../clases/cls_movimiento.php");
require_once("../clases/cls_movimiento_producto.php");
require_once("../clases/cls_almacen_general.php");
require_once("../clases/cls_almacen_tienda.php");
require_once("../clases/cls_control_movimiento.php");
require_once("../clases/cls_proforma.php");
require_once("../clases/cls_proforma_producto.php");
require_once("../clases/cls_venta.php");
require_once("../clases/cls_venta_producto.php");

function exportar_almacen_general($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS almacen_general (
				almacen_general_id INTEGER PRIMARY KEY NOT NULL,
				compra_id INTEGER,
				compra_producto_id INTEGER,
				producto_id INTEGER,
				moneda_codigo TEXT NOT NULL,
				igv_porcentaje REAL NOT NULL,
				valor_ganancia REAL NOT NULL,
				precio_compra REAL NOT NULL,
				precio_venta REAL,
				precio_minimo REAL,
				unidades INTEGER,
				ubicacion TEXT,
				fecha_vencimiento DATE NOT NULL,
				tipo_movimiento TEXT,
				usuario_modificacion INTEGER,
				fecha_creacion DATETIME,
				fecha_modificacion DATETIME,
				activo INTEGER
			);";
		$db->exec($createQuery);
		$datos = cls_Group_Almacen_General::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO almacen_general (almacen_general_id, compra_id, compra_producto_id, producto_id, moneda_codigo, igv_porcentaje, valor_ganancia, precio_compra, precio_venta, precio_minimo, unidades, ubicacion, fecha_vencimiento, tipo_movimiento, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:almacen_general_id, :compra_id, :compra_producto_id, :producto_id, :moneda_codigo, :igv_porcentaje, :valor_ganancia, :precio_compra, :precio_venta, :precio_minimo, :unidades, :ubicacion, :fecha_vencimiento, :tipo_movimiento, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':almacen_general_id', $datos->get_almacen_general_id($idx), SQLITE3_TEXT);
				$statement->bindValue(':compra_id', $datos->get_compra_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':compra_producto_id', $datos->get_compra_producto_id($idx), SQLITE3_TEXT);
				$statement->bindValue(':producto_id', $datos->get_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_INTEGER);
				$statement->bindValue(':valor_ganancia', $datos->get_valor_ganancia($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_compra', $datos->get_precio_compra($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_venta', $datos->get_precio_venta($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_minimo', $datos->get_precio_minimo($idx), SQLITE3_FLOAT);
				$statement->bindValue(':unidades', $datos->get_unidades($idx), SQLITE3_INTEGER);
				$statement->bindValue(':ubicacion', $datos->get_ubicacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_vencimiento', $datos->get_fecha_vencimiento($idx), SQLITE3_TEXT);
				$statement->bindValue(':tipo_movimiento', $datos->get_tipo_movimiento($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_almacen_tienda($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS almacen_tienda (
			almacen_tienda_id INTEGER PRIMARY KEY NOT NULL,
			almacen_general_id INTEGER,
			movimiento_producto_id INTEGER NOT NULL,
			tienda_id INTEGER,
			producto_id INTEGER,
			moneda_codigo TEXT NOT NULL,
			igv_porcentaje REAL NOT NULL,
			precio_compra REAL NOT NULL,
			precio_venta REAL,
			precio_minimo REAL,
			unidades INTEGER,
			fecha_vencimiento DATE NOT NULL,
			ubicacion TEXT,
			tipo_movimiento TEXT,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Almacen_Tienda::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO almacen_tienda (almacen_tienda_id, almacen_general_id, movimiento_producto_id, tienda_id, producto_id, moneda_codigo, igv_porcentaje, precio_compra, precio_venta, precio_minimo, unidades, fecha_vencimiento, ubicacion, tipo_movimiento, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:almacen_tienda_id, :almacen_general_id, :movimiento_producto_id, :tienda_id, :producto_id, :moneda_codigo, :igv_porcentaje, :precio_compra, :precio_venta, :precio_minimo, :unidades, :fecha_vencimiento, :ubicacion, :tipo_movimiento, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':almacen_tienda_id', $datos->get_almacen_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':almacen_general_id', $datos->get_almacen_general_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':movimiento_producto_id', $datos->get_movimiento_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_FLOAT);
				$statement->bindValue(':tienda_id', $datos->get_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':producto_id', $datos->get_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':precio_compra', $datos->get_precio_compra($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_venta', $datos->get_precio_venta($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_minimo', $datos->get_precio_minimo($idx), SQLITE3_FLOAT);
				$statement->bindValue(':unidades', $datos->get_unidades($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_vencimiento', $datos->get_fecha_vencimiento($idx), SQLITE3_TEXT);
				$statement->bindValue(':ubicacion', $datos->get_ubicacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':tipo_movimiento', $datos->get_tipo_movimiento($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_categoria($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS categoria (
			categoria_id INTEGER PRIMARY KEY NOT NULL,
			codigo TEXT,
			nombre TEXT,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Categoria::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO categoria (categoria_id, codigo, nombre, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:categoria_id, :codigo, :nombre, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':categoria_id', $datos->get_categoria_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':codigo', $datos->get_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':nombre', $datos->get_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_compra($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS compra (
			compra_id INTEGER PRIMARY KEY NOT NULL,
			fecha DATETIME,
			operacion TEXT,
			comprobante TEXT,
			numero TEXT,
			proveedor_id INTEGER,
			responsable_id INTEGER,
			moneda_codigo TEXT NOT NULL,
			igv_porcentaje REAL NOT NULL,
			estado_registro TEXT,
			observaciones TEXT,
			costo_total REAL NOT NULL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Compra::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO compra (compra_id, fecha, operacion, comprobante, numero, proveedor_id, responsable_id, moneda_codigo, igv_porcentaje, estado_registro, observaciones, costo_total, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:compra_id, :fecha, :operacion, :comprobante, :numero, :proveedor_id, :responsable_id, :moneda_codigo, :igv_porcentaje, :estado_registro, :observaciones, :costo_total, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':compra_id', $datos->get_compra_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha', $datos->get_fecha($idx), SQLITE3_INTEGER);
				$statement->bindValue(':operacion', $datos->get_operacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':comprobante', $datos->get_comprobante($idx), SQLITE3_INTEGER);
				$statement->bindValue(':numero', $datos->get_numero($idx), SQLITE3_INTEGER);
				$statement->bindValue(':proveedor_id', $datos->get_proveedor_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':responsable_id', $datos->get_responsable_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':estado_registro', $datos->get_estado_registro($idx), SQLITE3_INTEGER);
				$statement->bindValue(':observaciones', $datos->get_observaciones($idx), SQLITE3_INTEGER);
				$statement->bindValue(':costo_total', $datos->get_costo_total($idx), SQLITE3_FLOAT);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_INTEGER);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_FLOAT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_compra_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS compra_producto (
			compra_producto_id INTEGER PRIMARY KEY NOT NULL,
			compra_id INTEGER,
			producto_id INTEGER,
			moneda_codigo TEXT,
			igv_porcentaje REAL NOT NULL,
			valor_ganancia REAL NOT NULL,
			precio_compra REAL,
			precio_venta REAL,
			precio_minimo REAL,
			unidades TEXT,
			ubicacion TEXT,
			fecha_vencimiento DATE,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Compra_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO compra_producto (compra_producto_id, compra_id, producto_id, moneda_codigo, igv_porcentaje, valor_ganancia, precio_compra, precio_venta, precio_minimo, unidades, ubicacion, fecha_vencimiento, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:compra_producto_id, :compra_id, :producto_id, :moneda_codigo, :igv_porcentaje, :valor_ganancia, :precio_compra, :precio_venta, :precio_minimo, :unidades, :ubicacion, :fecha_vencimiento, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':compra_producto_id', $datos->get_compra_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':compra_id', $datos->get_compra_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':producto_id', $datos->get_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_FLOAT);
				$statement->bindValue(':valor_ganancia', $datos->get_valor_ganancia($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_compra', $datos->get_precio_compra($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_venta', $datos->get_precio_venta($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_minimo', $datos->get_precio_minimo($idx), SQLITE3_FLOAT);
				$statement->bindValue(':unidades', $datos->get_unidades($idx), SQLITE3_INTEGER);
				$statement->bindValue(':ubicacion', $datos->get_ubicacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_vencimiento', $datos->get_fecha_vencimiento($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_control_movimiento($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS control_movimiento (
		  control_movimiento_id INTEGER PRIMARY KEY,
		  tienda_id INTEGER NOT NULL,
		  origen_id INTEGER NOT NULL,
		  destino_id INTEGER NOT NULL,
		  almacen_general_id INTEGER NOT NULL,
		  almacen_tienda_id INTEGER NOT NULL,
		  movimiento_id INTEGER NOT NULL,
		  movimiento_producto_id INTEGER NOT NULL,
		  producto_id INTEGER NOT NULL,
		  unidades INTEGER NOT NULL,
		  tipo_movimiento TEXT NOT NULL,
		  estado TEXT NOT NULL,
		  movimiento_fecha DATETIME NOT NULL,
		  usuario_modificacion INTEGER NOT NULL,
		  fecha_creacion DATETIME NOT NULL,
		  fecha_modificacion DATETIME NOT NULL,
		  activo INTEGER NOT NULL
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Control_Movimiento::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO control_movimiento (control_movimiento_id, tienda_id, origen_id, destino_id, almacen_general_id, almacen_tienda_id, movimiento_id, movimiento_producto_id, producto_id, unidades, tipo_movimiento, estado, movimiento_fecha, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:control_movimiento_id, :tienda_id, :origen_id, :destino_id, :almacen_general_id, :almacen_tienda_id, :movimiento_id, :movimiento_producto_id, :producto_id, :unidades, :tipo_movimiento, :estado, :movimiento_fecha, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':control_movimiento_id', $datos->get_control_movimiento_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':tienda_id', $datos->get_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':origen_id', $datos->get_origen_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':destino_id', $datos->get_destino_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':almacen_general_id', $datos->get_almacen_general_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':almacen_tienda_id', $datos->get_almacen_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':movimiento_id', $datos->get_movimiento_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':movimiento_producto_id', $datos->get_movimiento_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':producto_id', $datos->get_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':unidades', $datos->get_unidades($idx), SQLITE3_INTEGER);
				$statement->bindValue(':tipo_movimiento', $datos->get_tipo_movimiento($idx), SQLITE3_TEXT);
				$statement->bindValue(':estado', $datos->get_estado($idx), SQLITE3_TEXT);
				$statement->bindValue(':movimiento_fecha', $datos->get_movimiento_fecha($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_moneda($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS moneda (
			moneda_id INTEGER PRIMARY KEY NOT NULL,
			nombre TEXT,
			codigo TEXT NOT NULL,
			simbolo TEXT,
			cambio REAL NOT NULL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Moneda::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO moneda (moneda_id, nombre, codigo, simbolo, cambio, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:moneda_id, :nombre, :codigo, :simbolo, :cambio, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':moneda_id', $datos->get_moneda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':nombre', $datos->get_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':codigo', $datos->get_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':simbolo', $datos->get_simbolo($idx), SQLITE3_TEXT);
				$statement->bindValue(':cambio', $datos->get_cambio($idx), SQLITE3_FLOAT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_movimiento($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS movimiento (
			movimiento_id INTEGER PRIMARY KEY NOT NULL,
			origen_id INTEGER NOT NULL,
			fecha DATE NOT NULL,
			hora TEXT NOT NULL,
			tipo_movimiento TEXT NOT NULL,
			destino_id INTEGER NOT NULL,
			estado_proceso TEXT NOT NULL,
			estado_registro TEXT NOT NULL,
			usuario_modificacion INTEGER NOT NULL,
			fecha_creacion DATETIME NOT NULL,
			fecha_modificacion DATETIME NOT NULL,
			activo INTEGER NOT NULL
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Movimiento::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO movimiento (movimiento_id, origen_id, fecha, hora, tipo_movimiento, destino_id, estado_proceso, estado_registro, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:movimiento_id, :origen_id, :fecha, :hora, :tipo_movimiento, :destino_id, :estado_proceso, :estado_registro, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':movimiento_id', $datos->get_movimiento_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':origen_id', $datos->get_origen_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha', $datos->get_fecha($idx), SQLITE3_TEXT);
				$statement->bindValue(':hora', $datos->get_hora($idx), SQLITE3_TEXT);
				$statement->bindValue(':tipo_movimiento', $datos->get_tipo_movimiento($idx), SQLITE3_TEXT);
				$statement->bindValue(':destino_id', $datos->get_destino_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':estado_registro', $datos->get_estado_registro($idx), SQLITE3_TEXT);
				$statement->bindValue(':estado_proceso', $datos->get_estado_proceso($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_movimiento_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS movimiento_producto (
			movimiento_producto_id INTEGER PRIMARY KEY NOT NULL,
			movimiento_id INTEGER NOT NULL,
			almacen_id INTEGER NOT NULL,
			producto_id INTEGER NOT NULL,
			moneda_codigo TEXT NOT NULL,
			igv_porcentaje REAL NOT NULL,
			precio_compra REAL NOT NULL,
			precio_venta REAL NOT NULL,
			precio_minimo REAL NOT NULL,
			unidades INTEGER NOT NULL,
			fecha_vencimiento DATE NOT NULL,
			usuario_modificacion INTEGER NOT NULL,
			fecha_creacion DATETIME NOT NULL,
			fecha_modificacion DATETIME NOT NULL,
			activo INTEGER NOT NULL
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Movimiento_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO movimiento_producto (movimiento_producto_id, movimiento_id, almacen_id, producto_id, moneda_codigo, igv_porcentaje, precio_compra, precio_venta, precio_minimo, unidades, fecha_vencimiento, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:movimiento_producto_id, :movimiento_id, :almacen_id, :producto_id, :moneda_codigo, :igv_porcentaje, :precio_compra, :precio_venta, :precio_minimo, :unidades, :fecha_vencimiento, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':movimiento_producto_id', $datos->get_movimiento_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':movimiento_id', $datos->get_movimiento_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':almacen_id', $datos->get_almacen_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':producto_id', $datos->get_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_compra', $datos->get_precio_compra($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_venta', $datos->get_precio_venta($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_minimo', $datos->get_precio_minimo($idx), SQLITE3_FLOAT);
				$statement->bindValue(':unidades', $datos->get_unidades($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_vencimiento', $datos->get_fecha_vencimiento($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS producto (
			producto_id INTEGER PRIMARY KEY NOT NULL,
			nombre TEXT,
			nombre_alternativo TEXT NOT NULL,
			imagen TEXT,
			codigo TEXT,
			codigo_barras TEXT,
			codigo_almacen TEXT,
			categoria_id INTEGER,
			unidad_medida_id INTEGER,
			fabricante TEXT,
			modelo TEXT,
			serie TEXT NOT NULL,
			peso REAL,
			stock_minimo INTEGER,
			producto_unitario_id INTEGER,
			producto_fracciones INTEGER,
			estado TEXT NOT NULL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO producto (producto_id, nombre, nombre_alternativo, imagen, codigo, codigo_barras, codigo_almacen, categoria_id, unidad_medida_id, fabricante, modelo, serie, peso, stock_minimo, producto_unitario_id, producto_fracciones, estado, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:producto_id, :nombre, :nombre_alternativo, :imagen, :codigo, :codigo_barras, :codigo_almacen, :categoria_id, :unidad_medida_id, :fabricante, :modelo, :serie, :peso, :stock_minimo, :producto_unitario_id, :producto_fracciones, :estado, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':producto_id', $datos->get_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':nombre', $datos->get_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':nombre_alternativo', $datos->get_nombre_alternativo($idx), SQLITE3_TEXT);
				$statement->bindValue(':imagen', $datos->get_imagen($idx), SQLITE3_TEXT);
				$statement->bindValue(':codigo', $datos->get_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':codigo_barras', $datos->get_codigo_barras($idx), SQLITE3_TEXT);
				$statement->bindValue(':codigo_almacen', $datos->get_codigo_almacen($idx), SQLITE3_TEXT);
				$statement->bindValue(':categoria_id', $datos->get_categoria_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':unidad_medida_id', $datos->get_unidad_medida_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fabricante', $datos->get_fabricante($idx), SQLITE3_TEXT);
				$statement->bindValue(':modelo', $datos->get_modelo($idx), SQLITE3_TEXT);
				$statement->bindValue(':serie', $datos->get_serie($idx), SQLITE3_TEXT);
				$statement->bindValue(':peso', $datos->get_peso($idx), SQLITE3_FLOAT);
				$statement->bindValue(':stock_minimo', $datos->get_stock_minimo($idx), SQLITE3_INTEGER);
				$statement->bindValue(':producto_unitario_id', $datos->get_producto_unitario_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':producto_fracciones', $datos->get_producto_fracciones($idx), SQLITE3_INTEGER);
				$statement->bindValue(':estado', $datos->get_estado($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_proforma($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS proforma (
			proforma_id INTEGER PRIMARY KEY NOT NULL,
			tienda_id INTEGER NOT NULL,
			vendedor_id INTEGER NOT NULL,
			fecha TEXT,
			hora TEXT,
			cliente_nombre TEXT,
			cliente_documento_tipo TEXT NOT NULL,
			cliente_documento_numero TEXT NOT NULL,
			comprobante TEXT,
			serie TEXT,
			moneda_codigo TEXT NOT NULL,
			igv_porcentaje REAL NOT NULL,
			observaciones TEXT,
			subtotal REAL,
			igv REAL,
			total REAL,
			estado_registro TEXT NOT NULL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Proforma::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO proforma (proforma_id, tienda_id, vendedor_id, fecha, hora, cliente_nombre, cliente_documento_tipo, cliente_documento_numero, comprobante, serie, moneda_codigo, igv_porcentaje, observaciones, subtotal, igv, total, estado_registro, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:proforma_id, :tienda_id, :vendedor_id, :fecha, :hora, :cliente_nombre, :cliente_documento_tipo, :cliente_documento_numero, :comprobante, :serie, :moneda_codigo, :igv_porcentaje, :observaciones, :subtotal, :igv, :total, :estado_registro, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':proforma_id', $datos->get_proforma_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':tienda_id', $datos->get_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':vendedor_id', $datos->get_vendedor_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha', $datos->get_fecha($idx), SQLITE3_TEXT);
				$statement->bindValue(':hora', $datos->get_hora($idx), SQLITE3_TEXT);
				$statement->bindValue(':cliente_nombre', $datos->get_cliente_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':cliente_documento_tipo', $datos->get_cliente_documento_tipo($idx), SQLITE3_TEXT);
				$statement->bindValue(':cliente_documento_numero', $datos->get_cliente_documento_numero($idx), SQLITE3_TEXT);
				$statement->bindValue(':comprobante_tipo', $datos->get_comprobante_tipo($idx), SQLITE3_TEXT);
				$statement->bindValue(':comprobante_numero', $datos->get_comprobante_numero($idx), SQLITE3_TEXT);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_FLOAT);
				$statement->bindValue(':observaciones', $datos->get_observaciones($idx), SQLITE3_TEXT);
				$statement->bindValue(':costo_subtotal', $datos->get_costo_subtotal($idx), SQLITE3_FLOAT);
				$statement->bindValue(':costo_igv', $datos->get_costo_igv($idx), SQLITE3_FLOAT);
				$statement->bindValue(':costo_total', $datos->get_costo_total($idx), SQLITE3_FLOAT);
				$statement->bindValue(':estado_registro', $datos->get_estado_registro($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_proforma_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS proforma_producto (
			proforma_producto_id INTEGER PRIMARY KEY NOT NULL,
			proforma_id INTEGER,
			moneda_codigo TEXT NOT NULL,
			igv_porcentaje REAL NOT NULL,
			almacen_id INTEGER,
			almacen_tienda_id INTEGER,
			producto_id INTEGER NOT NULL,
			unidades INTEGER,
			precio_almacen REAL NOT NULL,
			precio_venta REAL,
			precio_subtotal REAL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Proforma_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO proforma_producto (proforma_producto_id, proforma_id, moneda_codigo, igv_porcentaje, almacen_id, almacen_tienda_id, producto_id, unidades, precio_almacen, precio_venta, precio_subtotal, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:proforma_producto_id, :proforma_id, :moneda_codigo, :igv_porcentaje, :almacen_id, :almacen_tienda_id, :producto_id, :unidades, :precio_almacen, :precio_venta, :precio_subtotal, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':proforma_producto_id', $datos->get_proforma_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':proforma_id', $datos->get_proforma_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_FLOAT);
				$statement->bindValue(':almacen_id', $datos->get_almacen_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':almacen_tienda_id', $datos->get_almacen_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':producto_id', $datos->get_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':unidades', $datos->get_unidades($idx), SQLITE3_INTEGER);
				$statement->bindValue(':precio_almacen', $datos->get_precio_almacen($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_venta', $datos->get_precio_venta($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_subtotal', $datos->get_precio_subtotal($idx), SQLITE3_FLOAT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_proveedor($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS proveedor (
			proveedor_id INTEGER PRIMARY KEY NOT NULL,
			nombre TEXT,
			documento_tipo TEXT,
			documento_numero TEXT,
			direccion TEXT,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Proveedor::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO proveedor (proveedor_id, nombre, documento_tipo, documento_numero, direccion, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:proveedor_id, :nombre, :documento_tipo, :documento_numero, :direccion, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':proveedor_id', $datos->get_proveedor_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':nombre', $datos->get_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':documento_tipo', $datos->get_documento_tipo($idx), SQLITE3_TEXT);
				$statement->bindValue(':documento_numero', $datos->get_documento_numero($idx), SQLITE3_TEXT);
				$statement->bindValue(':direccion', $datos->get_direccion($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_responsable($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS responsable (
			responsable_id INTEGER PRIMARY KEY NOT NULL,
			nombre TEXT NOT NULL,
			documento_tipo TEXT NOT NULL,
			documento_numero TEXT NOT NULL,
			direccion TEXT NOT NULL,
			usuario_modificacion INTEGER NOT NULL,
			fecha_creacion DATETIME NOT NULL,
			fecha_modificacion DATETIME NOT NULL,
			activo INTEGER NOT NULL
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Responsable::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO responsable (responsable_id, nombre, documento_tipo, documento_numero, direccion, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:responsable_id, :nombre, :documento_tipo, :documento_numero, :direccion, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':responsable_id', $datos->get_responsable_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':nombre', $datos->get_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':documento_tipo', $datos->get_documento_tipo($idx), SQLITE3_TEXT);
				$statement->bindValue(':documento_numero', $datos->get_documento_numero($idx), SQLITE3_TEXT);
				$statement->bindValue(':direccion', $datos->get_direccion($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_tienda($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS tienda (
			tienda_id INTEGER PRIMARY KEY NOT NULL,
			nombre TEXT,
			imagen TEXT,
			ubicacion TEXT,
			telefono TEXT,
			observaciones TEXT,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Tienda::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO tienda (tienda_id, nombre, imagen, ubicacion, telefono, observaciones, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:tienda_id, :nombre, :imagen, :ubicacion, :telefono, :observaciones, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':tienda_id', $datos->get_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':nombre', $datos->get_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':imagen', $datos->get_imagen($idx), SQLITE3_TEXT);
				$statement->bindValue(':ubicacion', $datos->get_ubicacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':telefono', $datos->get_telefono($idx), SQLITE3_TEXT);
				$statement->bindValue(':observaciones', $datos->get_observaciones($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_unidad_medida($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS unidad_medida (
			unidad_medida_id INTEGER PRIMARY KEY NOT NULL,
			nombre TEXT,
			simbolo TEXT NOT NULL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Unidad_Medida::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO unidad_medida (unidad_medida_id, nombre, simbolo, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:unidad_medida_id, :nombre, :simbolo, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':unidad_medida_id', $datos->get_unidad_medida_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':nombre', $datos->get_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':simbolo', $datos->get_simbolo($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_usuario($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS usuario (
			usuario_id INTEGER PRIMARY KEY NOT NULL,
			tipo TEXT,
			usuario TEXT,
			password TEXT,
			foto TEXT,
			nombres TEXT,
			documento_tipo TEXT,
			documento_numero TEXT,
			telefono TEXT,
			correo TEXT,
			direccion TEXT,
			tienda_id INTEGER NOT NULL,
			estado_actividad TEXT,
			permisos TEXT NOT NULL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Usuario::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO usuario (usuario_id, tipo, usuario, password, foto, nombres, documento_tipo, documento_numero, telefono, correo, direccion, tienda_id, estado_actividad, permisos, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:usuario_id, :tipo, :usuario, :password, :foto, :nombres, :documento_tipo, :documento_numero, :telefono, :correo, :direccion, :tienda_id, :estado_actividad, :permisos, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':usuario_id', $datos->get_usuario_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':tipo', $datos->get_tipo($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario', $datos->get_usuario($idx), SQLITE3_TEXT);
				$statement->bindValue(':password', $datos->get_password($idx), SQLITE3_TEXT);
				$statement->bindValue(':foto', $datos->get_foto($idx), SQLITE3_TEXT);
				$statement->bindValue(':nombres', $datos->get_nombres($idx), SQLITE3_TEXT);
				$statement->bindValue(':documento_tipo', $datos->get_documento_tipo($idx), SQLITE3_TEXT);
				$statement->bindValue(':documento_numero', $datos->get_documento_numero($idx), SQLITE3_TEXT);
				$statement->bindValue(':telefono', $datos->get_telefono($idx), SQLITE3_TEXT);
				$statement->bindValue(':correo', $datos->get_correo($idx), SQLITE3_TEXT);
				$statement->bindValue(':direccion', $datos->get_direccion($idx), SQLITE3_TEXT);
				$statement->bindValue(':tienda_id', $datos->get_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':estado_actividad', $datos->get_estado_actividad($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':permisos', $datos->get_permisos($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_venta($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS venta (
			venta_id INTEGER PRIMARY KEY NOT NULL,
			tienda_id INTEGER NOT NULL,
			vendedor_id INTEGER NOT NULL,
			venta_base_id INTEGER NOT NULL,
			venta_derivado_id INTEGER NOT NULL,
			fecha TEXT,
			hora TEXT,
			cliente_nombre TEXT,
			cliente_documento_tipo TEXT NOT NULL,
			cliente_documento_numero TEXT NOT NULL,
			comprobante TEXT,
			serie TEXT,
			tipo_pago TEXT,
			moneda_codigo TEXT NOT NULL,
			igv_porcentaje REAL NOT NULL,
			observaciones TEXT,
			subtotal REAL,
			igv REAL,
			total REAL,
			estado_registro TEXT NOT NULL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Venta::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO venta (venta_id, tienda_id, vendedor_id, venta_base_id, venta_derivado_id, fecha, hora, cliente_nombre, cliente_documento_tipo, cliente_documento_numero, comprobante, serie, tipo_pago, moneda_codigo, igv_porcentaje, observaciones, subtotal, igv, total, estado_registro, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:venta_id, :tienda_id, :vendedor_id, :venta_base_id, :venta_derivado_id, :fecha, :hora, :cliente_nombre, :cliente_documento_tipo, :cliente_documento_numero, :comprobante, :serie, :tipo_pago, :moneda_codigo, :igv_porcentaje, :observaciones, :subtotal, :igv, :total, :estado_registro, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':venta_id', $datos->get_venta_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':tienda_id', $datos->get_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':venta_base_id', $datos->get_venta_base_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':venta_derivado_id', $datos->get_venta_derivado_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':vendedor_id', $datos->get_vendedor_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha', $datos->get_fecha($idx), SQLITE3_TEXT);
				$statement->bindValue(':hora', $datos->get_hora($idx), SQLITE3_TEXT);
				$statement->bindValue(':cliente_nombre', $datos->get_cliente_nombre($idx), SQLITE3_TEXT);
				$statement->bindValue(':cliente_documento_tipo', $datos->get_cliente_documento_tipo($idx), SQLITE3_TEXT);
				$statement->bindValue(':cliente_documento_numero', $datos->get_cliente_documento_numero($idx), SQLITE3_TEXT);
				$statement->bindValue(':comprobante_tipo', $datos->get_comprobante_tipo($idx), SQLITE3_TEXT);
				$statement->bindValue(':comprobante_numero', $datos->get_comprobante_numero($idx), SQLITE3_TEXT);
				$statement->bindValue(':tipo_pago', $datos->get_tipo_pago($idx), SQLITE3_TEXT);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_FLOAT);
				$statement->bindValue(':observaciones', $datos->get_observaciones($idx), SQLITE3_TEXT);
				$statement->bindValue(':costo_subtotal', $datos->get_costo_subtotal($idx), SQLITE3_FLOAT);
				$statement->bindValue(':costo_igv', $datos->get_costo_igv($idx), SQLITE3_FLOAT);
				$statement->bindValue(':costo_total', $datos->get_costo_total($idx), SQLITE3_FLOAT);
				$statement->bindValue(':estado_registro', $datos->get_estado_registro($idx), SQLITE3_TEXT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}
function exportar_venta_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../archivos/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$createQuery = "CREATE TABLE IF NOT EXISTS venta_producto (
			venta_producto_id INTEGER PRIMARY KEY NOT NULL,
			venta_id INTEGER,
			moneda_codigo TEXT NOT NULL,
			igv_porcentaje REAL NOT NULL,
			almacen_id INTEGER,
			almacen_tienda_id INTEGER,
			producto_id INTEGER NOT NULL,
			unidades INTEGER,
			precio_almacen REAL NOT NULL,
			precio_venta REAL,
			precio_subtotal REAL,
			usuario_modificacion INTEGER,
			fecha_creacion DATETIME,
			fecha_modificacion DATETIME,
			activo INTEGER
		);";
		$db->exec($createQuery);
		$datos = cls_Group_Venta_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos($indice, $cantidad);
		if ($datos->get_cantidad_cargados() > 0){
			$query = "INSERT INTO venta_producto (venta_producto_id, venta_id, moneda_codigo, igv_porcentaje, almacen_id, almacen_tienda_id, producto_id, unidades, precio_almacen, precio_venta, precio_subtotal, usuario_modificacion, fecha_creacion, fecha_modificacion, activo) VALUES (:venta_producto_id, :venta_id, :moneda_codigo, :igv_porcentaje, :almacen_id, :almacen_tienda_id, :producto_id, :unidades, :precio_almacen, :precio_venta, :precio_subtotal, :usuario_modificacion, :fecha_creacion, :fecha_modificacion, :activo)";
			for ($idx=0; $idx<$datos->get_cantidad_cargados(); $idx++){
				$statement = $db->prepare($query);
				$statement->bindValue(':venta_producto_id', $datos->get_venta_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':venta_id', $datos->get_venta_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':moneda_codigo', $datos->get_moneda_codigo($idx), SQLITE3_TEXT);
				$statement->bindValue(':igv_porcentaje', $datos->get_igv_porcentaje($idx), SQLITE3_FLOAT);
				$statement->bindValue(':almacen_id', $datos->get_almacen_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':almacen_tienda_id', $datos->get_almacen_tienda_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':producto_id', $datos->get_producto_id($idx), SQLITE3_INTEGER);
				$statement->bindValue(':unidades', $datos->get_unidades($idx), SQLITE3_INTEGER);
				$statement->bindValue(':precio_almacen', $datos->get_precio_almacen($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_venta', $datos->get_precio_venta($idx), SQLITE3_FLOAT);
				$statement->bindValue(':precio_subtotal', $datos->get_precio_subtotal($idx), SQLITE3_FLOAT);
				$statement->bindValue(':usuario_modificacion', $datos->get_usuario_modificacion($idx), SQLITE3_INTEGER);
				$statement->bindValue(':fecha_creacion', $datos->get_fecha_creacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':fecha_modificacion', $datos->get_fecha_modificacion($idx), SQLITE3_TEXT);
				$statement->bindValue(':activo', $datos->get_activo($idx), SQLITE3_INTEGER);
				$result = $statement->execute();
			}
			$db->close();
			return $datos->get_cantidad_cargados();
		} else {
			$db->close();
			return 0;
		}
	}
}

function importar_almacen_general($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM almacen_general LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Almacen_General::Indice($row['almacen_general_id']);
			$datos->set_almacen_general_id($row['almacen_general_id']);
			$datos->set_compra_id($row['compra_id']);
			$datos->set_compra_producto_id($row['compra_producto_id']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_producto_id($row['producto_id']);
			$datos->set_valor_ganancia($row['valor_ganancia']);
			$datos->set_precio_compra($row['precio_compra']);
			$datos->set_precio_venta($row['precio_venta']);
			$datos->set_precio_minimo($row['precio_minimo']);
			$datos->set_unidades($row['unidades']);
			$datos->set_ubicacion($row['ubicacion']);
			$datos->set_fecha_vencimiento($row['fecha_vencimiento']);
			$datos->set_tipo_movimiento($row['tipo_movimiento']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_almacen_tienda($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM almacen_tienda LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Almacen_Tienda::Indice($row['almacen_tienda_id']);
			$datos->set_almacen_tienda_id($row['almacen_tienda_id']);
			$datos->set_almacen_general_id($row['almacen_general_id']);
			$datos->set_movimiento_producto_id($row['movimiento_producto_id']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_tienda_id($row['tienda_id']);
			$datos->set_producto_id($row['producto_id']);
			$datos->set_precio_compra($row['precio_compra']);
			$datos->set_precio_venta($row['precio_venta']);
			$datos->set_precio_minimo($row['precio_minimo']);
			$datos->set_unidades($row['unidades']);
			$datos->set_fecha_vencimiento($row['fecha_vencimiento']);
			$datos->set_ubicacion($row['ubicacion']);
			$datos->set_tipo_movimiento($row['tipo_movimiento']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_categoria($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM categoria LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Categoria::Indice($row['categoria_id']);
			$datos->set_categoria_id($row['categoria_id']);
			$datos->set_codigo($row['codigo']);
			$datos->set_nombre($row['nombre']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_compra($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM compra LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Compra::Indice($row['compra_id']);
			$datos->set_compra_id($row['compra_id']);
			$datos->set_fecha($row['fecha']);
			$datos->set_operacion($row['operacion']);
			$datos->set_comprobante($row['comprobante']);
			$datos->set_numero($row['numero']);
			$datos->set_proveedor_id($row['proveedor_id']);
			$datos->set_responsable_id($row['responsable_id']);
			$datos->set_estado_registro($row['estado_registro']);
			$datos->set_observaciones($row['observaciones']);
			$datos->set_costo_total($row['costo_total']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_compra_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM compra_producto LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Compra_Producto::Indice($row['compra_producto_id']);
			$datos->set_compra_producto_id($row['compra_producto_id']);
			$datos->set_compra_id($row['compra_id']);
			$datos->set_producto_id($row['producto_id']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_valor_ganancia($row['valor_ganancia']);
			$datos->set_precio_compra($row['precio_compra']);
			$datos->set_precio_venta($row['precio_venta']);
			$datos->set_precio_minimo($row['precio_minimo']);
			$datos->set_unidades($row['unidades']);
			$datos->set_ubicacion($row['ubicacion']);
			$datos->set_fecha_vencimiento($row['fecha_vencimiento']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_control_movimiento($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM control_movimiento LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Control_Movimiento::Indice($row['control_movimiento_id']);
			$datos->set_control_movimiento_id($row['control_movimiento_id']);
			$datos->set_origen_id($row['origen_id']);
			$datos->set_tienda_id($row['tienda_id']);
			$datos->set_destino_id($row['destino_id']);
			$datos->set_almacen_general_id($row['almacen_general_id']);
			$datos->set_almacen_tienda_id($row['almacen_tienda_id']);
			$datos->set_movimiento_id($row['movimiento_id']);
			$datos->set_movimiento_producto_id($row['movimiento_producto_id']);
			$datos->set_producto_id($row['producto_id']);
			$datos->set_unidades($row['unidades']);
			$datos->set_tipo_movimiento($row['tipo_movimiento']);
			$datos->set_estado($row['estado']);
			$datos->set_movimiento_fecha($row['movimiento_fecha']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_moneda($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM moneda LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Moneda::Indice($row['moneda_id']);
			$datos->set_moneda_id($row['moneda_id']);
			$datos->set_nombre($row['nombre']);
			$datos->set_codigo($row['codigo']);
			$datos->set_simbolo($row['simbolo']);
			$datos->set_cambio($row['cambio']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_movimiento($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM movimiento LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Movimiento::Indice($row['movimiento_id']);
			$datos->set_movimiento_id($row['movimiento_id']);
			$datos->set_origen_id($row['origen_id']);
			$datos->set_fecha($row['fecha']);
			$datos->set_hora($row['hora']);
			$datos->set_tipo_movimiento($row['tipo_movimiento']);
			$datos->set_destino_id($row['destino_id']);
			$datos->set_estado_registro($row['estado_registro']);
			$datos->set_estado_proceso($row['estado_proceso']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_movimiento_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM movimiento_producto LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Movimiento_Producto::Indice($row['movimiento_producto_id']);
			$datos->set_movimiento_producto_id($row['movimiento_producto_id']);
			$datos->set_movimiento_id($row['movimiento_id']);
			$datos->set_almacen_id($row['almacen_id']);
			$datos->set_producto_id($row['producto_id']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_precio_compra($row['precio_compra']);
			$datos->set_precio_venta($row['precio_venta']);
			$datos->set_precio_minimo($row['precio_minimo']);
			$datos->set_unidades($row['unidades']);
			$datos->set_fecha_vencimiento($row['fecha_vencimiento']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM producto LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Producto::Indice($row['producto_id']);
			$datos->set_producto_id($row['producto_id']);
			$datos->set_nombre($row['nombre']);
			$datos->set_nombre_alternativo($row['nombre_alternativo']);
			$datos->set_imagen($row['imagen']);
			$datos->set_codigo($row['codigo']);
			$datos->set_codigo_barras($row['codigo_barras']);
			$datos->set_codigo_almacen($row['codigo_almacen']);
			$datos->set_categoria_id($row['categoria_id']);
			$datos->set_unidad_medida_id($row['unidad_medida_id']);
			$datos->set_fabricante($row['fabricante']);
			$datos->set_modelo($row['modelo']);
			$datos->set_serie($row['serie']);
			$datos->set_peso($row['peso']);
			$datos->set_stock_minimo($row['stock_minimo']);
			$datos->set_producto_unitario_id($row['producto_unitario_id']);
			$datos->set_producto_fracciones($row['producto_fracciones']);
			$datos->set_estado($row['estado']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_proforma($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM proforma LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Proforma::Indice($row['proforma_id']);
			$datos->set_proforma_id($row['proforma_id']);
			$datos->set_tienda_id($row['tienda_id']);
			$datos->set_vendedor_id($row['vendedor_id']);
			$datos->set_fecha($row['fecha']);
			$datos->set_hora($row['hora']);
			$datos->set_cliente_nombre($row['cliente_nombre']);
			$datos->set_cliente_documento_tipo($row['cliente_documento_tipo']);
			$datos->set_cliente_documento_numero($row['cliente_documento_numero']);
			$datos->set_comprobante_tipo($row['comprobante']);
			$datos->set_comprobante_numero($row['serie']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_observaciones($row['observaciones']);
			$datos->set_costo_subtotal($row['subtotal']);
			$datos->set_costo_igv($row['igv']);
			$datos->set_costo_total($row['total']);
			$datos->set_estado_registro($row['estado_registro']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_proforma_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM proforma_producto LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Proforma_Producto::Indice($row['proforma_producto_id']);
			$datos->set_proforma_producto_id($row['proforma_producto_id']);
			$datos->set_proforma_id($row['proforma_id']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_almacen_id($row['almacen_id']);
			$datos->set_almacen_tienda_id($row['almacen_tienda_id']);
			$datos->set_producto_id($row['producto_id']);
			$datos->set_unidades($row['unidades']);
			$datos->set_precio_almacen($row['precio_almacen']);
			$datos->set_precio_venta($row['precio_venta']);
			$datos->set_precio_subtotal($row['precio_subtotal']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_proveedor($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM proveedor LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Proveedor::Indice($row['proveedor_id']);
			$datos->set_proveedor_id($row['proveedor_id']);
			$datos->set_nombre($row['nombre']);
			$datos->set_documento_tipo($row['documento_tipo']);
			$datos->set_documento_numero($row['documento_numero']);
			$datos->set_direccion($row['direccion']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_responsable($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM responsable LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Responsable::Indice($row['responsable_id']);
			$datos->set_responsable_id($row['responsable_id']);
			$datos->set_nombre($row['nombre']);
			$datos->set_documento_tipo($row['documento_tipo']);
			$datos->set_documento_numero($row['documento_numero']);
			$datos->set_direccion($row['direccion']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_tienda($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM tienda LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Tienda::Indice($row['tienda_id']);
			$datos->set_tienda_id($row['tienda_id']);
			$datos->set_nombre($row['nombre']);
			$datos->set_imagen($row['imagen']);
			$datos->set_ubicacion($row['ubicacion']);
			$datos->set_telefono($row['telefono']);
			$datos->set_observaciones($row['observaciones']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_unidad_medida($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM unidad_medida LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Unidad_Medida::Indice($row['unidad_medida_id']);
			$datos->set_unidad_medida_id($row['unidad_medida_id']);
			$datos->set_nombre($row['nombre']);
			$datos->set_simbolo($row['simbolo']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_usuario($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM usuario LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Usuario::Indice($row['usuario_id']);
			$datos->set_usuario_id($row['usuario_id']);
			$datos->set_tipo($row['tipo']);
			$datos->set_usuario($row['usuario']);
			$datos->set_password($row['password']);
			$datos->set_foto($row['foto']);
			$datos->set_nombres($row['nombres']);
			$datos->set_dni($row['documento_numero']);
			$datos->set_documento_tipo($row['documento_tipo']);
			$datos->set_documento_numero($row['documento_numero']);
			$datos->set_telefono($row['telefono']);
			$datos->set_correo($row['correo']);
			$datos->set_direccion($row['direccion']);
			$datos->set_tienda_id($row['tienda_id']);
			$datos->set_estado_actividad($row['estado_actividad']);
			$datos->set_permisos($row['permisos']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_venta($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM venta LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Venta::Indice($row['venta_id']);
			$datos->set_venta_id($row['venta_id']);
			$datos->set_tienda_id($row['tienda_id']);
			$datos->set_vendedor_id($row['vendedor_id']);
			$datos->set_venta_base_id($row['venta_base_id']);
			$datos->set_venta_derivado_id($row['venta_derivado_id']);
			$datos->set_fecha($row['fecha']);
			$datos->set_hora($row['hora']);
			$datos->set_cliente_nombre($row['cliente_nombre']);
			$datos->set_cliente_documento_tipo($row['cliente_documento_tipo']);
			$datos->set_cliente_documento_numero($row['cliente_documento_numero']);
			$datos->set_comprobante_tipo($row['comprobante']);
			$datos->set_comprobante_numero($row['serie']);
			$datos->set_tipo_pago($row['tipo_pago']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_observaciones($row['observaciones']);
			$datos->set_costo_subtotal($row['subtotal']);
			$datos->set_costo_igv($row['igv']);
			$datos->set_costo_total($row['total']);
			$datos->set_estado_registro($row['estado_registro']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}
function importar_venta_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad){
	$databaseFile = "../uploads/".$archivo;
	$db = new SQLite3($databaseFile);
	if (!$db) {
		return 0;
	} else {
		$query = "SELECT * FROM venta_producto LIMIT :cantidad OFFSET :indice";
		$statement = $db->prepare($query);
		$statement->bindValue(':cantidad', $cantidad, SQLITE3_INTEGER);
		$statement->bindValue(':indice', $indice, SQLITE3_INTEGER);
		$result = $statement->execute();
		$cantidad_cargados = 0;
		while ($row = $result->fetchArray()) {
			$datos = cls_Venta_Producto::Indice($row['venta_producto_id']);
			$datos->set_venta_producto_id($row['venta_producto_id']);
			$datos->set_venta_id($row['venta_id']);
			$datos->set_moneda_codigo($row['moneda_codigo']);
			$datos->set_igv_porcentaje($row['igv_porcentaje']);
			$datos->set_almacen_id($row['almacen_id']);
			$datos->set_almacen_tienda_id($row['almacen_tienda_id']);
			$datos->set_producto_id($row['producto_id']);
			$datos->set_unidades($row['unidades']);
			$datos->set_precio_almacen($row['precio_almacen']);
			$datos->set_precio_venta($row['precio_venta']);
			$datos->set_precio_subtotal($row['precio_subtotal']);
			$datos->set_usuario_modificacion($row['usuario_modificacion']);
			$datos->set_fecha_creacion($row['fecha_creacion']);
			$datos->set_fecha_modificacion($row['fecha_modificacion']);
			$datos->set_activo($row['activo']);
			$datos->importar(0);
			$cantidad_cargados++;
		}
		$db->close();
		return $cantidad_cargados;
	}
}

function preparar_exportacion(){
	$respuestas = array("estado"=>"error", "mensaje"=>"", "fecha_export"=>"", "archivo"=>"", "lista"=>"[]");
	$lista = array();
	if (isset($_POST["fecha_min"]) && isset($_POST["fecha_max"])){
		date_default_timezone_set('America/Lima');
		$fecha_min = date("Y-m-d", strtotime("1900-01-01")); //$_POST["fecha_min"];
		$fecha_max = date("Y-m-d H:i:s"); //$_POST["fecha_max"];
		$respuestas["archivo"] = "base-de-datos ".$fecha_max.".sqlite";
		$respuestas["archivo"] = str_replace(' ', '_', $respuestas["archivo"]);
		$respuestas["archivo"] = str_replace(':', '-', $respuestas["archivo"]);
		$databaseFile = "../archivos/".$respuestas["archivo"];
		if (file_exists($databaseFile)) {
			unlink($databaseFile); //"Archivo de la base de datos existente eliminado.";
		}
		
		$datos = cls_Group_Almacen_General::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Almacen General",
			"tabla"=>"almacen_general",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Almacen_Tienda::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Almacen Tienda",
			"tabla"=>"almacen_tienda",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Categoria::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Categoria",
			"tabla"=>"categoria",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Compra::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Compra",
			"tabla"=>"compra",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Compra_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Compra producto",
			"tabla"=>"compra_producto",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Control_Movimiento::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Control Movimiento",
			"tabla"=>"control_movimiento",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Moneda::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Moneda",
			"tabla"=>"moneda",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Movimiento::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Movimiento",
			"tabla"=>"movimiento",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Movimiento_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Movimiento Producto",
			"tabla"=>"movimiento_producto",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Producto",
			"tabla"=>"producto",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Proforma::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Proforma",
			"tabla"=>"proforma",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Proforma_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Proforma Producto",
			"tabla"=>"proforma_producto",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Proveedor::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Proveedor",
			"tabla"=>"proveedor",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Responsable::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Responsable",
			"tabla"=>"responsable",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Tienda::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Tienda",
			"tabla"=>"tienda",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Unidad_Medida::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Unidad de Medida",
			"tabla"=>"unidad_medida",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Usuario::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Usuario",
			"tabla"=>"usuario",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Venta::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Venta",
			"tabla"=>"venta",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$datos = cls_Group_Venta_Producto::Export($fecha_min, $fecha_max);
		$datos->cargar_datos(0, 0);
		array_push($lista, array(
			"nombre"=>"Venta Producto",
			"tabla"=>"venta_producto",
			"indice"=>0,
			"filas"=>$datos->get_cantidad_cargados(),
		));
		$respuestas["estado"] = "ok";
		$respuestas["fecha_export"] = $fecha_max;
	} else {
		$respuestas["mensaje"] = "Ocurrió un error recibiendo los datos";
	}
	$respuestas["lista"] = $lista;
	echo(json_encode($respuestas));
}
function cargar_exportacion(){
	$respuestas = array("estado"=>"error", "mensaje"=>"", "registrados"=>0);
	if (isset($_POST["tabla"]) && isset($_POST["cantidad"]) && isset($_POST["indice"]) && isset($_POST["archivo"])){
		$archivo = $_POST["archivo"];
		$tabla = $_POST["tabla"];
		$cantidad = $_POST["cantidad"];
		$indice = $_POST["indice"];
		$fecha_min = date("Y-m-d", strtotime("1900-01-01")); //$_POST["fecha_min"];
		$fecha_max = date("Y-m-d"); //$_POST["fecha_max"];
		if (isset($_POST["fecha_max"])){
			$fecha_max = $_POST["fecha_max"];
		}
		$registrados = 0;
		if ($tabla == "almacen_general"){
			$registrados = exportar_almacen_general($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "almacen_tienda"){
			$registrados = exportar_almacen_tienda($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "categoria"){
			$registrados = exportar_categoria($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "compra"){
			$registrados = exportar_compra($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "compra_producto"){
			$registrados = exportar_compra_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "control_movimiento"){
			$registrados = exportar_control_movimiento($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "moneda"){
			$registrados = exportar_moneda($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "movimiento"){
			$registrados = exportar_movimiento($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "movimiento_producto"){
			$registrados = exportar_movimiento_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "producto"){
			$registrados = exportar_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "proforma"){
			$registrados = exportar_proforma($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "proforma_producto"){
			$registrados = exportar_proforma_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "proveedor"){
			$registrados = exportar_proveedor($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "responsable"){
			$registrados = exportar_responsable($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "tienda"){
			$registrados = exportar_tienda($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "unidad_medida"){
			$registrados = exportar_unidad_medida($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "usuario"){
			$registrados = exportar_usuario($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "venta"){
			$registrados = exportar_venta($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "venta_producto"){
			$registrados = exportar_venta_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		}
		$respuestas["estado"] = "ok";
		$respuestas["registrados"] = $registrados;
	} else {
		$respuestas["mensaje"] = "Ocurrió un error recibiendo los datos";
	}
	echo(json_encode($respuestas));
}
function preparar_importacion(){
	$respuestas = array("estado"=>"error", "mensaje"=>"", "fecha_export"=>"", "archivo"=>"", "lista"=>"[]");
	$lista = array();
	if ($_FILES['filter_import_documento']['error'] === UPLOAD_ERR_OK) {
		$uploadDirectory = "../uploads/";
		if (!file_exists($uploadDirectory) && !is_dir($uploadDirectory)) {
			if (!mkdir($uploadDirectory, 0755, true)) {
				$respuestas["mensaje"] = 'Error al crear el directorio de carga.';
				echo(json_encode($respuestas));
				exit;
			}
		}
		$tmpfilesize = isset($_FILES["filter_import_documento"]["size"]) ? $_FILES["filter_import_documento"]["size"] : 0;
		$tmpfilename = isset($_FILES["filter_import_documento"]["tmp_name"]) ? $_FILES["filter_import_documento"]["tmp_name"] : 0;
		$tmpfiletype = isset($_FILES["filter_import_documento"]["type"]) ? $_FILES["filter_import_documento"]["type"] : 0;
		$file_upload = "file_temp";
		if (move_uploaded_file($tmpfilename, $uploadDirectory.$file_upload.".sqlite")) {
			$respuestas["archivo"] = $file_upload.".sqlite";
			$respuestas["mensaje"] = 'Archivo Sqlite cargado y guardado';
			$databaseFile = $uploadDirectory.$file_upload.".sqlite";
			$db = new SQLite3($databaseFile);
			if (!$db) {
				$respuestas["mensaje"] = 'Error cargardo los datos del archivo.';
			} else {
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM almacen_general;";
				$result = $db->query($createQuery);
				array_push($lista, array(
					"nombre"=>"Almacen General",
					"tabla"=>"almacen_general",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM almacen_tienda;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Almacen Tienda",
			"tabla"=>"almacen_tienda",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM categoria;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Categoria",
			"tabla"=>"categoria",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM compra;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Compra",
			"tabla"=>"compra",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM compra_producto;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Compra producto",
			"tabla"=>"compra_producto",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM control_movimiento;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Control Movimiento",
			"tabla"=>"control_movimiento",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM moneda;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Moneda",
			"tabla"=>"moneda",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM movimiento;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Movimiento",
			"tabla"=>"movimiento",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM movimiento_producto;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Movimiento Producto",
			"tabla"=>"movimiento_producto",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM producto;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Producto",
			"tabla"=>"producto",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM proforma;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Proforma",
			"tabla"=>"proforma",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM proforma_producto;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Proforma Producto",
			"tabla"=>"proforma_producto",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM proveedor;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Proveedor",
			"tabla"=>"proveedor",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM responsable;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Responsable",
			"tabla"=>"responsable",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM tienda;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Tienda",
			"tabla"=>"tienda",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM unidad_medida;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Unidad de Medida",
			"tabla"=>"unidad_medida",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM usuario;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Usuario",
			"tabla"=>"usuario",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM venta;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Venta",
			"tabla"=>"venta",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
				$createQuery = "SELECT COUNT(*) AS cantidad_filas FROM venta_producto;";
				$result = $db->query($createQuery);
				array_push($lista, array(
			"nombre"=>"Venta Producto",
			"tabla"=>"venta_producto",
					"indice"=>0,
					"filas"=>$result->fetchArray()['cantidad_filas'],
				));
			}
			$respuestas["estado"] = "ok";
		} else {
			$respuestas["mensaje"] = 'Error al mover el archivo al directorio de carga.';
		}
	}
	$respuestas["lista"] = $lista;
	echo(json_encode($respuestas));
}
function cargar_importacion(){
	$respuestas = array("estado"=>"error", "mensaje"=>"", "registrados"=>0);
	if (isset($_POST["tabla"]) && isset($_POST["cantidad"]) && isset($_POST["indice"]) && isset($_POST["archivo"])){
		$archivo = $_POST["archivo"];
		$tabla = $_POST["tabla"];
		$cantidad = $_POST["cantidad"];
		$indice = $_POST["indice"];
		$fecha_min = date("Y-m-d", strtotime("1900-01-01")); //$_POST["fecha_min"];
		$fecha_max = date("Y-m-d"); //$_POST["fecha_max"];
		if (isset($_POST["fecha_max"])){
			$fecha_max = $_POST["fecha_max"];
		}
		$registrados = 0;
		if ($tabla == "almacen_general"){
			$registrados = importar_almacen_general($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "almacen_tienda"){
			$registrados = importar_almacen_tienda($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "categoria"){
			$registrados = importar_categoria($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "compra"){
			$registrados = importar_compra($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "compra_producto"){
			$registrados = importar_compra_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "control_movimiento"){
			$registrados = importar_control_movimiento($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "moneda"){
			$registrados = importar_moneda($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "movimiento"){
			$registrados = importar_movimiento($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "movimiento_producto"){
			$registrados = importar_movimiento_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "producto"){
			$registrados = importar_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "proforma"){
			$registrados = importar_proforma($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "proforma_producto"){
			$registrados = importar_proforma_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "proveedor"){
			$registrados = importar_proveedor($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "responsable"){
			$registrados = importar_responsable($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "tienda"){
			$registrados = importar_tienda($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "unidad_medida"){
			$registrados = importar_unidad_medida($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "usuario"){
			$registrados = importar_usuario($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "venta"){
			$registrados = importar_venta($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		} else if ($tabla == "venta_producto"){
			$registrados = importar_venta_producto($archivo, $fecha_min, $fecha_max, $indice, $cantidad);
		}
		$respuestas["estado"] = "ok";
		$respuestas["registrados"] = $registrados;
	} else {
		$respuestas["mensaje"] = "Ocurrió un error recibiendo los datos";
	}
	echo(json_encode($respuestas));
}

function listar_backups(){
	$respuestas = array("estado"=>"error", "mensaje"=>"", "lista"=>"[]");
	$lista = array();
	$directorio = "../archivos";
	$archivos_sqlite = glob($directorio . "/*.sqlite");
	foreach ($archivos_sqlite as $archivo) {
		$div = explode("/", $archivo);
		array_push($lista, $div[count($div)-1]);
	}
	$respuestas["lista"] = $lista;
	$respuestas["estado"] = "ok";
	echo(json_encode($respuestas));
}
function eliminar_backup(){
	$respuestas = array("estado"=>"error", "mensaje"=>"", "lista"=>"[]");
	if (isset($_POST["archivo"]) && isset($_SESSION["usuario_editor"]) && strlen($_POST["archivo"]) > 0){
		$archivo_a_eliminar = "../archivos/".$_POST["archivo"];
		if (file_exists($archivo_a_eliminar)) {
			if (unlink($archivo_a_eliminar)) {
				$respuestas["estado"] = "ok";
				$respuestas["mensaje"] = "Archivo eliminado correctamente.";
			} else {
				$respuestas["mensaje"] = "Error al intentar eliminar el archivo.";
			}
		} else {
			$respuestas["mensaje"] = "El archivo no existe.";
		}
	} else {
		$respuestas["mensaje"] = "Error recibiendo los datos";
	}
	echo(json_encode($respuestas));
}

if (isset($_POST["accion"])){
    if ($_POST["accion"] == "importar_tablas_datos"){
		importar_tablas_datos();
	} else if ($_POST["accion"] == "exportar_tablas_datos"){
		exportar_tablas_datos();
	} else if ($_POST["accion"] == "preparar_exportacion"){
		preparar_exportacion();
	} else if ($_POST["accion"] == "cargar_exportacion"){
		cargar_exportacion();
	} else if ($_POST["accion"] == "preparar_importacion"){
		preparar_importacion();
	} else if ($_POST["accion"] == "cargar_importacion"){
		cargar_importacion();
	} else if ($_POST["accion"] == "listar_backups"){
		listar_backups();
	} else if ($_POST["accion"] == "eliminar_backup"){
		eliminar_backup();
	}
}
?>
