Exemplo n.º 1
0
        public void OrquestraExpurgoLog()
        {
            ParametrosController parametros = new ParametrosController();
            int QtdeDiasExpurgoLog          = parametros.GetIdParametro("QtdeDiasExpurgoLog");

            if (QtdeDiasExpurgoLog == 0)
            {
                parametros.GravaNovoParametro("QtdeDiasExpurgoLog", "30");
            }
            QtdeDiasExpurgoLog = Convert.ToInt32(parametros.CadParametrosBase.isNullResultZero(parametros.GetValorParametro("QtdeDiasExpurgoLog")));

            DateTime DataExpurgoLog = DateTime.Now.AddDays(QtdeDiasExpurgoLog * (-1));

            if (QtdArqParaExpurgo(DataExpurgoLog) > 0)
            {
                string script = $"Delete from tb_logs where CONVERT(datetime,data,103)<=CONVERT(datetime,'{DataExpurgoLog.ToString("dd/MM/yyyy")} 23:59:59',103)";
                try
                {
                    Global.EnviarParaLog($"Script Expurgo de Log a ser executado: {script}", "OrquestraExpurgoLog");
                    parametros.CadParametrosBase.conexao.ExecutarScript(script);
                    Global.EnviarParaLog("Expurgo de Log concluído com sucesso.", "OrquestraExpurgoLog");
                }
                catch (Exception ex)
                {
                    Global.EnviarParaLog($"Não foi possível concluir o expurgo de Log. Motivo: {ex.Message}", "OrquestraExpurgoLog");
                }
            }
        }
Exemplo n.º 2
0
        public void OrquetraBackup()
        {
            ParametrosController parametros = new ParametrosController();
            int CodParametro = 0;

            CodParametro = parametros.GetIdParametro("Path_Backup_StarEtl");
            if (CodParametro == 0)
            {
                parametros.GravaNovoParametro("Path_Backup_StarEtl", @"C:\StarEtl");
            }
            string Pathbackup = parametros.GetValorParametro("Path_Backup_StarEtl");

            int CodBancoDados = parametros.GetIdParametro("Nome_DataBase_Backup");

            if (CodBancoDados == 0)
            {
                parametros.GravaNovoParametro("Nome_DataBase_Backup", @"StarEtl");
            }
            string BancoDados = parametros.GetValorParametro("Nome_DataBase_Backup");


            if (Pathbackup.Length > 0)
            {
                GeraBackup(BancoDados, Pathbackup);
            }
        }
        private void listView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                int            menu = int.Parse((listView.SelectedItem as ListViewItem).Name.Replace("menu_", ""));
                List <Rotinas> list = new RotinasController().ListByMenu(menu);
                dataGrid.ItemsSource = list;
            }
            catch
            {
                Parametros p = ParametrosController.FindParametro("CSQL_PATH");

                List <Rotinas> r  = new List <Rotinas>();
                DirectoryInfo  di = new DirectoryInfo(p.Valor);
                foreach (FileInfo file in di.GetFiles())
                {
                    if (!file.Name.EndsWith(".csql"))
                    {
                        continue;
                    }
                    r.Add(new Rotinas()
                    {
                        Id        = 600,
                        Menu      = 600,
                        Descricao = file.Name.Replace(".csql", "")
                    });
                }

                dataGrid.ItemsSource = r;
            }
        }
Exemplo n.º 4
0
 public frmConfigGrupo()
 {
     InitializeComponent();
     gruposController     = new GruposController();
     categoriasController = new CategoriasController();
     parametrosController = new ParametrosController();
     parametrosModel      = new ParametrosModel();
 }
        public Parametrizacao()
        {
            InitializeComponent();

            controller = new ParametrosController();
            dataGrid.AplicarPadroes();
            Pesquisar();
        }
Exemplo n.º 6
0
        private void btAplicar_Click(object sender, RoutedEventArgs e)
        {
            ParametrosController pc = new ParametrosController();

            if (pc.InsereParametro(txNome.Text, txComputador.Text, txValor.Text))
            {
                Close();
            }
        }
Exemplo n.º 7
0
        private void MostrarGrupoCategoria()
        {
            ParametrosController Parametros = new ParametrosController();
            GruposController     Grupo      = new GruposController();
            CategoriasController Categoria  = new CategoriasController();

            Global.CodGrupoSel = Convert.ToInt32(Parametros.CadParametrosBase.isNullResultZero(Parametros.GetValorParametro("Empresa_Selecionada")));
            Global.CodCategSel = Convert.ToInt32(Categoria.CadCategoriasBase.isNullResultZero(Parametros.GetValorParametro("Filial_Selecionada")));
            if (Global.CodGrupoSel == 0)
            {
                lblGrupo.Text = "Empresa ainda não cadastrado.";
            }
            else
            {
                string NomeGrupo = Grupo.GetNmGrupo(Global.CodGrupoSel);
                if (string.IsNullOrEmpty(NomeGrupo))
                {
                    Global.CodGrupoSel = 0;
                    lblGrupo.Text      = "Selecione uma Empresa.";
                }
                else
                {
                    lblGrupo.Text = Global.CodGrupoSel + "-" + NomeGrupo;
                }
            }
            lblSeparador.Text = "  ";
            if (Global.CodCategSel == 0)
            {
                lblCategoria.Text = "Filial ainda não cadastrada.";
            }
            else
            {
                string NomeCateg = Categoria.GetNmCategoria(Global.CodCategSel, Global.CodGrupoSel);
                if (string.IsNullOrEmpty(NomeCateg))
                {
                    Global.CodCategSel = 0;
                    lblCategoria.Text  = "Selecione uma Filial.";
                }
                else
                {
                    if (Global.UsuarioLogado != null)
                    {
                        if (Categoria.TemAcessoParaEstaFilial(Global.CodCategSel, Global.UsuarioLogado.Id_usuario))
                        {
                            lblCategoria.Text = Global.CodCategSel + "-" + NomeCateg;
                        }
                        else
                        {
                            Global.CodCategSel = 0;
                            lblCategoria.Text  = "Selecione uma Filial.";
                        }
                    }
                }
            }
        }
Exemplo n.º 8
0
        //public string GetConnectionStringDST()
        //{
        //    string Result= processArqController.GetParametro("connection_string_base_destino");
        //    if (Result.Length == 0)
        //    {
        //        ParametrosController parametros = new ParametrosController();
        //        parametros.GravaNovoParametro("connection_string_base_destino", "Data Source=<Ip do servidor>;Initial Catalog=<Nome da base de Dados>;User ID=<Usuario>;Password=<Senha>[;Integrated Security=True]");
        //        Result = processArqController.GetParametro("connection_string_base_destino");
        //    }

        //    return Result;
        //}

        //public string GetConnectionStringDST(string pDataSource,string pInitCatalog,string pUserId,string pPassword,bool pIntegratedSecurity = true)
        //{
        //    string Result = "";
        //    if (pIntegratedSecurity)
        //    {
        //        Result = $"Data Source={pDataSource};Initial Catalog={pInitCatalog};Integrated Security=True";
        //    }
        //    else
        //    {
        //        Result = $"Data Source={pDataSource};Initial Catalog={pInitCatalog};User ID={pUserId};Password={pPassword}";
        //    }
        //    return Result;
        //}

        public int GetIntervaloProcessamento()
        {
            string Result = processArqController.GetParametro("pooling_servico");

            if (Result.Length == 0)
            {
                ParametrosController parametros = new ParametrosController();
                parametros.GravaNovoParametro("pooling_servico", "60");
                Result = processArqController.GetParametro("pooling_servico");
            }
            return(Convert.ToInt32(Result == "" ? "0" : Result));
        }
