Ejemplo n.º 1
0
 public function testBuscarProductosPorID_Sucursal()
 {
     $dir_suc = self::RandomString(25, FALSE, FALSE, FALSE);
     $desc = self::RandomString(10, FALSE, FALSE, FALSE);
     $sucursal = SucursalesController::Nueva($descripcion = $desc, $direccion = $dir_suc, $id_tarifa = 1);
     $this->assertInternalType("int", $sucursal['id_sucursal'], "---- 'testBuscarProductosPorID_Sucursal' 'id_sucursal' NO ES UN ENTERO");
     $empresa_rfc = self::RandomString(13, FALSE, FALSE, FALSE);
     $empresa_razon = self::RandomString(10, FALSE, FALSE, FALSE);
     $contabilidad['id_moneda'] = 1;
     $contabilidad['ejercicio'] = "2013";
     $contabilidad['periodo_actual'] = 1;
     $contabilidad['duracion_periodo'] = 1;
     $empresa = EmpresasController::Nuevo((object) $contabilidad, $direccion = array(array("calle" => "Monte Balcanes", "numero_exterior" => "107", "colonia" => "Arboledas", "id_ciudad" => 334, "codigo_postal" => "38060", "numero_interior" => null, "referencia" => "Calle cerrada", "telefono1" => "4616149974", "telefono2" => "45*451*454")), $razon_social = $empresa_razon, $rfc = $empresa_rfc);
     $this->assertInternalType("int", $empresa['id_empresa'], "---- 'testBuscarProductosPorID_Sucursal' 'id_empresa' NO ES UN ENTERO");
     //se crea un nuevo producto
     $codigo_p = self::RandomString(5, FALSE, FALSE, FALSE);
     $nombre_p = self::RandomString(15, FALSE, FALSE, FALSE);
     $p = ProductosController::Nuevo($activo = true, $codigo_producto = $codigo_p, $compra_en_mostrador = true, $id_unidad_compra = 1, $metodo_costeo = "costo", $nombre_producto = $nombre_p, $visible_en_vc = true, $codigo_de_barras = null, $control_de_existencia = null, $costo_estandar = 10, $descripcion_producto = null, $foto_del_producto = null, $garantia = null, $id_categoria = null, $id_empresas = array($empresa['id_empresa']), $id_unidad = null, $impuestos = null, $precio_de_venta = 12);
     //TODO: En un futuro desaparecera esto ya que por instancia lo correctro es que haya una sola empresa y todas als sucursales perteneceran a la empresa
     ProductoEmpresaDAO::save(new ProductoEmpresa(array("id_producto" => $p["id_producto"], "id_empresa" => $empresa['id_empresa'])));
     SucursalEmpresaDAO::save(new SucursalEmpresa(array("id_sucursal" => $sucursal['id_sucursal'], "id_empresa" => $empresa['id_empresa'])));
     $res = ProductosController::Buscar($query = null, $id_producto = null, $id_sucursal = $sucursal['id_sucursal']);
     $this->assertInternalType("int", $res["numero_de_resultados"], "---- 'testBuscarProductosPorID_Sucursal' 'numero_de_resultados' NO ES UN ENTERO");
     $this->assertGreaterThan(0, $res['numero_de_resultados'], "---- 'testBuscarProductosPorID_Sucursal' SE DEBIÓ DE ENCONTRAR ALMENOS 1 RESULTADO CON NOMBRE PRODUCTO: " . $nombre_p);
 }
Ejemplo n.º 2
0
 public static function CreateSucursalAndReturnID($appendToName = null)
 {
     $address = array("calle" => "Arboledas", "numero_exterior" => "Arboledas", "colonia" => "Arboledas", "id_ciudad" => "Arboledas", "codigo_postal" => "Arboledas", "numero_interior" => "Arboledas", "referencia" => "Arboledas", "telefono1" => "Arboledas", "telefono2" => "Arboledas");
     if (is_null($appendToName)) {
         $r = SucursalesController::Nueva(time(), $address, 1);
     } else {
         $r = SucursalesController::Nueva(time() . $appendToName, $address, 1);
     }
     return $r["id_sucursal"];
 }
