Example #1
0
 public async Task EliminarItemAtendimento(AtendimentoItem atendimentoItem)
 {
     await atendimentoItemDAL.DeleteAsync(atendimentoItem);
     this.ItensAtendimento.Remove(atendimentoItem);
     this.Atendimento.Servicos.Remove(atendimentoItem);
     OnPropertyChanged(nameof(SubTotalItens));
 }
Example #2
0
 private async Task RemoverItemAsync(AtendimentoItem item)
 {
     if (await DisplayAlert("Confirmação",
                            $"Confirma remoção de {item.Servico.Nome.ToUpper()}?", "Yes", "No"))
     {
         await this.viewModel.EliminarItemAtendimentoAsync(item);
         await DisplayAlert("Informação", "Serviço removido com sucesso", "Ok");
     }
 }
Example #3
0
 public ServicosCRUDViewModel(AtendimentoItem atendimentoItem)
 {
     itemDAL              = new AtendimentoItemDAL(atendimentoItem.Atendimento, DependencyService.Get <IDBPath>().GetDbPath());
     this.Atendimento     = atendimentoItem.Atendimento;
     this.AtendimentoItem = atendimentoItem;
     this.valor           = string.Format("{0:N}", atendimentoItem.Valor);
     this.quantidade      = string.Format("{0}", atendimentoItem.Quantidade);
     RegistrarCommands();
 }
Example #4
0
 private void RegistrarCommands()
 {
     EliminarItemCommand = new Command<AtendimentoItem>((atendimentoItem) =>
     {
         MessagingCenter.Send<AtendimentoItem>(atendimentoItem, "Confirmação");
     });
     NovoCommand = new Command(() =>
     {
         var atendimentoItem = new AtendimentoItem() { Atendimento = this.Atendimento, AtendimentoID = this.Atendimento.AtendimentoID };
         MessagingCenter.Send<AtendimentoItem>(atendimentoItem, "Mostrar");
     }, () =>
     {
         return !this.Atendimento.EstaFinalizado;
     });
 }
