コード例 #1
0
        /// <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;
            }));
        }
コード例 #2
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");
            }
        }
コード例 #3
0
        /// <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;
            }));
        }
コード例 #4
0
 /// <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");
     }
 }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        /// <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);
        }