public function PstoLineas() { $nItems = 0; $nErrores = 0; $dbLink = mysql_connect("localhost", "root", "albatronic"); $query = "TRUNCATE {$this->dbDestino}.ErpPstoLineas"; mysql_query($query); $query = "select Codigo,IDArticulo from {$this->dbDestino}.ErpArticulos"; $result = mysql_query($query, $dbLink); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $correspondencia[$row['Codigo']] = $row['IDArticulo']; } $query = "select l.*, c.Estado, c.Fecha from {$this->dbOrigen}.psto_lineas as l LEFT JOIN {$this->dbOrigen}.psto_cab as c ON l.IDPsto=c.IDPsto where c.IDPsto>0"; $result = mysql_query($query, $dbLink); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $c = new PstoLineas(); $c->setIDPsto($row['IDPsto']); $c->setIDLinea($row['IDLinea']); $c->setIDArticulo($correspondencia[$row['IDArticulo']]); $c->setDescripcion($row['Descripcion']); $c->setUnidades($row['Unidades']); $c->setPrecio($row['Precio']); $c->setDescuento($row['Descuento']); $c->setImporte($row['Importe']); $c->setImporteCosto($row['ImporteCosto']); $c->setIDAlmacen(1); if ($row['Fecha'] >= '2012-09-01') { $c->setIva($this->correspondenciaIva[$row['Iva']]); } else { $c->setIva($row['Iva']); } $c->setIDAgente(2); $c->setIDComercial(2); $c->setIDEstado($row['Estado']); $c->setPrimaryKeyMD5(md5($row['IDLinea'])); if (!$c->create()) { $errores[] = $c->getErrores(); $nErrores++; } else { $nItems++; } } //mysql_close($dbLink); echo "Líneas Presupuestos {$nItems}<br/>"; if (count($errores)) { echo "<pre>"; print_r($errores); echo "</pre>"; } }
/** * Hace una copia del presupuesto. * Genera otro presupuesto en base al actual. * IMPORTANTE: SE TOMAN LOS PRECIOS ACTUALES DE LOS ARTICULOS. * * @return integer El id del presupuesto generado */ public function duplica() { $idOrigen = $this->IDPsto; // Crear la cabecera del presupuesto $destino = $this; $destino->setIDPsto(''); $destino->setIDAgente($_SESSION['usuarioPortal']['Id']); $destino->setIDEstado(0); $destino->setFecha(date('d-m-Y')); $destino->setFechaAceptacion('00-00-0000'); $destino->setIDAlbaran(0); $destino->setObservaciones('Proviene del Psto n. ' . $idOrigen); $destino->setPrimaryKeyMD5(''); $idDestino = $destino->create(); // Crear las líneas de presupuesto if ($idDestino) { $linea = new PstoLineas(); $rows = $linea->cargaCondicion("IDLinea", "IDPsto='{$idOrigen}'", "IDLinea ASC"); unset($linea); foreach ($rows as $row) { $lineaDestino = new PstoLineas($row['IDLinea']); $lineaDestino->setIDPsto($idDestino); $lineaDestino->setIDAgente($_SESSION['usuarioPortal']['Id']); $lineaDestino->setIDEstado(0); $lineaDestino->setPrimaryKeyMD5(''); $lineaDestino->valida(); // Toma los precios vigentes (tarifa, promociones, etc) $lineaDestino->create(); } unset($lineaDestino); } else { $this->_errores[] = "Hubo un error al duplicar el presupuesto. Revise los contadores."; } return $idDestino; }