/** * Hace una copia del parte de elaboración * Genera otro parte en base al actual. * Solo genera las lineas de elaboración enviadas (tipo=0) * * @return integer El id del parte generado */ public function duplica() { $idOrigen = $this->IDManufac; // Crear la cabecera del parte $destino = new ManufacCab(); $destino->setIDEstado(0); $destino->setFechaOrden(date('d-m-Y')); $destino->setFechaEntrega('00-00-0000'); $destino->setIDElaborador($this->IDElaborador); $destino->setDescripcion($this->Descripcion); $destino->setIDAlmacenOrigen($this->IDAlmacenOrigen); $destino->setIDAlmacenDestino($this->IDAlmacenDestino); $idDestino = $destino->create(); // Crear las líneas de parte if ($idDestino) { $linea = new ManufacLineas(); $rows = $linea->cargaCondicion("*", "IDManufac='{$idOrigen}' and Tipo='0'", "IDLinea ASC"); unset($linea); foreach ($rows as $row) { $lineaDestino = new ManufacLineas(); $lineaDestino->setIDManufac($idDestino); $lineaDestino->setIDArticulo($row['IDArticulo']); $lineaDestino->setDescripcion($row['Descripcion']); $lineaDestino->setUnidades($row['Unidades']); $lineaDestino->setIDAlmacen($row['IDAlmacen']); $lineaDestino->setPrecio($row['Precio']); $lineaDestino->setImporte($row['Importe']); $lineaDestino->create(); } unset($lineaDestino); } else { $this->_errores[] = "Hubo un error al duplicar el parte de elaboración."; } return $idDestino; }