public function testBootstrap()
 {
     $r = SesionController::Iniciar(123, 1, true);
     $this->assertEquals($r["login_succesful"], true);
     $r = SesionController::getCurrentUser();
     $this->assertEquals($r->getIdUsuario(), 1);
 }
Beispiel #2
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());
 }
Beispiel #3
0
 protected function GenerateResponse()
 {
     try {
         $this->response = SesionController::Actual();
     } catch (Exception $e) {
         //Logger::error($e);
         throw new ApiException($this->error_dispatcher->invalidDatabaseOperation($e->getMessage()));
     }
 }
 protected function setUp()
 {
     $r = SesionController::Iniciar(123, 1, true);
     if ($r["login_succesful"] == false) {
         global $POS_CONFIG;
         $POS_CONFIG["INSTANCE_CONN"]->Execute("INSERT INTO `usuario` (`id_usuario`, `id_direccion`, `id_direccion_alterna`, `id_sucursal`, `id_rol`, `id_clasificacion_cliente`, `id_clasificacion_proveedor`, `id_moneda`, `fecha_asignacion_rol`, `nombre`, `rfc`, `curp`, `comision_ventas`, `telefono_personal1`, `telefono_personal2`, `fecha_alta`, `fecha_baja`, `activo`, `limite_credito`, `descuento`, `password`, `last_login`, `consignatario`, `salario`, `correo_electronico`, `pagina_web`, `saldo_del_ejercicio`, `ventas_a_credito`, `representante_legal`, `facturar_a_terceros`, `dia_de_pago`, `mensajeria`, `intereses_moratorios`, `denominacion_comercial`, `dias_de_credito`, `cuenta_de_mensajeria`, `dia_de_revision`, `codigo_usuario`, `dias_de_embarque`, `tiempo_entrega`, `cuenta_bancaria`, `id_tarifa_compra`, `tarifa_compra_obtenida`, `id_tarifa_venta`, `tarifa_venta_obtenida`) VALUES\n\t\t\t\t(1, NULL, NULL, NULL, 0, NULL, NULL, NULL, '2011-10-24 18:28:24', 'Administrador', NULL, NULL, NULL, NULL, NULL, '2011-10-24 18:28:34', NULL, 1, 0, NULL, '202cb962ac59075b964b07152d234b70', NULL, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL, NULL, 0, 'rol', 0, 'rol');");
         $r = SesionController::Iniciar(123, 1, true);
     }
 }
Beispiel #5
0
 public static function setUpBeforeClass()
 {
     SesionController::Iniciar(123, 1, true);
     self::$categoria_peso = new CategoriaUnidadMedida(array('descripcion' => 'Peso', 'activa' => true));
     CategoriaUnidadMedidaDAOBase::save(self::$categoria_peso);
     CategoriaUnidadMedidaDAOBase::save(new CategoriaUnidadMedida(array('descripcion' => 'Tiempo', 'activa' => false)));
     CategoriaUnidadMedidaDAOBase::save(new CategoriaUnidadMedida(array('descripcion' => 'Distancia', 'activa' => true)));
     CategoriaUnidadMedidaDAOBase::save(new CategoriaUnidadMedida(array('descripcion' => 'Omo', 'activa' => false)));
 }
    protected function _renderTopMenu()
    {
        $s = SesionController::Actual();
        $u = UsuarioDAO::getByPK($s["id_usuario"]);
        ?>


			<a class="l" href="./helper.php">Ayuda</a>
			<a class="l">(<?php 
        echo $u->getNombre();
        ?>
)</a>
			<a class="l" href="./../?cs=1"> Salir</a>
		<?php 
    }
 public function testDeleteAuthTokenOnLogout()
 {
     //insert a new user
     $sql = "Delete from `usuario` where `codigo_usuario` = 'foo';";
     global $POS_CONFIG;
     $POS_CONFIG["INSTANCE_CONN"]->Execute($sql);
     $r = PersonalYagentesController::NuevoUsuario("foo", "1", "name", "password444222");
     $r = SesionController::Iniciar("password444222", "foo");
     //this token should be non existing when i log out
     $auth_token = $r["auth_token"];
     $vos = SesionDAO::search(new Sesion(array("auth_token" => $auth_token)));
     $r = SesionController::Cerrar($auth_token);
     $vos = SesionDAO::search(new Sesion(array("auth_token" => $auth_token)));
     $this->assertEquals(sizeof($vos), 0);
 }
Beispiel #8
0
 function __construct()
 {
     //vamos a ver si me enviaron un login
     if (isset($_POST["do_login"])) {
         //test credentials
         $user = SesionController::testLogin($_POST["user"], $_POST["password"]);
     }
     //vamos a ver si me enviaron un logout
     if (isset($_REQUEST["close_session"])) {
         SesionController::logout();
         die(header("Location: ../"));
     }
     $this->js_urls = "";
     $this->css_urls = "";
     $this->header = "";
     $this->menu = "";
     $this->content = "";
     $this->footer = "";
     $this->page_title = "POS ERP";
 }
Beispiel #9
0
 protected function CheckAuthorization()
 {
     //needs to be logged in
     if (!SesionController::isLoggedIn()) {
         throw new ApiException($this->error_dispatcher->invalidAuthToken());
     }
     return true;
     /*
     
     Logger::warn("Aqui hay un notice de php suprimido ApiHandler.php->CheckAuthorization()");
     		
     $token = null;
     
     
     if( @isset($_GET["auth_token"] )  ){
     	$token = $_GET["auth_token"];
     }
     
     if( @isset($_POST["auth_token"] )  ){
     	$token = $_POST["auth_token"];
     }
     
     if(is_null($token)){
     	Logger::log("No se ha enviado un auth_token");
             	throw new ApiException( $this->error_dispatcher->invalidAuthToken() );			
     }
     
     //buscar el token
     $r = SesionDAO::search( new Sesion( array( "auth_token" => $token ) ) );
     
     if(sizeof($r) == 1) return true;
     
     Logger::log("El auth_token no se encontro en la BD");
             throw new ApiException( $this->error_dispatcher->invalidAuthToken() );
     */
 }
 /**
  *
  *Dar por terminada una orden, cuando el cliente satisface el ultimo pago
  *
  * @param id_orden int Id de la orden a terminar
  **/
 public static function TerminarOrden($id_orden, $id_venta = null)
 {
     Logger::log("Terminando orden " . $id_orden . " ");
     if (!is_null($id_venta)) {
         Logger::log("Asignando orden a id_venta=" . $id_venta);
         //que la venta exista
         $v = VentaDAO::getByPK($id_venta);
         if (is_null($v)) {
             throw new InvalidDataException("La venta a la que se quiere asignar no existe.");
         }
     }
     //ver que exista la orden de servicio
     $ods = OrdenDeServicioDAO::getByPK($id_orden);
     if (is_null($ods)) {
         throw new InvalidDataException("La orden de servicio que desea terminar no existe");
     }
     if (!$ods->getActiva()) {
         throw new BusinessLogicException("La orden que quieres terminar ya no esta terminada.");
     }
     DAO::transBegin();
     try {
         $ods->setActiva(0);
         OrdenDeServicioDAO::save($ods);
     } catch (Exception $e) {
         throw InvalidDatabaseOperationException($e);
     }
     if (!is_null($id_venta)) {
         $vo = new VentaOrden();
         $vo->setIdVenta($id_venta);
         $vo->setIdOrdenDeServicio($id_orden);
         $vo->setPrecio($ods->getPrecio());
         $vo->setDescuento(0);
         $vo->setImpuesto(0);
         $vo->setRetencion(0);
         //Actualizar totales
         $ventaVo = VentaDAO::getByPK($id_venta);
         try {
             VentaOrdenDAO::save($vo);
         } catch (Exception $e) {
             throw InvalidDatabaseOperationException($e);
         }
     } else {
         //crearle una nueva venta
         $venta = new Venta();
         $s = SesionController::Actual();
         Logger::error("There is plenty of hard-coded stuff here !");
         $venta->setIdCompradorVenta($ods->getIdUsuarioVenta());
         $venta->setTipoDeVenta("contado");
         $venta->setFecha(time());
         $venta->setSubtotal(0);
         $venta->setEsCotizacion(0);
         $venta->setImpuesto(0);
         $venta->setTotal(0);
         $venta->setIdSucursal($s["id_sucursal"]);
         $venta->setIdUsuario($s["id_usuario"]);
         $venta->setSaldo(0);
         //si hay adelanto se resta al saldo de la venta el adelanto, esta resta se hace al insertar el abono_venta
         $venta->setCancelada(false);
         $venta->setRetencion(0);
         //vamos a ver si este dude tiene suficient credito para esto
         try {
             Logger::log("Insertando la venta ....");
             VentaDAO::save($venta);
         } catch (Exception $e) {
             DAO::transRollback();
             Logger::error($e->getMessage());
             throw new InvalidDatabaseOperationException("No se pudo crear la nueva orden de servicio");
         }
         $venta_orden = new VentaOrden();
         $venta_orden->setIdVenta($venta->getIdVenta());
         $venta_orden->setIdOrdenDeServicio($ods->getIdOrdenDeServicio());
         $venta_orden->setPrecio(0);
         $venta_orden->setDescuento(0);
         $venta_orden->setImpuesto(0);
         $venta_orden->setRetencion(0);
         try {
             Logger::log("Insertando la orden de venta....");
             VentaOrdenDAO::save($venta_orden);
         } catch (Exception $e) {
             DAO::transRollback();
             Logger::error($e->getMessage());
             throw new InvalidDatabaseOperationException("No se pudo crear la nueva orden de servicio");
         }
         $id_venta = $venta->getIdVenta();
     }
     DAO::transEnd();
     Logger::log("La orden de servicio se ha terminado exitosamente");
     return array("id_venta" => $id_venta);
 }