Example #5
0
        /// <summary>
        /// Altera o status dos atendimentos para "concluído" e efetiva as ações.
        /// </summary>
        /// <param name="atendimentoIDs">Lista de ids de atendimentos a serem processados.</param>
        public void EfetivaAtendimento(List <String> atendimentoItemIDs)
        {
            PersistenceManager pm = new PersistenceManager();

            pm.BeginTransactionContext();

            Atendimento atendimento;

            try
            {
                IList <AtendimentoItem> itensAtendimento = AtendimentoItem.CarregaAtendimentoItens(atendimentoItemIDs, pm);
                if (itensAtendimento != null)
                {
                    Object               contratoId = null;
                    String[]             arrAux     = null, arrAux2 = null;
                    ContratoBeneficiario cb         = null;

                    foreach (AtendimentoItem item in itensAtendimento)
                    {
                        item.Status = (Int32)Atendimento.eStatus.Concluido; //true;
                        pm.Save(item);

                        atendimento = new Atendimento(item.AtendimentoId);
                        pm.Load(atendimento);

                        if (eTipoAtendimentoItem.SegundaViaCartao == ((eTipoAtendimentoItem)item.Tipo))
                        {
                            #region Marca o beneficiário para segunda via de cartao

                            arrAux     = item.BeneficiarioIds.Split(',');
                            contratoId = Contrato.CarregaContratoID(atendimento.OperadoraID, atendimento.NumeroContrato, pm);

                            for (int i = 0; i < arrAux.Length; i++)
                            {
                                //TODO: criar uma sobrecarga que recebe um array de beneficiarioIDs e faz a alteração de forma atomica
                                ContratoBeneficiario.AlteraStatusBeneficiario(contratoId, arrAux[i], ContratoBeneficiario.eStatus.SegundaViaCartaoPendente, pm);
                            }

                            #endregion
                        }
                        if (eTipoAtendimentoItem.CancelamentoContrato == ((eTipoAtendimentoItem)item.Tipo))
                        {
                            #region Marca o contrato para cancelamento

                            contratoId = Contrato.CarregaContratoID(atendimento.OperadoraID, atendimento.NumeroContrato, pm);
                            ContratoBeneficiario titular = ContratoBeneficiario.CarregarTitular(contratoId, pm);
                            titular.Status = (Int32)ContratoBeneficiario.eStatus.CancelamentoPendente;
                            pm.Save(titular);

                            #endregion

                            #region Cancela o contrato e adiciona histórico

                            contratoId = Contrato.CarregaContratoID(atendimento.OperadoraID, atendimento.NumeroContrato, pm);
                            Contrato.AlteraStatusDeContrato(contratoId, true, pm);

                            #endregion
                        }
                        else if (eTipoAtendimentoItem.AdicionarBeneficiarios == ((eTipoAtendimentoItem)item.Tipo))
                        {
                            #region Adiciona o beneficiario como ContratoBeneficiario NOVO, calcula o novo valor do contrato, a vigencia dele, e atualiza as cobrancas

                            arrAux  = item.BeneficiarioIds.Split(',');
                            arrAux2 = item.ParentescoIds.Split(',');
                            DateTime dataAdmissao = atendimento.DataHora;
                            contratoId = Contrato.CarregaContratoID(atendimento.OperadoraID, atendimento.NumeroContrato, pm);

                            for (int i = 0; i < arrAux.Length; i++)
                            {
                                cb                  = new ContratoBeneficiario();
                                cb.Ativo            = true;
                                cb.BeneficiarioID   = arrAux[i];// bId;
                                cb.ContratoID       = contratoId;
                                cb.Data             = dataAdmissao;
                                cb.ParentescoID     = arrAux2[i]; //obter info da classe atendimento
                                cb.Tipo             = (Int32)ContratoBeneficiario.TipoRelacao.Dependente;
                                cb.Status           = (Int32)ContratoBeneficiario.eStatus.Novo;
                                cb.NumeroSequencial = ContratoBeneficiario.ProximoNumeroSequencial(contratoId, arrAux[i], pm);
                                pm.Save(cb);
                            }

                            ContratoStatusHistorico.Salvar(atendimento.NumeroContrato, atendimento.OperadoraID, ContratoStatusHistorico.eStatus.BeneficiarioAdicionado, pm);

                            #endregion
                        }
                        else if (eTipoAtendimentoItem.AlteracaoCadastro == ((eTipoAtendimentoItem)item.Tipo))
                        {
                            #region Marca o ContratoBeneficiario como pendente para ENVIAR para a operadora

                            contratoId = Contrato.CarregaContratoID(atendimento.OperadoraID, atendimento.NumeroContrato, pm);

                            arrAux = item.BeneficiarioIds.Split(',');
                            foreach (String benefID in arrAux)
                            {
                                cb        = ContratoBeneficiario.CarregarPorContratoEBeneficiario(contratoId, benefID, pm);
                                cb.Status = (Int32)ContratoBeneficiario.eStatus.AlteracaoCadastroPendente;
                                pm.Save(cb);
                            }

                            ContratoStatusHistorico.Salvar(atendimento.NumeroContrato, atendimento.OperadoraID, ContratoStatusHistorico.eStatus.BeneficiarioAlterado, pm);

                            #endregion
                        }
                        else if (eTipoAtendimentoItem.CancelarBeneficiarios == ((eTipoAtendimentoItem)item.Tipo))
                        {
                            #region Marca os beneficiarios para cancelamento

                            contratoId = Contrato.CarregaContratoID(atendimento.OperadoraID, atendimento.NumeroContrato, pm);
                            arrAux     = item.BeneficiarioIds.Split(',');
                            DateTime dataCancelamento = atendimento.DataHora;
                            foreach (String benefID in arrAux)
                            {
                                cb                = ContratoBeneficiario.CarregarPorContratoEBeneficiario(contratoId, benefID, pm);
                                cb.Status         = (Int32)ContratoBeneficiario.eStatus.ExclusaoPendente;
                                cb.Ativo          = false;
                                cb.DataInativacao = dataCancelamento;
                                pm.Save(cb);
                            }

                            ContratoStatusHistorico.Salvar(atendimento.NumeroContrato, atendimento.OperadoraID, ContratoStatusHistorico.eStatus.BeneficiarioCancelado, pm);

                            #endregion
                        }
                        else if (eTipoAtendimentoItem.MudancaDePlano == ((eTipoAtendimentoItem)item.Tipo))
                        {
                            #region Marca o titular para mudança de plano do contrato

                            contratoId = Contrato.CarregaContratoID(atendimento.OperadoraID, atendimento.NumeroContrato, pm);

                            cb        = ContratoBeneficiario.CarregarTitular(contratoId, pm);
                            cb.Status = (Int32)ContratoBeneficiario.eStatus.MudancaPlanoPendente;
                            pm.Save(cb);
                            ContratoStatusHistorico.Salvar(atendimento.NumeroContrato, atendimento.OperadoraID, ContratoStatusHistorico.eStatus.MudancaDePlano, pm);

                            #endregion

                            #region Altera o plano, calcula novo valor, a vigencia dele, modifica as cobranças

                            //contratoId = Contrato.CarregaContratoID(atendimento.OperadoraID, atendimento.NumeroContrato, pm);
                            Contrato contrato = new Contrato(contratoId);
                            pm.Load(contrato);

                            contrato.PlanoID        = item.PlanoId;
                            contrato.TipoAcomodacao = item.AcomodacaoId;
                            pm.Save(contrato);

                            DateTime dataAlteracao = atendimento.DataHora;

                            //Historico de alteracao de planos
                            ContratoPlano cp = new ContratoPlano();
                            cp.ContratoID     = contratoId;
                            cp.PlanoID        = item.PlanoId;
                            cp.TipoAcomodacao = item.AcomodacaoId;
                            cp.Data           = atendimento.DataHora;
                            pm.Save(cp);

                            //contratoADMid = contrato.ContratoADMID;

                            //CalendarioAdmissaoVigencia.CalculaDatasDeVigenciaEVencimento(contratoADMid,
                            //    dataAlteracao, out vigencia, out vencimento, out diaSemJuros, out valorDataLimite, pm);

                            //cobrancas = Cobranca.CarregarTodas(contratoId, pm);
                            //if (cobrancas != null && cobrancas.Count > 0)
                            //{
                            //    foreach (Cobranca cobranca in cobrancas)
                            //    {
                            //        if (((Cobranca.eTipo)cobranca.Tipo) == Cobranca.eTipo.Dupla ||
                            //            ((Cobranca.eTipo)cobranca.Tipo) == Cobranca.eTipo.Complementar)
                            //        { continue; }

                            //        if (cobranca.DataVencimento >= vigencia)
                            //        {
                            //            cobranca.Valor = Contrato.CalculaValorDaProposta(contratoId, cobranca.DataVencimento, pm);
                            //            pm.Save(cobranca);
                            //        }
                            //    }
                            //}
                            #endregion
                        }
                    }
                }

                pm.Commit();
            }
            catch (Exception ex)
            {
                pm.Rollback();
                throw ex;
            }
            finally
            {
                pm = null;
            }
        }
Example #6
0
 public ServicosCRUDView(AtendimentoItem item, string title) : this()
 {
     this.Title          = title;
     this.crudViewModel  = new ServicosCRUDViewModel(item);
     this.BindingContext = this.crudViewModel;
 }