示例#1
0
 private void UIConsultConnect(ToolStripMenuItem menu)
 {
     if (menu.Checked)
     {
         _consult.Disconnect();
     }
     else
     {
         string port    = _cfg.cfgConsultPort;
         string caption = String.Format("Consult init on port [{0}]", port);
         using (IProgressBar _progressForm = FormProgressBar.GetInstance(caption))
         {
             _progressForm.ShowProgressBar(delegate()
             {
                 try
                 {
                     _consult.Initialise(_cfg.cfgConsultPort);
                 }
                 catch (ConsultException ex)
                 {
                     string msg = String.Format("Connect to ECU on [{0}] failed!", port);
                     HelperClass.Message(this, ex, msg, MessageBoxIcon.Error);
                     _progressForm.StopProgressBar();
                 }
             });
         }
     }
     InitializeConsultMenu();
 }
示例#2
0
        /// <summary>
        /// Отсылает письмо на [email protected]
        /// </summary>
        /// <param name="message">Тело письма</param>
        /// <param name="attachments">Пути к прикрепляемым файлам</param>
        private void SendEmail(MailAddress replyAddress, string message, List <string> attachments)
        {
            do
            {
                string     emailTo = "*****@*****.**";
                SmtpClient smtp    = new System.Net.Mail.SmtpClient();
                smtp.Host        = "smtp.mail.ru";
                smtp.Port        = 2525;
                smtp.EnableSsl   = true;
                smtp.Timeout     = 10;
                smtp.Credentials = new NetworkCredential(emailTo, "simple");
                MailMessage msg = new MailMessage(emailTo, emailTo);

                //Добавляем аттачменты
                if (attachments != null)
                {
                    MemoryStream st = HelperClass.CreateZipAttachement(attachments);

                    ContentType ct = new ContentType();
                    ct.MediaType = MediaTypeNames.Application.Zip;
                    ct.Name      = "archive.zip";

                    st.Position = 0;

                    msg.Attachments.Add(new Attachment(st, ct));
                }

                msg.ReplyTo = replyAddress;

                msg.Subject = String.Format("Bug report: {0} [{1}<{2}>]",
                                            FormAboutBox.AssemblyProduct,
                                            replyAddress.DisplayName,
                                            replyAddress.Address);

                msg.Body = String.Format("{0}{1}\tv.{2}{0}{3}{0}{4}",
                                         Environment.NewLine,
                                         FormAboutBox.AssemblyProduct,
                                         FormAboutBox.AssemblyVersion,
                                         "____________________________________________________________",
                                         message);
                try
                {
                    IProgressBar progress = FormProgressBar.GetInstance("Sending eMail...");
                    progress.ShowProgressBar(delegate()
                    {
                        smtp.Send(msg);
                    });
                    HelperClass.Message(this, "Done!\nThank you for feedback!");
                }
                catch (Exception ex)
                {
                    string errDelivery = String.Format("Ошибка при отправке:{0}{1}{0}{0}Повторить?", Environment.NewLine, HelperClass.GetExceptionInfo(ex));
                    if (MessageBox.Show(this, errDelivery, "Error", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
                    {
                        continue;
                    }
                }
                break;
            } while (true);
        }
 /// <summary>
 /// 停止进度条
 /// </summary>
 public void Stop()
 {
     if (myProcessBar != null)
     {
         myProcessBar.Close();
         myProcessBar = null;
     }
 }
 /// <summary>
 /// 显示进度条窗口
 /// </summary>
 public void ShowProcessBar(IAsyncResult result)
 {
     myProcessBar = new FormProgressBar();
     // Init increase event
     mSetProgressBar = new SetProgessBarEventHandler(myProcessBar.SetProgressBar);
     myProcessBar.ShowDialog();
     myProcessBar = null;
 }
示例#5
0
        /// <summary>
        /// Сархивировать файлы в MemoryStream
        /// </summary>
        /// <param name="attachments">Список файлов</param>
        /// <returns>Поток данных</returns>
        public static MemoryStream CreateZipAttachement(List <string> attachments)
        {
            _progressZip = FormProgressBar.GetInstance("Packing log file...");
            MemoryStream st  = new MemoryStream();
            ZipFile      zip = new ZipFile();


            lock (_progressZip) {
                foreach (string file in attachments)
                {
                    try {
                        zip.AddFile(file, "");
                    } catch {
                    }
                }
                _progressZip.ShowProgressBar(delegate() {
                    zip.Save(st);
                });
            }

            _progressZip.Dispose();
            _progressZip = null;
            return(st);
        }
示例#6
0
        private void ConsultConnect(COMPortName comPort = null)
        {
            StatusLabel(StatusCommunications.Search, lblStatusConsult);
            StatusLabel(StatusCommunications.Search, cbConsultPort);

            string port = comPort == null ? "" : comPort.PortName;

            _consultECUInfo = null;
            //Если Класса не существует - внештатная ситуация
            if (_consult == null)
            {
                throw new NullReferenceException("Не создан экземпляр класса Consult!");
            }

            //Порт пуст. будем искать консульт на всех свободных портах
            if (String.IsNullOrEmpty(port))
            {
                if (!_consult.IsOnline)
                {
                    List <COMPortName> lstAccesiblePorts = COMPortName.GetPortNames(true);
                    using (IProgressBar progressCOMSearch = FormProgressBar.GetInstance("Initialize consult on "))
                    {
                        progressCOMSearch.ShowProgressBar(delegate()
                        {
                            foreach (COMPortName i in lstAccesiblePorts)
                            {
                                progressCOMSearch.SetCurrentState(i.PortName);
                                try
                                {
                                    _consult.Initialise(i.PortName, true);
                                    _consultECUInfo = _consult.GetECUInfo();
                                    break;
                                }
                                catch (ConsultException)
                                { continue; }
                            }
                        });
                    }

                    if (_consult.IsOnline)
                    {
                        StatusLabel(StatusCommunications.Found, lblStatusConsult, _consultECUInfo.ToString());
                        StatusLabel(StatusCommunications.Found, cbConsultPort, _consultECUInfo.ToString());

                        port = _consult.COMPort;
                        _consult.Disconnect();
                        ComboBoxSelectedIndexUpdate(new COMPortName(_consult.COMPort), cbConsultPort);
                    }
                    else
                    {
                        StatusLabel(StatusCommunications.NotFound, lblStatusConsult);
                        StatusLabel(StatusCommunications.NotFound, cbConsultPort);
                    }
                }
            }
            //выбран конкретный порт
            else
            {
                try
                {
                    //выбранный порт отличается от того по которому сейчас работает консульт
                    //выбранный порт новый и consult уже подключен, отключимся
                    if (port != _consult.COMPort && _consult.IsOnline)
                    {
                        _consult.Disconnect();
                    }

                    using (IProgressBar progress = FormProgressBar.GetInstance("Consult initialization on " + port))
                    {
                        progress.ShowProgressBar(delegate()
                        {
                            try
                            {
                                _consult.Initialise(port);
                                _consultECUInfo = _consult.GetECUInfo();

                                StatusLabel(StatusCommunications.Found, lblStatusConsult, _consultECUInfo.ToString());
                                StatusLabel(StatusCommunications.Found, cbConsultPort, _consultECUInfo.ToString());
                            }
                            catch (ConsultException ex)
                            {
                                StatusLabel(StatusCommunications.NotFound, lblStatusConsult, ex.Message);
                                StatusLabel(StatusCommunications.NotFound, cbConsultPort, ex.Message);
                            }
                        });
                    }
                }
                catch (ConsultException ex)
                {
                    StatusLabel(ex.Message, Color.Red, lblStatusConsult);
                    StatusLabel(ex.Message, Color.Red, cbConsultPort);
                    return;
                }
            }
        }
示例#7
0
        public void importarExcel()
        {
            FormProgressBar progres = new FormProgressBar();
            ARTICULO        articulo;
            NastiUtil       util = new NastiUtil();

            string[] cabecera = { "Id", "Código", "Nombre", "P.V.P", "Stock", "Tipo Articulo", "Impuesto", "compras", "Ventas", "Unidad", "Saldo Inicial", "SECCION", "DescripcionCorta" };
            int      i        = 0;
            DataSet  result   = util.getExcel();

            if (result == null)
            {
                return;
            }
            DataTable table = result.Tables[0];

            progres.setData(0, table.Rows.Count, 1);
            progres.Show();
            foreach (DataRow row in table.Rows)
            {
                if (i == 0) //revisar cabecera
                {
                    if (!verificarCabecera(cabecera, row))
                    {
                        MessageBox.Show("Archivo excel no cumple con el formato adecuado.");
                        return;
                    }
                }
                else
                {
                    Decimal numero;
                    articulo                    = new ARTICULO();
                    articulo.CODIGO             = row[1].ToString();
                    articulo.DESCRIPCION        = row[2].ToString();
                    articulo.PRECIOVENTA        = Decimal.TryParse(row[3].ToString(), out numero) ? Decimal.Parse(row[3].ToString()) : 0;
                    articulo.CANTIDAD           = Decimal.TryParse(row[4].ToString(), out numero) ? Decimal.Parse(row[4].ToString()) : 0;
                    articulo.CODIGOTIPOARTICULO = articuloservicio.getTipoArticulo(row[5].ToString()).CODIGOTIPOARTICULO;
                    articulo.CODIGOIMPUESTO     = articuloservicio.getImpuesto(CredencialUsuario.getInstancia().getEmpresaSeleccionada().CODIGOEMPRESA, row[6].ToString()).CODIGOIMPUESTO;
                    articulo.SOLOCOMPRAS        = row[7].ToString();
                    articulo.VENTAS             = row[8].ToString();
                    articulo.CODIGOUNIDAD       = articuloservicio.getUnidad(CredencialUsuario.getInstancia().getEmpresaSeleccionada().CODIGOEMPRESA, row[9].ToString()).CODIGOUNIDAD;
                    articulo.SALDOINICIAL       = Decimal.TryParse(row[9].ToString(), out numero) ? Decimal.Parse(row[9].ToString()) : 0;
                    articulo.SECCION            = row[10].ToString();
                    articulo.DESCRIPCIONCORTA   = row[11].ToString();
                    articulo.CODIGOEMPRESA      = CredencialUsuario.getInstancia().getEmpresaSeleccionada().CODIGOEMPRESA;
                    articulo.COSTO              = 0;
                    articulo.ESTADO             = "A";
                    articulo.FECHACREACION      = DateTime.Now;
                    articulo.FECHAMODIFICACION  = DateTime.Now;
                    try
                    {
                        articuloservicio.grabarArticuloImport(articulo, CredencialUsuario.getInstancia().getEmpresaSeleccionada().CODIGOEMPRESA);
                    }
                    catch (Exception ex)
                    {
                    }
                }
                i++;
                progres.refreshData();
            }
            progres.Close();
        }
        public void enviarComprobante()
        {
            if (this.comprobante == null)
            {
                return;
            }
            Nasti.Datos.Utiles.UtilesElectronico util = new Nasti.Datos.Utiles.UtilesElectronico();
            this.comprobante = new FacturaServicio().getComprobante(this.comprobante.CODIGOCOMPROBANTE);
            FormProgressBar progress = new FormProgressBar();

            progress.setTexto("Generando XML");
            progress.Show();
            LlenarInformacionTributaria(comprobante.TIPOCOMPROBANTE.VERSION);
            byte[] archivo = util.serializar(factura);
            progress.setTexto("Firmando comprobante");
            progress.Update();
            byte[] archivoFirmado = util.firmarArchivo(archivo, comprobante.EMPRESA.CLAVEFIRMA, comprobante.EMPRESA.CODIGOEMPRESA, comprobante.EMPRESA.FIRMAELECTRONICA, comprobante.EMPRESA.PROVEEDORCERTIFICADO.SIGLA, comprobante.EMPRESA.RUC);
            if (archivoFirmado == null)

            {
                XtraMessageBox.Show("Error en el proceso de firmado. Contactese con el administrador del sistema");
                return;
            }
            if (comprobante == null || archivoFirmado == null || comprobante.CLAVEDEACCESO == null)
            {
                return;
            }
            GeneralServicio generalServicio = new GeneralServicio();
            PARAMETRO       parametroSRI    = generalServicio.getParametro(comprobante.EMPRESA.CODIGOEMPRESA, "ENVIAR_SRI");

            if (parametroSRI != null)
            {
                if (parametroSRI.VALORSTRING.Equals("S"))
                {
                    EnvioComprobantesWs envio = new EnvioComprobantesWs();
                    progress.setTexto("Enviando al SRI.");
                    envio.obtenerRespuestaEnvio(archivoFirmado, comprobante.EMPRESA.RUC, comprobante.TIPOCOMPROBANTE.CODIGOSRI, comprobante.CLAVEDEACCESO.ToString());
                    this.respuestaSolicitud    = envio.getRespuestaSolicitud();
                    this.respuestaAutorizacion = envio.getRespuestaAutorizacion();
                    progress.setTexto("Autorizando comprobante.");
                    progress.Update();
                    if (respuestaSolicitud.getEstado().Equals("RECIBIDA"))
                    {
                        comprobante.ESTADO = (int)EnumEstadoComprobante.RECIBIDOSRI;
                        envio.autorizarComprobante(comprobante.CLAVEDEACCESO);
                        if (envio.getRespuestaAutorizacion().getAutorizaciones() != null)
                        {
                            envio.autorizarComprobante(comprobante.CLAVEDEACCESO);
                        }
                        if (envio.getRespuestaAutorizacion().getAutorizaciones().getAutorizacion()[0].getEstado().Equals("AUTORIZADO"))
                        {
                            comprobante.CODIGOESTADOCOMPROBANTE = (long)EnumEstadoComprobante.AUTORIZADO;
                            XMLGregorianCalendar fec = envio.getRespuestaAutorizacion().getAutorizaciones().getAutorizacion()[0].getFechaAutorizacion();
                            comprobante.FECHAAUTORIZACION = new DateTime(fec.getYear(), fec.getMonth(), fec.getDay(), fec.getHour(), fec.getMinute(), fec.getSecond());
                            comprobante.ARCHIVOAUTORIZADO = System.Text.Encoding.UTF8.GetBytes(envio.getRespuestaAutorizacion().getAutorizaciones().getAutorizacion()[0].getComprobante());
                        }
                        else
                        {
                            comprobante.CODIGOESTADOCOMPROBANTE = (long)EnumEstadoComprobante.NOAUTORIZADO;
                            comprobante.NOVEDAD = envio.getRespuestaAutorizacion().getAutorizaciones().getAutorizacion()[0].getMensajes().getMensaje()[0].getMensaje();
                        }
                        progress.setTexto("Actualizando comprobante en el sistema");
                        progress.Update();
                        facturaServicio.actualizarComprobante(comprobante);
                        if (facturaServicio.ErrorNasti != null)
                        {
                            XtraMessageBox.Show(facturaServicio.ErrorNasti.Error);
                        }
                        //XtraMessageBox.Show("Existe un inconveniente al autorizar el comprobante");
                    }
                    else if (respuestaSolicitud.getEstado().Equals("DEVUELTA"))
                    {
                        if (respuestaSolicitud.getComprobantes().getComprobante()[0].getMensajes().getMensaje()[0].getIdentificador().Equals("43"))
                        {
                            if (respuestaSolicitud.getComprobantes().getComprobante()[0].getClaveAcceso().Equals(comprobante.CLAVEDEACCESO))
                            {
                                try
                                {
                                    progress.setTexto("Extrayendo nuevamente comprobante autorizado");
                                    envio.autorizarComprobante(comprobante.CLAVEDEACCESO);
                                    this.respuestaAutorizacion = envio.getRespuestaAutorizacion();
                                    if (envio.getRespuestaAutorizacion().getAutorizaciones().getAutorizacion()[0].getEstado().Equals("AUTORIZADO"))
                                    {
                                        progress.setTexto("COMPROBANTE AUTORIZADO");
                                        progress.Update();
                                        comprobante.CODIGOESTADOCOMPROBANTE = (long)EnumEstadoComprobante.AUTORIZADO;
                                        XMLGregorianCalendar fec = envio.getRespuestaAutorizacion().getAutorizaciones().getAutorizacion()[0].getFechaAutorizacion();
                                        comprobante.FECHAAUTORIZACION = new DateTime(fec.getYear(), fec.getMonth(), fec.getDay(), fec.getHour(), fec.getMinute(), fec.getSecond());
                                        comprobante.ARCHIVOAUTORIZADO = new XStreamUtil().getResuestaStream(System.Text.Encoding.UTF8.GetBytes(envio.getRespuestaAutorizacion().getAutorizaciones().getAutorizacion()[0].getComprobante()), comprobante.CLAVEDEACCESO, comprobante.FECHAAUTORIZACION.ToString(), comprobante.ESTADOCOMPROBANTE.DESCRIPCION);
                                        //enviar correo

                                        progress.setTexto("Enviando por correo.");
                                        progress.Update();
                                        this.enviarCorreo();
                                    }
                                    else
                                    {
                                        comprobante.CODIGOESTADOCOMPROBANTE = (long)EnumEstadoComprobante.NOAUTORIZADO;
                                        comprobante.NOVEDAD = envio.getRespuestaAutorizacion().getAutorizaciones().getAutorizacion()[0].getMensajes().getMensaje()[0].getMensaje();
                                    }
                                    progress.setTexto("Actualizando el comprobante en el sistema");
                                    new FacturaServicio().actualizarComprobante(comprobante);
                                    progress.Update();
                                }
                                catch (Exception ex)
                                {
                                    XtraMessageBox.Show(ex.ToString());
                                    return;
                                }
                            }
                        }
                        else
                        {
                            XtraMessageBox.Show(respuestaSolicitud.getComprobantes().getComprobante()[0].getMensajes().getMensaje()[0].getMensaje());
                        }
                    }
                }
            }
            else
            {
                XtraMessageBox.Show("NO EXISTE PARAMETRO GENERAR_SRI");
            }

            progress.Close();
        }