Beispiel #11
0
    $extern_url = $_GET["who"];
    $p = new PosComponentPage();
    $p->addComponent(new Titlecomponent($_GET["extern_login"] . "&nbsp;desea utilizar tu cuenta de Caffeina POS. ", 2));
    if (!SesionController::isLoggedIn()) {
        $login = new LoginComponent();
        $login->setLoginApiCall("api/sesion/iniciar/");
        $login->setExternLoginUrl($_GET["extern_login"]);
        $p->addComponent($login);
    } else {
        $p->addComponent('<div class="POS Boton">No permitir</div>');
        $p->addComponent('<div style="margin-right:0px" class="POS Boton OK" onclick="window.location = \'' . $_GET["extern_login"] . '?au=\' + Ext.util.Cookies.get(\'at\')" >Permitir</div>');
    }
    //var_dump(SesionController::Actual());
    $p->render();
    die;
}
if (isset($_GET["cs"]) && $_GET["cs"] == 1) {
    SesionController::Cerrar();
}
//antes de crear el componente de login,
//vamos a revisar si el usuario tiene una
//sesion iniciada, y lo adentramos
if (SesionController::isLoggedIn()) {
    die(header("Location: g/"));
}
$page = new PosComponentPage("Iniciar sesion");
$page->addComponent("<style>\n\t\t.devsitePage .nav > .content{\n\t\t\tbackground:white;\t\n\t\t}\n\t\t.devsitePage .menu a.logo {\n\t\t\tborder-right: 0px;\n\t\t\tpadding: 0px;\n\t\t}\n\t\t.devsitePage .bodyText{\n\t\t\tmargin-left: 0px;\n\t\t}</style>");
$login = new LoginComponent();
$login->setLoginApiCall("api/sesion/iniciar/");
$page->addComponent($login);
$page->render();
Beispiel #12
0
<?php

if (!class_exists("PHPUnit_Runner_Version")) {
    define("BYPASS_INSTANCE_CHECK", false);
    require_once "../../../server/bootstrap.php";
}
$page = new ClienteComponentPage("Bienvendio a POS ERP");
$banner = new BannerComponent("POS ERP", "Bienvenido a POS ERP <br>un sistema de gestion empresarial", "../../../media/EAbydW1M_XR.png");
$page->addComponent($banner);
//buscar si tiene ordenes de servico a su nombre
$sesion_actual = SesionController::Actual();
$ordenes_array = new OrdenDeServicio(array("id_usuario_venta" => $sesion_actual["id_usuario"]));
$ordenes = OrdenDeServicioDAO::search($ordenes_array);
if (sizeof($ordenes) > 0) {
    $page->addComponent(new TitleComponent("Sus ordenes de servicio", 2));
    $table = new TableComponent(array("id_servicio" => "Servicio", "fecha_orden" => "Fecha"), $ordenes);
    function renderIdServicio($id)
    {
        $serv = ServicioDAO::getByPK($id);
        return $serv->getNombreServicio();
    }
    $table->addColRender("fecha_orden", "FormatTime");
    $table->addOnClick("id_orden_de_servicio", "(function(a){ window.location = 'servicios.detalle.orden.php?oid='+a; })");
    $table->addColRender("id_servicio", "renderIdServicio");
    $page->addComponent($table);
}
$page->render();
Beispiel #13
0
    define("BYPASS_INSTANCE_CHECK", false);
    require_once "../../../server/bootstrap.php";
}
$page = new GerenciaComponentPage();
$page->partialRender();
?>
		<table>
			<tr>
				<td><img src="http://cdn1.iconfinder.com/data/icons/musthave/48/Stock%20Index%20Up.png"></td>
				<td><strong>Su configuracion esta incompleta.</strong><br>De una vuelta por la configuracion de Caffeina POS para importar sus clientes y productos.</td>
			</tr>

		</table>
	<?php 
$banner = new BannerComponent("POS ERP", "Bienvenido a POS ERP <br>un sistema de gestion empresarial", "../../media/EAbydW1M_XR.png");
$page->addComponent($banner);
/* *************************************************
 * Orden de Servicio Pendientes
 * ************************************************* */
