Beispiel #1
0
        /// <summary>
        /// Devuelve los datos para el reporte de produccion por membresia
        /// </summary>
        /// <param name="dtmStart">Fecha desde</param>
        /// <param name="dtmEnd">Fecha hasta</param>
        /// <param name="leadSources">Claves de Lead Sources</param>
        /// <param name="pRs">Claves de PRs</param>
        /// <param name="program">Clave de programa</param>
        /// <param name="aplication">Clave de membresia</param>
        /// <param name="company">Clave de compania</param>
        /// <param name="club">Clave de club</param>
        /// <param name="onlyWholesalers">Indica si se desean solo mayoristas</param>
        /// <param name="considerQuinellas">Indica si se debe considerar quinielas</param>
        /// <param name="basedOnArrival">Indica si se debe basar en la fecha de llegada</param>
        /// <returns><list type="RptProductionByMember"></list></returns>
        /// <history>
        /// [aalcocer] 03/05/2016 Created
        /// [aalcocer] 24/05/2016 Modified. Se agregó asincronía
        /// </history>
        public static async Task <List <RptProductionByMember> > GetRptProductionByMembers(DateTime dtmStart, DateTime dtmEnd, IEnumerable <string> leadSources,
                                                                                           IEnumerable <string> pRs            = null, EnumProgram program = EnumProgram.All, string aplication = "", int company = 0, Club club = null,
                                                                                           EnumOnlyWholesalers onlyWholesalers = EnumOnlyWholesalers.NoOnlyWholesalers, EnumQuinellas considerQuinellas = EnumQuinellas.NoQuinellas,
                                                                                           EnumBasedOnArrival basedOnArrival   = EnumBasedOnArrival.NoBasedOnArrival)
        {
            var result = new List <RptProductionByMember>();

            if (pRs == null || !pRs.Any())
            {
                pRs = new[] { "ALL" }
            }
            ;

            await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    dbContext.Database.CommandTimeout = Settings.Default.USP_OR_RptProductionByMember_Timeout;
                    result = dbContext.USP_OR_RptProductionByMember(dtmStart, dtmEnd, string.Join(",", leadSources), string.Join(",", pRs),
                                                                    EnumToListHelper.GetEnumDescription(program), string.IsNullOrWhiteSpace(aplication) ? "ALL" : aplication,
                                                                    company, club?.clID, Convert.ToBoolean(onlyWholesalers), Convert.ToBoolean(considerQuinellas),
                                                                    Convert.ToBoolean(basedOnArrival)).ToList();
                }
            });

            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Obtiene todos los place y los mantiene en memoria para utilizarlos posteriormente
        /// </summary>
        /// <returns>lista dynamica</returns>
        /// <history>
        /// [erosado] 29/04/2016  Created
        /// </history>
        public async Task <int> getAllPlaces()
        {
            places = new List <Item>();
            switch (_loginType)
            {
            case EnumLoginType.SalesRoom:
                var sr = await BRSalesRooms.GetSalesRoomsByUser();

                sr.ForEach(s => places.Add(new Item()
                {
                    Id = s.srID, Name = s.srN, UserId = s.plpe
                }));
                break;

            case EnumLoginType.Warehouse:
                var wh = await BRWarehouses.GetWarehousesByUser();

                wh.ForEach(w => places.Add(new Item()
                {
                    Id = w.whID, Name = w.whN, UserId = w.plpe
                }));
                break;

            case EnumLoginType.Location:
                var lo = await BRLocations.GetLocationsByUser(programs : EnumToListHelper.GetEnumDescription(_program));

                lo.ForEach(l => places.Add(new Item()
                {
                    Id = l.loID, Name = l.loN, UserId = l.plpe
                }));
                break;
            }
            return(1);
        }
Beispiel #3
0
 /// <summary>
 /// Abre cada módulo al oprimir dos veces el botón correspodiente
 /// </summary>
 /// <history>
 /// [lchairez] 05/Feb/2016 Created
 /// </history>
 private void lsbLauncher_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     if (lsbLauncher.SelectedItem != null)
     {
         Item item = (Item)lsbLauncher.SelectedItem;
         CallingExe(EnumToListHelper.StringToEnum <EnumMenu>(item.Id));
     }
 }
Beispiel #4
0
 /// <summary>
 /// Abre cada módulo a oprimir Enter en el botón correspodiente
 /// </summary>
 /// <history>
 /// [lchairez] 05/Feb/2016 Created
 /// </history>
 private void lsbLauncher_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Enter && lsbLauncher.SelectedItem != null)
     {
         Item item = (Item)lsbLauncher.SelectedItem;
         CallingExe(EnumToListHelper.StringToEnum <EnumMenu>(item.Id));
     }
 }
Beispiel #5
0
 /// <summary>
 /// Carga los combobox.
 /// </summary>
 /// <history>
 /// [edgrodriguez] 21/May/2016 Created
 /// </history>
 private void LoadCombos()
 {
     cboStatus.ItemsSource            = EnumToListHelper.GetList <EnumStatus>();
     cboSaveCourtesyTours.ItemsSource = EnumToListHelper.GetList <EnumSaveCourtesyTours>();
     cboExternal.ItemsSource          = EnumToListHelper.GetList <EnumExternalInvitation>();
     cboGiftsReceiptType.ItemsSource  = EnumToListHelper.GetList <EnumGiftsReceiptType>();
     cboGiftSale.ItemsSource          = EnumToListHelper.GetList <EnumGiftSale>();
 }
Beispiel #6
0
 /// <summary>
 /// Obtiene el listado de dias libres del personal
 /// </summary>
 /// <param name="placeID">ID del lugar de trabajo</param>
 /// <param name="teamType"></param>
 /// <returns></returns>
 /// <history>[ECANUL] 09-08-2016 Created</history>
 public static List <PersonnelDayOff> GetPersonnelDaysOff(string placeID, EnumTeamType teamType)
 {
     using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
     {
         string _teamType = EnumToListHelper.GetEnumDescription(teamType);
         return(dbContext.USP_OR_GetPersonnelDaysOff(_teamType, placeID).ToList());
     }
 }
