示例#1
0
 public PRO022Presenter(IUnityContainer x_container, IPRO022LView x_lview, TipoInicio x_opcion = TipoInicio.Normal)
 {
     try
     {
         ContainerService = x_container;
         Session          = ContainerService.Resolve <ISessionService>();
         TInicio          = x_opcion;
         LView            = x_lview;
     }
     catch (Exception ex)
     { Dialogos.MostrarMensajeError(Title, Mensajes.ConstructorPresenter, ex); }
 }
        public void LoadView(TipoInicio x_opcion)
        {
            try
            {
                txaENTC_Codigo.LoadControl(Presenter.ContainerService, Delfin.Controls.TiposEntidad.TIPE_Cliente, null, null, true);
                cmbTIPO_CodMND.LoadControl(Presenter.ContainerService, "Ayuda Moneda", "MND", "< Sel.  Moneda>", ListSortDirection.Ascending);
                cmbTIPE_Codigo.LoadControl(Presenter.ContainerService, "Tipo de Entidad", "< Sel. Tipo de Entidad >", ListSortDirection.Ascending);
                //cmbTIPO_CodDES.LoadControl(Presenter.ContainerService, "Tipo de Descuadre/Tipificación", "DES", "< Sel. Tipificación >", ListSortDirection.Ascending);
                cmbTIPD_Tipo.LoadControl("Tipo de Tipificación", Delfin.Controls.Tipos.ComboBoxConstantes.OConstantes.TipoMovimientoDB, "< Sel. Tipo >", ListSortDirection.Ascending);

                cmbCENT_Ano.ValueMember   = "CENT_Ano";
                cmbCENT_Ano.DisplayMember = "CENT_Ano";
                cmbCENT_Ano.DataSource    = Presenter.DSPeriodos.Tables[0];

                txnTIPD_TipoCambio.Value = Presenter.TipoCambio;

                switch (Presenter.TMovimiento)
                {
                case TipoMovimientoCtaCte.Ingresos:
                    cmbTIPO_CodDES.LoadControl(Presenter.ListTipoDES.Where(TDES => TDES.TIPO_Desc3 == "I" || String.IsNullOrEmpty(TDES.TIPO_Desc3)).ToObservableCollection(), "Tipo Descuadre", "< Sel. Tipificación >", ListSortDirection.Ascending);
                    break;

                case TipoMovimientoCtaCte.Egresos:
                    cmbTIPO_CodDES.LoadControl(Presenter.ListTipoDES.Where(TDES => TDES.TIPO_Desc3 == "E" || String.IsNullOrEmpty(TDES.TIPO_Desc3)).ToObservableCollection(), "Tipo Descuadre", "< Sel. Tipificación >", ListSortDirection.Ascending);
                    break;

                default:
                    break;
                }

                switch (TInicio)
                {
                case TipoInicio.Nuevo:

                    break;

                case TipoInicio.Editar:
                    break;

                default:
                    break;
                }
                SetItem();
            }
            catch (Exception ex)
            { Infrastructure.WinForms.Controls.Dialogos.MostrarMensajeError(Presenter.Title, "Ha ocurrido un error en el LoadView.", ex); }
        }
        private static string GetCadenaFiltroContador(TipoInicio tipo, DateTime?fecha)
        {
            var result = string.Empty;

            if (tipo != TipoInicio.Sinreinicio && fecha.HasValue)
            {
                var sb = new StringBuilder();

                sb.AppendFormat(" AND YEAR(fechadocumento) = year(@fecha) ");

                if (tipo == TipoInicio.Mensual)
                {
                    sb.AppendFormat(" AND MONTH(fechadocumento) = MONTH(@fecha) ");
                }

                result = sb.ToString();
            }

            return(result);
        }
        public static string GetNextIdContableMovimientosTesoreria <T>(MarfilEntities db, string empresa, string serie, TipoInicio tipoinicio = TipoInicio.Sinreinicio, DateTime?fecha = null) where T : class
        {
            string max;
            var    columna       = "identificadorsegmentoremesa";
            string whereReinicio = string.Empty;

            if (tipoinicio != TipoInicio.Sinreinicio && fecha.HasValue)
            {
                whereReinicio = " AND YEAR(fecha) = year(@fecha) ";

                if (tipoinicio == TipoInicio.Mensual)
                {
                    whereReinicio = " AND MONTH(fecha) = MONTH(@fecha) ";
                }
            }

            var query      = string.Format("select max({2}) from {0} where fkseriescontablesremesa=@fkseries and empresa=@empresa {1}", typeof(T).Name, whereReinicio, columna);
            var parametros = new SqlParameter[]
            {
                new SqlParameter()
                {
                    Value = serie, ParameterName = "@fkseries"
                },
                new SqlParameter()
                {
                    Value = empresa, ParameterName = "@empresa"
                }
            };

            if (tipoinicio != TipoInicio.Sinreinicio && fecha.HasValue)
            {
                parametros = new SqlParameter[]
                {
                    new SqlParameter()
                    {
                        Value = serie, ParameterName = "@fkseries"
                    },
                    new SqlParameter()
                    {
                        Value = empresa, ParameterName = "@empresa"
                    },
                    new SqlParameter()
                    {
                        Value = fecha, ParameterName = "@fecha"
                    }
                };
            }
            max = db.Database.SqlQuery <string>(query, parametros).SingleOrDefault();


            //using (var con = new SqlConnection(db.Database.Connection.ConnectionString))
            //{


            //using (var cmd = new SqlCommand(string.Format("select max({2}) from {0} where fkseriescontables=@fkseries and empresa=@empresa {1}", typeof(T).Name, GetCadenaFiltroContador(tipoinicio, fecha), columna), (SqlConnection)db.Database.Connection))
            //{
            //    cmd.Parameters.Add(new SqlParameter() { Value = serie, ParameterName = "@fkseries" });
            //    cmd.Parameters.Add(new SqlParameter() { Value = empresa, ParameterName = "@empresa" });
            //    if (tipoinicio != TipoInicio.Sinreinicio && fecha.HasValue)
            //        cmd.Parameters.Add(new SqlParameter() { Value = fecha, ParameterName = "@fecha" });

            //    if (cmd.Connection.State == ConnectionState.Closed)
            //    {
            //        cmd.Connection.Open();
            //    }
            //    max = Funciones.Qnull(cmd.ExecuteScalar());
            //    //using (var ad = new SqlDataAdapter(cmd))
            //    //{
            //    //    var table = new DataTable();
            //    //    ad.Fill(table);
            //    //    max = Funciones.Qnull(table.Rows[0][0]);
            //    //}
            //}
            //}
            var last        = Funciones.Qint(max);
            var result      = last.HasValue ? (last + 1).ToString() : string.Empty;
            var contador    = db.SeriesContables.Single(f => f.empresa == empresa && f.id == serie).fkcontadores;
            var contadorObj = db.Contadores.Include("ContadoresLin").Single(f => f.empresa == empresa && f.id == contador);

            if (string.IsNullOrEmpty(max))
            {
                result = contadorObj.primerdocumento?.ToString() ?? string.Empty;
            }

            if (string.IsNullOrEmpty(result))
            {
                throw new Exception("No se puede generar el siguiente numero");
            }

            var longitudcodigo = contadorObj.ContadoresLin.Single(f => f.tiposegmento == (int)TiposSegmentos.Secuencia).longitud ?? 0;

            return(Funciones.RellenaCod(result, longitudcodigo));
        }