protected function process()
 {
     $this->show_fs_toolbar = FALSE;
     $this->cliente = FALSE;
     $this->pedido = FALSE;
     $this->presupuesto = FALSE;
     if (isset($_REQUEST['pedido']) and isset($_REQUEST['id'])) {
         $ped = new pedido_cliente();
         $this->pedido = $ped->get($_REQUEST['id']);
         if ($this->pedido) {
             $cliente = new cliente();
             $this->cliente = $cliente->get($this->pedido->codcliente);
         }
         if (isset($_POST['email'])) {
             $this->enviar_email('pedio');
         } else {
             $this->generar_pdf_pedido();
         }
     } else {
         if (isset($_REQUEST['presupuesto']) and isset($_REQUEST['id'])) {
             $pres = new presupuesto_cliente();
             $this->presupuesto = $pres->get($_REQUEST['id']);
             if ($this->presupuesto) {
                 $cliente = new cliente();
                 $this->cliente = $cliente->get($this->presupuesto->codcliente);
             }
             if (isset($_POST['email'])) {
                 $this->enviar_email('presupuesto');
             } else {
                 $this->generar_pdf_presupuesto();
             }
         }
     }
     $this->share_extensions();
 }
 protected function private_core()
 {
     $this->articulo_proveedor = new articulo_proveedor();
     $this->cliente = FALSE;
     $this->impuesto = new impuesto();
     $this->pedido = FALSE;
     $this->presupuesto = FALSE;
     $this->proveedor = FALSE;
     /// obtenemos los datos de configuración de impresión
     $this->impresion = array('print_ref' => '1', 'print_dto' => '1', 'print_alb' => '0');
     $fsvar = new fs_var();
     $this->impresion = $fsvar->array_get($this->impresion, FALSE);
     if (isset($_REQUEST['pedido_p']) and isset($_REQUEST['id'])) {
         $ped = new pedido_proveedor();
         $this->pedido = $ped->get($_REQUEST['id']);
         if ($this->pedido) {
             $proveedor = new proveedor();
             $this->proveedor = $proveedor->get($this->pedido->codproveedor);
         }
         if (isset($_POST['email'])) {
             $this->enviar_email_proveedor('pedio');
         } else {
             $this->generar_pdf_pedido_proveedor();
         }
     } else {
         if (isset($_REQUEST['pedido']) and isset($_REQUEST['id'])) {
             $ped = new pedido_cliente();
             $this->pedido = $ped->get($_REQUEST['id']);
             if ($this->pedido) {
                 $cliente = new cliente();
                 $this->cliente = $cliente->get($this->pedido->codcliente);
             }
             if (isset($_POST['email'])) {
                 $this->enviar_email('pedio');
             } else {
                 $this->generar_pdf_pedido();
             }
         } else {
             if (isset($_REQUEST['presupuesto']) and isset($_REQUEST['id'])) {
                 $pres = new presupuesto_cliente();
                 $this->presupuesto = $pres->get($_REQUEST['id']);
                 if ($this->presupuesto) {
                     $cliente = new cliente();
                     $this->cliente = $cliente->get($this->presupuesto->codcliente);
                 }
                 if (isset($_POST['email'])) {
                     $this->enviar_email('presupuesto');
                 } else {
                     $this->generar_pdf_presupuesto();
                 }
             }
         }
     }
     $this->share_extensions();
 }
 protected function private_core()
 {
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     $this->ppage = $this->page->get('ventas_presupuestos');
     $this->agente = FALSE;
     $presupuesto = new presupuesto_cliente();
     $this->presupuesto = FALSE;
     $this->cliente = new cliente();
     $this->cliente_s = FALSE;
     $this->divisa = new divisa();
     $this->ejercicio = new ejercicio();
     $this->fabricante = new fabricante();
     $this->familia = new familia();
     $this->forma_pago = new forma_pago();
     $this->impuesto = new impuesto();
     $this->nuevo_presupuesto_url = FALSE;
     $this->pais = new pais();
     $this->serie = new serie();
     $this->setup_validez = 30;
     $this->configurar_validez();
     /**
      * Comprobamos si el usuario tiene acceso a nueva_venta,
      * necesario para poder añadir líneas.
      */
     if ($this->user->have_access_to('nueva_venta', FALSE)) {
         $nuevoprep = $this->page->get('nueva_venta');
         if ($nuevoprep) {
             $this->nuevo_presupuesto_url = $nuevoprep->url();
         }
     }
     if (isset($_POST['idpresupuesto'])) {
         $this->presupuesto = $presupuesto->get($_POST['idpresupuesto']);
         $this->modificar();
     } else {
         if (isset($_GET['id'])) {
             $this->presupuesto = $presupuesto->get($_GET['id']);
         }
     }
     if ($this->presupuesto) {
         $this->page->title = $this->presupuesto->codigo;
         /// cargamos el agente
         if (!is_null($this->presupuesto->codagente)) {
             $agente = new agente();
             $this->agente = $agente->get($this->presupuesto->codagente);
         }
         /// cargamos el cliente
         $this->cliente_s = $this->cliente->get($this->presupuesto->codcliente);
         /// comprobamos el presupuesto
         if ($this->presupuesto->full_test()) {
             if (isset($_REQUEST['status'])) {
                 $this->presupuesto->status = intval($_REQUEST['status']);
                 if ($this->presupuesto->status == 1 and is_null($this->presupuesto->idpedido)) {
                     $this->generar_pedido();
                 } else {
                     if ($this->presupuesto->save()) {
                         $this->new_message(ucfirst(FS_PRESUPUESTO) . " modificado correctamente.");
                     } else {
                         $this->new_error_msg("¡Imposible modificar el " . FS_PRESUPUESTO . "!");
                     }
                 }
             } else {
                 /// Comprobamos las líneas
                 $this->check_lineas();
             }
         }
     } else {
         $this->new_error_msg("¡" . ucfirst(FS_PRESUPUESTO) . " de cliente no encontrado!");
     }
 }
 public function show_nombrecliente()
 {
     $nombre = 'desconocido';
     $encontrado = FALSE;
     foreach (self::$presupuestos as $p) {
         if ($p->idpresupuesto == $this->idpresupuesto) {
             $nombre = $p->nombrecliente;
             $encontrado = TRUE;
             break;
         }
     }
     if (!$encontrado) {
         $pre = new presupuesto_cliente();
         self::$presupuestos[] = $pre->get($this->idpresupuesto);
         $nombre = self::$presupuestos[count(self::$presupuestos) - 1]->nombrecliente;
     }
     return $nombre;
 }
 private function delete_presupuesto()
 {
     $pre = new presupuesto_cliente();
     $pre1 = $pre->get($_POST['delete']);
     if ($pre1) {
         if ($pre1->delete()) {
             $this->new_message(ucfirst(FS_PRESUPUESTO) . " " . $pre1->codigo . " borrado correctamente.");
         } else {
             $this->new_error_msg("¡Imposible borrar el " . FS_PRESUPUESTO . "!");
         }
     } else {
         $this->new_error_msg("¡" . ucfirst(FS_PRESUPUESTO) . " no encontrado!");
     }
 }
 private function delete_presupuesto()
 {
     $pre0 = new presupuesto_cliente();
     $presup = $pre0->get($_POST['delete']);
     if ($presup) {
         if ($presup->delete()) {
             $this->new_message(ucfirst(FS_PRESUPUESTO) . " de venta " . $presup->codigo . " eliminado correctamente.", TRUE);
             $this->clean_last_changes();
         } else {
             $this->new_error_msg("¡Imposible eliminar el " . FS_PRESUPUESTO . "!");
         }
     } else {
         $this->new_error_msg("¡" . ucfirst(FS_PRESUPUESTO) . " no encontrado!");
     }
 }
 protected function private_core()
 {
     $this->share_extensions();
     $this->documento = FALSE;
     if (isset($_REQUEST['presu'])) {
         $pre0 = new presupuesto_cliente();
         $this->documento = $pre0->get($_REQUEST['id']);
         if ($this->documento) {
             $this->titulo = FS_PRESUPUESTO . ' ' . $this->documento->codigo;
             $this->lineas = $this->documento->get_lineas();
             if (isset($_POST['idlinea'])) {
                 if ($this->documento->editable) {
                     $orden = 1 + count($_POST['idlinea']);
                     foreach ($_POST['idlinea'] as $idl) {
                         foreach ($this->lineas as $lin) {
                             if ($lin->idlinea == $idl) {
                                 $lin->orden = $orden;
                                 $lin->mostrar_cantidad = FALSE;
                                 $lin->mostrar_precio = FALSE;
                                 if (isset($_POST['mostrar_cantidad_' . $idl])) {
                                     $lin->mostrar_cantidad = TRUE;
                                     $lin->mostrar_precio = isset($_POST['mostrar_precio_' . $idl]);
                                 }
                                 $lin->save();
                                 break;
                             }
                         }
                         $orden--;
                     }
                     $this->new_message('Datos guardados correctamente.');
                     $this->lineas = $this->documento->get_lineas();
                 } else {
                     $this->new_error_msg('El documento ya no es editable.');
                 }
             }
         }
     } else {
         if (isset($_REQUEST['pedido'])) {
             $ped0 = new pedido_cliente();
             $this->documento = $ped0->get($_REQUEST['id']);
             if ($this->documento) {
                 $this->titulo = FS_PEDIDO . ' ' . $this->documento->codigo;
                 $this->lineas = $this->documento->get_lineas();
                 if (isset($_POST['idlinea'])) {
                     if ($this->documento->editable) {
                         $orden = 1 + count($_POST['idlinea']);
                         foreach ($_POST['idlinea'] as $idl) {
                             foreach ($this->lineas as $lin) {
                                 if ($lin->idlinea == $idl) {
                                     $lin->orden = $orden;
                                     $lin->mostrar_cantidad = FALSE;
                                     $lin->mostrar_precio = FALSE;
                                     if (isset($_POST['mostrar_cantidad_' . $idl])) {
                                         $lin->mostrar_cantidad = TRUE;
                                         $lin->mostrar_precio = isset($_POST['mostrar_precio_' . $idl]);
                                     }
                                     $lin->save();
                                     break;
                                 }
                             }
                             $orden--;
                         }
                         $this->new_message('Datos guardados correctamente.');
                         $this->lineas = $this->documento->get_lineas();
                     } else {
                         $this->new_error_msg('El documento ya no es editable.');
                     }
                 }
             }
         }
     }
 }
 protected function process()
 {
     $this->ppage = $this->page->get('ventas_presupuestos');
     $this->agente = FALSE;
     /// desactivamos la barra de botones
     $this->show_fs_toolbar = FALSE;
     $presupuesto = new presupuesto_cliente();
     $this->presupuesto = FALSE;
     $this->cliente = new cliente();
     $this->cliente_s = FALSE;
     $this->ejercicio = new ejercicio();
     $this->familia = new familia();
     $this->impuesto = new impuesto();
     $this->nuevo_presupuesto_url = FALSE;
     $this->serie = new serie();
     /**
      * Comprobamos si el usuario tiene acceso a nueva_venta,
      * necesario para poder añadir líneas.
      */
     if ($this->user->have_access_to('nueva_venta', FALSE)) {
         $nuevoprep = $this->page->get('nueva_venta');
         if ($nuevoprep) {
             $this->nuevo_presupuesto_url = $nuevoprep->url();
         }
     }
     if (isset($_POST['idpresupuesto'])) {
         $this->presupuesto = $presupuesto->get($_POST['idpresupuesto']);
         $this->modificar();
     } else {
         if (isset($_GET['id'])) {
             $this->presupuesto = $presupuesto->get($_GET['id']);
         }
     }
     if ($this->presupuesto) {
         $this->page->title = $this->presupuesto->codigo;
         /// cargamos el agente
         if (!is_null($this->presupuesto->codagente)) {
             $agente = new agente();
             $this->agente = $agente->get($this->presupuesto->codagente);
         }
         /// cargamos el cliente
         $this->cliente_s = $this->cliente->get($this->presupuesto->codcliente);
         /// comprobamos el presupuesto
         if ($this->presupuesto->full_test()) {
             if (strtotime($this->presupuesto->finoferta) < strtotime(Date('d-m-Y')) and $this->presupuesto->status != 2) {
                 $this->new_advice("Fecha validez del " . FS_PRESUPUESTO . " vencida.");
                 $this->presupuesto->status = 2;
                 /// rechazado
                 $this->presupuesto->save();
             } else {
                 if (isset($_REQUEST['status'])) {
                     $this->presupuesto->status = intval($_REQUEST['status']);
                     if ($this->presupuesto->status == 1 and is_null($this->presupuesto->idpedido)) {
                         $this->generar_pedido();
                     } else {
                         if ($this->presupuesto->save()) {
                             $this->new_message(ucfirst(FS_PRESUPUESTO) . " modificado correctamente.");
                         } else {
                             $this->new_error_msg("¡Imposible modificar el " . FS_PRESUPUESTO . "!");
                         }
                     }
                 } else {
                     /// Comprobamos las líneas
                     $this->check_lineas();
                 }
             }
         }
     } else {
         $this->new_error_msg("¡" . ucfirst(FS_PRESUPUESTO) . " de cliente no encontrado!");
     }
 }