/**
  * Show the form for creating a new resource.
  * GET /admins/create
  * 
  * @return Response
  */
 public function create()
 {
     $resp = [];
     $catalogo = Input::get('catalogo');
     $msgError = $this->_validar();
     if ($msgError) {
         return Response::json($msgError, 500);
     }
     try {
         switch ($catalogo) {
             case 'Almacen':
                 $almacen = new Almacen();
                 $clave = Input::get('clave');
                 $almacen->clave = $clave;
                 $almacen->nombre = Input::get('nombre');
                 $almacen->estatus = Input::get('estatus');
                 $almacen->save();
                 $campo = "clave";
                 $resp = DB::table('almacen')->where("clave", $clave)->first();
                 break;
             case 'Cliente':
                 $usuario = new Usuario();
                 $usuario->rol_id = 1;
                 $usuario->usuario = Input::get('usuario');
                 $password = Input::get('contraseña');
                 $usuario->password = Hash::make($password);
                 $usuario->email = Input::get('email');
                 if ($usuario->save()) {
                     $cliente = new Cliente();
                     $cliente->rfc = Input::get('rfc');
                     $cliente->usuario_id = $usuario->id;
                     $cliente->agente_id = Input::get('agente_id');
                     $cliente->nivel_descuento_id = Input::get('nivel_descuento_id');
                     $cliente->nombre_cliente = Input::get('nombre');
                     $cliente->paterno = Input::get('paterno');
                     $cliente->materno = Input::get('materno');
                     $cliente->nombre_comercial = Input::get('nombre_comercial');
                     $cliente->razon_social = Input::get('razon_social');
                     $cliente->numero_cliente = date('Y') . date('m') . date("d") . date('G') . date('i') . date('s') . $cliente->usuario_id;
                     $cliente->save();
                     $resp = DB::table('cliente')->where('cliente.id', $cliente->id)->leftJoin('usuario', 'usuario.id', '=', 'cliente.usuario_id')->leftJoin('usuario as usuarioAg', 'usuarioAg.id', '=', 'cliente.agente_id')->leftJoin('Nivel_Descuento', 'Nivel_Descuento.id', '=', 'cliente.nivel_descuento_id')->select('cliente.id', 'cliente.rfc', 'cliente.nombre_cliente', 'cliente.paterno', 'cliente.materno', 'cliente.nombre_comercial', 'cliente.razon_social', 'cliente.numero_cliente', 'cliente.agente_id as idAgente', 'cliente.nivel_descuento_id as idDescuento', 'usuario.usuario', 'usuario.email', 'usuario.id as idUsuario', 'usuarioAg.usuario as agente', 'nivel_descuento.descripcion as descripcion')->first();
                     return Response::json($resp);
                 }
                 break;
             case 'TelefonoCliente':
                 $telefono = new telefonoCliente();
                 $telefono->cliente_id = Input::get('cliente_id');
                 $telefono->numero = Input::get('numero');
                 $telefono->tipo_tel = Input::get('tipo');
                 $telefono->estatus = Input::get('estatus');
                 $telefono->save();
                 $resp = DB::table('telefono_cliente')->where('id', '=', $telefono->id)->first();
                 break;
             case 'DireccionCliente':
                 $dirCliente = new DireccionCliente();
                 $dirCliente->pais_id = Input::get('pais');
                 $dirCliente->estado_id = Input::get('estado');
                 $dirCliente->municipio_id = Input::get('municipio');
                 $dirCliente->calle1 = Input::get('calle1');
                 $dirCliente->calle2 = Input::get('calle2');
                 $dirCliente->colonia = Input::get('colonia');
                 $dirCliente->delegacion = Input::get('delegacion');
                 $dirCliente->codigo_postal = Input::get('cp');
                 $dirCliente->cliente_id = Input::get('cliente_id');
                 $dirCliente->tipo = Input::get('tipoDir');
                 $dirCliente->estatus = "1";
                 $dirCliente->telefono_cliente_id = Input::get('telefonoDir');
                 $dirCliente->save();
                 $resp = DB::table('direccion_cliente as direccion')->where('direccion.id', '=', $dirCliente->id)->leftJoin('pais', 'pais.id', '=', 'direccion.pais_id')->leftJoin('estado', 'estado.id', '=', 'direccion.estado_id')->leftJoin('municipio', 'municipio.id', '=', 'direccion.municipio_id')->select('direccion.id as idDir', 'direccion.cliente_id as idCliente', 'direccion.pais_id as idPais', 'direccion.estado_id as idEstado', 'direccion.municipio_id as idMunicipio', 'direccion.calle1', 'direccion.calle2', 'direccion.colonia', 'direccion.delegacion', 'direccion.codigo_postal', 'direccion.tipo', 'direccion.estatus', 'direccion.telefono_cliente_id as idTelDir', 'pais.pais', 'estado.estados', 'municipio.municipio')->first();
                 # code...
                 break;
             case 'Comercializador':
                 $comercializador = new Comercializador();
                 $comercializador->nombre = Input::get('nombre');
                 $comercializador->save();
                 $resp = DB::table('Comercializador')->where("nombre", $comercializador->nombre)->first();
                 break;
             case 'FormaPago':
                 $formaPago = new FormaDePago();
                 $formaPago->descripcion = Input::get('descripcion');
                 $formaPago->save();
                 $resp = DB::table('forma_pago')->where('id', '=', $formaPago->id)->first();
                 break;
             case 'NivelDescuento':
                 $descuento = new nivelDescuento();
                 $descuento->descripcion = Input::get('descripcion');
                 $descuento->descuento = Input::get('descuento');
                 $descuento->estatus = Input::get('estatus');
                 $descuento->save();
                 $resp = DB::table('Nivel_Descuento')->where('id', $descuento->id)->first();
                 break;
             case 'DescuentoCliente':
                 $descuento = new nivelDescuento();
                 $descuento->descripcion = Input::get('descripcion');
                 $descuento->descuento = Input::get('descuento');
                 $descuento->estatus = 1;
                 $descuento->save();
                 $resp = DB::table('Nivel_Descuento')->where('id', $descuento->id)->first();
                 break;
             case 'UnidadMedida':
                 $unidadMedida = new UnidadMedida();
                 $unidadMedida->descripcion = Input::get('descripcion');
                 $unidadMedida->estatus = Input::get('estatus');
                 $unidadMedida->save();
                 $resp = DB::table('unidad_Medida')->where('id', '=', $unidadMedida->id)->first();
                 break;
             case 'Rol':
                 $rol = new Rol();
                 $rol->nombre = Input::get('nombre');
                 $rol->save();
                 $resp = DB::table('rol')->where('id', $rol->id)->first();
                 # code...
                 break;
             case 'Pais':
                 $pais = new Pais();
                 $pais->pais = Input::get('pais');
                 $pais->estatus = Input::get('estatus');
                 $pais->save();
                 $resp = DB::table('Pais')->where('id', $pais->id)->first();
                 break;
             case 'Estados':
                 $estado = new Estado();
                 $estado->estados = Input::get('estado');
                 $estado->pais_id = Input::get('pais');
                 $estado->estatus = Input::get('estatus');
                 $estado->save();
                 $resp['estado'] = DB::table('estado')->where('id', $estado->id)->first();
                 $resp['paises'] = DB::table('pais')->where('estatus', '=', '1')->select('pais.id', 'pais.pais')->get();
                 break;
             case 'Municipios':
                 $municipio = new Municipio();
                 $municipio->municipio = Input::get('municipio');
                 $municipio->estado_id = Input::get('estado');
                 $municipio->estatus = Input::get('estatus');
                 $municipio->save();
                 $resp['municipio'] = DB::table('municipio')->where('id', '=', $municipio->id)->first();
                 $resp['estados'] = DB::table('estado')->where('estatus', '=', '1')->select('estado.id', 'estado.estados')->get();
                 break;
             case 'Proveedor':
                 $proveedor = new Proveedor();
                 $proveedor->nombre = Input::get('nombre');
                 $proveedor->nombre_comercial = Input::get('nombreComercial');
                 $proveedor->razon_social = Input::get('razonSocial');
                 $proveedor->comercializador_id = Input::get('comercializador');
                 $proveedor->estatus = "1";
                 $proveedor->save();
                 $resp = DB::table('proveedor')->where('id', $proveedor->id)->select('proveedor.id as idProveedor', 'proveedor.nombre', 'proveedor.nombre_comercial', 'proveedor.razon_social', 'proveedor.estatus', 'proveedor.comercializador_id as idComercializador')->first();
                 break;
             case 'TelefonoProveedor':
                 $telefono = new TelefonoProveedor();
                 $telefono->proveedor_id = Input::get('idProveedor');
                 $telefono->numero = Input::get('numero');
                 $telefono->tipo_tel = Input::get('tipo');
                 $telefono->estatus = Input::get('estatus');
                 $telefono->save();
                 $resp = DB::table('telefono_proveedor')->where('id', '=', $telefono->id)->first();
                 break;
             case 'DireccionProveedor':
                 $idProveedor = new DireccionProveedor();
                 $idProveedor->pais_id = Input::get('pais');
                 $idProveedor->estado_id = Input::get('estado');
                 $idProveedor->municipio_id = Input::get('municipio');
                 $idProveedor->calle1 = Input::get('calle1');
                 $idProveedor->calle2 = Input::get('calle2');
                 $idProveedor->colonia = Input::get('colonia');
                 $idProveedor->delegacion = Input::get('delegacion');
                 $idProveedor->codigo_postal = Input::get('cp');
                 $idProveedor->proveedor_id = Input::get('idProveedor');
                 $idProveedor->tipo = Input::get('tipoDir');
                 $idProveedor->estatus = "1";
                 //$idProveedor -> telefono_cliente_id = Input::get('telefonoDir');
                 $idProveedor->save();
                 $resp = DB::table('direccion_proveedor as direccion')->where('direccion.id', '=', $idProveedor->id)->leftJoin('pais', 'pais.id', '=', 'direccion.pais_id')->leftJoin('estado', 'estado.id', '=', 'direccion.estado_id')->leftJoin('municipio', 'municipio.id', '=', 'direccion.municipio_id')->select('direccion.id as idDir', 'direccion.proveedor_id as idProveedor', 'direccion.pais_id as idPais', 'direccion.estado_id as idEstado', 'direccion.municipio_id as idMunicipio', 'direccion.calle1', 'direccion.calle2', 'direccion.colonia', 'direccion.delegacion', 'direccion.codigo_postal', 'direccion.tipo', 'direccion.estatus', 'pais.pais', 'estado.estados', 'municipio.municipio')->first();
                 # code...
                 break;
             case 'Contacto':
                 $contacto = new Contacto();
                 $contacto->nombre = Input::get('nombre');
                 $contacto->correo = Input::get('correo');
                 $contacto->proveedor_id = Input::get('idProveedor');
                 $contacto->estatus = "1";
                 $contacto->save();
                 $resp = DB::table('contacto')->where('id', '=', $contacto->id)->select('contacto.id as idContacto', 'contacto.proveedor_id as idProveedor', 'contacto.nombre', 'contacto.correo', 'contacto.estatus')->first();
                 break;
             default:
                 return Response::json(';No guardado;', 500);
                 break;
         }
         return Response::json($resp);
     } catch (Exception $e) {
         return Response::json(array("error" => $e->getCode()), 500);
     }
 }