示例#1
0
        public void InsertaCobrosSIIL()
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;
                List <DataGridViewRow> loLista       = new List <DataGridViewRow>();
                Movimientos            loMovimientos = new Movimientos();
                DataTable loTablaCorrectos           = (DataTable)gvMovimientosCorrectos.DataSource;

                decimal lnImporte = 0;
                foreach (DataGridViewRow loFila in gvMovimientosCorrectos.Rows)
                {
                    DataGridViewCheckBoxCell cbVerdadero = loFila.Cells[0] as DataGridViewCheckBoxCell;
                    if (Convert.ToBoolean(cbVerdadero.Value))
                    {
                        loLista.Add(loFila);
                        if (loMovimientos.InsertarCobroSIIL(
                                ((InicioSesion)this.MdiParent.Owner).Sesion, loFila.Cells["Fecha"].Value.ToString(), Convert.ToDecimal(loFila.Cells["Importe"].Value.ToString().Replace(",", ""))
                                , "SANTANDER", int.Parse(loFila.Cells["Forma_pago"].Value.ToString()), loFila.Cells["Cliente"].Value.ToString(), int.Parse(loFila.Cells["Suc"].Value.ToString())))
                        {
                        }
                    }
                    pbMovimientos.PerformStep();
                }

                if (loLista.Count == 0)
                {
                    MessageBox.Show("¡Debe seleccionar un cobro!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (loLista.Count < 1)
                {
                    MessageBox.Show("¡Seleccione archivo a procesar!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                foreach (DataRow loFila in loTablaCorrectos.Rows)
                {
                    loFila["Status"] = "N";
                }

                foreach (DataGridViewRow loFilaLista in loLista)
                {
                    loFilaLista.Cells["Status"].Value = "C";
                    lnImporte += Convert.ToDecimal(loFilaLista.Cells["Importe"].Value.ToString().Replace(",", ""));
                }

                if (gvMovimientosErrores.DataSource != null)
                {
                    DataTable loTablaErroresListaLlena = (DataTable)gvMovimientosErrores.DataSource;
                    foreach (DataRow loFila in loTablaErroresListaLlena.Rows)
                    {
                        loTablaCorrectos.ImportRow(loFila);
                    }
                }

                if (loMovimientos.InsertaCobroSantanderTablaDAP(
                        ((InicioSesion)this.MdiParent.Owner).Sesion, loTablaCorrectos, psArchivo, 8)     // 8 - indica cuenta bancaria "Santander Cheque en SIIL"
                    )
                {
                }

                if (gvExistentes.DataSource != null)
                {
                    DataTable loTablaExisten = (DataTable)gvExistentes.DataSource;
                    foreach (DataRow loFila in loTablaExisten.Rows)
                    {
                        loTablaCorrectos.ImportRow(loFila);
                    }
                }

                gvMovimientosCorrectos.DataSource = ObtenerSucursal(ValidaCobro(loTablaCorrectos));

                if (lblProcesados.Text == "0")
                {
                    int piProcesados = int.Parse(loLista.Count.ToString());
                    lblProcesados.Text     = piProcesados.ToString();
                    lblImporteCargado.Text = lnImporte.ToString("C");
                    MessageBox.Show("Información procesada satisfactoriamente!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                decimal lnSubtotalImporteCargado = Convert.ToDecimal(lblImporteCargado.Text.Replace("$", ""));
                decimal lnTotalImporteCargado    = lnImporte + lnSubtotalImporteCargado;
                lblImporteCargado.Text = lnTotalImporteCargado.ToString("C");

                int piSubTotalProcesados = int.Parse(lblProcesados.Text);
                int piTotal = piSubTotalProcesados + loLista.Count;
                lblProcesados.Text = piTotal.ToString();

                loLista.Clear();
                MessageBox.Show("Información procesada satisfactoriamente!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\nFuente: " + ex.Source, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }