# Contractvs ERP API

API del Proyecto Contractvs ERP.


## Comenzando 🚀

Estas instrucciones te permitirán colocar en funcionamiento para tu máquina local el API del Proyecto Contractvs ERP con propósitos de desarrollo y pruebas.

### Pre-requisitos 📋

Antes de iniciar con la instalación es necesario instalar en tu máquina local el software necesario de Sisoft para poner en marcha el API del Proyecto Contractvs ERP. En el siguiente enlace encontrarás todos los pasos necesarios para esto.

[Docker Desarrolladores Contractvs ERP](https://github.com/sisoftdev/contractvs-erp-v1-docker-develop) - Github.

### Instalación 🔧

A continuación realizamos la instalación del API del Proyecto Contractvs ERP.

#### Clonar Proyecto

Inicialmente en tu máquina local por consola o en una terminal nos situamos en la ruta escritorio/contractvs-erp/projects/ en el cual desde allí debes realizar el clonado del repositorio correspondiente ejecutando lo siguiente.

```
git clone http://git.sisoft.com.co:2030/finanzas/api.git api
```

***Nota. Todos los proyectos deben estar en el directorio escritorio/contractvs-erp/projects/. Desde allí debes realizar el clonado de los repositorios correspondientes.***

#### Descargar Librerias

El API del Proyecto Contractvs ERP utiliza como gestor de paquetes a composer y a npm, por tanto, es necesario seguir una serie de pasos para su instalación. Para ello por consola o en una terminal nos situamos en la ruta escritorio/contractvs-erp/ y ejecutamos lo siguiente. Ingresamos al contenedor donde se puede utilizar los comandos necesarios para tal fin.

***Nota. Si estas en un sistema operativo windows puede que se presente problemas en la instalación favor desactivar el firewall y el antivirus.***

Mac OS - Linux.
```
docker exec -it web_contractvs_erp bash
```
Windows.
```
winpty docker exec -it web_contractvs_erp bash
```

Una vez ingresado al contenedor nos situamos en la ruta /var/www/html/api/ que es donde se encuentra una copia del repositorio descargado en tu máquina local (el cual fue colocado autómaticamente dentro del contenedor) y ejecutamos lo siguiente en este orden.

- .
```
/usr/bin/php7.4 /usr/bin/composer install
```

- .
```
/usr/bin/php7.4 /usr/bin/composer update
```

- .
```
npm install
```

- .
```
npm run dev
```

Esperamos mientras se realiza toda la instalación.

***Nota. Para poder realizar el comando composer siempre es necesario tomar la ruta completa del php y del composer como se muestra a continuación.***
```
/usr/bin/php7.4 /usr/bin/composer XXX
```

#### Laravel

El API del Proyecto Contractvs ERP se encuentra desarrollado con el framework laravel, por tanto, es necesario seguir una serie de pasos para su correcto funcionamiento. Para ello por consola o en una terminal nos situamos en la ruta escritorio/contractvs-erp/ y ejecutamos lo siguiente. Ingresamos al contenedor donde se puede utilizar los comandos necesarios para tal fin.

Mac OS - Linux.
```
docker exec -it web_contractvs_erp bash
```
Windows.
```
winpty docker exec -it web_contractvs_erp bash
```

Una vez ingresado al contenedor nos situamos en la ruta /var/www/html/api/ que es donde se encuentra una copia del repositorio descargado en tu máquina local (el cual fue colocado autómaticamente dentro del contenedor) y ejecutamos lo siguiente en este orden.

- .
```
cp .env.example .env
```

- .
```
/usr/bin/php7.4 artisan key:generate
```

- .
```
/usr/bin/php7.4 artisan storage:link
```

- .
```
chmod -R 777 storage/
```

***Nota. Para poder realizar el comando php artisan siempre es necesario tomar la ruta completa del php como se muestra a continuación.***
```
/usr/bin/php7.4 artisan XXX
```

***Nota. De ser necesario y dependiendo de la entidad a trabajar se debe cambiar en el .env los datos de:***
```
EMPRESA_DEFAULT=
DIVIPOLA=
```


## Despliegue 📦

A través de un navegador web podemos ver el funcionamiento del API del Proyecto Contractvs ERP con el siguiente enlace.

[http://127.0.0.1/api/public/](http://127.0.0.1/api/public/) - Localhost.

***Nota. Como se menciono el API del Proyecto Contractvs ERP se encuentra desarrollado en laravel y su archivo principal de configuración es el archivo .env. Si estas trabajando con la imagen docker de Sisoft este por defecto ya se encuentra configurado con todos los párametros necesarios para tal fin en su archivo .env.example.***


## Construido con 🛠️

* [Ubuntu:20.04](https://ubuntu.com/) - Sistema operativo.
* [Apache2](https://httpd.apache.org/) - Servidor web.
* [Php:7.4](https://www.php.net/) - Lenguaje de programación del lado del servidor.
* [Postgres:14.2](https://www.php.net/) - Base de datos.
* [Composer](https://getcomposer.org/) - Usado como manejador de paquetes php.
* [Nodejs:14.x](https://nodejs.org/es/) - Para utilizar el gestor de paquetes npm.
* [Phppgadmin:7.13.0](https://github.com/phppgadmin/phppgadmin) - Administrador de base de datos para postgres.
* [Laravel:5.6](https://laravel.com/) - Framework laravel.


## Autores ✒️

* **Jair Riaño** - *Trabajo Inicial* - [jkadael](https://github.com/jkadael)