/** * 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); }
/** * 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>"; } }
/** * 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);
/** * 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; } }
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; }