$s = SesionController::Actual();
$ordenes_mias = OrdenDeServicioDAO::search(new OrdenDeServicio(array("id_usuario_asignado" => $s["id_usuario"], "activa" => true)));
switch (sizeof($ordenes_mias)) {
    case 0:
        break;
    case 1:
        $page->addComponent(new TitleComponent("Tienes 1 orden de servicio pendiente.", 3));
        break;
    default:
        $page->addComponent(new TitleComponent("Tienes " . sizeof($ordenes_mias) . " ordenes de servicio pendientes.", 3));
}
$page->render();
 protected function setUp()
 {
     SesionController::Iniciar(123, 1, true);
     CategoriaContactoDAO::save(new CategoriaContacto(array('id' => 1, 'nombre' => 'padre', 'descripcion' => 'Uno', 'activa' => 1)));
     CategoriaContactoDAO::save(new CategoriaContacto(array('id' => 2, 'id_padre' => 1, 'nombre' => 'hijo', 'descripcion' => 'Dos', 'activa' => 1)));
 }
 /**
  *
  * Permite dar conocer al sistema las verdaderas existencias en un almacen, o sucursal.
  *
  * @param inventario json [{id_producto: 1,id_unidad: 2,cantidad: 0,id_lote : 2}]
  * @param id_sucursal int 
  * */
 static function Fisico($inventario, $id_sucursal = "")
 {
     //POS.API.POST("api/inventario/fisico", {inventario : Ext.JSON.encode([{id_producto:8, id_unidad:1, cantidad:7, id_lote:1}]) } , {callback:function(){}})
     $s = SesionController::Actual();
     Logger::log("---------- INVENTARIO FISICO SE ENCONTRARON " . count($inventario) . " AJUSTES ----------");
     foreach ($inventario as $producto) {
         //self::ajustarLoteProducto($producto->id_lote, $producto->id_producto, $producto->id_unidad);
         //[{id_producto: 1,id_unidad: 2,cantidad: 0,id_lote : 2}]
         $producto->nombre = ProductoDAO::getByPK($producto->id_producto)->getNombreProducto();
         Logger::log(" Estamos en {$producto->nombre}, id_unidad {$producto->id_unidad}, {$producto->cantidad} " . UnidadMedidaDAO::getByPK($producto->id_unidad)->getAbreviacion() . ", lote {$producto->id_lote}");
         try {
             //verificamos si el lote indicado existe
             if (is_null($producto->id_lote) || strlen($producto->id_lote) == 0) {
                 throw new InvalidDataException("No selecciono a que lote ira el producto {$producto->id_producto}");
             }
             //busquemos el id del lote
             if (!($lote = LoteDAO::getByPK($producto->id_lote))) {
                 throw new InvalidDataException("No se tiene registro del lote {$producto->id_lote}");
             }
             //verificamos que exista la unidad de medida y este activa
             if (!UnidadMedidaDAO::getByPK($producto->id_unidad)) {
                 throw new InvalidDataException("La unidad de medida {$producto->id_unidad} no existe, o no esta activa.");
             }
             //busquemos si este producto ya existe en este lote
             $lote_producto = LoteProductoDAO::getByPK($lote->getIdLote(), $producto->id_producto);
             if (is_null($lote_producto)) {
                 Logger::log("El producto no estaba en el lote, se insertara");
                 /*
                  //no existe, insertar
                  $loteProducto = new LoteProducto(array(
                  "id_lote" => $lote->getIdLote(),
                  "id_producto" => $producto->id_producto,
                  "cantidad" => $producto->cantidad,
                  "id_unidad" => $producto->id_unidad
                  ));
                 
                  LoteProductoDAO::save($loteProducto);
                  Logger::log("Se guardo el LoteProducto : id_lote {$lote->getIdLote()}, id_producto {$producto->id_producto}, cantidad {$producto->cantidad} id_unidad {$producto->id_unidad}");
                 
                  $loteEntrada = new LoteEntrada(array(
                  "id_lote" => $lote->getIdLote(),
                  "id_usuario" => $s['id_usuario'],
                  "fecha_registro" => time(),
                  "motivo" => "Entrada por ajuste de inventario"
                  ));
                 
                  LoteEntradaDAO::save($loteEntrada);
                  Logger::log("Se guardo el LoteEntrada: id_lote {$lote->getIdLote()}, id_usuario {$s['id_usuario']}, motivo {Entrada por ajuste de inventario}");
                 */
                 AlmacenesController::EntradaLote($lote->getIdLote(), array($producto), "Entrada por ajuste de inventario");
             } else {
                 Logger::log("El producto si estaba en el lote, verificaremos las cantidades");
                 //revisemos si es de la misma unidad
                 if ($lote_producto->getIdUnidad() == $producto->id_unidad) {
                     Logger::log("Se encontro que la unidad enviada es igual a la unidad del lote producto");
                     Logger::log("Se detecto una merma de {$producto->cantidad} " . UnidadMedidaDAO::getByPK($producto->id_unidad)->getAbreviacion() . " de {$producto->nombre}");
                     //$existencias_lote = ProductoDAO::ExistenciasLote($producto->id_producto, $lote->getIdLote(), $lote_producto->getIdUnidad());
                     $existencias_lote = ProductoDAO::ExistenciasTotales($producto->id_producto);
                     Logger::log("Se encontraron {$existencias_lote} existencias en el lote {$lote->getIdLote()} para el producto {$producto->id_producto}");
                 } else {
                     Logger::log("Se encontro que la unidad enviada es diferente a la unidad del lote producto, se procede a transformar");
                     //$existencias_lote = ProductoDAO::ExistenciasLote($producto->id_producto, $lote->getIdLote(), $lote_producto->getIdUnidad());
                     $existencias_lote = ProductoDAO::ExistenciasTotales($producto->id_producto);
                     Logger::log("Se encontraron {$existencias_lote} " . UnidadMedidaDAO::getByPK($lote_producto->getIdUnidad())->getAbreviacion() . " en el lote {$lote->getIdLote()} para el producto " . ProductoDAO::getByPK($producto->id_producto)->getNombreProducto() . " , nosotros necesitamos que se transforme en " . UnidadMedidaDAO::getByPK($producto->id_unidad)->getAbreviacion());
                     //var_dump($producto->id_unidad, $lote_producto->getIdUnidad(), $existencias_lote);
                     try {
                         Logger::log("Enviara a transformar unidad base : {$producto->id_unidad}, unidad a transformar : {$lote_producto->getIdUnidad()}, cantidad a transformar : {$existencias_lote}");
                         $existencias_lote = UnidadMedidaDAO::convertir($lote_producto->getIdUnidad(), $producto->id_unidad, $existencias_lote);
                         Logger::log("Como producto de la transformacion se obtuvo {$existencias_lote} ");
                     } catch (BusinessLogicException $ide) {
                         //no se pudo convertir porque son de
                         //diferentes categorias
                         throw $ide;
                         //mostrar una excpetion mas fresona
                     }
                 }
                 Logger::log("se evaluara {$existencias_lote} - {$producto->cantidad}");
                 //hacemos el ajuste
                 $diff = $existencias_lote - $producto->cantidad;
                 if ($diff > 0) {
                     //entonces hay una merma y se reporta una salida al lote igual a $diff, especificando en motivo el id del movimiento realizado
                     //se actualiza la cantidad de producto en lote producto
                     //AlmacenesController::Salida($l->getIdAlmacen(), $producto, "100");
                     $diff = abs($diff);
                     Logger::log("Se detecto una merma de {$diff} " . UnidadMedidaDAO::getByPK($producto->id_unidad)->getAbreviacion() . " de {$producto->nombre}");
                     /*
                      $lote_salida = new LoteSalida(array(
                      "id_lote" => $lote->getIdLote(),
                      "id_usuario" => $s['id_usuario'],
                      "fecha_registro" => time(),
                      "motivo" => "Salida de producto por ajuste de inventario (merma)"
                      ));
                     
                      LoteSalidaDAO::save($lote_salida);
                     
                      Logger::log("Se creo un lote salida id_lote {$lote->getIdLote()}, id_usuario {$s['id_usuario']}, motivo Salida de producto por ajuste de inventario (merma)");
                     
                      $lote_salida_producto = new LoteSalidaProducto(array(
                      "id_lote_salida" => $lote_salida->getIdLoteSalida(),
                      "id_producto" => $producto->id_producto,
                      "id_unidad" => $producto->id_unidad,
                      "cantidad" => $producto->cantidad
                      ));
                     
                      LoteSalidaProductoDAO::save($lote_salida_producto);
                     
                      Logger::log("Se creo un lote salida producto con id_lote_salida {$lote_salida->getIdLoteSalida()}, id_producto {$producto->id_producto}, id_unidad {$producto->id_unidad}, cantidad {$producto->cantidad}");
                     */
                     AlmacenesController::SalidaLote($lote->getIdLote(), array(array("id_producto" => $producto->id_producto, "cantidad" => $diff, "id_unidad" => $producto->id_unidad)), "Salida de producto por ajuste de inventario (merma)");
                 }
                 if ($diff < 0) {
                     $diff = abs($diff);
                     //entonces hay un sobrante y se reporta una entrada al lote igual a $diff, especificando en motivo el id del movimiento realizado
                     //se actualiza la cantidad de producto en lote producto
                     //AlmacenesController::Entrada($l->getIdAlmacen(), $producto, "101");
                     Logger::log("Se detecto una sobrante de {$diff} " . UnidadMedidaDAO::getByPK($producto->id_unidad)->getAbreviacion());
                     /*
                      $lote_entrada = new LoteEntrada(array(
                      "id_lote" => $lote->getIdLote(),
                      "id_usuario" => $s['id_usuario'],
                      "fecha_registro" => time(),
                      "motivo" => "Entrada de producto por ajuste de inventario (sobrante)"
                      ));
                     
                      LoteEntradaDAO::save($lote_entrada);
                     
                      Logger::log("Se creo un lote entrada id_lote {$lote->getIdLote()}, id_usuario {$s['id_usuario']}, motivo Entrada de producto por ajuste de inventario (sobrante)");
                     
                      $lote_entrada_producto = new LoteEntradaProducto(array(
                      "id_lote_entrada" => $lote_entrada->getIdLote(),
                      "id_producto" => $producto->id_producto,
                      "id_unidad" => $producto->id_unidad,
                      "cantidad" => $producto->cantidad
                      ));
                     
                      LoteEntradaProductoDAO::save($lote_entrada_producto);
                     
                      Logger::log("Se creo un lote entrada producto con id_lote_entrada {$lote_entrada->getIdLoteEntrada()}, id_producto {$producto->id_producto}, id_unidad {$producto->id_unidad}, cantidad {$producto->cantidad}");
                     */
                     //AlmacenesController::EntradaLote($lote->getIdLote(), array($producto), "Entrada de producto por ajuste de inventario (sobrante)");
                     AlmacenesController::EntradaLote($lote->getIdLote(), array(array("id_producto" => $producto->id_producto, "cantidad" => $diff, "id_unidad" => $producto->id_unidad)), "Entrada de producto por ajuste de inventario (sobrante)");
                 }
                 //TODO:HAY QUE AHCER PRUEBAS EXHAUSTIVAS PARA VER SI ESTE ULTIMO BLOQUE DE CODIGO SE DEBERIA DE ELIMINAR
                 //actualizamos las existencias de lote producto
                 if ($diff != 0) {
                     Logger::log("Se procede a hacer el ajuste del lote producto");
                     self::ajustarLoteProducto($producto->id_lote, $producto->id_producto, $producto->id_unidad);
                 } else {
                     Logger::log("Se detecto que la cantidad en tote producto concuerda con la cantidad inventariada, pero aun asi se llamara al metodo de ajuste de prodcuto");
                     self::ajustarLoteProducto($producto->id_lote, $producto->id_producto, $producto->id_unidad);
                 }
             }
         } catch (InvalidDataException $e) {
             Logger::error($e);
             DAO::transRollback();
             throw $e;
         } catch (exception $e) {
             Logger::error($e);
             DAO::transRollback();
             throw new InvalidDatabaseOperationException($e);
         }
     }
 }
 /**
  *
  *Se crea un  nuevo abono, la caja o sucursal y el usuario que reciben el abono se tomaran de la sesion. La fecha se tomara del servidor
  *
  * @param id_deudor int Id del usuario o la sucursal que realiza el abono, las sucursales seran negativas
  * @param tipo_pago json JSON con la informacion que describe el tipo de pago, si es con cheque, en efectivo o con tarjeta
  * @param monto float monto abonado de la sucursal
  * @param nota string Nota del abono
  * @param id_venta int Id de la venta a la que se le abona
  * @param varios bool True si el monto sera repartido en los prestamos,ventas o compras mas antiguas. Esto se define si se pasa el valor id_venta,id_prestamo o id_compra
  * @param cheques json Se toma el nombre del banco, el monto y los ultimos cuatro numeros del o los cheques usados para este abono
  * @param id_prestamo int Id del prestamo al que se le esta abonando
  * @param id_compra int Id de la compra a la que se abona
  * @return id_abono int El id autogenerado del abono de la sucursal
  **/
 public static function NuevoAbono($id_deudor, $monto, $tipo_pago, $billetes = null, $cheques = null, $id_compra = null, $id_prestamo = null, $id_venta = null, $nota = null)
 {
     Logger::log("Insertando nuevo abono ... ");
     //Se obtiene la sesion del usuario
     $id_usuario = SesionController::getCurrentUser();
     $id_usuario = $id_usuario->getIdUsuario();
     if (is_null($id_usuario)) {
         Logger::error("No se pudo obtener el usuario de la sesion, ya inicio sesion?");
         throw new AccessDeniedException("No se pudo obtener el usuario de la sesion, ya inicio sesion?");
     }
     //Se validan los parametros obtenidos
     $validar = self::validarParametrosAbono($monto, $id_deudor, $nota, $tipo_pago);
     if (is_string($validar)) {
         Logger::error($validar);
         throw new Exception($validar);
     }
     //Si el tipo de pago es con cheque y no se reciben cheques, lanzas una excepcion
     if ($tipo_pago === "cheque" && is_null($cheques)) {
         Logger::error("Se intenta pagar con cheque mas no se envio info de cheques");
         throw new Exception("No se recibio informacion del cheque");
     }
     //Se inicializan las variables de los parametros de las tablas de abonos
     $usuario = UsuarioDAO::getByPK($id_deudor);
     $id_sucursal = self::getSucursal();
     $id_caja = self::getCaja();
     $fecha = time();
     $cancelado = 0;
     $abono = null;
     //Nuevo regitro del abono
     $from = 0;
     //Bandera que indica a que operacion pertenece el abono
     $operacion = null;
     //Objeto de la operacion, puede ser un objeto de venta, de ocmpra o de prestamo
     /*
      * Se valida de que operacion pertenece el abono y de acuerdo a lo obtenido, se realizan 
      * las operaciones necesarias en cada tabla.
      * 
      * Primero se valida que la operacion exista, que sea a credito, que no haya sido cancelada, 
      * que no haya sido saldada y que no se abone mas del total de la operacion.
      * 
      * Despues se inicializa el registro de la tabla correspondiente, se modifica el saldo del deudor
      * y se activa la bandera from
      */
     if (!is_null($id_compra)) {
         /*************************************************************
          * 	abono a compra
          ************************************************************* */
         Logger::log("Abono pertenece a compra, compraid=" . $id_compra);
         $operacion = CompraDAO::getByPK($id_compra);
         if (is_null($operacion)) {
             Logger::error("La compra con id: " . $id_compra . " no existe");
             throw new Exception("La compra con id: " . $id_compra . " no existe");
         }
         if ($operacion->getTipoDeCompra() !== "credito") {
             Logger::error("La compra especificada no es a credito, no se puede abonar a una compra de contado");
             throw new Exception("La compra especificada no es a credito, no se puede abonar a una compra de contado");
         }
         if ($operacion->getCancelada()) {
             Logger::error("La compra ya ha sido cancelada, no se puede abonar a esta compra");
             throw new Exception("La compra ya ha sido cancelada, no se puede abonar a esta compra");
         }
         if ($operacion->getSaldo() > 0) {
             Logger::error("La compra ya ha sido saldada, no se puede abonar a esta compra");
             throw new Exception("La compra ya ha sido saldada, no se puede abonar a esta compra");
         }
         if ($operacion->getSaldo() - $monto < 0) {
             Logger::error("No se puede abonar esta cantidad a esta compra, pues sobrepasa el total de la misma");
             throw new Exception("No se puede abonar esta cantidad a esta compra, pues sobrepasa el total de la misma");
         }
         Logger::log("Insertando abono compra...");
         $abono = new AbonoCompra();
         $abono->setIdCompra($id_compra);
         $abono->setIdReceptor($id_deudor);
         $abono->setIdDeudor($id_usuario);
         $usuario->setSaldoDelEjercicio($usuario->getSaldoDelEjercicio() - $monto);
         $from = 1;
     } else {
         if (!is_null($id_prestamo)) {
             /*************************************************************
              * abono a prestamo
              ************************************************************* */
             $operacion = PrestamoDAO::getByPK($id_prestamo);
             if (is_null($operacion)) {
                 Logger::error("El prestamo con id: " . $id_prestamo . " no existe");
                 throw new Exception("El prestamo con id: " . $id_prestamo . " no existe");
             }
             if ($operacion->getMonto() <= $operacion->getSaldo()) {
                 Logger::error("El prestamo ya ha sido saldado, no se puede abonar a este prestamo");
                 throw new Exception("El prestamo ya ha sido saldad0, no se puede abonar a este prestamo");
             }
             if ($operacion->getMonto() < $operacion->getSaldo() + $monto) {
                 Logger::error("No se puede abonar esta cantidad a este prestamo, pues sobrepasa el total del mismo");
                 throw new Exception("No se puede abonar esta cantidad a este prestamo, pues sobrepasa el total del mismo");
             }
             $abono = new AbonoPrestamo();
             $abono->setIdPrestamo($id_prestamo);
             $abono->setIdReceptor($id_usuario);
             $abono->setIdDeudor($id_deudor);
             $usuario->setSaldoDelEjercicio($usuario->getSaldoDelEjercicio() + $monto);
             $from = 2;
         } else {
             if (!is_null($id_venta)) {
                 /*************************************************************
                  * abono a venta
                  ************************************************************* */
                 $operacion = VentaDAO::getByPK($id_venta);
                 if (is_null($operacion)) {
                     Logger::error("La venta con id: " . $id_venta . " no existe");
                     throw new Exception("La venta con id: " . $id_venta . " no existe");
                 }
                 if ($operacion->getTipoDeVenta() !== "credito") {
                     Logger::error("La ventaa especificada no es a credito, no se puede abonar a una venta de contado");
                     throw new Exception("La venta especificada no es a credito, no se puede abonar a una venta de contado");
                 }
                 if ($operacion->getCancelada()) {
                     Logger::error("La venta ya ha sido cancelada, no se puede abonar a esta venta");
                     throw new Exception("La venta ya ha sido cancelada, no se puede abonar a esta venta");
                 }
                 if ($operacion->getSaldo() <= 0) {
                     Logger::error("La venta ya ha sido saldada, no se puede abonar a esta venta");
                     Logger::log("La venta {$id_venta} tiene un total de " . $operacion->getTotal() . " y un saldo pendiente de " . $operacion->getSaldo() . " por lo tanto ya ha sido saldada.");
                     throw new Exception("La venta ya ha sido saldada, no se puede abonar a esta venta");
                 }
                 if ($operacion->getSaldo() - $monto < 0) {
                     Logger::error("No se puede abonar esta cantidad a esta venta, pues sobrepasa el total de la misma");
                     throw new Exception("No se puede abonar esta cantidad a esta venta, pues sobrepasa el total de la misma");
                 }
                 Logger::log("Insertando AbonoVenta...");
                 $abono = new AbonoVenta();
                 $abono->setIdVenta($id_venta);
                 $abono->setIdReceptor($id_usuario);
                 $abono->setIdDeudor($id_deudor);
                 //(OLD) $usuario->setSaldoDelEjercicio($usuario->getSaldoDelEjercicio() + $monto);
                 //Figu: se establece el saldo del cliente restandole la venta y a su vez si tiene adelanto se le incrementa su saldo
                 //$usuario->setSaldoDelEjercicio(  ( $usuario->getSaldoDelEjercicio() - $operacion->getTotal()  ) + $monto );
                 $usuario->setSaldoDelEjercicio($usuario->getSaldoDelEjercicio() + $monto);
                 $from = 3;
             } else {
                 Logger::error("No se recibio si el abono sera para una venta, una compra o un prestamo, no se hace nada");
                 throw new Exception("No se recibio si el abono sera para una venta, una compra o un prestamo, no se hace nada");
             }
         }
     }
     //Una vez hecho los cambios particulaes, se realizan los cambios generales
     $operacion->setSaldo($operacion->getSaldo() - $monto);
     $abono->setCancelado($cancelado);
     $abono->setIdCaja($id_caja);
     $abono->setFecha($fecha);
     $abono->setIdSucursal($id_sucursal);
     $abono->setMonto($monto);
     $abono->setNota($nota);
     $abono->setTipoDePago($tipo_pago);
     $id_cheques = array();
     $id_abono = null;
     DAO::transBegin();
     try {
         //Si se reciben cheques y el tipo de pago es cheque, se genera el nuevo cheque y
         //se va almacenando su id en el arreglo id_cheques
         if ($tipo_pago === "cheque" && !is_null($cheques)) {
             foreach ($cheques as $cheque) {
                 array_push($id_cheques, ChequesController::NuevoCheque($cheque["nombre_banco"], $cheque["monto"], $cheque["numero"], $cheque["expedido"]));
             }
         }
         //Dependiendo de que operacion se realizo se van guardando los cheques, los abonos y las operaciones
         //pues todas cambiaron.
         //Si se recibieron cheques, no se modifica la caja.
         //En el caso de las ventas, al final se busca la venta en la tabla venta_empresa y se pone como saldada
         //si ese ha sido el caso
         switch ($from) {
             case 1:
                 AbonoCompraDAO::save($abono);
                 CompraDAO::save($operacion);
                 $id_abono = $abono->getIdAbonoCompra();
                 $cheque_abono_compra = new ChequeAbonoCompra();
                 $cheque_abono_compra->setIdAbonoCompra($id_abono);
                 if (!is_null($id_caja) && empty($id_cheques)) {
                     CajasController::modificarCaja($id_caja, 0, $billetes, $monto);
                 }
                 foreach ($id_cheques as $id_cheque) {
                     $cheque_abono_compra->setIdCheque($id_cheque);
                     ChequeAbonoCompraDAO::save($cheque_abono_compra);
                 }
                 break;
             case 2:
                 AbonoPrestamoDAO::save($abono);
                 PrestamoDAO::save($operacion);
                 $id_abono = $abono->getIdAbonoPrestamo();
                 $cheque_abono_prestamo = new ChequeAbonoPrestamo();
                 $cheque_abono_prestamo->setIdAbonoPrestamo($id_abono);
                 if (!is_null($id_caja) && empty($id_cheques)) {
                     CajasController::modificarCaja($id_caja, 1, $billetes, $monto);
                 }
                 foreach ($id_cheques as $id_cheque) {
                     $cheque_abono_prestamo->setIdCheque($id_cheque);
                     ChequeAbonoPrestamoDAO::save($cheque_abono_prestamo);
                 }
                 break;
             case 3:
                 AbonoVentaDAO::save($abono);
                 VentaDAO::save($operacion);
                 $id_abono = $abono->getIdAbonoVenta();
                 $cheque_abono_venta = new ChequeAbonoVenta();
                 $cheque_abono_venta->setIdAbonoVenta($id_abono);
                 if (!is_null($id_caja) && empty($id_cheques)) {
                     CajasController::modificarCaja($id_caja, 1, $billetes, $monto);
                 }
                 foreach ($id_cheques as $id_cheque) {
                     $cheque_abono_venta->setIdCheque($id_cheque);
                     ChequeAbonoVentaDAO::save($cheque_abono_venta);
                 }
                 if ($operacion->getSaldo() >= $operacion->getTotal()) {
                     $ventas_empresa = VentaEmpresaDAO::search(new VentaEmpresa(array("id_venta" => $operacion->getIdVenta())));
                     foreach ($ventas_empresa as $venta_empresa) {
                         $venta_empresa->setSaldada(1);
                         VentaEmpresaDAO::save($venta_empresa);
                     }
                 }
         }
         /* Fin switch de from */
         UsuarioDAO::save($usuario);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("Error al crear el abono: " . $e);
         throw new Exception("Error al crear el abono");
     }
     DAO::transEnd();
     Logger::log("Abono creado exitosamente");
     return array("id_abono" => $id_abono);
 }
 protected function setUp()
 {
     SesionController::Iniciar(123, 1, true);
     $this->configuracion = new Configuracion(array('descripcion' => 'productos_visibles_en_vc'));
     $this->json = array("nombre_producto", "descripcion");
 }
 public static function Corte($fecha_final, $id_sucursal, $total_efectivo)
 {
     if ($fecha_final > time()) {
         throw new BusinessLogicException("You must give a time in the past.");
     }
     if ($fecha_final == 0) {
         $fecha_final = time();
     }
     $suc = SucursalDAO::getByPK($id_sucursal);
     if (is_null($suc)) {
         throw new InvalidDataException("'Sucursal' does not exist");
     }
     $corte = EfectivoController::UltimoCorte($suc);
     if (is_null($corte)) {
         //'CordeDeSucursal' has never happende,
         //use the opening date.
         $start_date = $suc->getFechaApertura();
     } else {
         $start_date = $corte->getFin();
     }
     //ASSERT( $fecha_final . "<=" . $start_date );
     $ingresos_por_tipo = array("BANCO" => 0.0, "CAJA" => 0.0);
     $ventas = VentasController::Lista($start_date, $fecha_final);
     //esto regresa, total, subtotal, impuesto
     $ventasTotal = VentaDAO::TotalVentasNoCanceladasAContadoDesdeHasta($start_date, $fecha_final);
     //$abonosTotal = AbonoVenta::TotalAbonosNoCanceladosDesdeHasta( $start_date, $fecha_final );
     /*
     foreach( $ventas as $v ){
     
         switch( $v->tipo_de_pago ){
             cash :      $ingresos[ cash ] += $v->getTotal();
             banco :     $ingresos[ banco ] += $v->getTotal()
             cheque :
             default: throw new Exception();
     
         }
     }
     */
     $cu = SesionController::Actual();
     $corte = new CorteDeSucursal();
     $corte->setIdSucursal($id_sucursal);
     $corte->setIdUsuario($cu["id_usuario"]);
     $corte->setInicio($start_date);
     $corte->setFin($fecha_final);
     $corte->setFechaCorte(time());
     try {
         CorteDeSucursalDAO::save($corte);
     } catch (Exception $e) {
         throw new InvalidDatabaseException($e);
     }
     return array("id_corte_sucursal" => $corte->getIdCorteSucursal());
 }
Beispiel #19
0
 /**
  *
  *Hacer un seguimiento al cliente
  *
  * @param texto string El texto que ingresa el que realiza el seguimiento
  **/
 static function NuevoSeguimiento($id_cliente, $texto)
 {
     $cliente = UsuarioDAO::getByPK($id_cliente);
     if (is_null($cliente)) {
         throw new InvalidDataException("Este cliente no existe");
     }
     if (strlen($texto) == 0) {
         throw new InvalidDataException("El texto no puede ser vacio");
     }
     $usuario_actual = SesionController::Actual();
     $s = new ClienteSeguimiento();
     $s->setIdCliente($id_cliente);
     $s->setIdUsuario($usuario_actual["id_usuario"]);
     $s->setFecha(time());
     $s->setTexto($texto);
     try {
         ClienteSeguimientoDAO::save($s);
     } catch (Exception $e) {
         throw new InvalidDatabaseOperationException($e);
     }
     return array("id_cliente_seguimiento" => $s->getIdClienteSeguimiento());
 }
Beispiel #20
0
 /**
  *
  *Registra una nueva compra fuera de caja, puede usarse para que el administrador haga directamente una compra. El usuario y al sucursal seran tomados de la sesion. La fecha sera tomada del servidor. La empresa sera tomada del almacen del cual fueron tomados los productos.
  *
  * @param descuento float Monto descontado por descuentos
  * @param subtotal float Total de la compra antes de impuestos y descuentos.
  * @param detalle json Objeto que contendr el arreglo de id productos, cantidad,  precio, descuento, id de unidad y procesado que involucran esta compra.
  * @param impuesto float Monto agregado por impuestos
  * @param tipo_compra string Si la compra es a credito o de contado
  * @param retencion float Monto agregado por retenciones
  * @param id_usuario_compra int Id usuario al que se le compra, si es a una sucursal, se pone el id en negativo
  * @param id_empresa int Id de la empresa a nombre de la cual se hace la compra
  * @param total float Total de la compra
  * @param cheques json Si el tipo de pago es con cheque, se almacena el nombre del banco, el monto y los ultimos 4 numeros del o de los cheques
  * @param saldo float Cantidad pagada de la 
  * @param tipo_de_pago string Si el pago sera en efectivo, con cheque o tarjeta
  * @return id_compra int Id autogenerado por la inserci�n de la compra
  **/
 public static function Nueva($descuento, $detalle, $id_empresa, $id_usuario_compra, $impuesto, $retencion, $subtotal, $tipo_compra, $total, $cheques = null, $id_sucursal = null, $saldo = 0, $tipo_de_pago = null)
 {
     Logger::log(" ===== Creando nueva compra... ===== ");
     //validemos al comprador
     $proveedor = UsuarioDAO::getByPK($id_usuario_compra);
     if (is_null($proveedor)) {
         Logger::error("el provedor {$id_usuario_compra} no exite");
         throw new InvalidDataException("El proveedor no existe");
     }
     if ($proveedor->getActivo() == false) {
         throw new BusinessLogicException("No se puede comprar de un proveedor no activo.");
     }
     //validemos la empresa
     $empresa = EmpresaDAO::getByPK($id_empresa);
     if (is_null($empresa)) {
         Logger::error("La empresa {$id_empresa} no existe");
         throw new InvalidDataException("La empresa que compra no existe.");
     }
     if ($empresa->getActivo() == false) {
         throw new BusinessLogicException("Una empresa inactiva no puede hacer compras.");
     }
     //validemos los valores conocidos
     //( 0 >= descuento > 100, subtotal > 0, total >= subtotal, etc etc)
     //validemos sucursal
     $sucursal = null;
     if (!is_null($id_sucursal) && strlen($id_sucursal) > 0) {
         $sucursal = SucursalDAO::getByPK($id_sucursal);
         if (is_null($sucursal)) {
             Logger::error("La sucursal {$id_sucursal} no existe");
             //throw new InvalidDataException("La sucural que se envio no existe.");
         }
     }
     //validemos detalles de compra
     //debe traer
     // 	-id_producto
     //	-cantidad
     //	-precio
     //	-lote
     if (!is_array($detalle)) {
         throw InvalidDataException("El detalle no es un arreglo");
     }
     for ($detalleIterator = 0; $detalleIterator < sizeof($detalle); $detalleIterator++) {
         //por cada producto
         //	-debe existir
         //	-si se lo compro a un proveedor no hay pedo
         // 	 si se lo compro a un cliente, debe de tener comprar_caja = 1
         //	-debe tener cantidad mayor a 0
         //	-que exista el lote a donde va a ir
         $p = $detalle[$detalleIterator];
         if (!isset($p->precio)) {
             throw new InvalidArgumentException("No se envio el precio");
         }
         if (!isset($p->id_producto)) {
             throw new InvalidArgumentException("No se envio el id_producto");
         }
         if (!isset($p->cantidad)) {
             throw new InvalidArgumentException("No se envio la cantidad");
         }
         if (!isset($p->lote)) {
             throw new InvalidArgumentException("No se envio el lote");
         }
         $producto = ProductoDAO::getByPK($p->id_producto);
         if (is_null($producto)) {
             throw new InvalidArgumentException("El producto a comprar no existe");
         }
         if ($p->cantidad <= 0) {
             throw new InvalidArgumentException("No puedes comprar 0 unidades");
         }
     }
     $s = SesionController::getCurrentUser();
     //terminaron las validaciones
     $compra = new Compra();
     $compra->setIdVendedorCompra($id_usuario_compra);
     $compra->setTipoDeCompra($tipo_compra);
     $compra->setFecha(time());
     $compra->setSubtotal($subtotal);
     $compra->setImpuesto($impuesto);
     $compra->setDescuento($descuento);
     $compra->setTotal($subtotal + $impuesto);
     $compra->setIdUsuario($s->getIdUsuario());
     $compra->setIdEmpresa($id_empresa);
     $compra->setSaldo(0);
     $compra->setCancelada(false);
     $compra->setTipoDePago($tipo_de_pago);
     $compra->setRetencion(0);
     try {
         DAO::transBegin();
         CompraDAO::save($compra);
     } catch (Exception $e) {
         DAO::transRollback();
         throw InvalidDatabaseOperationException($e);
     }
     for ($detalleIterator = 0; $detalleIterator < sizeof($detalle); $detalleIterator++) {
         //por cada producto
         //	--- procesos ---
         //	-insertar en productoempresa
         //	-insertar en loteproducto
         //	-insertar en entradalote
         //	-si el tipo de precio de venta es costo, actualizar
         //	-insertar compra producto
         $p = $detalle[$detalleIterator];
         try {
             ProductoEmpresaDAO::save(new ProductoEmpresa(array("id_empresa" => $id_empresa, "id_producto" => $p->id_producto)));
             if (is_null($p->lote)) {
                 throw new InvalidDataException("No selecciono a que lote ira el producto " . $p->id_producto);
             }
             if (strlen($p->lote) == 0) {
                 throw new InvalidDataException("No selecciono a que lote ira el producto " . $p->id_producto);
             }
             //busquemos el id del lote
             $l = LoteDAO::search(new Lote(array("folio" => $p->lote)));
             $l = $l[0];
             //busquemos la unidad que nos mandaron
             $uAbreviacion = $p->id_unidad;
             $uResults = UnidadMedidaDAO::search(new UnidadMedida(array("abreviacion" => $uAbreviacion, "activa" => 1)));
             if (sizeof($uResults) != 1) {
                 throw new InvalidDataException("La unidad de medida `" . $p->id_unidad . "` no existe, o no esta activa.");
             } else {
                 $p->id_unidad = $uResults[0]->getIdUnidadMedida();
             }
             //busequemos si este producto ya existe en este lote
             $lp = LoteProductoDAO::getByPK($l->getIdLote(), $p->id_producto);
             if (is_null($lp)) {
                 //no existe, insertar
                 $loteProducto = new LoteProducto(array("id_lote" => $l->getIdLote(), "id_producto" => $p->id_producto, "cantidad" => $p->cantidad, "id_unidad" => $p->id_unidad));
                 LoteProductoDAO::save($loteProducto);
             } else {
                 //ya existe, sumar
                 //revisemos si es de la misma unidad
                 if ($lp->getIdUnidad() == $p->id_unidad) {
                     //es igual, solo hay que sumar
                     $lp->setCantidad($lp->getCantidad() + $p->cantidad);
                 } else {
                     //no es igual, hay que convertir
                     try {
                         $r = UnidadMedidaDAO::convertir($p->id_unidad, $lp->getIdUnidad(), $p->cantidad);
                     } catch (BusinessLogicException $ide) {
                         //no se pudo convertir porque son de
                         //diferentes categorias
                         throw $ide;
                         //mostrar una excpetion mas fresona
                     }
                     $lp->setCantidad($lp->getCantidad() + $r);
                 }
                 //$lp->setCantidad( $lp->getCantidad() + $p->cantidad );
                 LoteProductoDAO::save($lp);
             }
             $loteEntrada = new LoteEntrada(array("id_lote" => $l->getIdLote(), "id_usuario" => $s->getIdUsuario(), "fecha_registro" => time(), "motivo" => "Compra a Proveedor"));
             LoteEntradaDAO::save($loteEntrada);
             LoteEntradaProductoDAO::save(new LoteEntradaProducto(array("id_lote_entrada" => $loteEntrada->getIdLoteEntrada(), "id_producto" => $p->id_producto, "id_unidad" => $p->id_unidad, "cantidad" => $p->cantidad)));
             $compraProducto = new CompraProducto(array("id_compra" => $compra->getIdCompra(), "id_producto" => $p->id_producto, "cantidad" => $p->cantidad, "precio" => $p->precio, "descuento" => 0, "impuesto" => 0, "id_unidad" => $p->id_unidad, "retencion" => 0));
             CompraProductoDAO::save($compraProducto);
         } catch (InvalidDataException $e) {
             Logger::error($e);
             DAO::transRollback();
             throw $e;
         } catch (exception $e) {
             Logger::error($e);
             DAO::transRollback();
             throw new InvalidDatabaseOperationException($e);
         }
     }
     //for
     try {
         DAO::transEnd();
     } catch (Exception $e) {
         throw InvalidDatabaseOperationException($e);
     }
     Logger::log("===== COMPRA " . $compra->getIdCompra() . " EXITOSA ===== ");
     return array("id_compra" => $compra->getIdCompra());
 }
