Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Generated by CoffeeScript 1.10.0
- (function() {
- var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
- define(['jquery', 'jqLib/Shortcuts', 'service/PinpadService', 'app/ProcessSteps', 'app/Utils', 'base/jquery.validationEngine', 'base/jquery.validationEngine-es'], function($, Shortcuts, PinpadService, ProcessSteps, Utils) {
- var Extraccion;
- Extraccion = (function() {
- function Extraccion(factura) {
- this.factura = factura;
- this.anularExtraccion = bind(this.anularExtraccion, this);
- this.confirmarExtraccion = bind(this.confirmarExtraccion, this);
- this.continuarDesdeWorkingKey = bind(this.continuarDesdeWorkingKey, this);
- this.continuarDesdeValidarTarjeta = bind(this.continuarDesdeValidarTarjeta, this);
- this.imprimirTicketExtraccion = bind(this.imprimirTicketExtraccion, this);
- this.realizarExtraccion = bind(this.realizarExtraccion, this);
- this.validarTarjetaResponse = bind(this.validarTarjetaResponse, this);
- this.habilitarContinuar = bind(this.habilitarContinuar, this);
- this.continuarExtraccion = bind(this.continuarExtraccion, this);
- this.close = bind(this.close, this);
- this.leerImporteExtraccion = bind(this.leerImporteExtraccion, this);
- this.inicializarCamposRequeridos = bind(this.inicializarCamposRequeridos, this);
- this.clear = bind(this.clear, this);
- this.onOpen = bind(this.onOpen, this);
- this.open = bind(this.open, this);
- this.init = bind(this.init, this);
- this.init();
- }
- Extraccion.prototype.init = function() {
- $("#extraccionDialog").dialog({
- position: {
- my: "center",
- at: "center top",
- of: window
- },
- dialogClass: 'customDialogThemeBig',
- modal: true,
- height: "auto",
- width: 990,
- show: false,
- autoOpen: false,
- open: (function(_this) {
- return function(event, ui) {
- return _this.onOpen();
- };
- })(this),
- closeOnEscape: true,
- close: (function(_this) {
- return function() {
- _this.clear();
- return setTimeout((function() {
- return $('#inputBarCode').focus();
- }), 500);
- };
- })(this)
- });
- return $('#extraccionDialog').load(window.app.baseUrl + '/extraccion', (function(_this) {
- return function(data) {
- $("#extraccionCancel").click(_this.close);
- return _this.steps = ["Chequeando importe a extraer", "Chequeando conexion con Pinpad", "Solicitando autorizacion para uso de pinpad", "Autorizacion concedida. Por favor deslice tarjeta cuando el pinpad lo solicite", "Tarjeta leida correctamente. Validacion en proceso.", "Tarjeta validada. Chequeando si la tarjeta requiere solicitud de PIN", "Continuando con proceso de extraccion", "Proceso de extraccion finalizada. Retire su ticket"];
- };
- })(this));
- };
- Extraccion.prototype.open = function() {
- this.process = new ProcessSteps("progressStepsExtraccion");
- this.process.setSteps(this.steps);
- $("#extraccion_campos_requeridos").html(this.process.createCamposRequeridos());
- return $("#extraccionDialog").dialog("open");
- };
- Extraccion.prototype.onOpen = function() {
- var extraKeys;
- $("#importeExtraccion").prop('disabled', true);
- Shortcuts.backMode();
- $("#permitirAnularExraccion").hide();
- $("#anularExtraccion").hide();
- extraKeys = [13, 27];
- this.factura.totalForm.onlyNumbers("#importeExtraccion", extraKeys);
- this.pinpad = new PinpadService();
- $("#confirmarExtraccion").click(this.confirmarExtraccion);
- this.inicializarCamposRequeridos();
- $("#importeExtraccion").bind('change', this.leerImporteExtraccion);
- Shortcuts.add(13, this.confirmarExtraccion);
- this.leerImporteExtraccion();
- setTimeout((function() {
- return $("#importeExtraccion").prop('disabled', false);
- }), 10);
- return setTimeout((function() {
- return $("#importeExtraccion").select();
- }), 10);
- };
- Extraccion.prototype.clear = function() {
- return Shortcuts.restore();
- };
- Extraccion.prototype.inicializarCamposRequeridos = function() {
- this.process.inicializarCamposRequeridos();
- $("#continuarExtraccion").prop('disabled', true);
- $('#mensajeErrorExtraccion').html("");
- $("#continuarExtraccion").click("");
- return Shortcuts.add(13, "");
- };
- Extraccion.prototype.leerImporteExtraccion = function() {
- return $("#importeExtraccion").val(Utils.decimalFormat(Utils.parserMonto($('#importeExtraccion').val())));
- };
- Extraccion.prototype.close = function() {
- return $("#extraccionDialog").dialog("close");
- };
- Extraccion.prototype.continuarExtraccion = function() {
- var continuar;
- continuar = true;
- $('#mensajeErrorExtraccion').html("");
- Shortcuts.add(13, "");
- if (this.process.isDniHabilitado()) {
- this.dni = this.process.getDniValue();
- if (!this.process.validarDni(this.dni)) {
- $('#camposRequeridoDni').validationEngine('showPrompt', 'El campo DNI es requerido para continuar.', '', 'bottomLeft', true);
- continuar = false;
- }
- }
- if (this.process.isCodSeguridadHabilitado()) {
- this.codigoSeguridadTarjeta = this.process.getCodSeguridadValue();
- if (this.codigoSeguridadTarjeta.length === 0) {
- $('#campoRequeridoCodSeg').validationEngine('showPrompt', 'El campo Codigo de seguridad es requerido para continuar.', '', 'bottomLeft', true);
- continuar = false;
- }
- }
- if (this.process.isNumeroTelefonoHabilitado()) {
- this.numeroTelefono = this.process.getNumeroTelefonoValue();
- if (!this.process.validarTelefono(this.numeroTelefono)) {
- $('#campoRequeridoCodSeg').validationEngine('showPrompt', 'El campo numero de telefono es requerido para continuar.', '', 'bottomLeft', true);
- continuar = false;
- }
- }
- this.cuenta = this.validarTarjetaData.cuentas[this.process.obtenerIndexCuenta()];
- if (continuar) {
- return this.realizarExtraccion();
- }
- };
- Extraccion.prototype.habilitarContinuar = function() {
- $("#continuarExtraccion").prop('disabled', false);
- $("#continuarExtraccion").click(this.continuarExtraccion);
- return Shortcuts.add(13, this.continuarExtraccion);
- };
- Extraccion.prototype.validarTarjetaResponse = function() {
- var continuarOp;
- continuarOp = true;
- if (this.validarTarjetaData.cuentas.length > 0) {
- this.process.inicializarCuentas(this.validarTarjetaData.cuentas);
- if (this.validarTarjetaData.cuentas.length > 1) {
- this.process.habilitarCuentas();
- continuarOp = false;
- }
- this.dni = "";
- this.pin = "";
- this.codigoSeguridadTarjeta = "";
- if (this.validarTarjetaData.operacion.requiereDNI === true) {
- this.process.habilitarDni();
- continuarOp = false;
- }
- if (this.validarTarjetaData.operacion.requiereSeg === true) {
- this.process.habilitarCodSeguridad();
- continuarOp = false;
- }
- if (this.validarTarjetaData.operacion.requiereNumeroCelular === true) {
- this.process.habilitarNumeroTelefono();
- continuarOp = false;
- }
- if (continuarOp === false) {
- this.habilitarContinuar();
- }
- } else {
- $('#mensajeErrorExtraccion').html("No se encontro informacion de cuenta asociado a la tarjeta. No es posible continuar.");
- continuarOp = false;
- }
- return continuarOp;
- };
- Extraccion.prototype.realizarExtraccion = function() {
- var continuarOp, mensajeResult, realizarExtraccionResult, wkResponse;
- continuarOp = true;
- $("#continuarExtraccion").prop('disabled', true);
- if (this.validarTarjetaData.operacion.requierePin === true) {
- wkResponse = this.factura.company.getWorkingKeyPin(this.pinpad.getSerialPinpad());
- }
- if (wkResponse.res) {
- this.pin = this.pinpad.leerPin(wkResponse.data);
- if (this.pin === "") {
- $('#mensajeErrorExtraccion').html("Error en lectura de pin. Proceso abortado");
- continuarOp = false;
- Shortcuts.add(13, this.confirmarExtraccion);
- }
- } else {
- continuarOp = false;
- }
- if (continuarOp === true) {
- $("#continuarExtraccion").click("");
- this.process.nextStep();
- realizarExtraccionResult = this.factura.company.realizarExtraccion(this.cardInfo, this.totalExtraccion, this.validarTarjetaData.operacion.ticketCantidadCopias, this.validarTarjetaData.operacion.ticketFirma, this.validarTarjetaData.operacion.requiereAut, this.pinpad.getSerialPinpad(), this.cuenta, this.validarTarjetaData.tokenizadoTarjeta, this.codigoSeguridadTarjeta, this.dni, this.pin, this.numeroTelefono);
- if (realizarExtraccionResult.res) {
- this.extraccionData = JSON.parse(realizarExtraccionResult.data);
- mensajeResult = "Extraccion finalizada - Ticket en progreso";
- $('#mensajeErrorExtraccion').html("Imprimiendo ticket...Nro Req: " + this.extraccionData.datosOperacion.idRequerimiento);
- this.imprimirTicketExtraccion(this.extraccionData);
- if (realizarExtraccionResult.montos) {
- $('#montoCobrado').html(realizarExtraccionResult.montos.mCobrado);
- $('#limite').html(realizarExtraccionResult.montos.mLimit);
- $('#disponible').html(realizarExtraccionResult.montos.mDisponible);
- }
- $("#permitirAnularExraccion").show();
- $("#anularExtraccion").show();
- $("#camposRequeridosExtraccion").hide();
- $("#anularExtraccion").click(this.anularExtraccion);
- } else {
- $('#mensajeErrorExtraccion').html(realizarExtraccionResult.data);
- mensajeResult = "Error en proceso de extraccion. Detalles a continuacion";
- Shortcuts.add(13, this.confirmarExtraccion);
- }
- this.process.updateStep(this.steps.length, mensajeResult);
- return this.process.nextStep();
- }
- };
- Extraccion.prototype.imprimirTicketExtraccion = function(data) {
- var myWindow;
- if (data.ticketsFormatted.length > 0) {
- myWindow = window.open('', 'TICKET', 'width=300,height=300');
- myWindow.document.html = "";
- myWindow.document.write(data.ticketsFormatted);
- myWindow.print();
- myWindow.close();
- this.process.updateStep(this.steps.length, "Finalizado");
- return this.process.nextStep();
- } else {
- return $('#mensajeErrorExtraccion').html("Nada para imprimir");
- }
- };
- Extraccion.prototype.continuarDesdeValidarTarjeta = function() {
- var vtReponse;
- vtReponse = this.factura.company.validarTarjeta(this.cardInfo, this.pinpad.getSerialPinpad());
- if (vtReponse.res) {
- this.validarTarjetaData = JSON.parse(vtReponse.data);
- this.process.nextStep();
- return setTimeout(((function(_this) {
- return function() {
- var tarjeta_ok;
- tarjeta_ok = _this.validarTarjetaResponse();
- if (tarjeta_ok) {
- _this.process.nextStep();
- return setTimeout((function() {
- return _this.realizarExtraccion();
- }), 0);
- } else {
- return $('#mensajeErrorExtraccion').html("El proceso de extraccion requiere completar los campos a continuacion.");
- }
- };
- })(this)), 0);
- } else {
- $('#mensajeErrorExtraccion').html("Error en proceso de validacion de tarjeta" + vtReponse.data);
- return Shortcuts.add(13, this.confirmarExtraccion);
- }
- };
- Extraccion.prototype.continuarDesdeWorkingKey = function() {
- var wkResponse;
- wkResponse = this.factura.company.getWorkingKeyTarjeta(this.pinpad.getSerialPinpad());
- if (wkResponse.res) {
- this.process.nextStep();
- return setTimeout(((function(_this) {
- return function() {
- _this.cardInfo = _this.pinpad.leerTarjeta(wkResponse.data);
- if (_this.cardInfo !== null) {
- _this.process.nextStep();
- return setTimeout((function() {
- return _this.continuarDesdeValidarTarjeta();
- }), 0);
- } else {
- return $('#mensajeErrorExtraccion').html("Error en lectura de tarjeta. Verifique conexion de pinpad");
- }
- };
- })(this)), 0);
- } else {
- return $('#mensajeErrorExtraccion').html("Error con solicitud de autorizacion para uso de pinpad. " + wkResponse.data);
- }
- };
- Extraccion.prototype.confirmarExtraccion = function() {
- this.process.resetSteps();
- $("#confirmarExtraccion").prop('disabled', true);
- $('#importeExtraccion').validationEngine('hideAll');
- this.leerImporteExtraccion();
- this.inicializarCamposRequeridos();
- if (this.totalExtraccion > 0) {
- this.process.nextStep();
- return setTimeout(((function(_this) {
- return function() {
- var pinpadSerial;
- _this.pinpad.inicializar();
- pinpadSerial = _this.pinpad.getSerialPinpad();
- if (pinpadSerial !== null && pinpadSerial !== "") {
- _this.process.nextStep();
- return setTimeout((function() {
- return _this.continuarDesdeWorkingKey();
- }), 0);
- } else {
- return $('#mensajeErrorExtraccion').html("Pinpad no conectado");
- }
- };
- })(this)), 0);
- } else {
- $('#importeExtraccion').validationEngine('showPrompt', 'Ingrese importe a extraer', '', 'bottomLeft', true);
- return setTimeout((function() {
- return $('#importeExtraccion').validationEngine('hideAll');
- }), 5000);
- }
- };
- Extraccion.prototype.anularExtraccion = function() {
- var anulacionData, extraccionAnulacion;
- $("#anularExtraccion").prop('disabled', true);
- $('#mensajeErrorExtraccion').html("Anulación en progreso...");
- extraccionAnulacion = this.factura.company.anularExtraccion(this.totalExtraccion, this.cardInfo.number, this.validarTarjetaData.tokenizadoTarjeta, this.dni, this.pin, this.codigoSeguridadTarjeta, this.pinpad.getSerialPinpad(), this.extraccionData.datosOperacion.idInterno);
- if (extraccionAnulacion.res) {
- anulacionData = JSON.parse(extraccionAnulacion.data);
- $('#mensajeErrorExtraccion').html("Imprimiendo ticket de anulación");
- this.process.nextStep();
- this.imprimirTicketExtraccion(anulacionData);
- if (extraccionAnulacion.montos) {
- $('#montoCobrado').html(extraccionAnulacion.montos.mCobrado);
- $('#limite').html(extraccionAnulacion.montos.mLimit);
- $('#disponible').html(extraccionAnulacion.montos.mDisponible);
- }
- return $('#mensajeErrorExtraccion').html("Extracción Anulada!. Revise el ticket en la impresora.");
- } else {
- return $('#mensajeErrorExtraccion').html(realizarExtraccionResult.data);
- }
- };
- return Extraccion;
- })();
- return Extraccion;
- });
- }).call(this);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement