/// <summary> /// Ejecutar una petición de sincronización /// </summary> private ResponseBussiness <int> EnviarPeticionSincronizacion() { return(tryCatch.SafeExecutor(() => { // Leer la información que debe sincronizarse ResultadoSincronizacion resultadoSincronizacion = new ResultadoSincronizacion(); SincronizacionRequest sincronizacionRequest = repository.ObtenerDatosSincronizacion(); String webServicePath = sincronizacionRequest.ServidorDestino + "/PosServiciosMIlano/Sincronizacion/Sincronizacionservice.svc/ejecutarProcesoSincronizacion"; if (!String.IsNullOrEmpty(sincronizacionRequest.ServidorDestino)) { // ******************************* WS REMOTO var webRequest = (HttpWebRequest)WebRequest.Create(webServicePath); webRequest.Method = WebRequestMethods.Http.Post; // Timeout de 30 minutos webRequest.Timeout = 1800000; webRequest.ContentType = "application/json"; var json = JsonConvert.SerializeObject(sincronizacionRequest); try { // Hacer la petición al WS Remoto using (var requestStream = webRequest.GetRequestStream()) { using (var writer = new StreamWriter(requestStream)) { writer.Write(json); } } // Obtener la respuesta del WS Remoto using (var webResponse = (HttpWebResponse)webRequest.GetResponse()) { using (var responseStream = webResponse.GetResponseStream()) { using (var reader = new StreamReader(responseStream)) { var responseData = reader.ReadToEnd(); dynamic resultadoSincronizacionWS = JsonConvert.DeserializeObject(responseData); resultadoSincronizacion.UltimoIdSincronizado = resultadoSincronizacionWS.data.ultimoIdSincronizado; resultadoSincronizacion.MensajeAsociado = resultadoSincronizacionWS.data.mensajeAsociado; resultadoSincronizacion.IdServidorDestino = resultadoSincronizacionWS.data.idServidorDestino; resultadoSincronizacion.ServidorDestino = resultadoSincronizacionWS.data.servidorDestino; } } } } catch (Exception exception) { TryCatchBusinessExecutor tryCatch = new TryCatchBusinessExecutor(); tryCatch.AddErrorLog <OperationResponse>(exception.Message, exception.StackTrace, "Sincronización", exception.ToString(), "Error de sincronización"); } // ******************************* WS REMOTO // Actualizar la información de tabla AUDITORIA_DESTINOS repository.ActualizarAuditoriaDestinos(resultadoSincronizacion); } return 0; })); }
/// <summary> /// Establece la configuracion de la impresora /// </summary> private void SetPrinterConfig() { try { PrinterConfigRequest printerConfigRequest = new PrinterConfigRequest(); printerConfigRequest.CodigoCaja = this.token.CodeBox; printerConfigRequest.CodigoTienda = this.token.CodeStore; PrinterConfigResponse printerConfigResponse = repository.getPrinterConfig(printerConfigRequest); //Configuracion de la impresora PrinterSettings ps = new PrinterSettings(); PrinterName = printerConfigResponse.NombreImpresora; ps.PrinterName = printerConfigResponse.NombreImpresora; // IEnumerable<PaperSize> paperSizes = ps.PaperSizes.Cast<PaperSize>(); // PaperSize sizeA4 = paperSizes.First<PaperSize>(size => size.Kind == PaperKind.Letter); // this.printDocument.DefaultPageSettings.PaperSize = sizeA4; this.printDocument.PrinterSettings = ps; this.printDocument.PrintPage += new PrintPageEventHandler(this.printDocument1_PrintPage); } catch (Exception exception) { TryCatchBusinessExecutor tryCatch = new TryCatchBusinessExecutor(); tryCatch.AddErrorLog <OperationResponse>(exception.Message, exception.StackTrace, "Negocio", exception.ToString(), "Error de impresión"); } }
/// <summary> /// Regresa el saldo maximo por el cual puede ser redimido el cupon /// </summary> /// <returns></returns> public CuponRedimirResponse SaldoRedimir(ValidarCuponRequest validarCuponRequest) { return(tryCatch.SafeExecutor(() => { CuponRedimirRequest cuponRedimirRequest = new CuponRedimirRequest(); CuponRedimirResponse cuponRedimirResponse = new CuponRedimirResponse(); ProxyCupones.Respuesta consultaCuponResponseWs = new ProxyCupones.Respuesta(); cuponRedimirRequest.FolioCupon = validarCuponRequest.FolioCupon; cuponRedimirRequest.FolioVenta = validarCuponRequest.FolioVenta; cuponRedimirRequest.CodigoCaja = this.token.CodeBox; cuponRedimirRequest.CodigoTienda = this.token.CodeStore; try { consultaCuponResponseWs = proxyCupones.ConsultaCupon(this.token.CodeStore, this.token.CodeBox, validarCuponRequest.FolioCupon); if (consultaCuponResponseWs.sError != "") { cuponRedimirRequest.Sesion = Convert.ToInt32(consultaCuponResponseWs.lSesion); // No encuentra el cupon en el WS de milano, busca localmente if (consultaCuponResponseWs.sError == "El folio de cupón no existe; Verifique") { cuponRedimirRequest.SaldoCupon = 0; cuponRedimirRequest.CodigoPromocion = 0; cuponRedimirResponse = repository.ValidarSaldo(cuponRedimirRequest); } else { cuponRedimirResponse.MensajeRedencion = consultaCuponResponseWs.sError; cuponRedimirResponse.Saldo = 0; } } else { cuponRedimirRequest.SaldoCupon = Convert.ToDouble(consultaCuponResponseWs.dSaldo); cuponRedimirRequest.CodigoPromocion = consultaCuponResponseWs.iCodigoPromocion; cuponRedimirRequest.Sesion = Convert.ToInt32(consultaCuponResponseWs.lSesion); cuponRedimirResponse = repository.ValidarSaldo(cuponRedimirRequest); } } catch (Exception exception) { TryCatchBusinessExecutor tryCatch = new TryCatchBusinessExecutor(); tryCatch.AddErrorLog <OperationResponse>(exception.Message, exception.StackTrace, "Servicio milano", exception.ToString(), "Error de comunicacion servicios milano"); cuponRedimirRequest.SaldoCupon = 0; cuponRedimirRequest.CodigoPromocion = 0; cuponRedimirRequest.Sesion = 0; cuponRedimirResponse = repository.ValidarSaldo(cuponRedimirRequest); } return cuponRedimirResponse; })); }
/// <summary> /// Constructor /// </summary> public PrintRelacionCaja(TokenDto token) { try { this.repository = new PrintReporteRepository(); this.token = token; this.printDocument = new PrintDocument(); this.SetPrinterConfig(); } catch (Exception exception) { TryCatchBusinessExecutor tryCatch = new TryCatchBusinessExecutor(); tryCatch.AddErrorLog <OperationResponse>(exception.Message, exception.StackTrace, "Negocio", exception.ToString(), "Error de impresión"); } }
/// <summary> /// Imprime el reporte de la relacion de caja del id dado /// </summary> /// <param name="idReporte"></param> /// <returns></returns> public OperationResponse printReporte(int idReporte) { OperationResponse operationResponse = new OperationResponse(); try { Boolean isValid = printDocument.PrinterSettings.IsValid; Boolean isDefault = printDocument.PrinterSettings.IsDefaultPrinter; if (isValid) { PrinterConfigRequest printerConfigRequest = new PrinterConfigRequest(); printerConfigRequest.CodigoTienda = this.token.CodeStore; printDocument.PrinterSettings.PrintFileName = "RelacionCaja"; this.CurrentData = this.repository.getReporteRelacionCaja(idReporte); //Trayendo la info de la tienda this.rch = this.repository.getHeader(printerConfigRequest, idReporte); printDocument.Print(); operationResponse.CodeNumber = "100"; operationResponse.CodeDescription = "ok"; } else { string err = "Error de configuracion Impresora:" + PrinterName + " Tienda:" + token.CodeStore + " Caja: " + token.CodeBox; TryCatchBusinessExecutor tryCatch = new TryCatchBusinessExecutor(); tryCatch.AddErrorLog <OperationResponse>(err, "", "Negocio", "", "Error de impresión"); operationResponse.CodeNumber = "200"; operationResponse.CodeDescription = err; } } catch (Exception exception) { TryCatchBusinessExecutor tryCatch = new TryCatchBusinessExecutor(); tryCatch.AddErrorLog <OperationResponse>(exception.Message, exception.StackTrace, "Negocio", exception.ToString(), "Error de impresión"); operationResponse.CodeNumber = "200"; operationResponse.CodeDescription = exception.ToString(); } // operationResponse.CodeDescription = JsonConvert.SerializeObject(this.CurrentData); return(operationResponse); }
/// <summary> /// Imprime los tickets de lectura X y Z /// </summary> public OperationResponse PrintNow(PrintLecturaRequest printLecturaRequest) { OperationResponse operationResponse = new OperationResponse(); try { this.printLecturaRequest = printLecturaRequest; if (printDocument.PrinterSettings.IsValid) { printDocument.Print(); operationResponse.CodeNumber = "100"; operationResponse.CodeNumber = "Impresion correcta"; } } catch (Exception exception) { TryCatchBusinessExecutor tryCatch = new TryCatchBusinessExecutor(); tryCatch.AddErrorLog <OperationResponse>(exception.Message, exception.StackTrace, "Negocio", exception.ToString(), "Error de impresión"); operationResponse.CodeNumber = "300"; operationResponse.CodeNumber = exception.Message; } return(operationResponse); }