Beispiel #21
0
 public static function NuevoCheque($nombre_banco, $monto, $numero, $expedido, $id_usuario = null)
 {
     Logger::log("creando cheque");
     //Se validan los parametros obtenidos
     $validar = self::validarParametrosCheque(null, $nombre_banco, $monto, $numero, $expedido);
     if (is_string($validar)) {
         Logger::error($validar);
         throw new Exception($validar);
     }
     $cheque = new Cheque();
     $cheque->setNombreBanco($nombre_banco);
     $cheque->setMonto($monto);
     $cheque->setNumero($numero);
     $cheque->setExpedido($expedido);
     if ($expedido) {
         $id_usuario = SesionController::getCurrentUser();
         if (is_null($id_usuario)) {
             Logger::error("No se pudo obtener el usuario de la sesion, ya inicio sesion?");
             throw new Exception("No se pudo obtener el usuario de la sesion, ya inicio sesion?");
         }
     }
     $cheque->setIdUsuario($id_usuario);
     DAO::transBegin();
     try {
         ChequeDAO::save($cheque);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo crear el cheque: " . $e);
         throw "No se pudo crear el cheque";
     }
     DAO::transEnd();
     Logger::log("Cheque creado exitosamente");
     return $cheque->getIdCheque();
 }
 public static function EditarDireccion($direccion)
 {
     //verificamos si se cambiaron las direcciones
     if (!is_null($direccion)) {
         Logger::log("\tEditando direccion ...");
         if (!is_array($direccion)) {
             //Logger::error("Verifique el formato de los datos de las direcciones, se esperaba un array ");
             //throw new Exception("Verifique el formato de los datos de las empresas, se esperaba un array ");
             $direccion = object_to_array($direccion);
         }
         $_direccion = new Direccion($direccion);
         $d = DireccionDAO::getByPK($_direccion->getIdDireccion());
         //verificamos si se va a editar una direccion o se va a crear una nueva
         if (isset($d->id_direccion)) {
             //se edita la direccion
             if (!($_direccion = DireccionDAO::getByPK($d->id_direccion))) {
                 DAO::transRollback();
                 Logger::error("No se tiene registro de la dirección con id : {$direccion->id_direccion}");
                 throw new InvalidDataException("No se tiene registro de la dirección con id : {$direccion->id_direccion}");
             }
             //bandera que indica si cambia algun parametro de la direccion
             $cambio_direccion = false;
             //calle
             if (array_key_exists('calle', $direccion)) {
                 $_direccion->setCalle($direccion['calle']);
                 $cambio_direccion = true;
             }
             //numero_exterior
             if (array_key_exists('numero_exterior', $direccion)) {
                 $cambio_direccion = true;
                 $_direccion->setNumeroExterior($direccion['numero_exterior']);
             }
             //numero_interior
             if (array_key_exists('numero_interior', $direccion)) {
                 $cambio_direccion = true;
                 $_direccion->setNumeroInterior($direccion['numero_interior']);
             }
             //referencia
             if (array_key_exists('referencia', $direccion)) {
                 $cambio_direccion = true;
                 $_direccion->setReferencia($direccion['referencia']);
             }
             //colonia
             if (array_key_exists('colonia', $direccion)) {
                 $cambio_direccion = true;
                 $_direccion->setColonia($direccion['colonia']);
             }
             //id_ciudad
             if (array_key_exists('id_ciudad', $direccion)) {
                 $cambio_direccion = true;
                 $_direccion->setIdCiudad($direccion['id_ciudad']);
             }
             //codigo_postal
             if (array_key_exists('codigo_postal', $direccion)) {
                 $cambio_direccion = true;
                 $_direccion->setCodigoPostal($direccion['codigo_postal']);
             }
             //telefono
             if (array_key_exists('telefono', $direccion)) {
                 $cambio_direccion = true;
                 $_direccion->setTelefono($direccion['telefono']);
             }
             //telefono2
             if (array_key_exists('telefono2', $direccion)) {
                 $cambio_direccion = true;
                 $_direccion->setTelefono2($direccion['telefono2']);
             }
             //Si cambio algun parametro de direccion, se actualiza el usuario que modifica y la fecha
             if ($cambio_direccion) {
                 $_direccion->setUltimaModificacion(time());
                 $id_usuario = SesionController::Actual();
                 $id_usuario = $id_usuario["id_usuario"];
                 if (is_null($id_usuario)) {
                     DAO::transRollback();
                     Logger::error("No se pudo obtener al usuario de la sesion, ya inicio sesion?");
                     throw new Exception("No se pudo obtener al usuario de la sesion, ya inicio sesion?");
                 }
                 $_direccion->setIdUsuarioUltimaModificacion($id_usuario);
                 //guardamos la direccion
                 try {
                     Logger::log("Salvando direccion...");
                     DireccionDAO::save($_direccion);
                 } catch (Exception $e) {
                     DAO::transRollback();
                     Logger::error("No se pudo guardar la direccion " . $e);
                     if ($e->getCode() == 901) {
                         throw new Exception("Error al guardar direccion de la sucursal {$sucursal->getRazonSocial()}: " . $e->getMessage(), 901);
                     }
                     throw new Exception("Error al guardar direccion de la sucursal {$sucursal->getRazonSocial()}", 901);
                 }
             }
             //cambio dir
         }
         //verificacion editar dir
     }
     // !is_null
 }
