/**
            Se ejecuta el thread de notificación de ventas a los administradores
        **/
        void IJob.Execute(IJobExecutionContext context)
        {

            DateTime fechaInicial = System.DateTime.Now;
            DateTime fechaFinal = System.DateTime.Now;

            CorreoElectronico correoElectronico = new CorreoElectronico(CorreoElectronico.TIPO_HTML);

            TimeSpan timeSpanInicial = new TimeSpan(00, 00, 00);
            TimeSpan timeSpanFinal = new TimeSpan(24, 59, 59);

            fechaInicial = fechaInicial.Date + timeSpanInicial;
            fechaFinal = fechaFinal.Date + timeSpanFinal;

            //Se inicializa el notificador
            notificadorCorreoElectronico = new NotificadorCorreoElectronicoFrontController();

            //Recuperar lista de Personas para reportar ventas
            listaPersonasAReportar = entUsuariosFrontController.getListaPersonasPorCveRol(DominioAppConstantes.CVE_ROL_ADMINISTRADOR);
            Console.WriteLine("La lista de personas tiene una longitud de " + listaPersonasAReportar.Count());

            // Se recupera el listado de detalle de ventas por las fechas inicial y final , relacionadas al día actual
            listaDeDetallesVentasFrontController = wrkVentasFrontController.getListaVentasPorRangoDeFechas(fechaInicial, fechaFinal);

            //Se crea la notificación via correo electrónico
            correoElectronico.destinatarios = listaPersonasAReportar;
            correoElectronico.cuerpoCorreo = createMensajeVentas(listaDeDetallesVentasFrontController);
            correoElectronico.asuntoCorreo = "Reporte de ventas " + System.DateTime.Now.ToShortDateString() + " Ventas totales: $" + montoTotalVentas + " retiros totales del día : $ " +  totalRetirosDelDia ;
            notificadorCorreoElectronico.enviarCorreo(correoElectronico);

        }
Ejemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {


            double montoASerRetirado = 0;
            WRK_MOVIMIENTOS_CAJA wrkMovimientosCaja = new WRK_MOVIMIENTOS_CAJA();
            CAT_MOVIMIENTOS_CAJA catMovimientoSeleccionado = null;
            CAT_CAJAS cajaActual = null;

            CorreoElectronico correoElectronico = null;
            NotificadorCorreoElectronicoFrontController notificadorCorreoElectronicoFrontController = new NotificadorCorreoElectronicoFrontController();

            if (this.motivosRetirosComboBox.SelectedIndex < 0)
            {
                MessageBox.Show("Motivo retiro no seleccionado.");
                return;
            }

            if (this.montoTotalRetiroTextBox.Text.Length == 0)
            {
                MessageBox.Show("Debes ingresar un monto a ser retirado.");
                return;
            }

            montoASerRetirado = Double.Parse(this.montoTotalRetiroTextBox.Text);

            if (montoASerRetirado <= 0)
            {
                MessageBox.Show("El monto a ser retirado debe ser mayor a 0.");
                return;
            }


            //Recupera la caja actual de la que se está realizando el retiro
            cajaActual = catCajasFrontController.findCajaByCveCaja(DominioAppConstantes.CAJA_CONFIGURADA);

            catMovimientoSeleccionado = this.listaCatMovimientosCaja.ElementAt(this.motivosRetirosComboBox.SelectedIndex);
            Console.WriteLine("Movimiento Seleccionado " + this.motivosRetirosComboBox.SelectedIndex + "Clave movimiento " + catMovimientoSeleccionado.INT_CVE_CAT_MOVIMIENTO_CAJA);


            wrkMovimientosCaja.INT_CVE_CAJA = cajaActual.INT_CVE_CAJA;
            wrkMovimientosCaja.INT_CVE_PERSONA = entPersona.INT_CVE_PERSONA;
            wrkMovimientosCaja.INT_CVE_CAT_MOVIMIENTO_CAJA = catMovimientoSeleccionado.INT_CVE_CAT_MOVIMIENTO_CAJA;
            wrkMovimientosCaja.NUM_MONTO = (float)montoASerRetirado;
            wrkMovimientosCaja.TXT_COMENTARIO_MOVIMIENTO = comentarioRetiroCajaTextBox.Text;
            wrkMovimientosCaja.DT_MOVIMIENTO_CAJA = System.DateTime.Now;

            wrkMovimientosCajaFrontController.almacenarWrkMovimientoCaja(wrkMovimientosCaja);

            correoElectronico = crearNotificacionRetiro((float)montoASerRetirado, entPersona, catMovimientoSeleccionado, cajaActual, comentarioRetiroCajaTextBox.Text);

            //Se envia la notificación via correo electrónico
            ///notificadorCorreoElectronicoFrontController.enviarCorreo(correoElectronico);

            this.formaFuente.Enabled = true;
            this.formaFuente.Show();
            ((PuntoVentaLandingPage)this.formaFuente).actualizarRetirosDelDia();
            this.Close();
        }
        public void enviarCorreo(String asunto, String mensaje, List<ENT_PERSONAS> listaDestinatarios)
        {
            String fileName = "ReporteRetiros_" + this.fechaInicioDatePicker.Value.Date.ToShortDateString().Replace("/", "-") + "_a_" + this.fechaFinDatePicker.Value.Date.ToShortDateString().Replace("/", "-");
            String tmpPath = System.IO.Path.GetTempPath() + fileName + ".xls";

            EntUsuariosFrontController entUsuariosFrontController = new EntUsuariosFrontController();
            NotificadorCorreoElectronicoFrontController notificador = new NotificadorCorreoElectronicoFrontController();
            CorreoElectronico correoElectronico = new CorreoElectronico(CorreoElectronico.TIPO_TEXTO);
           
            //Se crea el archivo temporal a ser enviado
            crearArchivoExcel(tmpPath);


            correoElectronico.destinatarios = listaDestinatarios;
            correoElectronico.attachExcelFileToMail(tmpPath, fileName + ".xls");
            correoElectronico.asuntoCorreo = asunto;
            correoElectronico.cuerpoCorreo = mensaje;
            notificador.enviarCorreo(correoElectronico);

            //Se debe de elimiar el archivo temporal que se creo para el envio del correo electrónico
            if (System.IO.File.Exists(tmpPath))
            {
                System.IO.File.Delete(tmpPath);
                Console.WriteLine("Archivo temporal eliminado con éxito");

            }
            else
            {
                Console.WriteLine("Error al escribir el archivo adjunto");
            }
            this.Enabled = true;
            MessageBox.Show("Reporte enviado con éxito via correo electrónio", "Reporte enviado con éxito via correo electrónio");
        }