예제 #1
0
 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>";
     }
 }
예제 #2
0
 /**
  * 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;
 }