Example #1
0
 public function testUsuarioActual()
 {
     POSController::ClientesVistasConfiguracion(true);
     $configuraciones = ConfiguracionDAO::search($this->configuracion);
     $configuracion = $configuraciones[0];
     $sesion = SesionController::Actual();
     $this->assertEquals($sesion['id_usuario'], $configuracion->getIdUsuario());
 }
Example #2
0
 public function testNegativoDecimales()
 {
     //Comprueba que no se acepten decimales negativos
     echo " >> Comprobando aceptacion de decimales negativos\n";
     echo "\tSe envian: -1, -2, -3, -4";
     try {
         echo "\tExcepcion capturada: " . POSController::DecimalesConfiguracion(-1, -2, -3, -4);
         //Se envian argumentos invalidos
     } catch (Exception $e) {
         echo "\tExcepción capturada: ", $e->getMessage(), "\n";
     }
 }
				numero_exterior	: o.numero_exterior,
				numero_interior	: o.numero_interior,
				referencia		: o.referencia,
				colonia			: o.colonia,
				id_ciudad		: o.id_ciudad,
				codigo_postal	: o.codigo_postal,
				telefono1		: o.telefono1,
				telefono2		: o.telefono2
			}]);
			console.log(o);			
			return o;
		}
	</script>
	
	<?php 
$form->hideField(array("id_usuario", "id_direccion", "id_direccion_alterna", "id_sucursal", "fecha_asignacion_rol", "fecha_alta", "fecha_baja", "activo", "last_login", "consignatario", "id_direccion", "ultima_modificacion", "id_usuario_ultima_modificacion", "id_direccion", "ultima_modificacion", "id_usuario_ultima_modificacion", "ventas_a_credito", "tiempo_entrega", "tarifa_compra_obtenida", "id_tarifa_venta", "denominacion_comercial", "descuento", "dia_de_revision", "dias_de_credito", "id_clasificacion_proveedor", "facturar_a_terceros", "id_clasificacion_cliente", "id_moneda", "dias_de_embarque", "cuenta_de_mensajeria", "saldo_del_ejercicio", "limite_credito", "mensajeria", "referencia", "intereses_moratorios", "representante_legal", "id_tarifa_compra", "token_recuperacion_pass", "tarifa_venta_obtenida", "telefono", "telefono2"));
$form->createComboBoxJoin("id_ciudad", "nombre", CiudadDAO::getAll());
$form->createComboBoxJoin("tarifa_venta_obtenida", "tarifa_venta_obtenida", array("rol", "proveedor", "cliente", "usuario"));
$form->createComboBoxJoin("id_perfil", "descripcion", POSController::ListaPerfilConfiguracion());
$form->renameField(array("id_ciudad" => "ciudad"));
$form->addApiCall("api/personal/usuario/nuevo/");
$form->onApiCallSuccessRedirect("personal.usuario.ver.php?just_created=1");
$form->setType("password", "password");
$form->makeObligatory(array("nombre", "id_rol", "password", "codigo_usuario", "id_perfil"));
$form->createComboBoxJoin("id_rol", "nombre", RolDAO::getAll());
$form->createComboBoxJoin("id_moneda", "nombre", MonedaDAO::search(new Moneda(array("activa" => 1))));
$form->createComboBoxJoin("id_clasificacion_cliente", "nombre", ClasificacionClienteDAO::getAll());
$form->createComboBoxJoin("id_clasificacion_proveedor", "nombre", ClasificacionProveedorDAO::search(new ClasificacionProveedor(array("activa" => 1))));
$page->addComponent($form);
//render the page
$page->render();
Example #4
0
 protected function GenerateResponse()
 {
     try {
         $this->response = POSController::DetallesPerfilConfiguracion(isset($_POST['id_perfil']) ? $_POST['id_perfil'] : null);
     } catch (Exception $e) {
         //Logger::error($e);
         throw new ApiException($this->error_dispatcher->invalidDatabaseOperation($e->getMessage()));
     }
 }
 /**
  * validateDemo($token)
  *
  * Crear una nueva instancia(Instalacion de Caffeina POS) con vigencia de 30 dias
  *
  * @author Alan Gonzalez Hernandez<*****@*****.**>, Juan Manuel Garc&iacute;a Carmona <*****@*****.**>
  * @param string token token de la supuesta instancia que validaremos
  * @return array arreglo sociativo que contiene informacion sobre la respeusta response->success indica si termino con exito o fracaso (boolean), response->reason en caso de que exista algun error aqui se indica la informaci&oacute;n
  **/
 public static function validateDemo($token)
 {
     global $POS_CONFIG;
     Logger::log("Somebody requested validate: token: " . $token);
     //busquemos ese token en la bd
     $sql = "select id_request, date_validated, email from instance_request where token = ? ";
     $res = $POS_CONFIG["CORE_CONN"]->GetRow($sql, array($token));
     if (empty($res)) {
         //ya solicito la instancia
         Logger::error("Este token no existe !");
         return array("success" => false, "reason" => "No existe esta llave de solicitud.");
     }
     if (!is_null($res["date_validated"])) {
         Logger::warn("este ya fue validado");
         return array("success" => false, "reason" => "Esta llave de solicitud ya ha sido creada. Para acceder a ella haga click <a href=\"http://pos2.labs2.caffeina.mx/front_ends/" . $token . "/\">aqui</a>.");
     }
     $startTime = time();
     $iid = self::Nueva($token, $res["email"] . " requested this instance as a demo");
     Logger::log("Sending email....");
     $cuerpo = "Su nueva instancia de POS ERP ha sido creada con exito !\n\n";
     $cuerpo .= "Puede acceder a su cuenta en la siguiente direccion:";
     $cuerpo .= "\n\nhttp://pos2.labs2.caffeina.mx/front_ends/" . $token . "/";
     $cuerpo .= "\n\nHemos creado una cuenta de aministrador para usted, el usuario es: `1` y su contraseña es `123` sin las comillas.";
     //enviar el correo electronico
     POSController::EnviarMail($cuerpo, $res["email"], "Su cuenta POS ERP esta lista");
     $sql = "UPDATE  `instance_request`  SET  `date_validated` =  ?, `date_installed` = ?  WHERE `id_request` = ?;";
     $POS_CONFIG["CORE_CONN"]->Execute($sql, array($startTime, time(), $res["id_request"]));
     Logger::log("Done with installation.");
     return array("success" => true, "reason" => "Su instancia se ha creado con exito.");
 }
