protected function process() { $articulo = new articulo(); $this->articulos = array(); $this->hoy = !isset($_GET['ayer']); if (isset($_GET['ayer'])) { $this->hoy = FALSE; $fecha = date("d-m-Y", strtotime("-1 day")); } else { $this->hoy = TRUE; $fecha = date("d-m-Y"); } /// leemos directamente de la base de datos $data = $this->db->select("SELECT referencia, SUM(cantidad) as cantidad, AVG(pvptotal/cantidad) as precio\n FROM lineasalbaranescli WHERE idalbaran IN (SELECT idalbaran FROM albaranescli WHERE fecha = " . $articulo->var2str($fecha) . ")\n GROUP BY referencia ORDER BY referencia ASC;"); if ($data) { foreach ($data as $d) { $art0 = $articulo->get($d['referencia']); if ($art0) { $this->articulos[] = array('referencia' => $d['referencia'], 'url' => $art0->url(), 'descripcion' => $art0->descripcion, 'cantidad' => $d['cantidad'], 'precio' => $d['precio']); } } } }
private function sin_vender() { $toplist = $this->cache->get_array('top_articulos_sin_vender'); if (!$toplist) { $articulo = new articulo(); $lineas = $this->db->select_limit("SELECT * FROM articulos WHERE stockfis > 0 AND sevende AND\n referencia NOT IN (SELECT referencia FROM lineasfacturascli\n WHERE idfactura IN (SELECT idfactura FROM facturascli\n WHERE fecha >= " . $articulo->var2str(Date('1-m-Y')) . ")) ORDER BY stockfis DESC", FS_ITEM_LIMIT, 0); if ($lineas) { foreach ($lineas as $l) { $toplist[] = new articulo($l); } } $this->cache->set('top_articulos_sin_vender', $toplist); } return $toplist; }
private function sync() { $continuar = TRUE; $art0 = new articulo(); $ej0 = new ejercicio(); $serie0 = new serie(); $div0 = new divisa(); foreach (array_reverse($this->pedidos) as $ped) { $data = $this->db->select("SELECT * FROM albaranescli WHERE numero2 = " . $art0->var2str($this->order_numero2($ped->order_number)) . ";"); if (!$data and $continuar and $ped->status == 'completed') { $albaran = new albaran_cliente(); $albaran->numero2 = $this->order_numero2($ped->order_number); $albaran->fecha = Date('d-m-Y', strtotime($ped->created_at)); $albaran->hora = Date('H:i:s', strtotime($ped->created_at)); $albaran->observaciones = 'Este pedido ha sido importado con la demo de woocommerce, por eso no se ha asignado el cliente.'; $albaran->cifnif = ''; $albaran->direccion = ''; $ejercicio = $ej0->get_by_fecha($albaran->fecha); if ($ejercicio) { $albaran->codejercicio = $ejercicio->codejercicio; $serie = $serie0->get($this->setup['wooc_serie']); if ($serie) { $albaran->codserie = $serie->codserie; $albaran->irpf = $serie->irpf; $albaran->codalmacen = $this->setup['wooc_alm']; $divisa = $div0->get($this->empresa->coddivisa); if ($divisa) { $albaran->coddivisa = $divisa->coddivisa; $albaran->tasaconv = $divisa->tasaconv; } $albaran->codpago = $this->empresa->codpago; if ($albaran->save()) { foreach ($ped->line_items as $l) { $linea = new linea_albaran_cliente(); $linea->idalbaran = $albaran->idalbaran; $linea->referencia = $l->sku; $linea->descripcion = $l->name; $linea->cantidad = $l->quantity; $linea->irpf = $albaran->irpf; $articulo = $art0->get($l->sku); if ($articulo and !$serie->siniva and $cliente->regimeniva != 'Exento') { $linea->codimpuesto = $articulo->codimpuesto; $linea->iva = $articulo->get_iva(); } $linea->pvpunitario = 100 * $l->total / $l->quantity / (100 + $linea->iva); $linea->pvptotal = $linea->pvpsindto = $linea->pvpunitario * $linea->cantidad; if ($linea->save()) { /// descontamos del stock if ($articulo) { $articulo->sum_stock($albaran->codalmacen, 0 - $linea->cantidad); } $albaran->neto += $linea->pvptotal; $albaran->totaliva += $linea->pvptotal * $linea->iva / 100; $albaran->totalirpf += $linea->pvptotal * $linea->irpf / 100; $albaran->totalrecargo += $linea->pvptotal * $linea->recargo / 100; } else { $this->new_error_msg("¡Imposible guardar la linea con referencia: " . $linea->referencia); $continuar = FALSE; } } /// cupones foreach ($ped->coupon_lines as $l) { $linea = new linea_albaran_cliente(); $linea->idalbaran = $albaran->idalbaran; $linea->descripcion = 'Cupón: ' . $l->code; $linea->cantidad = -1; $linea->irpf = $albaran->irpf; if (!$serie->siniva and $cliente->regimeniva != 'Exento') { $impuesto = $this->impuesto->get($this->setup['wooc_imp']); if ($impuesto) { $linea->codimpuesto = $impuesto->codimpuesto; $linea->iva = $impuesto->iva; } } $linea->pvpunitario = 100 * floatval($l->amount) / (100 + $linea->iva); $linea->pvptotal = $linea->pvpsindto = $linea->pvpunitario * $linea->cantidad; if ($linea->save()) { $albaran->neto += $linea->pvptotal; $albaran->totaliva += $linea->pvptotal * $linea->iva / 100; $albaran->totalirpf += $linea->pvptotal * $linea->irpf / 100; $albaran->totalrecargo += $linea->pvptotal * $linea->recargo / 100; } else { $this->new_error_msg("¡Imposible guardar la linea del cupón: " . $l->code); $continuar = FALSE; } } if ($continuar) { /// redondeamos $albaran->neto = round($albaran->neto, FS_NF0); $albaran->totaliva = round($albaran->totaliva, FS_NF0); $albaran->totalirpf = round($albaran->totalirpf, FS_NF0); $albaran->totalrecargo = round($albaran->totalrecargo, FS_NF0); $albaran->total = $albaran->neto + $albaran->totaliva - $albaran->totalirpf + $albaran->totalrecargo; if ($albaran->save()) { $this->new_message("<a href='" . $albaran->url() . "'>" . ucfirst(FS_ALBARAN) . "</a> guardado correctamente."); $this->new_change(ucfirst(FS_ALBARAN) . ' Cliente ' . $albaran->codigo, $albaran->url(), TRUE); } else { $this->new_error_msg("¡Imposible actualizar el <a href='" . $albaran->url() . "'>" . FS_ALBARAN . "</a>!"); $continuar = FALSE; } } else { if ($albaran->delete()) { $this->new_message(ucfirst(FS_ALBARAN) . " eliminado correctamente."); } else { $this->new_error_msg("¡Imposible eliminar el <a href='" . $albaran->url() . "'>" . FS_ALBARAN . "</a>!"); $continuar = FALSE; } } } else { $this->new_error_msg('Error al guardar los datos del ' . FS_ALBARAN . ' ' . $ped->order_number); $continuar = FALSE; } } else { $this->new_error_msg('Imposible encontrar una serie para el ' . FS_ALBARAN . ' ' . $ped->order_number); $continuar = FALSE; } } else { $this->new_error_msg('Imposible encontrar un ejercicio para el ' . FS_ALBARAN . ' ' . $ped->order_number); $continuar = FALSE; } break; } } $this->new_advice('Esto es una demo. La versión completa importa todos los pedidos completados, incluyendo clientes y artículos. ' . '<a href="https://www.facturascripts.com/store/producto/plugin-woocommerce/" target="_blank">' . '<span class="glyphicon glyphicon-shopping-cart"></span> comprar la versión completa</a>'); }