/// <summary> /// Evento generado al Quitar un Iave /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkQuitar_Click(object sender, EventArgs e) { //Declaramos objetpo Resultado RetornoOperacion resultado = new RetornoOperacion(); //Si hay registros if (gvIavesAsignados.DataKeys.Count > 0) { //Seleccionando la fila correspondiente Controles.SeleccionaFila(gvIavesAsignados, sender, "lnk", false); //Inicializamos Valores using (SAT_CL.Ruta.CrucesAutorizadosIave objIave = new SAT_CL.Ruta.CrucesAutorizadosIave(Convert.ToInt32(gvIavesAsignados.SelectedValue))) { //Factura resultado = objIave.AsignaFacturaIave(0, 1, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validamos Resultado if (resultado.OperacionExitosa) { //Inicializamos Inidices Controles.InicializaIndices(gvIavesAsignados); //Cargamos Iave Asignados buscaIavesAsignados(Convert.ToInt32(gvFacturas.SelectedDataKey["Id"])); //Cargamos Fcaturas buscaFacturas(); //Busca Iaves buscarCrucesIaves(); } //Mostrando Resultado ScriptServer.MuestraNotificacion(gvIavesAsignados, resultado, ScriptServer.PosicionNotificacion.AbajoDerecha); } } }
/// <summary> /// Evento Producido al Presionar el Boton "Asignar IAVE" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnAsignarIave_Click(object sender, EventArgs e) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Declarando Total Casetas Decimal TotalCasetas = 0; Decimal TotalFacturaAsignado = 0; //Validando que exista una Factura Seleccionada if (gvFacturas.SelectedIndex != -1) { //Obteniendo Filas Seleccionadas GridViewRow[] filas = TSDK.ASP.Controles.ObtenerFilasSeleccionadas(gvIaves, "chkVarios"); //Validando que existan IAVE Seleccionados if (filas.Length > 0) { //Inicializando Bloque Transacional using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciando la Factura using (FacturadoProveedor fp = new FacturadoProveedor(Convert.ToInt32(gvFacturas.SelectedDataKey["Id"]))) { //Validando que exista la Factura if (fp.id_factura != 0) { //Declarando Contador int contador = 0; //Iniciando Ciclo Total Casetas Seleccionados while (contador < filas.Length) { //Obteniendo Indice gvIaves.SelectedIndex = filas[contador].RowIndex; //Instanciando if (Convert.ToInt32(gvIaves.SelectedDataKey["Id"]) > 0) { //Validando que exista el IAVE TotalCasetas = TotalCasetas + Convert.ToDecimal(gvIaves.SelectedDataKey["Monto"]); contador = contador + 1; } } //Asignacion TotalFacturaAsignado = Convert.ToDecimal(gvFacturas.SelectedDataKey["Asignado"]) > 0 ? (fp.total_factura - Convert.ToDecimal(gvFacturas.SelectedDataKey["Asignado"])) : fp.total_factura; if (TotalCasetas <= TotalFacturaAsignado) { //Declarando Contador int contadori = 0; //Iniciando Ciclo while (contadori < filas.Length) { //Obteniendo Indice gvIaves.SelectedIndex = filas[contadori].RowIndex; TotalCasetas = TotalCasetas + Convert.ToDecimal(gvIaves.SelectedDataKey["Id"]); //Instanciando using (SAT_CL.Ruta.CrucesAutorizadosIave Iave = new SAT_CL.Ruta.CrucesAutorizadosIave(Convert.ToInt32(gvIaves.SelectedDataKey["Id"]))) { //Validando que exista el IAVE if (Iave.habilitar) { //Asignando el Iave a la Factura result = Iave.AsignaFacturaIave(fp.id_factura, 2, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); //Validando que la Operación haya sido exitosa contadori = result.OperacionExitosa ? contadori + 1 : filas.Length; } } } } else { //Instanciando Excepción result = new RetornoOperacion("El Total de la factura es menor al costos de las casetas"); } } else { //Instanciando Excepción result = new RetornoOperacion("No existe la Factura"); } } //Validando que la Operación haya sido exitosa if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } //Validando el Resultado de la Operación if (result.OperacionExitosa) { //Obteniendo Factura de Proveedor int idFacturaProveedor = Convert.ToInt32(gvFacturas.SelectedDataKey["Id"]); //Vargando Reportes buscarCrucesIaves(); buscaFacturas(); //Marcando Fila Controles.MarcaFila(gvFacturas, idFacturaProveedor.ToString(), "Id", "Id-Monto-Asignado", OrigenDatos.RecuperaDataTableDataSet((DataSet)Session["DS"], "Table"), lblOrdenadoFactura.Text, Convert.ToInt16(ddlTamanoFac.SelectedValue), true, 1); //Recargando IAVES Asignados buscaIavesAsignados(Convert.ToInt32(gvFacturas.SelectedDataKey["Id"])); } } else { //Instanciando Excepción result = new RetornoOperacion("Debe seleccionar al menos una caseta Iave"); } } else { //Instanciando Excepción result = new RetornoOperacion("Debe Seleccionar una Factura"); } //Mostrando Resultado de Operación ScriptServer.MuestraNotificacion(btnAsignarIave, result, ScriptServer.PosicionNotificacion.AbajoDerecha); }