/**
  * Transforma un array asociativo a un objeto del tipo CompraVenta
  *
  * @author Jonathan Sandoval     <*****@*****.**>
  * @param  Array $array          Arreglo Asociativo con los datos de una CompraVenta
  * @return CompraVenta           Objeto de tipo CompraVenta con datos del array recibido
  **/
 static function array_CompraVenta($arrayCompraVenta = array())
 {
     $tablaHerramientaComprada = constant('TABLA_HERRAMIENTA_COMPRADA');
     $CompraVenta = new CompraVenta();
     //Le ponemos los datos de lo que hemos recibido del array
     $CompraVenta->setID($arrayCompraVenta["ID"]);
     $CompraVenta->setSucursal(ControladorSucursal::obtenerSucursalID($arrayCompraVenta["Sucursal"]));
     $CompraVenta->setCliente(ControladorCliente::obtenerClienteID($arrayCompraVenta["Cliente"]));
     $CompraVenta->setEnvioDomicilio($arrayCompraVenta["Envio_Domicilio"]);
     $CompraVenta->setFacturar($arrayCompraVenta["Factura"]);
     $CompraVenta->setFecha($arrayCompraVenta["Fecha"]);
     //Obtenemos los datos de las herramientas
     $herramientaC = new HerramientaComprada();
     $herramientas = array();
     $cantidades = array();
     $identificador = $arrayCompraVenta["Herramienta_Comprada"];
     $consulta = "SELECT * \n                         FROM {$tablaHerramientaComprada}\n                         WHERE Identificador = {$identificador}";
     $res = ControladorBaseDatos::query($consulta);
     while ($row = $res->fetch_assoc()) {
         $herramientas[] = $row["ID_Herramienta"];
         $cantidades[] = $row["Cantidad"];
     }
     $herramientaC->setCantidad($cantidades);
     $herramientaC->setIDHerramienta($herramientas);
     $herramientaC->setIdentificador($identificador);
     $CompraVenta->setHerramientaComprada($herramientaC);
     return $CompraVenta;
 }
