private void dtgRendiciones_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { try { if (e.CommandName == "Recibir") { IRendicionAgencia rendicion = RendicionAgenciaFactory.GetRendicionAgencia(); rendicion.RendicionAgenciaID = Convert.ToInt32(e.Item.Cells[20].Text); // SFE. Registrar la agencia que va a recibir. rendicion.Agencia.AgenciaID = AgenciaConectadaID; IUsuarios usuario = (IUsuarios)Session["Usuario"]; rendicion.Recibir(usuario.UsuarioID); BindGrid(0); } else if (e.CommandName == "Controlar") { IRendicionAgencia rendicion = RendicionAgenciaFactory.GetRendicionAgencia(); rendicion.RendicionAgenciaID = Convert.ToInt32(e.Item.Cells[20].Text); // SFE. Registrar la agencia que va a recibir. rendicion.Agencia.AgenciaID = AgenciaConectadaID; IUsuarios usuario = (IUsuarios)Session["Usuario"]; TextBox txtCaja = (TextBox)e.Item.FindControl("txtCaja"); PlaceHolder phCaja = (PlaceHolder)e.Item.FindControl("phCaja"); phCaja.Controls.Add(GenerarValidadores.Requerido("txtCaja", "Debe ingresar el número de caja es obligatorio", false, "cajaReq")); phCaja.Controls.Add(GenerarValidadores.EnteroPositivo("txtCaja", "El número de caja debe ser un entero positivo", false, "cajaValid")); BaseValidator bv; bv = (BaseValidator)e.Item.FindControl("cajaReq"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return; } bv = (BaseValidator)e.Item.FindControl("cajaValid"); bv.Enabled = true; bv.Validate(); if (!bv.IsValid) { return; } rendicion.Controlar(usuario.UsuarioID, Utiles.Validaciones.obtieneEntero(txtCaja.Text)); BindGrid(0); } else if (e.CommandName == "ReporteComisiones") { string rendicionAgenciaID = e.Item.Cells[20].Text; Response.Redirect("ComisionAgenciaPorRendicion.aspx?RendicionAgenciaID=" + rendicionAgenciaID, false); } else if (e.CommandName == "Imprimir") { IRendicionAgencia rendicion = RendicionAgenciaFactory.GetRendicionAgencia(); rendicion.RendicionAgenciaID = Convert.ToInt32(e.Item.Cells[20].Text); IUsuarios usuario = (IUsuarios)Session["Usuario"]; rendicion.Recibir(usuario.UsuarioID); BindGrid(0); DsRendicionesAgencias rendicionSeleccionada = new DsRendicionesAgencias(); foreach (DsRendicionesAgencias.DatosRow item in ((DsRendicionesAgencias)Session["dsRendicionAgencia"]).Datos) { if (Utiles.Formatos.CerosIzq(Convert.ToInt32(item.NroRendicion), 5) == e.Item.Cells[0].Text) { DsRendicionesAgencias.DatosRow myRow = rendicionSeleccionada.Datos.NewDatosRow(); myRow.AgenciaID = item.AgenciaID; myRow.AgenciaNombre = item.AgenciaNombre; myRow.Archivo = item.Archivo; myRow.Controlada = item.Controlada; myRow.EstadoRendicionID = item.EstadoRendicionID; myRow.Fecha = item.Fecha; myRow.NroRendicion = item.NroRendicion; myRow.Recibida = item.Recibida; myRow.RendicionAgenciaID = item.RendicionAgenciaID; myRow.SaldoRendicion = item.IsSaldoRendicionNull()? 0.00 : item.SaldoRendicion; myRow.SubTotalFleteA = item.SubTotalFleteA; myRow.SubTotalFleteB = item.SubTotalFleteB; myRow.SubTotalFleteE = item.SubTotalFleteE; //SFE: Correccion de Bug 11/01/2011. Visualizacion de Columnas para Guías R myRow.SubTotalFleteR = item.SubTotalFleteR; myRow.SubTotalSeguroA = item.SubTotalSeguroA; myRow.SubTotalSeguroB = item.SubTotalSeguroB; myRow.SubTotalSeguroE = item.SubTotalSeguroE; //SFE: Correccion de Bug 11/01/2011. Visualizacion de Columnas para Guías R myRow.SubTotalSeguroR = item.SubTotalSeguroR; myRow.TotalRendidoA = item.TotalRendidoA; myRow.TotalRendidoB = item.TotalRendidoB; myRow.TotalRendidoE = item.TotalRendidoE; //SFE: Correccion de Bug 11/01/2011. Visualizacion de Columnas para Guías R myRow.TotalRendidoR = item.TotalRendidoR; myRow.UsuarioCID = item.IsUsuarioCIDNull() ? 0 : item.UsuarioCID; myRow.UsuarioRID = item.IsUsuarioRIDNull() ? 0 : item.UsuarioRID; rendicionSeleccionada.Datos.AddDatosRow(myRow); break; } } string codEmpresaRapiPago = System.Configuration.ConfigurationSettings.AppSettings["CodEmpresaRapiPago"].ToString(); IParametroUNegocio paramEmpresa = ParametroUNegocioFactory.GetParametroUNegocio(); paramEmpresa.UnidadNegocioID = this.UnidadNegocioID; paramEmpresa.Parametro = NegociosSisPackInterface.SisPack.Parametro.Empresa; paramEmpresa.Consultar(); string codEmpresaGrupoA = paramEmpresa.ValorString; IParametroUNegocio paramZona = ParametroUNegocioFactory.GetParametroUNegocio(); paramZona.UnidadNegocioID = this.UnidadNegocioID; paramZona.Parametro = NegociosSisPackInterface.SisPack.Parametro.Zona; paramZona.Consultar(); string zona = paramZona.ValorString; /* Obtenemos el Codigo de la Agencia logueada. */ IAgencia oAgencia = AgenciaFactory.GetAgencia(); oAgencia.AgenciaID = Convert.ToInt32(this.AgenciaConectadaID); oAgencia.ConsultarBasico(); /* Utilizamos la funcion útiles para rellenar con ceros. */ string codAgencia = Utiles.Formatos.CerosIzq(Convert.ToInt32(oAgencia.SucursalDGI), 7); string compLiquid = Utiles.Formatos.CerosIzq(rendicionSeleccionada.Datos[0].RendicionAgenciaID, 8); string auxiliar = "00"; /* Sumar el total de los dos tipos de guías. */ string importe = ""; double totalARendirA = rendicionSeleccionada != null ? rendicionSeleccionada.Datos[0].TotalRendidoA : 0.00; double totalARendirB = rendicionSeleccionada != null ? rendicionSeleccionada.Datos[0].TotalRendidoB : 0.00; double totalARendirE = rendicionSeleccionada != null ? rendicionSeleccionada.Datos[0].TotalRendidoE : 0.00; //SFE: Correccion de Bug 11/01/2011. Visualizacion de Columnas para Guías R double totalARendirR = rendicionSeleccionada != null ? rendicionSeleccionada.Datos[0].TotalRendidoR : 0.00; double totalGuias = totalARendirA + totalARendirB + totalARendirE + totalARendirR; int entero = Convert.ToInt32(Math.Floor(totalGuias)); double decimales = totalGuias - Convert.ToDouble(entero); if (decimales == 0.0) { string dec = Utiles.Formatos.CerosIzq(0, 2); importe = Utiles.Formatos.CerosIzq(entero, 6) + dec; } else { importe = Utiles.Formatos.CerosIzq(entero, 6) + decimales.ToString().Substring(2, 2); } /* Formamos la fecha de vencimiento. */ string diasVto = Utiles.Formatos.CerosIzq(Convert.ToInt32(rendicionSeleccionada.Datos[0].Fecha.DayOfYear.ToString()), 3); //string diasVto = Utiles.Formatos.CerosIzq(Convert.ToInt32(System.DateTime.Today.AddMonths(1).DayOfYear.ToString()),3); string anioVto = System.DateTime.Today.Year.ToString().Substring(System.DateTime.Today.Year.ToString().Length - 2, 2); string fechaVto = anioVto + diasVto; string moneda = "0"; string secuencia = codEmpresaRapiPago + codEmpresaGrupoA + zona + codAgencia + compLiquid + auxiliar + importe + fechaVto + moneda; IParametroUNegocio paramCadenaVerificadora = ParametroUNegocioFactory.GetParametroUNegocio(); paramCadenaVerificadora.UnidadNegocioID = this.UnidadNegocioID; paramCadenaVerificadora.Parametro = NegociosSisPackInterface.SisPack.Parametro.CadenaVerificadora; paramCadenaVerificadora.Consultar(); string secuenciaControl = paramCadenaVerificadora.ValorString; //Secuencia fija elegida. /* Obtenemos los dígitos de verificación de nuestra secuencia. */ double totalProductos = 0.00; if (secuencia.Length == secuenciaControl.Length) { for (int i = 0; i < secuencia.Length; i++) { totalProductos += (int)(secuencia[i] - '0') * (int)(secuenciaControl[i] - '0'); } } int ultimosDigitos = (System.Int32)(totalProductos / 2); string codigoValidacion = ultimosDigitos.ToString().Substring(ultimosDigitos.ToString().Length - 2, 2); /* Concatenamos el código validador a nuestra secuencia y la enviamos como parámetro a la página de impresión. */ secuencia = secuencia + codigoValidacion; string nroRendicion = rendicionSeleccionada.Datos[0].NroRendicion + " - " + rendicionSeleccionada.Datos[0].Fecha.ToShortDateString(); string script = "<script languaje='javascript'>\n"; script += "window.showModalDialog('VoucherRapiPago.aspx?secuencia=" + secuencia + "&nroRendicion=" + nroRendicion + "','','center:Yes;status:No;help:No;resizable:No;scroll:Yes;dialogHeight:580px;dialogWidth:610px');\n"; script += "</script>"; Page.RegisterClientScriptBlock("generarVoucher", script); } } catch (Exception ex) { ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message); } }