Beispiel #23
0
 /**
  *
  *Actualizar? los tipo de cambio con respecto a la moneda base de la empresa.
  *
  * @param id_empresa int El id de la empresa
  * @param monedas json Los valores de las equivalencias de las monedas activas con respecto a la moneda base
  * @param moneda_base string El codigo de la moneda base, una cadena de tres caracteres: "MXN"
  **/
 public static function ActualizarTiposCambio($id_empresa, $monedas, $moneda_base, $servicios)
 {
     $json_guardar = array();
     $json_guardar["servicio"] = $servicios;
     $json_guardar["fecha"] = time();
     $json_guardar["moneda_origen"] = $moneda_base;
     $json_guardar["tipos_cambio"] = array();
     foreach ($monedas as $moneda) {
         if (!is_numeric($moneda->equivalencia)) {
             Logger::Log("La moneda {$moneda} no tiene un valor numerico asignado");
             throw new BusinessLogicException("La moneda {$moneda} no tiene un valor numerico asignado");
         } else {
             $obj = new stdClass();
             $obj->moneda = $moneda->codigo;
             $obj->equivalencia = $moneda->equivalencia;
             $obj->conversion = "1 {$moneda_base} = " . $moneda->equivalencia . " " . $moneda->codigo;
             array_push($json_guardar["tipos_cambio"], $obj);
         }
     }
     $json_almacenar = json_encode($json_guardar);
     $c = new Configuracion();
     $s = SesionController::getCurrentUser();
     $c->setDescripcion("tipo_cambio");
     $conf = ConfiguracionDAO::search($c);
     //se crea el registro de configuracion tipo_cambio
     if (count($conf) < 1) {
         $c->setValor($json_almacenar);
         $c->setFecha(time());
         $c->setIdUsuario($s->getIdUsuario());
         try {
             ConfiguracionDAO::save($c);
             $c_e = new ConfiguracionEmpresa();
             $c_e->setIdConfiguracionEmpresa($c->getIdConfiguracion());
             $c_e->setIdEmpresa($id_empresa);
             ConfiguracionEmpresaDAO::save($c_e);
         } catch (Exception $e) {
             Logger::error("No se pudo crear la configuracion de monedas: " . $e->getMessage());
             throw new InvalidDatabaseOperationException("No se pudo crear la configuracion de monedas " . $e->getMessage());
         }
     } else {
         $editar = $conf[0];
         $editar->setValor($json_almacenar);
         $editar->setFecha(time());
         $editar->setIdUsuario($s->getIdUsuario());
         try {
             ConfiguracionDAO::save($editar);
         } catch (Exception $e) {
             Logger::error("No se pudo crear la configuracion de monedas: " . $e->getMessage());
             throw new InvalidDatabaseOperationException("No se pudo crear la configuracion de monedas " . $e->getMessage());
         }
     }
     $monedabase = new Moneda();
     $monedabase->setSimbolo($moneda_base);
     $mb = MonedaDAO::search($monedabase);
     $historial_tc = new HistorialTipoCambio();
     $historial_tc->setFecha(time());
     $historial_tc->setJsonEquivalencias($json_almacenar);
     $historial_tc->setIdEmpresa($id_empresa);
     $historial_tc->setIdMonedaBase($mb[0]->getIdMoneda());
     try {
         HistorialTipoCambioDAO::save($historial_tc);
     } catch (Exception $e) {
         Logger::error("No se pudo guardar el historial tipo cambio: " . $e->getMessage());
         throw new InvalidDatabaseOperationException("No se pudo guardar el historial tipo cambio: " . $e->getMessage());
     }
     return array("status" => "ok");
 }