Ejemplo n.º 3
0
 public function testBuscarProductosPorID_Sucursal()
 {
     $dir_suc = self::RandomString(25, FALSE, FALSE, FALSE);
     $suc_razon = self::RandomString(10, FALSE, FALSE, FALSE);
     $sucursal = SucursalesController::Nueva($direccion = $dir_suc, $razon_social = $suc_razon);
     $this->assertInternalType("int", $sucursal['id_sucursal'], "---- 'testBuscarProductosPorID_Sucursal' 'id_sucursal' NO ES UN ENTERO");
     $empresa_rfc = self::RandomString(13, FALSE, FALSE, FALSE);
     $empresa_razon = self::RandomString(10, FALSE, FALSE, FALSE);
     $empresa = EmpresasController::Nuevo($direccion = array(array("calle" => "Monte Balcanes", "numero_exterior" => "107", "colonia" => "Arboledas", "id_ciudad" => 334, "codigo_postal" => "38060", "numero_interior" => null, "referencia" => "Calle cerrada", "telefono1" => "4616149974", "telefono2" => "45*451*454")), $id_moneda = 1, $razon_social = $empresa_razon, $rfc = $empresa_rfc, $cedula = null, $email = null, $impuestos_compra = "", $impuestos_venta = null, $logo = null, $representante_legal = null, $sucursales = array($sucursal['id_sucursal']), $texto_extra = null);
     $this->assertInternalType("int", $empresa['id_empresa'], "---- 'testBuscarProductosPorID_Sucursal' 'id_empresa' NO ES UN ENTERO");
     //se crea un nuevo producto
     $codigo_p = self::RandomString(5, FALSE, FALSE, FALSE);
     $nombre_p = self::RandomString(15, FALSE, FALSE, FALSE);
     $p = ProductosController::Nuevo($activo = true, $codigo_producto = $codigo_p, $compra_en_mostrador = true, $costo_estandar = 10, $id_unidad_compra = 1, $metodo_costeo = "costo", $nombre_producto = $nombre_p, $codigo_de_barras = null, $control_de_existencia = null, $descripcion_producto = null, $foto_del_producto = null, $garantia = null, $id_categoria = null, $id_empresas = array($empresa['id_empresa']), $id_unidad = null, $impuestos = null, $precio_de_venta = 12);
     $res = ProductosController::Buscar($query = null, $id_producto = null, $id_sucursal = $sucursal['id_sucursal']);
     $this->assertInternalType("int", $res["numero_de_resultados"], "---- 'testBuscarProductosPorID_Sucursal' 'numero_de_resultados' NO ES UN ENTERO");
     $this->assertGreaterThan(0, $res['numero_de_resultados'], "---- 'testBuscarProductosPorID_Sucursal' SE DEBIÓ DE ENCONTRAR ALMENOS 1 RESULTADO CON NOMBRE PRODUCTO: " . $nombre_p);
 }
Ejemplo n.º 4
0
 public function testEditar()
 {
     //creamos una sucursal para fines del experimento
     $direccion = array("calle" => "Monte Balcanes", "numero_exterior" => "107", "numero_interior" => null, "colonia" => "Arboledas", "codigo_postal" => "38060", "id_ciudad" => 334, "referencia" => "Calle cerrada", "telefono1" => "4616149974", "telefono2" => "45*451*454");
     $sucursal = SucursalesController::Nueva("Sucursal de phpunit editar " . time(), $direccion, 1, 1, null);
     //para cambiar la moneda
     try {
         $moneda = new Moneda(array("nombre" => "Moneda_" . time(), "simbolo" => "Simbolo_" . time(), "activa" => 1));
         MonedaDAO::save($moneda);
     } catch (Exception $e) {
     }
     //editar basico
     SucursalesController::Editar($id_sucursal = $sucursal["id_sucursal"], $activo = 0, $descripcion = "Descripcion de la sucursal", $direccion = null, $empresas = null, $id_gerente = 1, $id_moneda = $moneda->getIdMoneda(), $razon_social = "Empresa x", $saldo_a_favor = "100000");
     //editar la direccion
     SucursalesController::Editar($id_sucursal = $sucursal["id_sucursal"], $activo = 0, $descripcion = "_EDITADO_" . time(), $direccion = array("calle" => "Monte Balcanes", "numero_exterior" => "107", "colonia" => "Arboledas", "id_ciudad" => 334, "codigo_postal" => "38060", "numero_interior" => null, "texto_extra" => "Calle cerrada", "telefono1" => "4616149974", "telefono2" => "45*451*454"), $empresas = null, $id_gerente = 1, $id_moneda = $moneda->getIdMoneda(), $razon_social = "Empresa x", $saldo_a_favor = "100000");
     //vamos a ver si si se edito esa madre
     $_s = SucursalDAO::getByPK($sucursal["id_sucursal"]);
     $this->assertEquals($descripcion, $_s->getDescripcion());
     $_d = DireccionDAO::getByPK($_s->getIdDireccion());
     $this->assertEquals($_d->getCalle(), "Monte Balcanes");
     $this->assertEquals($_d->getNumeroExterior(), "107");
     $this->assertEquals($_d->getColonia(), "Arboledas");
     $this->assertEquals($_d->getIdCiudad(), 334);
     $this->assertEquals($_d->getCodigoPostal(), "38060");
     //$this->assertEquals($_d->getTextoExtra(),		"Calle cerrada");
 }