Exemplo n.º 9
0
        public string GetDir_Aplicacao()
        {
            string Result = processArqController.GetParametro("Dir_Aplicacao");

            if (Result.Length == 0)
            {
                ParametrosController parametros = new ParametrosController();
                parametros.GravaNovoParametro("Dir_Aplicacao", @"C:\");
                Result = processArqController.GetParametro("Dir_Aplicacao");
            }
            return(Result == "" ? @"C:\" : Result);
        }
Exemplo n.º 10
0
        public frmPesquisa(GenericModel Classe)
        {
            InitializeComponent();
            cadastroBase    = new CadastroBase <GenericModel>();
            ClasseUtilisada = Classe;
            switch (ClasseUtilisada.NomeTabela)
            {
            case "tb_perfis":
                perfisController = new PerfisController();
                break;

            case "tb_usuarios":
                usuariosController = new UsuariosController();
                break;

            case "tb_permissoes":
                permissoesController = new PermissoesController();
                break;

            case "tb_grupos":
                gruposController = new GruposController();
                break;

            case "tb_categorias":
                categoriasController = new CategoriasController();
                break;

            case "tb_pacotes":
                pacotesController = new PacotesController();
                break;

            case "tb_servicos":
                servicosController = new ServicosController();
                break;

            case "tb_arquivos":
                arquivosController = new ArquivosController();
                break;

            case "tb_mapeamentos":
                mapeamentosController = new MapeamentosController();
                break;

            case "tb_parametros":
                parametrosController = new ParametrosController();
                break;
            }
        }
Exemplo n.º 11
0
        public void OrquestraExpurgoArq()
        {
            List <string>        lstArquivos = new List <string>();
            ParametrosController parametros  = new ParametrosController();
            int QtdeDiasExpurgoArq           = parametros.GetIdParametro("QtdeDiasExpurgoArq");

            if (QtdeDiasExpurgoArq == 0)
            {
                parametros.GravaNovoParametro("QtdeDiasExpurgoArq", "30");
            }
            QtdeDiasExpurgoArq = Convert.ToInt32(parametros.CadParametrosBase.isNullResultZero(parametros.GetValorParametro("QtdeDiasExpurgoArq")));
            DateTime DataExpurgoArq = DateTime.Now.AddDays(QtdeDiasExpurgoArq * (-1));


            try
            {
                bool ArqExpurgado          = false;
                List <ArquivosModel> drArq = GetArquivosParaExpurgo(DataExpurgoArq);
                foreach (var drArquivos in drArq)
                {
                    lstArquivos = BuscaArquivosPelaMascara(drArquivos.dir_entrada.ToString(), drArquivos.mascara_arquivo + "*");//BuscaArquivos(dir);
                    foreach (var lArq in lstArquivos)
                    {
                        try
                        {
                            File.Delete(lArq.ToString());
                            parametros.CadParametrosBase.conexao.ExecutarScript($"Update tb_arquivos set ArqExcluido='SIM' where id_arquivo={drArquivos.id_arquivo.ToString()}");
                            ArqExpurgado = true;
                        }
                        catch
                        {
                            ArqExpurgado = false;
                            parametros.CadParametrosBase.conexao.ExecutarScript($"Update tb_arquivos set ArqExcluido='NÃO' where id_arquivo={drArquivos.id_arquivo.ToString()}");
                        }
                    }
                }
                if (ArqExpurgado)
                {
                    Global.EnviarParaLog("Expurgo de Arquivo concluído com sucesso.", "OrquestraExpurgoArq");
                }
            }
            catch (Exception ex)
            {
                Global.EnviarParaLog($"Não foi possível concluir o expurgo de Arquivo. Motivo: {ex.Message}", "OrquestraExpurgoArq");
            }
        }
Exemplo n.º 12
0
        private void edtDirEntrada_Leave(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(edtDirEntrada.Text))
            {
                ParametrosController parametrosController = new ParametrosController();
                if (parametrosController.GetIdParametro("Sugerir_Mapeamento_Do_Arquivo") == 0)
                {
                    parametrosController.GravaNovoParametro("Sugerir_Mapeamento_Do_Arquivo", "SIM");
                }
                if (parametrosController.GetValorParametro("Sugerir_Mapeamento_Do_Arquivo") == "SIM")
                {
                    if (cbTpArquivo.Text == "EXCEL" ||
                        cbTpArquivo.Text == "DBF" && (operacao == Operacao.oInsert && dgvMapeamentos.Rows.Count == 1 && Global.IsNullOrEmpty(dgvMapeamentos.Rows[0].Cells[1].Value)))
                    {
                        ArquivosController arquivosController = new ArquivosController();
                        edtDirEntrada.Text = Global.LastCaracterDifereDeBarra(edtDirEntrada.Text);

                        lblNameFileShort.Text = GetShortPathName(edtDirEntrada.Text + edtMascaraArquivo.Text);

                        bool NomeArqRenomeado = RenomeiaSeNomeMaiorOitoDig(edtDirEntrada.Text + edtMascaraArquivo.Text);

                        List <MapeamentosModel> LstMapeamentos = arquivosController.GetEstruturaFile(edtDirEntrada.Text + NomePadrao, edtNomePlanilha.Text);
                        for (int i = 0; i <= LstMapeamentos.Count - 1; i++)
                        {
                            dgvMapeamentos.Rows.Add();
                            dgvMapeamentos.Rows[i].Cells[0].Value = LstMapeamentos[i].id_arquivo;
                            dgvMapeamentos.Rows[i].Cells[1].Value = LstMapeamentos[i].nm_coluna;
                            dgvMapeamentos.Rows[i].Cells[2].Value = LstMapeamentos[i].ordem;
                            dgvMapeamentos.Rows[i].Cells[3].Value = LstMapeamentos[i].fixo_inicio;
                            dgvMapeamentos.Rows[i].Cells[4].Value = LstMapeamentos[i].fixo_tamanho;
                            dgvMapeamentos.Rows[i].Cells[5].Value = LstMapeamentos[i].tp_coluna;
                            dgvMapeamentos.Rows[i].Cells[6].Value = LstMapeamentos[i].tm_coluna;
                            dgvMapeamentos.Rows[i].Cells[7].Value = LstMapeamentos[i].pr_coluna;
                            dgvMapeamentos.Rows[i].Cells[8].Value = LstMapeamentos[i].MASK_CAMPO;
                            dgvMapeamentos.Rows[i].Cells[9].Value = LstMapeamentos[i].ExpressaoSql;
                        }
                        //if (NomeArqRenomeado)
                        //{
                        //    File.Move(PathDoArqPadrao, NomeORG);
                        //}
                    }
                }
            }
        }
Exemplo n.º 13
0
        public string GetNomeTabelaDST(string pNomeTabela, int pIdArquivo)
        {
            string Result = pNomeTabela;
            string UsarId = processArqController.GetParametro("Concatena_ID_Tabela_Destino(SIM/NAO)");

            if (UsarId.Length == 0)
            {
                ParametrosController parametros = new ParametrosController();
                parametros.GravaNovoParametro("Concatena_ID_Tabela_Destino(SIM/NAO)", "NAO");
                UsarId = processArqController.GetParametro("Concatena_ID_Tabela_Destino(SIM/NAO)");
            }

            if (UsarId == "SIM")
            {
                Result += "_" + pIdArquivo.ToString();
            }

            return(Result);
        }
Exemplo n.º 14
0
        private void L_EfetuouLogin()
        {
            listView.SelectedIndex = 0;
            txNomeLoja.Text        = (UsuariosController.LojaAtual.Nome_fantasia + $" ({UsuariosController.LojaAtual.Razao_social})");
            txUsuario.Text         = UsuariosController.UsuarioAtual.Nome;

            Parametros p = ParametrosController.FindParametro("CONS_CUST", true);

            if (p == null)
            {
                listView.Items.Remove(mi_consultasCustomizadas);
            }
            else
            if (p.Valor.Equals("N"))
            {
                listView.Items.Remove(mi_consultasCustomizadas);
            }

            this.Show();
        }
Exemplo n.º 15
0
        public async Task <ActionResult <Zonas> > mtdInsertarZona([FromBody] Zonas zona)
        {
            try
            {
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerHora();

                zona.created_date       = horadeTransaccion.Value;
                zona.last_modified_date = horadeTransaccion.Value;
                context.tbzonas.Add(zona);
                await context.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception ex)
            {
                //ModelState.AddModelError("token", ex.Message);
                //return BadRequest(ModelState);
                return(Json(new { token = ex.Message }));
            }
        }
Exemplo n.º 16
0
        public void OrquetraBackup(string pBancoDados)
        {
            ParametrosController parametros = new ParametrosController();
            int CodParametro = parametros.GetIdParametro("Data_Hora_Backup(dd/mm/yyyy hh:mm:ss)");

            if (CodParametro == 0)
            {
                parametros.GravaNovoParametro("Data_Hora_Backup(dd/mm/yyyy hh:mm:ss)", "03:00:00");
            }
            CodParametro = parametros.GetIdParametro("Path_Backup_StarEtl");
            if (CodParametro == 0)
            {
                parametros.GravaNovoParametro("Path_Backup_StarEtl", @"C:\StarEtl\");
            }
            CodParametro = parametros.GetIdParametro("Path_Backup_StarBI");
            if (CodParametro == 0)
            {
                parametros.GravaNovoParametro("Path_Backup_StarBI", @"C:\StarBI\");
            }

            bool     Backpgerado      = BackupGerado(pBancoDados);
            DateTime DataHoraDoBackup = Convert.ToDateTime(parametros.GetValorParametro("Data_Hora_Backup(dd/mm/yyyy hh:mm:ss)").ToString());

            if (DateTime.Now >= DataHoraDoBackup && !Backpgerado)
            {
                string Pathbackup = parametros.GetValorParametro("Path_Backup_StarEtl");
                if (Pathbackup.Length > 0)
                {
                    GeraBackup(pBancoDados, Pathbackup);
                }

                Pathbackup = parametros.GetValorParametro("Path_Backup_StarBI");
                if (Pathbackup.Length > 0)
                {
                    GeraBackup(pBancoDados, Pathbackup, false);
                }
            }
        }
Exemplo n.º 17
0
        private void CarregaConsultaCustomizada(string nome)
        {
            Parametros p = ParametrosController.FindParametro("CSQL_PATH");

            SQL2Search.Compiler.SQLEntityDecompiler decompiler = new SQL2Search.Compiler.SQLEntityDecompiler();
            SQL2Search.Model.SQLEntity sqlEntity = decompiler.Decompile(p.Valor + nome + ".csql");

            if (sqlEntity.Provider == null)
            {
                AlertaDesconhecido ad = new AlertaDesconhecido(nome, (p.Valor + nome + ".csql"), sqlEntity.CreationTime);
                ad.ShowDialog();

                if (!ad.Permitido)
                {
                    return;
                }
            }

            ConsultaCustomizada cc = new ConsultaCustomizada();

            cc.SetSqlEntity(sqlEntity);
            cc.Start();
        }
Exemplo n.º 18
0
        public void SetaParametrosDefault()
        {
            ParametrosController Parametros = new ParametrosController();

            if (Parametros.GetValorParametro("connection_string_base_destino").Length == 0)
            {
                Parametros.GravaNovoParametro("connection_string_base_destino", "Data Source=<Ip do servidor>;Initial Catalog=<Nome da base de Dados>;User ID=<Usuario>;Password=<Senha>[;Integrated Security=True]");
            }
            if (Parametros.GetValorParametro("pooling_servico").Length == 0)
            {
                Parametros.GravaNovoParametro("pooling_servico", "60");
            }
            if (Parametros.GetValorParametro("Empresa_Selecionada").Length == 0)
            {
                Parametros.GravaNovoParametro("Empresa_Selecionada", "0");
            }
            if (Parametros.GetValorParametro("Filial_Selecionada").Length == 0)
            {
                Parametros.GravaNovoParametro("Filial_Selecionada", "0");
            }
            if (Parametros.GetValorParametro("QtdeDiasExpurgoLog").Length == 0)
            {
                Parametros.GravaNovoParametro("QtdeDiasExpurgoLog", "30");
            }
            if (Parametros.GetValorParametro("QtdeDiasExpurgoArq").Length == 0)
            {
                Parametros.GravaNovoParametro("QtdeDiasExpurgoArq", "30");
            }
            if (Parametros.GetValorParametro("Sugerir_Mapeamento_Do_Arquivo").Length == 0)
            {
                Parametros.GravaNovoParametro("Sugerir_Mapeamento_Do_Arquivo", "SIM");
            }
            if (Parametros.GetValorParametro("Concatena_ID_Tabela_Destino(SIM/NAO)").Length == 0)
            {
                Parametros.GravaNovoParametro("Concatena_ID_Tabela_Destino(SIM/NAO)", "NAO");
            }
        }
Exemplo n.º 19
0
        public override Task DoWork(CancellationToken cancellationToken)
        {
            var scope      = scopeFactory.CreateScope();
            var dbContext  = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            int intIdMulta = 0;

            ParametrosController    par   = new ParametrosController(dbContext);
            ActionResult <DateTime> time1 = par.mtdObtenerFechaMexico();
            DateTime time = time1.Value;

            //DateTime time = DateTime.Now;

            try
            {
                double dblTotalXDiaIos            = 0;
                double dblTotalXDiaAndriod        = 0;
                int    intTransIos                = 0;
                int    intTransAndriod            = 0;
                int    intAutosSemAnteriorIos     = 0;
                int    intAutosSemAnteriorAndroid = 0;
                double totalIngresos              = 0;
                int    intNoSemanaActual          = 0;
                /////////////
                Double int_sem_por_ios           = 0;
                Double int_sem_autos_por_ios     = 0;
                Double dec_sem_por_ios           = 0;
                Double int_sem_por_andriod       = 0;
                Double int_sem_autos_por_andriod = 0;
                Double dec_sem_por_andriod       = 0;
                Double int_sem_por_ant           = 0;
                Double dec_sem_por_total         = 0;
                /////////
                // Double dec_sem_por_total = 0;


                DateTime dia = time;

                var concesiones = dbContext.tbconcesiones.ToList();

                foreach (var concns in concesiones)
                {
                    System.Globalization.CultureInfo norwCulture = System.Globalization.CultureInfo.CreateSpecificCulture("es");
                    System.Globalization.Calendar    cal         = norwCulture.Calendar;
                    intNoSemanaActual = cal.GetWeekOfYear(dia, norwCulture.DateTimeFormat.CalendarWeekRule, norwCulture.DateTimeFormat.FirstDayOfWeek);
                    int       inNoSemAnterior = intNoSemanaActual - 1;
                    DayOfWeek weekStart       = DayOfWeek.Monday; // or Sunday, or whenever
                    DateTime  startingDate    = time;

                    //while (startingDate.DayOfWeek != weekStart)
                    //    startingDate = startingDate.AddDays(-1);

                    // DateTime previousWeekStart = startingDate.AddDays(-7);
                    DateTime previousWeekStart = startingDate;
                    DateTime previousWeekEnd   = startingDate.AddDays(-5);

                    //Para obtener dato de los autos del dia anterior
                    DateTime diaanterior        = dia.AddDays(-1);
                    var      resumenSemAnterior = dbContext.tbresumensemanal.FirstOrDefault(x => x.int_semana == inNoSemAnterior && x.int_id_consecion == concns.id);


                    if (resumenSemAnterior != null)
                    {
                        intAutosSemAnteriorIos     = resumenSemAnterior.int_sem_autos_ios;
                        intAutosSemAnteriorAndroid = resumenSemAnterior.int_sem_autos_andriod;

                        var registrosDeSem = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekStart.Date && x.dtm_fecha.Date <= previousWeekEnd.Date && x.int_id_consecion == concns.id).Sum(i => i.int_ios);

                        int    sumaTransSemIos     = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekStart.Date && x.dtm_fecha.Date <= previousWeekEnd.Date && x.int_id_consecion == concns.id).Sum(i => i.int_ios);
                        int    sumaTransSemAndroid = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekStart.Date && x.dtm_fecha.Date <= previousWeekEnd.Date && x.int_id_consecion == concns.id).Sum(i => i.int_andriod);
                        int    sumaAutosIos        = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekStart.Date && x.dtm_fecha.Date <= previousWeekEnd.Date && x.int_id_consecion == concns.id).Sum(i => i.int_autos_ios);
                        int    sumaAutosAndriod    = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekStart.Date && x.dtm_fecha.Date <= previousWeekEnd.Date && x.int_id_consecion == concns.id).Sum(i => i.int_autos_andriod);
                        double dblingrSemaIOs      = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekStart.Date && x.dtm_fecha.Date <= previousWeekEnd.Date && x.int_id_consecion == concns.id).Sum(i => i.dec_ios);
                        double dblingrSemaAndroid  = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekStart.Date && x.dtm_fecha.Date <= previousWeekEnd.Date && x.int_id_consecion == concns.id).Sum(i => i.dec_andriod);


                        int    totalAutos    = sumaAutosAndriod + sumaAutosIos;
                        int    transTotales  = sumaTransSemIos + sumaTransSemAndroid;
                        double dblIngTotales = dblingrSemaIOs + dblingrSemaAndroid;
                        if (resumenSemAnterior.int_sem_ios != 0)
                        {
                            int_sem_por_ios = (((double)sumaTransSemIos / (double)resumenSemAnterior.int_sem_ios) - 1);
                            int_sem_por_ios = int_sem_por_ios * 100;
                        }
                        else
                        {
                            if (sumaTransSemIos > 0)
                            {
                                int_sem_por_ios = 100;
                            }
                        }

                        if (resumenSemAnterior.int_sem_autos_ios != 0)
                        {
                            int_sem_autos_por_ios = (((double)sumaAutosIos / (double)resumenSemAnterior.int_sem_autos_ios) - 1);
                            int_sem_autos_por_ios = int_sem_autos_por_ios * 100;
                        }
                        else
                        {
                            if (sumaAutosIos > 0)
                            {
                                int_sem_autos_por_ios = 100;
                            }
                        }

                        if (resumenSemAnterior.dec_sem_ios != 0)
                        {
                            dec_sem_por_ios = ((dblingrSemaIOs / resumenSemAnterior.dec_sem_ios) - 1);
                            dec_sem_por_ios = dec_sem_por_ios * 100;
                        }
                        else
                        {
                            if (dblingrSemaIOs > 0)
                            {
                                dec_sem_por_ios = 100;
                            }
                        }
                        if (resumenSemAnterior.int_sem_andriod != 0)
                        {
                            int_sem_por_andriod = (((double)sumaTransSemAndroid / (double)resumenSemAnterior.int_sem_andriod) - 1);
                            int_sem_por_andriod = int_sem_por_andriod * 100;
                        }
                        else
                        {
                            int_sem_autos_por_andriod = (((double)sumaAutosIos / (double)resumenSemAnterior.int_sem_autos_andriod) - 1);
                            int_sem_autos_por_andriod = int_sem_autos_por_andriod * 100;
                        }
                        if (resumenSemAnterior.dec_sem_andriod != 0)
                        {
                            dec_sem_por_andriod = ((dblingrSemaAndroid / resumenSemAnterior.dec_sem_andriod) - 1);
                            dec_sem_por_andriod = dec_sem_por_andriod * 100;
                        }
                        else
                        {
                            if (dblingrSemaAndroid > 0)
                            {
                                dec_sem_por_andriod = 100;
                            }
                        }
                        if (resumenSemAnterior.int_sem_total != 0)
                        {
                            int_sem_por_ant = (((double)transTotales / (double)resumenSemAnterior.int_sem_total) - 1);
                            int_sem_por_ant = int_sem_por_ant * 100;
                        }
                        else
                        {
                            if (transTotales > 0)
                            {
                                int_sem_por_ant = 100;
                            }
                        }
                        if (resumenSemAnterior.dec_sem_total != 0)
                        {
                            dec_sem_por_total = ((dblIngTotales / resumenSemAnterior.dec_sem_total) - 1);
                            dec_sem_por_total = dec_sem_por_total * 100;
                        }
                        else
                        {
                            if (dblIngTotales > 0)
                            {
                                dec_sem_por_total = 100;
                            }
                        }



                        var strategy = dbContext.Database.CreateExecutionStrategy();

                        strategy.Execute(() =>
                        {
                            using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                            {
                                try
                                {
                                    dbContext.tbresumensemanal.Add(new ResumenSemanal()
                                    {
                                        int_id_consecion          = concns.id,
                                        dtm_fecha_inicio          = previousWeekStart,
                                        dtm_fecha_fin             = previousWeekEnd,
                                        int_semana                = intNoSemanaActual,
                                        int_anio                  = time.Year,
                                        int_semana_ant            = resumenSemAnterior.int_semana,
                                        int_sem_ios               = sumaTransSemIos,
                                        int_sem_ant_ios           = resumenSemAnterior.int_sem_ios,
                                        int_sem_por_ios           = int_sem_por_ios,
                                        int_sem_autos_ios         = sumaAutosIos,
                                        int_sem_autos_ant_ios     = resumenSemAnterior.int_sem_autos_ios,
                                        int_sem_autos_por_ios     = int_sem_autos_por_ios,
                                        dec_sem_ios               = dblingrSemaIOs,
                                        dec_sem_ant_ios           = resumenSemAnterior.dec_sem_ios,
                                        dec_sem_por_ios           = dec_sem_por_ios,
                                        int_sem_andriod           = sumaTransSemAndroid,
                                        int_sem_ant_andriod       = resumenSemAnterior.int_sem_andriod,
                                        int_sem_por_andriod       = int_sem_por_andriod,
                                        int_sem_autos_andriod     = sumaAutosAndriod,
                                        int_sem_autos_ant_andriod = resumenSemAnterior.int_sem_autos_andriod,
                                        int_sem_autos_por_andriod = int_sem_autos_por_andriod,
                                        int_sem_total_autos       = totalAutos,
                                        dec_sem_andriod           = dblingrSemaAndroid,
                                        dec_sem_ant_andriod       = resumenSemAnterior.dec_sem_andriod,
                                        dec_sem_por_andriod       = dec_sem_por_andriod,
                                        int_sem_total             = transTotales,
                                        int_sem_total_ant         = resumenSemAnterior.int_sem_total,
                                        int_sem_por_ant           = int_sem_por_ant,
                                        dec_sem_total             = dblIngTotales,
                                        dec_sem_total_ant         = resumenSemAnterior.dec_sem_total,
                                        dec_sem_por_total         = dec_sem_por_total
                                    });
                                    dbContext.SaveChanges();
                                    transaction.Commit();
                                }
                                catch (Exception)
                                {
                                    transaction.Rollback();
                                }
                            }
                        });

                        dblTotalXDiaIos            = 0;
                        dblTotalXDiaAndriod        = 0;
                        intTransIos                = 0;
                        intTransAndriod            = 0;
                        intAutosSemAnteriorIos     = 0;
                        intAutosSemAnteriorAndroid = 0;
                        totalIngresos              = 0;
                        intNoSemanaActual          = 0;
                        /////////////
                        int_sem_por_ios           = 0;
                        int_sem_autos_por_ios     = 0;
                        dec_sem_por_ios           = 0;
                        int_sem_por_andriod       = 0;
                        int_sem_autos_por_andriod = 0;
                        dec_sem_por_andriod       = 0;
                        int_sem_por_ant           = 0;
                        dec_sem_por_total         = 0;
                    }
                    else
                    {
                        // intAutosSemAnteriorIos = resumenSemAnterior.int_sem_autos_ios;
                        //intAutosSemAnteriorAndroid = resumenSemAnterior.int_sem_autos_andriod;

                        var registrosDeSem = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekEnd.Date && x.dtm_fecha.Date <= previousWeekStart.Date && x.int_id_consecion == concns.id).Sum(i => i.int_ios);

                        int    sumaTransSemIos     = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekEnd.Date && x.dtm_fecha.Date <= previousWeekEnd.Date && x.int_id_consecion == concns.id).Sum(i => i.int_ios);
                        int    sumaTransSemAndroid = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekEnd.Date && x.dtm_fecha.Date <= previousWeekStart.Date && x.int_id_consecion == concns.id).Sum(i => i.int_andriod);
                        int    sumaAutosIos        = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekEnd.Date && x.dtm_fecha.Date <= previousWeekStart.Date && x.int_id_consecion == concns.id).Sum(i => i.int_autos_ios);
                        int    sumaAutosAndriod    = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekEnd.Date && x.dtm_fecha.Date <= previousWeekStart.Date && x.int_id_consecion == concns.id).Sum(i => i.int_autos_andriod);
                        double dblingrSemaIOs      = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekEnd.Date && x.dtm_fecha.Date <= previousWeekStart.Date && x.int_id_consecion == concns.id).Sum(i => i.dec_ios);
                        double dblingrSemaAndroid  = dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= previousWeekEnd.Date && x.dtm_fecha.Date <= previousWeekStart.Date && x.int_id_consecion == concns.id).Sum(i => i.dec_andriod);


                        int    totalAutos    = sumaAutosAndriod + sumaAutosIos;
                        int    transTotales  = sumaTransSemIos + sumaTransSemAndroid;
                        double dblIngTotales = dblingrSemaIOs + dblingrSemaAndroid;


                        if (sumaTransSemIos > 0)
                        {
                            int_sem_por_ios = 100;
                        }

                        if (sumaAutosIos > 0)
                        {
                            int_sem_autos_por_ios = 100;
                        }

                        if (dblingrSemaIOs > 0)
                        {
                            dec_sem_por_ios = 100;
                        }

                        if (sumaTransSemAndroid > 0)
                        {
                            int_sem_por_andriod = 100;
                        }

                        if (sumaAutosIos > 0)
                        {
                            int_sem_autos_por_andriod = 100;
                        }

                        if (dblingrSemaAndroid > 0)
                        {
                            dec_sem_por_andriod = 100;
                        }

                        if (transTotales > 0)
                        {
                            int_sem_por_ant = 100;
                        }

                        if (dblIngTotales > 0)
                        {
                            dec_sem_por_total = 100;
                        }


                        var strategy = dbContext.Database.CreateExecutionStrategy();

                        strategy.Execute(() =>
                        {
                            using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                            {
                                try
                                {
                                    dbContext.tbresumensemanal.Add(new ResumenSemanal()
                                    {
                                        int_id_consecion          = concns.id,
                                        dtm_fecha_inicio          = previousWeekEnd,
                                        dtm_fecha_fin             = previousWeekStart,
                                        int_semana                = intNoSemanaActual,
                                        int_anio                  = time.Year,
                                        int_semana_ant            = inNoSemAnterior,
                                        int_sem_ios               = sumaTransSemIos,
                                        int_sem_ant_ios           = 0,
                                        int_sem_por_ios           = int_sem_por_ios,
                                        int_sem_autos_ios         = sumaAutosIos,
                                        int_sem_autos_ant_ios     = 0,
                                        int_sem_autos_por_ios     = int_sem_autos_por_ios,
                                        dec_sem_ios               = dblingrSemaIOs,
                                        dec_sem_ant_ios           = 0.00,
                                        dec_sem_por_ios           = dec_sem_por_ios,
                                        int_sem_andriod           = sumaTransSemAndroid,
                                        int_sem_ant_andriod       = 0,
                                        int_sem_por_andriod       = int_sem_por_andriod,
                                        int_sem_autos_andriod     = sumaAutosAndriod,
                                        int_sem_autos_ant_andriod = 0,
                                        int_sem_autos_por_andriod = int_sem_autos_por_andriod,
                                        int_sem_total_autos       = totalAutos,
                                        dec_sem_andriod           = dblingrSemaAndroid,
                                        dec_sem_ant_andriod       = 0.00,
                                        dec_sem_por_andriod       = dec_sem_por_andriod,
                                        int_sem_total             = transTotales,
                                        int_sem_total_ant         = 0,
                                        int_sem_por_ant           = int_sem_por_ant,
                                        dec_sem_total             = dblIngTotales,
                                        dec_sem_total_ant         = 0.00,
                                        dec_sem_por_total         = dec_sem_por_total,
                                    });;
                                    dbContext.SaveChanges();
                                    transaction.Commit();
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                            }
                        });


                        dblTotalXDiaIos            = 0;
                        dblTotalXDiaAndriod        = 0;
                        intTransIos                = 0;
                        intTransAndriod            = 0;
                        intAutosSemAnteriorIos     = 0;
                        intAutosSemAnteriorAndroid = 0;
                        totalIngresos              = 0;
                        intNoSemanaActual          = 0;
                        /////////////
                        int_sem_por_ios           = 0;
                        int_sem_autos_por_ios     = 0;
                        dec_sem_por_ios           = 0;
                        int_sem_por_andriod       = 0;
                        int_sem_autos_por_andriod = 0;
                        dec_sem_por_andriod       = 0;
                        int_sem_por_ant           = 0;
                        dec_sem_por_total         = 0;
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(Task.CompletedTask);
        }
        private void btProximo_Click(object sender, RoutedEventArgs e)
        {
            if (selectedIndex == 3)
            {
                thread_transferencia = new Thread(EfetuarTransferencia);
                thread_transferencia.Start();
                return;
            }

            if (selectedIndex != 0)
            {
                if (telas[selectedIndex].Valor == 0)
                {
                    MessageBox.Show("Informe o valor da movimentação", "Atenção", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                if (telas[selectedIndex].Conta_id == 0)
                {
                    MessageBox.Show("Selecione a conta", "Atenção", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                if (telas[selectedIndex].Plano_conta_id == 0)
                {
                    MessageBox.Show("Seleciona o plano de contas", "Atenção", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                if (telas[1].Conta_id == telas[2].Conta_id)
                {
                    MessageBox.Show("As contas devem ser diferentes", "Atenção", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }


                Contas conta = new ContasController().Find(telas[selectedIndex].Conta_id);
                if (telas[selectedIndex].Tipo_lancamento == Enums.Tipo_lancamento.SAIDA)
                {
                    if (conta.Saldo <= 0)
                    {
                        Parametros p = ParametrosController.FindParametro("TCNT_SLDZRO");
                        if (p.Valor.Equals("N"))
                        {
                            MessageBox.Show(@"Não é possível realizar uma movimentação de saída nesta
conta por que o saldo atual está igual ou inferior a zero, e o sistema
está atualmente configurado para bloquear está ação.", "TCNT_SLDZRO", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                            return;
                        }

                        if (!p.Valor.Equals("S"))
                        {
                            MessageBox.Show(@"Não é possível completar a ação por que o valor informado
no parâmetro de sistema 'TCNT_SLDZRO' não foi reconhecido.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                    }

                    if ((conta.Saldo - telas[selectedIndex].Valor) <= 0)
                    {
                        Parametros p = ParametrosController.FindParametro("TCNT_RSLDZRO");
                        if (p.Valor.Equals("N"))
                        {
                            MessageBox.Show(@"Não é possível realizar uma movimentação de saída nesta conta 
por que o saldo da conta será igual ou inferior a zero após a movimentação, e o sistema está atualmente 
configurado para bloquear esta ação.", "TCNT_RSLDZRO", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                            return;
                        }

                        if (!p.Valor.Equals("S"))
                        {
                            MessageBox.Show(@"Não é possível completar a ação por que o valor informado
no parâmetro de sistema 'TCNT_RSLDZRO' não foi reconhecido.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                    }
                }
            }

            if (selectedIndex == 2)
            {
                btProximo.Content = "Concluir";
                telas[3]          = new Confirmar(telas[1], telas[2]);
                selectedIndex++;
                GridContainer.Children.Clear();
                GridContainer.Children.Add(telas[selectedIndex].CurrentView);

                return;
            }

            selectedIndex++;

            if (selectedIndex == 2)
            {
                telas[selectedIndex].Valor = telas[1].Valor;
            }

            GridContainer.Children.Clear();
            GridContainer.Children.Add(telas[selectedIndex].CurrentView);
        }
Exemplo n.º 21
0
 public frmCadParametros()
 {
     InitializeComponent();
     ParametrosController = new ParametrosController();
     HabilitaCampos();
 }
        private void Pesquisar()
        {
            List <Parametros> list = new ParametrosController().Search(txPesquisa.Text);

            dataGrid.ItemsSource = list;
        }
Exemplo n.º 23
0
        private void Setup()
        {
            Movimentos_caixasController mc_controller = new Movimentos_caixasController();

            if (!mc_controller.CaixaAberto(UsuariosController.UsuarioAtual.Id))
            {
                AberturaCaixa ac = new AberturaCaixa();
                ac.ShowDialog();

                if (!ac.CaixaAberto)
                {
                    Close();
                }
            }

            txProduto.Focus();
            Pago = false;
            txQuant.ToMoney();
            txQuant.IsEnabled = false;

            btPagamento.IsEnabled = false;
            btCliente.IsEnabled   = false;
            string parametroAtual = "";

            try
            {
                ParametrosController       parametros    = new ParametrosController();
                Tipos_movimentoController  tmvController = new Tipos_movimentoController();
                Formas_pagamentoController fpgController = new Formas_pagamentoController();

                #region Parametro TP_PDV
                Parametros paramTipoPdv = parametros.FindParametroLojaAtual("TP_PDV", true);
                if (paramTipoPdv == null)
                {
                    paramTipoPdv = parametros.FindParametroLojaAtual("TP_PDV", false);
                }

                if (paramTipoPdv == null)
                {
                    MessageBox.Show("Não é possível iniciar o PDV por que o parâmetro de sistema 'TP_PDV' não foi atribuido.", "TP_PDV", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    Close();
                }

                if (string.IsNullOrEmpty(paramTipoPdv.Valor))
                {
                    MessageBox.Show("Não é possível iniciar o PDV por que o parâmetro de sistema 'TP_PDV' não foi atribuido.", "TP_PDV", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    Close();
                }

                if (paramTipoPdv.Valor != "PDV" && paramTipoPdv.Valor != "PDP")
                {
                    MessageBox.Show("Não é possível iniciar o PDV por que o valor do parâmetro de sistema 'TP_PDV' não pôde ser reconhecido.", "TP_PDV", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    Close();
                }

                Tipo_pdv = (paramTipoPdv.Valor == "PDV"
                    ? Tipo_PDV.PDV
                    : Tipo_PDV.PDP);
                #endregion

                #region PAGAMENTOS
                List <Parametros> parametrosPagamentos = parametros.ParametrosPagamentoPDV();

                foreach (Parametros param in parametrosPagamentos)
                {
                    if (param.Valor == null || param.Valor == "0" || param.Valor == "" || param.Valor == "NA")
                    {
                        continue;
                    }

                    Formas_pagamento fpg = fpgController.Find(int.Parse(param.Valor));
                    if (fpg == null)
                    {
                        continue;
                    }

                    Atalhos_pagamentos.Add(new KeyValuePair <int, Formas_pagamento>(int.Parse(param.Nome.Replace("PDV_F", string.Empty)), fpg));
                }
                #endregion

                #region TMV VENDA
                Parametros pTmvVenda = parametros.FindParametroLojaAtual("TMV_VNDPDV", true);
                parametroAtual = "TMV_VNDPDV";

                if (pTmvVenda == null)
                {
                    pTmvVenda = parametros.FindParametroLojaAtual("TMV_VNDPDV", false);
                    if (pTmvVenda == null)
                    {
                        MessageBox.Show("Não é possível iniciar o PDV porque o parâmetro de sistema 'TMV_VNDPDV' não foi atribuido para este computador. \nAcione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                        Close();
                    }
                }

                if (pTmvVenda.Valor == null || pTmvVenda.Valor == "0" || pTmvVenda.Valor == "")
                {
                    MessageBox.Show("O parâmetro de sistema 'TMV_VNDPDV' não foi informado corretamente ou não foi reconhecido. \nAcione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                    Close();;
                }

                Tipos_movimento tmvVenda = tmvController.Find(int.Parse(pTmvVenda.Valor));
                if (tmvVenda == null)
                {
                    MessageBox.Show("O tipo de movimento para VENDA informado no parâmetro 'TMV_VNDPDV' não existe. \nAcione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                    Close();
                }

                if (tmvVenda.Movimentacao_itens != (int)Tipo_movimentacao.SAIDA)
                {
                    MessageBox.Show(@"Não é possível iniciar o PDV por que o Tipo de Movimento designado para operações de 
de VENDA no parâmetro 'TMV_VNDPDV' não é compatível. A operação de VENDA requer um Tipo de Movimento cujo
a movimentação de produtos é SAIDA.
Acione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);

                    Close();
                }

                Tipo_movimento_id_venda = tmvVenda;
                #endregion

                #region TMV DEVOLUCAO
                Parametros pDevolucao = parametros.FindParametroLojaAtual("TMV_DEVPDV", true);
                parametroAtual = "TMV_DEVPDV";
                if (pDevolucao == null)
                {
                    pDevolucao = parametros.FindParametroLojaAtual("TMV_DEVPDV", false);
                    if (pDevolucao == null)
                    {
                        MessageBox.Show("Não é possivel iniciar o PDV porque o parâmetro de sistema 'TMV_DEVPDV' não foi atribuido para este computador. \nAcione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                        Close();
                    }
                }

                if (pDevolucao.Valor == null || pDevolucao.Valor == "0" || pDevolucao.Valor == "")
                {
                    MessageBox.Show("Não é possível iniciar o PDV porque o parâmetro de sistema 'TMV_DEVPDV' não foi atribuido ou seu valor não foi reconhecido. \nAcione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                    Close();
                }

                Tipos_movimento tmvDevolucao = tmvController.Find(int.Parse(pDevolucao.Valor));
                if (tmvDevolucao == null)
                {
                    MessageBox.Show("Não é possível iniciar o PDV porque o Tipo de Movimento informado no parâmetro de sistema 'TMV_DEVPDV' não existe. \nAcione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                    Close();
                }

                if (tmvDevolucao.Movimentacao_itens != (int)Tipo_movimentacao.ENTRADA)
                {
                    MessageBox.Show(@"Não é possível iniciar o PDV por que o Tipo de Movimento designado para operações de 
de DEVOLUÇÃO no parâmetro 'TMV_DEVPDV' não é compatível. A operação de DEVOLUÇÃO requer um Tipo de Movimento cujo
a movimentação de produtos é ENTRADA.
Acione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);

                    Close();
                }

                Tipo_movimento_id_devolucao = tmvDevolucao;
                #endregion
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não é possível iniciar o PDV porque o parâmetro de sistema '" + parametroAtual + "' não foi informado corretamente ou seu valor não pôde ser reconhecido. \nAcione o suporte Doware.", "Erro de configuração", MessageBoxButton.OK, MessageBoxImage.Error);
                Close();
            }
        }
        public override Task DoWork(CancellationToken cancellationToken)
        {
            var scope      = scopeFactory.CreateScope();
            var dbContext  = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            int intIdMulta = 0;
            ParametrosController    par   = new ParametrosController(dbContext);
            ActionResult <DateTime> time1 = par.mtdObtenerFechaMexico();
            DateTime time = time1.Value;

            //DateTime time = DateTime.Now;

            try
            {
                double dblTotalXDiaIos            = 0;
                double dblTotalXDiaAndriod        = 0;
                int    intTransIos                = 0;
                int    intTransAndriod            = 0;
                int    intAutosDiaAnteriorIos     = 0;
                int    intAutosDiaAnteriorAndroid = 0;
                double totalIngresos              = 0;
                // DateTime dia = DateTime.Now;

                ///////////////////

                Double int_porc_ios      = 0;
                Double dec_porc_ios      = 0;
                Double int_porc_andriod  = 0;
                Double dec_porc_andriod  = 0;
                Double int_por_ant_total = 0;
                Double dec_por_ant_total = 0;

                ///////
                Double int_autos_por_andriod = 0;
                Double int_autos_por_ios     = 0;


                var concesiones = dbContext.tbconcesiones.ToList();

                foreach (var concns in concesiones)
                {
                    //Para obtener dato de los autos del dia anterior
                    DateTime diaanterior         = time.AddDays(-1);
                    var      autosDiaAnteriorIos = dbContext.tbresumendiario.FirstOrDefault(x => x.dtm_fecha.Date == diaanterior.Date && x.int_id_consecion == concns.id);


                    if (autosDiaAnteriorIos != null)
                    {
                        intAutosDiaAnteriorIos     = autosDiaAnteriorIos.int_autos_ios;
                        intAutosDiaAnteriorAndroid = autosDiaAnteriorIos.int_autos_andriod;
                        //Para obtener los detalles de ios
                        var movIOS = (from det in dbContext.tbdetallemovimientos
                                      join mov in dbContext.tbmovimientos on det.int_idmovimiento equals mov.id
                                      where mov.str_so == "IOS" && det.dtm_horaInicio.Date == time.Date &&
                                      mov.intidconcesion_id == concns.id
                                      select det).ToList();
                        //Para obtener los detalles de andriod
                        var movAndriod = (from det in dbContext.tbdetallemovimientos
                                          join mov in dbContext.tbmovimientos on det.int_idmovimiento equals mov.id
                                          where mov.str_so == "ANDROID" && det.dtm_horaInicio.Date == time.Date &&
                                          mov.intidconcesion_id == concns.id
                                          select det).ToList();

                        //Para obtener las transacciones de ios
                        var movTansacciones = (from mov in dbContext.tbmovimientos
                                               where mov.str_so == "IOS" && mov.intidconcesion_id == concns.id && mov.dt_hora_inicio.Date == time.Date
                                               select mov).ToList();

                        //Para obtener las transacciones de andriod
                        var movTansaccionesAndriod = (from mov in dbContext.tbmovimientos
                                                      where mov.str_so == "ANDROID" && mov.intidconcesion_id == concns.id && mov.dt_hora_inicio.Date == time.Date
                                                      select mov).ToList();

                        foreach (var item in movIOS)
                        {
                            dblTotalXDiaIos = dblTotalXDiaIos + item.flt_importe;

                            if (item.flt_descuentos != 0)
                            {
                                string d   = item.flt_descuentos.ToString();
                                double flt = double.Parse(d.Trim('-'));

                                dblTotalXDiaIos = dblTotalXDiaIos - flt;
                            }
                            if (item.str_observaciones != "DESAPARCADO")
                            {
                                intTransIos++;
                            }
                        }

                        foreach (var item in movAndriod)
                        {
                            dblTotalXDiaAndriod = dblTotalXDiaAndriod + item.flt_importe;

                            if (item.flt_descuentos != 0)
                            {
                                string d   = item.flt_descuentos.ToString();
                                double flt = double.Parse(d.Trim('-'));

                                dblTotalXDiaAndriod = dblTotalXDiaAndriod - flt;
                            }
                            if (item.str_observaciones != "DESAPARCADO")
                            {
                                intTransAndriod++;
                            }
                        }

                        int    intSumTransacciones = intTransIos + intTransAndriod;
                        Double totalDia            = dblTotalXDiaIos + dblTotalXDiaAndriod;


                        if (intAutosDiaAnteriorIos != 0)
                        {
                            int_porc_ios = (((double)intTransIos / (double)intAutosDiaAnteriorIos) - 1);
                            int_porc_ios = int_porc_ios * 100;
                        }
                        else
                        {
                            if (intTransIos > 0)
                            {
                                int_porc_ios = 100;
                            }
                        }
                        if (autosDiaAnteriorIos.dec_ios != 0)
                        {
                            dec_porc_ios = ((dblTotalXDiaIos / autosDiaAnteriorIos.dec_ios) - 1);
                            dec_porc_ios = dec_porc_ios * 100;
                        }
                        else
                        {
                            if (dblTotalXDiaIos > 0)
                            {
                                dec_porc_ios = 100;
                            }
                        }
                        if (intAutosDiaAnteriorAndroid != 0)
                        {
                            int_porc_andriod = (((double)intTransAndriod / (double)intAutosDiaAnteriorAndroid) - 1);
                            int_porc_andriod = int_porc_andriod * 100;
                        }
                        else
                        {
                            if (intTransAndriod > 0)
                            {
                                int_porc_andriod = 100;
                            }
                        }

                        if (autosDiaAnteriorIos.dec_andriod != 0)
                        {
                            dec_porc_andriod = ((dblTotalXDiaAndriod / autosDiaAnteriorIos.dec_andriod) - 1);
                            dec_porc_andriod = dec_porc_andriod * 100;
                        }
                        else
                        {
                            if (dblTotalXDiaAndriod > 0)
                            {
                                dec_porc_andriod = 100;
                            }
                        }

                        if (autosDiaAnteriorIos.int_total != 0)
                        {
                            int_por_ant_total = (((double)intSumTransacciones / (double)autosDiaAnteriorIos.int_total) - 1);
                            int_por_ant_total = int_por_ant_total * 100;
                        }
                        else
                        {
                            if (intSumTransacciones > 0)
                            {
                                int_por_ant_total = 100;
                            }
                        }

                        if (autosDiaAnteriorIos.dec_total != 0)
                        {
                            dec_por_ant_total = ((totalDia / autosDiaAnteriorIos.dec_total) - 1);

                            dec_por_ant_total = dec_por_ant_total * 100;
                        }
                        else
                        {
                            if (totalDia > 0)
                            {
                                dec_por_ant_total = 100;
                            }
                        }
                        if (autosDiaAnteriorIos.int_autos_andriod != 0)
                        {
                            int_autos_por_andriod = (((double)movTansaccionesAndriod.Count / (double)autosDiaAnteriorIos.int_autos_andriod) - 1);
                            int_autos_por_andriod = int_autos_por_andriod * 100;
                        }
                        if (autosDiaAnteriorIos.int_autos_ios != 0)
                        {
                            int_autos_por_ios = (((double)movTansacciones.Count / (double)autosDiaAnteriorIos.int_autos_ios) - 1);
                            int_autos_por_ios = int_autos_por_ios * 100;
                        }


                        var strategy = dbContext.Database.CreateExecutionStrategy();
                        strategy.Execute(() =>
                        {
                            using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                            {
                                try
                                {
                                    dbContext.tbresumendiario.Add(new ResumenDiario()
                                    {
                                        int_id_consecion      = concns.id,
                                        dtm_fecha             = time,
                                        int_dia               = time.Day,
                                        int_mes               = time.Month,
                                        int_anio              = time.Year,
                                        str_dia_semama        = time.DayOfWeek.ToString(),
                                        dtm_dia_anterior      = autosDiaAnteriorIos.dtm_fecha,
                                        str_dia_sem_ant       = autosDiaAnteriorIos.str_dia_semama,
                                        int_ios               = intTransIos,
                                        int_ant_ios           = autosDiaAnteriorIos.int_ios,
                                        int_por_ios           = int_porc_ios,
                                        int_autos_ios         = movTansacciones.Count,
                                        int_autos_ant_ios     = autosDiaAnteriorIos.int_autos_ios,
                                        dec_ios               = dblTotalXDiaIos,
                                        dec_ant_ios           = autosDiaAnteriorIos.dec_ios,
                                        dec_por_ios           = dec_porc_ios,
                                        int_andriod           = intTransAndriod,
                                        int_ant_andriod       = autosDiaAnteriorIos.int_andriod,
                                        int_por_andriod       = int_porc_andriod,
                                        int_autos_andriod     = movTansaccionesAndriod.Count,
                                        int_autos_ant_andriod = autosDiaAnteriorIos.int_autos_andriod,
                                        dec_andriod           = dblTotalXDiaAndriod,
                                        dec_ant_andriod       = autosDiaAnteriorIos.dec_andriod,
                                        dec_por_andriod       = dec_porc_andriod,
                                        int_total             = intTransIos + intTransAndriod,
                                        int_total_ant         = autosDiaAnteriorIos.int_andriod + autosDiaAnteriorIos.int_ios,
                                        int_por_ant_total     = int_por_ant_total,
                                        dec_total             = dblTotalXDiaIos + dblTotalXDiaAndriod,
                                        dec_total_ant         = autosDiaAnteriorIos.dec_ios + autosDiaAnteriorIos.dec_andriod,
                                        dec_por_ant_total     = dec_por_ant_total,
                                        int_total_autos       = movTansacciones.Count + movTansaccionesAndriod.Count,
                                        int_autos_por_andriod = int_autos_por_andriod,
                                        int_autos_por_ios     = int_autos_por_ios
                                    });
                                    dbContext.SaveChanges();
                                    transaction.Commit();
                                    intTransIos     = 0;
                                    intTransAndriod = 0;
                                }
                                catch (Exception ex)
                                {
                                    transaction.Rollback();
                                }
                            }
                        });

                        int_porc_ios          = 0;
                        dec_porc_ios          = 0;
                        int_porc_andriod      = 0;
                        dec_porc_andriod      = 0;
                        int_por_ant_total     = 0;
                        dec_por_ant_total     = 0;
                        int_autos_por_andriod = 0;
                        int_autos_por_ios     = 0;
                        dblTotalXDiaIos       = 0;
                        dblTotalXDiaAndriod   = 0;
                    }
                    else
                    {
                        var movIOS = (from det in dbContext.tbdetallemovimientos
                                      join mov in dbContext.tbmovimientos on det.int_idmovimiento equals mov.id
                                      where mov.str_so == "IOS" && det.dtm_horaInicio.Date == time.Date &&
                                      mov.intidconcesion_id == concns.id
                                      select det).ToList();
                        //Para obtener los detalles de andriod
                        var movAndriod = (from det in dbContext.tbdetallemovimientos
                                          join mov in dbContext.tbmovimientos on det.int_idmovimiento equals mov.id
                                          where mov.str_so == "ANDROID" && det.dtm_horaInicio.Date == time.Date &&
                                          mov.intidconcesion_id == concns.id
                                          select det).ToList();

                        //Para obtener las transacciones de ios
                        var movTansacciones = (from mov in dbContext.tbmovimientos
                                               where mov.str_so == "IOS" && mov.intidconcesion_id == concns.id && mov.dt_hora_inicio.Date == time.Date
                                               select mov).ToList();

                        //Para obtener las transacciones de andriod
                        var movTansaccionesAndriod = (from mov in dbContext.tbmovimientos
                                                      where mov.str_so == "ANDROID" && mov.intidconcesion_id == concns.id && mov.dt_hora_inicio.Date == time.Date
                                                      select mov).ToList();



                        foreach (var item in movIOS)
                        {
                            dblTotalXDiaIos = dblTotalXDiaIos + item.flt_importe;

                            if (item.flt_descuentos != 0)
                            {
                                string d   = item.flt_descuentos.ToString();
                                double flt = double.Parse(d.Trim('-'));

                                dblTotalXDiaIos = dblTotalXDiaIos - item.flt_descuentos;
                            }
                            if (item.str_observaciones != "DESAPARCADO")
                            {
                                intTransIos++;
                            }
                        }

                        foreach (var item in movAndriod)
                        {
                            dblTotalXDiaAndriod = dblTotalXDiaAndriod + item.flt_importe;

                            if (item.flt_descuentos != 0)
                            {
                                string d   = item.flt_descuentos.ToString();
                                double flt = double.Parse(d.Trim('-'));

                                dblTotalXDiaAndriod = dblTotalXDiaAndriod - item.flt_descuentos;
                            }
                            if (item.str_observaciones != "DESAPARCADO")
                            {
                                intTransAndriod++;
                            }
                        }

                        Double   totalDia            = dblTotalXDiaIos + dblTotalXDiaAndriod;
                        int      intSumTransacciones = intTransIos + intTransAndriod;
                        DateTime t = time.AddDays(-1);



                        if (intTransIos > 0)
                        {
                            int_porc_ios = 100;
                        }



                        if (dblTotalXDiaIos > 0)
                        {
                            dec_porc_ios = 100;
                        }


                        if (intTransAndriod > 0)
                        {
                            int_porc_andriod = 100;
                        }



                        if (dblTotalXDiaAndriod > 0)
                        {
                            dec_porc_andriod = 100;
                        }



                        if (intSumTransacciones > 0)
                        {
                            int_por_ant_total = 100;
                        }



                        if (totalDia > 0)
                        {
                            dec_por_ant_total = 100;
                        }


                        if (movTansaccionesAndriod.Count > 0)
                        {
                            int_autos_por_andriod = 100;
                        }

                        if (movTansacciones.Count > 0)
                        {
                            int_autos_por_ios = 100;
                        }


                        var strategy = dbContext.Database.CreateExecutionStrategy();
                        strategy.Execute(() =>
                        {
                            using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                            {
                                try
                                {
                                    dbContext.tbresumendiario.Add(new ResumenDiario()
                                    {
                                        int_id_consecion = concns.id,
                                        dtm_fecha        = time,
                                        int_dia          = time.Day,
                                        int_mes          = time.Month,
                                        int_anio         = time.Year,
                                        str_dia_semama   = time.DayOfWeek.ToString(),
                                        //Aqui falta
                                        dtm_dia_anterior  = time.AddDays(-1),
                                        str_dia_sem_ant   = t.DayOfWeek.ToString(),
                                        int_ios           = intTransIos,
                                        int_ant_ios       = 0,
                                        int_por_ios       = int_porc_ios,
                                        int_autos_ios     = movTansacciones.Count,
                                        int_autos_por_ios = int_autos_por_ios,
                                        int_autos_ant_ios = 0,
                                        dec_ios           = dblTotalXDiaIos,
                                        dec_ant_ios       = 0,
                                        //*
                                        dec_por_ios     = dblTotalXDiaIos,
                                        int_andriod     = intTransAndriod,
                                        int_ant_andriod = 0,
                                        //*
                                        int_por_andriod       = int_porc_andriod,
                                        int_autos_por_andriod = int_autos_por_andriod,
                                        int_total_autos       = movTansacciones.Count + movTansaccionesAndriod.Count,
                                        int_autos_andriod     = movTansaccionesAndriod.Count,
                                        int_autos_ant_andriod = 0,
                                        dec_andriod           = dblTotalXDiaAndriod,
                                        dec_ant_andriod       = 0,
                                        dec_por_andriod       = dblTotalXDiaAndriod,
                                        int_total             = intTransIos + intTransAndriod,
                                        int_total_ant         = 0,
                                        int_por_ant_total     = 0,
                                        dec_total             = dblTotalXDiaIos + dblTotalXDiaAndriod,
                                        dec_total_ant         = 0,
                                        dec_por_ant_total     = 0
                                    });;
                                    dbContext.SaveChanges();
                                    transaction.Commit();
                                    intTransIos     = 0;
                                    intTransAndriod = 0;
                                }
                                catch (Exception ex)
                                {
                                    transaction.Rollback();
                                }
                            }
                        });
                    }
                    int_porc_ios          = 0;
                    dec_porc_ios          = 0;
                    int_porc_andriod      = 0;
                    dec_porc_andriod      = 0;
                    int_por_ant_total     = 0;
                    dec_por_ant_total     = 0;
                    int_autos_por_andriod = 0;
                    int_autos_por_ios     = 0;
                    dblTotalXDiaIos       = 0;
                    dblTotalXDiaAndriod   = 0;
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 25
0
        public override Task DoWork(CancellationToken cancellationToken)
        {
            var scope      = scopeFactory.CreateScope();
            var _dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();

            ParametrosController    par   = new ParametrosController(_dbContext);
            ActionResult <DateTime> time1 = par.mtdObtenerFechaMexico();
            DateTime time = time1.Value;

            // DateTime time = DateTime.Now;

            var movimientos = _dbContext.tbmovimientos.Where(x => x.str_comentarios == "MULTA").ToList();

            if (movimientos.Count != 0)
            {
                foreach (var item in movimientos)
                {
                    var strategy = _dbContext.Database.CreateExecutionStrategy();
                    strategy.Execute(() =>
                    {
                        using (IDbContextTransaction transaction = _dbContext.Database.BeginTransaction())
                        {
                            try
                            {
                                var multaResponse            = _dbContext.tbmultas.FirstOrDefault(x => x.id == item.int_id_multa);
                                multaResponse.bit_status     = false;
                                multaResponse.str_tipo_multa = "MULTA DESPUES DE LAS 10";
                                _dbContext.SaveChanges();


                                var response             = _dbContext.tbmovimientos.FirstOrDefault(x => x.id == multaResponse.int_id_movimiento_id);
                                response.str_comentarios = "MULTA DESPUES DE LAS 10";
                                response.bit_status      = false;
                                _dbContext.SaveChanges();


                                var movimiento = _dbContext.tbmovimientos.FirstOrDefault(x => x.id == multaResponse.int_id_movimiento_id);
                                var usuario    = _dbContext.NetUsers.FirstOrDefault(x => x.Id == movimiento.int_id_usuario_id);

                                _dbContext.tbdetallemulta.Add(new DetalleMulta()
                                {
                                    int_id_multa    = item.int_id_multa.Value,
                                    bit_status      = true,
                                    dtmFecha        = time,
                                    str_usuario     = usuario.strNombre + " " + usuario.strApellidos,
                                    flt_monto       = 0.00,
                                    str_comentarios = "MULTA DESPUES DE LAS 10"
                                });
                                _dbContext.SaveChanges();

                                var espacio = _dbContext.tbespacios.FirstOrDefault(x => x.id == item.int_id_espacio);
                                if (response.int_id_espacio == null)
                                {
                                    _dbContext.tbdetallemovimientos.Add(new DetalleMovimientos()
                                    {
                                        int_idmovimiento   = multaResponse.int_id_movimiento_id.Value,
                                        int_id_usuario_id  = response.int_id_usuario_id,
                                        int_duracion       = response.int_tiempo,
                                        dtm_horaInicio     = response.dt_hora_inicio,
                                        dtm_horaFin        = response.dtm_hora_fin,
                                        flt_importe        = 0.00,
                                        flt_saldo_anterior = 0.00,
                                        flt_saldo_fin      = 0.00,
                                        str_observaciones  = response.str_comentarios
                                    });
                                    _dbContext.SaveChanges();
                                }
                                else
                                {
                                    _dbContext.tbdetallemovimientos.Add(new DetalleMovimientos()
                                    {
                                        int_idmovimiento   = multaResponse.int_id_movimiento_id.Value,
                                        int_idespacio      = response.int_id_espacio.Value,
                                        int_id_usuario_id  = response.int_id_usuario_id,
                                        int_id_zona        = espacio.id_zona,
                                        int_duracion       = response.int_tiempo,
                                        dtm_horaInicio     = response.dt_hora_inicio,
                                        dtm_horaFin        = response.dtm_hora_fin,
                                        flt_importe        = 0.00,
                                        flt_saldo_anterior = 0.00,
                                        flt_saldo_fin      = 0.00,
                                        str_observaciones  = response.str_comentarios
                                    });

                                    _dbContext.SaveChanges();
                                }


                                transaction.Commit();
                            }

                            catch (Exception ex)
                            {
                                transaction.Rollback();
                            }
                        }
                    });
                }
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 26
0
        private void AdicionaItem()
        {
            Itens_movimento item = new Itens_movimento();
            Estoque         est  = new ProdutosController().Get(txProduto.Text);
            Produtos        prod = est.Produtos;

            if (Tipo_movimento.Movimentacao_itens == (int)Tipo_movimentacao.SAIDA)
            {
                if (est.Quant <= 0)
                {
                    if (ParametrosController.FindParametro("EST_SAIZERO").Valor.Equals("N"))
                    {
                        MessageBox.Show($"Não é possível retirar o produto '{est.Produtos.Descricao}' do estoque porque o sistema está atualmente configurado para não permitir retiradas de estoque cujo o saldo atual é igual ou inferior a 0.", "EST_SAIZERO", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                        return;
                    }
                }
            }

            if (prod == null)
            {
                return;
            }

            item.Produto_id = prod.Id;
            item.Produtos   = prod;
            item.Lote       = est.Lote;
            item.Sublote    = est.Sublote;
            item.Aliquota   = prod.Aliquota;
            item.Valor_unit = (Tipo_movimento.Utiliza_fornecedor
                 ? prod.Produtos_fornecedores.First(pf => pf.Fornecedor_id == int.Parse(txCod_cliente_fornecedor.Text)).Preco_custo
                 : prod.Valor_unit);
            item.Desconto    = this.Desconto;
            item.Acrescimo   = this.Acrescimo;
            item.Quant       = decimal.Parse(txQuant.Text);
            item.Valor_final = decimal.Parse(txValor_final.Text);
            item.Cfop        = Tipo_movimento.Cfop;
            item.Vendedor_id = int.Parse(txCod_vendedor.Text);

            if (Tipo_movimento.Utiliza_fornecedor && Tipo_movimento.Movimentacao_itens == (int)Tipo_movimentacao.ENTRADA)
            {
                item.Unidades = prod.Produtos_fornecedores.First(pf => pf.Fornecedor_id == int.Parse(txCod_cliente_fornecedor.Text)).Unidades;
            }
            else
            {
                item.Unidades = prod.Unidades;
            }

            item.Unidade_id = item.Unidades.Id;

            Movimento_Controller.AdicionaItem(item);
            dataGrid.ItemsSource = Movimento_Controller.Itens_movimento;

            txProduto.Text              = "0";
            txValor_unit.Text           = "0,00";
            txQuant.Text                = "0,00";
            txTotal_prod.Text           = "0,00";
            txDesconto.Text             = "0,00";
            txAcrescimo.Text            = "0,00";
            txValor_final.Text          = "0,00";
            lbDescricao_produto.Content = string.Empty;
            lbFatorConversao.Visibility = Visibility.Hidden;
            txProduto.Focus();
            txProduto.Text        = string.Empty;
            Desconto              = 0;
            Acrescimo             = 0;
            txDesconto.IsEnabled  = true;
            txAcrescimo.IsEnabled = true;

            RecalculaTotais();
        }
Exemplo n.º 27
0
        public async void mtdRealizarMultaAutomatica()
        {
            var scope      = scopeFactory.CreateScope();
            var dbContext  = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            int intIdMulta = 0;
            //String responseString = await client.GetStringAsync(UrlFecha);
            //dynamic fecha = JsonConvert.DeserializeObject<dynamic>(responseString);
            //string strFecha = fecha.resultado.ToString();

            //DateTime time = DateTime.Now;

            ParametrosController    par  = new ParametrosController(context);
            ActionResult <DateTime> time = par.mtdObtenerFechaMexico();

            var movimientos = await dbContext.tbmovimientos.Where(x => x.dtm_hora_fin.Date == time.Value.Date && x.bit_status == true).ToListAsync();

            if (movimientos.Count != 0)
            {
                foreach (var item in movimientos)
                {
                    if (item.str_comentarios == "APARCADO" || item.str_comentarios.Contains("EXTENSIÓN DE TIEMPO"))
                    {
                        if (time.Value == item.dtm_hora_fin || time.Value > item.dtm_hora_fin)
                        {
                            if (item.int_id_espacio == null)
                            {
                                var strategy = dbContext.Database.CreateExecutionStrategy();
                                await strategy.ExecuteAsync(async() =>
                                {
                                    using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                                    {
                                        try
                                        {
                                            var multa = new Multas()
                                            {
                                                created_by             = "Api Automatica",
                                                bit_status             = true,
                                                dtm_fecha              = time.Value,
                                                flt_monto              = 0.0,
                                                str_motivo             = "Tiempo vencido",
                                                str_tipo_multa         = "MULTA AUTOMATICA",
                                                str_documento_garantia = "SIN GARANTÍA",
                                                str_folio_multa        = "N/A",
                                                str_placa              = item.str_placa,
                                                str_clave_candado      = "N/A",
                                                //Falta modelo
                                                //Falta marca
                                                str_id_agente_id     = "3766f6fd-ebd5-4ad9-a27c-80255557d959",
                                                int_id_movimiento_id = item.id,
                                                //int_id_saldo_id = item.int_id_saldo_id,
                                                int_id_vehiculo_id = item.int_id_vehiculo_id,
                                                intidconcesion_id  = item.intidconcesion_id
                                            };
                                            dbContext.tbmultas.Add(multa);
                                            dbContext.SaveChanges();
                                            intIdMulta = multa.id;

                                            var response             = await dbContext.tbmovimientos.FirstOrDefaultAsync(x => x.id == item.id);
                                            response.str_comentarios = "MULTA";
                                            response.boolean_multa   = true;
                                            response.int_id_multa    = intIdMulta;
                                            dbContext.SaveChanges();

                                            var usuario = await dbContext.NetUsers.FirstOrDefaultAsync(x => x.Id == item.int_id_usuario_id);

                                            dbContext.tbdetallemulta.Add(new DetalleMulta()
                                            {
                                                int_id_multa    = intIdMulta,
                                                bit_status      = true,
                                                dtmFecha        = time.Value,
                                                str_usuario     = usuario.strNombre + " " + usuario.strApellidos,
                                                flt_monto       = 0,
                                                str_comentarios = "MULTA AUTOMÁTICA"
                                            });
                                            dbContext.SaveChanges();

                                            var espacio = await dbContext.tbespacios.FirstOrDefaultAsync(x => x.id == item.int_id_espacio);

                                            dbContext.tbdetallemovimientos.Add(new DetalleMovimientos()
                                            {
                                                int_idmovimiento   = item.id,
                                                int_id_usuario_id  = response.int_id_usuario_id,
                                                int_duracion       = 0,
                                                dtm_horaInicio     = time.Value,
                                                dtm_horaFin        = time.Value,
                                                flt_importe        = 0.0,
                                                flt_saldo_anterior = 0.0,
                                                flt_saldo_fin      = 0.0,
                                                str_observaciones  = response.str_comentarios
                                            });

                                            dbContext.SaveChanges();
                                            transaction.Commit();
                                        }

                                        catch (Exception ex)
                                        {
                                            transaction.Rollback();
                                        }
                                    }
                                });
                            }
                            else
                            {
                                var strategy = dbContext.Database.CreateExecutionStrategy();
                                await strategy.ExecuteAsync(async() =>
                                {
                                    using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                                    {
                                        try
                                        {
                                            var multa = new Multas()
                                            {
                                                created_by             = "Api Automatica",
                                                bit_status             = true,
                                                dtm_fecha              = time.Value,
                                                flt_monto              = 0.0,
                                                str_motivo             = "Tiempo vencido",
                                                str_tipo_multa         = "MULTA AUTOMATICA",
                                                str_documento_garantia = "SIN GARANTÍA",
                                                str_folio_multa        = "N/A",
                                                str_placa              = item.str_placa,
                                                str_clave_candado      = "N/A",
                                                //Falta modelo
                                                //Falta marca
                                                str_id_agente_id     = "98f5553e-5fd9-4ade-bd51-66d6dc2fa9d3",
                                                int_id_movimiento_id = item.id,
                                                //int_id_saldo_id = item.int_id_saldo_id,
                                                int_id_vehiculo_id = item.int_id_vehiculo_id,
                                                intidconcesion_id  = item.intidconcesion_id
                                            };
                                            dbContext.tbmultas.Add(multa);
                                            dbContext.SaveChanges();
                                            intIdMulta = multa.id;

                                            var response             = await dbContext.tbmovimientos.FirstOrDefaultAsync(x => x.id == item.id);
                                            response.str_comentarios = "MULTA";
                                            response.boolean_multa   = true;
                                            response.int_id_multa    = intIdMulta;
                                            dbContext.SaveChanges();

                                            var usuario = await dbContext.NetUsers.FirstOrDefaultAsync(x => x.Id == item.int_id_usuario_id);

                                            dbContext.tbdetallemulta.Add(new DetalleMulta()
                                            {
                                                int_id_multa    = intIdMulta,
                                                bit_status      = true,
                                                dtmFecha        = time.Value,
                                                str_usuario     = usuario.strNombre + " " + usuario.strApellidos,
                                                flt_monto       = 0,
                                                str_comentarios = "MULTA AUTOMÁTICA"
                                            });
                                            dbContext.SaveChanges();

                                            var espacio = await dbContext.tbespacios.FirstOrDefaultAsync(x => x.id == item.int_id_espacio);

                                            dbContext.tbdetallemovimientos.Add(new DetalleMovimientos()
                                            {
                                                int_idmovimiento   = item.id,
                                                int_idespacio      = response.int_id_espacio.Value,
                                                int_id_usuario_id  = response.int_id_usuario_id,
                                                int_id_zona        = espacio.id_zona,
                                                int_duracion       = 0,
                                                dtm_horaInicio     = time.Value,
                                                dtm_horaFin        = time.Value,
                                                flt_importe        = 0.0,
                                                flt_saldo_anterior = 0.0,
                                                flt_saldo_fin      = 0.0,
                                                str_observaciones  = response.str_comentarios
                                            });

                                            dbContext.SaveChanges();
                                            transaction.Commit();
                                        }

                                        catch (Exception ex)
                                        {
                                            transaction.Rollback();
                                        }
                                    }
                                });
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 28
0
        public async Task <ActionResult <Feacture> > mtdInsertarZonaConSecciones([FromBody] Zonas zona)
        {
            try
            {
                int idZona = 0;
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerHora();

                // string jsonFeature = zona.str_poligono;
                // var results = JsonConvert.DeserializeObject<Feacture>(zona.str_poligono);
                dynamic results = JsonConvert.DeserializeObject <dynamic>(zona.str_poligono);

                string zon = results.ToString();

                var zona1 = new Zonas()
                {
                    created_by        = zona.created_by,
                    created_date      = horadeTransaccion.Value,
                    bit_status        = true,
                    str_descripcion   = zona.str_descripcion,
                    str_color         = zona.str_color,
                    str_poligono      = zon,
                    int_id_ciudad_id  = zona.int_id_ciudad_id,
                    intidconcesion_id = zona.intidconcesion_id,
                    str_latitud       = zona.str_latitud,
                    str_longitud      = zona.str_longitud
                };
                context.tbzonas.Add(zona1);
                context.SaveChanges();
                idZona = zona1.id;


                foreach (var token in results["features"])
                {
                    string strT     = token.ToString();
                    string tipo     = token.geometry.type;
                    string strClave = token.properties.desc;
                    //string strColor = token.properties.color;
                    string strPoligono = token.ToString();


                    if (tipo == "LineString")
                    {
                        context.tbsecciones.Add(new Secciones()
                        {
                            str_seccion  = strClave,
                            str_color    = zona.str_color,
                            str_poligono = strPoligono,
                            intidzona_id = idZona,
                            bit_status   = true
                        });

                        context.SaveChanges();
                    }
                    else
                    {
                        var    strCor  = token.geometry.coordinates;
                        string strL    = strCor[1];
                        string strLong = strCor[0];
                        context.tbespacios.Add(new Espacios()
                        {
                            str_clave    = strClave,
                            str_marcador = strPoligono,
                            str_color    = zona.str_color,
                            bit_ocupado  = false,
                            id_zona      = idZona,
                            str_latitud  = strL,
                            str_longitud = strLong,
                            bit_status   = true
                        });;

                        context.SaveChanges();
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(Json(new { token = ex.Message }));
            }
        }
        public async Task mtdRealizarResumenMensual()
        {
            var scope      = scopeFactory.CreateScope();
            var dbContext  = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            int intIdMulta = 0;


            ParametrosController    par   = new ParametrosController(dbContext);
            ActionResult <DateTime> time1 = par.mtdObtenerFechaMexico();
            DateTime time = time1.Value;
            //DateTime time = DateTime.Now;

            string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(time.Month);

            try
            {
                double   dblTotalXDiaIos            = 0;
                double   dblTotalXDiaAndriod        = 0;
                int      intTransIos                = 0;
                int      intTransAndriod            = 0;
                int      intAutosSemAnteriorIos     = 0;
                int      intAutosSemAnteriorAndroid = 0;
                double   totalIngresos              = 0;
                int      intNoSemanaActual          = 0;
                DateTime dia = time;
                //----------------------
                Double int_mes_por_ios           = 0;
                Double int_mes_autos_por_ios     = 0;
                Double dec_mes_por_ios           = 0;
                Double int_mes_por_andriod       = 0;
                Double int_mes_autos_por_andriod = 0;
                Double dec_mes_por_andriod       = 0;
                Double int_mes_por_total         = 0;
                Double dec_mes_por_total         = 0;

                string mesInsertar = "";

                int    sumaTransMesIos     = 0;
                int    sumaTransMesAndroid = 0;
                int    sumaAutosIos        = 0;
                int    sumaAutosAndriod    = 0;
                double dblingrMesIOs       = 0;
                double dblingrMesAndroid   = 0;

                int intMesAnt = dia.Month - 1;

                string strMes = "";
                switch (intMesAnt)
                {
                case 1:
                    strMes = "January";
                    break;

                case 2:
                    strMes = "February";
                    break;

                case 3:
                    strMes = "March";
                    break;

                case 4:
                    strMes = "April";
                    break;

                case 5:
                    strMes = "May";
                    break;

                case 6:
                    strMes = "June";
                    break;

                case 7:
                    strMes = "July";
                    break;

                case 8:
                    strMes = "August";
                    break;

                case 9:
                    strMes = "September";
                    break;

                case 10:
                    strMes = "October";
                    break;

                case 11:
                    strMes = "November";
                    break;

                case 12:
                    strMes = "December";
                    break;
                }



                intMesAnt += 1;
                //Asi obtenemos el primer dia del mes actual
                DateTime oPrimerDiaDelMes = new DateTime(dia.Year, intMesAnt, 1);

                DateTime oPrimerDiaDelMesInserta = oPrimerDiaDelMes;
                //Y de la siguiente forma obtenemos el ultimo dia del mes
                //agregamos 1 mes al objeto anterior y restamos 1 día.
                //oPrimerDiaDelMes = oPrimerDiaDelMes.AddMonths(1).AddDays(-1);
                DateTime oUltimoDiaDelMes = oPrimerDiaDelMes.AddMonths(1).AddDays(-1);
                var      concesiones      = dbContext.tbconcesiones.ToList();

                foreach (var concns in concesiones)
                {
                    var resumenMesAnterior = dbContext.tbresumenmensual.FirstOrDefault(x => x.str_mes == strMes && x.int_id_consecion == concns.id);

                    if (resumenMesAnterior != null)
                    {
                        intAutosSemAnteriorIos     = resumenMesAnterior.int_mes_autos_ios;
                        intAutosSemAnteriorAndroid = resumenMesAnterior.int_mes_autos_andriod;



                        int dias = oUltimoDiaDelMes.Date.Date.Day;
                        dias += 1;

                        for (int i = 1; i < dias; i++)
                        {
                            sumaTransMesIos += await dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(t => t.int_ios);

                            sumaTransMesAndroid += await dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(t => t.int_andriod);

                            sumaAutosIos += await dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(t => t.int_autos_ios);

                            sumaAutosAndriod += await dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(t => t.int_autos_andriod);

                            dblingrMesIOs += await dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(t => t.dec_ios);

                            dblingrMesAndroid += await dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date >= oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(t => t.dec_andriod);

                            oPrimerDiaDelMes = oPrimerDiaDelMes.AddDays(1);
                        }

                        //var registrosDeMes = await context.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(i => i.int_ios);

                        oPrimerDiaDelMes = oPrimerDiaDelMes.AddDays(-31);

                        int    totalAutos    = sumaAutosAndriod + sumaAutosIos;
                        int    transTotales  = sumaTransMesIos + sumaTransMesAndroid;
                        double dblIngTotales = dblingrMesIOs + dblingrMesAndroid;

                        if (resumenMesAnterior.int_mes_ios != 0)
                        {
                            int_mes_por_ios = (((double)sumaTransMesIos / (double)resumenMesAnterior.int_mes_ios) - 1);
                            int_mes_por_ios = int_mes_por_ios * 100;
                        }
                        else
                        {
                            if (sumaTransMesIos > 0)
                            {
                                int_mes_por_ios = 100;
                            }
                        }
                        if (resumenMesAnterior.int_mes_autos_ios != 0)
                        {
                            int_mes_autos_por_ios = (((double)sumaAutosIos / (double)resumenMesAnterior.int_mes_autos_ios) - 1);
                            int_mes_autos_por_ios = int_mes_autos_por_ios * 100;
                        }
                        else
                        {
                            if (sumaAutosIos > 0)
                            {
                                int_mes_autos_por_ios = 100;
                            }
                        }
                        if (resumenMesAnterior.dec_mes_ios != 0)
                        {
                            dec_mes_por_ios = ((dblingrMesIOs / resumenMesAnterior.dec_mes_ios) - 1);
                            dec_mes_por_ios = dec_mes_por_ios * 100;
                        }
                        else
                        {
                            if (dblingrMesIOs > 0)
                            {
                                dec_mes_por_ios = 100;
                            }
                        }
                        if (resumenMesAnterior.int_mes_andriod != 0)
                        {
                            int_mes_por_andriod = (((double)sumaTransMesAndroid / (double)resumenMesAnterior.int_mes_andriod) - 1);
                            int_mes_por_andriod = int_mes_por_andriod * 100;
                        }
                        else
                        {
                            if (sumaTransMesAndroid > 0)
                            {
                                int_mes_por_andriod = 100;
                            }
                        }
                        if (resumenMesAnterior.int_mes_autos_andriod != 0)
                        {
                            int_mes_autos_por_andriod = (((double)sumaAutosAndriod / (double)resumenMesAnterior.int_mes_autos_andriod) - 1);
                            int_mes_autos_por_andriod = int_mes_autos_por_andriod * 100;
                        }
                        else
                        {
                            if (sumaAutosAndriod > 0)
                            {
                                int_mes_autos_por_andriod = 100;
                            }
                        }

                        if (resumenMesAnterior.dec_mes_andriod != 0)
                        {
                            dec_mes_por_andriod = ((dblingrMesAndroid / resumenMesAnterior.dec_mes_andriod) - 1);
                            dec_mes_por_andriod = dec_mes_por_andriod * 100;
                        }
                        else
                        {
                            if (dblingrMesAndroid > 0)
                            {
                                dec_mes_por_andriod = 100;
                            }
                        }
                        if (resumenMesAnterior.int_mes_total != 0)
                        {
                            int_mes_por_total = (((double)transTotales / (double)resumenMesAnterior.int_mes_total) - 1);
                            int_mes_por_total = int_mes_por_total * 100;
                        }
                        else
                        {
                            if (transTotales > 0)
                            {
                                int_mes_por_total = 100;
                            }
                        }
                        if (resumenMesAnterior.dec_mes_total != 0)
                        {
                            dec_mes_por_total = ((dblIngTotales / resumenMesAnterior.dec_mes_total) - 1);
                            dec_mes_por_total = dec_mes_por_total * 100;
                        }
                        else
                        {
                            if (dblIngTotales > 0)
                            {
                                dec_mes_por_total = 100;
                            }
                        }

                        var strategy = dbContext.Database.CreateExecutionStrategy();

                        strategy.Execute(() =>
                        {
                            using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                            {
                                try
                                {
                                    dbContext.tbresumenmensual.Add(new ResumenMensual()
                                    {
                                        int_id_consecion = concns.id,
                                        dtm_fecha_inicio = oPrimerDiaDelMes,
                                        dtm_fecha_fin    = oUltimoDiaDelMes,
                                        str_mes          = monthName,
                                        int_anio         = time.Year,
                                        //dtm_mes_anterior =
                                        int_mes_ios               = sumaTransMesIos,
                                        int_mes_ant_ios           = resumenMesAnterior.int_mes_ios,
                                        int_mes_por_ios           = int_mes_por_ios,
                                        int_mes_autos_ios         = sumaAutosIos,
                                        int_mes_autos_ant_ios     = resumenMesAnterior.int_mes_autos_ios,
                                        int_mes_autos_por_ios     = int_mes_autos_por_ios,
                                        dec_mes_ios               = dblingrMesIOs,
                                        dec_mes_ant_ios           = resumenMesAnterior.dec_mes_ios,
                                        dec_mes_por_ios           = dec_mes_por_ios,
                                        int_mes_andriod           = sumaTransMesAndroid,
                                        int_mes_ant_andriod       = resumenMesAnterior.int_mes_andriod,
                                        int_mes_por_andriod       = int_mes_por_andriod,
                                        int_mes_autos_andriod     = sumaAutosAndriod,
                                        int_mes_autos_ant_andriod = resumenMesAnterior.int_mes_autos_andriod,
                                        int_mes_autos_por_andriod = int_mes_autos_por_andriod,
                                        int_mes_total_autos       = totalAutos,
                                        dec_mes_andriod           = dblingrMesAndroid,
                                        dec_mes_ant_andriod       = resumenMesAnterior.dec_mes_andriod,
                                        dec_mes_por_andriod       = dec_mes_por_andriod,
                                        int_mes_total             = transTotales,
                                        int_mes_total_ant         = resumenMesAnterior.int_mes_total,
                                        int_mes_por_total         = int_mes_por_total,
                                        dec_mes_total             = dblIngTotales,
                                        dec_mes_total_ant         = resumenMesAnterior.dec_mes_total,
                                        dec_mes_por_total         = dec_mes_por_total
                                    });
                                    dbContext.SaveChanges();
                                    transaction.Commit();
                                }
                                catch (Exception)
                                {
                                    throw;
                                }

                                dblTotalXDiaIos            = 0;
                                dblTotalXDiaAndriod        = 0;
                                intTransIos                = 0;
                                intTransAndriod            = 0;
                                intAutosSemAnteriorIos     = 0;
                                intAutosSemAnteriorAndroid = 0;
                                totalIngresos              = 0;
                                intNoSemanaActual          = 0;
                                dia = time;
                                //----------------------
                                int_mes_por_ios           = 0;
                                int_mes_autos_por_ios     = 0;
                                dec_mes_por_ios           = 0;
                                int_mes_por_andriod       = 0;
                                int_mes_autos_por_andriod = 0;
                                dec_mes_por_andriod       = 0;
                                int_mes_por_total         = 0;
                                dec_mes_por_total         = 0;


                                sumaTransMesIos     = 0;
                                sumaTransMesAndroid = 0;
                                sumaAutosIos        = 0;
                                sumaAutosAndriod    = 0;
                                dblingrMesIOs       = 0;
                                dblingrMesAndroid   = 0;
                            }
                        });
                    }
                    else
                    {
                        //intAutosSemAnteriorIos = resumenMesAnterior.int_mes_autos_ios;
                        //intAutosSemAnteriorAndroid = resumenMesAnterior.int_mes_autos_andriod;

                        //var registrosDeMes = await context.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(i => i.int_ios);


                        int dias = oUltimoDiaDelMes.Date.Day;
                        dias += 1;

                        for (int i = 1; i < dias; i++)
                        {
                            sumaTransMesIos     += dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date == oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(t => t.int_ios);
                            sumaTransMesAndroid += dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date == oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(t => t.int_andriod);
                            sumaAutosIos        += dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date == oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(t => t.int_autos_ios);
                            sumaAutosAndriod    += dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date == oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(t => t.int_autos_andriod);
                            dblingrMesIOs       += dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date == oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(t => t.dec_ios);
                            dblingrMesAndroid   += dbContext.tbresumendiario.Where(x => x.dtm_fecha.Date == oPrimerDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(t => t.dec_andriod);
                            oPrimerDiaDelMes     = oPrimerDiaDelMes.AddDays(1);
                        }

                        oPrimerDiaDelMes = oPrimerDiaDelMes.AddDays(-31);

                        int    totalAutos    = sumaAutosAndriod + sumaAutosIos;
                        int    transTotales  = sumaTransMesIos + sumaTransMesAndroid;
                        double dblIngTotales = dblingrMesIOs + dblingrMesAndroid;


                        if (sumaTransMesIos > 0)
                        {
                            int_mes_por_ios = 100;
                        }

                        if (sumaAutosIos > 0)
                        {
                            int_mes_autos_por_ios = 100;
                        }

                        if (dblingrMesIOs > 0)
                        {
                            dec_mes_por_ios = 100;
                        }

                        if (sumaTransMesAndroid > 0)
                        {
                            int_mes_por_andriod = 100;
                        }

                        if (sumaAutosAndriod > 0)
                        {
                            int_mes_autos_por_andriod = 100;
                        }

                        if (dblingrMesAndroid > 0)
                        {
                            dec_mes_por_andriod = 100;
                        }

                        if (transTotales > 0)
                        {
                            int_mes_por_total = 100;
                        }

                        if (dblIngTotales > 0)
                        {
                            dec_mes_por_total = 100;
                        }


                        var strategy = dbContext.Database.CreateExecutionStrategy();

                        strategy.Execute(() =>
                        {
                            using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
                            {
                                try
                                {
                                    dbContext.tbresumenmensual.Add(new ResumenMensual()
                                    {
                                        int_id_consecion = concns.id,
                                        dtm_fecha_inicio = oPrimerDiaDelMes,
                                        dtm_fecha_fin    = oUltimoDiaDelMes,
                                        str_mes          = monthName,
                                        int_anio         = time.Year,
                                        //dtm_mes_anterior =
                                        int_mes_ios               = sumaTransMesIos,
                                        int_mes_ant_ios           = 0,
                                        int_mes_por_ios           = int_mes_por_ios,
                                        int_mes_autos_ios         = sumaAutosIos,
                                        int_mes_autos_ant_ios     = 0,
                                        int_mes_autos_por_ios     = int_mes_autos_por_ios,
                                        dec_mes_ios               = dblingrMesIOs,
                                        dec_mes_ant_ios           = 0,
                                        dec_mes_por_ios           = dec_mes_por_ios,
                                        int_mes_andriod           = sumaTransMesAndroid,
                                        int_mes_ant_andriod       = 0,
                                        int_mes_por_andriod       = int_mes_por_andriod,
                                        int_mes_autos_andriod     = sumaAutosAndriod,
                                        int_mes_autos_ant_andriod = 0,
                                        int_mes_autos_por_andriod = int_mes_autos_por_andriod,
                                        int_mes_total_autos       = totalAutos,
                                        dec_mes_andriod           = dblingrMesAndroid,
                                        dec_mes_ant_andriod       = 0,
                                        dec_mes_por_andriod       = dec_mes_por_andriod,
                                        int_mes_total             = transTotales,
                                        int_mes_total_ant         = 0,
                                        int_mes_por_total         = int_mes_por_total,
                                        dec_mes_total             = dblIngTotales,
                                        dec_mes_total_ant         = 0,
                                        dec_mes_por_total         = dec_mes_por_total
                                    });

                                    dbContext.SaveChanges();
                                    transaction.Commit();
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                            }
                        });


                        intAutosSemAnteriorIos     = 0;
                        intAutosSemAnteriorAndroid = 0;
                    }

                    dblTotalXDiaIos            = 0;
                    dblTotalXDiaAndriod        = 0;
                    intTransIos                = 0;
                    intTransAndriod            = 0;
                    intAutosSemAnteriorIos     = 0;
                    intAutosSemAnteriorAndroid = 0;
                    totalIngresos              = 0;
                    intNoSemanaActual          = 0;
                    dia = time;
                    //----------------------
                    int_mes_por_ios           = 0;
                    int_mes_autos_por_ios     = 0;
                    dec_mes_por_ios           = 0;
                    int_mes_por_andriod       = 0;
                    int_mes_autos_por_andriod = 0;
                    dec_mes_por_andriod       = 0;
                    int_mes_por_total         = 0;
                    dec_mes_por_total         = 0;
                    sumaTransMesIos           = 0;
                    sumaTransMesAndroid       = 0;
                    sumaAutosIos      = 0;
                    sumaAutosAndriod  = 0;
                    dblingrMesIOs     = 0;
                    dblingrMesAndroid = 0;
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            //try
            //{
            //    double dblTotalXDiaIos = 0;
            //    double dblTotalXDiaAndriod = 0;
            //    int intTransIos = 0;
            //    int intTransAndriod = 0;
            //    int intAutosSemAnteriorIos = 0;
            //    int intAutosSemAnteriorAndroid = 0;
            //    double totalIngresos = 0;
            //    int intNoSemanaActual = 0;
            //    DateTime dia = time;
            //    ----------------------
            //    int int_mes_por_ios = 0;
            //    int int_mes_autos_por_ios = 0;
            //    Double dec_mes_por_ios = 0;
            //    int int_mes_por_andriod = 0;
            //    int int_mes_autos_por_andriod = 0;
            //    Double dec_mes_por_andriod = 0;
            //    int int_mes_por_total = 0;
            //    Double dec_mes_por_total = 0;


            //    var concesiones = dbContext.tbconcesiones.ToList();

            //    foreach (var concns in concesiones)
            //    {
            //        int intMesAnt = dia.Month - 1;

            //        string strMes = "";
            //        switch (intMesAnt)
            //        {
            //            case 1:
            //                strMes = "January";
            //                break;
            //            case 2:
            //                strMes = "February";
            //                break;
            //            case 3:
            //                strMes = "March";
            //                break;
            //            case 4:
            //                strMes = "April";
            //                break;
            //            case 5:
            //                strMes = "May";
            //                break;
            //            case 6:
            //                strMes = "June";
            //                break;
            //            case 7:
            //                strMes = "July";
            //                break;
            //            case 8:
            //                strMes = "August";
            //                break;
            //            case 9:
            //                strMes = "September";
            //                break;
            //            case 10:
            //                strMes = "October";
            //                break;
            //            case 11:
            //                strMes = "November";
            //                break;
            //            case 12:
            //                strMes = "December";
            //                break;
            //        }
            //        Asi obtenemos el primer dia del mes actual
            //        DateTime oPrimerDiaDelMes = new DateTime(dia.Year, intMesAnt, 1);

            //        Y de la siguiente forma obtenemos el ultimo dia del mes
            //        agregamos 1 mes al objeto anterior y restamos 1 día.
            //        DateTime oUltimoDiaDelMes = oPrimerDiaDelMes.AddMonths(1).AddDays(-1);

            //        var resumenMesAnterior = dbContext.tbresumenmensual.FirstOrDefault(x => x.str_mes == strMes && x.int_id_consecion == concns.id);


            //        if (resumenMesAnterior != null)
            //        {
            //            intAutosSemAnteriorIos = resumenMesAnterior.int_mes_autos_ios;
            //            intAutosSemAnteriorAndroid = resumenMesAnterior.int_mes_autos_andriod;

            //            var registrosDeMes = await context.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(i => i.int_ios);

            //            int sumaTransMesIos = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.int_sem_ios);
            //            int sumaTransMesAndroid = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.int_sem_andriod);
            //            int sumaAutosIos = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.int_sem_autos_ios);
            //            int sumaAutosAndriod = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.int_sem_autos_andriod);
            //            double dblingrMesIOs = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.dec_sem_ios);
            //            double dblingrMesAndroid = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.dec_sem_andriod);


            //            int totalAutos = sumaAutosAndriod + sumaAutosIos;
            //            int transTotales = sumaTransMesIos + sumaTransMesAndroid;
            //            double dblIngTotales = dblingrMesIOs + dblingrMesAndroid;

            //            if (resumenMesAnterior.int_mes_ios != 0)
            //            {
            //                int_mes_por_ios = ((sumaTransMesIos / resumenMesAnterior.int_mes_ios) - 1);
            //                int_mes_por_ios = int_mes_por_ios * 100;
            //            }
            //            else
            //            {
            //                if (sumaTransMesIos > 0)
            //                {
            //                    int_mes_por_ios = 100;
            //                }
            //            }
            //            if (resumenMesAnterior.int_mes_autos_ios != 0)
            //            {
            //                int_mes_autos_por_ios = ((sumaAutosIos / resumenMesAnterior.int_mes_autos_ios) - 1);
            //                int_mes_autos_por_ios = int_mes_autos_por_ios * 100;
            //            }
            //            else
            //            {
            //                if (sumaAutosIos > 0)
            //                {
            //                    int_mes_autos_por_ios = 100;
            //                }
            //            }
            //            if (resumenMesAnterior.dec_mes_ios != 0)
            //            {
            //                dec_mes_por_ios = ((dblingrMesIOs / resumenMesAnterior.dec_mes_ios) - 1);
            //                dec_mes_por_ios = dec_mes_por_ios * 100;
            //            }
            //            else
            //            {
            //                if (dblingrMesIOs > 0)
            //                {
            //                    dec_mes_por_ios = 100;
            //                }
            //            }
            //            if (resumenMesAnterior.int_mes_andriod != 0)
            //            {
            //                int_mes_por_andriod = ((sumaTransMesAndroid / resumenMesAnterior.int_mes_andriod) - 1);
            //                int_mes_por_andriod = int_mes_por_andriod * 100;
            //            }
            //            else
            //            {
            //                if (sumaTransMesAndroid > 0)
            //                {
            //                    int_mes_por_andriod = 100;
            //                }
            //            }
            //            if (resumenMesAnterior.int_mes_autos_andriod != 0)
            //            {
            //                int_mes_autos_por_andriod = ((sumaAutosAndriod / resumenMesAnterior.int_mes_autos_andriod) - 1);
            //                int_mes_autos_por_andriod = int_mes_autos_por_andriod * 100;
            //            }
            //            else
            //            {
            //                if (sumaAutosAndriod > 0)
            //                {
            //                    int_mes_autos_por_andriod = 100;
            //                }
            //            }

            //            if (resumenMesAnterior.dec_mes_andriod != 0)
            //            {
            //                dec_mes_por_andriod = ((dblingrMesAndroid / resumenMesAnterior.dec_mes_andriod) - 1);
            //                dec_mes_por_andriod = dec_mes_por_andriod * 100;

            //            }
            //            else
            //            {
            //                if (dblingrMesAndroid > 0)
            //                {
            //                    dec_mes_por_andriod = 100;
            //                }
            //            }
            //            if (resumenMesAnterior.int_mes_total != 0)
            //            {
            //                int_mes_por_total = ((transTotales / resumenMesAnterior.int_mes_total) - 1);
            //                int_mes_por_total = int_mes_por_total * 100;
            //            }
            //            else
            //            {
            //                if (transTotales > 0)
            //                {
            //                    int_mes_por_total = 100;
            //                }
            //            }
            //            if (resumenMesAnterior.dec_mes_total != 0)
            //            {
            //                dec_mes_por_total = ((dblIngTotales / resumenMesAnterior.dec_mes_total) - 1);
            //                dec_mes_por_total = dec_mes_por_total * 100;
            //            }
            //            else
            //            {
            //                if (dblIngTotales > 0)
            //                {
            //                    dec_mes_por_total = 100;
            //                }
            //            }

            //            var strategy = dbContext.Database.CreateExecutionStrategy();

            //            strategy.Execute(() =>
            //            {

            //                using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
            //                {
            //                    try
            //                    {
            //                        dbContext.tbresumenmensual.Add(new ResumenMensual()
            //                        {
            //                            int_id_consecion = concns.id,
            //                            dtm_fecha_inicio = oPrimerDiaDelMes,
            //                            dtm_fecha_fin = oUltimoDiaDelMes,
            //                            str_mes = strMes,
            //                            int_anio = time.Year,
            //                            dtm_mes_anterior =
            //                            int_mes_ios = sumaTransMesIos,
            //                            int_mes_ant_ios = resumenMesAnterior.int_mes_ios,
            //                            int_mes_por_ios = int_mes_por_ios,
            //                            int_mes_autos_ios = sumaAutosIos,
            //                            int_mes_autos_ant_ios = resumenMesAnterior.int_mes_autos_ios,
            //                            int_mes_autos_por_ios = int_mes_autos_por_ios,
            //                            dec_mes_ios = dblingrMesIOs,
            //                            dec_mes_ant_ios = resumenMesAnterior.dec_mes_ios,
            //                            dec_mes_por_ios = dec_mes_por_ios,
            //                            int_mes_andriod = sumaTransMesAndroid,
            //                            int_mes_ant_andriod = resumenMesAnterior.int_mes_andriod,
            //                            int_mes_por_andriod = int_mes_por_andriod,
            //                            int_mes_autos_andriod = sumaAutosAndriod,
            //                            int_mes_autos_ant_andriod = resumenMesAnterior.int_mes_autos_andriod,
            //                            int_mes_autos_por_andriod = int_mes_autos_por_andriod,
            //                            int_mes_total_autos = totalAutos,
            //                            dec_mes_andriod = dblingrMesAndroid,
            //                            dec_mes_ant_andriod = resumenMesAnterior.dec_mes_andriod,
            //                            dec_mes_por_andriod = dec_mes_por_andriod,
            //                            int_mes_total = transTotales,
            //                            int_mes_total_ant = resumenMesAnterior.int_mes_total,
            //                            int_mes_por_total = int_mes_por_total,
            //                            dec_mes_total = dblIngTotales,
            //                            dec_mes_total_ant = resumenMesAnterior.dec_mes_total,
            //                            dec_mes_por_total = dec_mes_por_total

            //                        });
            //                        dbContext.SaveChanges();
            //                        transaction.Commit();
            //                    }
            //                    catch (Exception)
            //                    {

            //                        throw;
            //                    }
            //                    intAutosSemAnteriorIos = 0;
            //                    intAutosSemAnteriorAndroid = 0;
            //                }
            //            });



            //        }
            //        else
            //        {
            //            intAutosSemAnteriorIos = resumenMesAnterior.int_mes_autos_ios;
            //            intAutosSemAnteriorAndroid = resumenMesAnterior.int_mes_autos_andriod;

            //            var registrosDeMes = await context.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).SumAsync(i => i.int_ios);

            //            int sumaTransMesIos = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.int_sem_ios);
            //            int sumaTransMesAndroid = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.int_sem_andriod);
            //            int sumaAutosIos = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.int_sem_autos_ios);
            //            int sumaAutosAndriod = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.int_sem_autos_andriod);
            //            double dblingrMesIOs = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.dec_sem_ios);
            //            double dblingrMesAndroid = dbContext.tbresumensemanal.Where(x => x.dtm_fecha_inicio.Date >= oPrimerDiaDelMes.Date && x.dtm_fecha_fin.Date <= oUltimoDiaDelMes.Date && x.int_id_consecion == concns.id).Sum(i => i.dec_sem_andriod);


            //            int totalAutos = sumaAutosAndriod + sumaAutosIos;
            //            int transTotales = sumaTransMesIos + sumaTransMesAndroid;
            //            double dblIngTotales = dblingrMesIOs + dblingrMesAndroid;


            //            if (sumaTransMesIos > 0)
            //            {
            //                int_mes_por_ios = 100;
            //            }

            //            if (sumaAutosIos > 0)
            //            {
            //                int_mes_autos_por_ios = 100;
            //            }

            //            if (dblingrMesIOs > 0)
            //            {
            //                dec_mes_por_ios = 100;
            //            }

            //            if (sumaTransMesAndroid > 0)
            //            {
            //                int_mes_por_andriod = 100;
            //            }

            //            if (sumaAutosAndriod > 0)
            //            {
            //                int_mes_autos_por_andriod = 100;
            //            }

            //            if (dblingrMesAndroid > 0)
            //            {
            //                dec_mes_por_andriod = 100;
            //            }

            //            if (transTotales > 0)
            //            {
            //                int_mes_por_total = 100;
            //            }

            //            if (dblIngTotales > 0)
            //            {
            //                dec_mes_por_total = 100;
            //            }


            //            var strategy = dbContext.Database.CreateExecutionStrategy();

            //            strategy.Execute(() =>
            //            {

            //                using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction())
            //                {
            //                    try
            //                    {

            //                        dbContext.tbresumenmensual.Add(new ResumenMensual()
            //                        {
            //                            int_id_consecion = concns.id,
            //                            dtm_fecha_inicio = oPrimerDiaDelMes,
            //                            dtm_fecha_fin = oUltimoDiaDelMes,
            //                            str_mes = strMes,
            //                            int_anio = time.Year,
            //                            dtm_mes_anterior =
            //                            int_mes_ios = sumaTransMesIos,
            //                            int_mes_ant_ios = 0,
            //                            int_mes_por_ios = int_mes_por_ios,
            //                            int_mes_autos_ios = sumaAutosIos,
            //                            int_mes_autos_ant_ios = 0,
            //                            int_mes_autos_por_ios = int_mes_autos_por_ios,
            //                            dec_mes_ios = dblingrMesIOs,
            //                            dec_mes_ant_ios = 0,
            //                            dec_mes_por_ios = dec_mes_por_ios,
            //                            int_mes_andriod = sumaTransMesAndroid,
            //                            int_mes_ant_andriod = 0,
            //                            int_mes_por_andriod = int_mes_por_andriod,
            //                            int_mes_autos_andriod = sumaAutosAndriod,
            //                            int_mes_autos_ant_andriod = 0,
            //                            int_mes_autos_por_andriod = int_mes_autos_por_andriod,
            //                            int_mes_total_autos = totalAutos,
            //                            dec_mes_andriod = dblingrMesAndroid,
            //                            dec_mes_ant_andriod = 0,
            //                            dec_mes_por_andriod = dec_mes_por_andriod,
            //                            int_mes_total = transTotales,
            //                            int_mes_total_ant = 0,
            //                            int_mes_por_total = int_mes_por_total,
            //                            dec_mes_total = dblIngTotales,
            //                            dec_mes_total_ant = 0,
            //                            dec_mes_por_total = dec_mes_por_total
            //                        });

            //                        dbContext.SaveChanges();
            //                        transaction.Commit();
            //                    }
            //                    catch (Exception)
            //                    {
            //                        throw;
            //                    }
            //                }
            //            });


            //            intAutosSemAnteriorIos = 0;
            //            intAutosSemAnteriorAndroid = 0;

            //        }

            //    }


            //}
            //catch (Exception ex)
            //{
            //    throw;
            //}
        }
Exemplo n.º 30
0
        public async Task <ActionResult <Zonas> > mtdModificarZona(int intIdZona, [FromBody] Zonas zona)
        {
            try
            {
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerHora();
                var response = await context.tbzonas.FirstOrDefaultAsync(x => x.id == intIdZona);

                dynamic results = JsonConvert.DeserializeObject <dynamic>(zona.str_poligono);

                string zon = results.ToString();

                if (response.id != intIdZona)
                {
                    return(NotFound());
                }

                response.last_modified_by   = zona.last_modified_by;
                response.last_modified_date = horadeTransaccion.Value;;
                response.str_descripcion    = zona.str_descripcion;
                response.str_latitud        = zona.str_latitud;
                response.str_longitud       = zona.str_longitud;
                response.str_color          = zona.str_color;
                response.str_poligono       = zon;
                response.int_id_ciudad_id   = zona.int_id_ciudad_id;
                response.intidconcesion_id  = zona.intidconcesion_id;

                await context.SaveChangesAsync();

                //return Ok();

                context.tbsecciones.Where(x => x.intidzona_id == intIdZona).ToList().ForEach(x => context.tbsecciones.Remove(x));
                await context.SaveChangesAsync();

                context.tbespacios.Where(x => x.id_zona == intIdZona).ToList().ForEach(x => context.tbespacios.Remove(x));
                await context.SaveChangesAsync();

                foreach (var token in results["features"])
                {
                    string strT     = token.ToString();
                    string tipo     = token.geometry.type;
                    string strClave = token.properties.desc;
                    //string strColor = token.properties.color;
                    string strPoligono = token.ToString();


                    if (tipo == "LineString")
                    {
                        context.tbsecciones.Add(new Secciones()
                        {
                            str_seccion  = strClave,
                            str_color    = zona.str_color,
                            str_poligono = strPoligono,
                            intidzona_id = intIdZona,
                            bit_status   = true
                        });

                        context.SaveChanges();
                    }
                    else
                    {
                        var    strCor  = token.geometry.coordinates;
                        string strL    = strCor[0];
                        string strLong = strCor[1];
                        context.tbespacios.Add(new Espacios()
                        {
                            str_clave    = strClave,
                            str_marcador = strPoligono,
                            str_color    = zona.str_color,
                            bit_ocupado  = false,
                            id_zona      = intIdZona,
                            str_latitud  = strL,
                            str_longitud = strLong,
                            bit_status   = true
                        });;

                        context.SaveChanges();
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                //ModelState.AddModelError("token", ex.Message);
                //return BadRequest(ModelState);
                return(Json(new { token = ex.Message }));
            }
        }