/** * *Desactiva una sucursal. Para poder desactivar una sucursal su saldo a favor tiene que ser mayor a cero y sus almacenes tienen que estar vacios. * * @author Juan Manuel García Carmona <*****@*****.**> * @param id_sucursal int Id de la sucursal a desactivar **/ public static function Eliminar($id_sucursal) { //verifica que la caja exista y este activa if (!($sucursal = SucursalDAO::getByPK($id_sucursal))) { Logger::error("La sucursal con id :" . $id_sucursal . " no existe"); throw new Exception("La sucursal con id :" . $id_sucursal . " no existe"); } if (!$sucursal->getActiva()) { Logger::error("La sucursal actualmente esta desactivada"); throw new Exception("La sucursal actualmente esta desactivada"); } //verificamos si los almacenes de la sucursal ya han sido previamente desactivados $almacenes = AlmacenDAO::search(new Almacen(array("id_sucursal" => $id_sucursal))); //Se eliminan los almacenes de esta sucursal foreach ($almacenes as $almacen) { if ($almacen->getActivo() == true) { Logger::error("No se puede desactivar la sucursal dado que el almacen" . $almacen->getNombre() . " sigue activo"); throw new Exception("No se puede desactivar la sucursal dado que el almacen" . $almacen->getNombre() . " sigue activo"); } } //verificamos si hay cajas abiertas $cajas = CajaDAO::search(new Caja(array("id_sucursal" => $id_sucursal))); foreach ($cajas as $c) { if ($c->getAbierta == true) { Logger::error("No se puede desactivar la sucursal dado que la caja" . $c->getDescripcion() . " sigue abierta"); throw new Exception("No se puede desactivar la sucursal dado que la caja" . $c->getDescripcion() . " sigue abierta"); } } $sucursal->setFechaBaja(time()); $sucursal->setActiva(0); DAO::transBegin(); try { SucursalDAO::save($sucursal); } catch (Exception $e) { DAO::transRollback(); Logger::error("La sucursal no pudo ser desactivada: " . $e); throw new Exception("La sucursal no pudo ser desactivada"); } DAO::transEnd(); Logger::log("Sucursal desactivada exitosamente"); }
/** * 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()); }