Beispiel #7
0
 /// <summary>
 /// Obtiene la lista de empleados En un periodo de fechas establecido y que NO ha sido registrado en la base de datos
 /// NO REGISTRA SOLO HACE UNA CONSULTA
 /// </summary>
 /// <param name="palaceType">LS, SR o WH</param>
 /// <param name="PalaceID"> String con el ID del Sitio </param>
 /// <param name="dateStart">Fecha inicio de la lista de asistencia</param>
 /// <param name="DateEnd">Fecha fin de la lista de asistencia</param>
 /// <returns>Lista de asistencia enrtre las fechas seleccionadas</returns>
 /// <history>[ECANUL] 19-03-2016 CREATED</history>
 public static List <PersonnelAssistance> GetPersonnelAssistance(EnumPlaceType palaceType, string PalaceID, DateTime dateStart, DateTime DateEnd)
 {
     using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
     {
         string strPalaceType = EnumToListHelper.GetEnumDescription(palaceType);
         return(dbContext.USP_OR_GetPersonnelAssistance(strPalaceType, PalaceID, dateStart, DateEnd).ToList());
     }
 }
        /// <summary>
        /// Carga el Program para la invitacion
        /// </summary>
        /// <param name="module">EnumModule</param>
        /// <param name="invitationType">EnumInvitationType</param>
        /// <param name="guId">GuestID</param>
        /// <history>
        /// [erosado] 10/08/2016  Created.
        /// </history>
        private async Task LoadProgram(EnumModule module, EnumInvitationType invitationType, int guId)
        {
            EnumProgram program = EnumProgram.All;

            //Si se tiene el GuestID
            if (guId != 0 && module != EnumModule.Host)
            {
                //Obtenemos la informacion del Guest
                var guest = await BRGuests.GetGuest(guId);

                //Obtenemos la informacion de program
                var result = await BRLeadSources.GetLeadSourceProgram(guest.gulsOriginal);

                //Asignamos el Program
                if (result == EnumToListHelper.GetEnumDescription(EnumProgram.Inhouse))
                {
                    program = EnumProgram.Inhouse;
                }
                else
                {
                    program = EnumProgram.Outhouse;
                }
            }
            //Si NO hay un Guest para obtener el program
            else
            {
                //De que modulo me estan hablando
                switch (module)
                {
                case EnumModule.InHouse:
                    if (invitationType == EnumInvitationType.newExternal)
                    {
                        program = EnumProgram.Inhouse;
                    }
                    break;

                case EnumModule.OutHouse:
                    if (invitationType == EnumInvitationType.newOutHouse)
                    {
                        program = EnumProgram.Outhouse;
                    }
                    break;

                case EnumModule.Host:
                    if (invitationType == EnumInvitationType.newOutHouse)
                    {
                        program = EnumProgram.Outhouse;
                    }
                    else
                    {
                        program = EnumProgram.Inhouse;
                    }
                    break;
                }
            }
            Program         = program;
            AllowReschedule = program == EnumProgram.Inhouse;
        }
Beispiel #9
0
 /// <summary>
 /// Agrega un elemento EnumMenu a la lista actual
 /// </summary>
 /// <param name="item">Enumerado del elemento</param>
 /// <history>
 /// [wtorres]  16/Jul/2016 Created
 /// </history>
 public void Add(EnumMenu item)
 {
     Add(new Item()
     {
         Id       = item.ToString(),
         Name     = EnumToListHelper.GetEnumDescription(item),
         ImageUrl = $"pack://application:,,,/IM.Styles;component/Images/{item.ToString()}.png"
     });
 }
Beispiel #10
0
        /// <summary>
        /// Carga los Grids del formulario
        /// </summary>
        /// <history>
        /// [ecanul] 22/04/2016 Created
        /// </history>
        private void LoadGrids()
        {
            //Reportes por Sales Room
            dtgSalesRoom.ItemsSource = EnumToListHelper.GetList <EnumRptSalesRoom>().OrderBy(x => x.Value);

            //Reportes por Sales Room y Salesman
            dtgSalesman.ItemsSource = EnumToListHelper.GetList <EnumRptSalesRoomAndSalesman>().OrderBy(x => x.Value);

            statusBarReg.Content = $"{dtgSalesRoom.Items.Count + dtgSalesman.Items.Count} Reports";
        }
Beispiel #11
0
        /// <summary>
        /// Carga los combobox.
        /// </summary>
        /// <param name="blnClub"></param>
        /// <history>
        /// [aalcocer] 24/May/2016 Created
        /// </history>
        private async void LoadCombos(bool blnClub)
        {
            cboSaveCourtesyTours.ItemsSource = EnumToListHelper.GetList <EnumSaveCourtesyTours>();
            cboExternal.ItemsSource          = EnumToListHelper.GetList <EnumExternalInvitation>();

            if (blnClub)
            {
                cboClub.ItemsSource = await BRClubs.GetClubs(nStatus : 1);
            }

            LoadUserFilters();
        }
Beispiel #12
0
        /// <summary>
        /// Obtiene los Lead Sources de un usuario
        /// </summary>
        /// <param name="user">Usuario </param>
        /// <param name="programs"> Programa o default('ALL') </param>
        /// <param name="regions">Region o default('ALL') </param>
        /// <returns>List<LeadSourceByUser></returns>
        /// <hystory>
        /// [erosado] 08/03/2016  created
        /// [aalcocer] 17/03/2016 Modified. Agregado parametros por default
        /// [erosado] 07/04/2016  Modified. Se cambio el parametro string Progam a EnumPrograms
        /// [edgrodriguez] 21/May/2016 Modified. El método se volvio asincrónico.
        /// </hystory>

        public async static Task <List <LeadSourceByUser> > GetLeadSourcesByUser(string user, EnumProgram program = EnumProgram.All, string regions = "ALL")
        {
            List <LeadSourceByUser> result = new List <LeadSourceByUser>();
            await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    result = dbContext.USP_OR_GetLeadSourcesByUser(user, EnumToListHelper.GetEnumDescription(program), regions).ToList();
                }
            });

            return(result);
        }
