Beispiel #1
0
        public override int GuardarProcesoCobranza()
        {
            Conexion conexion = new Conexion();

            try
            {
                conexion.AbrirConexion(true);

                List <ReferenciaConciliadaPedido> listaReferenciaConciliadaPedido = this.ListaReferenciaConciliadaPedido;

                decimal totalSaldo = 0;
                foreach (ReferenciaConciliadaPedido referenciaConciliadaPedido in listaReferenciaConciliadaPedido)
                {
                    totalSaldo = totalSaldo + referenciaConciliadaPedido.Saldo;
                }
                this.Total = totalSaldo;

                //this.Total = listaReferenciaConciliadaPedido.Aggregate(this.Total, (current, referenciaConciliadaPedido) => current = +referenciaConciliadaPedido.Saldo);

                Guardar(conexion);

                foreach (ReferenciaConciliadaPedido referenciaConciliadaPedido in listaReferenciaConciliadaPedido)
                {
                    PedidoCobranza pedidoCobranza = Conciliacion.RunTime.App.PedidoCobranza.CrearObjeto();
                    pedidoCobranza.Pedido         = referenciaConciliadaPedido.Pedido;
                    pedidoCobranza.AnioPed        = referenciaConciliadaPedido.AñoPedido;
                    pedidoCobranza.Celula         = referenciaConciliadaPedido.CelulaPedido;
                    pedidoCobranza.Cobranza       = this.Id;
                    pedidoCobranza.GestionInicial = 1;/*Gestion inicial siempre es 1*/
                    pedidoCobranza.Saldo          = referenciaConciliadaPedido.Saldo;

                    pedidoCobranza.Guardar(conexion);
                }

                conexion.Comando.Transaction.Commit();

                this.ImplementadorMensajes.MostrarMensaje("El Registro se guardo con éxito.");
            }
            catch (Exception ex)
            {
                if (conexion.Comando.Transaction != null)
                {
                    conexion.Comando.Transaction.Rollback();
                }
                throw ex;
            }
            finally
            {
                conexion.CerrarConexion();
            }

            return(this.Id);
        }
    public void CargarGrid()
    {
        if (Clientes != null && Clientes.Count > 0)
        {
            //seleccion de cliente: se selecciona el padre, si no hay padre se selecciona el hijo con el numero de cliente mas pequeno

            //remover duplidos
            Clientes = Clientes.Distinct().ToList();

            dt.Clear();
            dt.Columns.Clear();
            dt.Columns.Add("Cliente");
            dt.Columns.Add("Nombre");
            dt.Columns.Add("Tipo");

            dt.Columns["Cliente"].DataType = Type.GetType("System.Int32");

            DataRow row;
            foreach (int cli in Clientes)
            {
                //validar y cargar datos
                Cliente objCliente = objApp.Cliente.CrearObjeto();
                Conciliacion.RunTime.DatosSQL.Conexion conexion = new Conciliacion.RunTime.DatosSQL.Conexion();
                conexion.AbrirConexion(true);
                objCliente.Referencia = cli.ToString();
                if (objCliente.ValidaClienteExiste(conexion))
                {
                    //asignar nombre y tipo
                    row            = dt.NewRow();
                    row["Cliente"] = cli;
                    row["Nombre"]  = objCliente.Nombre;
                    row["Tipo"]    = objCliente.Tipo;
                    dt.Rows.Add(row);
                }
            }

            if (dt.Rows.Count == 0)
            {
                throw new System.Exception("No existe cliente al cual asignar el pago.");
            }
            else
            {
                //El gridview deberá mostrar los registros ordenados por número de Cliente de forma ascendente
                dt.DefaultView.Sort = "Cliente";

                grvClientes.DataSource = dt;
                grvClientes.DataBind();

                //-Cuando el control sea mostrado el cliente padre(si lo hay) se elige por defecto
                //-Si no hay cliente padre se elige por defecto la sucursal con el número de Cliente más pequeño
                indiceGridSeleccionado = -1;
                int indexfila = 0;
                foreach (GridViewRow fila in grvClientes.Rows)
                {
                    if (fila.Cells[3].Text == "PADRE")
                    {
                        indiceGridSeleccionado = indexfila;
                        break;
                    }
                    indexfila = indexfila + 1;
                }
                if (indiceGridSeleccionado == -1)  //Si no hay cliente padre
                {
                    indexfila = 0;
                    int idmenor = 999999999;
                    foreach (GridViewRow fila in grvClientes.Rows)
                    {
                        if (fila.Cells[3].Text == "SUCURSAL")
                        {
                            if (int.Parse(fila.Cells[1].Text) < idmenor)
                            {
                                idmenor = int.Parse(fila.Cells[1].Text);
                                indiceGridSeleccionado = indexfila;
                            }
                        }
                        indexfila = indexfila + 1;
                    }
                }

                if (indiceGridSeleccionado == -1)
                {
                    indiceGridSeleccionado = 0;
                }
                quitarSeleccionRadio();
                pintarFilaSeleccionada(indiceGridSeleccionado);
                GridViewRowCollection filas = grvClientes.Rows;
                indexfila = 0;
                foreach (GridViewRow f in filas)
                {
                    if (indiceGridSeleccionado == indexfila)
                    {
                        hdfClienteSeleccionado.Value = f.Cells[1].Text;
                        break;
                    }
                    indexfila = indexfila + 1;
                }
                ActivarSeleccionRadio(indiceGridSeleccionado);
            }
        }
    }