Пример #1
0
        /// <summary>
        /// Apila la página indicada en el Stack y envía los parametros
        /// </summary>
        /// <param name="page"></param>
        /// <returns></returns>
        public static async Task Navegar(PagesKeys page, params object[] parameters)
        {
            switch (page)
            {
            case PagesKeys.DetalleCliente:
                DetalleClienteViewModel.GetInstance().Cliente = (Cliente)parameters[0];
                await IsInstanced(new DetalleClientePage());

                break;

            case PagesKeys.NuevoPedido:
                NuevoPedidoViewModel.GetInstance().Adeudo = (Adeudo)parameters[0];
                await IsInstanced(new NuevoPedidoPage());

                break;

            case PagesKeys.Abono:
                AbonoViewModel.GetInstance().Adeudo = (Adeudo)parameters[0];
                await IsInstanced(new AbonoPage());

                break;

            case PagesKeys.Historial:
                HistorialViewModel.GetInstance().Cliente = (Cliente)parameters[0];
                await IsInstanced(new HistorialPage());

                break;

            default:
                break;
            }
        }
Пример #2
0
 public AbonoPage()
 {
     InitializeComponent();
     BindingContext = AbonoViewModel.GetInstance();
 }
Пример #3
0
        public async Task <ActionResult> Salvar(AbonoViewModel avm)
        {
            if (avm.IdsUsuarios == null || avm.IdsUsuarios.Count() == 0)
            {
                MensagemParaUsuarioViewModel.MensagemErro("Favor preencher a data inicial", TempData, ModelState, "IdsUsuarios");
            }



            if (avm.DataInicial == DateTime.MinValue)
            {
                MensagemParaUsuarioViewModel.MensagemErro("Favor preencher a data inicial", TempData, ModelState, "DataInicial");
            }

            if (avm.DataFinal < avm.DataInicial)
            {
                MensagemParaUsuarioViewModel.MensagemErro("A data final deve ser maior ou igual a data inicial", TempData, ModelState, "DataFinal");
            }

            if (avm.DataFinal == null || avm.DataFinal.Value == DateTime.MinValue)
            {
                avm.DataFinal = avm.DataInicial;
            }

            if ((avm.DataFinal.Value - avm.DataInicial).TotalDays > 365)
            {
                MensagemParaUsuarioViewModel.MensagemErro("Não é permitido um lançamento em lote maior que um ano", TempData, ModelState, "DataFinal");
            }



            if (ModelState.IsValid)
            {
                CalendarioServices   cal = new CalendarioServices();
                AtividadeApplication app = new AtividadeApplication(this.db);

                DateTime data    = avm.DataInicial.Date;
                int      IDADMIN = TFW.TFWConvert.ToInteger(ApplicationResources.PROJECTNODE_ADMINISTRATIVO_ID);

                while (data <= avm.DataFinal)
                {
                    try
                    {
                        if (cal.IsDiaUtil(data))
                        {
                            var projeto = db.ProjectNodes.Include(X => X.Pai).Where(x => x.Id == IDADMIN).SingleOrDefault();
                            var tipo    = db.TiposAtividade.Where(x => x.Id == avm.IdTipoAtividade).SingleOrDefault();


                            var usuarios = await db.Usuarios
                                           .Include(x => x.Funcionario)
                                           .Where(u => avm.IdsUsuarios.Contains(u.Id))
                                           .ToListAsync();

                            string nomesDosUsuarios = string.Join(", ", usuarios.Select(u => u.FuncionarioNomeOuLogin).ToList <string>().ToArray());

                            foreach (var u in usuarios)
                            {
                                if (tipo.Nome == ApplicationResources.TIPOATIVIDADE_FERIAS_NOME)
                                {
                                    await app.SalvarAsync(new Atividade
                                    {
                                        Observacao    = avm.Descricao,
                                        Inicio        = data.AddHours(8),
                                        Fim           = data.AddHours(12),
                                        ProjectNode   = projeto,
                                        TipoAtividade = tipo,
                                        Usuario       = u
                                    }, true);

                                    await app.SalvarAsync(new Atividade
                                    {
                                        Observacao    = avm.Descricao,
                                        Inicio        = data.AddHours(13),
                                        Fim           = data.AddHours(17),
                                        ProjectNode   = projeto,
                                        TipoAtividade = tipo,
                                        Usuario       = u
                                    }, true);
                                }
                                else
                                {
                                    await app.SalvarAsync(new Atividade
                                    {
                                        Observacao    = avm.Descricao,
                                        Inicio        = data,
                                        Fim           = data.Add(avm.Horas.Value),
                                        ProjectNode   = projeto,
                                        TipoAtividade = tipo,
                                        Usuario       = u
                                    }, true);
                                }
                            }

                            avm.NomeTipoAtividade = tipo.Nome;
                            avm.NomeUsuario       = nomesDosUsuarios;
                        }
                    }
                    catch (DbEntityValidationException ex)
                    {
                        string exceptionMessage = LogServices.ConcatenaErrosDbEntityValidation(ex);
                        MensagemParaUsuarioViewModel.MensagemErro(exceptionMessage, TempData, ModelState);
                        return(PartialView("~/views/shared/EditorTemplates/AbonoViewModel.cshtml", avm));
                    }
                    catch (Exception err)
                    {
                        MensagemParaUsuarioViewModel.MensagemErro(err.Message, TempData, ModelState);
                        return(PartialView("~/views/shared/EditorTemplates/AbonoViewModel.cshtml", avm));
                    }
                    finally
                    {
                        data = data.AddDays(1);
                    }
                }

                MensagemParaUsuarioViewModel.MensagemSucesso("Atividades salvas.", TempData);
                return(PartialView("~/views/shared/DisplayTemplates/AbonoViewModel.cshtml", avm));
            }



            return(PartialView("~/views/shared/EditorTemplates/AbonoViewModel.cshtml", avm));
        }