Example #6
0
function parseRequests()
{
    switch ($_GET["do"]) {
        case "actualizar_instancias":
            Logger::log("---------------------------");
            Logger::log("Jedi requested update instances");
            $result = InstanciasController::Actualizar_Todas_Instancias($_GET['instance_ids']);
            if (!is_null($result)) {
                //algo salio mal
                Logger::log("Algo salió mal al actualizar: " . $result);
                break;
            }
            Logger::log("Actualizacion(es) a BD terminada(s) con éxito");
            header("Location: instancias.lista.php");
            break;
        case "respaldar_instancias":
            Logger::log("---------------------------");
            Logger::log("Jedi requested respaldar instances");
            $json = "{ \"instance_ids\" : {$_GET['instance_ids']} }";
            //$result = InstanciasController::Respaldar_Instancias($_GET['instance_ids']);
            $result = POSController::BdInstanciasRespaldarBd($json);
            if ($result['status'] != "ok") {
                //algo salio mal
                Logger::log("Algo salió mal al respaldar: " . $result['mensaje']);
                ?>
						<script>
						 (function(){alert(<?php 
                echo "'" . $result['mensaje'] . "'";
                ?>
); location.href="instancias.bd.php" })();
						</script>
					<?php 
                break;
            }
            Logger::log("Respaldo(s) realizado(s) con éxito");
            header("Location: instancias.lista.php");
            break;
        case "restaurar_instancias":
            Logger::log("---------------------------");
            Logger::log("Jedi requested restaurar instances");
            $json = "{ \"instance_ids\" : {$_GET['instance_ids']} }";
            //$result = InstanciasController::Restaurar_Instancias($_GET['instance_ids']);
            $result = POSController::BdInstanciasRestaurarBd($json);
            if ($result['status'] != "ok") {
                //algo salio mal
                Logger::log("Algo salió mal al restaurar: " . $result['mensaje']);
                //header("Location: instancias.bd.php");
                ?>
						<script>
						 (function(){alert(<?php 
                echo "'" . $result['mensaje'] . "'";
                ?>
); location.href="instancias.bd.php" })();
						</script>
					<?php 
                break;
            }
            Logger::log("Restauracion(es) realizada(s) con éxito");
            header("Location: instancias.lista.php");
            break;
        default:
    }
}
 public static function setUpBeforeClass()
 {
     POSController::DropBd();
 }
