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;
}
}
Aggregations