Ejemplo n.º 5
0
 protected function GenerateResponse()
 {
     try {
         $this->response = SucursalesController::Detalles(isset($_POST['id_sucursal']) ? $_POST['id_sucursal'] : null);
     } catch (Exception $e) {
         //Logger::error($e);
         throw new ApiException($this->error_dispatcher->invalidDatabaseOperation($e->getMessage()));
     }
 }
Ejemplo n.º 6
0
 /**
  *
  * Procesar producto no es mas que moverlo de lote.
  *
  * @param id_lote_nuevo int Id del lote al que se mover el producto
  * @param id_producto int Id del producto a mover
  * @param id_lote_viejo int Id del lote donde se encontraba el producto
  * @param cantidad float Si solo se movera una cierta cantidad de producto al nuevo lote. Si este valor no es obtenido, se da por hecho que se movera toda la cantidad de ese producto al nuevo lote
  * */
 public static function Procesar_producto($cantidad_nueva, $cantidad_vieja, $id_almacen_nuevo, $id_almacen_viejo, $id_producto_nuevo, $id_producto_viejo, $id_unidad_nueva, $id_unidad_vieja)
 {
     Logger::log("Procesando " . $cantidad_vieja . " productos con id:" . $id_producto_viejo . " \n                en unidad:" . $id_unidad_vieja . " a " . $cantidad_nueva . " productos con id:" . $id_producto_nuevo . " en unidad:" . $id_unidad_nueva);
     $productos_salida = array(array("id_producto" => $id_producto_viejo, "id_unidad" => $id_unidad_vieja, "cantidad" => $cantidad_vieja));
     $productos_entrada = array(array("id_producto" => $id_producto_nuevo, "id_unidad" => $id_unidad_nueva, "cantidad" => $cantidad_nueva));
     //Se utilizaran los metodos de entrada y salida almacen, pues estos se encargaran de todas las validaciones
     DAO::transBegin();
     try {
         //primero se saca del almacen el producto a transformar
         SucursalesController::SalidaAlmacen($productos_salida, $id_almacen_viejo, "Producto que sera procesado");
         //Despues se inserta el nuevo producto en el nuevo almacen
         SucursalesController::EntradaAlmacen($productos_entrada, $id_almacen_nuevo, "Producto resultado del procesado");
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se ha podido procesar todo el producto: " . $e);
         if ($e->getCode() == 901) {
             throw new Exception("No se ha podido procesar todo el producto: " . $e->getMessage(), 901);
         }
         throw new Exception("No se ha podido procesar todo el producto, consulte a su administrador de sistema", 901);
     }
     DAO::transEnd();
     Logger::log("Producto procesado exitosamente");
 }
Ejemplo n.º 7
0
 /**
  *
  *Genera una venta fuera de caja, puede usarse para que el administrador venda directamente a clientes especiales. EL usuario y la sucursal seran tomados de la sesion. La fecha se tomara del servidor. La empresa sera tomada del alamacen del que fueron tomados los productos
  *
  * @param total float Total de la venta
  * @param retencion float Monto aportado por retenciones
  * @param descuento float Monto descontado por descuentos
  * @param tipo_venta string Si esta es una venta a  credito o de contado
  * @param impuesto float Monto aportado por impuestos
  * @param subtotal float Subtotal de la venta antes de ser afectada por impuestos, descuentos y retenciones
  * @param id_comprador_venta int Id del usuario al que se le vende, si es a una sucursal, el id se pasa negativo
  * @param detalle_venta json Objeto que contendra los ids y las cantidades de los productos que se vendieron con el id almacen de donde fueron seleccionados  para determinar a que empresa pertenecen
  * @param datos_cheque json Si el tipo de pago fue en cheque, se pasan el nombre del banco, el monto y los ultimos 4 numeros de cada cheque que se uso para pagar la venta
  * @param saldo float Saldo que ha sido aportado a la venta
  * @param tipo_de_pago string Si la venta es pagada con tarjeta, con efectivo o con cheque
  * @return id_venta int Id autogenerado de la nueva venta
  **/
 public static function Nueva($descuento, $id_comprador_venta, $impuesto, $subtotal, $tipo_venta, $total, $datos_cheque = null, $detalle_orden = null, $detalle_paquete = null, $detalle_venta = null, $es_cotizacion = false, $id_sucursal = null, $saldo = "0", $tipo_de_pago = null)
 {
     if ($es_cotizacion) {
         return self::Cotizar($descuento, $id_comprador_venta, $impuesto, $subtotal, $tipo_venta, $total, $datos_cheque, $detalle_orden, $detalle_paquete, $detalle_venta, $id_sucursal, $saldo, $tipo_de_pago);
     }
     Logger::log("Creando nueva venta fuera de caja.....");
     //validar que vengan datos en detalles
     if (is_null($detalle_orden) && is_null($detalle_venta) && is_null($detalle_paquete)) {
         Logger::warn("No se enviaron detalles en la venta");
         throw new InvalidDataException();
     }
     if (!is_array($detalle_orden)) {
         $detalle_orden = object_to_array($detalle_orden);
     }
     if (!is_array($detalle_venta)) {
         $detalle_venta = object_to_array($detalle_venta);
     }
     if (!is_array($detalle_paquete)) {
         $detalle_paquete = object_to_array($detalle_paquete);
     }
     if (empty($detalle_orden) && empty($detalle_venta) && empty($detalle_paquete)) {
         Logger::warn("No se enviaron detalles en la venta");
         throw new InvalidDataException();
     }
     //Se utiliza el metodo de Sucursal controller, dejando que tome la caja y la sucursal como nulos
     try {
         $venta = SucursalesController::VenderCaja($descuento, $id_comprador_venta, $impuesto, 0, $subtotal, $tipo_venta, $total, null, null, $datos_cheque, $detalle_orden, $detalle_paquete, $detalle_venta, null, $id_sucursal, null, $saldo, $tipo_de_pago);
     } catch (BusinessLogicException $ble) {
         Logger::error("**************************");
         throw $ble;
     } catch (Exception $e) {
         Logger::error("No se pudo crear la nueva venta: " . $e);
         if ($e->getCode() == 901) {
             throw new Exception("No se pudo crear la nueva venta: " . $e->getMessage(), 901);
         }
         throw new Exception("No se pudo crear la nueva venta", 901);
     }
     Logger::log("======== Venta " . $venta["id_venta"] . " exitosa =========");
     return array("id_venta" => (int) $venta["id_venta"]);
 }
Ejemplo n.º 8
0
 /**
  * Proxy for getModel.
  * @since	1.6
  */
 public function &getModel($name = 'Sucursales', $prefix = 'SucursalesModel', $config = array())
 {
     $model = parent::getModel($name, $prefix, array('ignore_request' => true));
     return $model;
 }
Ejemplo n.º 9
0
 /**
  *
  *Cancela una compra
  *
  * @param id_compra int Id de la compra a cancelar
  **/
 public static function Cancelar($id_compra, $billetes = null, $id_caja = null)
 {
     Logger::log("Cancenlando compra " . $id_compra);
     //valida que la compra exista y que este activa
     $compra = CompraDAO::getByPK($id_compra);
     if ($compra == null) {
         throw new Exception("La compra con id: " . $id_compra . " no existe", 901);
     }
     if ($compra->getCancelada()) {
         Logger::warn("La compra ya ha sido cancelada");
         return;
     }
     //Obtiene al usuario al que se le compro
     $usuario = UsuarioDAO::getByPK($compra->getIdVendedorCompra());
     if ($usuario == null) {
         throw new Exception("FATAL!!! Esta compra apunta a un usuario que no existe", 901);
     }
     //Deja la compra como cancelada y la guarda.
     $compra->setCancelada(1);
     DAO::transBegin();
     try {
         $com_prod = new CompraProducto();
         $com_prod->setIdCompra($id_compra);
         $prods_compra = CompraProductoDAO::search($com_prod);
         foreach ($prods_compra as $p) {
             //De que almacen/inventario lo descuento? , del almacen de la empresa? como identifico el lote de entrada prod?
             continue;
             $ven_prod = new VentaProducto();
             $ven_prod->setIdProducto();
             $ven_prod->setCantidad($p->getCantidad());
             $ven_prod->setPrecio($p->getPrecio());
             $ven_prod->setDescuento($p->getDescuento());
             SucursalesController::DescontarDeAlmacenes($ven_prod, $compra->getIdSucursal());
         }
         CompraDAO::save($compra);
         //Si la compra fue a credito, se cancelan todos los abonos hechos al mismo y el dinero se queda a cuenta del usuario.
         if ($compra->getTipoDeCompra() == "credito") {
             $abono_compra = new AbonoCompra();
             $abono_compra->setIdCompra($id_compra);
             $abonos = AbonoCompraDAO::search($abono_compra);
             foreach ($abonos as $abono) {
                 if (!$abono->getCancelado()) {
                     CargosYAbonosController::EliminarAbono($abono->getIdAbonoCompra(), "Compra cancelada", 1, 0, 0, null, null);
                 }
             }
             $usuario->setSaldoDelEjercicio($usuario->getSaldoDelEjercicio() - $compra->getTotal());
             UsuarioDAO::save($usuario);
         } else {
             if ($compra->getTipoDeCompra() == "contado" && !is_null($id_caja)) {
                 CajasController::modificarCaja($id_caja, 1, $billetes, $compra->getTotal());
             }
         }
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo cancelar la compra: " . $e);
         throw new Exception("No se pudo cancelar la compra, consulte a su administrador de sistema", 901);
     }
     DAO::transEnd();
     Logger::log("Compra cancelada exitosamente");
 }