Beispiel #13
0
        /// <summary>
        /// obtiene registros del catalogo PersLSSR
        /// </summary>
        /// <param name="idUser">id del Usuario</param>
        /// <param name="typeAcces">SR. Sales Room | LS. Lead Source | WH. Wharehouse</param>
        /// <returns></returns>
        public static async Task <List <PersonnelAccess> > getPersonnelAcces(string idUser, EnumPlaceType enumPlaceType)
        {
            List <PersonnelAccess> lstPersonnelAcces = await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    string placeType = EnumToListHelper.GetEnumDescription(enumPlaceType);
                    return(dbContext.PersonnelAccessList.Where(pl => pl.plpe == idUser && pl.plLSSR == placeType).ToList());
                }
            });

            return(lstPersonnelAcces);
        }
        /// <summary>
        /// Configura los controles de fecha
        /// </summary>
        /// <param name="multiDate">Si requiere o no de fechas</param>
        /// <param name="period">Periodo en el que se va a filtrar las fechas</param>
        /// <history>
        /// [ecanul] 26/04/2016 Created
        /// </history>
        private void ConfigureDates(bool multiDate, EnumPeriod period = EnumPeriod.None)
        {
            if (!multiDate) //si no es solo una fecha
            {
                Dictionary <EnumPredefinedDate, string> dictionaryPredefinedDate = EnumToListHelper.GetList <EnumPredefinedDate>();

                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.DatesSpecified));

                switch (period)
                {
                //Sin periodo
                case EnumPeriod.None:

                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Today));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Yesterday));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisHalf));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousHalf));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisYear));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousYear));
                    break;

                //Semanal
                case EnumPeriod.Weekly:
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoWeeksAgo));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeWeeksAgo));
                    //Title += $" ({EnumToListHelper.GetEnumDescription(enumPeriod)})";
                    break;

                //Mensual
                case EnumPeriod.Monthly:
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoMonthsAgo));
                    cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeMonthsAgo));
                    //Title += $" ({EnumToListHelper.GetEnumDescription(enumPeriod)})";
                    break;
                }
                cmbDate.SelectedIndex = 0;
            }
            else // el formulario no necesita de filtro de fechas
            {
                grdDates.Visibility = Visibility.Collapsed;
                bdrDates.Visibility = Visibility.Collapsed;
            }
        }
Beispiel #15
0
        /// <summary>
        /// Obtiene catalogo de Lead Sources .
        /// </summary>
        /// <param name="status"> 0- Sin filtro, 1-Activos, 2. Inactivos </param>
        /// <returns>List<LeadSource></returns>
        /// <history>
        /// [aalcocer] 09/03/2016 Created
        /// [jorcanche] 02/05/2016 Agrego el parametro EnumProgram para que se puede saleccionar
        /// [aalcocer] 09/06/2016 Modified.  Se agregó asincronía.
        /// </history>
        public static async Task <List <LeadSource> > GetLeadSources(int status = 0, EnumProgram program = EnumProgram.All)
        {
            var leadSources = new List <LeadSource>();
            var pro         = EnumToListHelper.GetEnumDescription(program);
            await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    leadSources = dbContext.LeadSources
                                  .Where(ls => status.Equals(1) ? ls.lsA : status.Equals(2) ? !ls.lsA : true)
                                  .Where(ls => program != EnumProgram.All ? ls.lspg == pro : true)
                                  .OrderBy(ls => ls.lsN).ToList();
                }
            });

            return(leadSources);
        }
Beispiel #16
0
        /// <summary>
        /// Configura los controles de fecha.
        /// </summary>
        /// <history>
        /// [edgrodriguez] 05/Mar/2016 Created
        /// </history>
        private void ConfigureDates(bool blnOneDate, EnumPeriod enumPeriod, bool blnDateRange)
        {
            Dictionary <EnumPredefinedDate, string> dictionaryPredefinedDate = EnumToListHelper.GetList <EnumPredefinedDate>();

            cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.DatesSpecified));
            _enumPeriod = enumPeriod;//Asignamos el enumPeriod a la variable privada del formulario.
            switch (enumPeriod)
            {
            //Sin periodo
            case EnumPeriod.None:

                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Today));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Yesterday));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisHalf));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousHalf));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisYear));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousYear));
                break;

            //Semanal
            case EnumPeriod.Weekly:
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoWeeksAgo));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeWeeksAgo));
                Title += $" ({EnumToListHelper.GetEnumDescription(enumPeriod)})";
                break;

            //Mensual
            case EnumPeriod.Monthly:
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoMonthsAgo));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeMonthsAgo));
                Title += $" ({EnumToListHelper.GetEnumDescription(enumPeriod)})";
                break;
            }
            cboDate.SelectedIndex = 0;
            //Si es un rango de fechas.
            cboDate.IsEnabled   = pnlDtmEnd.IsEnabled = !blnOneDate;
            grpDates.Visibility = (blnDateRange) ? Visibility.Visible : Visibility.Collapsed;
        }
Beispiel #17
0
        /// <summary>
        /// Configura los controles de fecha.
        /// </summary>
        /// <history>
        /// [aalcocer] 16/Mar/2016 Created
        /// [aalcocer
        /// </history>
        private void ConfigureDates(bool blnOneDate, EnumPeriod enumPeriod)
        {
            Dictionary <EnumPredefinedDate, string> dictionaryPredefinedDate = EnumToListHelper.GetList <EnumPredefinedDate>();

            cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.DatesSpecified));

            switch (enumPeriod)
            {
            //Sin periodo
            case EnumPeriod.None:

                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Today));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Yesterday));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisHalf));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousHalf));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisYear));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousYear));
                break;

            //Semanal
            case EnumPeriod.Weekly:
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoWeeksAgo));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeWeeksAgo));
                Title += $" ({EnumToListHelper.GetEnumDescription(enumPeriod)})";
                break;

            //Mensual
            case EnumPeriod.Monthly:
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoMonthsAgo));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeMonthsAgo));
                Title += $" ({EnumToListHelper.GetEnumDescription(enumPeriod)})";
                break;
            }
            cboDate.SelectedIndex = 0;
            //Si es un rango de fechas.
            cboDate.IsEnabled = pnlDtmEnd.IsEnabled = !blnOneDate;
        }
