Blog en el cual se emitirán temas relacionados a lenguajes de programación en modo básico y a la instalación de programas y consejos de los mismos para una mejor experiencia del usuario básico o intermedio.

PayPal: Creación de una Cuenta


En esta segunda parte explicaremos como crear una cuenta de paypal, pero no sin antes recordar los temas que hasta ahora hemos desarrollado:
  1. PayPal: Introducción
  2. PayPal: Creación de una Cuenta
  3. PayPal: Configuración de la empresa
  4. PayPal: Aplicaciones de REST API
Puedes acceder al tema que necesites haciendo clic sobre ellos.

Bien, para registrarnos debemos ingresar a la página oficial de PayPal (https://www.paypal.com/ ) recordar que todo registro dependerá del país donde nos encontremos. Como es el caso, le presentaré a continuación una vista para Perú.


Tal y cual muestra la imagen, crear una cuenta es gratis y existen 2 tipos de cuentas :
  1. Personal : Normalmente sirve para enviar y recibir pagos, por ejemplo si eres un trabajador independiente y realizas proyectos, sea nacional o internacionalmente, puedes enviar, tan solo tu correo electrónico para recibir el pago. También sirve para realizar compras en internet o pagos en algunos de los establecimientos que permitan este tipo de transacciones.
  2. Negocio : Esto tiene mayor funcionalidad, un ejemplo más claro es poder realizar pagos a trabajadores de manera masiva como también integrar alguna tienda en línea que tengamos y recibir pagos de millones de clientes desde cualquier parte del mundo. Para lo que va enfocado estas sesiones del blog, integración de pagos en línea utilizando nuestra plataforma.


PAYPAL PERSONAL

Si elegiste crearte una cuenta personal, el registro llevará, regularmente la siguiente traza :


  • Selección de género e imágenes de interés



  • Esto es importante, puesto que los datos que ingreses aquí serán para ingresar a PayPal y realizar tus transferencias, deberás recordarlos.

  • Luego llenas un formulario con tus datos personales para el registro correspondiente, es necesario que coloques tus datos reales por si más adelante solicites por ejemplo un estado de cuenta y puedan enviarte de manera correcta.

PAYPAL NEGOCIO

El registro para paypal negocio es de la siguiente manera.



Si seleccionas "Ya tienes un negocio registrado" pues se refiere a una cuenta personal que ya has registrado, para poder completar tus datos de empresa.

Si seleccionas "Para negocios que apenas empiezan" tienes que registrar en primera instancia tus datos personales.

Para crear paypal negocio no es necesario un registro en SUNAT [Perú] o cualquier documentación legal, al menos hasta la fecha de hoy. sin embargo debería ser una empresa con datos reales. de lo contrario esto es posible volver actualizar estos datos.



PayPal: Configuración de la empresa


Luego de crear nuestra cuenta PayPal, en definitiva como empresa procedemos a las configuraciones básicas y necesarias para utilizar el API que nos ofrece para integrar a nuestro sitio web o tienda en línea.

Si aún no has creado tu cuenta puedes volver a revisar los siguientes links:

  1. PayPal: Introducción
  2. PayPal: Creación de una Cuenta
  3. PayPal: Configuración de la empresa
  4. PayPal: Aplicaciones de REST API
Ingresamos a la plataforma con nuestras credenciales que registramos al crear nuestra cuenta, nos dirigimos a la siguiente opción:


Si es la primera vez que configuras esta sección te aparecerá de la siguiente manera:


En "Configuración del pago" debemos seleccionar "En su sitio web" para poder obtener accesos desde nuestro sitio web y conectar a PayPal.

Luego tenemos que elegir cómo procesar los pagos en nuestro sitio web.


En el lado izquierdo tiene la forma general, es decir, si el sitio web que configuraremos no tiene algún medio de pago, pues sería lo ideal para poder aceptar todos los medios, esto quiere decir que PayPal aceptará todos los medios disponibles, sin embargo esto puede afectar al cliente puesto que las comisiones de conversión de moneda dependerá únicamente de PayPal.

Esto es solo decisión, si ya cuentas con medios de pago en línea pueden adicionar un medio de pago PayPal.

Para el desarrollo de este tutorial se ha seleccionado la opción del lado izquierdo.

Sin embargo, más a detalle en el siguiente formulario puedes seleccionar lo siguiente:


Como pueden observar se ha seleccionado la opción "Agregue el proceso de pago de PayPal como forma adicional para recibir pagos". Repito, esto dependerá únicamente del vendedor.

Al dar clic en "Comparar opciones" nos abre una tabla comparativa entre estas opciones para configurar PayPal.


Dentro de la opción B, al desplegar tenemos las siguiente vista, lo cual seleccionaremos la opción de "Probar la integración".


Estos usuarios son de prueba, si nos fijamos existen 2 tipos de cuentas: BUSINESS y PERSONAL, con una extensión a nuestro correo -facilitator y -buyer, estos corresponden a una cuenta como vendedor y comprador.

Hasta ahora tenemos las configuraciones básicas para nuestro desarrollo, con usuarios para las pruebas respectivas, sin embargo necesitamos generar un acceso para el API, esto lo veremos en el siguiente post.

PayPal: Aplicaciones de REST API


En esta sección generaremos un app para poder realizar las consultas que necesitamos y redireccionar los pagos de nuestro sitio web a PayPal.

Recordarles como siempre los temas desarrollados hasta ahora:
  1. PayPal: Introducción
  2. PayPal: Creación de una Cuenta
  3. PayPal: Configuración de la empresa
  4. PayPal: Aplicaciones de REST API
Para generar la app debemos ir a la siguiente dirección: https://developer.paypal.com/ en la sección "My Apps & Credentials".
En esta parte podemos observar una de las cuentas principales que generamos en la configuración de la empresa.

jmillergomezs-facilitador@gmail.com es nuestra cuenta de negocio, recordarlo!

Si aún no creas el app, puedes hacerlo con tan solo unos clics desde esta plataforma.


Si nos fijamos ya tenemos un app registrado con el nombre testPHP, al hacer click sobre ese nombre podremos acceder al Client ID y Secret que necesitaremos al usar desde PHP.

Estos datos lo integraremos dentro de nuestro proyecto de la manera siguiente:


Quiero resaltar que el código completo del proyecto pueden descargar aquí: https://github.com/MillerGs/tuto-paypal-linio este link incluye un proyecto SellerCenter-Linio-SDK, pueden ver el tutorial haciendo click aquí.

La Ejecución de éste proyecto puedes verificar de manera gratuita en el siguiente link http://paypal.millergomez.com/

A continuación una lista de imágenes con el proceso de manera correcta






Pago exitoso



y para finalizar las notificaciones e historial del comprador



Debug PHP con NetBeans y XAMPP





Cuando iniciamos algún proyecto PHP es muy común hacer nuestras pruebas con echo $variable; print_r($variable); o var_dump($variable), si tienes una herramienta como NetBeans tienes que conocer esta funcionalidad: Como Debugear con NetBeans IDE.



Aquí daremos a conocer como configurar nuestro XAMPP y NetBeans para debugear las variables.

PRIMER PASO
Si tienes corriendo apache, debemos deterner el servicio.


Luego debemos abrir php.ini, como indicamos en la imagen siguiente:


Las líneas a modificar son las siguientes:


Una vez que tenemos estas configuraciones volvemos a iniciar Apache:


Ahora podemos configurar nuestro IDE NetBeans



SEGUNDO PASO
Abrimos Herramientas - Propiedades


Y en la pestaña general confirmamos los siguientes datos:


luego...

Aplicamos y seleccionamos OK

Ahora tenemos que indicar en nuestro proyecto donde iniciará el debug.


Project URL es la ruta de tu proyecto, si tienes configurado algún puesto, como es mi caso, también debes incluir el puerto que utilizas.
Index File: especificar en que archivo iniciar el debug, por lo general se pone index.php pero para el ejemplo utilizaremos el script que indicamos en la imagen.

Confirmamos con OK.

Luego iniciamos el Debug.

Recordar que debemos indicar en que los beakpoint para detener el debug y verificar las variables, como se muestra en la siguiente imagen.


como podemos observar la variable $fechaHoy  el tipo de dato es string y el dato es 2016-08-20

y para continuar debugueando línea por línes utilizar las herramientas siguientes:


Sistema de Parqueo


Sistema de parque de vehículos, registra el ingreso y salida de vehículos a una cochera.


  • Estos registros cuentan con un estado "Libre" u "Ocupado".
  • Puede modificar el número de cochera en el que se encuentra
  • Al marcar salida puede realizar dos tipos de cobro: por día o por Noche, esto se debe a que las tarifas son distintos en estos turnos
  • Las tarifas dependen del tipo de vehículo
  • Luego de Marcar Salida deberá Generar Ticket para que cambie el estado de Ocupado a Libre
  • Al Generar Ticket puede imprimir y luego "Liberar Nro de Cochera", solo así cambiará el el estado a Libre
  • También puede Generar Reportes, esto es del lado administrador


usuario: pepito
contraseña: www.millergomez.com

Vtiger 5.4 Flujo de Trabajo Tarea Ejecutar Función


EJECUTAR UNA FUNCIÓN DESDE UN SCRIPT PHP EN VTIGER

Sabemos que los WorkFlow de Vtiger son de mucha ayuda desde el lado back, sin embargo hay funciones "extras" que el cliente nos sugiere, por ejemplo: Al actualizar un status del módulo SalesOrder cambiar el campo account_type del módulo de Account.


Los pasos a realizar en adelante será lo mismo para cualquier módulo.

Insertar data en tablas vtiger de forma manual

Para lecturar la funcionalidad en el workflow debemos tener en cuenta en qué módulo de vtiger iremos a ejecutar esto. y para ello debemos realizar el siguiente paso según la imagen.

Donde:

  • workflowtasks_entitymethod_id : es el id de la tabla com_vtiger_workflowtasks_entitymethod.
  • module_name : es el módulo desde donde se ejecutará (desde donde empieza la funcionalidad).
  • method_name : es el nombre del método que aparecerá en el sistema de vtiger
  • function_path : es la ruta desde donde se ejecutará el script
  • function_name : es el nombre de la función del fichero (function_path), eso quiere decir que dentro del mismo fichero puedes crear más de una función.



Donde:

  • id : es el último registro de la tabla anterior

Crear un nuevo flujo de trabajo desde la interfaz de vtiger

Con el paso anterior se ha logrado que el nombre de la función esté disponible para cuando nos toque crear una nueva funcionalidad.

Ahora nos dirigimos a la Configuración CRM de vtiger y realizaremos los pasos que nos indique la imagen:

Estos datos señalados con flechas rojas serán para este ejemplo: Si el campo status del módulo SalesOrder es Anulado entonces actualizaremos el campo account_type del módulo Account a Prospecto.

En seguida la nueva tarea será: Ejecutar Función

Solo nos faltaría crear el fichero [SalesOrderHandler.php] en la ruta que ingresamos en la tabla anterior. A continuación el script de ejemplo para nuestro caso.


Vtiger 5.4 Importar Módulos y Configuraciones



Para desarrollar alguna modificación en vtiger 5.4 debemos sacar una copia del proyecto en producción y de la base de datos. así que para una mejor comprensión a la copia llamaremos "PRUEBA" y al proyecto en producción llamaremos "ORIGINAL".


PASO 01:


Verificamos en la tabla vtiger_field de ambas base de datos ( bd_prueba y bd_original )



Esto para verificar el último registro de la tabla_original con referencia a la tabla_prueba, entonces nos servirá de guía para ir acoplando uno a uno los campos que faltan.
RECORDAR QUE podemos agregar los campos desde la interfaz de vtiger.




PASO 02: AGREGAR CAMPOS EN VTIGER


Verificamos que el siguiente registro que debemos hacer es la tabla vtiger_salesorderf pero lo haremos desde la interfaz, como mencionamos anteriormente.

La extensión o length del campo debemos verificar en la base de datos de prueba.

OJO si el orden no es el mismo que tiene en tu prueba, no es de que preocuparse pues esto al final podemos corregirlo en la misma Bd. Lo importante ahora es que la secuencia de la creación de FIELDs sean los mismos.




PASO 03: IMPORTAR MODULOS EN VTIGER


Descargar los módulos siguientes: Reglasdecomision.zip y Comisiones.zip
Nos dirigimos a: Configuración CRM -> Administrador de Módulos -> Módulos Personalizados -> Importar Nuevo

Importamos el primer módulos según la tabla vtiger_field comenzaremos por Reglasdecomision.zip:




PASO 04:


Si usted cree conveniente puede ingresar un nuevo registro en el módulo nuevo importado.




PASO 05:


CONTINUANDO  CON LA COMPARACIÓN entre las tablas vtiger_field de la bd_prueba y la “bd_original” podemos constatar que ahora podemos importar el módulo de comisiones.

Ahora ya tenemos instalados nuestros 2 módulos


Pero recuerda que aún tenemos que agregar más FIELDs




PASO 06:

Agregar tipo_usuario  en la tabla vtiger_users de forma manual
Este campo: tipo_usuario agregar tanto en la tabla vtiger_users como en vtiger_field 

vtiger_field:
29|XXX|tipo_usuario|vtiger_users|1|16|tipo_usuario|Tipo de Usuario|1|0|100|16|77|1|V~O|1|BAS|1

Donde XXX es el número siguiente del registro anterior.

vtiger_users:
agregar tipo_usuario varchar 20




PASO 07: IMPORTAR TABLAS A LA BASE DE DATOS VTIGER

Descargar las siguientes tablas: vtiger_tipo_usuario y vtiger_tipo_usuario_seq y desde tu administrador de bd que prefieres importar estas tablas.




PASO 08: CREAR NUEVO BLOQUE EN VTIGER

Primero modificaremos la tabla vtiger_field el registro siguiente:

14|183|commissionrate| vtiger_products|1|9|commissionrate|Comision Spiff|1|2|100|6|32|1|N~O|...

Modificar solo lo resaltado

Segundo crearemos un bloque con los sientes campos




PASO 09:

Remplazar los siguientes archivos que se modificaron con los nuevos requerimientos:


$path{}/GeneradorDeComisiones.php
$path{}/WSVtiger.php
$path{}/modules/SalesOrder/DetailView.php

$path{}/modules/SalesOrder/EditView.php

$path{}/modules/Comisiones/reporte.php
$path{}/modules/Comisiones/reporteDetail.php
$path{}/Smarty/templates/Buttons_List.tpl
$path{}/Smarty/templates/DetailView.tpl
$path{}/Smarty/templates/Inventory/InventoryActions.tpl
$path{}/vtlib/Vtiger/PDF/inventory/ContentViewer.php


Clic aquí para descargar todos.



PASO 10: AGREGAR PRIVILEGIOS DE ACCESO EN VTIGER



Vtiger 5.4 ejemplo de FLujo de Trabajo


Creación de Flujo de Trabajo con Vtiger 5.4 para cálculo de porcentaje de canje para módulo de Cotizaciones.



  1. Login con Usuario administrador
  2. Ir a Configuración
  3. Ir a Flujos de Trabajo
  4. Seleccionar - Nuevo Flujo de Trabajo
    1. Seleccionar - Para Módulo
    2. Crear un flujo de trabajo para: Cotizaciones
  5. En la nueva ventana agregar como descripción: calcula porcentaje de canje
  6. Cuando ejecutar el flujo de trabajo: Cada vez que se guarda la entidad.
  7. Condiciones



  1. Tareas - Seleccionar - Nueva Tarea - Actualizar Campos
  2. Resumen - Tarea - Descripción: obtiene porcentaje de canje
  3. Opeciones de la tarea .


    EJEMPLO PARA CREAR UN FLUJO DE TRABAJO



UPDATE al Comparar Dos Tablas en Mysql



Caso: Un cliente solicita actualizar todos los proveedores antiguos de ciertos productos como: bebidas, caramelos, etc. para ello nos entregan una lista en excel y el código del nuevo proveedor es 777

Libro1.xlsx
--------------------------------------
producto_cod | producto_name
--------------------------------------
333                   | Producto 1
444                   | Producto 2
555                   | Producto 3
111                   | Producto 4
222                   | Producto 5

y una lista "muy grande" digamos que 400  productos para cambiar de proveedor.

Una solución "rápida" que se le puede dar, en mi opinión, es pasar esta hoja excel a una tabla en tu base de datos; a la tabla la llamaremos cambios 

Resulta que en su tabla "productos_comprados" es de la siguiente manera:
--------------------------------------------------------------------
procom_id | proveedor_id | producto_id | fecha_compra
--------------------------------------------------------------------
1                | 344                 | 555              | 2015-03-10
2                | 345                 | 333              | 2015-03-10
3                | 345                 | 567              | 2015-03-10
4                | 345                 | 444              | 2015-03-10
5                | 344                 | 567              | 2015-03-10
6                | 345                 | 567              | 2015-03-10
7                | 344                 555              | 2015-03-10
8                | 345                 | 333              | 2015-03-10
9                | 345                 | 567              | 2015-03-10
10              | 345                 | 444              | 2015-03-10
11              | 344                 | 567              | 2015-03-10
12              | 345                 222              | 2015-03-10

entonces ya tenemos las dos tablas para ejecutar el UPDATE

Luego de ejecutar nuestra consulta UPDATE quedaría así nuestra tabla productos_comprados:
--------------------------------------------------------------------
procom_id | proveedor_id | producto_id | fecha_compra
--------------------------------------------------------------------
1                | 344                 | 555              | 2015-03-10
2                | 777                 333              | 2015-03-10
3                | 345                 | 567              | 2015-03-10
4                | 777                 444              | 2015-03-10
5                | 344                 | 567              | 2015-03-10
6                | 345                 | 567              | 2015-03-10
7                | 777                 555              | 2015-03-10
8                | 777                 333              | 2015-03-10
9                | 345                 | 567              | 2015-03-10
10              | 777                 444              | 2015-03-10
11              | 344                 | 567              | 2015-03-10
12              | 777                 222              | 2015-03-10

Portal de Comercio Electrónico





Este es un Portal de Comercio Electrónico donde los vendedores pueden registrar sus productos, estos productos son mostrados en el portal (la web) donde los clientes pueden visualizar cada detalle de los productos registrados.


El cliente, necesariamente tiene que estar registrado para poder procesar su carrito de compras. El carrito de compras incluye un costo de envío, este costo es calculado en base a la dirección del cliente en referencia a la ubicación de los proveedores (Trujillo - Perú).

Este portal consta de múltiples vendedores pero al momento que el cliente registra una compra solo se tendrá un solo recibo. desde el panel de administración se puede realizar las divisiones de las ganancias o costos generados por envíos para cada vendedor.