Search in sources :

Example 6 with Customer

use of ar.com.ergio.print.fiscal.document.Customer in project lar_361 by comitsrl.

the class HasarFiscalPrinter method printDocument.

public void printDocument(Invoice invoice) throws FiscalPrinterStatusError, FiscalPrinterIOException, DocumentException {
    Customer customer = invoice.getCustomer();
    FiscalPacket response;
    // Se valida la factura.
    invoice.validate();
    try {
        setCancelAllowed(false);
        // ////////////////////////////////////////////////////////////
        // Se setean los datos del comprador.
        // Comando: @SetCustomerData
        loadCustomerData(customer);
        // Comando: @SetEmbarkNumber
        if (invoice.hasPackingSlipNumber()) {
            execute(cmdSetEmbarkNumber(1, invoice.getPackingSlipNumber()));
        }
        // ////////////////////////////////////////////////////////////
        // Se abre el documento fiscal.
        // Comando: @OpenFiscalReceipt
        response = execute(cmdOpenFiscalReceipt(traduceDocumentType(Document.DT_INVOICE, invoice.getLetter())));
        setLastDocumentNo("");
        setCancelAllowed(true);
        setDocumentOpened(true);
        // Comando: @PrintFiscalText
        for (String observation : invoice.getObservations()) {
            execute(cmdPrintFiscalText(observation, null));
        }
        // ////////////////////////////////////////////////////////////
        // Se cargan los ítems de la factura.
        // Comando: @PrintLineItem
        loadDocumentLineItems(invoice);
        // ////////////////////////////////////////////////////////////
        // Se cargan los descuentos de la factura.
        loadDocumentDiscounts(invoice);
        // ////////////////////////////////////////////////////////////
        // load invoice perception
        loadDocumentPerception(invoice);
        // ////////////////////////////////////////////////////////////
        // Se calcula el subtotal.
        // Comando: @Subtotal
        execute(cmdSubtotal(true, null));
        // Comando: @TotalTender
        for (Payment payment : invoice.getPayments()) {
            execute(cmdTotalTender(payment.getDescription(), payment.getAmount(), false, null));
            setCancelAllowed(false);
        }
        // ////////////////////////////////////////////////////////////
        // Se cierra el comprobante fiscal.
        // Comando: @CloseFiscalReceipt
        response = execute(cmdCloseFiscalReceipt(null));
        setDocumentOpened(false);
        // Chequeo de impuestos
        checkTaxes(invoice);
        // Se obtiene el número de comprobante emitido.
        setLastDocumentNo(response.getString(3));
        invoice.setDocumentNo(getLastDocumentNo());
        // Se obtiene el número del CAI.
        if (invoice.getLetter().equals(Document.DOC_LETTER_A))
            ;
        invoice.setCAINumber(getCAINumber(response));
        // Se indica al manejador de eventos que la impresión ha finalizado.
        firePrintEnded();
    } catch (FiscalPrinterIOException e) {
        // Si ocurrió algún error se intenta cancelar el documento
        // actual y se relanza la excepción.
        cancelCurrentDocument();
        throw e;
    }
}
Also used : Payment(ar.com.ergio.print.fiscal.document.Payment) Customer(ar.com.ergio.print.fiscal.document.Customer) FiscalPrinterIOException(ar.com.ergio.print.fiscal.exception.FiscalPrinterIOException) FiscalPacket(ar.com.ergio.print.fiscal.FiscalPacket)

Aggregations

Customer (ar.com.ergio.print.fiscal.document.Customer)6 FiscalPacket (ar.com.ergio.print.fiscal.FiscalPacket)4 FiscalPrinterIOException (ar.com.ergio.print.fiscal.exception.FiscalPrinterIOException)4 LAR_TaxPayerType (ar.com.ergio.model.LAR_TaxPayerType)2 MBPartner (org.compiere.model.MBPartner)2 MLocation (org.compiere.model.MLocation)2 DNFH (ar.com.ergio.print.fiscal.document.DNFH)1 Payment (ar.com.ergio.print.fiscal.document.Payment)1 MInvoice (org.compiere.model.MInvoice)1