public function IndexAction()
 {
     $array = array();
     $atributos = new Propiedades();
     $rows = $atributos->fetchAll('Titulo', false);
     unset($atributos);
     foreach ($rows as $row) {
         $array[$row['Id']]['Titulo'] = $row['Value'];
         $valor = new PropiedadesValores();
         $valores = $valor->getValores($row['Id']);
         unset($valor);
         foreach ($valores as $valor) {
             $array[$row['Id']]['Valores'][$valor['Id']] = $valor['Valor'];
         }
     }
     $articulo = new Articulos();
     $rows = $articulo->cargaCondicion("IDArticulo", "BelongsTo='{$this->request[2]}'");
     unset($articulo);
     foreach ($rows as $row) {
         $articulos[] = new Articulos($row['IDArticulo']);
     }
     $this->values['articulos'] = $articulos;
     $this->values['propiedadesValores'] = $array;
     $this->values['idArticulo'] = $this->request[2];
     return array('template' => $this->entity . '/index.html.twig', 'values' => $this->values);
 }
Exemplo n.º 2
0
 /**
  * Devuelve array de objetos Articulos con los
  * artículos de la promoción en curso
  * 
  * @param type $nItems Cero o negativo, sin límite. Positivo indica el número de artículos a devolver
  * @return array Array de objetos Artículos
  */
 public function getArticulos($nItems = 0)
 {
     $limit = $nItems <= 0 ? "" : "limit {$nItems}";
     $array = array();
     if ($this->getIDFamilia()->getPrimaryKeyValue()) {
         $articulo = new Articulos();
         $rows = $articulo->cargaCondicion("IDArticulo", "IDFamilia='{$this->getIDFamilia()->getPrimaryKeyValue()}'", "PublishedAt DESC {$limit}");
         unset($articulo);
         foreach ($rows as $row) {
             $array[] = new Articulos($row['IDArticulo']);
         }
     } else {
         $array[] = $this->getIDArticulo();
     }
     return $array();
 }
 private function cargarLineas($idPedido, $idFirma, $idCliente, $archivoCsv)
 {
     $nLinea = 0;
     $errores = array();
     $csv = new Archivo($archivoCsv);
     $csv->setColumnsDelimiter(";");
     if ($csv->open()) {
         $articulo = new Articulos();
         while ($linea = $csv->readLine()) {
             $nLinea++;
             $codigo = trim($linea[0]);
             $unidades = trim($linea[1]);
             if ($codigo != '') {
                 $filtro = "IdFirma='{$idFirma}' and (Codigo='{$codigo}' or CodigoEAN='{$codigo}')";
                 //echo $filtro,"\n";
                 $rows = $articulo->cargaCondicion("Id,IdFamilia,Codigo,Descripcion,Pvd", $filtro);
                 $row = $rows[0];
                 if ($row['Id'] != '') {
                     $articulo = new Articulos($row['Id']);
                     $pedidoLinea = new PedidosLineas();
                     $pedidoLinea->setIdPedido($idPedido);
                     $pedidoLinea->setIdFirma($idFirma);
                     $pedidoLinea->setIdFamilia($row['IdFamilia']);
                     $pedidoLinea->setIdCliente($idCliente);
                     $pedidoLinea->setIdArticulo($row['Id']);
                     $pedidoLinea->setDescripcion($row['Descripcion']);
                     $pedidoLinea->setUnidades($unidades);
                     $pedidoLinea->setPrecio($row['Pvd']);
                     $pedidoLinea->setIva($articulo->getIdIva()->getIva());
                     $pedidoLinea->setImporte($unidades * $row['Pvd']);
                     $id = $pedidoLinea->create();
                     if (!$id) {
                         $errores[] = "Línea {$nLinea}: No se pudo crear la línea de pedido.";
                     }
                 } else {
                     $errores[] = "Línea {$nLinea}: El artículo {$codigo} no existe o no pertenece a la firma del pedido.";
                 }
             }
         }
         $csv->close();
         unset($articulo);
         unset($pedidoLinea);
         // Recalcular los totales del pedido
         if (count($errores) == 0) {
             $pedido = new PedidosCab($idPedido);
             $pedido->save();
             unset($pedido);
         }
     } else {
         $errores[] = "No se ha podido abrir el archivo cargado";
     }
     return $errores;
 }
