public function PedidosLineas() { $nItems = 0; $nErrores = 0; $dbLink = mysql_connect("localhost", "root", "albatronic"); $query = "TRUNCATE {$this->dbDestino}.ErpPedidosLineas"; 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 c.Fecha, l.* from {$this->dbOrigen}.pedidos_cab as c LEFT JOIN {$this->dbOrigen}.pedidos_lineas as l ON c.IDPedido=l.IDPedido where l.IDPedido>0"; $result = mysql_query($query, $dbLink); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $c = new PedidosLineas(); $c->setIDPedido($row['IDPedido']); $c->setIDLinea($row['IDLinea']); $c->setIDArticulo($correspondencia[$row['IDArticulo']]); $c->setDescripcion($row['Descripcion']); $c->setUnidades($row['Unidades']); $c->setUnidadMedida("UMC"); $c->setPrecio($row['Precio']); $c->setDescuento($row['Descuento']); $c->setImporte($row['Importe']); if ($row['Fecha'] >= '2012-09-01') { $c->setIva($this->correspondenciaIva[$row['Iva']]); } else { $c->setIva($row['Iva']); } $c->setUnidadesRecibidas($row['Unidades'] - $row['PteFacturar']); $c->setUnidadesPtesFacturar($row['PteFacturar']); $c->setPrimaryKeyMD5(md5($row['IDLinea'])); if (!$c->create()) { $errores[] = $c->getErrores(); $nErrores++; } else { $nItems++; } } //mysql_close($dbLink); echo "Líneas de Pedido creadas {$nItems}<br/>"; if (count($errores)) { echo "<pre>"; print_r($errores); echo "</pre>"; } }
/** * Hace una copia del pedido. * Genera otro pedido en base al actual. * IMPORTANTE: SE TOMAN LOS PRECIOS ACTUALES DE LOS ARTICULOS. * * @return integer El id del pedido generado */ public function duplica() { $idOrigen = $this->Id; // Crear la cabecera del pedido $destino = $this; $destino->setId(''); $destino->setIdEstado(0); $destino->setFecha(date('d-m-Y')); $destino->setFechaEntrega('00-00-0000'); $destino->setSuPedido(''); $destino->setReferencia(''); $destino->setObservations('Duplicado del pedido n. ' . $idOrigen); $destino->setIncidencias(''); $idDestino = $destino->create(); // Crear las líneas de pedido $linea = new PedidosLineas(); $rows = $linea->cargaCondicion("Id", "IdPedido='{$idOrigen}'", "Id ASC"); unset($linea); foreach ($rows as $row) { $lineaDestino = new PedidosLineas($row['Id']); $lineaDestino->setId(''); $lineaDestino->setIdPedido($idDestino); $lineaDestino->setPrimaryKeyMD5(''); $lineaDestino->valida(); // Toma los precios vigentes (tarifa, promociones, etc) $lineaDestino->create(); } unset($lineaDestino); return $idDestino; }