$empleado["Calle"] = $_REQUEST["calle"];
$empleado["Colonia"] = $_REQUEST["colonia"];
$empleado["NoCasa_Ext"] = $_REQUEST["exterior"];
$_REQUEST["interior"] == '' ? $empleado["NoCasa_Int"] = '0' : ($empleado["NoCasa_Int"] = $_REQUEST["interior"]);
$empleado["Password"] = sha1($_REQUEST["pass"]);
$posCiudad = intval($_REQUEST['ciudad']);
$ciudad = ControladorEmpleado::obtenerCiudades()[$posCiudad];
$empleado["Ciudad"] = $ciudad->getAbreviatura();
$posTipo = intval($_REQUEST['tipo']);
$tipo = ControladorEmpleado::obtenerTipoEmpleados()[$posTipo];
$empleado["Tipo_Empleado"] = $tipo->getAbreviatura();
$posTurno = intval($_REQUEST['turno']);
$turno = ControladorEmpleado::obtenerTurnos()[$posTurno];
$empleado["Turno"] = $turno->getAbreviatura();
$posSucursal = intval($_REQUEST['sucursal']);
$sucursal = ControladorSucursal::obtenerSucursales()[$posSucursal];
$empleado["ID_Sucursal"] = $sucursal->getID();
//Creación de un objeto del tipo empleado
$obj = ControladorEmpleado::array_Empleado($empleado);
if ($_REQUEST["accion"] == 'Agregar') {
    $posible = ControladorEmpleado::insertarEmpleado($obj);
    if ($posible) {
        echo 'OK';
    } else {
        echo 'KO';
    }
} else {
    if ($_REQUEST["accion"] == 'Modificar') {
        $id = $_REQUEST["id_modificacion"];
        ControladorEmpleado::actualizarEmpleado($id, $obj);
        echo 'OK';
<?php

require_once __DIR__ . '/../../Clases/ControladorCompraVenta.php';
if ($_REQUEST["herramientas"] == '*') {
    echo 'NO';
} else {
    //Creación de un Objeto del tipo CompraVenta
    $compra = new CompraVenta();
    //obtención del cliente
    $cliente = ControladorCliente::obtenerClientes()[$_REQUEST["cliente"]];
    $compra->setCliente($cliente);
    $sucursal = ControladorSucursal::obtenerSucursales()[$_REQUEST["sucursal"]];
    $compra->setSucursal($sucursal);
    $compra->setEnvioDomicilio($_REQUEST["domicilio"]);
    $compra->setFacturar($_REQUEST["factura"]);
    $compra->setFecha(date('Y-m-d'));
    $cantidades = $_REQUEST["cantidad"];
    $herramientas = $_REQUEST["herramientas"];
    $herramientaSelect = array();
    $cantidadesArray = array();
    $ID_Herramientas = array();
    $herramientasCompradas = new HerramientaComprada();
    $herramientasDB = ControladorHerramienta::obtenerHerramientasSinCantidad();
    $actual = "";
    //Obtenemos posiciones selecionadas
    for ($i = 0; $i < strlen($herramientas); $i++) {
        if ($herramientas[$i] == '|') {
            $herramientaSelect[] = $actual;
            $actual = "";
        } else {
            if ($herramientas[$i] == '*') {
<?php

require_once __DIR__ . '/../../Clases/ControladorSucursal.php';
//Creación de un arreglo con los datos obtenidos
$sucursal = array();
$sucursal["Calle"] = $_REQUEST['calle'];
$sucursal["NoEdificio"] = $_REQUEST['edificio'];
$sucursal["Colonia"] = $_REQUEST['colonia'];
$posCiudad = $_REQUEST['ciudad'];
$ciudad = ControladorSucursal::obtenerCiudades()[$posCiudad];
$sucursal["Ciudad"] = $ciudad->getAbreviatura();
//Creación de un objeto del tipo sucursal
$obj = ControladorSucursal::array_Sucursal($sucursal);
if ($_REQUEST["tipoAccion"] == 'Agregar') {
    $posible = ControladorSucursal::insertarSucursal($obj);
    if ($posible) {
        echo 'OK';
    } else {
        echo 'KO';
    }
} else {
    if ($_REQUEST["tipoAccion"] == 'Modificar') {
        $id = $_REQUEST["id_modificacion"];
        ControladorSucursal::actualizarSucursal($id, $obj);
        echo 'OK';
    }
}
 /**
  * Transforma un array asociativo a un objeto del tipo Empleado
  *
  * @author Jonathan Sandoval     <*****@*****.**>
  * @param  Array $array          Arreglo Asociativo con los datos de una Empleado
  * @return Empleado              Objeto de tipo Empleado con datos del array recibido
  **/
 static function array_Empleado($array = array())
 {
     //Nombre de las tablas
     $tablaCiudad = constant('TABLA_CIUDAD');
     $tablaTurno = constant('TABLA_TURNO');
     $tablaTipo = constant('TABLA_TIPOEMPLEADO');
     $tablaSuc = constant('TABLA_SUCURSAL');
     //Nombre de las abrebviaturas de cada objeto de la tabla
     $abreviaturaCiudad = $array["Ciudad"];
     $abreviaturaTipo = $array["Tipo_Empleado"];
     $abreviaturaTurno = $array["Turno"];
     isset($array["ID_Sucursal"]) ? $idSucursal = $array["ID_Sucursal"] : ($idSucursal = 0);
     //Objetos Provisionales
     $ciudad = NULL;
     $turno = NULL;
     $tipo = NULL;
     $objeto = new Empleado();
     //Establece datos de la instancia del empleado
     $objeto->setID($array["ID"]);
     $objeto->setCURP($array["CURP"]);
     $objeto->setNombre($array["Nombre"]);
     $objeto->setSegundoNombre($array["Segundo_Nombre"]);
     $objeto->setApellidoPaterno($array["Apellido_Paterno"]);
     $objeto->setApellidoMaterno($array["Apellido_Materno"]);
     $objeto->setCalle($array["Calle"]);
     $objeto->setColonia($array["Colonia"]);
     $objeto->setNoCasaExt($array["NoCasa_Ext"]);
     $objeto->setNoCasaInt($array["NoCasa_Int"]);
     $objeto->setPassword($array["Password"]);
     //Establece un objeto de tipo ciudad
     $consulta = "SELECT *\n                         FROM {$tablaCiudad}\n                         WHERE Abreviatura = '{$abreviaturaCiudad}'";
     $res = ControladorBaseDatos::query($consulta);
     if ($row = $res->fetch_assoc()) {
         $ciudad = new Ciudad();
         $ciudad->setAbreviatura($row["Abreviatura"]);
         $ciudad->setNombre($row["Nombre"]);
     }
     $objeto->setCiudad($ciudad);
     //Establece un objeto de tipo 'Tipo'
     $consulta = "SELECT *\n                         FROM {$tablaTipo}\n                         WHERE Abreviatura = '{$abreviaturaTipo}'";
     $res = ControladorBaseDatos::query($consulta);
     if ($row = $res->fetch_assoc()) {
         $tipo = new TipoEmpleado();
         $tipo->setAbreviatura($row["Abreviatura"]);
         $tipo->setNombre($row["Nombre"]);
         $tipo->setComision($row["Comision"]);
     }
     $objeto->setTipoEmpleado($tipo);
     //Establece un objeto de tipo Turno
     $consulta = "SELECT *\n                         FROM {$tablaTurno}\n                         WHERE Abreviatura = '{$abreviaturaTurno}'";
     $res = ControladorBaseDatos::query($consulta);
     if ($row = $res->fetch_assoc()) {
         $turno = new Turno();
         $turno->setAbreviatura($row["Abreviatura"]);
         $turno->setNombre($row["Nombre"]);
         $turno->setHoras($row["Horas"]);
         $turno->setInicio($row["Inicio"]);
     }
     $objeto->setTurno($turno);
     //Establece un objeto de tipo Sucursal
     $sucursal = ControladorSucursal::obtenerSucursalID($idSucursal);
     $objeto->setSucursal($sucursal);
     return $objeto;
 }
$ciudadString = $ciudadString . '<select id="aCiudad">';
foreach ($ciudades as $key => $value) {
    $ciudadString = $ciudadString . "<option id=calidad{$key}>" . $value->getNombre() . "</option>";
}
$ciudadString = $ciudadString . "</select>";
$plantilla = str_replace('|ciudades|', $ciudadString, $plantilla);
echo $plantilla;
$url = ControladorBaseDatos::getRestoURL();
if ($url != '') {
    $url = substr($url, 4);
    if (is_numeric($url)) {
        $id = intval($url);
        $Sucursal = ControladorSucursal::obtenerSucursalID($id);
        if ($Sucursal != NULL) {
            $calle = $Sucursal->getCalle();
            $colonia = $Sucursal->getColonia();
            $edificio = $Sucursal->getNoEdificio();
            //Establece datos de objetos dentro de objetos
            echo "<script>\n\t\t\t\t\t    document.getElementById('aCalle').value = '{$calle}';\n\t\t\t\t\t    document.getElementById('aNoEdificio').value = '{$edificio}';\n\t\t\t\t\t    document.getElementById('aColonia').value = '{$colonia}';";
            $ciudades = ControladorSucursal::obtenerCiudades();
            $selector = 0;
            foreach ($ciudades as $key => $value) {
                if ($value->getAbreviatura() == $Sucursal->getCiudad()->getAbreviatura()) {
                    $selector = $key;
                    break;
                }
            }
            echo "document.getElementById('aCiudad').options.selectedIndex = {$selector}; //es un select\n\t\t\t \t\t </script>";
        }
    }
}
<?php

session_start();
require_once __DIR__ . "/../Clases/ControladorBaseDatos.php";
require_once __DIR__ . "/../Clases/DesplegadorInterfaz.php";
require_once __DIR__ . "/../Clases/ControladorCliente.php";
require_once __DIR__ . "/../Clases/ControladorSucursal.php";
require_once __DIR__ . "/../Clases/ControladorHerramienta.php";
ControladorBaseDatos::validarSesionIniciada('RealizarVenta');
$plantilla = file_get_contents(__DIR__ . "/Plantillas/plantillaVenta.html");
$plantilla = str_replace('|header|', DesplegadorInterfaz::getHeader(), $plantilla);
$plantilla = str_replace('|footer|', DesplegadorInterfaz::getFooter(), $plantilla);
//Cargar Sucursales
$tipos = ControladorSucursal::obtenerSucursales();
$suc = "";
$suc = $suc . '<select id="aSucursales">';
foreach ($tipos as $key => $value) {
    $suc = $suc . "<option id=sucursal{$key}>" . $value->getColonia() . "</option>";
}
$suc = $suc . "</select>";
$plantilla = str_replace('|sucursales|', $suc, $plantilla);
//Cargar Clientes
$clientes = ControladorCliente::obtenerClientes();
$clienteS = "";
$clienteS = $clienteS . '<select id="aClientes">';
foreach ($clientes as $key => $value) {
    $clienteS = $clienteS . "<option id=cliente{$key}>" . $value->getRFC() . "</option>";
}
$clienteS = $clienteS . "</select>";
$plantilla = str_replace('|clientes|', $clienteS, $plantilla);
//Cargar Herramientas
$plantilla = str_replace('|header|', DesplegadorInterfaz::getHeader(), $plantilla);
$plantilla = str_replace('|objeto|', 'Sucursal', $plantilla);
$plantilla = str_replace('|footer|', DesplegadorInterfaz::getFooter(), $plantilla);
$inputNormal = '<input name="bNombre" type="text" id="bNombre1" class="busqueda" placeholder="Nombre Sucursal">
	<button onclick="href(\'?keyword=data\');" class="lupa"><span class="fa fa-search"></span></button>
	<button onclick="desplegar(\'busquedaAvanzada\');desplegar(\'busquedaBasica\')">Busqueda Avanzada <span class="fa fa-arrow-circle-right"></span></button>';
$inputAvanzado = '<input name="bID" type="text" id="bID" class="busqueda" placeholder="ID Sucursal">
	<input name="bCalle" type="text" id="bCalle" class="busqueda" placeholder="Calle Sucursal"><br>
	<input name="bColonia" type="text" id="bColonia" class="busqueda" placeholder="Colonia Sucursal">
	<input name="bNoEdificio" type="text" id="bNoEdificio" class="busqueda" placeholder="No Edificio">
	<input name="bCiudad" type="text" id="bCiudad" class="busqueda" placeholder="Ciudad Sucursal">
	<button onclick="href(\'?keyword_id=sucursal\');" class="lupa"><span class="fa fa-search"></span></button>
	<button onclick="desplegar(\'busquedaAvanzada\'); desplegar(\'busquedaBasica\')">Busqueda Basica <span class="fa fa-arrow-circle-left"></span></button>';
$plantilla = str_replace('|busquedaBasica|', $inputNormal, $plantilla);
$plantilla = str_replace('|busquedaAvanzada|', $inputAvanzado, $plantilla);
$sucursales = ControladorSucursal::frontEndFunctions();
$maxreg = 5;
$tabla = 'dataTable';
$tipoActual = ControladorBaseDatos::obtenerTipoUsuario();
$hidden = "";
if ($tipoActual == 'G') {
    $hidden = "hidden";
}
$conTab = $conTab . "<thead>";
$conTab = $conTab . "<tr>";
$conTab = $conTab . "<th class='text-left' onclick='decidesort(0, \"{$tabla}\"); inicializeHidden({$maxreg}, \"{$tabla}\")'>ID</th>";
$conTab = $conTab . "<th class='text-left' onclick='decidesort(1, \"{$tabla}\"); inicializeHidden({$maxreg}, \"{$tabla}\")'>Calle</th>";
$conTab = $conTab . "<th class='text-left' onclick='decidesort(2, \"{$tabla}\"); inicializeHidden({$maxreg}, \"{$tabla}\")'>Colonia</th>";
$conTab = $conTab . "<th class='text-left' onclick='decidesort(3, \"{$tabla}\"); inicializeHidden({$maxreg}, \"{$tabla}\")'>NoEdificio</th>";
$conTab = $conTab . "<th class='text-left' onclick='decidesort(4, \"{$tabla}\"); inicializeHidden({$maxreg}, \"{$tabla}\")'>Ciudad</th>";
$conTab = $conTab . "<th class='text-left' {$hidden} onclick='inicializeHidden({$maxreg}, \"{$tabla}\")' style='font-size: 15px; rowspan=2'>Operaciones</th>";