Beispiel #18
0
        /// <summary>
        ///   Carga los Combos
        /// </summary>
        /// <history>
        ///   [vku] 25/May/2016 Created
        ///   [emoguel] se volvió async
        /// </history>
        private async void LoadCombos()
        {
            try
            {
                _lstFoliosInvitationOuthouse = await BRFoliosInvitationsOuthouse.GetFoliosInvittionsOutside(nStatus : 1);

                _lstFoliosInvitationOuthouse.Insert(0, new FolioInvitationOuthouse {
                    fiID = 0, fiSerie = "ALL", fiFrom = 0, fiTo = 0, fiA = Convert.ToBoolean(1)
                });
                cboFolSeries.ItemsSource         = _lstFoliosInvitationOuthouse.Select(c => c.fiSerie).Distinct();
                cboSaveCourtesyTours.ItemsSource = EnumToListHelper.GetList <EnumSaveCourtesyTours>();
                cboExternal.ItemsSource          = EnumToListHelper.GetList <EnumExternalInvitation>();
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
Beispiel #19
0
        /// <summary>
        /// Carga el combobox de Predefined Date dependiendo el tipo de periodo
        /// </summary>
        /// <param name="cmbDate">Combobox a llenar</param>
        /// <param name="enumPeriod">Tipo de periodo</param>
        /// <param name="selectedCmb">index a seleccionar en el combo</param>
        /// <history>
        /// [emoguel] created 11/05/2016
        /// </history>
        public static void ConfigureDates(ComboBox cmbDate, EnumPeriod enumPeriod, int selectedCmb = 0)
        {
            Dictionary <EnumPredefinedDate, string> dictionaryPredefinedDate = EnumToListHelper.GetList <EnumPredefinedDate>();

            cmbDate.Items.Clear();
            cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.DatesSpecified));

            switch (enumPeriod)
            {
            //Sin periodo
            case EnumPeriod.None:

                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Today));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Yesterday));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisHalf));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousHalf));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisYear));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousYear));
                break;

            //Semanal
            case EnumPeriod.Weekly:
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoWeeksAgo));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeWeeksAgo));
                break;

            //Mensual
            case EnumPeriod.Monthly:
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoMonthsAgo));
                cmbDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeMonthsAgo));
                break;
            }
            cmbDate.SelectedIndex = selectedCmb;
        }
Beispiel #20
0
        /// <summary>
        /// Llena una lista con las fechas predefinidas para cada periodo
        /// </summary>
        /// /// <param name="cboDate">Combobox a llenar</param>
        /// <param name="period">EnumPeriod para el llenado de fechas</param>
        /// <history>
        /// [ecanul] 26/04/2016 Created
        /// </history>
        public static void PopulateDates(ComboBox cboDate, EnumPeriod period = EnumPeriod.None)
        {
            Dictionary <EnumPredefinedDate, string> dictionaryPredefinedDate = EnumToListHelper.GetList <EnumPredefinedDate>();

            cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.DatesSpecified));

            switch (period)
            {
            //Sin periodo
            case EnumPeriod.None:

                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Today));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.Yesterday));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisHalf));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousHalf));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisYear));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousYear));
                break;

            //Semanal
            case EnumPeriod.Weekly:
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousWeek));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoWeeksAgo));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeWeeksAgo));
                break;

            //Mensual
            case EnumPeriod.Monthly:
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThisMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.PreviousMonth));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.TwoMonthsAgo));
                cboDate.Items.Add(dictionaryPredefinedDate.Single(c => c.Key == EnumPredefinedDate.ThreeMonthsAgo));
                break;
            }
            cboDate.SelectedIndex = 0;
            // return cboDate;
        }
Beispiel #21
0
        /// <summary>
        /// Load Invitation Info es el mensaje que sale a lado del menu bar en la invitacion
        /// </summary>
        /// <history>
        /// [erosado] 17/08/2016  Created.
        /// </history>
        public void LoadInvitationInfo()
        {
            string invitType = string.Empty;

            switch (_invitationType)
            {
            case EnumInvitationType.existing:
                invitType = "Existing Guest";
                break;

            case EnumInvitationType.newOutHouse:
                invitType = "New OutHouse";
                break;

            case EnumInvitationType.newExternal:
                invitType = "New External";
                break;
            }
            InvitationInfo = $"Mode: {EnumToListHelper.GetEnumDescription(InvitationMode)} | Module: {_module} | Invitation Type: {invitType}";
        }
Beispiel #22
0
        /// <summary>
        ///  Carga y configuracion del grid PRs
        /// </summary>
        /// <param name="blnOnlyOneRegister"></param>
        /// <param name="blnPRs"></param>
        /// <param name="blnAllPRs"></param>
        /// <history>
        ///   [vku] 25/May/2016 Created
        /// </history>
        private async void LoadPRs(bool blnOnlyOneRegister, bool blnPRs, bool blnAllPRs)
        {
            if (!blnPRs)
            {
                return;
            }

            grdPR.SelectionMode = (blnOnlyOneRegister) ? DataGridSelectionMode.Single : DataGridSelectionMode.Extended;
            pnlPR.Visibility    = Visibility.Visible;
            var x = (await BRLeadSources.GetLeadSourcesByUser(Context.User.User.peID, EnumProgram.Outhouse)).Select(y => y.lsID).ToList();

            _lstPRs = await BRPersonnel.GetPersonnel(string.Join(",", x), roles : EnumToListHelper.GetEnumDescription(EnumRole.PR), status : 0);

            grdPR.ItemsSource = _lstPRs;

            chkAllPR.IsChecked = blnAllPRs;
            chkAllPR.IsEnabled = !blnOnlyOneRegister;

            if (!frmPO._clsFilter._lstPRs.Any())
            {
                return;
            }

            chkAllPR.IsChecked = (grdPR.SelectionMode == DataGridSelectionMode.Extended) && frmPO._clsFilter.AllPRs;

            if (grdPR.ItemsSource != null && !frmPO._clsFilter.AllPRs && !blnOnlyOneRegister)
            {
                grdPR.SelectedItem = null;
                frmPO._clsFilter._lstPRs.ForEach(c =>
                {
                    grdPR.SelectedItems.Add(_lstPRs.FirstOrDefault(pr => pr.peID == c));
                });
            }
            else
            {
                grdPR.SelectedItem = _lstPRs.FirstOrDefault(c => c.peID == frmPO._clsFilter._lstPRs[0]);
            }
        }
