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