private void button1_Click(object sender, EventArgs e)
        {
            String fechaHoy = (Convert.ToDateTime(DateTime.Now.ToShortDateString())).ToString("yyyy-MM-dd");
            Double total_importe_vencimientos = Convert.ToDouble(0.00);

            //RECORRO LOS VECIMIENTOS DE ESA OPERACION PARA ABONARLOS
            String    sqlSelectVencimientos = "SELECT IdOpDet, IdEntidad, ImpOpDetPte FROM com_opdetalles WHERE IdOp = " + id_op_pasado;
            DataTable vencimientosAntiguos  = Persistencia.SentenciasSQL.select(sqlSelectVencimientos);

            for (int a = 0; a < vencimientosAntiguos.Rows.Count; a++)
            {
                if (Convert.ToDouble(vencimientosAntiguos.Rows[a][2].ToString()) > 0.00)
                {
                    if (CreoAbonoVencimiento(vencimientosAntiguos.Rows[a][0].ToString(), vencimientosAntiguos.Rows[a][1].ToString(), vencimientosAntiguos.Rows[a][2].ToString()))
                    {
                        total_importe_vencimientos = total_importe_vencimientos + Convert.ToDouble(vencimientosAntiguos.Rows[a][2].ToString());
                    }
                    else
                    {
                        return;
                    }
                }
            }

            ////////############################# CREO VENCIMIENTO NUEVO Y EL RECIBO ######################################//////////////////

            int op_det = Logica.FuncionesTesoreria.CreoVencimientoID(id_op_pasado, id_nueva_entidad, fechaHoy, Logica.FuncionesGenerales.ArreglarImportes(total_importe_vencimientos.ToString()), Logica.FuncionesGenerales.ArreglarImportes(total_importe_vencimientos.ToString()));

            //CREO EL RECIBO
            int id_recibo = Logica.FuncionesTesoreria.CreoReciboID(id_comunidad_cargado, id_nueva_entidad, fechaHoy, Logica.FuncionesGenerales.ArreglarImportes(total_importe_vencimientos.ToString()), Logica.FuncionesGenerales.ArreglarImportes(total_importe_vencimientos.ToString()), "Recibo reasignado");

            //ACTUALIZO RECIBO EN EL VENCIMIENTO
            Logica.FuncionesTesoreria.ActualizoIdReciboVencimiento(id_recibo.ToString(), op_det.ToString());

            //////########################## CAMBIO ENTIDAD DE LA OPERACION ###################################///////////////

            String sqlUpdateOperacion = "UPDATE com_operaciones SET IdEntidad = " + id_nueva_entidad + " WHERE IdOp = " + id_op_pasado;

            Persistencia.SentenciasSQL.InsertarGenerico(sqlUpdateOperacion);

            if (form_anterior1 == null)
            {
                form_anterior.aplicarFiltro();
                if (indice_seleccioando > -1)
                {
                    form_anterior.dataGridView_operacionesComuneros.ClearSelection();
                    form_anterior.dataGridView_operacionesComuneros.Rows[indice_seleccioando].Selected = true;
                }
            }
            else
            {
                //form_anterior1.cargardatagrid();
                form_anterior1.aplicarFiltro();
            }
            MessageBox.Show("Operación reasignada");
            this.Close();
        }
        private void button_aceptar_Click(object sender, EventArgs e)
        {
            String idBloqueGG  = "";
            Double totalApagar = 0.00;
            String fechaHoy    = (Convert.ToDateTime(DateTime.Now)).ToString("yyyy-MM-dd");
            String idCuentaCom = Logica.FuncionesTesoreria.CuentaCompesaciones(idComunidad);

            if (idCuentaCom == "No")
            {
                MessageBox.Show("Debes crear una cuenta de compesaciones para la comunidad");
                return;
            }

            String    sqlBloqueGG = "SELECT IdBloque FROM com_bloques WHERE IdComunidad = " + idComunidad + " and GG = '-1'";
            DataTable bloque      = Persistencia.SentenciasSQL.select(sqlBloqueGG);

            if (bloque.Rows.Count > 0)
            {
                idBloqueGG = bloque.Rows[0][0].ToString();
            }
            else
            {
                MessageBox.Show("No existe bloque Generales para esta Comunidad");
                return;
            }

            //BUSCO EJERCICIO
            String IdEjercicio = Logica.FuncionesTesoreria.ejercicioActivo(idComunidad, fechaHoy);
            //CREO EL MOVIMIENTO
            int idMov = Logica.FuncionesTesoreria.CreaMovimiento(IdEjercicio, idCuentaCom, "1", idEntidad, fechaHoy, "AJUSTE VENCIMIENTO LIQUIDADO");

            //BUSCO TODOS LOS VENCIMIENTOS DE ESA OPERACIÓN PARA PAGARLOS
            String sqlSelectVencimiento = "SELECT com_opdetalles.IdOpDet, com_opdetalles.IdEntidad, com_opdetalles.Fecha, com_opdetalles.Importe, com_opdetalles.ImpOpDetPte FROM com_opdetalles INNER JOIN com_operaciones ON com_opdetalles.IdOp = com_operaciones.IdOp WHERE(((com_operaciones.IdOp) = " + idOpPasado + "));";

            DataTable vencimientos = Persistencia.SentenciasSQL.select(sqlSelectVencimiento);

            for (int a = 0; a < vencimientos.Rows.Count; a++)
            {
                //CREO EL DETALLE
                Logica.FuncionesTesoreria.CreaDetalleMovimiento(idMov.ToString(), vencimientos.Rows[a][0].ToString(), vencimientos.Rows[a][3].ToString().Replace(",", "."));
                totalApagar += Convert.ToDouble(vencimientos.Rows[a][3].ToString());
            }


            //OPERACION DEVOLUCIÓN
            String sqlInsertOperacion = "INSERT INTO com_operaciones (IdComunidad, IdEntidad, IdSubCuenta, IdTipoReparto, Fecha, Documento, Descripcion, IdMovCrea, ImpOp, ImpOpPte, Guardada, IdURD, FAct) VALUES (" + idComunidad + "," + idEntidad + "," + idSubCuenta + "," + tipoReparto + ",'" + fechaHoy + "','', '" + Descripcion + "'," + idMov + ",-" + totalApagar.ToString().Replace(",", ".") + ",-" + totalApagar.ToString().Replace(",", ".") + ",'Si'," + Login.getId() + ",'" + fechaHoy + "')";

            int op = Persistencia.SentenciasSQL.InsertarGenericoID(sqlInsertOperacion);

            //INSERTO EL IVA EN LA OPERACION
            String sqlIVA = "INSERT INTO com_opdetiva (IdOp, Base, IdIVA, IVA) VALUES (" + op + ",-" + totalApagar.ToString().Replace(",", ".") + ",1,0.00)";

            Persistencia.SentenciasSQL.InsertarGenerico(sqlIVA);

            //INSERTO EL REPARTO EN LA OPERACION
            String    sqlSelectReparto = "SELECT IdBloque, Porcentaje, IdDivision, IdEntidad FROM com_opdetbloques WHERE IdOp = " + idOpPasado + ";";
            DataTable repartos         = Persistencia.SentenciasSQL.select(sqlSelectReparto);

            for (int a = 0; a < repartos.Rows.Count; a++)
            {
                String sqlInsertReparto = "";
                double porcentaje       = Convert.ToDouble(repartos.Rows[a][1].ToString()) * 100;
                double total            = (Convert.ToDouble(totalApagar.ToString()) * porcentaje) / 100;

                if (tipoReparto == "1")
                {
                    sqlInsertReparto = "INSERT INTO com_opdetbloques (IdOp, IdBloque, Porcentaje, Importe) VALUES (" + op + "," + repartos.Rows[a][0].ToString() + "," + repartos.Rows[a][1].ToString().Replace(',', '.') + ",-" + total.ToString().Replace(',', '.') + ")";
                }
                else if (tipoReparto == "2")
                {
                    sqlInsertReparto = "INSERT INTO com_opdetbloques (IdOp, IdDivision, Porcentaje, Importe) VALUES (" + op + "," + repartos.Rows[a][2].ToString() + "," + repartos.Rows[a][1].ToString().Replace(',', '.') + ",-" + total.ToString().Replace(',', '.') + ")";
                }
                else if (tipoReparto == "3")
                {
                    sqlInsertReparto = "INSERT INTO com_opdetbloques (IdOp, IdEntidad, Porcentaje, Importe) VALUES (" + op + "," + repartos.Rows[a][3].ToString() + "," + repartos.Rows[a][1].ToString().Replace(',', '.') + ",-" + total.ToString().Replace(',', '.') + ")";
                }
                Persistencia.SentenciasSQL.InsertarGenerico(sqlInsertReparto);
            }

            //INSERTO EL VENCIMIENTO EN LA OPERACION
            String sqlDetOp2 = "INSERT INTO com_opdetalles (IdOp, IdEntidad, Fecha, FechaPrev, Importe,ImpOpDetPte) VALUES (" + op + "," + idEntidad + ",'" + fechaHoy + "','" + fechaHoy + "',-" + totalApagar.ToString().Replace(",", ".") + ",-" + totalApagar.ToString().Replace(",", ".") + ")";
            int    nuevaDet  = Persistencia.SentenciasSQL.InsertarGenericoID(sqlDetOp2);

            //INSERTO LA LIQUIDACION EN LA OPERACION ANTERIOR
            String sqlLiq2 = "INSERT INTO com_opdetliquidacion (IdOp, IdLiquidacion, Porcentaje, Importe) VALUES (" + op + "," + LiquidacionFondo() + ",1,-" + totalApagar.ToString().Replace(",", ".") + ")";

            Persistencia.SentenciasSQL.InsertarGenerico(sqlLiq2);

            //CREO EL MOVIMIENTO
            int idMovEntrada = Logica.FuncionesTesoreria.CreaMovimiento(IdEjercicio, idCuentaCom, "8", idEntidad, fechaHoy, "AJUSTE VENCIMIENTO LIQUIDADO");

            //CREO EL DETALLE
            Logica.FuncionesTesoreria.CreaDetalleMovimiento(idMovEntrada.ToString(), nuevaDet.ToString(), totalApagar.ToString().Replace(",", "."));

            //FromOperacionesVer vieja = new FromOperacionesVer(idOpPasado.ToString(), 2);
            //vieja.Show();

            //FromOperacionesVer nueva = new FromOperacionesVer(op.ToString(), 2);
            //nueva.Show();

            MessageBox.Show("Operación Liquidada");
            this.Close();
            form_anterior.aplicarFiltro();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (((id_subcuenta == "43801" && Convert.ToDouble(importe) < 0) || id_subcuenta == "43812" && Convert.ToDouble(importe) > 0) || ((id_subcuenta == "70000" || id_subcuenta == "70001") && Convert.ToDouble(importe) < 0) || ((Convert.ToInt32(id_subcuenta) >= 60000 || Convert.ToInt32(id_subcuenta) <= 69999) && Convert.ToDouble(importe) > 0))
            {
                String strDesc;
                String fechaCompesacion = (Convert.ToDateTime(DateTime.Now.ToShortDateString())).ToString("yyyy-MM-dd");

                if (id_subcuenta == "43801" || id_subcuenta == "43812")
                {
                    strDesc = "Comp. Salida AC M" + (Persistencia.SentenciasSQL.select("SELECT IdMovCrea FROM com_operaciones WHERE IdOp = " + id_operacion_pasado)).Rows[0][0].ToString();
                }
                else
                {
                    strDesc = "Comp. Vto. Entrada M" + (Persistencia.SentenciasSQL.select("SELECT IdMovCrea FROM com_operaciones WHERE IdOp = " + id_operacion_pasado)).Rows[0][0].ToString();
                }

                String CuentaCompesacion = Logica.FuncionesTesoreria.CuentaCompesaciones(id_comunidad);
                if (CuentaCompesacion == "No")
                {
                    MessageBox.Show("Esa comunidad no tiene cuenta de compesaciones");
                    return;
                }

                //CREO LA CABECERA MOVIMIENTO
                int varMovSal = Logica.FuncionesTesoreria.CreaMovimiento(Logica.FuncionesTesoreria.ejercicioActivo(id_comunidad, fechaCompesacion), CuentaCompesacion, "15", id_entidad, fechaCompesacion, strDesc);

                ////CREO EL DETALLE DEL MOVIMIENTO
                Logica.FuncionesTesoreria.CreaDetalleMovimiento(varMovSal.ToString(), id_det_op, Logica.FuncionesGenerales.ArreglarImportes(textBox_asignado.Text));

                for (int a = 0; a < dataGridView_pagos.Rows.Count; a++)
                {
                    if (dataGridView_pagos.Rows[a].Cells[10].Value != null && Convert.ToDouble(dataGridView_pagos.Rows[a].Cells[10].Value) > 0)
                    {
                        //CREO LA CABECERA MOVIMIENTO
                        int varMovEnt = Logica.FuncionesTesoreria.CreaMovimientoCA(Logica.FuncionesTesoreria.ejercicioActivo(id_comunidad, fechaCompesacion), CuentaCompesacion, "16", id_entidad, fechaCompesacion, strDesc, varMovSal.ToString());

                        //CREO EL DETALLE DEL MOVIMIENTO
                        Logica.FuncionesTesoreria.CreaDetalleMovimiento(varMovEnt.ToString(), dataGridView_pagos.Rows[a].Cells[1].Value.ToString(), Logica.FuncionesGenerales.ArreglarImportes(dataGridView_pagos.Rows[a].Cells[10].Value.ToString()));

                        //ACTUALIZO CA EN MOVSAL
                        Logica.FuncionesTesoreria.ActualizaMovCA(varMovEnt.ToString(), varMovSal.ToString());
                    }
                }
            }
            else if (id_subcuenta == "43801" || (id_subcuenta == "43812" && Convert.ToDouble(importe) < 0) || ((id_subcuenta == "70000" || id_subcuenta == "70001") && Convert.ToDouble(importe) > 0) || ((Convert.ToInt32(id_subcuenta) >= 60000 || Convert.ToInt32(id_subcuenta) <= 69999) && Convert.ToDouble(importe) < 0))
            {
                String fechaCompesacion = (Convert.ToDateTime(DateTime.Now.ToShortDateString())).ToString("yyyy-MM-dd");
                String strDescEnt       = "Comp. Entrada AC M" + (Persistencia.SentenciasSQL.select("SELECT IdMovCrea FROM com_operaciones WHERE IdOp = " + id_operacion_pasado)).Rows[0][0].ToString();

                String CuentaCompesacion = Logica.FuncionesTesoreria.CuentaCompesaciones(id_comunidad);
                if (CuentaCompesacion == "No")
                {
                    MessageBox.Show("Esa comunidad no tiene cuenta de compesaciones");
                    return;
                }

                //CREO LA CABECERA MOVIMIENTO
                int varMovEnt = Logica.FuncionesTesoreria.CreaMovimiento(Logica.FuncionesTesoreria.ejercicioActivo(id_comunidad, fechaCompesacion), CuentaCompesacion, "16", id_entidad, fechaCompesacion, strDescEnt);

                //CREO EL DETALLE DEL MOVIMIENTO
                Logica.FuncionesTesoreria.CreaDetalleMovimiento(varMovEnt.ToString(), id_det_op, Logica.FuncionesGenerales.ArreglarImportes(textBox_asignado.Text));

                for (int a = 0; a < dataGridView_pagos.Rows.Count; a++)
                {
                    if (dataGridView_pagos.Rows[a].Cells[10].Value != null && Convert.ToDouble(dataGridView_pagos.Rows[a].Cells[10].Value) > 0)
                    {
                        //CREO LA CABECERA MOVIMIENTO
                        int varMovSal = Logica.FuncionesTesoreria.CreaMovimientoCA(Logica.FuncionesTesoreria.ejercicioActivo(id_comunidad, fechaCompesacion), CuentaCompesacion, "15", id_entidad, fechaCompesacion, strDescEnt, varMovEnt.ToString());
                        //CREO EL DETALLE DEL MOVIMIENTO
                        Logica.FuncionesTesoreria.CreaDetalleMovimiento(varMovSal.ToString(), dataGridView_pagos.Rows[a].Cells[1].Value.ToString(), Logica.FuncionesGenerales.ArreglarImportes(dataGridView_pagos.Rows[a].Cells[10].Value.ToString()));
                        //ACTUALIZO CA EN MOVSAL
                        Logica.FuncionesTesoreria.ActualizaMovCA(varMovEnt.ToString(), varMovSal.ToString());
                    }
                }
            }
            //form_anterior.cargardatagrid();
            if (form_anterior != null)
            {
                form_anterior.aplicarFiltro();
            }
            else
            {
                form_anterior_2.cargarDatagrid();
            }
            this.Close();
        }