Ejemplo n.º 10
0
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
$page->addComponent(new TitleComponent("Cajas"));
$tabla = new TableComponent(array("descripcion" => "Descripcion", "saldo" => "Saldo", "control_billetes" => "Control de Billetes", "abierta" => "Abierta", "activa" => "Activa"), SucursalesController::ListaCaja());
function funcion_bool_to_string($valor)
{
    return $valor === true || $valor === "1" || $valor === 1 ? "<strong>Si</strong>" : "No";
}
$tabla->addColRender("activa", "funcion_bool_to_string");
$tabla->addColRender("abierta", "funcion_bool_to_string");
$tabla->addColRender("control_billetes", "funcion_bool_to_string");
$tabla->addOnClick("id_caja", "(function(a){window.location = 'sucursales.caja.ver.php?cid='+a;})");
$page->addComponent($tabla);
$page->render();
Ejemplo n.º 11
0
 /**
  *
  *Iniciar una orden de consignaci?n. La fecha sera tomada del servidor.
  *
  * @param productos json Objeto que contendra los ids de los productos que se daran a consignacion a ese cliente con sus cantidades. Se incluira el id del almacen del cual seran tomados para determinar a que empresa pertenece esta consignacion
  * @param id_consignatario int Id del cliente al que se le hace la consignacion
  * @return id_consignacion int Id de la consignacion autogenerado por la insercion.
  **/
 public static function Nueva($fecha_termino, $folio, $id_consignatario, $productos, $tipo_consignacion, $fecha_envio_programada = null)
 {
     Logger::log("Creando nueva consignacion");
     //Se valida al consignatario
     $e = self::validarConsignatario($id_consignatario);
     if (is_string($e)) {
         Logger::error($e);
         throw new Exception($e);
     }
     $consignatario = UsuarioDAO::getByPK($id_consignatario);
     //Se obtiene al usuario de la sesion actual
     $id_usuario = LoginController::getCurrentUser();
     if (is_null($id_usuario)) {
         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?");
     }
     //Valida el parametro tipo de consignacion
     if ($tipo_consignacion != "credito" && $tipo_consignacion != "contado") {
         Logger::error("El parametro tipo de consignacion (" . $tipo_consignacion . ") es invalido");
         throw new Exception("El parametro tipo de consignacion (" . $tipo_consignacion . ") es invalido");
     }
     //Si no se recibio fecha de envio, se toma la fecha actual
     if (is_null($fecha_envio_programada)) {
         $fecha_envio_programada = date("Y-m-d H:i:s");
     }
     $consignacion = new Consignacion(array("id_cliente" => $id_consignatario, "id_usuario" => $id_usuario, "fecha_creacion" => date("Y-m-d H:i:s"), "activa" => 1, "cancelada" => 0, "folio" => $folio, "fecha_termino" => $fecha_termino, "saldo" => 0, "tipo_consignacion" => $tipo_consignacion));
     //Se agrupan los productos que vienen del mismo almacen en subarreglos para
     //programar un solo traspaso por almacen.
     $productos_por_almacen = array();
     $num_productos = count($productos);
     for ($i = 0; $i < $num_productos; $i++) {
         if ($productos[i] == null) {
             continue;
         }
         $temp = array();
         array_push($temp, $productos[i]);
         for ($j = $i + 1; $j < $num_productos; $j++) {
             if ($productos[$i]["id_almacen"] == $productos[$j]["id_almacen"]) {
                 array_push($temp, $productos[$j]);
                 $productos[$j] = null;
             }
         }
         $productos[$i] = null;
         array_push($productos_por_almacen, $temp);
     }
     DAO::transBegin();
     try {
         ConsignacionDAO::save($consignacion);
         $consignacion_producto = new ConsignacionProducto(array("id_consignacion" => $consignacion->getIdConsignacion()));
         foreach ($productos_por_almacen as $producto_por_almacen) {
             //Se validan los parametros obtenidos del arreglo de productos
             foreach ($producto_por_almacen as $producto) {
                 $validar = self::validarConsignacionProducto($producto["id_producto"], $producto["id_unidad"], $producto["cantidad"], $producto["impuesto"], $producto["descuento"], $producto["retencion"], $producto["precio"]);
                 if (is_string($validar)) {
                     throw new Exception($validar);
                 }
                 $validar = self::validarAlmacen($producto["id_almacen"]);
                 if (is_string($validar)) {
                     throw new Eception($validar);
                 }
             }
             /*
              * El consignatario puede contar con algún o ningún almacen de tipo consignacion,
              * pero solo tendra uno por empresa, esto quiere decir que todos los productos recibidos
              * seran repartidos en estos almacenes de acuerdo a la empresa a la que pertenece
              * el almacen de donde son extraidos.
              * 
              * Si el consignatario no cuenta con un almacen para la empresa de ese producto, se creara uno
              * nuevo y se realizara la transferencia.
              */
             //Se obtiene el id de la empresa de la cual vienen los productos
             $id_empresa = AlmacenDAO::getByPK($producto_por_almacen[0]["id_almacen"])->getIdEmpresa();
             //Se busca el almacen de consignacion de este cliente para esta empresa
             $almacen = null;
             $almacenes = AlmacenDAO::search(new Almacen(array("id_empresa" => $id_empresa, "nombre" => $consignatario->getCodigoUsuario(), "id_sucursal" => 0)));
             //Si no existe, se crea
             if (empty($almacenes)) {
                 $almacen = new Almacen(array("id_sucursal" => 0, "id_empresa" => $id_empresa, "id_tipo_almacen" => 2, "nombre" => $consignatario->getCodigoUsuario(), "descripcion" => "Almacen de consignacion del usuario " . $consignatario->getNombre() . " con clave " . $consignatario->getCodigoUsuario() . " para la empresa " . $id_empresa, "activo" => 1));
                 AlmacenDAO::save($almacen);
             } else {
                 $almacen = $almacenes[0];
             }
             //Se prepara el arreglo de productos para crear el traspaso de un almacen a otro
             $productos_para_traspaso = array();
             foreach ($producto_por_almacen as $producto) {
                 $p = array("id_producto" => $producto["id_producto"], "id_unidad" => $producto["id_unidad"], "cantidad" => $producto["cantidad"]);
                 array_push($productos_para_traspaso, $p);
             }
             //Se programa el traspaso del almacen de donde se tomaron estos productos al almacen de consignacion
             SucursalesController::ProgramarTraspasoAlmacen($almacen->getIdAlmacen(), $producto_por_almacen[0]["id_almacen"], $fecha_envio_programada, $productos_para_traspaso);
         }
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo crear la nueva consignacion: " . $e);
         throw new Exception("No se pudo crear la nueva consignacion");
     }
     DAO::transEnd();
     Logger::log("Consignacion creada exitosamente");
     return array("id_consignacion" => $consignacion->getIdConsignacion());
 }
Ejemplo n.º 12
0
$form->createComboBoxJoin("activa", "activa", array(array("id" => false, "caption" => "No"), array("id" => true, "caption" => "S&iacute;")), $esta_sucursal->getActiva());
$page->addComponent($form);
if (!is_null($esta_sucursal->getIdDireccion())) {
    $page->addComponent(new TitleComponent("Direcci&oacute;n", 3));
    $form = new DAOFormComponent($esta_direccion);
    $form->setEditable(false);
    $form->hideField(array("id_direccion", "id_usuario_ultima_modificacion"));
    $form->createComboBoxJoin("id_ciudad", "nombre", CiudadDAO::getAll(), $esta_direccion->getIdCiudad());
    $page->addComponent($form);
}
/*
 * Tab Cajas
 */
$page->nextTab("Cajas");
$page->addComponent(new TitleComponent("Cajas", 3));
$tabla = new TableComponent(array("descripcion" => "Descripcion", "abierta" => "Abierta", "activa" => "Activa"), SucursalesController::ListaCaja(NULL, $_GET["sid"]));
$tabla->addColRender("abierta", "funcion_abierta");
$tabla->addColRender("activa", "funcion_activa");
$tabla->addOnClick("id_caja", "(function(a){window.location = 'sucursales.caja.ver.php?cid='+a;})");
$tabla->addNoData("No hay ninguna caja asociada a esta sucursal. <a href='sucursales.nueva.caja.php'>&iquest; Desea agregar un elemento?.</a>");
$page->addComponent($tabla);
/*
 * Tab Almacenes
 */