Beispiel #23
0
 /// <summary>
 /// Carga personal en el combobox
 /// </summary>
 /// <history>
 /// [erosado] 18/04/2016  Created
 /// [vipacheco] 02/Mayo/2016 Modified --> Se cambio el parametro de string a un tipo EnumRole
 /// </history>
 public void LoadPersonnel()
 {
     StaStart("Loading Personnel...");
     DoGetPersonnel(Context.User.SalesRoom.srID, EnumToListHelper.GetEnumDescription(EnumRole.Liner));
 }
Beispiel #24
0
        /// <summary>
        ///   Carga los integrantes
        /// </summary>
        /// <history>
        ///   [vku] 12/Jul/2016 Created
        /// </history>
        public async void LoadIntegrantes(TeamGuestServices team)
        {
            try
            {
                List <Personnel> lstPersonnel = await BRPersonnel.GetPersonnels(blnLiner : true);

                List <Personnel> lstPersonnelIni = await BRPersonnel.GetPersonnels(blnLiner : true);

                List <Personnel> lstliner = new List <Personnel>();
                lstliner.AddRange(lstPersonnel);
                cboIntegrant.ItemsSource = lstPersonnel;
                cboLiner.ItemsSource     = lstliner;
                _lstPersonnel            = lstPersonnel.Where(pe => pe.peTeam == team.tgID && pe.peTeamType == EnumToListHelper.GetEnumDescription(EnumTeamType.TeamPRs) && pe.pePlaceID == team.tglo).ToList();
                _lstOldPersonnel         = lstPersonnelIni.Where(pe => pe.peTeam == team.tgID && pe.peTeamType == EnumToListHelper.GetEnumDescription(EnumTeamType.TeamPRs) && pe.pePlaceID == team.tglo).ToList(); //Cargamos la lista con los datos iniciales

                dgrIntegrants.ItemsSource = _lstPersonnel;

                StatusBarReg.Content = _lstPersonnel.Count + " Integrants.";
                status.Visibility    = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
        public FormSalePriceControlRules()
        {
            InitializeComponent();

            this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;

            SalePriceControlRulesModel m = this.PharmacyDatabaseService.GetSalePriceControlRules(out msg);

            if (m.RuleType == 0)
            {
                m = new SalePriceControlRulesModel
                {
                    RuleType    = 0,
                    Description = "在销售开票界面中,控制销售价不得低于采购价。客户端销售开票时,药品选择界面中定义的价格无效,以采购价显示当前药品的销售价,销售价格不得低于采购价格,否则无法开票销售。请注意,销售价格不得低于本公司对该品种定义的最低销售价格。",
                    RuleName    = Models.SalePriceControlEnum.低于采购价.ToString(),
                    SalesOrderPrintRuleValue = m.SalesOrderPrintRuleValue
                };
                this.label2.Text = m.Description;
            }

            var c = EnumToListHelper.ConverEnumToList(typeof(Models.SalePriceControlEnum));

            this.comboBox1.DisplayMember = "Name";
            this.comboBox1.ValueMember   = "Id";
            this.comboBox1.DataSource    = c.OrderBy(r => r.Id).ToList();
            this.comboBox1.SelectedIndex = m.RuleType;
            this.label2.Text             = m.Description;
            if (m.RuleType == (int)Models.SalePriceControlEnum.高于最高定价)
            {
                this.textBox1.Enabled = true;
                this.textBox1.Text    = m.RuleRate.ToString();
            }

            var p = EnumToListHelper.ConverEnumToList(typeof(EnumSalesOrderPrintRule));

            this.comboBox2.DisplayMember = "Name";
            this.comboBox2.ValueMember   = "Id";
            this.comboBox2.DropDownStyle = ComboBoxStyle.DropDownList;
            this.comboBox2.DataSource    = p;
            this.comboBox2.SelectedValue = (int)m.SalesOrderPrintRuleValue;

            #region 控价规则选择
            this.comboBox1.SelectedIndexChanged += (s, e) =>
            {
                var idx = this.comboBox1.SelectedIndex;

                if (idx == 0)
                {
                    this.label2.Text = "在销售开票界面中,控制销售价不得低于采购价。客户端销售开票时,药品选择界面中定义的价格无效,以采购价显示当前药品的销售价,销售价格不得低于采购价格,否则无法开票销售。请注意,销售价格不得低于本公司对该品种定义的最低销售价格。";
                }
                if (idx == 1)
                {
                    this.label2.Text = "在销售开票界面中,以药品选择界面中定义的销售价显示当前价格,可低于采购价销售。请注意,销售价格不得低于本公司对于该品种定义的最低销售价格。";
                }
                if (idx == 2)
                {
                    this.label2.Text = "在销售开票界面,以采购价的N倍比例显示当前药品销售价格,可以在文本框中填写该比例。药品选择界面中定义的销售价格无效。本规则可低于采购价销售,但不能高于最高定价。请注意,销售价格不得低于本公司对于该品种定义的最低销售价格。";
                }
                this.textBox1.Enabled = idx == 2;
            };
            #endregion

            //保存
            #region 保存
            this.toolStripButton1.Click += (s, e) =>
            {
                var re = MessageBox.Show("确定需要保存销售价格控制规则吗?", "提示", MessageBoxButtons.OKCancel);
                if (re == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }
                m.RuleType    = this.comboBox1.SelectedIndex;
                m.RuleName    = ((Models.SalePriceControlEnum)(this.comboBox1.SelectedIndex)).ToString();
                m.Description = this.label2.Text;
                m.SalesOrderPrintRuleValue = (EnumSalesOrderPrintRule)this.comboBox2.SelectedValue;

                decimal rate = 1m;
                if (m.RuleType == (int)Models.SalePriceControlEnum.高于最高定价)
                {
                    if (string.IsNullOrEmpty(this.textBox1.Text.Trim()))
                    {
                        MessageBox.Show("该规则需要您填写比例!");
                        this.textBox1.Focus();
                        return;
                    }

                    if (!decimal.TryParse(this.textBox1.Text.Trim(), out rate))
                    {
                        MessageBox.Show("请输入比例!"); return;
                    }
                    m.RuleRate = rate;
                }


                if (this.PharmacyDatabaseService.SaveSalePriceControlRules(m, out msg))
                {
                    MessageBox.Show("销售价格控制规则保存成功!请注意设定品种价格或者最低价格等信息!");
                    this.PharmacyDatabaseService.WriteLog(BugsBox.Pharmacy.AppClient.Common.AppClientContext.currentUser.Id, "保存销售价格控制规则成功!");
                }
                else
                {
                    MessageBox.Show("信息保存失败,异常信息:\n" + msg);
                }
            };
            #endregion
        }
Beispiel #26
0
        /// <summary>
        ///   Agrega | Actualiza un equipo de PRs
        /// </summary>
        /// <param name="idUser">Clave de usuario</param>
        /// <param name="team">Objeto a guardar</param>
        /// <param name="blnUpdate">True - Actualiza | False - Agrega</param>
        /// <param name="lstAdd">Personnels a asignar al equipo</param>
        /// <param name="lstDel">Personeels a remover del equipo</param>
        /// <param name="lstChanged">Lista de integrantes que tuvieron cambios</param>
        /// <returns>0. No se guardó | 1. Se guardó | -1. Existe un registro con el mismo ID</returns>
        /// <history>
        ///   [vku] 13/Jul/2016 Created
        /// </history>
        public async static Task <int> SaveTeam(string idUser, TeamGuestServices team, bool blnUpdate, List <Personnel> lstAdd, List <Personnel> lstDel, List <Personnel> lstChanged)
        {
            bool HadPost = false;
            int  nRes    = await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    using (var transaction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                    {
                        try
                        {
                            #region ChangePersonnel
                            if (lstChanged.Count > 0)
                            {
                                foreach (Personnel pe in lstChanged)
                                {
                                    dbContext.Entry(pe).State = EntityState.Modified;
                                }
                            }
                            #endregion

                            #region Update
                            if (blnUpdate)
                            {
                                dbContext.Entry(team).State = EntityState.Modified;
                            }
                            #endregion
                            #region Add
                            else
                            {
                                TeamGuestServices teamVal = dbContext.TeamsGuestServices.Where(te => te.tgID == team.tgID).FirstOrDefault();
                                if (teamVal != null)
                                {
                                    return(-1);
                                }
                                else
                                {
                                    dbContext.TeamsGuestServices.Add(team);
                                }
                            }
                            #endregion

                            #region addPerssonnel
                            if (lstAdd.Count > 0)
                            {
                                dbContext.Personnels.AsEnumerable().Where(pe => lstAdd.Any(pee => pee.peID == pe.peID)).ToList().ForEach(pe =>
                                {
                                    pe.peTeamType = EnumToListHelper.GetEnumDescription(EnumTeamType.TeamPRs);
                                    pe.pePlaceID  = team.tglo;
                                    pe.peTeam     = team.tgID;
                                    if (pe.pepo == "GS" || pe.pepo == "OPC")
                                    {
                                        HadPost = true;
                                    }
                                    if (BRPrograms.GetProgramByLocation(team.tglo) == EnumToListHelper.GetEnumDescription(EnumProgram.Inhouse))
                                    {
                                        pe.pepo = "GS";
                                    }
                                    else
                                    {
                                        pe.pepo = "OPC";
                                    }

                                    DateTime dtmServerDate = BRHelpers.GetServerDateTime();

                                    TeamLog teamLog     = new TeamLog();
                                    teamLog.tlDT        = dtmServerDate;
                                    teamLog.tlChangedBy = idUser;
                                    teamLog.tlpe        = pe.peID;
                                    teamLog.tlTeamType  = pe.peTeamType;
                                    teamLog.tlPlaceID   = pe.pePlaceID;
                                    teamLog.tlTeam      = pe.peTeam;
                                    dbContext.TeamsLogs.Add(teamLog);
                                    if (HadPost == false)
                                    {
                                        PostLog postLog     = new PostLog();
                                        postLog.ppChangedBy = idUser;
                                        postLog.ppDT        = dtmServerDate;
                                        postLog.pppe        = pe.peID;
                                        postLog.pppo        = pe.pepo;
                                        dbContext.PostsLogs.Add(postLog);
                                    }
                                });
                            }
                            #endregion

                            #region del Personnel
                            if (lstDel.Count > 0)
                            {
                                dbContext.Personnels.AsEnumerable().Where(pe => lstDel.Any(pee => pee.peID == pe.peID)).ToList().ForEach(pe =>
                                {
                                    pe.peTeamType = null;
                                    pe.pePlaceID  = null;
                                    pe.peTeam     = null;
                                    pe.pepo       = null;
                                    pe.peLinerID  = null;

                                    DateTime dtmServerDate = BRHelpers.GetServerDateTime();

                                    TeamLog teamLog     = new TeamLog();
                                    teamLog.tlDT        = dtmServerDate;
                                    teamLog.tlChangedBy = idUser;
                                    teamLog.tlpe        = pe.peID;
                                    teamLog.tlTeamType  = pe.peTeamType;
                                    teamLog.tlPlaceID   = pe.pePlaceID;
                                    teamLog.tlTeam      = pe.peTeam;
                                    dbContext.TeamsLogs.Add(teamLog);

                                    PostLog postLog     = new PostLog();
                                    postLog.ppChangedBy = idUser;
                                    postLog.ppDT        = dtmServerDate;
                                    postLog.pppe        = pe.peID;
                                    postLog.pppo        = pe.pepo;
                                    dbContext.PostsLogs.Add(postLog);
                                });
                            }
                            #endregion

                            int nSave = dbContext.SaveChanges();
                            transaction.Commit();
                            return(nSave);
                        }
                        catch
                        {
                            transaction.Rollback();
                            return(0);
                        }
                    }
                }
            });

            return(nRes);
        }
