public bool Actualizar(BE_CON_REGRETENCION e_Retencion, List <BE_CON_REGRETENCIONDET> l_RetencionDetalle)
        {
            bool b_result             = false;
            CD_con_regretencion miFun = new CD_con_regretencion();

            miFun.mysConec = mysConec;
            miFun.l_Diario = l_Diario;
            b_result       = miFun.Actualizar(e_Retencion, l_RetencionDetalle);
            if (b_result == false)
            {
                b_OcurrioError = miFun.b_OcurrioError;
                c_ErrorMensaje = miFun.c_ErrorMensaje;
                n_ErrorNumber  = miFun.n_ErrorNumber;
            }
            else
            {
                //string c_NumAsi = e_Retencion.c_numreg;
                //CN_con_diario funCon = new CN_con_diario();
                //funCon.mysConec = mysConec;
                //funCon.STU_SISTEMA = STU_SISTEMA;

                //funCon.GenerarAsientoRetencion(STU_SISTEMA.EMPRESAID, e_Retencion.n_id, STU_SISTEMA.ANOTRABAJO, STU_SISTEMA.MESTRABAJO, 17, c_NumAsi);
            }
            return(b_result);
        }
        public bool Insertar(BE_CON_REGRETENCION e_Retencion, List <BE_CON_REGRETENCIONDET> l_RetencionDetalle)
        {
            bool b_result             = false;
            CD_con_regretencion miFun = new CD_con_regretencion();

            miFun.mysConec = mysConec;
            b_result       = miFun.Insertar(e_Retencion, l_RetencionDetalle);
            if (b_result == false)
            {
                b_OcurrioError = miFun.b_OcurrioError;
                c_ErrorMensaje = miFun.c_ErrorMensaje;
                n_ErrorNumber  = miFun.n_ErrorNumber;
            }
            else
            {
                //string c_NumAsi = "";
                //CN_con_diario funCon = new CN_con_diario();
                //funCon.mysConec = mysConec;
                //funCon.STU_SISTEMA = STU_SISTEMA;

                //funCon.GenerarAsientoRetencion(STU_SISTEMA.EMPRESAID, e_Retencion.n_id, STU_SISTEMA.ANOTRABAJO, STU_SISTEMA.MESTRABAJO, 17, "");
                //c_NumAsi = funCon.c_NewNumAsiento;
                //miFun.AgregarNumAsi(e_Retencion.n_id, c_NumAsi);
            }
            b_result = true;
            return(b_result);
        }
        public bool Insertar(BE_CON_REGRETENCION e_Retencion, List <BE_CON_REGRETENCIONDET> l_RetencionDetalle)
        {
            bool       booOk        = false;
            int        n_row        = 0;
            int        n_idgenerado = 0;
            DatosMySql xMiFuncion   = new DatosMySql();

            if (xMiFuncion.StoreEjecutar("con_regretencion_insertar", e_Retencion, mysConec, 4) == false)
            {
                b_OcurrioError = xMiFuncion.booOcurrioError;
                c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                n_ErrorNumber  = xMiFuncion.IntErrorNumber;
            }
            else
            {
                n_idgenerado     = Convert.ToInt32(xMiFuncion.intIdGenerado);
                e_Retencion.n_id = n_idgenerado;
                for (n_row = 0; n_row <= l_RetencionDetalle.Count - 1; n_row++)
                {
                    l_RetencionDetalle[n_row].n_idret = n_idgenerado;
                    if (xMiFuncion.StoreEjecutar("con_regretenciondet_insertar", l_RetencionDetalle[n_row], mysConec, null) == false)
                    {
                        b_OcurrioError = xMiFuncion.booOcurrioError;
                        c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                        n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                        return(booOk);
                    }
                }

                for (n_row = 0; n_row <= l_RetencionDetalle.Count - 1; n_row++)
                {
                    BE_VTA_VENTAS e_ventas = new BE_VTA_VENTAS();
                    CD_vta_ventas o_venta  = new CD_vta_ventas();
                    double        n_salfac = 0;

                    o_venta.mysConec = mysConec;

                    // TRAEMOS EL DOCUMENTO QUE SE NODIFICA
                    int n_iddocventa = l_RetencionDetalle[n_row].n_iddoc;                                   // OBTENEMOS EL ID DEL DOCUMENTO QUE SE MODIFICA
                    e_ventas = o_venta.TraerRegistro(n_iddocventa);
                    n_salfac = e_ventas.n_impsal - l_RetencionDetalle[n_row].n_impret;

                    string[,] arrParam1 = new string[2, 3] {
                        { "n_id", "System.INT32", n_iddocventa.ToString() },
                        { "n_saldo", "System.DOUBLE", n_salfac.ToString() }
                    };

                    if (xMiFuncion.StoreEjecutar("vta_ventas_actualizarsaldo", arrParam1, mysConec) == false)
                    {
                        b_OcurrioError = xMiFuncion.booOcurrioError;
                        c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                        n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                        //trans.Rollback();
                        return(booOk);
                    }
                }

                // GRABAMOS EL DIARIO
                for (n_row = 0; n_row <= l_Diario.Count - 1; n_row++)
                {
                    l_Diario[n_row].n_oriid = Convert.ToInt32(n_idgenerado);
                    if (xMiFuncion.StoreEjecutar("con_diario_insertar", l_Diario[n_row], mysConec, 0) == false)
                    {
                        b_OcurrioError = xMiFuncion.booOcurrioError;
                        c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                        n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                        //trans.Rollback();
                        return(booOk);
                    }
                }

                booOk = true;
            }
            return(booOk);
        }
        void VerRegistro(int n_IdRegistro)
        {
            int       n_row  = 0;
            string    c_dato = "";
            DataTable dtDet  = new DataTable();
            DataTable dtres  = new DataTable();

            objRegistros.mysConec = mysConec;
            objRegistros.TraerRegistro(n_IdRegistro);
            e_Ret = objRegistros.e_Retencion;
            dtDet = objRegistros.dtDetalle;

            booAgregando = true;

            LblIdPro.Text           = e_Ret.n_idcli.ToString();
            TxtPro.Text             = funDatos.DataTableBuscar(dtPro, "n_id", "c_nombre", LblIdPro.Text, "N").ToString();
            TxtTc.Text              = e_Ret.n_tc.ToString("0.000");
            TxtFchEmi.Text          = e_Ret.d_fchemi.ToString();
            TxtNumSer.Text          = e_Ret.c_numser;
            TxtNumDoc.Text          = e_Ret.c_numdoc;
            CboMon.SelectedValue    = e_Ret.n_idmon;
            TxtTc.Text              = e_Ret.n_tc.ToString("0.000");
            CboTipRet.SelectedValue = e_Ret.n_idret;
            TxtTasRet.Text          = e_Ret.n_tas.ToString("0.00");
            TxtGlo.Text             = e_Ret.c_glo;
            LblNumAsi.Text          = e_Ret.c_numreg;

            // OBTENEMOS EL ID DE LA CUENTA DEL DOCUMENTO
            dtres = funDatos.DataTableFiltrar(dtdoc, "n_idtipdoc = 21 AND n_idmon = " + Convert.ToInt32(CboMon.SelectedValue).ToString() + " AND n_idemp = " + STU_SISTEMA.EMPRESAID.ToString() + "");
            if (dtres.Rows.Count != 0)
            {
                N_CTADOC = Convert.ToInt32(dtres.Rows[0]["n_idcueven"]);
            }


            // OBTENEMOS EL ID DE LA CUENTA DEL IGV
            dtres = funDatos.DataTableFiltrar(dtdocimp, "n_idtipdoc = 21 AND n_idemp = " + STU_SISTEMA.EMPRESAID.ToString() + "");
            if (dtres.Rows.Count != 0)
            {
                N_CTAIGV = Convert.ToInt32(dtres.Rows[0]["n_idcueven"]);
            }

            FgItems.Rows.Count = 2;
            for (n_row = 0; n_row <= dtDet.Rows.Count - 1; n_row++)
            {
                FgItems.Rows.Count = FgItems.Rows.Count + 1;

                c_dato = dtDet.Rows[n_row]["c_numdoc"].ToString();
                FgItems.SetData(FgItems.Rows.Count - 1, 1, c_dato);

                c_dato = dtDet.Rows[n_row]["c_desmon"].ToString();
                FgItems.SetData(FgItems.Rows.Count - 1, 2, c_dato);

                c_dato = dtDet.Rows[n_row]["c_docdes"].ToString();
                FgItems.SetData(FgItems.Rows.Count - 1, 3, c_dato);

                c_dato = Convert.ToDateTime(dtDet.Rows[n_row]["d_fchdoc"]).ToString("dd/MM/yyyy");
                FgItems.SetData(FgItems.Rows.Count - 1, 4, c_dato);

                c_dato = Convert.ToDouble(dtDet.Rows[n_row]["n_imptotven"]).ToString("0.00");
                FgItems.SetData(FgItems.Rows.Count - 1, 5, c_dato);

                c_dato = Convert.ToDouble(dtDet.Rows[n_row]["n_impcob"]).ToString("0.00");
                FgItems.SetData(FgItems.Rows.Count - 1, 6, c_dato);

                c_dato = Convert.ToDouble(dtDet.Rows[n_row]["n_impcob"]).ToString("0.00");
                FgItems.SetData(FgItems.Rows.Count - 1, 7, c_dato);

                c_dato = TxtTasRet.Text;
                FgItems.SetData(FgItems.Rows.Count - 1, 8, c_dato);

                c_dato = Convert.ToDouble(dtDet.Rows[n_row]["n_impret"]).ToString("0.00");
                FgItems.SetData(FgItems.Rows.Count - 1, 9, c_dato);

                c_dato = dtDet.Rows[n_row]["n_iddoc"].ToString();
                FgItems.SetData(FgItems.Rows.Count - 1, 10, c_dato);
            }
            booAgregando = false;

            SumarColumnas();
        }
        public bool Actualizar(BE_CON_REGRETENCION e_Retencion, List <BE_CON_REGRETENCIONDET> l_RetencionDetalle)
        {
            bool       booOk        = false;
            int        n_row        = 0;
            int        n_idregistro = 0;
            DatosMySql xMiFuncion   = new DatosMySql();

            MySqlTransaction trans = null;

            try
            {
                trans = mysConec.BeginTransaction();

                string[,] arrParametros = new string[5, 3] {
                    { "n_lib", "System.INT32", e_Retencion.n_idlib.ToString() },
                    { "n_ano", "System.INT32", e_Retencion.n_ano.ToString() },
                    { "n_mes", "System.INT32", e_Retencion.n_mes.ToString() },
                    { "c_numasi", "System.STRING", e_Retencion.c_numreg.ToString() },
                    { "n_idemp", "System.INT32", e_Retencion.n_idemp.ToString() }
                };
                if (xMiFuncion.StoreEjecutar("con_diario_delete", arrParametros, mysConec) == false)
                {
                    b_OcurrioError = xMiFuncion.booOcurrioError;
                    c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                    n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                    trans.Rollback();
                    return(booOk);
                }

                if (xMiFuncion.StoreEjecutar("con_regretenciondet_delete", e_Retencion, mysConec, null) == false)
                {
                    b_OcurrioError = xMiFuncion.booOcurrioError;
                    c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                    n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                    trans.Rollback();
                    return(booOk);
                }

                if (xMiFuncion.StoreEjecutar("con_regretencion_actualizar", e_Retencion, mysConec, null) == false)
                {
                    b_OcurrioError = xMiFuncion.booOcurrioError;
                    c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                    n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                    trans.Rollback();
                    return(booOk);
                }
                else
                {
                    n_idregistro = e_Retencion.n_id;
                    for (n_row = 0; n_row <= l_RetencionDetalle.Count - 1; n_row++)
                    {
                        l_RetencionDetalle[n_row].n_idret = n_idregistro;
                        if (xMiFuncion.StoreEjecutar("con_regretenciondet_insertar", l_RetencionDetalle[n_row], mysConec, null) == false)
                        {
                            b_OcurrioError = xMiFuncion.booOcurrioError;
                            c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                            n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                            trans.Rollback();
                            return(booOk);
                        }
                    }

                    // GRABAMOS EL DIARIO
                    for (n_row = 0; n_row <= l_Diario.Count - 1; n_row++)
                    {
                        l_Diario[n_row].n_oriid = Convert.ToInt32(n_idregistro);
                        if (xMiFuncion.StoreEjecutar("con_diario_insertar", l_Diario[n_row], mysConec, 0) == false)
                        {
                            b_OcurrioError = xMiFuncion.booOcurrioError;
                            c_ErrorMensaje = xMiFuncion.StrErrorMensaje;
                            n_ErrorNumber  = xMiFuncion.IntErrorNumber;
                            trans.Rollback();
                            return(booOk);
                        }
                    }
                    booOk = true;
                }
                trans.Commit();
                return(booOk);
            }
            catch (Exception exc)
            {
                // SI SUCEDE UN ERROR DEVOLVEMOS FALSO
                b_OcurrioError = true;
                c_ErrorMensaje = exc.Message.ToString();
                n_ErrorNumber  = exc.HResult;
                trans.Rollback();
                return(booOk);
            }
        }