$page->nextTab("Almacenes");
$page->addComponent(new TitleComponent("Almacenes", 3));
$sucs = AlmacenesController::Buscar();
$tabla = new TableComponent(array("nombre" => "Nombre", "id_empresa" => "Empresa", "id_tipo_almacen" => "Tipo de almacen", "activo" => "Activo"), $sucs["resultados"]);
$tabla->addColRender("id_empresa", "funcion_empresa");
$tabla->addColRender("id_tipo_almacen", "funcion_tipo_almacen");
$tabla->addColRender("activo", "funcion_activo");
Ejemplo n.º 13
0
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
$page->addComponent(new TitleComponent("Almacenes"));
$tabla = new TableComponent(array("nombre" => "Nombre", "id_sucursal" => "Sucursal", "id_empresa" => "Empresa", "id_tipo_almacen" => "Tipo de almacen", "activo" => "Activo"), SucursalesController::ListaAlmacen());
function funcion_sucursal($id_sucursal)
{
    return SucursalDAO::getByPK($id_sucursal) ? SucursalDAO::getByPK($id_sucursal)->getRazonSocial() : "------";
}
function funcion_empresa($id_empresa)
{
    return EmpresaDAO::getByPK($id_empresa) ? EmpresaDAO::getByPK($id_empresa)->getRazonSocial() : "------";
}
function funcion_tipo_almacen($id_tipo_almacen)
{
    return TipoAlmacenDAO::getByPK($id_tipo_almacen) ? TipoAlmacenDAO::getByPK($id_tipo_almacen)->getDescripcion() : "------";
}
function funcion_activo($activo)
{
    return $activo ? "Activo" : "Inactivo";
}
$tabla->addColRender("id_sucursal", "funcion_sucursal");
$tabla->addColRender("id_empresa", "funcion_empresa");
$tabla->addColRender("id_tipo_almacen", "funcion_tipo_almacen");
$tabla->addColRender("activo", "funcion_activo");
$tabla->addOnClick("id_almacen", "(function(a){window.location = 'sucursales.almacen.ver.php?aid='+a;})");
$page->addComponent($tabla);
$page->render();
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
$page->addComponent(new TitleComponent("Traspasos"));
$tabla = new TableComponent(array("id_almacen_envia" => "Del almacen", "id_almacen_recibe" => "Al almacen", "estado" => "Estado", "fecha_envio_programada" => "Fecha de envio programada", "fecha_envio" => "Fecha de envio real", "fecha_recibo" => "Fecha recibido"), SucursalesController::ListaTraspasoAlmacen());
function funcion_almacen($id_almacen)
{
    return AlmacenDAO::getByPK($id_almacen) ? AlmacenDAO::getByPK($id_almacen)->getNombre() : "------";
}
$tabla->addColRender("id_almacen_envia", "funcion_almacen");
$tabla->addColRender("id_almacen_recibe", "funcion_almacen");
$tabla->addOnClick("id_traspaso", "(function(a){window.location = 'sucursales.traspaso.ver.php?tid='+a;})");
$page->addComponent($tabla);
$page->render();
Ejemplo n.º 15
0
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
$page->addComponent(new TitleComponent("Sucursales"));
$tabla = new TableComponent(array("rfc" => "RFC", "razon_social" => "Razon Social", "descripcion" => "Descripcion", "id_gerente" => "Gerente", "saldo_a_favor" => "Saldo", "activa" => "Activa"), SucursalesController::Lista());
$tabla->addColRender("id_gerente", "funcion_gerente");
$tabla->addColRender("activa", "funcion_activa");
$tabla->addOnClick("id_sucursal", "(function(a){window.location = 'sucursales.ver.php?sid='+a;})");
$page->addComponent($tabla);
$page->render();
Ejemplo n.º 16
0
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
$page->addComponent(new TitleComponent("Sucursales"));
$sucursales = SucursalesController::Buscar();
$tabla = new TableComponent(array("descripcion" => "Descripcion", "id_gerente" => "Gerente", "activa" => "Activa"), $sucursales["resultados"]);
$tabla->addColRender("id_gerente", "funcion_gerente");
$tabla->addColRender("activa", "funcion_activa");
$tabla->addOnClick("id_sucursal", "(function(a){window.location = 'sucursales.ver.php?sid='+a;})");
$page->addComponent($tabla);
$page->render();
Ejemplo n.º 17
0
$compras = CompraDAO::getAll();
for ($i = 0; $i < sizeof($compras); $i++) {
    //buscar sus productos
    $productos = CompraProductoDAO::search(new CompraProducto(array("id_compra" => $compras[$i]->getIdCompra())));
    for ($p = 0; $p < sizeof($productos); $p++) {
        $d_producto = $productos[$p]->asArray();
        $id_sucursal = 7;
        echo ".";
        try {
            SucursalesController::IncrementarDeAlmacenes($d_producto, $id_sucursal);
        } catch (Exception $e) {
            echo "e";
        }
    }
}
$ventas = VentaDAO::getAll();
for ($i = 0; $i < sizeof($ventas); $i++) {
    //buscar sus productos
    $productos = VentaProductoDAO::search(new VentaProducto(array("id_venta" => $ventas[$i]->getIdVenta())));
    if (sizeof($productos) == 0) {
        e("NO HAY PRODUCTOS, WTF");
    }
    for ($p = 0; $p < sizeof($productos); $p++) {
        echo ".";
        try {
            SucursalesController::DescontarDeAlmacenes($productos[$p], $id_sucursal);
        } catch (Exception $e) {
            echo "e";
        }
    }
}