# Teaploy / Megaprint Integration

![Publish](https://github.com/Teaploy/teaploy-megaprint/workflows/Publish/badge.svg?branch=master)

## Installation

```bash
npm install @teaploy/megaprint --save
```

## Basic Use

### Configuration

```javascript
const { Configuration } = require('@teaploy/megaprint/lib/core');
const { Emitter } = require('.@teaploy/megaprint/lib/core/values');

const emitter = new Emitter(
  'nit',
  'emission name',
  new Address('Zona 4', '0', 'Guatemala', 'Guatemala'),
  'commercial name',
  'email@teaploy.com',
);

const configuration = new Configuration(
  'user',
  'password',
  'environment', // develop|production
  emitter,
);
```

### Generating Invoice

```javascript
const { Invoice } = require('@teaploy/megaprint/lib/core');
const {
  Receptor,
  Item,
  Address,
} = require('@teaploy/megaprint/lib/core/values');

// Defining invoice
const item = new Item(1, 'UND', 'description', 'B', 112, 0);
const receptor = new Receptor(
  'Abner Tellez',
  'CF',
  new Address('Zona 4', '0', 'Guatemala', 'Guatemala'),
  'email@me.com',
);

const invoice = new Invoice(
  'a860b226-d0ed-11ea-87d0-0242ac130003',
  receptor,
  'GTQ',
  [item, item],
  configuration,
);

(async () => {
  // identifier attribute is gonna be assigned after generating the invoice
  const invoice = await new Invoice(
    'a860b226-d0ed-11ea-87d0-0242ac130003', // uuid
    receptor,
    'GTQ',
    [item, item],
    configuration,
  ).generate();

  // After to create an invoice, we can get the PDF using generatePdf
  const base64Pdf = await invoice.generatePdf();

  // If we need to get a PDF from an invoice already created
  const oldInvoicePdf =  await Invoice.getPdf(configuration, '2D4D922B-7764-4D5D-BDFA-2B0D6967B24E'),
})();
```

---

## Collaborators

- Abner Tellez ([@atellezsazo](https://github.com/atellezsazo))
