/** * Hace una copia del parte de traspaso * Genera otro parte en base al actual. * * @return integer El id del parte generado */ public function duplica() { $idOrigen = $this->IDTraspaso; // Crear la cabecera del parte $destino = new TraspasosCab(); $destino->setIDSucursal($this->IDSucursal); $destino->setIDContador($this->IDContador); $destino->setIDEstado(0); $destino->setFechaOrden(date('d-m-Y')); $destino->setFechaEntrada('00-00-0000'); $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 TraspasosLineas(); $rows = $linea->cargaCondicion("*", "IDTraspaso='{$idOrigen}'", "IDLinea ASC"); unset($linea); foreach ($rows as $row) { $lineaDestino = new TraspasosLineas(); $lineaDestino->setIDTraspaso($idDestino); $lineaDestino->setTipo($row['Tipo']); $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 la orden de traspaso."; } return $idDestino; }
/** * Genera un array con la informacion necesaria para imprimir el documento * Recibe un array con los ids de traspaso * No muestra las lineas cuyas unidades son cero. * * @param array $idsDocumento Array con los ids de traspasos * @return array Array con dos elementos: master es un objeto traspaso y detail es un array de objetos lineas de traspaso */ protected function getDatosDocumento(array $idsDocumento) { $master = array(); $detail = array(); // Recorro el array de los partes a imprimir foreach ($idsDocumento as $key => $idDocumento) { // Instancio la cabecera del traspaso $master[$key] = new TraspasosCab($idDocumento); // LLeno el array con objetos de lineas de partes de elaboracion $lineas = array(); $manufacLineas = new TraspasosLineas(); $rows = $manufacLineas->cargaCondicion('IDLinea', "IDTraspaso='{$idDocumento}'", "Tipo,IDLinea ASC"); foreach ($rows as $row) { $lineas[] = new TraspasosLineas($row['IDLinea']); } $detail[$key] = $lineas; } return array('master' => $master, 'detail' => $detail); }