/** * Recepciona el pedido en base a las lineas de recepción de cada linea de pedido. * * Actualiza los precios (Pvd,Pmc,Margen,Pvp) del artículo * * Pasa el pedido al estado RECEPCIONADO (2) * * @param string $incidencias Posibles incidencias en la recepcion * @return boolean */ public function recepciona($incidencias) { if ($this->getIDEstado()->getIDTipo() == '1') { // Recorrer cada linea del pedido $lineaPedido = new PedidosLineas(); $rows = $lineaPedido->cargaCondicion("IDLinea", "IDPedido='{$this->IDPedido}' and IDEstado='1'", "IDLinea ASC"); foreach ($rows as $row) { $lineaPedido = new PedidosLineas($row['IDLinea']); if (!$lineaPedido->recepciona()) { $this->_errores = $lineaPedido->getErrores(); break; } } unset($lineaPedido); if (count($this->_errores) == 0) { //Marcar el pedido como recepcionado, poner la fecha de entrada y guardar las eventuales incidencias $usuario = new Agentes($_SESSION['usuarioPortal']['Id']); unset($usuario); $this->setIDEstado('2'); $this->setFechaEntrada(''); $this->setIncidencias($incidencias); $this->save(); } } return count($this->_errores) == 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>"; } }
private function importPedidosLineas() { $obj = new PedidosLineas(); $obj->truncate(); $file = getcwd() . "/docs/docs1/import/PEDIDOS_LINEAS.txt"; $archivo = new Archivo($file); $archivo->setColumnsDelimiter(";"); $archivo->setColumnsEnclosure("\""); $errores = 0; if ($archivo->open()) { // Leer la cabecera $titulos = $archivo->readLine(); // Leer el contenido $i = -1; while ($row = $archivo->readLine()) { $i++; $item = array(); foreach ($titulos as $key => $titulo) { $item[$titulo] = $row[$key]; } $obj = new PedidosLineas(); $obj->setIdPedido($item['IDPEDIDO']); $obj->setUnidades(self::trataNumero($item['UNIDADES'])); $obj->setIdFirma($item['IDFIRMA']); $obj->setIdFamilia($item['IDFAMILIA']); $obj->setIdArticulo(self::getArticulo($item['IDFIRMA'], $item['IDARTICULO'])); $obj->setIdCliente($item['IDCLIENTE']); $obj->setDescripcion(utf8_encode($item['DESCRIPCION'])); $obj->setPrecio(self::trataMoneda($item['PRECIO'])); $obj->setDescuento1(self::trataNumero($item['DCTO1'])); $obj->setDescuento2(self::trataNumero($item['DCTO2'])); $obj->setDescuento3(self::trataNumero($item['DCTO3'])); $obj->setImporte(self::trataMoneda($item['IMPORTE'])); $obj->setComisionAgente(self::trataNumero($item['COMISION_AGENTE'])); $obj->setComisionSubagente(self::trataNumero($item['COMISION_SUBAGENTE'])); $obj->setIva(self::trataNumero($item['IVA'])); $obj->setUnidadesPtesFacturar(self::trataNumero($item['PENDIENTE_FACTURAR'])); $obj->setObservations(utf8_encode($item['OBSERVACIONES'])); $id = $obj->create(); if (!$id) { print_r($obj->getErrores()); $errores++; } } $archivo->close(); } echo "PedidosLineas {$i}<br/>"; if ($errores) { echo "Errores PedidosLineas {$errores}</br>"; } }