/// <summary> /// elimina un registro /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ASPxGridView1_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { try { using (var conexion = new DataModelFE()) { var idProducto = long.Parse(e.Values["idProducto"].ToString()); var tipoImpuesto = e.Values["tipoImpuesto"].ToString().ToUpper(); object[] key = new object[] { idProducto, tipoImpuesto }; //busca objeto var itemToRemove = conexion.ProductoImpuesto.Where(x => x.idProducto == idProducto).Where(x => x.tipoImpuesto == tipoImpuesto).FirstOrDefault(); conexion.ProductoImpuesto.Remove(itemToRemove); conexion.SaveChanges(); //esto es para el manero del devexpress e.Cancel = true; this.ASPxGridView1.CancelEdit(); ((ASPxGridView)sender).JSProperties["cpUpdatedMessage"] = "Los datos se eliminaron correctamente, puede continuar."; } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(fullErrorMessage, ex.EntityValidationErrors); } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } finally { //refescar los datos this.refreshData(); } }
/// <summary> /// inserta un registro nuevo /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ASPxGridView1_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { try { using (var conexion = new DataModelFE()) { //se declara el objeto a insertar TipoDocumento dato = new TipoDocumento(); //llena el objeto con los valores de la pantalla dato.codigo = e.NewValues["codigo"] != null ? e.NewValues["codigo"].ToString().ToUpper() : null; dato.descripcion = e.NewValues["descripcion"] != null ? e.NewValues["descripcion"].ToString().ToUpper() : null; dato.descripcionEN = e.NewValues["descripcionEN"] != null ? e.NewValues["descripcionEN"].ToString().ToUpper() : null; dato.estado = e.NewValues["estado"].ToString(); dato.usuarioCreacion = Session["usuario"].ToString(); dato.fechaCreacion = Date.DateTimeNow(); //agrega el objeto conexion.TipoDocumento.Add(dato); conexion.SaveChanges(); //esto es para el manero del devexpress e.Cancel = true; this.ASPxGridView1.CancelEdit(); } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(fullErrorMessage, ex.EntityValidationErrors); } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } finally { //refescar los datos this.refreshData(); } }
protected void cmbEmisorDistrito_ValueChanged(object sender, EventArgs e) { using (var conexion = new DataModelFE()) { this.cmbEmisorBarrio.SelectedItem = null; this.cmbEmisorBarrio.Items.Clear(); foreach (var item in conexion.Ubicacion. Where(x => x.codProvincia == this.cmbEmisorProvincia.Value.ToString()). Where(x => x.codCanton == this.cmbEmisorCanton.Value.ToString()). Where(x => x.codDistrito == this.cmbEmisorDistrito.Value.ToString()). Select(x => new { x.codBarrio, x.nombreBarrio }).Distinct()) { this.cmbEmisorBarrio.Items.Add(item.nombreBarrio, item.codBarrio); } this.cmbEmisorBarrio.IncrementalFilteringMode = IncrementalFilteringMode.Contains; } }
public override string[] FindUsersInRole(string roleName, string usernameToMatch) { using (var conexion = new DataModelFE()) { string[] users = conexion.Usuario.Where(x => x.rol == roleName && (x.codigo == usernameToMatch || x.nombre == usernameToMatch)).Select(x => x.codigo).ToArray(); if (users != null) { return(users); } else { return new string[] { } }; } } }
/// <summary> /// carga inicial de todos los registros /// </summary> private void refreshData() { if (!this.ASPxGridView1.IsEditing) { using (var conexion = new DataModelFE()) { string emisor = Session["emisor"].ToString(); this.ASPxGridView1.DataSource = (from Emisor in conexion.EmisorReceptorIMEC from cliente in conexion.Cliente where Emisor.identificacion == cliente.receptor && cliente.emisor == emisor select Emisor ).ToList(); conexion.EmisorReceptorIMEC.ToList(); this.ASPxGridView1.DataBind(); } } }
/// <summary> /// carga solo una vez para ahorar tiempo /// </summary> private void cargarCombos() { using (var conexion = new DataModelFE()) { /* ESTADO */ GridViewDataComboBoxColumn comboEstado = this.ASPxGridView1.Columns["estado"] as GridViewDataComboBoxColumn; comboEstado.PropertiesComboBox.Items.Clear(); comboEstado.PropertiesComboBox.Items.AddRange(Enum.GetValues(typeof(Estado))); /* APLICA IMPUESTO VENTA Y SERVICIO*/ GridViewDataComboBoxColumn comboAplicaIV = this.ASPxGridView1.Columns["aplicaIV"] as GridViewDataComboBoxColumn; comboAplicaIV.PropertiesComboBox.Items.Clear(); comboAplicaIV.PropertiesComboBox.Items.AddRange(Enum.GetValues(typeof(Confirmacion))); GridViewDataComboBoxColumn comboaplicaIS = this.ASPxGridView1.Columns["aplicaIS"] as GridViewDataComboBoxColumn; comboaplicaIS.PropertiesComboBox.Items.Clear(); comboaplicaIS.PropertiesComboBox.Items.AddRange(Enum.GetValues(typeof(Confirmacion))); /* UNIDAD MEDIDA */ GridViewDataComboBoxColumn comboUnidadMedida = this.ASPxGridView1.Columns["unidadMedida"] as GridViewDataComboBoxColumn; comboUnidadMedida.PropertiesComboBox.Items.Clear(); foreach (var item in conexion.UnidadMedida.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { comboUnidadMedida.PropertiesComboBox.Items.Add(item.ToString(), item.codigo); } /* TIPO */ GridViewDataComboBoxColumn comboTipo = this.ASPxGridView1.Columns["tipo"] as GridViewDataComboBoxColumn; comboTipo.PropertiesComboBox.Items.Clear(); foreach (var item in conexion.TipoProductoServicio.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { comboTipo.PropertiesComboBox.Items.Add(item.descripcion, item.codigo); } /* TIPO SERVICIO / MERCANCIA */ GridViewDataComboBoxColumn comboTipoServ = this.ASPxGridView1.Columns["tipoServMerc"] as GridViewDataComboBoxColumn; comboTipoServ.PropertiesComboBox.Items.Clear(); comboTipoServ.PropertiesComboBox.Items.Add(new ListEditItem(TipoServMerc.MERCANCIA.ToString(), "ME")); comboTipoServ.PropertiesComboBox.Items.Add(new ListEditItem(TipoServMerc.SERVICIO.ToString(), "SE")); comboTipoServ.PropertiesComboBox.Items.Add(new ListEditItem(TipoServMerc.ACTIVO.ToString(), "AC")); } }
private void cargaPlanes() { /* PLAN */ ASPxPageControl tabs = (ASPxPageControl)ASPxGridView1.FindEditFormTemplateControl("pageControl"); ASPxFormLayout form = (ASPxFormLayout)tabs.FindControl("formLayoutUbicacion"); ASPxComboBox comboPlan = (ASPxComboBox)form.FindControl("cmbPlan"); comboPlan.Items.Clear(); using (var conexion = new DataModelFE()) { foreach (var item in conexion.TipoPlan.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { comboPlan.Items.Add(item.descripcion, item.codigo); } } }
/// <summary> /// carga inicial de todos los registros /// </summary> private void refreshData() { string emisor = Session["emisor"].ToString(); using (var conexion = new DataModelFE()) { List <WSRecepcionPOST> lista = conexion.WSRecepcionPOST.Where(x => x.fecha >= txtFechaInicio.Date && x.fecha <= txtFechaFin.Date && x.emisorIdentificacion == emisor). OrderByDescending(x => x.fecha).OrderByDescending(x => x.fechaCreacion).ToList(); foreach (var item in lista) { item.verificaTipoDocumentoCambioMoneda(); item.Receptor = conexion.EmisorReceptor.Find(item.receptorIdentificacion); } this.ASPxGridView1.DataSource = lista; this.ASPxGridView1.DataBind(); } }
/// <summary> /// carga solo una vez para ahorar tiempo /// </summary> private void cargarCombos() { // Cargar valores de combo para estado GridViewDataComboBoxColumn comboEstado = this.ASPxGridView1.Columns["estado"] as GridViewDataComboBoxColumn; comboEstado.PropertiesComboBox.Items.Clear(); comboEstado.PropertiesComboBox.Items.AddRange(Enum.GetValues(typeof(Estado))); /* TIPO DOCUMENTO */ using (var conexion = new DataModelFE()) { GridViewDataComboBoxColumn comboTipoConsecutivo = this.ASPxGridView1.Columns["tipoDocumento"] as GridViewDataComboBoxColumn; foreach (var item in conexion.TipoConsecutivo.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { comboTipoConsecutivo.PropertiesComboBox.Items.Add(item.descripcion, item.codigo); } comboTipoConsecutivo.PropertiesComboBox.IncrementalFilteringMode = IncrementalFilteringMode.Contains; } }
protected void btnVerDocumento_Click(object sender, EventArgs e) { string clave = Session["clave"].ToString(); string emisor = Session["emisor"].ToString(); using (var conexion = new DataModelFE()) { Empresa empresa = conexion.Empresa.Find(emisor); //Validamos la informacion de empresa if (empresa.tipoImpresion.Equals("A4")) { Response.Redirect("~/Pages/Consulta/" + clave); } else { Response.Redirect("~/Pages/ConsultaRP/" + clave); } } }
/// <summary> /// carga solo una vez para ahorar tiempo /// </summary> private void cargarCombos() { using (var conexion = new DataModelFE()) { /* ESTADO */ GridViewDataComboBoxColumn comboEstado = this.ASPxGridView1.Columns["estado"] as GridViewDataComboBoxColumn; comboEstado.PropertiesComboBox.Items.Clear(); comboEstado.PropertiesComboBox.Items.AddRange(Enum.GetValues(typeof(Estado))); /* PLAN */ GridViewDataComboBoxColumn comboPlan = this.ASPxGridView1.Columns["plan"] as GridViewDataComboBoxColumn; comboPlan.PropertiesComboBox.Items.Clear(); foreach (var item in conexion.TipoPlan.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { comboPlan.PropertiesComboBox.Items.Add(item.descripcion, item.codigo); } } }
protected void btnEnviar_Click(object sender, EventArgs e) { try { String mensajeConsulta = ""; mensajeConsulta += "<b><p>Nombre: </p></b>" + txtNombre.Text.ToString().ToUpper(); mensajeConsulta += "<b><p>Correo electrónico : </p></b>" + txtCorreo.Text.ToString().ToLower(); mensajeConsulta += "<b><p>Consulta: </p></b>"; mensajeConsulta += "<p></p>"; mensajeConsulta += "<p></p>" + txtConsulta.Text; mensajeConsulta += "<p></p>"; mensajeConsulta += "<p>Gracias</p>"; using (var conexion = new DataModelFE()) { ConfiguracionGlobal dato = new ConfiguracionGlobal(); //llena el objeto con los valores de la pantalla dato.codigo = "RECEPTOR_CONSULTA"; //busca el objeto dato = conexion.ConfiguracionGlobal.Find(dato.codigo); //string pCorreo = "*****@*****.**"; //string a = dato.descripcion; Utilidades.sendMail(Usuario.USUARIO_AUTOMATICO, dato.descripcion, "Consulta de : " + txtNombre.Text.ToUpper(), mensajeConsulta, "", null, "", "", null); } this.alertMessages.Attributes["class"] = "alert alert-warning"; this.alertMessages.InnerText = String.Format("Consulta enviada satisfactoriamente."); this.txtConsulta.Text = ""; this.txtNombre.Text = ""; this.txtCorreo.Text = ""; } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } finally { //refescar los datos } }
/// <summary> /// elimina un registro /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ASPxGridView1_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { try { using (var conexion = new DataModelFE()) { var id = e.Values["codigo"].ToString(); //busca objeto var itemToRemove = conexion.Empresa.SingleOrDefault(x => x.codigo == id); conexion.Empresa.Remove(itemToRemove); conexion.SaveChanges(); //esto es para el manero del devexpress e.Cancel = true; this.ASPxGridView1.CancelEdit(); } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // conexion.Empresa.Remove(conexion.Empresa.Last() ); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(fullErrorMessage, ex.EntityValidationErrors); } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } finally { //refescar los datos this.refreshData(); } }
protected void ASPxGridViewEmisores_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { try { using (var conexion = new DataModelFE()) { string supervisor = Session["usuario"].ToString(); string emisor = e.Values["identificacion"].ToString(); //busca objeto object[] key = new object[] { supervisor, emisor }; var itemToRemove = conexion.Supervisor.Find(key); conexion.Supervisor.Remove(itemToRemove); conexion.SaveChanges(); //esto es para el manero del devexpress e.Cancel = true; this.ASPxGridViewEmisores.CancelEdit(); } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(fullErrorMessage, ex.EntityValidationErrors); } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } finally { Page_Load(sender, e); } }
public void cargarProvincias() { ASPxPageControl tabs = (ASPxPageControl)ASPxGridView1.FindEditFormTemplateControl("pageControl"); ASPxFormLayout form = (ASPxFormLayout)tabs.FindControl("formLayoutUbicacion"); /* PROVINCIA */ ASPxComboBox comboProvincia = (ASPxComboBox)form.FindControl("cmbProvincia"); comboProvincia.Items.Clear(); using (var conexion = new DataModelFE()) { foreach (var item in conexion.Ubicacion. Select(x => new { x.codProvincia, x.nombreProvincia }).Distinct()) { comboProvincia.Items.Add(item.nombreProvincia, item.codProvincia); } comboProvincia.IncrementalFilteringMode = IncrementalFilteringMode.Contains; } }
/// <summary> /// carga solo una vez para ahorar tiempo /// </summary> private void cargarCombos() { /* ESTADO */ GridViewDataComboBoxColumn comboEstado = this.ASPxGridView1.Columns["estado"] as GridViewDataComboBoxColumn; comboEstado.PropertiesComboBox.Items.Clear(); comboEstado.PropertiesComboBox.Items.AddRange(Enum.GetValues(typeof(Estado))); /* ROL */ GridViewDataComboBoxColumn comboRol = this.ASPxGridView1.Columns["rol"] as GridViewDataComboBoxColumn; comboRol.PropertiesComboBox.Items.Clear(); using (var conexion = new DataModelFE()) { foreach (var item in conexion.Rol.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { comboRol.PropertiesComboBox.Items.Add(item.descripcion, item.codigo); } } comboRol.PropertiesComboBox.IncrementalFilteringMode = IncrementalFilteringMode.Contains; }
/// <summary> /// carga solo una vez para ahorar tiempo /// </summary> private void loadComboBox() { using (var conexion = new DataModelFE()) { /* MEDIO PAGO */ foreach (var item in conexion.MedioPago.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { this.cmbMedioPago.Items.Add(item.descripcion, item.codigo); } this.cmbMedioPago.IncrementalFilteringMode = IncrementalFilteringMode.Contains; this.cmbMedioPago.SelectedIndex = 0; /* CONDICION VENTA */ foreach (var item in conexion.CondicionVenta.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { this.cmbCondicionVenta.Items.Add(item.descripcion, item.codigo); } this.cmbCondicionVenta.IncrementalFilteringMode = IncrementalFilteringMode.Contains; this.cmbCondicionVenta.SelectedIndex = 0; this.txtPlazoCredito.Text = "0"; /* TIPO MONEDA */ foreach (var item in conexion.TipoMoneda.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { this.cmbTipoMoneda.Items.Add(item.descripcion, item.codigo); } this.cmbTipoMoneda.IncrementalFilteringMode = IncrementalFilteringMode.Contains; this.cmbTipoMoneda.SelectedIndex = 0; /* TIPO DOCUMENTO */ foreach (var item in conexion.TipoDocumento.Where(x => x.estado == Estado.ACTIVO.ToString()).ToList()) { this.cmbTipoDocumento.Items.Add(item.descripcion, item.codigo); } this.cmbTipoDocumento.IncrementalFilteringMode = IncrementalFilteringMode.Contains; this.cmbTipoDocumento.SelectedIndex = 0; } }
public async Task <string> recepcionMesajeHacienda() { string responsePost = ""; try { Thread.CurrentThread.CurrentCulture = Utilidades.getCulture(); string xml = await Request.Content.ReadAsStringAsync(); DocumentoElectronico documento = (DocumentoElectronico)EncodeXML.EncondeXML.getObjetcFromXML(xml); documento.verificaDatosParaXML(); EmisorReceptorIMEC elEmisor = null; using (var conexion = new DataModelFE()) { elEmisor = conexion.EmisorReceptorIMEC.Find(documento.emisor.identificacion.numero); if (elEmisor == null) { return("Emisor no registrado!!!"); } } responsePost = await ServicesHacienda.enviarDocumentoElectronico(false, documento, elEmisor, documento.tipoDocumento, Usuario.USUARIO_AUTOMATICO); } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Throw a new DbEntityValidationException with the improved exception message. return(fullErrorMessage); } catch (Exception ex) { return(ex.Message); } return(responsePost); }
/// <summary> /// /// </summary> /// <param name="xmlFile">XML sin firmar</param> /// <param name="responsePost">respuesta del webs ervices</param> /// <param name="receptorTipoIdentificacion">tipoo identificacion del receptor</param> public static async Task <string> enviarMensajeReceptor(string xmlFile, EmisorReceptorIMEC emisor, string receptorTipoIdentificacion) { String responsePost = ""; try { using (var conexion = new DataModelFE()) { string ambiente = ConfigurationManager.AppSettings["ENVIROMENT"].ToString(); OAuth2.OAuth2Config config = conexion.OAuth2Config.Where(x => x.enviroment == ambiente).FirstOrDefault(); config.username = emisor.usernameOAuth2; config.password = emisor.passwordOAuth2; await OAuth2.OAuth2Config.getTokenWeb(config); WSDomain.WSRecepcionPOST trama = new WSDomain.WSRecepcionPOST(); trama.clave = XMLUtils.buscarValorEtiquetaXML(XMLUtils.tipoDocumentoXML(xmlFile), "Clave", xmlFile); trama.emisor.tipoIdentificacion = emisor.identificacionTipo; trama.emisor.numeroIdentificacion = XMLUtils.buscarValorEtiquetaXML("MensajeReceptor", "NumeroCedulaEmisor", xmlFile); trama.receptor.tipoIdentificacion = receptorTipoIdentificacion; trama.receptor.numeroIdentificacion = XMLUtils.buscarValorEtiquetaXML("MensajeReceptor", "NumeroCedulaReceptor", xmlFile); xmlFile = FirmaXML.getXMLFirmadoWeb(xmlFile, emisor.llaveCriptografica, emisor.claveLlaveCriptografica.ToString()); trama.consecutivoReceptor = XMLUtils.buscarValorEtiquetaXML(XMLUtils.tipoDocumentoXML(xmlFile), "NumeroConsecutivoReceptor", xmlFile); trama.comprobanteXml = EncodeXML.XMLUtils.base64Encode(xmlFile); string jsonTrama = JsonConvert.SerializeObject(trama); responsePost = await Services.postRecepcion(config.token, jsonTrama); } } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } return(responsePost); }
/// <summary> /// inserta un registro nuevo /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ASPxGridView1_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { try { using (var conexion = new DataModelFE()) { //se declara el objeto a insertar EmisorReceptorIMEC dato = new EmisorReceptorIMEC(); //llena el objeto con los valores de la pantalla dato.identificacionTipo = e.NewValues["identificacionTipo"] != null ? e.NewValues["identificacionTipo"].ToString().ToUpper() : null; dato.identificacion = e.NewValues["identificacion"] != null ? e.NewValues["identificacion"].ToString().ToUpper() : null; dato.nombre = e.NewValues["nombre"] != null ? e.NewValues["nombre"].ToString().ToUpper() : null; dato.nombreComercial = e.NewValues["nombreComercial"] != null ? e.NewValues["nombreComercial"].ToString().ToUpper() : null; dato.usuarioCreacion = Session["usuario"].ToString(); dato.fechaCreacion = Date.DateTimeNow(); //agrega el objeto conexion.EmisorReceptorIMEC.Add(dato); conexion.SaveChanges(); //esto es para el manero del devexpress e.Cancel = true; this.ASPxGridView1.CancelEdit(); } } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } finally { //refescar los datos this.refreshData(); } }
protected void btnFirmar_Click(object sender, EventArgs e) { try { string xmlFile = Session["xmlFile"].ToString(); EmisorReceptorIMEC dato = null; using (var conexion = new DataModelFE()) { string usuario = Session["usuario"].ToString(); dato = conexion.EmisorReceptorIMEC.Where(x => x.identificacion == usuario).FirstOrDefault(); } string xmlFileSigned = FirmaXML.getXMLFirmadoWeb(xmlFile, dato.llaveCriptografica, dato.claveLlaveCriptografica.ToString()); Session["xmlFile"] = xmlFileSigned; this.loadHTML(); } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } }
protected async void btnProbarUsuario_Click(object sender, EventArgs e) { using (var conexion = new DataModelFE()) { string ambiente = ConfigurationManager.AppSettings["ENVIROMENT"].ToString(); OAuth2.OAuth2Config config = conexion.OAuth2Config.Where(x => x.enviroment == ambiente).FirstOrDefault(); EmisorReceptorIMEC emisor = (EmisorReceptorIMEC)Session["elEmisor"]; config.username = emisor.usernameOAuth2; config.password = emisor.passwordOAuth2; await OAuth2.OAuth2Config.getTokenWeb(config); if (config.token.access_token != null) { this.alertMessages.InnerText = "Usuario configurado con éxito"; this.alertMessages.Attributes["class"] = "alert alert-info"; } else { this.alertMessages.InnerText = "Usuario presenta errores, verificar configuración"; this.alertMessages.Attributes["class"] = "alert alert-danger"; } } }
/// <summary> /// guardar el consecutivo utilizado /// </summary> protected void actualizarConsecutivo() { //genera el consecutivo del documento string emisor = Session["emisor"].ToString(); string sucursal = ConsecutivoDocElectronico.DEFAULT_SUCURSAL;; string caja = ConsecutivoDocElectronico.DEFAULT_CAJA; string tipoDocumento = ""; if (this.cmbMensaje.Value.Equals(TipoConsecutivo.ACEPTADO.ToString())) { tipoDocumento = TipoConsecutivo.DOCUMENTO_ACEPTADO; } else { if (this.cmbMensaje.Value.Equals(TipoConsecutivo.RECHAZADO_PARCIAL.ToString())) { tipoDocumento = TipoConsecutivo.DOCUMENTO_RECHAZADO_PARCIAL; } else { tipoDocumento = TipoConsecutivo.DOCUMENTO_RECHAZADO; } } using (var conexion = new DataModelFE()) { object[] key = new object[] { emisor, sucursal, caja, tipoDocumento }; ConsecutivoDocElectronico consecutivo = conexion.ConsecutivoDocElectronico.Find(key); if (consecutivo != null) { consecutivo.consecutivo += 1; conexion.Entry(consecutivo).State = EntityState.Modified; conexion.SaveChanges(); } } }
/// <summary> /// carga inicial de todos los registros /// </summary> private void refreshData() { double valor = 0; using (var conexion = new DataModelFE()) { string emisor = Session["emisor"].ToString(); List <Comision> lista = (from comision in conexion.Comision where comision.fechaPago >= txtFechaInicio.Date && comision.fechaPago <= txtFechaFin.Date select comision ).ToList(); foreach (var item in lista) { valor += item.montoPago; } txtPagoComision1.Text = (valor / 4).ToString(); txtPagoComision2.Text = (valor / 4).ToString(); this.dgvDatos.DataSource = lista; this.dgvDatos.DataBind(); } }
/// <summary> /// carga solo una vez para ahorar tiempo /// </summary> private void loadComboBox() { using (var conexion = new DataModelFE()) { /* ESTADO */ GridViewDataComboBoxColumn comboEstado = this.ASPxGridView1.Columns["estado"] as GridViewDataComboBoxColumn; comboEstado.PropertiesComboBox.Items.Clear(); comboEstado.PropertiesComboBox.Items.AddRange(Enum.GetValues(typeof(Estado))); /* IDENTIFICACION TIPO */ foreach (var item in conexion.TipoIdentificacion.ToList()) { this.cmbEmisorTipo.Items.Add(item.descripcion, item.codigo); } this.cmbEmisorTipo.IncrementalFilteringMode = IncrementalFilteringMode.Contains; /* PROVINCIA*/ foreach (var item in conexion.Ubicacion.Select(x => new { x.codProvincia, x.nombreProvincia }).Distinct()) { this.cmbEmisorProvincia.Items.Add(item.nombreProvincia, item.codProvincia); } this.cmbEmisorProvincia.IncrementalFilteringMode = IncrementalFilteringMode.Contains; } }
/// <summary> /// carga inicial de todos los registros /// </summary> private void refreshData() { using (var conexion = new DataModelFE()) { string emisor = Session["emisor"].ToString(); List <ResumenFacturaReceptor> lista = (from resumenFactura in conexion.ResumenFacturaReceptor from recepcioDocumento in conexion.WSRecepcionPOSTReceptor where recepcioDocumento.clave == resumenFactura.clave && recepcioDocumento.receptorIdentificacion == emisor && recepcioDocumento.fecha >= txtFechaInicio.Date && recepcioDocumento.fecha <= txtFechaFin.Date && recepcioDocumento.indEstado == 1 select resumenFactura ).ToList(); foreach (var item in lista) { item.verificaTipoDocumentoCambioMoneda(this.chkCambioMoneda.Checked); } this.ASPxGridView1.DataSource = lista; this.ASPxGridView1.DataBind(); } }
/// <summary> /// Se actualizan los mensajes del ministerio de hacienda que esten pendientes /// </summary> /// <returns></returns> public async Task <bool> actualizarMensajesHacienda() { try { EmisorReceptorIMEC emisor = null; OAuth2.OAuth2Config config = null; Thread.CurrentThread.CurrentCulture = Utilidades.getCulture(); using (var conexion = new DataModelFE()) { List <WSRecepcionPOST> lista = conexion.WSRecepcionPOST. Where(x => x.indEstado == 0 /*ENVIADO*/ || x.indEstado == 8 /*RECIBIDO*/ || x.indEstado == 9 /*PENDIENTE || * x.comprobanteRespXML == null*/).ToList(); foreach (var item in lista) { if (config == null) { emisor = conexion.EmisorReceptorIMEC.Find(Usuario.USUARIO_TOKEN); string ambiente = ConfigurationManager.AppSettings["ENVIROMENT"].ToString(); config = conexion.OAuth2Config.Where(x => x.enviroment == ambiente).FirstOrDefault(); config.username = emisor.usernameOAuth2; config.password = emisor.passwordOAuth2; await OAuth2.OAuth2Config.getTokenWeb(config); } string respuestaJSON = await Services.getRecepcion(config.token, item.clave); if (!string.IsNullOrWhiteSpace(respuestaJSON)) { WSRecepcionGET respuesta = JsonConvert.DeserializeObject <WSRecepcionGET>(respuestaJSON); if (respuesta.respuestaXml != null) { string respuestaXML = EncodeXML.XMLUtils.base64Decode(respuesta.respuestaXml); MensajeHacienda mensajeHacienda = new MensajeHacienda(respuestaXML); using (var conexionWS = new DataModelFE()) { WSRecepcionPOST dato = conexionWS.WSRecepcionPOST.Find(item.clave); dato.mensaje = mensajeHacienda.mensajeDetalle; dato.indEstado = mensajeHacienda.mensaje; dato.fechaModificacion = Date.DateTimeNow(); dato.usuarioModificacion = Usuario.USUARIO_AUTOMATICO; dato.montoTotalFactura = mensajeHacienda.montoTotalFactura; dato.montoTotalImpuesto = mensajeHacienda.montoTotalImpuesto; dato.comprobanteRespXML = respuestaXML; if (mensajeHacienda.montoTotalFactura == 0) { string xml = XMLUtils.base64Decode(dato.comprobanteXml); try { dato.montoTotalImpuesto = Convert.ToDecimal(XMLUtils.buscarValorEtiquetaXML("ResumenFactura", "TotalImpuesto", xml)); dato.montoTotalFactura = Convert.ToDecimal(XMLUtils.buscarValorEtiquetaXML("ResumenFactura", "TotalComprobante", xml)); } catch (Exception ex) { dato.montoTotalImpuesto = Convert.ToDecimal(XMLUtils.buscarValorEtiquetaXML("ResumenFactura", "TotalImpuesto", xml).Replace(".", ",")); dato.montoTotalFactura = Convert.ToDecimal(XMLUtils.buscarValorEtiquetaXML("ResumenFactura", "TotalComprobante", xml).Replace(".", ",")); } } conexionWS.Entry(dato).State = EntityState.Modified; conexionWS.SaveChanges(); } } else { if (respuesta.indEstado.Equals("recibido")) { using (var conexionWS = new DataModelFE()) { WSRecepcionPOST dato = conexionWS.WSRecepcionPOST.Find(item.clave); dato.indEstado = 8 /*recibido por hacienda*/; dato.fechaModificacion = Date.DateTimeNow(); dato.usuarioModificacion = Usuario.USUARIO_AUTOMATICO; conexionWS.Entry(dato).State = EntityState.Modified; conexionWS.SaveChanges(); } } } } } } } catch (Exception e) { String data = e.Message; } return(true); }
/// <summary> /// /// </summary> /// <param name="tieneFirma">determina si el XML esta firmado o no</param> /// <param name="documento">puede ser cualquer tipo de documento electronico</param> /// <param name="responsePost">respuesta del webs ervices</param> /// <param name="tipoDocumento">Facura, Nota Crédito, Nota Débito</param> public static async Task <string> enviarDocumentoElectronico(bool tieneFirma, DocumentoElectronico documentoElectronico, EmisorReceptorIMEC emisor, string tipoDocumento, string usuario) { String responsePost = ""; try { string xmlFile = EncodeXML.XMLUtils.getXMLFromObject(documentoElectronico); using (var conexion = new DataModelFE()) { string ambiente = ConfigurationManager.AppSettings["ENVIROMENT"].ToString(); OAuth2.OAuth2Config config = conexion.OAuth2Config.Where(x => x.enviroment == ambiente).FirstOrDefault(); config.username = emisor.usernameOAuth2; config.password = emisor.passwordOAuth2; await OAuth2.OAuth2Config.getTokenWeb(config); WSDomain.WSRecepcionPOST trama = new WSDomain.WSRecepcionPOST(); trama.clave = XMLUtils.buscarValorEtiquetaXML(XMLUtils.tipoDocumentoXML(xmlFile), "Clave", xmlFile); trama.fecha = DateTime.ParseExact(XMLUtils.buscarValorEtiquetaXML(XMLUtils.tipoDocumentoXML(xmlFile), "FechaEmision", xmlFile), "yyyy-MM-ddTHH:mm:ss-06:00", System.Globalization.CultureInfo.InvariantCulture); string emisorIdentificacion = XMLUtils.buscarValorEtiquetaXML("Emisor", "Identificacion", xmlFile); trama.emisor.tipoIdentificacion = emisorIdentificacion.Substring(0, 2); trama.emisor.numeroIdentificacion = emisorIdentificacion.Substring(2); trama.emisorTipo = trama.emisor.tipoIdentificacion; trama.emisorIdentificacion = trama.emisor.numeroIdentificacion; string receptorIdentificacion = XMLUtils.buscarValorEtiquetaXML("Receptor", "Identificacion", xmlFile); if (!string.IsNullOrWhiteSpace(receptorIdentificacion)) { trama.receptor.tipoIdentificacion = receptorIdentificacion.Substring(0, 2); trama.receptor.numeroIdentificacion = receptorIdentificacion.Substring(2); } else { trama.receptor.tipoIdentificacion = "99"; trama.receptor.numeroIdentificacion = XMLUtils.buscarValorEtiquetaXML("Receptor", "IdentificacionExtranjero", xmlFile); } trama.receptorTipo = trama.receptor.tipoIdentificacion; trama.receptorIdentificacion = trama.receptor.numeroIdentificacion; trama.tipoDocumento = tipoDocumento; //trama.callbackUrl = ConfigurationManager.AppSettings["ENVIROMENT_URL"].ToString(); if (!tieneFirma) { xmlFile = FirmaXML.getXMLFirmadoWeb(xmlFile, emisor.llaveCriptografica, emisor.claveLlaveCriptografica.ToString()); } trama.consecutivoReceptor = null; // SE CODIFICA ENVIO HACIENDA trama.comprobanteXml = XMLUtils.base64Encode(xmlFile); string jsonTrama = JsonConvert.SerializeObject(trama); if (config.token.access_token != null) { responsePost = await Services.postRecepcion(config.token, jsonTrama); } else { // facturar guardada para envio en linea trama.indEstado = 9; } // SE DECODIFICA PARA GUARDAR A BASE DE DATOS trama.comprobanteXml = xmlFile; WSRecepcionPOST tramaExiste = conexion.WSRecepcionPOST.Find(trama.clave); documentoElectronico.resumenFactura.clave = documentoElectronico.clave; trama.cargarEmisorReceptor(); if (tramaExiste != null) {// si existe trama.fechaModificacion = Date.DateTimeNow(); trama.usuarioModificacion = usuario; trama.indEstado = 0; conexion.Entry(tramaExiste).State = EntityState.Modified; conexion.Entry(documentoElectronico.resumenFactura).State = EntityState.Modified; } else//si no existe { trama.fechaCreacion = Date.DateTimeNow(); trama.usuarioCreacion = usuario; conexion.WSRecepcionPOST.Add(trama); conexion.ResumenFactura.Add(documentoElectronico.resumenFactura); Plan plan = conexion.Plan.Find(emisor.identificacion); if (plan != null) { plan.cantidadDocEmitido += 1; conexion.Entry(plan).State = EntityState.Modified; } } conexion.SaveChanges(); //guarda la relacion de clientes asociados al emisor Cliente cliente = conexion.Cliente.Where(x => x.emisor == trama.emisor.numeroIdentificacion).Where(x => x.receptor == trama.receptor.numeroIdentificacion).FirstOrDefault(); if (cliente == null && !string.IsNullOrWhiteSpace(trama.receptor.numeroIdentificacion)) { cliente = new Cliente(); cliente.emisor = trama.emisor.numeroIdentificacion; cliente.receptor = trama.receptor.numeroIdentificacion; conexion.Cliente.Add(cliente); conexion.SaveChanges(); } } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(fullErrorMessage, ex.EntityValidationErrors); } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } return(responsePost); }
/// <summary> /// Se actualizan los mensajes del ministerio de hacienda que esten pendientes /// </summary> /// <returns></returns> public async Task<bool> actualizarMensajesHacienda() { try { EmisorReceptorIMEC emisor = null; OAuth2.OAuth2Config config = null; using (var conexion = new DataModelFE()) { // se buscan los paquetes que esten enviados y esten esperando un respuesta de hacienda (indEstado == 8) o esten enviandas (indEstado == 0) List<Models.WS.WSRecepcionPOST> lista = conexion.WSRecepcionPOST.Where(x => x.indEstado == 0 || x.indEstado == 8 ).ToList(); foreach (var item in lista) { if (config == null) { emisor = conexion.EmisorReceptorIMEC.Find(Usuario.USUARIO_TOKEN); string ambiente = ConfigurationManager.AppSettings["ENVIROMENT"].ToString(); config = conexion.OAuth2Config.Where(x => x.enviroment == ambiente).FirstOrDefault(); config.username = emisor.usernameOAuth2; config.password = emisor.passwordOAuth2; await OAuth2.OAuth2Config.getTokenWeb(config); } string respuestaJSON = await ServicesHacienda.getRecepcion(config.token, item.clave); if (!string.IsNullOrWhiteSpace(respuestaJSON)) { WSRecepcionGET respuesta = JsonConvert.DeserializeObject<WSRecepcionGET>(respuestaJSON); if (respuesta.respuestaXml != null) { string respuestaXML = EncodeXML.XMLUtils.base64Decode(respuesta.respuestaXml); MensajeHacienda mensajeHacienda = new MensajeHacienda(respuestaXML); using (var conexionWS = new DataModelFE()) { Models.WS.WSRecepcionPOST dato = conexionWS.WSRecepcionPOST.Find(item.clave); dato.mensaje = mensajeHacienda.mensajeDetalle; dato.indEstado = mensajeHacienda.mensaje; dato.fechaModificacion = Date.DateTimeNow(); dato.usuarioModificacion = Usuario.USUARIO_AUTOMATICO; dato.montoTotalFactura = mensajeHacienda.montoTotalFactura; dato.montoTotalImpuesto = mensajeHacienda.montoTotalImpuesto; conexionWS.Entry(dato).State = EntityState.Modified; conexionWS.SaveChanges(); } } else { if (respuesta.indEstado.Equals("recibido")) { using (var conexionWS = new DataModelFE()) { Models.WS.WSRecepcionPOST dato = conexionWS.WSRecepcionPOST.Find(item.clave); dato.indEstado = 8/*recibido por hacienda*/; dato.fechaModificacion = Date.DateTimeNow(); dato.usuarioModificacion = Usuario.USUARIO_AUTOMATICO; conexionWS.Entry(dato).State = EntityState.Modified; conexionWS.SaveChanges(); } } } } } } } catch (Exception e) { String data = e.Message; } return true; }
public static string enviarProforma(ProformaElectronica documento, string tipoDocumento, string usuario) { String responsePostProforma = ""; try { string xmlFile = EncodeXML.XMLUtils.getXMLFromObject(documento); using (var conexion = new DataModelFE()) { WSDomain.WSRecepcionPOSTProforma trama = new WSDomain.WSRecepcionPOSTProforma(); trama.clave = XMLUtils.buscarValorEtiquetaXML(XMLUtils.tipoDocumentoXML(xmlFile), "Clave", xmlFile); trama.fecha = DateTime.ParseExact(XMLUtils.buscarValorEtiquetaXML(XMLUtils.tipoDocumentoXML(xmlFile), "FechaEmision", xmlFile), "yyyy-MM-ddTHH:mm:ss-06:00", System.Globalization.CultureInfo.InvariantCulture); string emisorIdentificacion = XMLUtils.buscarValorEtiquetaXML("Emisor", "Identificacion", xmlFile); trama.emisor.tipoIdentificacion = emisorIdentificacion.Substring(0, 2); trama.emisor.numeroIdentificacion = emisorIdentificacion.Substring(2); trama.emisorTipo = trama.emisor.tipoIdentificacion; trama.emisorIdentificacion = trama.emisor.numeroIdentificacion; string receptorIdentificacion = XMLUtils.buscarValorEtiquetaXML("Receptor", "Identificacion", xmlFile); if (!string.IsNullOrWhiteSpace(receptorIdentificacion)) { trama.receptor.tipoIdentificacion = receptorIdentificacion.Substring(0, 2); trama.receptor.numeroIdentificacion = receptorIdentificacion.Substring(2); } else { trama.receptor.tipoIdentificacion = "99"; trama.receptor.numeroIdentificacion = XMLUtils.buscarValorEtiquetaXML("Receptor", "IdentificacionExtranjero", xmlFile); } trama.montoTotalImpuesto = Convert.ToDecimal(XMLUtils.buscarValorEtiquetaXML("ResumenFactura", "TotalImpuesto", xmlFile)); trama.montoTotalFactura = Convert.ToDecimal(XMLUtils.buscarValorEtiquetaXML("ResumenFactura", "TotalComprobante", xmlFile)); trama.receptorTipo = trama.receptor.tipoIdentificacion; trama.receptorIdentificacion = trama.receptor.numeroIdentificacion; trama.tipoDocumento = tipoDocumento; trama.consecutivoReceptor = null; trama.comprobanteXml = xmlFile; trama.indEstado = 1; WSRecepcionPOSTProforma tramaExiste = conexion.WSRecepcionPOSTProforma.Find(trama.clave); if (tramaExiste != null) {// si existe trama.fechaModificacion = Date.DateTimeNow(); trama.usuarioModificacion = usuario; trama.indEstado = 1; trama.cargarEmisorReceptor(); conexion.Entry(tramaExiste).State = EntityState.Modified; } else//si no existe { trama.fechaCreacion = Date.DateTimeNow(); trama.usuarioCreacion = usuario; trama.cargarEmisorReceptor(); conexion.WSRecepcionPOSTProforma.Add(trama); } conexion.SaveChanges(); } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(fullErrorMessage, ex.EntityValidationErrors); } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } return(responsePostProforma); }