/**
  * Devuelve array (Id,Value) con las familias de la firma en curso
  * 
  * @param string $columna El nombre de la columna a devolver como descripción
  * @return array
  */
 public function getFamilias($columna = "Descripcion")
 {
     $familias = new Familias();
     $rows = $familias->cargaCondicion("Id,{$columna}  Value", "IdFirma='{$this->Id}'", "Descripcion");
     unset($familias);
     return $rows;
 }
 /**
  * Importa familias desde fichero externo csv según
  * el formato de facturaplus
  */
 public function ImportarAction()
 {
     $fileName = "docs/docs{$_SESSION['emp']}/tmp/familias.csv";
     $archivo = new Archivo($fileName);
     $archivo->setColumnsDelimiter(";");
     //$archivo->setColumnsEnclosure('"');
     if ($archivo->open("r")) {
         set_time_limit(0);
         // Me salto la primera línea de cabecera
         $linea = $archivo->readLine();
         while (($linea = $archivo->readLine()) !== FALSE) {
             print_r($linea);
             $fp = new Familias();
             $fp->setFamilia(utf8_encode($linea[1]));
             $fp->setObservations($linea[0]);
             $fp->setInventario(1);
             $id = $fp->create();
             if (!$id) {
                 $nErrores += 1;
                 print_r($fp->getErrores());
             } else {
                 $nAciertos += 1;
             }
             unset($fp);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     echo "Aciertos: {$nAciertos}, Errores: {$nErrores}";
     unset($archivo);
 }
Beispiel #3
0
 /**
  * Devuelve el precio de venta mínimo calculado en base
  * al Precio Medio de costo aplicándole el porcentaje de margén mínimo
  * indicado en la familia a la que pertenece este artículo
  *
  * @param string $um La unidad de medida en la que se expresará el precio
  * @param integer $decimales El número de decimales con los que se expresará el precio
  * @return decimal El precio de venta minimo
  */
 public function getPrecioMinimoVenta($um = 'UMV', $decimales = 2)
 {
     $um = strtoupper($um);
     $familia = new Familias($this->getIDFamilia()->getIDFamilia());
     $margenMinimo = $familia->getMargenMinimo();
     unset($familia);
     $pvpMinimo = $this->Pmc * (1 + $margenMinimo / 100);
     $pvpMinimo = $pvpMinimo * $this->{"getC{$um}"}();
     return round($pvpMinimo, $decimales);
 }
 public function Subfamilias()
 {
     $nItems = 0;
     $nErrores = 0;
     $dbLink = mysql_connect("localhost", "root", "albatronic");
     //$query = "TRUNCATE {$this->dbDestino}.ErpFamilias";
     //mysql_query($query);
     $query = "select * from {$this->dbOrigen}.subfamilias";
     $result = mysql_query($query, $dbLink);
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
         $row = $this->utf($row);
         $f = new Familias($row['IDFamilia']);
         $c = new Familias();
         $c->setFamilia($row['Subfamilia']);
         $c->setInventario($f->getInventario()->getIDTipo());
         $c->setTrazabilidad($f->getTrazabilidad()->getIDTipo());
         $c->setMargenWeb($f->getMargenWeb());
         $c->setMargenMinimo($f->getMargenMinimo());
         $c->setMostrarEnTpv($f->getMostrarEnTpv()->getIDTipo());
         $c->setPublish($row['PublicarWeb'] == 'S' ? 1 : 0);
         $c->setBelongsTo($f->getIDFamilia());
         $c->setObservations($row['IDSubfamilia']);
         $id = $c->create();
         if ($id == NULL) {
             $errores[] = $c->getErrores();
             $nErrores++;
         } else {
             $c->setIDFamilia($id);
             $c->setPrimaryKeyMD5(md5($id));
             $c->save();
             $nItems++;
         }
     }
     //mysql_close($dbLink);
     echo "Subfamilias  {$nItems}<br/>";
     if (count($errores)) {
         echo "<pre>";
         print_r($errores);
         echo "</pre>";
     }
 }
Beispiel #5
0
/**
 * Construye un tag html <select> con todas las subfamilias de una familia dada
 * @param integer $idFamilia ID de familia
 * @return string Codigo html con el tag select
 */
function subfamilias($idFamilia)
{
    $familia = new Familias();
    $filtro = "(NivelJerarquico='3') and BelongsTo='{$idFamilia}'";
    $rows = $familia->cargaCondicion("Id as Id, Familia as Value", $filtro, "SortOrder ASC");
    unset($familia);
    $ch = "<div class='Etiqueta'>Subfamilia</div>";
    $ch .= "<select name='" . $_GET['nameselect'] . "' id='" . $_GET['idselect'] . "' class='Select'>";
    foreach ($rows as $row) {
        $ch .= "<option value='" . $row['Id'] . "'>" . $row['Value'] . "</option>";
    }
    $ch .= "</select>";
    return $ch;
}
 * @copyright Informatica ALBATRONIC
 * @since 24.09.2013
 */
session_start();
if (!file_exists('../config/config.yml')) {
    echo "NO EXISTE EL FICHERO DE CONFIGURACION";
    exit;
}
if (file_exists("../bin/yaml/lib/sfYaml.php")) {
    include "../bin/yaml/lib/sfYaml.php";
} else {
    echo "NO EXISTE LA CLASE PARA LEER ARCHIVOS YAML";
    exit;
}
// ---------------------------------------------------------------
// CARGO LOS PARAMETROS DE CONFIGURACION.
// ---------------------------------------------------------------
$config = sfYaml::load('../config/config.yml');
$app = $config['config']['app'];
// ---------------------------------------------------------------
// ACTIVAR EL AUTOLOADER DE CLASES Y FICHEROS A INCLUIR
// ---------------------------------------------------------------
define("APP_PATH", $_SERVER['DOCUMENT_ROOT'] . $app['path'] . "/");
include_once "../" . $app['framework'] . "Autoloader.class.php";
Autoloader::setCacheFilePath(APP_PATH . 'tmp/class_path_cache.txt');
Autoloader::excludeFolderNamesMatchingRegex('/^CVS|\\..*$/');
Autoloader::setClassPaths(array('../' . $app['framework'], '../entities/', '../lib/'));
spl_autoload_register(array('Autoloader', 'loadClass'));
$familia = new Familias();
$arbol = $familia->getArbolHijos(array('conArticulos' => true, 'conImagenes' => true), '', '', "MostrarEnTpv='1'", "OrdenTpv ASC");
echo json_encode($arbol);
Beispiel #7
0
 /**
  * Devuelve las promociones vigentes para el cliente
  * y la fecha indicada.
  *
  * El formato de fecha pasado debe ser YYYY-mm-dd
  *
  * @param date $fecha La fecha
  * @return array Array con objetos promociones
  */
 public function getPromosVigentes($fecha = '')
 {
     if ($fecha == '') {
         $fecha = date('Y-m-d');
     }
     $promos = array();
     $promociones = new Promociones();
     $promoClientes = new PromocionesClientes();
     $familias = new Familias();
     $em = new EntityManager($promociones->getConectionName());
     if ($em->getDbLink()) {
         $query = "SELECT DISTINCT t1.IDPromocion\n                FROM {$promociones->getDataBaseName()}.{$promociones->getTableName()} as t1,\n                     {$promoClientes->getDataBaseName()}.{$promoClientes->getTableName()} as t2,\n                     {$familias->getDataBaseName()}.{$familias->getTableName()} as t3\n                WHERE t1.FinPromocion>='{$fecha}'\n                AND t1.IDPromocion=t2.IDPromocion\n                AND ( (t2.IDCliente='{$this->IDCliente}') OR (t2.IDGrupo='{$this->getIDGrupo()->getIDGrupo()}') )\n                AND ( t1.IDFamilia = t3.IDFamilia OR (1))\n                ORDER BY t1.FinPromocion ASC, t1.IDArticulo DESC,t3.Familia";
         $em->query($query);
         $rows = $em->fetchResult();
         $em->desConecta();
         foreach ($rows as $row) {
             $promos[] = new Promociones($row['IDPromocion']);
         }
     }
     unset($em);
     unset($promociones);
     unset($promoClientes);
     unset($familias);
     return $promos;
 }
 private function importFamilias()
 {
     $file = getcwd() . "/docs/docs1/import/FAMILIAS.txt";
     $array = $this->leeCsv($file);
     $obj = new Familias();
     $obj->truncate();
     foreach ($array as $item) {
         //print_r($item);
         $obj = new Familias();
         $obj->setIdFirma($item['IDFIRMA']);
         $obj->setDescripcion(utf8_encode($item['DESCRIPCION_FAMILIA']));
         $id = $obj->create();
         if (!$id) {
             print_r($obj->getErrores());
         }
     }
 }
 /**
  * Vacia las tablas de familias,fabricantes y articulos
  */
 static function VaciarTablas()
 {
     $tabla = new CpanUrlAmigables();
     $tabla->queryDelete("Controller='Familias' or Controller='Articulos' or Controller='Producto' or Controller='Fabricantes'");
     $tabla = new Familias();
     $tabla->queryDelete("1");
     $tabla = new Fabricantes();
     $tabla->queryDelete("1");
     $tabla = new Articulos();
     $tabla->queryDelete("1");
     $tabla = new CpanRelaciones();
     $tabla->queryDelete("EntidadOrigen='Familias' or EntidadOrigen='Fabricantes' or EntidadOrigen='Articulos'");
     $tabla->queryDelete("EntidadDestino='Familias' or EntidadDestino='Fabricantes' or EntidadDestino='Articulos'");
     unset($tabla);
 }
 /**
  * Edita, actualiza o borrar un registro
  *
  * Viene siempre por POST
  * Actualiza o Borrar según el valor de $this->request['accion']
  *
  * @return array con el template y valores a renderizar
  */
 public function editFormAction()
 {
     $this->values['linkBy']['id'] = 'IdFirma';
     //COGER DEL REQUEST EL LINK A LA ENTIDAD PADRE
     if ($this->values['linkBy']['id'] != '') {
         $this->values['linkBy']['value'] = $this->request[$this->entity][$this->values['linkBy']['id']];
     }
     switch ($this->request['accion']) {
         case 'G':
             //GUARDAR DATOS
             if ($this->values['permisos']['permisosModulo']['UP']) {
                 $datos = new Familias($this->request['Familias']['Id']);
                 $datos->bind($this->request[$this->entity]);
                 if ($datos->valida(array())) {
                     $datos->save();
                     $this->values['errores'] = $datos->getErrores();
                     $this->values['alertas'] = $datos->getAlertas();
                     //Recargo el objeto para refrescar las propiedas que
                     //hayan podido ser motivo de algun calculo durante el proceso
                     //de guardado.
                     $datos = new Familias($this->request['Familias']['Id']);
                 } else {
                     $this->values['errores'] = $datos->getErrores();
                     $this->values['alertas'] = $datos->getAlertas();
                 }
                 $this->values['datos'] = $datos;
                 unset($datos);
                 return $this->listFormAction($this->values['linkBy']['value']);
             } else {
                 return array('template' => '_global/forbiden.html.twig');
             }
             break;
         case 'B':
             //BORRAR DATOS
             if ($this->values['permisos']['permisosModulo']['DE']) {
                 $datos = new Familias($this->request['Familias']['Id']);
                 if ($datos->erase()) {
                     $datos = new $this->entity();
                     $this->values['datos'] = $datos;
                     $this->values['errores'] = array();
                 } else {
                     $this->values['datos'] = $datos;
                     $this->values['errores'] = $datos->getErrores();
                 }
                 unset($datos);
                 return $this->listFormAction($this->values['linkBy']['value']);
             } else {
                 return array('template' => '_global/forbiden.html.twig');
             }
             break;
     }
 }
Beispiel #11
0
 static function getTopNFamilias($n = 10, $diasAtras = 365)
 {
     $femi = new FemitidasCab();
     $tablaFacturas = $femi->getDataBaseName() . "." . $femi->getTableName();
     $lineas = new FemitidasLineas();
     $tablaLineas = $lineas->getDataBaseName() . "." . $lineas->getTableName();
     $arti = new Articulos();
     $tablaArticulos = $arti->getDataBaseName() . "." . $arti->getTableName();
     $fami = new Familias();
     $tablaFamilias = $fami->getDataBaseName() . "." . $fami->getTableName();
     $idRol = $_SESSION['usuarioPortal']['IdRol'];
     if ($idRol != '0' and $idRol != '9') {
         $filtro = "(f.IDComercial='{$_SESSION['usuarioPortal']['Id']}')";
     } else {
         $filtro = "(1)";
     }
     $hoy = new Fecha();
     $desde = $hoy->sumaDias(-$diasAtras);
     $filtro .= " AND (f.Fecha>='{$desde}')";
     $em = new EntityManager($femi->getConectionName());
     if ($em->getDbLink()) {
         $query = "select c.Familia,sum(l.Importe) as Total \n                from {$tablaLineas} as l \n                    left join {$tablaArticulos} as a on l.IDArticulo=a.IDArticulo\n                    left join {$tablaFacturas} as f on l.IDFactura=f.IDFactura\n                    left join {$tablaFamilias} as c on a.IDFamilia=c.IDFamilia\n                where {$filtro}\n                group by c.IDFamilia\n                order by sum(l.Importe) DESC\n                limit 0,{$n}";
         $em->query($query);
         $rows = $em->fetchResult();
     }
     unset($em);
     unset($femi);
     unset($lineas);
     unset($arti);
     return $rows;
 }