Download the PHP package lungosoft/document without Composer

On this page you can find all versions of the php package lungosoft/document. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package document

Document Control

Introducción

Un Documento es todo aquel que tiene dos tablas, una tabla cabecera y una tabla lineas, relacionado 1 a N, donde la llave foranea se encuentra en las líneas, es decir, una cabecera con multiple líneas.

Nos proporciona un mecanismo para manejar estados de Abierto, Cerrado y Parciamente Cerrado (este último solo en líneas), dando la posibilidad de editar solo en estatus de abierto.

Nos ayuda a relacionar 2 documentos mediante llave foranea. Un documento relaciona alguna de sus líneas con una línea en otro documento, una relación 1 a 1.

En la imagen anterior vemos un ejemplo de dos documentos con sus relaciones

¿En qué nos beneficia esta estructura?

Nos ayuda a poder hacer crud de documentos de manera segura y reduciendo validaciones de estatus de documentos al crear, edtiar y eliminar. En ocaciones, se requiere crear una cadena de documentos mucho más grande y estricta, reducimos el crud en una clase que controle estos cambios y sus cambios de estatus.

¿Por que la redundancia de datos?

Como se mencionó antes, a veces se requiere una línea de documentos más larga y más compleja. Un ejemplo de esto es una aplicación empresarial tipo ERP que controle documentos de compras, almacen y facturación.

La redundancia de datos nos ayuda a que podamos simplificar las consultas y sean más rápidas (reduciendo la cantidad de JOINs a otros documentos para obtener la información).

Es por ello que debemos controlar la duplicación de datos de manera efectiva.

Control de cantidades

Podemos controlar las cantidades al momento de editar un documento, es decir, supongamos que creamos un documento "Orden de Compra" y le damos entrada a una de sus líneas mediante un documento "Entrada" por una cantidad menor a la que dice el documento "Orden de Compra", podemos editar la cantidad del documento "Orden de Compra" siempre y cuando la cantidad no sobrepase a la que tiene el documento "Entrada".

Columnas de las tablas

Todas las tablas deben tener por fuerza una de estatus (status). Para las líneas, adicional a estatus (status), una columna de cantidad (quantity). Los estados de los documentos son 'Abierto', 'Cerrado' y 'Parcialmente Cerrado'. Los valore mencionados anteriormente (status, quantity, Abierto, Cerrado y Parcialmente Cerradp) son los default, pero pueden ser cambiados modificando las propiedades del documento.

Requisitos

`

Instalación

composer install "lungosoft/document"

Uso

Document

Hay que crear una clase por documento que herede de Document y sobreescribimos 2 propiedades, una para la clase cabecera (\$headerClass) y otra la clase de las lineas (\$lineClass).

`

Ahora podemos usar sus metodos

`

Claro, se pueden crear las clases que se deseen.

Métodos

create($headers, $lines, $fk): Ayuda a crear un documento con las cabeceras, lineas y relacionando el documento con su llave foranea.

editHeader($id, $header): Edita el documento cabecera solo si sus líneas y la cabecera tienen un estatus de 'Abierto'.

editLine($id, $lineId, $header): Edita el documento linea especificado solo si la línea y la cabecera tienen un estatus de 'Abierto'.

destroyHeader($id): Elimina el documento cabecera solo si sus líneas y la cabecera tienen un estatus de 'Abierto'.

destroyLine($id, $lineId): Elimina el documento linea especificado solo si la línea y la cabecera tienen un estatus de 'Abierto'.

canEdit($model, $lineId = 0): Devuelve un true o un false si el modelo se puede editar. Si no se especifica la línea, verifica que la cabecera y todas las líneas estén con estatus 'Abierto', si se especifica la líea, verifica que la cabecera y la línea especificada tengan un estatus de 'Abierto'.

getModels($id, $lineId, $callback): Devuelve los modelos cabecera y línea (si se especifica, si no, poner 0) regresando un true o un false si es que puede ser editado el documento. El callback se llama solo si puede ser editado el documento, regresando dos valores, el modelo cabecera y el modelo línea, si no se especifica la línea, se regresa null en la línea.

getModel($id, $header = true): Obtiene el modelo Eloquent de la cabecera o línea, si se especifica el segundo parametro como false regresará la línea, cualquier otro caso regresará la cabecera.

getModelLineByFK($value, $fk): Obtiene un array de modelos Línea de acuerdo a un campo (fk) y el valor (value) en especifico, dentro de las líneas. En general usarse para obtener las líneas donde se encuentre un producto (value) en las líneas de acuerdo a la llave foranea (fk), pero puede usarse cualquier campo del modelo líneas.

Propiedades

Las propiedades pueden cambiarse para poder usar los nombres de columnas y estados que más nos agraden.

$headerColumnStatus: Nombre de columna de estatus de la tabla header. Default status.

$headerCloseStatus: Nombre del estatus de documento cerrado de la tabla header. Default Cerrado.

$headerDestroyedStatus: Nombre del estatus de documento eliminado de la tabla header. Default Cancelado.

$headerOpenStatus: Nombre del estatus de documento abierto de la tabla header. Default Abierto.

$lineColumnStatus: Nombre de columna de estatus de la tabla línea. Default status.

$lineCloseStatus: Nombre del estatus de documento cerrado de la tabla línea. Default Cerrado.

$linePartiallyCloseStatus: Nombre del estatus de documento parcialmente abierto de la tabla línea. Default Parcialmente Abierto.

$lineDestroyedStatus: Nombre del estatus de documento eliminado de la tabla línea. Default Cancelado.

$lineOpenStatus: Nombre del estatus de documento abierto de la tabla línea. Default Abierto.

$lineQuantityColumn: Nombre de columna de cantidad de la tabla línea. Default quantity.

DocumentManager

DocumentManager es el gestor de documentos, se instancia pasando 2 clases de tipo document que se relacionan entre sí.

Ejemplos

Crear un documento

`

Editar cabecera de un documento

`


All versions of document with dependencies

PHP Build Version
Package Version
Requires php Version >=7.0.0
illuminate/support Version ^5.5
illuminate/database Version ^5.5
illuminate/contracts Version ^5.5
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package lungosoft/document contains the following files

Loading the files please wait ....