예제 #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>";
     }
 }
 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>";
     }
 }
 private function cargarLineas($idPedido, $idFirma, $idCliente, $archivoCsv)
 {
     $nLinea = 0;
     $errores = array();
     $csv = new Archivo($archivoCsv);
     $csv->setColumnsDelimiter(";");
     if ($csv->open()) {
         $articulo = new Articulos();
         while ($linea = $csv->readLine()) {
             $nLinea++;
             $codigo = trim($linea[0]);
             $unidades = trim($linea[1]);
             if ($codigo != '') {
                 $filtro = "IdFirma='{$idFirma}' and (Codigo='{$codigo}' or CodigoEAN='{$codigo}')";
                 //echo $filtro,"\n";
                 $rows = $articulo->cargaCondicion("Id,IdFamilia,Codigo,Descripcion,Pvd", $filtro);
                 $row = $rows[0];
                 if ($row['Id'] != '') {
                     $articulo = new Articulos($row['Id']);
                     $pedidoLinea = new PedidosLineas();
                     $pedidoLinea->setIdPedido($idPedido);
                     $pedidoLinea->setIdFirma($idFirma);
                     $pedidoLinea->setIdFamilia($row['IdFamilia']);
                     $pedidoLinea->setIdCliente($idCliente);
                     $pedidoLinea->setIdArticulo($row['Id']);
                     $pedidoLinea->setDescripcion($row['Descripcion']);
                     $pedidoLinea->setUnidades($unidades);
                     $pedidoLinea->setPrecio($row['Pvd']);
                     $pedidoLinea->setIva($articulo->getIdIva()->getIva());
                     $pedidoLinea->setImporte($unidades * $row['Pvd']);
                     $id = $pedidoLinea->create();
                     if (!$id) {
                         $errores[] = "Línea {$nLinea}: No se pudo crear la línea de pedido.";
                     }
                 } else {
                     $errores[] = "Línea {$nLinea}: El artículo {$codigo} no existe o no pertenece a la firma del pedido.";
                 }
             }
         }
         $csv->close();
         unset($articulo);
         unset($pedidoLinea);
         // Recalcular los totales del pedido
         if (count($errores) == 0) {
             $pedido = new PedidosCab($idPedido);
             $pedido->save();
             unset($pedido);
         }
     } else {
         $errores[] = "No se ha podido abrir el archivo cargado";
     }
     return $errores;
 }
예제 #4
0
 /**
  * Crea pedido web en base a lo que hay
  * en el carrito de la sesion en curso.
  * 
  * Si ya hubiera un pedido asociado a esa sesion,
  * lo borra y lo crea de nuevo
  * 
  * @param integer $idCliente EL id del cliente
  * @param boolean $avisoRecepcionParcial
  * @return integer $idPedido
  */
 static function creaPedido($idCliente, $avisoRecepcionParcial = 0)
 {
     if ($avisoRecepcionParcial == '') {
         $avisoRecepcionParcial = 0;
     }
     $carrito = new Carrito();
     $filtro = "Sesion='{$_SESSION['IdSesion']}'";
     $rows = $carrito->cargaCondicion("*", $filtro, "Id ASC");
     unset($carrito);
     $totales = self::getTotales();
     $pedido = new PedidosCab();
     $pedido->setIdSucursal($_SESSION['usuarioPortal']['SucursalActiva']['Id']);
     $pedido->setIdUsuario($_SESSION['usuarioPortal']['Id']);
     $pedido->setIdCliente($idCliente);
     $pedido->setFecha(date('Y-m-d H:i:s'));
     $pedido->setNItems($totales['Unidades']);
     $pedido->setImporte($totales['total']);
     $pedido->setAvisoRecepcionParcial($avisoRecepcionParcial);
     $idPedido = $pedido->create();
     if ($idPedido > 0) {
         // Crear las líneas
         foreach ($rows as $row) {
             $linea = new PedidosLineas();
             $linea->setIdPedido($idPedido);
             $linea->setIdSucursal($row['IdSucursal']);
             $linea->setIdDistribuidora($row['IdDistribuidora']);
             $linea->setIdUsuario($row['IdUsuario']);
             $linea->setIdCliente($idCliente);
             $linea->setSku($row['Sku']);
             $linea->setEan($row['Ean']);
             $linea->setDescripcion($row['Descripcion']);
             $linea->setAutor($row['Autor']);
             $linea->setEditorial($row['Editorial']);
             $linea->setUrlImagen($row['UrlImagen']);
             $linea->setUnidades($row['Unidades']);
             $linea->setPrecio($row['Precio']);
             $linea->setDescuento($row['Descuento']);
             $linea->setPvd($row['Pvd']);
             $linea->setImporte($row['Importe']);
             $linea->setIva($row['Iva']);
             $linea->setRecargo($row['Recargo']);
             $linea->setIdEstado(0);
             $linea->setIvaIncluido($row['IvaIncluido']);
             $linea->create();
             //print_r($linea->getErrores());
         }
     }
     return $idPedido;
 }