private void bgwGrafEvolucaoRotativo_DoWork_1(object sender, DoWorkEventArgs e) { AccessBD conex = new AccessBD(); conex.AbrirConexao(); double rotativoPercent = 0; int totalPos, pendentePos; lblUltimoInvent.Text = conex.consultaScalar("SELECT RIGHT(DAT_post, 2) &'/'& MID(DAT_post, 5, 2) &'/'& LEFT(DAT_post, 4) & ' ÀS ' & MAX(hr_post) AS hr_post FROM INVENTARIO WHERE (((INVENTARIO.[DAT_POST])=(SELECT Max(dat_POST) FROM INVENTARIO))) group by dat_post"); SQL = "SELECT COUNT(POS_DEP) FROM(SELECT DAT_CONT, POS_DEP FROM INVENTARIO WHERE DAT_CONT Between 20160701 And 20160705 GROUP BY DAT_CONT, POS_DEP, DOC_INV1)"; totalPos = Convert.ToInt32(conex.consultaScalar("SELECT COUNT(POSICAO) FROM POSICAO")); pendentePos = Convert.ToInt32(conex.consultaScalar(SQL)); lblPosContadas.Text = pendentePos.ToString(); lblPosPendentes.Text = (totalPos - pendentePos).ToString(); grafRotativoPercent.Titles.Clear(); //Deleta os Tìtulos do gráfico grafRotativoPercent.Series.Clear(); //Deleta as séries do gráfico grafRotativoPercent.Titles.Add("Evolução da contagem Rotativa (" + dtpDe1.Text + " à " + dtpAte1.Text + ")"); // adiciona título grafRotativoPercent.Titles[0].Font = new Font("", 14, FontStyle.Bold); // coloca o título como negrito grafRotativoPercent.Series.Add("Contado"); grafRotativoPercent.Series["Contado"].ChartType = SeriesChartType.Pie; grafRotativoPercent.Series["Contado"].IsValueShownAsLabel = true; grafRotativoPercent.Series["Contado"].Points.AddXY("Contado", 0); // Setando o valor para "Contado" grafRotativoPercent.Series["Contado"].Points.AddXY("Pendente", 1); // Setando o valor para "Pendente" grafRotativoPercent.Series["Contado"].Points[0].Color = Color.FromArgb(45, 204, 112); // Cor da parte "Contado" grafRotativoPercent.Series["Contado"].Points[0].LabelForeColor = Color.White; // Cor da Fonte grafRotativoPercent.Series["Contado"].Points[0].LabelFormat = "{P2}"; // Formata para porcentagem grafRotativoPercent.Series["Contado"].Points[0].Font = new Font("", 10, FontStyle.Bold); grafRotativoPercent.Series["Contado"].Points[1].Color = Color.FromArgb(63, 86, 100); // Cor da parte "Pendente" grafRotativoPercent.Series["Contado"].Points[1].LabelForeColor = Color.White; grafRotativoPercent.Series["Contado"].Points[1].LabelFormat = "{P2}"; grafRotativoPercent.Series["Contado"].Points[1].Font = new Font("", 10, FontStyle.Bold); grafRotativoPercent.Series[0].ShadowColor = Color.DarkGray; grafRotativoPercent.Series[0].ShadowOffset = 5; SQL = "SELECT ROUND((SELECT COUNT(POS) FROM (SELECT POS_DEP AS POS FROM INVENTARIO WHERE DAT_CONT BETWEEN " + dataDe + " AND " + dataAte + " GROUP BY POS_DEP)) / COUNT(CODPOS), 4) FROM POSICAO"; rotativoPercent = Convert.ToDouble(conex.consultaScalar(SQL)); grafRotativoPercent.Series["Contado"].YValueType = ChartValueType.Double; grafRotativoPercent.Series["Contado"].Points[0].YValues[0] = rotativoPercent; grafRotativoPercent.Series["Contado"].Points[1].YValues[0] = Math.Round(1 - rotativoPercent, 4); }
protected internal void frmInvRotativo_Load(object sender, EventArgs e) { AccessBD conex = new AccessBD(); string SQL, posicao, rua = "0", nivel = "0"; int qtdCont; IDataReader retornoBD; dtpDe.Text = "01/" + DateTime.Now.Month.ToString() + "/" + DateTime.Now.Year.ToString(); dtpAte.Text = DateTime.Now.ToString(); cmbPesquisa.SelectedIndex = 0; conex.AbrirConexao(); lblUltimoInvent.Text = conex.consultaScalar("SELECT RIGHT(DAT_post, 2) &'/'& MID(DAT_post, 5, 2) &'/'& LEFT(DAT_post, 4) & ' ÀS ' & MAX(hr_post) AS hr_post FROM INVENTARIO WHERE (((INVENTARIO.[DAT_POST])=(SELECT Max(dat_POST) FROM INVENTARIO))) group by dat_post"); try { //Preenche o datagridview SQL = "SELECT INVENTARIO.POS_DEP, COUNT(INVENTARIO.POS_DEP), POSICAO.DAT_CONT " + "FROM(" + "SELECT DOC_INV1, POS_DEP " + "FROM INVENTARIO " + "GROUP BY POS_DEP, DOC_INV1 " + ") , POSICAO " + "WHERE INVENTARIO.POS_DEP = POSICAO.POSICAO " + "GROUP BY INVENTARIO.POS_DEP, POSICAO.DAT_CONT " + "order by INVENTARIO.POS_DEP "; retornoBD = conex.consultaReader(SQL); cmbNivel.Items.Add(""); cmbRua.Items.Add(""); while (retornoBD.Read()) { posicao = retornoBD.GetString(0); qtdCont = retornoBD.GetInt32(1); dgvPos.Rows.Add(posicao, qtdCont); //carrega Combo box RUA if (rua != posicao.Substring(0, 5)) { rua = posicao.Substring(0, 5); cmbRua.Items.Add(posicao.Substring(0, 5)); } if (posicao.Length >= 13) { nivel = posicao.Substring(11, 2); } //Carrega combo box Nivel if (cmbNivel.FindStringExact(nivel) < 0) { cmbNivel.Items.Add(posicao.Substring(11, 2)); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } conex.FecharConexao(); }
private void atualizaFirebase() { IFirebaseClient firebase = new FirebaseClient(config); IDataReader retornoBD; AccessBD conex = new AccessBD(); conex.AbrirConexao(); string dataDe, dataAte; decimal rotativoPercent = 0; string mes = DateTime.Now.Month.ToString(); string ano = DateTime.Now.Year.ToString(); //:::::::::::::::::::::::::::: Setando FireBase::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //EAN x Posicao dataDe = Convert.ToString(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + "01"); dataAte = Convert.ToString(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00")); SQL = "SELECT EXPR1, EXPR2 FROM (SELECT Mid(DAT_CONT,5,2) AS Expr1, Round(Avg(ACUR)*100,2) AS Expr2 " + "FROM(SELECT DAT_CONT, DOC_INV1, POS_DEP, IIf(COUNT(PRODUTO) > 2, 1, IIf(COUNT(PRODUTO) = 1, 1, 0)) AS ACUR FROM(SELECT INVENTARIO.DAT_CONT, INVENTARIO.DOC_INV1, INVENTARIO.POS_DEP, INVENTARIO.PRODUTO FROM INVENTARIO RIGHT JOIN POSICAO ON INVENTARIO.POS_DEP = POSICAO.POSICAO WHERE POSICAO.TIPO_DEP <> 1003 GROUP BY INVENTARIO.DOC_INV1, INVENTARIO.POS_DEP, INVENTARIO.PRODUTO, INVENTARIO.DAT_CONT) AS[%$##@_Alias] GROUP BY DOC_INV1, POS_DEP, DAT_CONT) AS [%$##@_Alias] " + "GROUP BY Mid(DAT_CONT, 5, 2)) WHERE EXPR1 <> 0; "; string ultimaAtualizacao = conex.consultaScalar("SELECT RIGHT(DAT_post, 2) &'/'& MID(DAT_post, 5, 2) &'/'& LEFT(DAT_post, 4) & ' ÀS ' & MAX(hr_post) AS hr_post FROM INVENTARIO WHERE (((INVENTARIO.[DAT_POST])=(SELECT Max(dat_POST) FROM INVENTARIO))) group by dat_post"); retornoBD = conex.consultaReader(SQL); while (retornoBD.Read()) { firebase.Set("EanPosicao/" + retornoBD.GetString(0) + ano + "/Acuracidade", retornoBD.GetDouble(1)); firebase.Set("EanPosicao/" + retornoBD.GetString(0) + ano + "/UltimaAtualizacao", ultimaAtualizacao); } // Evolução Rotativo switch (DateTime.Now.Month) { case 1: case 2: case 3: dataDe = DateTime.Now.Year + "0101"; dataAte = Convert.ToString(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00")); break; case 4: case 5: case 6: dataDe = DateTime.Now.Year + "0401"; dataAte = Convert.ToString(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00")); break; case 7: case 8: case 9: dataDe = DateTime.Now.Year + "0701"; dataAte = Convert.ToString(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00")); break; case 10: case 11: case 12: dataDe = DateTime.Now.Year + "1001"; dataAte = Convert.ToString(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString("00") + DateTime.Now.Day.ToString("00")); break; } SQL = "SELECT (SELECT COUNT(POS) FROM (SELECT POS_DEP AS POS FROM INVENTARIO WHERE DAT_CONT BETWEEN " + dataDe + " AND " + dataAte + " GROUP BY POS_DEP)) / COUNT(CODPOS) FROM POSICAO"; rotativoPercent = Convert.ToDecimal(conex.consultaScalar(SQL)); firebase.Set("Rotativo/" + mes + ano + "/Concluido", Convert.ToDouble((rotativoPercent * 100).ToString("0.00"))); firebase.Set("Rotativo/" + mes + ano + "/ultimaAtualizacao", ultimaAtualizacao); }
private void frmImportarInventario_Load(object sender, EventArgs e) { AccessBD AccessBD = new AccessBD(); txtUltimoInventario.Text = AccessBD.consultaScalar("SELECT RIGHT(DAT_post, 2) &'/'& MID(DAT_post, 5, 2) &'/'& LEFT(DAT_post, 4) & ' ÀS ' & MAX(hr_post) AS hr_post FROM INVENTARIO WHERE (((INVENTARIO.[DAT_POST])=(SELECT Max(dat_POST) FROM INVENTARIO))) group by dat_post"); }
//::Salva pos do DataGrid para o BD:: public void salvarInvent() { int cont = 0; // Contador de linhas int contEx = 0; // Contador de exceções string posicao, descProd, umb, referencia, metodo, chave, produto, uc, contador, qtdRegistrada, qtdContada, qtdDif, ordem, docInv1, tipoDep; string hrCriacao, hrAtivacao, hrContagem, hrPostagem; int datCriacao2, datAtivacao2, datContagem2, datPostagem2; DateTime datContagem, datPostagem, datAtivacao, datCriacao; AccessBD AccessBD = new AccessBD(); AccessBD.AbrirConexao(); ToolStripProgressBar BarraProgresso = new ToolStripProgressBar(); lblStripSalvar.Text = "Salvando Inventários:"; frmPrincipal.statusStrip1.Items.Add(lblStripSalvar); frmPrincipal.statusStrip1.Items.Add(BarraProgresso); BarraProgresso.Maximum = dgvPos.RowCount; lblStripPorcent.Text = "0%"; frmPrincipal.statusStrip1.Items.Add(lblStripPorcent); Thread backgroundThread = new Thread( new ThreadStart(() => { for (cont = 0; cont < dgvPos.RowCount; cont++) { try { docInv1 = dgvPos.Rows[cont].Cells[0].Value.ToString(); ordem = dgvPos.Rows[cont].Cells[1].Value.ToString(); posicao = dgvPos.Rows[cont].Cells[2].Value.ToString(); produto = dgvPos.Rows[cont].Cells[3].Value.ToString(); descProd = dgvPos.Rows[cont].Cells[4].Value.ToString().Replace("\"", "").Replace("'", ""); qtdRegistrada = dgvPos.Rows[cont].Cells[5].Value.ToString().Replace(",", "."); qtdContada = dgvPos.Rows[cont].Cells[6].Value.ToString().Replace(",", "."); qtdDif = dgvPos.Rows[cont].Cells[7].Value.ToString().Replace(",", "."); umb = dgvPos.Rows[cont].Cells[8].Value.ToString(); referencia = dgvPos.Rows[cont].Cells[9].Value.ToString(); metodo = dgvPos.Rows[cont].Cells[10].Value.ToString(); datCriacao = DateTime.Parse(dgvPos.Rows[cont].Cells[11].Value.ToString().Substring(0, 10)); hrCriacao = dgvPos.Rows[cont].Cells[12].Value.ToString().Substring(11, 5); datAtivacao = DateTime.Parse(dgvPos.Rows[cont].Cells[13].Value.ToString().Substring(0, 10)); hrAtivacao = dgvPos.Rows[cont].Cells[14].Value.ToString().Substring(11, 5); datContagem = DateTime.Parse(dgvPos.Rows[cont].Cells[15].Value.ToString().Substring(0, 10)); hrContagem = dgvPos.Rows[cont].Cells[16].Value.ToString().Substring(11, 5); contador = dgvPos.Rows[cont].Cells[17].Value.ToString(); datPostagem = DateTime.Parse(dgvPos.Rows[cont].Cells[18].Value.ToString().Substring(0, 10)); hrPostagem = dgvPos.Rows[cont].Cells[19].Value.ToString().Substring(11, 5); uc = dgvPos.Rows[cont].Cells[20].Value.ToString(); tipoDep = dgvPos.Rows[cont].Cells[21].Value.ToString(); chave = docInv1 + posicao + produto + qtdDif; } catch (Exception ex) { MessageBox.Show("Dado inconsistente, por favor, importe a planilha novamente!" + "\n \n" + "Detalhe: " + ex.Message, "Erro na importação", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Convertendo datas para o formato do banco de dados datPostagem2 = Convert.ToInt32(datPostagem.Year.ToString() + string.Format("{0,2:00}", datPostagem.Month) + string.Format("{0,2:00}", datPostagem.Day)); datAtivacao2 = Convert.ToInt32(datAtivacao.Year.ToString() + string.Format("{0,2:00}", datAtivacao.Month) + string.Format("{0,2:00}", datAtivacao.Day)); datContagem2 = Convert.ToInt32(string.Format("{0,2:00}", datContagem.Year) + string.Format("{0,2:00}", datContagem.Month) + string.Format("{0,2:00}", datContagem.Day)); datCriacao2 = Convert.ToInt32(string.Format("{0,2:00}", datCriacao.Year) + string.Format("{0,2:00}", datCriacao.Month) + string.Format("{0,2:00}", datCriacao.Day)); SQL = "INSERT INTO inventario (chave, doc_inv1, ordem, pos_dep, produto, desc_prod, qtd_regist, qtd_cont, qtd_difer, umb, " + "ref, metodo, dat_criacao, hr_criacao, dat_ativ, hr_ativ, dat_cont, hr_cont, contador, dat_post, hr_post, uc, tipo_dep)" + "values ('" + chave + "', " + docInv1 + "," + ordem + ",'" + posicao + "','" + produto + "','" + descProd + "', " + qtdRegistrada + "," + qtdContada + "," + qtdDif + ",'" + umb + "','" + referencia + "', '" + metodo + "'," + datCriacao2 + ",#" + hrCriacao + "#," + datAtivacao2 + ",#" + hrAtivacao + "#," + datContagem2 + ", #" + hrContagem + "#," + contador + "," + datPostagem2 + ",#" + hrPostagem + "#,'" + uc + "', " + tipoDep + " )"; try { AccessBD.insert_Delete_Update(SQL); } catch (OleDbException) { contEx += 1; } catch (Exception ex) { MessageBox.Show("Erro desconhecido, contate o administrador do sistema! n/n/ " + ex.Message, "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Error); } BarraProgresso.Value = cont; lblStripPorcent.Text = Math.Round(((decimal)cont / (decimal)dgvPos.RowCount) * 100, 1).ToString() + "%"; if (produto == "") { produto = "0"; } if (cont == dgvPos.RowCount - 1) { // Se a thread já finalizou, destrói a Progressbar BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); if (contEx == 0) { MessageBox.Show("Inventários salvo com sucesso!!!", "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Não foi possível salvar " + contEx + " linhas!", "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } txtUltimoInventario.Text = AccessBD.consultaScalar("SELECT DAT_post & ' ÀS ' & MAX(hr_post) AS hr_post FROM INVENTARIO WHERE (((INVENTARIO.[DAT_POST])=(SELECT Max(dat_POST) FROM INVENTARIO))) group by dat_post"); } //if } //for atualizaFirebase(); } ));//thread backgroundThread.Start(); }