Beispiel #27
0
        //新增构造函数
        public Form_SalesOrder()
        {
            InitializeComponent();

            this.invoicer.Text      = Pharmacy.AppClient.Common.AppClientContext.CurrentUser.Employee.Name;
            this.lblCreateDate.Text = DateTime.Now.Date.ToLongDateString();

            #region 列表处理
            this.dataGridView1.RowPostPaint += (s, e) => DataGridViewOperator.SetRowNumber(this.dataGridView1, e);
            this.dataGridView1.CellClick    += dataGridView1_CellClick;

            this.dataGridView1.CellMouseDown += (s, e) =>       //选定列表中的药品id,给右键菜单使用
            {
                if (this.dataGridView1.Rows.Count <= 0)
                {
                    return;
                }
                var c = this.dataGridView1.CurrentRow.DataBoundItem as SalesOrderDetailModel;
                this.BaseRightMenu.DrugId = c.DrugInfoId;
            };

            this.BaseRightMenu = new UI.Forms.BaseForm.BasicInfoRightMenu(this.dataGridView1); //右键支持
            this.BaseRightMenu.InsertDrugBasicInfo();                                          //加入药品基本信息查询功能

            this.BaseRightMenu.InserMenu("删除该品种", () =>
            {
                if (this.dataGridView1.Rows.Count <= 0)
                {
                    return;
                }
                var c = MessageBox.Show("确定需要删除该品种吗", "提示", MessageBoxButtons.OKCancel);
                if (c == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }
                this.DeleteDrug();
            });
            #endregion

            #region  择客户单位
            this.textBox1.Focus();
            this.textBox1.KeyDown += (s, e) =>
            {
                if (e.KeyCode != Keys.Return)
                {
                    return;
                }
                using (Common.FormPurchaseSelector frm = new Common.FormPurchaseSelector(this.textBox1.Text.Trim()))
                {
                    var re = frm.ShowDialog();
                    if (re == System.Windows.Forms.DialogResult.OK)
                    {
                        this.CurrentPurchaseUnit  = frm.Result;
                        this.txtPurchaseName.Text = this.CurrentPurchaseUnit.Name;

                        this.BaseRightMenu.InsertPurchaseUnitBasicInfo();           //加入右键查询该客户的基本信息查询界面

                        #region 当前客户单位的采购员
                        var c = this.PharmacyDatabaseService.GetPurchaseUnitBuyersByPurchaseUnitId(this.CurrentPurchaseUnit.Id, out msg).OrderBy(r => r.Name).ToList();

                        c.Add(new PurchaseUnitBuyer {
                            Id   = Guid.Empty,
                            Name = "请选择"
                        });
                        this.cmbPurchaseUnitBuyer.DisplayMember = "Name";
                        this.cmbPurchaseUnitBuyer.ValueMember   = "Id";
                        this.cmbPurchaseUnitBuyer.DataSource    = c;
                        if (c.Count > 0)
                        {
                            this.cmbPurchaseUnitBuyer.SelectedIndex = 0;
                            this.CurrentPurchaseUnitBuyer           = c.First();
                        }
                        #endregion
                    }
                }
            };
            #endregion

            #region 客户采购员选择
            this.cmbPurchaseUnitBuyer.SelectedIndexChanged += (s, e) =>
            {
                this.CurrentPurchaseUnitBuyer = this.cmbPurchaseUnitBuyer.SelectedItem as PurchaseUnitBuyer;
            };
            #endregion

            #region 提货方式
            var pickupGoodTypeList = EnumToListHelper.ConverEnumToList(typeof(PickUpGoodType));
            this.cmbPickUpGoods.DisplayMember = "Name";
            this.cmbPickUpGoods.ValueMember   = "Id";
            this.cmbPickUpGoods.DataSource    = pickupGoodTypeList;
            this.cmbPickUpGoods.SelectedValue = (int)this.CurrentPickUpGoodType;
            #endregion

            #region 品种类型选择下拉列表
            var drugTypeList = EnumToListHelper.ConverEnumToList(typeof(SalesDrugType));
            this.comboBox1.DisplayMember         = "Name";
            this.comboBox1.ValueMember           = "Id";
            this.comboBox1.DataSource            = drugTypeList;
            this.comboBox1.SelectedIndex         = 0;
            this.comboBox1.SelectedIndexChanged += (s, e) =>
            {
                this.CurrentSalesDrugType       = (SalesDrugType)this.comboBox1.SelectedIndex;
                this.toolStripStatusLabel2.Text = ((MyLibs.EnumTypeList) this.comboBox1.SelectedItem).Name;
            };

            #endregion

            #region 销售人员名单绑定列表
            System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument();
            xmlDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "BugsBox.Pharmacy.AppClient.SalePriceType.xml");
            System.Xml.XmlNodeList xmlNode = xmlDocument.SelectNodes("/SalePriceType/priceType");

            xmlNode = xmlDocument.SelectNodes("/SalePriceType/salerRoleName");
            string salerRoleName = xmlNode[0].Attributes[0].Value.ToString();
            var    SalerNames    = this.PharmacyDatabaseService.GetUserByPosition(salerRoleName, string.Empty, string.Empty).OrderBy(r => r.Employee.Name).ToList();//根据角色获取用户
            var    UE            = (from i in SalerNames
                                    select new SalerNames
            {
                Id = i.Id,
                EName = i.Employee.Name
            }).ToList();
            //插入一条“请选择”
            UE.Insert(0, new SalerNames
            {
                Id    = Guid.Empty,
                EName = "请选择销售员"
            });

            this.cmbSalesMan.ValueMember   = "Id";
            this.cmbSalesMan.DisplayMember = "EName";
            this.cmbSalesMan.DataSource    = UE;
            this.cmbSalesMan.SelectedIndex = 0;
            #endregion
        }
        public Form_PurchaseOrderImpt()
        {
            InitializeComponent();

            #region 绑定类型
            var ordertypes = EnumToListHelper.ConverEnumToList(typeof(PurchaseDrugTypes)).Where(r => r.Name != "食品").ToList();

            this.toolStripComboBox1.ComboBox.DisplayMember = "Name";
            this.toolStripComboBox1.ComboBox.ValueMember   = "Id";
            this.toolStripComboBox1.ComboBox.DataSource    = ordertypes;
            #endregion

            #region DataGridView初始化
            this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            this.dataGridView1.RowPostPaint       += (s, e) => DataGridViewOperator.SetRowNumber(this.dataGridView1, e);
            this.dataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            this.dataGridView2.RowPostPaint       += (s, e) => DataGridViewOperator.SetRowNumber(this.dataGridView2, e);
            #endregion

            #region 右键菜单
            BugsBox.Pharmacy.UI.Common.BaseRightMenu brm = new BugsBox.Pharmacy.UI.Common.BaseRightMenu(this.dataGridView1);
            #endregion

            #region 清理表格数据
            Action ClearData = () =>
            {
                this.ListDetails.Clear();
                this.dataGridView1.DataSource = null;
                this.ListDetailsWaitingImpt.Clear();
                this.dataGridView2.DataSource = null;
            };
            #endregion

            #region 打开EXCEL文件
            this.toolStripButton1.Click += (s, e) =>
            {
                OpenFileDialog ofd = new OpenFileDialog
                {
                    Filter = "XLS文件|*.xls|XLSX文件|*.xlsx",
                };

                var re = ofd.ShowDialog();
                if (re != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
                NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(fs);
                int sheetCount = book.NumberOfSheets;

                NPOI.SS.UserModel.ISheet sheet = book.GetSheetAt(0);
                #region 简单验证一下excel表格
                if (sheet == null)
                {
                    MessageBox.Show("模板文件出错,请检查!"); return;
                }

                NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
                if (row == null)
                {
                    MessageBox.Show("模板文件出错,请检查!"); return;
                }

                int firstCellNum = row.FirstCellNum;
                int lastCellNum  = row.LastCellNum;
                if (firstCellNum == lastCellNum)
                {
                    MessageBox.Show("模板文件出错,请检查!"); return;
                }
                #endregion

                ClearData();
                for (int i = 1; i < sheet.LastRowNum + 1; i++)
                {
                    var sheetrow = sheet.GetRow(i);
                    Business.Models.PurchaseOrderImpt m = new Business.Models.PurchaseOrderImpt();
                    m.ProductGeneralName = sheet.GetRow(i).Cells[0].StringCellValue;
                    m.DosageName         = sheet.GetRow(i).Cells[1].StringCellValue;
                    m.SpecificName       = sheet.GetRow(i).Cells[2].StringCellValue;
                    m.MeasurementName    = sheet.GetRow(i).Cells[3].StringCellValue;
                    m.FactoryName        = sheet.GetRow(i).Cells[4].StringCellValue;
                    m.Origin             = sheet.GetRow(i).Cells[5].StringCellValue;
                    m.Amount             = decimal.Parse(sheet.GetRow(i).Cells[6].NumericCellValue.ToString());
                    m.UnitPrice          = decimal.Parse(sheet.GetRow(i).Cells[7].NumericCellValue.ToString());
                    m.TaxRate            = decimal.Parse(sheet.GetRow(i).Cells[8].NumericCellValue.ToString());

                    this.ListDetails.Add(m);
                }
                this.dataGridView1.DataSource = this.ListDetails;
                this.dataGridView1.Columns["DruginfoId"].Visible = false;
            };

            #endregion

            #region 生成模板文件
            this.toolStripButton4.Click += (s, e) =>
            {
                DownlodExcel();
                MessageBox.Show("导出成功!");
            };
            #endregion

            #region  务器端验证
            this.toolStripButton2.Click += (s, e) =>
            {
                if (this.dataGridView1.Rows.Count <= 0)
                {
                    return;
                }

                var result = this.PharmacyDatabaseService.CheckForPurchaseOrderDetails(this.ListDetails, out msg).ToList();

                if (result.Any(r => r.DrugInfoId == Guid.Empty))
                {
                    MessageBox.Show("有一个或多个记录没有验证成功,请检查品名,剂型,规格等基本信息!您可以修改后再尝试验证!");
                }

                this.ListDetails = result.Where(r => r.DrugInfoId == Guid.Empty).ToList();
                this.dataGridView1.DataSource = ListDetails;

                this.ListDetailsWaitingImpt   = result.Where(r => r.DrugInfoId != Guid.Empty).ToList();
                this.dataGridView2.DataSource = this.ListDetailsWaitingImpt;
                this.dataGridView2.Columns["DrugInfoId"].Visible = false;
                this.dataGridView2.Refresh();
            };
            #endregion

            #region 导入按钮click
            this.toolStripButton3.Click += (s, e) =>
            {
                if (this.ListDetailsWaitingImpt.Count <= 0)
                {
                    return;
                }

                if (this.OnPurchaseOrderImpt != null)
                {
                    PurchaseOrderImptEventArgs args = new PurchaseOrderImptEventArgs
                    {
                        ImptList = this.ListDetailsWaitingImpt
                    };
                    this.OnPurchaseOrderImpt(args);
                }
            };
            #endregion
        }
Beispiel #29
0
 /// <summary>
 /// Llena el combobox de periods
 /// </summary>
 /// <history>
 /// [emoguel] created 10/05/2016
 /// </history>
 private void LoadPeriods()
 {
     cmbPeriod.ItemsSource   = EnumToListHelper.GetList <EnumPeriod>().Where(ep => ep.Value != "None").OrderBy(ep => ep.Value);
     cmbPeriod.SelectedIndex = 0;
 }
        /// <summary>
        /// Carga el combobox de patrones
        /// </summary>
        /// <history>
        /// [emoguel] created 16/05/2016
        /// [erosado] 19/05/2016  Modified. Se agregó asincronía
        /// </history>
        private async void LoadBoss()
        {
            try
            {
                List <PersonnelShort> lstBoss = await BRPersonnel.GetPersonnel(roles : EnumToListHelper.GetEnumDescription(EnumRole.Boss));

                cmblsBoss.ItemsSource = lstBoss;
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }