private void actualiza_detalle_tarjetas_pb(DataTable totales_formas_pagos_aux)
 {
     foreach (DataRow row_totven_fpaux in totales_formas_pagos_aux.Rows)
     {
         Guid oid_tv_aux = Guid.Empty;
         int  tpago_aux  = (int)row_totven_fpaux["tpago"];
         if (tpago_aux == 2)
         {
             oid_tv_aux = (Guid)row_totven_fpaux["oid_tv"];
             if ((decimal)row_totven_fpaux["monto_manual"] > 0)
             {
                 DataTable puntos_bancarios_aux1 = new DataTable();
                 puntos_bancarios_aux1 = ((DataTable)row_totven_fpaux["datatable_puntos_bancarios"]);
                 foreach (DataRow row_tot_tpb in puntos_bancarios_aux1.Rows)
                 {
                     Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas_Des totales_ventas_des_aux1 = null;
                     try
                     {
                         totales_ventas_des_aux1 = totales_ventas_des.First <Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas_Des>(exis_tot_tfp => exis_tot_tfp.total_venta.oid == oid_tv_aux & exis_tot_tfp.punto_bancario.oid == (Guid)row_tot_tpb["oid"]);
                     }
                     catch
                     {
                         totales_ventas_des_aux1 = null;
                     }
                     //
                     if ((decimal)row_tot_tpb["monto_manual_des"] > 0)
                     {
                         if (totales_ventas_des_aux1 == null)
                         {
                             totales_ventas_des_aux1                = new Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas_Des(DevExpress.Xpo.XpoDefault.Session);
                             totales_ventas_des_aux1.total_venta    = DevExpress.Xpo.Session.DefaultSession.GetObjectByKey <Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas>(oid_tv_aux);
                             totales_ventas_des_aux1.punto_bancario = DevExpress.Xpo.Session.DefaultSession.GetObjectByKey <Fundraising_PTDM.FUNDRAISING_PT.Puntos_Bancarios>((Guid)row_tot_tpb["oid"]);
                         }
                         totales_ventas_des_aux1.monto_manual_des = (decimal)row_tot_tpb["monto_manual_des"];
                         totales_ventas_des_aux1.sucursal         = Fundraising_PT.Properties.Settings.Default.sucursal;
                         totales_ventas_des_aux1.Save();
                     }
                     else
                     {
                         if (totales_ventas_des_aux1 != null)
                         {
                             totales_ventas_des_aux1.Delete();
                             totales_ventas_des_aux1.Save();
                         }
                     }
                 } // final del foreach
             }
             else
             {
                 DataTable puntos_bancarios_aux1 = new DataTable();
                 puntos_bancarios_aux1 = ((DataTable)row_totven_fpaux["datatable_puntos_bancarios"]);
                 foreach (DataRow row_tot_tpb in puntos_bancarios_aux1.Rows)
                 {
                     Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas_Des totales_ventas_des_aux1 = null;
                     try
                     {
                         totales_ventas_des_aux1 = totales_ventas_des.First <Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas_Des>(exis_tot_tfp => exis_tot_tfp.total_venta.oid == oid_tv_aux & exis_tot_tfp.punto_bancario.oid == (Guid)row_tot_tpb["oid"]);
                         totales_ventas_des_aux1.Delete();
                         totales_ventas_des_aux1.Save();
                     }
                     catch
                     {
                         totales_ventas_des_aux1 = null;
                     }
                 }
             }
         }
     }
 }
        void simpleButton_aceptar_Click(object sender, EventArgs e)
        {
            int lnStatus_auxiliar = 0;

            if ((ln_status_totalventa == 0 || ln_status_totalventa == 1 || ln_status_totalventa == 6) & ll_active_ajust == false)
            {
                Fundraising_PT.Clases.MsgBoxUtil.HackMessageBox("Abierta", "Cerrada", "Cancelar");
                switch (MessageBox.Show("Seleccione como desea guardar la Totalización de Ventas ?" + Environment.NewLine + Environment.NewLine + "Abierta : Deja la Totalización abierta para ediciónes de datos." + Environment.NewLine + Environment.NewLine + "Cerrada : Cierra la Totalización y solo se permitiran ajustes.", "Guardar Totalización de Ventas", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1))
                {
                case DialogResult.Yes:
                    lnStatus_auxiliar = 1;
                    break;

                case DialogResult.No:
                    if (ln_total_ventas_ini == 0 & ln_total_ventas == 0)
                    {
                        lnStatus_auxiliar = 5;
                    }
                    else
                    {
                        lnStatus_auxiliar = 2;
                    }
                    break;

                default:
                    lnStatus_auxiliar = 0;
                    break;
                }
                Fundraising_PT.Clases.MsgBoxUtil.UnHackMessageBox();
            }
            else
            {
                if ((ln_status_totalventa == 2 || ln_status_totalventa == 3 || ln_status_totalventa == 5) | (ln_status_totalventa == 0 || ln_status_totalventa == 1 || ln_status_totalventa == 6) & ll_active_ajust == true)
                {
                    if (ln_total_ventas_ini == 0 & ln_total_ventas == 0)
                    {
                        lnStatus_auxiliar = 5;
                    }
                    else
                    {
                        lnStatus_auxiliar = 3;
                    }
                }
                else
                {
                    lnStatus_auxiliar = 0;
                }
            }
            //
            if (lnStatus_auxiliar != 0 & ln_status_totalventa != 4)
            {
                // GUARDA TOTALES VENTAS POR FORMA DE PAGO //
                if (MessageBox.Show("Esta seguro de GUARDAR los datos con la seleccion correspondiente ?", "Guardar Totales Ventas", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.OK)
                {
                    // se inicia una transaccion para guardar los datos //
                    DevExpress.Xpo.XpoDefault.Session.BeginTransaction();
                    try
                    {
                        // recorre la tabla de totales_formas_pagos y guarda los datos //
                        foreach (DataRow row_totven_fp in totales_formas_pagos.Rows)
                        {
                            Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas totales_ventas_aux1 = null;
                            try
                            {
                                totales_ventas_aux1 = totales_ventas.First <Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas>(exis_tot_fp => exis_tot_fp.forma_pago.oid == (Guid)row_totven_fp["oid"]);
                            }
                            catch
                            {
                                totales_ventas_aux1 = null;
                            }
                            //
                            if ((decimal)row_totven_fp["monto_manual"] > 0)
                            {
                                if (totales_ventas_aux1 == null)
                                {
                                    totales_ventas_aux1             = new Fundraising_PTDM.FUNDRAISING_PT.Totales_Ventas(DevExpress.Xpo.XpoDefault.Session);
                                    totales_ventas_aux1.recaudacion = DevExpress.Xpo.Session.DefaultSession.GetObjectByKey <Fundraising_PTDM.FUNDRAISING_PT.Recaudaciones>(lg_recaudacion);
                                    totales_ventas_aux1.forma_pago  = DevExpress.Xpo.Session.DefaultSession.GetObjectByKey <Fundraising_PTDM.FUNDRAISING_PT.Formas_Pagos>((Guid)row_totven_fp["oid"]);
                                }
                                totales_ventas_aux1.monto_manual = (decimal)row_totven_fp["monto_manual"];
                                totales_ventas_aux1.status       = 1;
                                totales_ventas_aux1.sucursal     = Fundraising_PT.Properties.Settings.Default.sucursal;
                                totales_ventas_aux1.Save();
                            }
                            else
                            {
                                if (totales_ventas_aux1 != null)
                                {
                                    totales_ventas_aux1.Delete();
                                    totales_ventas_aux1.Save();
                                }
                            }
                            //
                        } // final del foreach
                        // cambia estatus de totales ventas en la recaudacion y termina el proceso //
                        Fundraising_PTDM.FUNDRAISING_PT.Recaudaciones recaudacion_aux = DevExpress.Xpo.XpoDefault.Session.GetObjectByKey <Fundraising_PTDM.FUNDRAISING_PT.Recaudaciones>(lg_recaudacion);
                        if (recaudacion_aux.status_tv == 2)
                        {
                            ln_status_totalventa      = 3;
                            lnStatus_auxiliar         = 3;
                            recaudacion_aux.status_tv = 3;
                            recaudacion_aux.Save();
                        }
                        else
                        {
                            if (recaudacion_aux.status_tv == 0 || recaudacion_aux.status_tv == 1 || recaudacion_aux.status_tv == 6)
                            {
                                ln_status_totalventa          = lnStatus_auxiliar;
                                recaudacion_aux.supervisor    = DevExpress.Xpo.Session.DefaultSession.GetObjectByKey <Fundraising_PTDM.FUNDRAISING_PT.Usuarios>(Fundraising_PT.Properties.Settings.Default.U_oid);
                                recaudacion_aux.status_tv     = lnStatus_auxiliar;
                                recaudacion_aux.fecha_hora_tv = ld_fecha_totales;
                                recaudacion_aux.Save();
                            }
                            else
                            {
                                ((Fundraising_PTDM.FUNDRAISING_PT.Recaudaciones)((Fundraising_PT.Formularios.UI_Recaudaciones)Form_padre).this_primary_object_persistent_current).status_tv = ln_status_totalventa_ini;
                                ((Fundraising_PT.Formularios.UI_Recaudaciones)Form_padre).this_primary_object_persistent_current.Save();
                                ln_status_totalventa = ln_status_totalventa_ini;
                            }
                        }
                        //
                        DevExpress.Xpo.XpoDefault.Session.CommitTransaction();
                        MessageBox.Show("Datos Guardados Correctamente...", "Guardar Totales Ventas");
                        //
                        try
                        {
                            totales_ventas.Reload();
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Otro Usuario reviso y modifico datos mientras usted lo tenia en proceso...", "Guardar Totales Ventas");
                        }
                        carga_totales_ventas();
                        //
                        // actualiza el desgloce x puntos bancarios de las formas de pago tipo tarjeta.
                        this.actualiza_detalle_tarjetas_pb(totales_formas_pagos);
                        //
                        ((Fundraising_PT.Formularios.UI_Recaudaciones)Form_padre).seteo_status_totalventa();
                        this.Close();
                        //
                    } // final del 1er. Try
                    catch (Exception oerror)
                    {
                        MessageBox.Show("Ocurrio un ERROR durante el proceso de guardar los datos, se reversara dicho proceso..." + Environment.NewLine + "Error: " + oerror.Message, "Guardar Totales Ventas");
                        DevExpress.Xpo.XpoDefault.Session.RollbackTransaction();
                        //
                        ((Fundraising_PT.Formularios.UI_Recaudaciones)Form_padre).seteo_status_totalventa();
                        this.Close();
                        //
                    }
                } // final del IF MESSAGEBOX
                  // FINAL GUARDA TOTALES VENTAS POR FORMA DE PAGO //
            }     // final del IF estatus_tv != 0 and != 4
        }