private void btnGuardarCambios_Click(object sender, RoutedEventArgs e) { // Se continua si la comprobación se cumple if (ComprobarCargaEstado()) { if (_modificandoEstados) { entActuacion.Estados.RemoveAll((ea) => ea.Ord == Convert.ToInt32(cboOrdEstadoActuacion.SelectedItem)); } // Generamos una nueva entidad de estado para almacenar en la colección Entidades.Estado entEstado = new Entidades.Estado(); // Cargamos la entidad con los datos generados entEstado.Detalle = txtDetalleEstadoActuacion.Text; entEstado.FechaHora = Util.Tiempo.ComponerDateTimeEstadoAsunto(txtFechaEstadoActuacion.Text, txtHoraEstadoActuacion.Text); entEstado.Ord = Convert.ToInt32(cboOrdEstadoActuacion.SelectedItem); entEstado.Tipo = (Entidades.TipoEstado)cboTipoEstadoActuacion.SelectedItem; // Agregamos el estado en la actuación entActuacion.Estados.Add(entEstado); // Actualizamos el listado de items dgListadoActuacionEstados.ReordenarDatagrid(); // Reseteamos los campos ResetearCamposEstadoActuacion(); // Desactivamos la operación de estados operarEstados = false; } }
private void InicializarActuacion() { // Generamos una nueva entidad actuación entActuacion = new Entidades.Actuacion(); // Cargamos los datos correspondientes de la actuación entActuacion.Operador = App.Current.Properties["user"] as Entidades.Operador; // Generamos una nueva lista de entidades estado List <Entidades.Estado> lstEntEstado = new List <Entidades.Estado>(); // Generamos un estado y lo agregamos al listado generado Entidades.Estado entEstado = new Entidades.Estado() { Ord = 1, Detalle = "Nueva actuacion", Tipo = Logica.TipoEstado.TraerEstadoActuacionInicialNormal(), FechaHora = DateTime.Now }; // Agregamos el estado nuevo al listado de estados lstEntEstado.Add(entEstado); // Establecemos la lista como miembro de la entidad actuación entActuacion.Estados = lstEntEstado; // Vinculamos el listado de estados al DataGrid dgListadoActuacionEstados.ItemsSource = entActuacion.Estados; // Activamos la modificación de la nueva actuación en la interfaz gráfica ModificarEstado(entEstado); }
private void btnModificarEstadoActuacion_Click(object sender, RoutedEventArgs e) { // Averiguamos si hay algun item seleccionado en el DataGrid if (dgListadoActuacionEstados.SelectedItem != null) { // Convertimos el item Selecionado en estado Entidades.Estado entEstado = dgListadoActuacionEstados.SelectedItem as Entidades.Estado; } }
private void btnEliminarEstadoActuacion_Click(object sender, RoutedEventArgs e) { // Consultamos si el objeto es nulo if (dgListadoActuacionEstados.SelectedItem != null) { // Convertimos la entidad seleccionada al tipo de objeto tipo estado Entidades.Estado entEstado = dgListadoActuacionEstados.SelectedItem as Entidades.Estado; // Solicitamos a la capa UI que procese la modificación EliminarEntidadEstado(entEstado); } }
/// <summary> /// Procesa en la capa de presentación el pedido de modificación de un estado actuación /// Fecha de creación : 17/07/2018 /// Autor : Maximiliano Leiva /// </summary> /// <param name="pEntEstado"></param> private void ModificarEstado(Entidades.Estado pEntEstado) { // Si se logra localizar el item if (pEntEstado != null) { // Descartamos las modificaciones if (DescartarModificacionesEstado()) { txtFechaEstadoActuacion.Text = pEntEstado.FechaHora.ToString("dd-MM-yyyy"); txtHoraEstadoActuacion.Text = pEntEstado.FechaHora.ToString("hh:mm:ss"); txtDetalleEstadoActuacion.Text = pEntEstado.Detalle; DefinirContenidoOrden(pEntEstado.Ord); DefinirContenidoEstados(); operarEstados = true; _modificandoEstados = true; } } }
/// <summary> /// Prepara la interfaz gráfica para modificar un estado /// Fecha de creación : 17/07/2018 /// Autor : Maximiliano Leiva /// </summary> /// <param name="pEntEstado"></param> private void EliminarEntidadEstado(Entidades.Estado pEntEstado) { // Averiguamos si es nulo if (pEntEstado != null) { // Si el estado obtenido es nulo realizamos la consulta a la capa de datos if (Util.MsgBox.Consulta("¿Esta seguro de que desea eliminar la orden " + pEntEstado.Ord + "?") == true) { // Removemos la actuación entActuacion.Estados.Remove(pEntEstado); // Reseteamos los campos ResetearCamposEstadoActuacion(); // Desactivamos la edicion de campos actuación operarEstados = false; // Reordenamos el DataGrid dgListadoActuacionEstados.ReordenarDatagrid(); } } }
/// <summary> /// Trae un listado completo de estados a través de una actuación /// </summary> /// <param name="entAct"></param> /// <param name="conn"></param> /// <returns></returns> public static List <Entidades.Estado> TraerSegunActuacion(Entidades.Actuacion entAct, SQLiteConnection conn) { // Generamos el listado de estados a devolver List <Entidades.Estado> lstEstados = new List <Entidades.Estado>(); // Generamos la cadena de caracteres que se utilizara en la consulta string strCmdEstadosActuacion = "SELECT ord, fechaHora, tipo, detalle FROM actuacion_estados WHERE numero=@Numero and operador=@Operador"; // Generamos el comando a ejecutar using (SQLiteCommand cmdEstadosActuacion = new SQLiteCommand(strCmdEstadosActuacion, conn)) { // Parametrizamos los comandos antes de ejecutar el lector cmdEstadosActuacion.Parameters.Agregar("@Numero", entAct.Numero); cmdEstadosActuacion.Parameters.Agregar("@Operador", entAct.Operador.UserName); // Ejecutamos el lector de estados using (SQLiteDataReader rdrLectorEstados = cmdEstadosActuacion.ExecuteReader()) { // Leemo todos los registros recolectados while (rdrLectorEstados.Read()) { // Generamos la entidad a agregar al listado de estados Entidades.Estado entEstado = new Entidades.Estado() { Ord = Convert.ToInt32(rdrLectorEstados["ord"]), FechaHora = Convert.ToDateTime(rdrLectorEstados["fechaHora"]), Detalle = rdrLectorEstados["detalle"].ToString(), Tipo = new Entidades.TipoEstado() { Id = Convert.ToInt32(rdrLectorEstados["tipo"]) } }; // Agregamos el estado al listado de estados lstEstados.Add(entEstado); } } } // Devolvemos el listado luego de ser procesado return(lstEstados); }
/// <summary> /// Consulta sobre la base de datos por el listado de estados asuntos cargados segun el asunto pasado por parametro /// Fecha de creación : 06/06/2018 /// Autor : Maximiliano Leiva /// </summary> /// <param name="pEntAsunto"></param> /// <returns></returns> public static List <Entidades.Estado> TraerListaEstadosPorAsunto(Entidades.Asunto pEntAsunto) { // Generamos la lista vacía a devolver List <Entidades.Estado> lstEstadoAsunto = new List <Entidades.Estado>(); // Generamos un nuevo objeto de conexión using (SQLiteConnection c = new SQLiteConnection(Conexion.Cadena)) { // Abrimos la conexión de la base de datos c.Open(); // Disponemos de la cadena que realizará la consulta String strConsultaEstados = "SELECT fechaHora, detalle, ord, tipo FROM asuntos_estados WHERE numero=@Numero and operador=@Operador order by ord ASC"; using (SQLiteCommand cmdConsultaEstados = new SQLiteCommand(strConsultaEstados, c)) { // Parametrizamos la consulta cmdConsultaEstados.Parameters.Agregar("@Numero", pEntAsunto.Numero); cmdConsultaEstados.Parameters.Agregar("@Operador", pEntAsunto.Oper.UserName); // Leemos los resultados obtenidos using (SQLiteDataReader rdrAsuntoEstados = cmdConsultaEstados.ExecuteReader()) { while (rdrAsuntoEstados.Read()) { Entidades.Estado estadoLeido = new Entidades.Estado(); Entidades.TipoEstado estadoLeidoTipo = new Entidades.TipoEstado(); estadoLeido.FechaHora = Convert.ToDateTime(rdrAsuntoEstados["fechaHora"]); estadoLeido.Detalle = rdrAsuntoEstados["detalle"].ToString(); estadoLeido.Ord = Convert.ToInt32(rdrAsuntoEstados["ord"]); estadoLeidoTipo.Id = Convert.ToInt32(rdrAsuntoEstados["tipo"]); estadoLeido.Tipo = estadoLeidoTipo; lstEstadoAsunto.Add(estadoLeido); } } } } // Devolvemos la lista procesada. return(lstEstadoAsunto); }
protected void BuscarButton_Click(object sender, EventArgs e) { if (Funciones.SessionTimeOut(Session)) { Response.Redirect("~/SessionTimeout.aspx"); } else { try { MensajeLabel.Text = ""; bool monedasExtranjeras = false; Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; List <Entidades.Comprobante> listaC = new List <Entidades.Comprobante>(); List <Entidades.Estado> estados = new List <Entidades.Estado>(); Entidades.Estado es = new Entidades.Estado(); es.Id = "Vigente"; estados.Add(es); Entidades.Persona persona = new Entidades.Persona(); Entidades.NaturalezaComprobante nc = new Entidades.NaturalezaComprobante(); nc.Id = "Venta"; listaC = RN.Comprobante.ListaFiltradaIvaYMovimientos(estados, FechaDesdeTextBox.Text, FechaHastaTextBox.Text, persona, nc, false, "", sesion); Entidades.VentasXArticulo ventas = new Entidades.VentasXArticulo(); ventas.Cuit = sesion.Cuit.Nro; ventas.RazSoc = sesion.Cuit.RazonSocial; ventas.PeriodoDsd = FechaDesdeTextBox.Text.Substring(6, 2) + "/" + FechaDesdeTextBox.Text.Substring(4, 2) + "/" + FechaDesdeTextBox.Text.Substring(0, 4); ventas.PeriodoHst = FechaHastaTextBox.Text.Substring(6, 2) + "/" + FechaHastaTextBox.Text.Substring(4, 2) + "/" + FechaHastaTextBox.Text.Substring(0, 4); System.Xml.Serialization.XmlSerializer x; byte[] bytes; System.IO.MemoryStream ms; FeaEntidades.InterFacturas.lote_comprobantes lote; ventas.VentasXArticuloDetalle = new List <Entidades.VentasXArticuloDetalle>(); List <Entidades.VentasXArticuloDetalle> lvd = new List <Entidades.VentasXArticuloDetalle>(); Entidades.VentasXArticuloDetalle vd; foreach (Entidades.Comprobante comprobante in listaC) { lote = new FeaEntidades.InterFacturas.lote_comprobantes(); x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); comprobante.Response = comprobante.Response.Replace("iso-8859-1", "utf-16"); bytes = new byte[comprobante.Response.Length * sizeof(char)]; System.Buffer.BlockCopy(comprobante.Response.ToCharArray(), 0, bytes, 0, bytes.Length); ms = new System.IO.MemoryStream(bytes); ms.Seek(0, System.IO.SeekOrigin.Begin); lote = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); //Totales por artículo if (lote.comprobante[0].detalle.linea != null) { for (int z = 0; z < lote.comprobante[0].detalle.linea.Length; z++) { double signo = 1; if (("/3/8/13/").IndexOf("/" + Convert.ToInt32(lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante).ToString().Trim() + "/") != -1) { signo = -1; } //Verificar el articulo ya existe en la lista. //List<Entidades.VentasXArticuloDetalle> listaAux = lvd.FindAll(delegate(Entidades.VentasXArticuloDetalle vxad) //{ // return vxad.IdArticulo == lote.comprobante[0].detalle.linea[z].codigo_producto_vendedor; //}); //if (listaAux.Count == 0 || lote.comprobante[0].detalle.linea[z].codigo_producto_vendedor.Trim() == "") //{ //} vd = new Entidades.VentasXArticuloDetalle(); vd.IdArticulo = lote.comprobante[0].detalle.linea[z].codigo_producto_vendedor; vd.GTIN = lote.comprobante[0].detalle.linea[z].GTIN.ToString(); vd.IdArticuloEmp = lote.comprobante[0].detalle.linea[z].codigo_producto_comprador; if (lote.comprobante[0].detalle.linea[z].indicacion_exento_gravado != null) { vd.IndicacionExentoGravado = lote.comprobante[0].detalle.linea[z].indicacion_exento_gravado; } else { vd.IndicacionExentoGravado = ""; } vd.NumeroLinea = lote.comprobante[0].detalle.linea[z].numeroLinea; vd.UnidadCod = lote.comprobante[0].detalle.linea[z].unidad; vd.UnidadDescr = lote.comprobante[0].detalle.linea[z].unidadDescripcion; vd.CompTipo = lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString(); vd.CompNro = lote.comprobante[0].cabecera.informacion_comprobante.numero_comprobante.ToString(); vd.CompPtoVta = lote.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString(); vd.CompFecEmi = lote.comprobante[0].cabecera.informacion_comprobante.fecha_emision.Substring(6, 2) + "/" + lote.comprobante[0].cabecera.informacion_comprobante.fecha_emision.Substring(4, 2) + "/" + lote.comprobante[0].cabecera.informacion_comprobante.fecha_emision.Substring(0, 4); vd.EmpNroDoc = lote.comprobante[0].cabecera.informacion_comprador.nro_doc_identificatorio.ToString(); vd.EmpCodDoc = lote.comprobante[0].cabecera.informacion_comprador.codigo_doc_identificatorio.ToString(); vd.EmpDescrDoc = ""; //Obtener la descripcion; vd.EmpNombre = lote.comprobante[0].cabecera.informacion_comprador.denominacion; if (lote.comprobante[0].detalle.linea[z].descripcion.Length > 0 && lote.comprobante[0].detalle.linea[z].descripcion.Substring(0, 1) == "%") { vd.Descr = RN.Funciones.HexToString(lote.comprobante[0].detalle.linea[z].descripcion); } else { vd.Descr = lote.comprobante[0].detalle.linea[z].descripcion; } vd.ImporteTotal = lote.comprobante[0].detalle.linea[z].importe_total_articulo * signo; if (lote.comprobante[0].detalle.linea[z].cantidadSpecified == true && lote.comprobante[0].detalle.linea[z].precio_unitarioSpecified == true) { vd.Cantidad = lote.comprobante[0].detalle.linea[z].cantidad * signo; vd.PrecioUnitario = lote.comprobante[0].detalle.linea[z].precio_unitario * signo; } if (lote.comprobante[0].detalle.linea[z].alicuota_ivaSpecified == true && lote.comprobante[0].detalle.linea[z].importe_ivaSpecified == true) { vd.AlicuotaIVA = lote.comprobante[0].detalle.linea[z].alicuota_iva; vd.ImporteIVA = lote.comprobante[0].detalle.linea[z].importe_iva * signo; } lvd.Add(vd); } } } //Si se muestran artículos vigentes no vendidos. List <Entidades.Articulo> listaArt = new List <Entidades.Articulo>(); if (VerTodosLosArticulosCheckBox.Enabled == true && VerTodosLosArticulosCheckBox.Checked == true) { listaArt = RN.Articulo.ListaPorCuit(true, false, sesion); if (listaArt.Count != 0) { foreach (Entidades.Articulo art in listaArt) { bool existeArt = false; if (lvd.Count != 0) { System.Collections.Generic.List <Entidades.VentasXArticuloDetalle> listaVXArt = lvd.FindAll(delegate(Entidades.VentasXArticuloDetalle vxart) { return(vxart.IdArticulo == art.Id); }); if (listaVXArt.Count != 0) { existeArt = true; } } if (!existeArt) { vd = new Entidades.VentasXArticuloDetalle(); vd.IdArticulo = art.Id; vd.Descr = art.Descr; vd.CompFecEmi = ""; vd.CompNro = ""; vd.CompPtoVta = ""; vd.CompTipo = ""; vd.UnidadCod = ""; vd.UnidadDescr = ""; vd.IndicacionExentoGravado = ""; vd.EmpNroDoc = ""; vd.EmpCodDoc = ""; vd.EmpDescrDoc = ""; vd.EmpNombre = ""; lvd.Add(vd); } } } } if (lvd.Count != 0) { ventas.VentasXArticuloDetalle = lvd; } Session["formatoRptExportar"] = FormatosRptExportarDropDownList.SelectedValue; Session["mostrarFechaYHora"] = FechaYHoraCheckBox.Checked; Session["mostrarDetalleComprobantes"] = DetalleComprobanteCheckBox.Checked; Session["monedasExtranjeras"] = monedasExtranjeras; if (ventas.VentasXArticuloDetalle.Count != 0) { Session["ventasXArticulo"] = ventas; Response.Redirect("~/Facturacion/Electronica/Reportes/VentasXArticuloWebForm.aspx", true); } else { MensajeLabel.Text = "No hay información."; } } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { WebForms.Excepciones.Redireccionar(ex, "~/NotificacionDeExcepcion.aspx"); } } }
protected void BuscarButton_Click(object sender, EventArgs e) { if (Funciones.SessionTimeOut(Session)) { Response.Redirect("~/SessionTimeout.aspx"); } else { try { MensajeLabel.Text = ""; bool monedasExtranjeras = false; Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; List<Entidades.Comprobante> listaC = new List<Entidades.Comprobante>(); List<Entidades.Estado> estados = new List<Entidades.Estado>(); Entidades.Estado es = new Entidades.Estado(); es.Id = "Vigente"; estados.Add(es); Entidades.Persona persona = new Entidades.Persona(); Entidades.NaturalezaComprobante nc = new Entidades.NaturalezaComprobante(); nc.Id = "Compra"; listaC = RN.Comprobante.ListaFiltradaIvaYMovimientos(estados, FechaDesdeTextBox.Text, FechaHastaTextBox.Text, persona, nc, false, "", sesion); Entidades.IvaCompras ivaCompras = new Entidades.IvaCompras(); ivaCompras.Cuit = sesion.Cuit.Nro; ivaCompras.PeriodoDsd = FechaDesdeTextBox.Text.Substring(6, 2) + "/" + FechaDesdeTextBox.Text.Substring(4, 2) + "/" + FechaDesdeTextBox.Text.Substring(0, 4); ivaCompras.PeriodoHst = FechaHastaTextBox.Text.Substring(6, 2) + "/" + FechaHastaTextBox.Text.Substring(4, 2) + "/" + FechaHastaTextBox.Text.Substring(0, 4); System.Xml.Serialization.XmlSerializer x; byte[] bytes; System.IO.MemoryStream ms; FeaEntidades.InterFacturas.lote_comprobantes lote; ivaCompras.IvaComprasComprobantes = new List<Entidades.IvaComprasComprobantes>(); listaTotXIMP = new List<Entidades.IvaComprasTotXImpuestos>(); listaTotXIVA = new List<Entidades.IvaComprasTotXIVA>(); foreach (Entidades.Comprobante comprobante in listaC) { Entidades.IvaComprasComprobantes icc = new Entidades.IvaComprasComprobantes(); icc.PtoVta = comprobante.NroPuntoVta.ToString(); icc.TipoComp = comprobante.TipoComprobante.Descr; icc.NroComp = comprobante.Nro.ToString(); icc.NroDoc = comprobante.NroDoc.ToString(); icc.TipoCompCodigo = comprobante.TipoComprobante.Id.ToString(); icc.RazSoc = comprobante.RazonSocial; if (comprobante.Documento.Tipo.Id != "99") { icc.TipoDoc = comprobante.DescrTipoDoc; } else { if (icc.RazSoc == "") { icc.TipoDoc = "Sin identificar/compra global"; } else { icc.TipoDoc = ""; } } double signo = 1; if (("/3/8/13/").IndexOf("/" + icc.TipoCompCodigo + "/") != -1) { signo = -1; } icc.ImporteTotal = comprobante.Importe * signo; icc.FechaEmi = comprobante.Fecha.ToString("dd/MM/yyyy"); lote = new FeaEntidades.InterFacturas.lote_comprobantes(); x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); comprobante.Request = comprobante.Request.Replace("iso-8859-1", "utf-16"); bytes = new byte[comprobante.Request.Length * sizeof(char)]; System.Buffer.BlockCopy(comprobante.Request.ToCharArray(), 0, bytes, 0, bytes.Length); ms = new System.IO.MemoryStream(bytes); ms.Seek(0, System.IO.SeekOrigin.Begin); lote = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); icc.Exento = lote.comprobante[0].resumen.importe_operaciones_exentas * signo; icc.NoGravado = lote.comprobante[0].resumen.importe_total_concepto_no_gravado * signo; icc.Gravado = lote.comprobante[0].resumen.importe_total_neto_gravado * signo; double otrosImp = Math.Round(lote.comprobante[0].resumen.importe_total_ingresos_brutos + lote.comprobante[0].resumen.importe_total_impuestos_nacionales + lote.comprobante[0].resumen.importe_total_impuestos_municipales + lote.comprobante[0].resumen.importe_total_impuestos_internos, 2); icc.OtrosImp = otrosImp * signo; icc.Iva = lote.comprobante[0].resumen.impuesto_liq * signo; icc.Moneda = lote.comprobante[0].resumen.codigo_moneda; if (icc.Moneda != "PES") { monedasExtranjeras = true; } icc.Cambio = lote.comprobante[0].resumen.tipo_de_cambio; icc.Concepto = lote.comprobante[0].cabecera.informacion_comprobante.codigo_concepto.ToString(); if (lote.comprobante[0].resumen.importes_moneda_origen != null) { icc.ImporteTotalME = lote.comprobante[0].resumen.importes_moneda_origen.importe_total_factura * signo; } ivaCompras.IvaComprasComprobantes.Add(icc); //Totales por Impuestos y Totales por alicuota de IVA y concepto ivaCompras.IvaComprasTotXImpuestos = new List<Entidades.IvaComprasTotXImpuestos>(); ivaCompras.IvaComprasTotXIVA = new List<Entidades.IvaComprasTotXIVA>(); if (lote.comprobante[0].resumen.impuestos != null) { for (int z = 0; z < lote.comprobante[0].resumen.impuestos.Length; z++) { double importe = lote.comprobante[0].resumen.impuestos[z].importe_impuesto * signo; listaTotIVAxComprobante = new List<Entidades.IvaComprasTotXIVA>(); if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 1) { string concepto = lote.comprobante[0].cabecera.informacion_comprobante.codigo_concepto.ToString(); double alicuota = lote.comprobante[0].resumen.impuestos[z].porcentaje_impuesto; double baseImponible = lote.comprobante[0].resumen.impuestos[z].base_imponible * signo; if (lote.comprobante[0].resumen.impuestos[z].base_imponible == 0) { if (lote.comprobante[0].detalle.linea == null || lote.comprobante[0].detalle.linea[0] == null) { //Si no hay renglones uso este método de cálculo para obtener la base imponible. baseImponible = Math.Round((lote.comprobante[0].resumen.impuestos[z].importe_impuesto * 100) / lote.comprobante[0].resumen.impuestos[z].porcentaje_impuesto, 2) * signo; } else if (lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante == 6 || lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante == 7 || lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante == 8) { //Si hay renglones y es un comprobante 'B' también uso este método de cálculo para obtener la base imponible. baseImponible = Math.Round((lote.comprobante[0].resumen.impuestos[z].importe_impuesto * 100) / lote.comprobante[0].resumen.impuestos[z].porcentaje_impuesto, 2) * signo; } else { //Si hay reglones, obtengo la base imponible sumando los renglones de detalle del comprobante según corresponda. baseImponible = 0; for (int k = 0; k < lote.comprobante[0].detalle.linea.Length; k++) { if (lote.comprobante[0].detalle.linea[k].indicacion_exento_gravado != null && lote.comprobante[0].detalle.linea[k].indicacion_exento_gravado.Trim().ToUpper() == "G" && lote.comprobante[0].detalle.linea[k].alicuota_iva == alicuota) { baseImponible += Math.Round(lote.comprobante[0].detalle.linea[k].importe_total_articulo, 2) * signo; } } //Verificar el impuesto IVA que no exista mas de una vez la misma alicuota. List<Entidades.IvaComprasTotXIVA> listaAux = listaTotIVAxComprobante.FindAll(delegate(Entidades.IvaComprasTotXIVA txi) { return txi.Concepto == concepto && txi.Alicuota == alicuota; }); if (listaAux.Count == 0) { TotalesIVAXComprobante(concepto, alicuota, baseImponible, importe); } else { //Comprobante con alícuota repetida. } } } TotalesXIVA(concepto, alicuota, baseImponible, importe); TotalesXImpuestos("IVA", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 2) { TotalesXImpuestos("Impuestos Internos", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 3) { TotalesXImpuestos("Otros Impuestos", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 4) { TotalesXImpuestos("Impuestos Nacionales", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 5) { TotalesXImpuestos("Impuestos Municipales", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 6) { TotalesXImpuestos("Ingresos Brutos", importe); } } } } if (listaTotXIMP.Count != 0) { ivaCompras.IvaComprasTotXImpuestos = listaTotXIMP; } else { //Para arreglar bug en towebs. Entidades.IvaComprasTotXImpuestos totXimp = new Entidades.IvaComprasTotXImpuestos(); totXimp.Descr = ""; totXimp.ImporteTotal = 0; ivaCompras.IvaComprasTotXImpuestos.Add(totXimp); } if (listaTotXIVA.Count != 0) { ivaCompras.IvaComprasTotXIVA = listaTotXIVA; } else { //Para arreglar bug en towebs. Entidades.IvaComprasTotXIVA totXiva = new Entidades.IvaComprasTotXIVA(); totXiva.Concepto = ""; totXiva.Alicuota = 0; totXiva.ImporteNG = 0; totXiva.ImporteTotal = 0; ivaCompras.IvaComprasTotXIVA.Add(totXiva); } Session["formatoRptExportar"] = FormatosRptExportarDropDownList.SelectedValue; Session["mostrarFechaYHora"] = FechaYHoraCheckBox.Checked; Session["monedasExtranjeras"] = monedasExtranjeras; if (ivaCompras.IvaComprasComprobantes.Count != 0) { Session["ivaCompras"] = ivaCompras; Response.Redirect("~/Facturacion/Electronica/Reportes/IvaComprasWebForm.aspx", true); } else { MensajeLabel.Text = "No hay información."; } } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { WebForms.Excepciones.Redireccionar(ex, "~/NotificacionDeExcepcion.aspx"); } } }
protected void BuscarButton_Click(object sender, EventArgs e) { if (Funciones.SessionTimeOut(Session)) { Response.Redirect("~/SessionTimeout.aspx"); } else { try { MensajeLabel.Text = ""; bool monedasExtranjeras = false; Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; List<Entidades.Comprobante> listaC = new List<Entidades.Comprobante>(); List<Entidades.Estado> estados = new List<Entidades.Estado>(); Entidades.Estado es = new Entidades.Estado(); es.Id = "Vigente"; estados.Add(es); Entidades.Persona persona = new Entidades.Persona(); Entidades.NaturalezaComprobante nc = new Entidades.NaturalezaComprobante(); nc.Id = "Venta"; listaC = RN.Comprobante.ListaFiltradaIvaYMovimientos(estados, FechaDesdeTextBox.Text, FechaHastaTextBox.Text, persona, nc, false, "", sesion); Entidades.VentasXArticulo ventas = new Entidades.VentasXArticulo(); ventas.Cuit = sesion.Cuit.Nro; ventas.RazSoc = sesion.Cuit.RazonSocial; ventas.PeriodoDsd = FechaDesdeTextBox.Text.Substring(6, 2) + "/" + FechaDesdeTextBox.Text.Substring(4, 2) + "/" + FechaDesdeTextBox.Text.Substring(0, 4); ventas.PeriodoHst = FechaHastaTextBox.Text.Substring(6, 2) + "/" + FechaHastaTextBox.Text.Substring(4, 2) + "/" + FechaHastaTextBox.Text.Substring(0, 4); System.Xml.Serialization.XmlSerializer x; byte[] bytes; System.IO.MemoryStream ms; FeaEntidades.InterFacturas.lote_comprobantes lote; ventas.VentasXArticuloDetalle = new List<Entidades.VentasXArticuloDetalle>(); List<Entidades.VentasXArticuloDetalle> lvd = new List<Entidades.VentasXArticuloDetalle>(); Entidades.VentasXArticuloDetalle vd; foreach (Entidades.Comprobante comprobante in listaC) { lote = new FeaEntidades.InterFacturas.lote_comprobantes(); x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); comprobante.Response = comprobante.Response.Replace("iso-8859-1", "utf-16"); bytes = new byte[comprobante.Response.Length * sizeof(char)]; System.Buffer.BlockCopy(comprobante.Response.ToCharArray(), 0, bytes, 0, bytes.Length); ms = new System.IO.MemoryStream(bytes); ms.Seek(0, System.IO.SeekOrigin.Begin); lote = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); //Totales por artículo if (lote.comprobante[0].detalle.linea != null) { for (int z = 0; z < lote.comprobante[0].detalle.linea.Length; z++) { double signo = 1; if (("/3/8/13/").IndexOf("/" + Convert.ToInt32(lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante).ToString().Trim() + "/") != -1) { signo = -1; } //Verificar el articulo ya existe en la lista. //List<Entidades.VentasXArticuloDetalle> listaAux = lvd.FindAll(delegate(Entidades.VentasXArticuloDetalle vxad) //{ // return vxad.IdArticulo == lote.comprobante[0].detalle.linea[z].codigo_producto_vendedor; //}); //if (listaAux.Count == 0 || lote.comprobante[0].detalle.linea[z].codigo_producto_vendedor.Trim() == "") //{ //} vd = new Entidades.VentasXArticuloDetalle(); vd.IdArticulo = lote.comprobante[0].detalle.linea[z].codigo_producto_vendedor; vd.GTIN = lote.comprobante[0].detalle.linea[z].GTIN.ToString(); vd.IdArticuloEmp = lote.comprobante[0].detalle.linea[z].codigo_producto_comprador; if (lote.comprobante[0].detalle.linea[z].indicacion_exento_gravado != null) { vd.IndicacionExentoGravado = lote.comprobante[0].detalle.linea[z].indicacion_exento_gravado; } else { vd.IndicacionExentoGravado = ""; } vd.NumeroLinea = lote.comprobante[0].detalle.linea[z].numeroLinea; vd.UnidadCod = lote.comprobante[0].detalle.linea[z].unidad; vd.UnidadDescr = lote.comprobante[0].detalle.linea[z].unidadDescripcion; vd.CompTipo = lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString(); vd.CompNro = lote.comprobante[0].cabecera.informacion_comprobante.numero_comprobante.ToString(); vd.CompPtoVta = lote.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString(); vd.CompFecEmi = lote.comprobante[0].cabecera.informacion_comprobante.fecha_emision.Substring(6, 2) + "/" + lote.comprobante[0].cabecera.informacion_comprobante.fecha_emision.Substring(4, 2) + "/" + lote.comprobante[0].cabecera.informacion_comprobante.fecha_emision.Substring(0, 4); vd.EmpNroDoc = lote.comprobante[0].cabecera.informacion_comprador.nro_doc_identificatorio.ToString(); vd.EmpCodDoc = lote.comprobante[0].cabecera.informacion_comprador.codigo_doc_identificatorio.ToString(); vd.EmpDescrDoc = ""; //Obtener la descripcion; vd.EmpNombre = lote.comprobante[0].cabecera.informacion_comprador.denominacion; if (lote.comprobante[0].detalle.linea[z].descripcion.Length > 0 && lote.comprobante[0].detalle.linea[z].descripcion.Substring(0, 1) == "%") { vd.Descr = RN.Funciones.HexToString(lote.comprobante[0].detalle.linea[z].descripcion); } else { vd.Descr = lote.comprobante[0].detalle.linea[z].descripcion; } vd.ImporteTotal = lote.comprobante[0].detalle.linea[z].importe_total_articulo * signo; if (lote.comprobante[0].detalle.linea[z].cantidadSpecified == true && lote.comprobante[0].detalle.linea[z].precio_unitarioSpecified == true) { vd.Cantidad = lote.comprobante[0].detalle.linea[z].cantidad * signo; vd.PrecioUnitario = lote.comprobante[0].detalle.linea[z].precio_unitario * signo; } if (lote.comprobante[0].detalle.linea[z].alicuota_ivaSpecified == true && lote.comprobante[0].detalle.linea[z].importe_ivaSpecified == true) { vd.AlicuotaIVA = lote.comprobante[0].detalle.linea[z].alicuota_iva; vd.ImporteIVA = lote.comprobante[0].detalle.linea[z].importe_iva * signo; } lvd.Add(vd); } } } //Si se muestran artículos vigentes no vendidos. List<Entidades.Articulo> listaArt = new List<Entidades.Articulo>(); if (VerTodosLosArticulosCheckBox.Enabled == true && VerTodosLosArticulosCheckBox.Checked == true) { listaArt = RN.Articulo.ListaPorCuit(true, false, sesion); if (listaArt.Count != 0) { foreach (Entidades.Articulo art in listaArt) { bool existeArt = false; if (lvd.Count != 0) { System.Collections.Generic.List<Entidades.VentasXArticuloDetalle> listaVXArt = lvd.FindAll(delegate(Entidades.VentasXArticuloDetalle vxart) { return vxart.IdArticulo == art.Id; }); if (listaVXArt.Count != 0) { existeArt = true; } } if (!existeArt) { vd = new Entidades.VentasXArticuloDetalle(); vd.IdArticulo = art.Id; vd.Descr = art.Descr; vd.CompFecEmi = ""; vd.CompNro = ""; vd.CompPtoVta = ""; vd.CompTipo = ""; vd.UnidadCod = ""; vd.UnidadDescr = ""; vd.IndicacionExentoGravado = ""; vd.EmpNroDoc = ""; vd.EmpCodDoc = ""; vd.EmpDescrDoc = ""; vd.EmpNombre = ""; lvd.Add(vd); } } } } if (lvd.Count != 0) { ventas.VentasXArticuloDetalle = lvd; } Session["formatoRptExportar"] = FormatosRptExportarDropDownList.SelectedValue; Session["mostrarFechaYHora"] = FechaYHoraCheckBox.Checked; Session["mostrarDetalleComprobantes"] = DetalleComprobanteCheckBox.Checked; Session["monedasExtranjeras"] = monedasExtranjeras; if (ventas.VentasXArticuloDetalle.Count != 0) { Session["ventasXArticulo"] = ventas; Response.Redirect("~/Facturacion/Electronica/Reportes/VentasXArticuloWebForm.aspx", true); } else { MensajeLabel.Text = "No hay información."; } } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { WebForms.Excepciones.Redireccionar(ex, "~/NotificacionDeExcepcion.aspx"); } } }
protected void BuscarButton_Click(object sender, EventArgs e) { if (Funciones.SessionTimeOut(Session)) { Response.Redirect("~/SessionTimeout.aspx"); } else { try { MensajeLabel.Text = ""; bool monedasExtranjeras = false; Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"]; List <Entidades.Comprobante> listaC = new List <Entidades.Comprobante>(); List <Entidades.Estado> estados = new List <Entidades.Estado>(); Entidades.Estado es = new Entidades.Estado(); es.Id = "Vigente"; estados.Add(es); Entidades.Persona persona = new Entidades.Persona(); Entidades.NaturalezaComprobante nc = new Entidades.NaturalezaComprobante(); nc.Id = "Compra"; listaC = RN.Comprobante.ListaFiltradaIvaYMovimientos(estados, FechaDesdeTextBox.Text, FechaHastaTextBox.Text, persona, nc, false, "", sesion); Entidades.IvaCompras ivaCompras = new Entidades.IvaCompras(); ivaCompras.Cuit = sesion.Cuit.Nro; ivaCompras.PeriodoDsd = FechaDesdeTextBox.Text.Substring(6, 2) + "/" + FechaDesdeTextBox.Text.Substring(4, 2) + "/" + FechaDesdeTextBox.Text.Substring(0, 4); ivaCompras.PeriodoHst = FechaHastaTextBox.Text.Substring(6, 2) + "/" + FechaHastaTextBox.Text.Substring(4, 2) + "/" + FechaHastaTextBox.Text.Substring(0, 4); System.Xml.Serialization.XmlSerializer x; byte[] bytes; System.IO.MemoryStream ms; FeaEntidades.InterFacturas.lote_comprobantes lote; ivaCompras.IvaComprasComprobantes = new List <Entidades.IvaComprasComprobantes>(); listaTotXIMP = new List <Entidades.IvaComprasTotXImpuestos>(); listaTotXIVA = new List <Entidades.IvaComprasTotXIVA>(); foreach (Entidades.Comprobante comprobante in listaC) { if (!(comprobante.NroDoc == sesion.Cuit.Nro && comprobante.NaturalezaComprobante.Id == "Compra")) { Entidades.IvaComprasComprobantes icc = new Entidades.IvaComprasComprobantes(); icc.PtoVta = comprobante.NroPuntoVta.ToString(); icc.TipoComp = comprobante.TipoComprobante.Descr; icc.NroComp = comprobante.Nro.ToString(); icc.NroDoc = comprobante.NroDoc.ToString(); icc.TipoCompCodigo = comprobante.TipoComprobante.Id.ToString(); icc.RazSoc = comprobante.RazonSocial; if (comprobante.Documento.Tipo.Id != "99") { icc.TipoDoc = comprobante.DescrTipoDoc; } else { if (icc.RazSoc == "") { icc.TipoDoc = "Sin identificar/compra global"; } else { icc.TipoDoc = ""; } } double signo = 1; if (("/3/8/13/").IndexOf("/" + icc.TipoCompCodigo + "/") != -1) { signo = -1; } icc.ImporteTotal = comprobante.Importe * signo; icc.FechaEmi = comprobante.Fecha.ToString("dd/MM/yyyy"); lote = new FeaEntidades.InterFacturas.lote_comprobantes(); x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); comprobante.Request = comprobante.Request.Replace("iso-8859-1", "utf-16"); bytes = new byte[comprobante.Request.Length * sizeof(char)]; System.Buffer.BlockCopy(comprobante.Request.ToCharArray(), 0, bytes, 0, bytes.Length); ms = new System.IO.MemoryStream(bytes); ms.Seek(0, System.IO.SeekOrigin.Begin); lote = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); icc.Exento = lote.comprobante[0].resumen.importe_operaciones_exentas * signo; icc.NoGravado = lote.comprobante[0].resumen.importe_total_concepto_no_gravado * signo; icc.Gravado = lote.comprobante[0].resumen.importe_total_neto_gravado * signo; double otrosImp = Math.Round(lote.comprobante[0].resumen.importe_total_ingresos_brutos + lote.comprobante[0].resumen.importe_total_impuestos_nacionales + lote.comprobante[0].resumen.importe_total_impuestos_municipales + lote.comprobante[0].resumen.importe_total_impuestos_internos, 2); icc.OtrosImp = otrosImp * signo; icc.Iva = lote.comprobante[0].resumen.impuesto_liq * signo; icc.Moneda = lote.comprobante[0].resumen.codigo_moneda; if (icc.Moneda != "PES") { monedasExtranjeras = true; } icc.Cambio = lote.comprobante[0].resumen.tipo_de_cambio; icc.Concepto = lote.comprobante[0].cabecera.informacion_comprobante.codigo_concepto.ToString(); if (lote.comprobante[0].resumen.importes_moneda_origen != null) { icc.ImporteTotalME = lote.comprobante[0].resumen.importes_moneda_origen.importe_total_factura * signo; } ivaCompras.IvaComprasComprobantes.Add(icc); //Totales por Impuestos y Totales por alicuota de IVA y concepto ivaCompras.IvaComprasTotXImpuestos = new List <Entidades.IvaComprasTotXImpuestos>(); ivaCompras.IvaComprasTotXIVA = new List <Entidades.IvaComprasTotXIVA>(); if (lote.comprobante[0].resumen.impuestos != null) { for (int z = 0; z < lote.comprobante[0].resumen.impuestos.Length; z++) { double importe = lote.comprobante[0].resumen.impuestos[z].importe_impuesto * signo; listaTotIVAxComprobante = new List <Entidades.IvaComprasTotXIVA>(); if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 1) { string concepto = lote.comprobante[0].cabecera.informacion_comprobante.codigo_concepto.ToString(); double alicuota = lote.comprobante[0].resumen.impuestos[z].porcentaje_impuesto; double baseImponible = lote.comprobante[0].resumen.impuestos[z].base_imponible * signo; if (lote.comprobante[0].resumen.impuestos[z].base_imponible == 0) { if (lote.comprobante[0].detalle.linea == null || lote.comprobante[0].detalle.linea[0] == null) { //Si no hay renglones uso este método de cálculo para obtener la base imponible. baseImponible = Math.Round((lote.comprobante[0].resumen.impuestos[z].importe_impuesto * 100) / lote.comprobante[0].resumen.impuestos[z].porcentaje_impuesto, 2) * signo; } else if (lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante == 6 || lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante == 7 || lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante == 8) { //Si hay renglones y es un comprobante 'B' también uso este método de cálculo para obtener la base imponible. baseImponible = Math.Round((lote.comprobante[0].resumen.impuestos[z].importe_impuesto * 100) / lote.comprobante[0].resumen.impuestos[z].porcentaje_impuesto, 2) * signo; } else { //Si hay reglones, obtengo la base imponible sumando los renglones de detalle del comprobante según corresponda. baseImponible = 0; for (int k = 0; k < lote.comprobante[0].detalle.linea.Length; k++) { if (lote.comprobante[0].detalle.linea[k].indicacion_exento_gravado != null && lote.comprobante[0].detalle.linea[k].indicacion_exento_gravado.Trim().ToUpper() == "G" && lote.comprobante[0].detalle.linea[k].alicuota_iva == alicuota) { baseImponible += Math.Round(lote.comprobante[0].detalle.linea[k].importe_total_articulo, 2) * signo; } } //Verificar el impuesto IVA que no exista mas de una vez la misma alicuota. List <Entidades.IvaComprasTotXIVA> listaAux = listaTotIVAxComprobante.FindAll(delegate(Entidades.IvaComprasTotXIVA txi) { return(txi.Concepto == concepto && txi.Alicuota == alicuota); }); if (listaAux.Count == 0) { TotalesIVAXComprobante(concepto, alicuota, baseImponible, importe); } else { //Comprobante con alícuota repetida. } } } TotalesXIVA(concepto, alicuota, baseImponible, importe); TotalesXImpuestos("IVA", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 2) { TotalesXImpuestos("Impuestos Internos", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 3) { TotalesXImpuestos("Otros Impuestos", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 4) { TotalesXImpuestos("Impuestos Nacionales", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 5) { TotalesXImpuestos("Impuestos Municipales", importe); } else if (lote.comprobante[0].resumen.impuestos[z].codigo_impuesto == 6) { TotalesXImpuestos("Ingresos Brutos", importe); } } } } } if (ivaCompras.IvaComprasComprobantes.Count != 0) { if (listaTotXIMP.Count != 0) { ivaCompras.IvaComprasTotXImpuestos = listaTotXIMP; } else { //Para arreglar bug en towebs. Entidades.IvaComprasTotXImpuestos totXimp = new Entidades.IvaComprasTotXImpuestos(); totXimp.Descr = ""; totXimp.ImporteTotal = 0; ivaCompras.IvaComprasTotXImpuestos.Add(totXimp); } if (listaTotXIVA.Count != 0) { ivaCompras.IvaComprasTotXIVA = listaTotXIVA; } else { //Para arreglar bug en towebs. Entidades.IvaComprasTotXIVA totXiva = new Entidades.IvaComprasTotXIVA(); totXiva.Concepto = ""; totXiva.Alicuota = 0; totXiva.ImporteNG = 0; totXiva.ImporteTotal = 0; ivaCompras.IvaComprasTotXIVA.Add(totXiva); } } Session["formatoRptExportar"] = FormatosRptExportarDropDownList.SelectedValue; Session["mostrarFechaYHora"] = FechaYHoraCheckBox.Checked; Session["monedasExtranjeras"] = monedasExtranjeras; if (ivaCompras.IvaComprasComprobantes.Count != 0) { Session["ivaCompras"] = ivaCompras; Response.Redirect("~/Facturacion/Electronica/Reportes/IvaComprasWebForm.aspx", true); } else { MensajeLabel.Text = "No hay información."; } } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { WebForms.Excepciones.Redireccionar(ex, "~/NotificacionDeExcepcion.aspx"); } } }