Exemplo n.º 4
0
 /**
  * Devuelve un array de objetos fabricantes que están relacionados
  * con la categoría/famila/subfamilia en curso
  * 
  * @return \Fabricantes
  */
 public function getFabricantes()
 {
     switch ($this->NivelJerarquico) {
         case 1:
             $campo = "IDCategoria";
             break;
         case 2:
             $campo = "IDFamilia";
             break;
         case 3:
             $campo = "IDSubfamilia";
             break;
     }
     $array = array();
     $articulo = new Articulos();
     $rows = $articulo->cargaCondicion("distinct IDFabricante", "{$campo}='{$this->IDFamilia}' and Vigente='1'");
     unset($articulo);
     foreach ($rows as $row) {
         $array[] = new Fabricantes($row['IDFabricante']);
     }
     return $array;
 }
Exemplo n.º 5
0
 /**
  * Aplica la regla $idRegla, que consiste
  * en crear las entradas en la tabla ErpOrdenesArticulos de los articulos
  * que cumplan las condiciones de la regla
  * 
  * La regla no se aplicará a los artículos que no estén vigentes
  * La regla se aplicará a los artículos publish si y publish no
  * 
  * Si no se indica $idRegla, se aplicará la regla en curso
  * 
  * @param int $idRegla El id de la regla a aplicar
  * @return void
  */
 public function aplicaRegla($idRegla = '')
 {
     $regla = $idRegla == '' ? $this : new Escaparates($idRegla);
     if ($regla->IDLote > 0) {
         $lote = new LotesWeb($regla->IDLote);
         foreach ($lote->getArrayObjetosArticulos() as $articulo) {
             $filtroLote .= "IDArticulo='{$articulo->getPrimaryKeyValue()}' OR ";
         }
         $filtroLote = "(" . substr($filtroLote, 0, -4) . ")";
     } else {
         $filtroLote = "(1)";
     }
     $filtroEstado = $regla->IDEstado > 0 ? "(IDEstado1='{$regla->IDEstado}' OR IDEstado2='{$regla->IDEstado}' OR IDEstado3='{$regla->IDEstado}'  OR IDEstado4='{$regla->IDEstado}'  OR IDEstado5='{$regla->IDEstado}')" : "(1)";
     $filtroMarca = $regla->IDFabricante > 0 ? "(IDFabricante='{$regla->IDFabricante}')" : "(1)";
     $filtroCategoria = $regla->IDCategoria > 0 ? "(IDCategoria='{$regla->IDCategoria}')" : "(1)";
     $filtroFamilia = $regla->IDFamilia > 0 ? "(IDFamilia='{$regla->IDFamilia}')" : "(1)";
     $filtroSubfamilia = $regla->IDSubfamilia > 0 ? "(IDSubfamilia='{$regla->IDSubfamilia}')" : "(1)";
     $filtroAdicional = $regla->Filtro != '' ? "({$filtroAdicional})" : "(1)";
     $filtro = "(Vigente='1') AND {$filtroLote} AND {$filtroEstado} AND {$filtroMarca} AND {$filtroCategoria} AND {$filtroFamilia} AND {$filtroSubfamilia} AND {$filtroAdicional}";
     //echo $filtro;
     $articulo = new Articulos();
     $rows = $articulo->cargaCondicion("IDArticulo,Descripcion", $filtro);
     unset($articulo);
     foreach ($rows as $row) {
         $orden = new OrdenesArticulos();
         $orden->setIdRegla($regla->Id);
         $orden->setIDArticulo($row["IDArticulo"]);
         $orden->setObservations($row['Descripcion']);
         $orden->create();
     }
     unset($orden);
 }
Exemplo n.º 6
0
Autoloader::excludeFolderNamesMatchingRegex('/^CVS|\\..*$/');
Autoloader::setClassPaths(array('../' . $app['framework'], '../entities/', '../lib/'));
spl_autoload_register(array('Autoloader', 'loadClass'));
$v = $_GET;
$formato = strtoupper($v['formato']);
$columna = trim($_GET['columna']);
$valor = trim($_GET['valor']);
if ($columna === '') {
    // Busco el artículo por código o por EAN
    $filtro = "(Codigo='{$valor}' or CodigoEAN='{$valor}') and Vigente='1'";
} else {
    // Busco el artículo por la columna indicada
    $filtro = "{$columna}='{$valor}' and Vigente='1'";
}
$articulo = new Articulos();
$rows = $articulo->cargaCondicion("IDArticulo", $filtro);
$articulo = new Articulos($rows[0]['IDArticulo']);
$array = $articulo->iterator();
$array['Iva'] = $articulo->getIDIva()->getIva();
$array['PvpConImpuestos'] = $articulo->getPrecioVentaConImpuestos();
unset($articulo);
switch ($formato) {
    case '':
    case 'JSON':
        $tag = json_encode($array);
        break;
    default:
        $tag = "";
        break;
}
echo $tag;