package controllers; import play.*; import static play.modules.pdf.PDF.*; import play.data.validation.*; import play.data.validation.Error; import play.data.validation.Validation.ValidationResult; import play.db.jpa.Blob; import play.mvc.*; import play.vfs.VirtualFile; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.*; import javax.imageio.ImageIO; import net.sf.oval.guard.PostCheck; import org.apache.commons.lang.StringUtils; import com.google.gson.Gson; import com.google.zxing.BinaryBitmap; import com.google.zxing.MultiFormatReader; import com.google.zxing.NotFoundException; import com.google.zxing.Result; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.HybridBinarizer; import models.*; public class Application extends Controller { public static void index() { render(); } public static void leerCBB(Blob entity){ try { if (entity == null) { throw new Exception(); } CBB recibido = new CBB(); recibido.image = entity; recibido.setDatos(recibido.obtenerCadena()); renderJSON(recibido); } catch (Exception e){ e.printStackTrace(); renderJSON(new Gson().toJson(new models.Error(1, "Imposible leer imagen, verifique el formato y pruebe nuevamente"))); } } public static void emitir(Comprobante comprobante) { try { if (comprobante.cbb == null) { validation.addError("comprobante.cbb.image", "Seleccione su imagen CBB"); throw new Exception("Imagen CBB no seleccionada"); } comprobante.cbb.obtenerCadena(); validation.valid(comprobante); if (!comprobante.emisor.rfc.equalsIgnoreCase((comprobante.cbb.obtenerRFC()))) { validation.addError("comprobante.emisor.rfc", "RFC no coincide con CBB"); } if(validation.hasErrors()) { for(Error error : validation.errors()) { Logger.info("@ " + error.message()); } render("@index", comprobante); } comprobante.save(); imprimir(comprobante.id); } catch (Exception ex) { ex.printStackTrace(); Logger.error(ex.getMessage()); render("@index", comprobante); } } public static void imprimir(Long id) { Comprobante comprobante = Comprobante.findById(id); Options options = new Options(); options.filename = "emision.pdf"; renderPDF(comprobante, options, "prueba"); } public static void leerImagen(Long id) { CBB cbb = CBB.findById(id); response.setContentTypeIfNotSet(cbb.image.type()); renderBinary(cbb.image.get()); } }