Beispiel #24
0
     require_once 'controller/factura.controller.php';
     break;
 case 1300:
     require_once 'controller/printer.controller.php';
     break;
 case 1400:
     require_once 'controller/client.controller.php';
     break;
 case 2000:
     break;
 case 2001:
     print '{"success":true, "sesion": false }';
     break;
 case 2004:
     //revisar login
     $token = SesionController::Iniciar($args["p"], $args["u"], true);
     echo json_encode(array("success" => $token["login_succesful"], "text" => "Credenciales invalidas"));
     break;
 case 2005:
     //dispatch
     $debug = isset($args['DEBUG']) ? "?debug" : "";
     echo "<script>window.location = 'sucursal.php" . $debug . "'; </script>";
     break;
 case 3000:
     $c = new stdClass();
     $c->servicios = array();
     foreach (ServicioDAO::getAll() as $servicio) {
         array_push($c->servicios, array("id_servicio" => $servicio->getIdServicio(), "nombre_servicio" => $servicio->getNombreServicio()));
     }
     echo json_encode($c);
     break;
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
EfectivoController::NuevoCorte();
$page->render();
return;
//
// Parametros necesarios
//
$page->requireParam("cid", "GET", "Esta caja no existe.");
$esta_caja = CajaDAO::getByPK($_GET["cid"]);
$page->addComponent(new TitleComponent("Corte a la caja " . $esta_caja->getDescripcion() . ". El saldo esperado es de: " . $esta_caja->getSaldo(), 3));
//
// Forma de producto
//
$form = new DAOFormComponent(new CorteDeCaja());
$form->addApiCall("api/sucursal/caja/corte", "GET");
$form->onApiCallSuccessRedirect("sucursales.lista.caja.php");
$form->hideField(array("id_corte_de_caja", "saldo_esperado", "id_caja", "fecha"));
$form->makeObligatory(array("saldo_real", "saldo_final"));
$form->createComboBoxJoinDistintName("id_cajero", "id_usuario", "nombre", UsuarioDAO::search(new Usuario(array("id_rol" => 3, "activo" => 1), SesionController::getCurrentUser())));
$form->createComboBoxJoinDistintName("id_cajero_nuevo", "id_usuario", "nombre", UsuarioDAO::search(new Usuario(array("id_rol" => 3, "activo" => 1), SesionController::getCurrentUser())));
$form->setValueField("id_caja", $_GET["cid"]);
$form->sendHidden("id_caja");
$page->addComponent($form);
$page->render();
Beispiel #26
0
 private static function Cotizar($descuento, $id_comprador_venta, $impuesto, $subtotal, $tipo_venta, $total, $datos_cheque = null, $detalle_orden = null, $detalle_paquete = null, $detalle_venta = null, $id_sucursal = null, $saldo = "0", $tipo_de_pago = null)
 {
     Logger::log("Cotizando ....");
     //Se obtiene el id del usuario actualmente logueado
     $aS = SesionController::Actual();
     $id_usuario = $aS["id_usuario"];
     //Se busca al usuario comprador
     $usuario = UsuarioDAO::getByPK($id_comprador_venta);
     if (!is_null($id_sucursal)) {
         $sucursal = SucursalDAO::getByPK($id_sucursal);
         if (is_null($sucursal)) {
             Logger::error("La sucursal " . $id_sucursal . " no existe");
             throw new InvalidDataException("La sucursal no existe", 901);
         }
         if (!$sucursal->getActiva()) {
             Logger::error("La sucursal " . $id_sucursal . " esta desactivada");
             throw new InvalidDataException("La sucursal esta desactivada", 901);
         }
     }
     //Se inicializa la venta con los parametros obtenidos
     $venta = new Venta();
     $venta->setRetencion(0);
     $venta->setEsCotizacion(true);
     $venta->setIdCompradorVenta($id_comprador_venta);
     $venta->setSubtotal($subtotal);
     $venta->setImpuesto($impuesto);
     $venta->setTotal($total);
     $venta->setDescuento($descuento);
     $venta->setTipoDeVenta($tipo_venta);
     $venta->setIdCaja(null);
     $venta->setIdSucursal($id_sucursal);
     $venta->setIdUsuario($id_usuario);
     $venta->setIdVentaCaja(NULL);
     $venta->setCancelada(0);
     $venta->setTipoDePago(null);
     $venta->setSaldo(0);
     $venta->setFecha(time());
     DAO::transBegin();
     try {
         VentaDAO::save($venta);
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo realizar la venta: " . $e);
         throw new Exception("No se pudo realizar la venta", 901);
     }
     //Si el detalle de las ordenes compradas, el detalle de los paquetes y el detalle de los productos
     //son nulos, manda error.
     if (is_null($detalle_orden) && is_null($detalle_paquete) && is_null($detalle_venta)) {
         throw new InvalidDataException("No se recibieron ni paquetes ni productos ni servicios para esta venta", 901);
     }
     //Por cada detalle, se valida la informacion recibida, se guarda en un registro
     //que contiene el id de la venta generada y se guarda el detalle en su respectiva tabla.
     if (!is_null($detalle_venta)) {
         $detalle_producto = object_to_array($detalle_venta);
         if (!is_array($detalle_producto)) {
             throw new Exception("El detalle del producto es invalido", 901);
         }
         foreach ($detalle_producto as $d_p) {
             $d_producto = new VentaProducto();
             $d_producto->setIdVenta($venta->getIdVenta());
             if (!array_key_exists("id_producto", $d_p) || !array_key_exists("cantidad", $d_p) || !array_key_exists("precio", $d_p) || !array_key_exists("descuento", $d_p) || !array_key_exists("impuesto", $d_p) || !array_key_exists("retencion", $d_p) || !array_key_exists("id_unidad", $d_p)) {
                 throw new Exception("El detalle del producto es invalido", 901);
             }
             Logger::log("Insertando venta_producto:");
             $d_producto->setCantidad($d_p["cantidad"]);
             $d_producto->setDescuento($d_p["descuento"]);
             $d_producto->setIdProducto($d_p["id_producto"]);
             $d_producto->setIdUnidad($d_p["id_unidad"]);
             $d_producto->setImpuesto($d_p["impuesto"]);
             $d_producto->setPrecio($d_p["precio"]);
             $d_producto->setRetencion($d_p["retencion"]);
             Logger::log($d_producto);
             try {
                 VentaProductoDAO::save($d_producto);
             } catch (Exception $e) {
                 DAO::transRollback();
                 Logger::error("No se pudo realizar la venta: " . $e);
                 throw new Exception("No se pudo realizar la venta", 901);
             }
         }
     }
     /* Fin de if para detalle_producto */
     DAO::transEnd();
     Logger::log("====== Cotizacion realizada exitosamente ======== ");
     return array("id_venta" => $venta->getIdVenta());
 }