Example #8
0
 /**
  *
  *Una nueva orden de servicio a prestar. Este debe ser un servicio activo. Y prestable desde la sucursal desde donde se inicio la llamada. Los conceptos a llenar estan definidos por el concepto. Se guardara el id del agente que inicio la orden y el id del cliente. La fecha se tomara del servidor.
  *
  * @param id_cliente int Id del cliente que contrata el servicio
  * @param id_servicio int Id del servicio que se contrata
  * @param fecha_entrega string Fecha en que se entregara el servicio.
  * @param descripcion string Descripcion de la orden o el porque del servicio
  * @param adelanto float Adelanto de la orden
  * @return id_orden int Id de la orden que se creo.
  **/
 public static function NuevaOrden($id_cliente, $id_servicio, $adelanto = null, $cliente_reporta = null, $condiciones_de_recepcion = null, $descripcion = "", $extra_params = null, $fecha_entrega = "", $fotografia = null, $id_usuario_asignado = null, $precio = null)
 {
     Logger::log("Creando nueva orden de servicio...");
     Logger::log("   id_servicio=" . $id_servicio);
     Logger::log("   id_cliente =" . $id_cliente);
     //Se obtiene al usuario de la sesion actual
     $s = SesionController::Actual();
     if (is_null($s)) {
         Logger::error("No se ha podido obtener al usuario de la sesion. Ya inicio sesion?");
         throw new AccessDeniedException("No se ha podido obtener al usuario de la sesion.");
     }
     $id_usuario = $s["id_usuario"];
     $cliente = UsuarioDAO::getByPK($id_cliente);
     $saldo_cliente = $cliente->getSaldoDelEjercicio();
     //se trae el monto que le resta por disponer de su limite de credito
     /*			if( $saldo_cliente < $precio )
     				throw new InvalidDataException("El saldo del cliente es insuficiente ($ {$saldo_cliente})");
     */
     //Valida que los datos sean correctos
     $validar = self::validarParametrosOrdenDeServicio(null, $id_servicio, $id_cliente, $descripcion, null, $adelanto);
     //Si no se recibe adelanto se toma como cero
     if (is_null($adelanto)) {
         $adelanto = 0;
     } else {
         if ($adelanto < 0) {
             throw new InvalidDataException("No es un valor de adelanto valido");
         }
     }
     if ($adelanto > $precio) {
         throw new InvalidDataException("El monto del adelanto rebaza el monto del servicio");
     }
     $servicio = ServicioDAO::getByPK($id_servicio);
     if (is_null($servicio)) {
         throw new InvalidDataException("Este servicio no existe");
     }
     $subtotal = 0;
     if ($servicio->getMetodoCosteo() == "variable") {
         if (is_null($precio)) {
             throw new InvalidDataException("Este servicio es de precio variable y no se envio el precio");
         }
         if ($precio < 0) {
             throw new InvalidDataException("{$precio} no es un precio valido, es menor a 0");
         }
         $subtotal = $precio;
     } else {
         $subtotal = $servicio->getPrecio();
         if (is_null($subtotal)) {
             Logger::error("el precio de este servicio esta mal!");
             $subtotal = 0;
         }
     }
     /*
     			//Figu: al llegar a este punto si tiene el saldo de la venta, pero se valida aun asi que su limite de credito cubra ese subtotal
     			//esto por si en algun momento se actualiza el limite de credito del cliente (que el admin del sis le decremente su limite por cualquier razon)
     			if(UsuarioDAO::getByPK($id_cliente)->getLimiteCredito() < $subtotal){
     				throw new BusinessLogicException("El limite de credito no cubre este monto");
     			}
     */
     //Se inicializa el registro de orden de servicio
     $orden_de_servicio = new OrdenDeServicio(array("id_servicio" => $id_servicio, "id_usuario_venta" => $id_cliente, "id_usuario" => $id_usuario, "fecha_orden" => time(), "fecha_entrega" => $fecha_entrega, "activa" => 1, "cancelada" => 0, "descripcion" => $descripcion, "adelanto" => $adelanto, "precio" => $subtotal));
     //ok, ya tengo el servicio, vamos a ver si necesito parametros extra
     if (!is_null($servicio->getExtraParams())) {
         Logger::log("El servicio require parametros extra.");
         //si se necesitan, vamos a ver cuales son,
         $extra_params_sent = $extra_params;
         $extra_params_required = json_decode($servicio->getExtraParams());
         //no se enviaron los parametros extra?
         if (is_null($extra_params_sent)) {
             Logger::warn("no se enviaron parametros extra");
         }
         foreach ($extra_params_required as $epr) {
             Logger::log("Extraparam:" . $epr->desc);
         }
         $orden_de_servicio->setExtraParams(json_encode($extra_params));
     }
     DAO::transBegin();
     try {
         Logger::log("Insertando la orden de servicio....");
         $orden = OrdenDeServicioDAO::save($orden_de_servicio);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error($e->getMessage());
         throw new InvalidDatabaseOperationException("No se pudo crear la nueva orden de servicio");
     }
     $s = SesionController::Actual();
     //proceder a insertar venta a credito para este servicio
     /*
      */
     DAO::transEnd();
     Logger::log("Orden de servicio creada exitosamente:");
     Logger::log("\torden de servicio=" . $orden_de_servicio->getIdOrdenDeServicio());
     //ok, ya se hizo correctamente, vamos a ver si le enviamos correo al cliente
     if (!is_null($cliente->getCorreoElectronico())) {
         Logger::log("enviando correo a " . $cliente->getCorreoElectronico());
         $servicio = ServicioDAO::getByPK($id_servicio);
         $cuerpo = "Estimado " . $cliente->getNombre() . "\n\n" . "Le escribimos para informale que su orden de servcio " . "numero " . $orden_de_servicio->getIdOrdenDeServicio() . " " . "referente a " . $servicio->getNombreServicio() . " " . "esta siendo procesada y usted puede revisar su estatus en " . "cualquier momento mediante nuestra pagina web en: \n\n" . "http://pos2.labs2.caffeina.mx/front_ends/" . INSTANCE_TOKEN . "/?from=email";
         $destinatario = $cliente->getCorreoElectronico();
         $titulo = "Su orden de servicio ";
         POSController::EnviarMail($cuerpo, $destinatario, $titulo);
     }
     return array("id_orden" => (int) $orden_de_servicio->getIdOrdenDeServicio());
 }
 /**
  * Desactivar Almacen
  */
 public function testDesactivarAlmacen()
 {
     POSController::DropBd();
     $usuario = UsuarioDAO::getAll();
     if (sizeof($usuario) == 0) {
         Logger::error("WHOOOT no hay usuarios en la BD");
         return;
     }
     $id_usuario = $usuario[0]->getIdUsuario();
     @DireccionDAO::save($direccion = new Direccion(array("calle" => "Una Calle", "numero_exterior" => "322", "id_ciudad" => "12", "codigo_postal" => "38000", "ultima_modificacion" => "2012-02-21 22:10:45", "id_usuario_ultima_modificacion" => "2")));
     @EmpresaDAO::save($empresa = new Empresa(array("id_direccion" => $direccion->getIdDireccion(), "rfc" => "RFC_" . time(), "razon_social" => "Empresa_Razon_Social__" . time(), "fecha_alta" => "2012-02-21 22:10:45", "activo" => 1, "direccion_web" => "Dir_" . time())));
     @SucursalDAO::save($sucursal = new Sucursal(array("id_direccion" => $direccion->getIdDireccion(), "razon_social" => "Sucursal_Razon_Social__" . time(), "saldo_a_favor" => 2000, "fecha_apertura" => "2012-02-21 22:10:45", "activa" => 1)));
     $tipo_almacen = AlmacenesController::NuevoTipo("Nuevo_Tipo_Almacen___" . time());
     Logger::log("Nuevo almacen");
     $almacen = AlmacenesController::Nuevo($id_empresa = $empresa->getIdEmpresa(), $id_sucursal = $sucursal->getIdSucursal(), $id_tipo_almacen = $tipo_almacen["id_tipo_almacen"], $nombre = "Almacen_Editar" . time(), $descripcion = "Almacen de prueba_ " . time());
     // Desactivamos el Almacen
     Logger::log("A desactivar almacen recien creado");
     $almacen_desactivado = AlmacenesController::Desactivar($id_almacen = $almacen["id_almacen"]);
     $_almacen = AlmacenDAO::getByPK($almacen["id_almacen"]);
     $this->assertEquals(0, $_almacen->getActivo());
 }
 public function testNuevoClienteDesdeCSV()
 {
     POSController::DropBd();
     $raw_exportation = file_get_contents("adminpaq.catalogo.clientes.csv");
     ClientesController::ImportarCSV($raw_exportation);
 }