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(); }