Beispiel #27
0
    private function _renderWrapper()
    {
        if (!$this->parital_head_rendered) {
            $this->parital_head_rendered = true;
            ?>
			<!DOCTYPE html>
			<html xmlns="http://www.w3.org/1999/xhtml" lang="es" >
			<head>
			<title><?php 
            echo $this->title;
            ?>
</title>
			<meta charset=utf-8">

				<link rel="stylesheet" type="text/css" href="http://api.caffeina.mx/ext-4.0.0/resources/css/ext-all.css" /> 
			    <script type="text/javascript" src="http://api.caffeina.mx/ext-4.0.0/ext-all.js"></script>
			    <!--
				<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
			-->
			<!--
				<script type="text/javascript" charset="utf-8" src="http://cdn.sencha.io/ext-4.1.0-gpl/ext-all.js"></script>
			-->
				<?php 
            if (is_file("../css/basic.css")) {
                ?>
<link type="text/css" rel="stylesheet" href="../css/basic.css"/><?php 
            }
            ?>
				<?php 
            if (is_file("../../css/basic.css")) {
                ?>
<link type="text/css" rel="stylesheet" href="../../css/basic.css"/><?php 
            }
            ?>
				<?php 
            if (is_file("css/basic.css")) {
                ?>
<link type="text/css" rel="stylesheet" href="css/basic.css"/><?php 
            }
            ?>
								
				


				<script type="text/javascript" charset="utf-8" src="http://api.caffeina.mx/ext-4.0.0/examples/ux/grid/TransformGrid.js"></script>
				<?php 
            if (is_file("../g/gerencia.js")) {
                ?>
 <script type="text/javascript" charset="utf-8" src="../g/gerencia.js"></script> <?php 
            } else {
                ?>
 <script type="text/javascript" charset="utf-8" src="gerencia.js"></script> <?php 
            }
            ?>
				
				<!--<script type="text/javascript" charset="utf-8" src="../g/gerencia.js"></script>	-->
				<script type="text/javascript" charset="utf-8">
					if(HtmlEncode===undefined){var HtmlEncode=function(a){var b=a.length,c=[];while(b--){var d=a[b].charCodeAt();if(d>127/*||d>90&&d<97*/){c[b]="&#"+d+";"}else{c[b]=a[b]}}return c.join("")}} 
				</script>
			</head>
			<body class="">
			<!-- <div id="FB_HiddenContainer" style="position:absolute; top:-10000px; width:0px; height:0px;"></div> -->
			<div class="devsitePage">
				<div class="menu">
					<div class="content">
						<a class="logo" href="index.php">
						
							<!--<img class="img" src="../../../media/N2f0JA5UPFU.png" alt="" width="166" height="17"/>-->
							<div style="width:166px; height: 17px">
							
							</div>
						</a>

						<?php 
            echo $this->_renderTopMenu();
            ?>
					


						<a class="l">
							<img style="margin-top:8px; display: none;" id="ajax_loader" src="../../media/loader.gif">
						</a>

<!-- -->
						<?php 
            $s = SesionController::Actual();
            if (!is_null($s["id_usuario"])) {
                ?>
						<script type="text/javascript" charset="utf-8">
							
							Ext.onReady(function(){				

						        Ext.define("Resultados", {
						            extend: 'Ext.data.Model',
						            proxy: {
						                type: 'ajax',
									    url : '../api/pos/buscar/',
									    extraParams : {
										    auth_token : Ext.util.Cookies.get("at")
									    },
						                reader: {
						                    type: 'json',
						                    root: 'resultados',
						                    totalProperty: 'numero_de_resultados'
						                }
						            },

						            fields: [

									    {name: 'texto',		mapping: 'texto'},
									    {name: 'id', 		mapping: 'id'},
									    {name: 'tipo', 		mapping: 'tipo'}
									    
						            ]
						        });

						        dss = Ext.create('Ext.data.Store', {
						            pageSize: 10,
						            model: 'Resultados'
						        });

						        Ext.create('Ext.panel.Panel', {
						            renderTo: "BuscadorComponent_001",
						            width: '88%',
						            bodyPadding: 1,
									height: "26px",
						            layout: 'anchor',

						            items: [{
									    listeners :{
										    "select" : function(a,b,c){
												if(b.length != 1) return;
												
												if(b[0].get("tipo") == "cliente"){
													window.location = "clientes.ver.php?cid=" + b[0].get("id");
													console.log("fue cliente"); return;
												}
												
												if(b[0].get("tipo") == "producto"){
													window.location = "productos.ver.php?pid=" + b[0].get("id");
													console.log("fue producto"); return;
												}

												console.log("no fue ninguno :(");
											}
									    },
						                xtype: 'combo',
						                store: dss,
						                emptyText : "Buscar",
						                //displayField: 'title',
						                typeAhead: true,
						                hideLabel: true,
						                hideTrigger:true,

						                listConfig: {
											/*Ext.view.BoundListView */
						                    loadingText: 'Buscando...',
						                    emptyText: 'No se encontraron clientes.',
												
						                    // Custom rendering template for each item
						                     getInnerTpl: function() {
							                        return '<div>{tipo}<br><b>{texto}</b></div>';
							                    }
						                },
						                pageSize: 0
						            }]


						        });

					        });//onReady
						</script>
						
						<div class="search">
							<div id="BuscadorComponent_001"></div>
						</div>
						<?php 
            }
            ?>
<!-- -->
						<div class="clear">
						</div>
					</div>
				</div>
				<div class="body nav">
					<div class="content">

						<!-- ----------------------------------------------------------------------
										MENU
							 ---------------------------------------------------------------------- -->

						<div id="bodyMenu" class="bodyMenu">
							<div>
															<?php 
            if (defined("IID") && is_file("../static/" . IID . ".jpg")) {
                $file = "../static/" . IID . ".jpg";
                ?>
								<div style="
												border-bottom: 1px solid white;
												
												-moz-box-shadow: 0px 0px 5px rgba(0, 0, 0, .52);
												-webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, .52);
												box-shadow: 0px 0px 5px rgba(0, 0, 0, .52);
												width: 166px; 
												height: 140px; 

												background-size:166px; 
												background-repeat: no-repeat; 
												background-image: url(<?php 
                echo $file;
                ?>
)">
								</div>
								<?php 
            }
            ?>
						
							</div>
							<div class="toplevelnav">

							<?php 
            $this->_renderMenu();
            ?>
						</div></div>
					

					
						<!-- ----------------------------------------------------------------------
										CONTENIDO
							 ---------------------------------------------------------------------- -->
						<div id="bodyText" class="bodyText">
							<div class="header">
								<div class="content">
								<style>
								.msg .x-box-mc {
								    font-size:14px;
								}
								#msg-div {
								    position:absolute;
								    left:55%;
								    top:10px;
								    width:300px;
								    z-index:20000;
								}
								#msg-div .msg {
								    border-radius: 8px;
								    -moz-border-radius: 8px;
								    background: #F6F6F6;
								    border: 2px solid #ccc;
								    margin-top: 2px;
								    padding: 10px 15px;
								    color: #555;
								}
								#msg-div .msg h3 {
								    margin: 0 0 8px;
								    font-weight: bold;
								    font-size: 15px;
								}
								#msg-div .msg p {
								    margin: 0;
								}</style>
								
								
			<?php 
        }
        ?>
	
								<?php 
        for ($i = $this->partial_render_n; $i < sizeof($this->components); $i++) {
            echo $this->components[$i]->renderCmp();
            $this->partial_render_n++;
        }
        if ($this->partial_render) {
            $this->partial_render = false;
            return;
        }
        ?>
							</div>
						</div>


						<div class="mtm pvm uiBoxWhite topborder">
							<div class="mbm"></div>
							<!--<abbr class="timestamp">Generado <?php 
        echo date("r", time());
        ?>
</abbr>-->
						</div>
					</div>

					<div class="clear"></div>

				</div>
				
			</div>
			<div class="footer">
				<div class="content">
					
					<div class="copyright">
					<?php 
        if (defined("SVN_REV")) {
            echo "CAFFEINA POS ERP DEV BUILD: <b>2.0</b> r<b>" . SVN_REV . "</b> |";
        }
        ?>
					 <a href="http://caffeina.mx"> Caffeina Software</a>
					</div>

					<div class="links">
						<a href="">Admin</a>
						<a href="">API Publica</a>
						<a href="pos/j/">Desarrolladores</a>

					</div>
				</div>
			</div>

			
		</div>
		<?php 
        if (!is_null($this->GA)) {
            ?>
			<script type="text/javascript">

			  var _gaq = _gaq || [];
			  _gaq.push(['_setAccount', '<?php 
            echo $this->GA;
            ?>
']);
			  _gaq.push(['_trackPageview']);

			  (function() {
			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
			  })();

			</script>
			<?php 
        }
        ?>

			<div style="" id="PosImSpace"></div>

		</body>
		</html>
	
		<?php 
    }
Beispiel #28
0
 public static function setUpBeforeClass()
 {
     SesionController::Iniciar(123, 1, true);
 }
 /**
  *
  *Crea un nuevo proveedor
  *
  * @param id_tipo_proveedor int Id del tipo proveedor al que pertenece este usuario
  * @param password string Password del proveedor para entrar al sistema
  * @param nombre string Nombre del proveedor
  * @param codigo_proveedor string Codigo interno para identificar al proveedor
  * @param codigo_postal string Codigo postal de la direccion del proveedor
  * @param id_ciudad int Id de la ciudad de la direccion del proveedor
  * @param texto_extra string Referencia de la direcciond el proveedor
  * @param numero_interior string Numero interior de la direccion del proveedor
  * @param numero_exterior string Numero exterior de la direccion del proveedor
  * @param direccion_web string Direccion web del proveedor
  * @param retenciones json Retenciones que afectan a este proveedor
  * @param impuestos json Ids de los impuestos que afectan a este proveedor
  * @param dias_embarque int Dias en que el proveedor embarca ( Lunes, Martes, Miercoles, Jueves..)
  * @param telefono_personal string Telefono personal del proveedor
  * @param rfc string RFC del proveedor
  * @param calle string Calle de la direccion del proveedor
  * @param email string Correo electronico del proveedor
  * @param id_moneda int Id de la moneda preferente del proveedor
  * @param cuenta_bancaria string Cuenta bancaria del proveedor
  * @param activo bool Si este proveedor esta activo o no
  * @param representante_legal string Representante legal del proveedor
  * @param tiempo_entrega string Tiempo de entrega del proveedor en dias
  * @param limite_credito float Limite de credito que otorga el proveedor
  * @param dias_de_credito int Dias de credito que otorga el proveedor
  * @param telefono1 string Telefono 1 de la direccion del proveedor
  * @param telefono2 string Telefono 2 de la direccion del proveedor
  * @return id_proveedor int Id autogenerado por la inserci�n del nuevo proveedor.
  **/
 public static function Nuevo($codigo_proveedor, $id_tipo_proveedor, $nombre, $password, $activo = null, $cuenta_bancaria = null, $dias_de_credito = null, $dias_embarque = true, $direcciones = null, $direccion_web = null, $email = null, $id_moneda = null, $id_tarifa_compra = null, $id_tarifa_venta = null, $impuestos = null, $limite_credito = null, $representante_legal = null, $retenciones = null, $rfc = null, $telefono_personal1 = null, $telefono_personal2 = null, $tiempo_entrega = null)
 {
     Logger::log("Creando nuevo proveedor");
     //Se obtiene la informacion actual
     $actual = SesionController::Actual();
     //Se utiliza el metodo de nuevo usuario, este se encarga de las validaciones.
     //El rol numero 6 es tomado como el rol de proveedor
     try {
         $proveedor = PersonalYAgentesController::NuevoUsuario($codigo_proveedor, 6, $nombre, $password, 0, $email, $cuenta_bancaria, null, null, null, null, $dias_de_credito, $dias_embarque, null, null, $direcciones, 0, null, $id_tipo_proveedor, $id_moneda, $actual["id_sucursal"], $id_tarifa_compra, $id_tarifa_venta, $impuestos, null, $limite_credito, null, $direccion_web, $representante_legal, $retenciones, $rfc, null, null, $telefono_personal1, $telefono_personal2, $tiempo_entrega);
     } catch (BusinessLogicException $ble) {
         //propagate
         throw $ble;
     } catch (Exception $e) {
         Logger::error("No se pudo crear al nuevo proveedor: " . $e);
         throw new Exception("No se pudo crear al nuevo proveedor");
     }
     Logger::log("Proveedor creado exitosamente");
     return array("id_proveedor" => $proveedor["id_usuario"]);
 }
Beispiel #30
0
 public static function getCurrentUser()
 {
     if (!is_null(self::$_current_user)) {
         return self::$_current_user;
     }
     $auth_token = null;
     if (isset($_GET["auth_token"])) {
         $auth_token = $_GET["auth_token"];
     } else {
         if (isset($_POST["auth_token"])) {
             $auth_token = $_POST["auth_token"];
         } else {
             if (isset($_GET["at"])) {
                 $auth_token = $_GET["at"];
             } else {
                 if (isset($_POST["at"])) {
                     $auth_token = $_POST["at"];
                 } else {
                     $sm = SessionManager::getInstance();
                     $auth_token = $sm->GetCookie("at");
                 }
             }
         }
     }
     self::$_current_user = null;
     if (!is_null($auth_token)) {
         self::$_current_user = SesionDAO::getUserByAuthToken($auth_token);
     }
     /*
     //there is authtoken in the POST message
     if( isset($_POST["at"]) && !is_null($_POST["at"]) ){
     	//Logger::log("post");
     	self::$_current_user = SesionDAO::getUserByAuthToken( $_POST["at"] );
     }
     
     //there is authtoken in the GET message
     if(isset($_GET["at"]) && !is_null($_GET["at"])){
     	//Logger::log("get");
     	self::$_current_user = SesionDAO::getUserByAuthToken( $_GET["at"] );
     }
     */
     return self::$_current_user;
 }