private void bgwEanPosicao_DoWork(object sender, DoWorkEventArgs e)//:::::::::: EAN x Posição (Diário)::: { AccessBD conex = new AccessBD(); string SQL; IDataReader retornoBD; grafEanPosicaoDiario.Titles.Clear(); grafEanPosicaoDiario.Series.Clear(); grafEanPosicaoDiario.Titles.Add("Acompanhamento diário de EAN x Posição"); grafEanPosicaoDiario.Titles[0].Font = new Font("", 14, FontStyle.Bold); grafEanPosicaoDiario.Series.Add("acuracia"); grafEanPosicaoDiario.Series["acuracia"].BackHatchStyle = System.Windows.Forms.DataVisualization.Charting.ChartHatchStyle.BackwardDiagonal; grafEanPosicaoDiario.Series["acuracia"].IsValueShownAsLabel = true; grafEanPosicaoDiario.Series["acuracia"].Color = Color.FromArgb(53, 152, 219); grafEanPosicaoDiario.Series["acuracia"].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.DateTime; grafEanPosicaoDiario.Series["acuracia"].YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double; SQL = "SELECT RIGHT(DAT_CONT, 2) & '/' & MID(DAT_CONT, 5, 2) & '/' & LEFT(DAT_CONT, 4), ROUND(AVG(ACUR) * 100, 2) " + "FROM(SELECT DAT_CONT, DOC_INV1, POS_DEP, IIF(COUNT(PRODUTO) > 1,0,1) AS ACUR " + "FROM(SELECT A.DAT_CONT, A.DOC_INV1, A.POS_DEP, A.PRODUTO FROM INVENTARIO AS A LEFT JOIN POSICAO AS B ON A.POS_DEP = B.POSICAO WHERE A.DAT_CONT BETWEEN " + dataDe + " AND " + dataAte + " and B.TIPO_DEP NOT IN (1003,7001,7004) AND A.PRODUTO <> '' GROUP BY A.DOC_INV1, A.POS_DEP, A.PRODUTO, A.DAT_CONT) " + "GROUP BY DOC_INV1, POS_DEP, DAT_CONT) " + "GROUP BY DAT_CONT"; retornoBD = conex.consultaReader(SQL); while (retornoBD.Read()) { grafEanPosicaoDiario.Series["acuracia"].Points.AddXY(retornoBD.GetString(0), retornoBD.GetDouble(1)); } grafEanPosicaoDiario.Titles.Add("Acompanhamento diário de EAN x Posição (" + dtpDataDe2.Text + " à " + dtpDataAte2.Text + ")"); grafEanPosicaoDiario.Titles[0].Font = new Font("", 14, FontStyle.Bold); }
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 bgwImportaExcel_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { AccessBD AccessBD = new AccessBD(); AccessBD.FecharConexao(); BarraProgresso.Dispose(); lblStripImportar.Dispose(); dgvPos.DataSource = output.Tables[0]; dgvPos.AutoGenerateColumns = true; }
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); }
private void bgwAcuracidadeDiaria_DoWork(object sender, DoWorkEventArgs e)//:: ACURACIDADE DIÁRIA ::: { AccessBD conex = new AccessBD(); string SQL; IDataReader retornoBD; //dtpDataDe2.Text = "01/" + DateTime.Now.Month.ToString() + "/" + DateTime.Now.Year.ToString(); //dtpDataAte2.Text = DateTime.Now.ToString(); grafAcuracidadeDiario.Titles.Clear(); grafAcuracidadeDiario.Series.Clear(); grafAcuracidadeDiario.Titles.Add("Acuracidade de estoque diária (" + dtpDataDe2.Text + " à " + dtpDataAte2.Text + ")"); grafAcuracidadeDiario.Titles[0].Font = new Font("", 14, FontStyle.Bold); grafAcuracidadeDiario.Series.Add("acuracia"); grafAcuracidadeDiario.Series["acuracia"].BackHatchStyle = System.Windows.Forms.DataVisualization.Charting.ChartHatchStyle.BackwardDiagonal; grafAcuracidadeDiario.Series["acuracia"].IsValueShownAsLabel = true; grafAcuracidadeDiario.Series["acuracia"].Color = Color.FromArgb(231, 126, 35); grafAcuracidadeDiario.Series["acuracia"].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.DateTime; grafAcuracidadeDiario.Series["acuracia"].YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double; SQL = "SELECT RIGHT(DAT_CONT, 2) & '/' & MID(DAT_CONT, 5, 2) & '/' & LEFT(DAT_CONT, 4), ROUND((1 - (SUM(VALOR2) / " + "(SELECT SUM(VALOR2) FROM(SELECT A.DAT_CONT, A.ORDEM, A.POS_DEP, A.PRODUTO, ABS(A.DIFER * B.VALOR) AS VALOR2 " + "FROM " + "(SELECT DAT_CONT, ORDEM, POS_DEP, PRODUTO, SUM(QTD_DIFER) AS DIFER " + "FROM INVENTARIO " + "WHERE TIPO_DEP IN(1001, 1002, 1003, 2001, 2002, 3003, 3008, 5002) AND DAT_CONT BETWEEN " + dataDe + " AND " + dataAte + " GROUP BY DAT_CONT, ORDEM, POS_DEP, PRODUTO) AS A LEFT JOIN VALPROD AS B ON A.PRODUTO = B.PRODUTO)))) *100, 2) " + "FROM " + "(SELECT A.DAT_CONT, A.ORDEM, A.POS_DEP, A.PRODUTO, ABS(A.DIFER * B.VALOR) AS VALOR2 " + "FROM " + "(SELECT DAT_CONT, ORDEM, POS_DEP, PRODUTO, SUM(QTD_DIFER) AS DIFER " + "FROM INVENTARIO " + "WHERE TIPO_DEP IN(1001, 1002, 1003, 2001, 2002, 3003, 3008, 5002) AND DAT_CONT BETWEEN " + dataDe + " AND " + dataAte + " GROUP BY DAT_CONT, ORDEM, POS_DEP, PRODUTO) AS A LEFT JOIN VALPROD AS B ON A.PRODUTO = B.PRODUTO) " + "GROUP BY DAT_CONT; "; retornoBD = conex.consultaReader(SQL); while (retornoBD.Read()) { grafAcuracidadeDiario.Series["acuracia"].Points.AddXY(retornoBD.GetString(0), retornoBD.GetDouble(1)); } }
private void frmIndicadores_Load(object sender, EventArgs e) { CheckForIllegalCrossThreadCalls = false; AccessBD conex = new AccessBD(); conex.AbrirConexao(); dtpDe1.Text = "01/" + DateTime.Now.Month.ToString() + "/" + DateTime.Now.Year.ToString(); dtpDe2.Text = "01/01/" + DateTime.Now.Year.ToString(); dtpAte1.Text = DateTime.Now.ToString(); dtpAte2.Text = DateTime.Now.ToString(); dataDe = dtpDe1.Text.Substring(6, 4) + dtpDe1.Text.Substring(3, 2) + dtpDe1.Text.Substring(0, 2); dataAte = dtpAte1.Text.Substring(6, 4) + dtpAte1.Text.Substring(3, 2) + dtpAte1.Text.Substring(0, 2); //Carrega os gráficos nas Threads bgwGrafEvolucaoRotativo.RunWorkerAsync(); bgwAcuracidadeMensal.RunWorkerAsync(); bgwEanPosicaoMensal.RunWorkerAsync(); bgwRupturaPK.RunWorkerAsync(); conex.FecharConexao(); liteBD.FecharConexao(); }
private void bgwPosicoesContadas_DoWork(object sender, DoWorkEventArgs e)//::::::Posições contadas :::::: { AccessBD conex = new AccessBD(); string SQL; IDataReader retornoBD; grafRotativoDia.Titles.Clear(); //Deleta os Tìtulos do gráfico grafRotativoDia.Series.Clear(); //Deleta as séries do gráfico grafRotativoDia.Titles.Add("Posições Contadas (" + dtpDataDe2.Text + " à " + dtpDataAte2.Text + ")"); // adiciona título grafRotativoDia.Titles[0].Font = new Font("", 14, FontStyle.Bold); // coloca o título como negrito grafRotativoDia.Series.Add("Qtd. Contada"); // Adiciona a série "Quantidade contada" grafRotativoDia.Series["Qtd. Contada"].BackHatchStyle = System.Windows.Forms.DataVisualization.Charting.ChartHatchStyle.BackwardDiagonal; grafRotativoDia.Series["Qtd. Contada"].IsValueShownAsLabel = true; // Abilita rótulos para a série grafRotativoDia.Series["Qtd. Contada"].Color = Color.FromArgb(232, 189, 15); // seta cor vermelha para a série grafRotativoDia.Series.Add("Target = 461 posições/dia"); // adiciona outra série grafRotativoDia.Series["Target = 461 posições/dia"].Color = Color.Red; // seta cor vermelha para a série grafRotativoDia.Series["Target = 461 posições/dia"].IsValueShownAsLabel = true; // Abilita rótulos para a série grafRotativoDia.Series["Target = 461 posições/dia"].BorderWidth = 2; // Largura da borda como 2 grafRotativoDia.Series["Target = 461 posições/dia"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; // Tipo do gráfico SQL = "SELECT RIGHT(DAT_CONT, 2) & '/' &MID(DAT_CONT, 5, 2) & '/' & LEFT(DAT_CONT, 4), COUNT(POS_DEP) FROM" + "(SELECT DAT_CONT, POS_DEP FROM INVENTARIO WHERE DAT_CONT Between " + dataDe + " And " + dataAte + " GROUP BY DAT_CONT, POS_DEP, DOC_INV1) " + "GROUP BY DAT_CONT " + "ORDER BY dat_cont; "; retornoBD = conex.consultaReader(SQL); while (retornoBD.Read()) { grafRotativoDia.Series["Qtd. Contada"].Points.AddXY(retornoBD.GetString(0), retornoBD.GetInt32(1)); grafRotativoDia.Series["Target = 461 posições/dia"].Points.AddXY(retornoBD.GetString(0), 461); } }
protected internal void btnAtualizar_Click(object sender, EventArgs e) { string dataDe, dataAte; AccessBD conex = new AccessBD(); IDataReader retornoBD; dataDe = dtpDe.Text.Substring(6, 4) + dtpDe.Text.Substring(3, 2) + dtpDe.Text.Substring(0, 2); dataAte = dtpAte.Text.Substring(6, 4) + dtpAte.Text.Substring(3, 2) + dtpAte.Text.Substring(0, 2); dgvPos.Rows.Clear(); switch (cmbPesquisa.SelectedIndex) { case 0: //TODAS AS POSIÇÕES if (cmbNivel.Text == "" && cmbRua.Text == "") { SQL = "SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) " + "FROM POSICAO LEFT JOIN (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "GROUP BY POSICAO.POSICAO, INV.POS_DEP"; } else if (cmbNivel.Text != "" && cmbRua.Text != "") { SQL = "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) " + "FROM POSICAO left join (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP WHERE RIGHT(POSICAO.POSICAO, 2) = '" + cmbNivel.Text + "' AND LEFT(POSICAO.POSICAO, 5) = '" + cmbRua.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP)"; } else if (cmbNivel.Text == "" && cmbRua.Text != "") { SQL = "SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) " + "FROM POSICAO LEFT JOIN (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP WHERE LEFT(POSICAO.POSICAO, 5) = '" + cmbRua.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP"; } else if (cmbNivel.Text != "" && cmbRua.Text == "") { SQL = "SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) " + "FROM POSICAO left join (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP WHERE RIGHT(POSICAO.POSICAO, 2) = '" + cmbNivel.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP"; } break; case 1: // Somente posições não contadas if (cmbNivel.Text == "" && cmbRua.Text == "") { SQL = "SELECT POSICAO, CONTINV FROM " + "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) AS CONTINV " + "FROM POSICAO LEFT JOIN (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "GROUP BY POSICAO.POSICAO, INV.POS_DEP) " + "WHERE CONTINV = 0"; } else if (cmbNivel.Text != "" && cmbRua.Text != "") { SQL = "SELECT POSICAO, CONTINV FROM" + "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) AS CONTINV " + "FROM POSICAO left join (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "WHERE RIGHT(POSICAO.POSICAO, 2) = '" + cmbNivel.Text + "' AND LEFT(POSICAO.POSICAO, 5) = '" + cmbRua.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP) " + "WHERE CONTINV = 0"; } else if (cmbNivel.Text == "" && cmbRua.Text != "") { SQL = "SELECT POSICAO, CONTINV FROM " + "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) AS CONTINV " + "FROM POSICAO LEFT JOIN (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "WHERE LEFT(POSICAO.POSICAO, 5) = '" + cmbRua.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP) " + "WHERE CONTINV = 0"; } else if (cmbNivel.Text != "" && cmbRua.Text == "") { SQL = "SELECT POSICAO, CONTINV FROM " + "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) AS CONTINV " + "FROM POSICAO left join (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "WHERE AND RIGHT(POSICAO.POSICAO, 2) = '" + cmbNivel.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP) " + "WHERE CONTINV = 0"; } break; case 2: // Somente posições if (cmbNivel.Text == "" && cmbRua.Text == "") { SQL = "SELECT POSICAO, CONTINV FROM " + "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) AS CONTINV " + "FROM POSICAO LEFT JOIN (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "GROUP BY POSICAO.POSICAO, INV.POS_DEP) " + "WHERE CONTINV <> 0"; } else if (cmbNivel.Text != "" && cmbRua.Text != "") { SQL = "SELECT POSICAO, CONTINV FROM" + "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) AS CONTINV " + "FROM POSICAO left join (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "WHERE RIGHT(POSICAO.POSICAO, 2) = '" + cmbNivel.Text + "' AND LEFT(POSICAO.POSICAO, 5) = '" + cmbRua.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP) " + "WHERE CONTINV <> 0"; } else if (cmbNivel.Text == "" && cmbRua.Text != "") { SQL = "SELECT POSICAO, CONTINV FROM " + "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) AS CONTINV " + "FROM POSICAO LEFT JOIN (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "WHERE LEFT(POSICAO.POSICAO, 5) = '" + cmbRua.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP) " + "WHERE CONTINV <> 0"; } else if (cmbNivel.Text != "" && cmbRua.Text == "") { SQL = "SELECT POSICAO, CONTINV FROM " + "(SELECT POSICAO.POSICAO, COUNT(INV.POS_DEP) AS CONTINV " + "FROM POSICAO left join (SELECT INVENTARIO.POS_DEP, DOC_INV1 FROM INVENTARIO WHERE DAT_POST BETWEEN " + dataDe + " and " + dataAte + " GROUP BY INVENTARIO.POS_DEP, DOC_INV1) AS INV " + "ON POSICAO.POSICAO = INV.POS_DEP " + "WHERE AND RIGHT(POSICAO.POSICAO, 2) = '" + cmbNivel.Text + "' GROUP BY POSICAO.POSICAO, INV.POS_DEP) " + "WHERE CONTINV <> 0"; } break; } try { conex.AbrirConexao(); retornoBD = conex.consultaReader(SQL); while (retornoBD.Read()) { dgvPos.Rows.Add(retornoBD.GetString(0), retornoBD.GetInt32(1)); } } catch { MessageBox.Show("Erro de conexão com o banco de dados!"); } }
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(); }
//::Salva pos do DataGrid para o BD:: public void salvarPos() { int contador = 0; int datCont2 = 0; string posicao, vazia, bloqueioSaida, bloqueioEntrada, bloqueioInvent, tipoPos, unidadePeso, pesoMax, pesoOcupado, qtdUcs, tipoDep; DateTime datCont; AccessBD Conexao = new AccessBD(); Conexao.AbrirConexao(); Conexao.insert_Delete_Update("DELETE * FROM POSICAO"); ToolStripLabel lblStripSalvar = new ToolStripLabel(); lblStripSalvar.Text = "Salvando Posições:"; frmPrincipal.statusStrip1.Items.Add(lblStripSalvar); ToolStripProgressBar BarraProgresso = new ToolStripProgressBar(); BarraProgresso.Maximum = dgvPos.RowCount; frmPrincipal.statusStrip1.Items.Add(BarraProgresso); ToolStripLabel lblStripPorcent = new ToolStripLabel(); lblStripPorcent.Text = "0"; frmPrincipal.statusStrip1.Items.Add(lblStripPorcent); Thread backgroundThread = new Thread( new ThreadStart(() => { try { for (contador = 0; contador < dgvPos.RowCount; contador++) { posicao = dgvPos.Rows[contador].Cells[0].Value.ToString(); vazia = dgvPos.Rows[contador].Cells[1].Value.ToString(); bloqueioSaida = dgvPos.Rows[contador].Cells[2].Value.ToString(); bloqueioEntrada = dgvPos.Rows[contador].Cells[3].Value.ToString(); bloqueioInvent = dgvPos.Rows[contador].Cells[4].Value.ToString(); tipoPos = dgvPos.Rows[contador].Cells[5].Value.ToString(); qtdUcs = dgvPos.Rows[contador].Cells[6].Value.ToString(); pesoMax = dgvPos.Rows[contador].Cells[7].Value.ToString().Replace(",", "."); unidadePeso = dgvPos.Rows[contador].Cells[8].Value.ToString(); pesoOcupado = dgvPos.Rows[contador].Cells[9].Value.ToString().Replace(",", "."); //datCont2 = Convert.ToInt32(dgvPos.Rows[contador].Cells[10].Value); tipoDep = dgvPos.Rows[contador].Cells[11].Value.ToString(); if (dgvPos.Rows[contador].Cells[10].Value.ToString() == "") { // Se a data da contagem estiver vazia datCont2 = 0; } else { //Se não, converte a data para o formato do banco de dados datCont = DateTime.Parse(dgvPos.Rows[contador].Cells[10].Value.ToString()); datCont2 = Convert.ToInt32(datCont.Year.ToString() + string.Format("{0,2:00}", datCont.Month) + string.Format("{0,2:00}", datCont.Day)); } Conexao.insert_Delete_Update("INSERT INTO POSICAO (Posicao, vazia, bloqueio_saida, bloqueio_entrada, bloqueio_invent, tipo_posicao, qtd_uc, peso_max, uni_peso, peso_ocupado, dat_cont, tipo_dep) values ('" + posicao + "', '" + vazia + "','" + bloqueioSaida + "','" + bloqueioEntrada + "','" + bloqueioInvent + "','" + tipoPos + "'," + qtdUcs + ", " + pesoMax + ",'" + unidadePeso + "'," + pesoOcupado + ", " + datCont2 + ", " + tipoDep + ")"); BarraProgresso.Value = contador; lblStripPorcent.Text = Math.Round(((decimal)contador / (decimal)dgvPos.RowCount) * 100, 1).ToString() + "%"; if (contador == dgvPos.RowCount - 1) { // Se a thread já finalizou, destrói a Progressbar BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); } } //for } // try catch (Exception ex) { MessageBox.Show("Parece que o arquivo não está no formato esperado. Verifique!!! /n" + ex, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error); BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); } } )); backgroundThread.Start(); }
private void bgwAcuracidadeMensal_DoWork(object sender, DoWorkEventArgs e) { //::::::::::::::::::::: ACURACIDADE MENSAL ::::::::::::::::::::::::::::::::::::::::::::::::::: AccessBD conex = new AccessBD(); IDataReader retornoBD; grafAcuracidadeMensal.Titles.Clear(); //Deleta os Tìtulos do gráfico grafAcuracidadeMensal.Series.Clear(); //Deleta as séries do gráfico grafAcuracidadeMensal.Titles.Add("Acuracidade de estoque mensal"); // adiciona título grafAcuracidadeMensal.Titles[0].Font = new Font("", 14, FontStyle.Bold); // coloca o título como negrito grafAcuracidadeMensal.Series.Add("acuracidade"); // Adiciona a série "Quantidade contada" grafAcuracidadeMensal.Series[0].Color = Color.FromArgb(231, 126, 35); grafAcuracidadeMensal.Series["acuracidade"].BackHatchStyle = ChartHatchStyle.BackwardDiagonal; grafAcuracidadeMensal.Series["acuracidade"].IsValueShownAsLabel = true; // Abilita rótulos para a série grafAcuracidadeMensal.Series[0].Font = new Font("", 12, FontStyle.Bold); // coloca o título como negrito //TODO: refazer racional do SQL abaixo SQL = "SELECT D.MES, ROUND((1-(D.VALDIF / E.VALORESTOQUE))*100, 2) " + "FROM " + "(SELECT A.MES, A.VALDIF " + "FROM " + "(SELECT MID(A.DAT_CONT, 5, 2) + MID(A.DAT_CONT, 1, 4) AS MES, ABS(SUM(A.QTD_DIFER * B.VALOR)) AS VALDIF " + "FROM(INVENTARIO AS A LEFT JOIN VALPROD AS B ON A.PRODUTO = B.PRODUTO) " + "WHERE A.TIPO_DEP IN(1001, 1002, 1003, 2001, 2002, 3003, 3001, 3005, 3008, 5002) " + "GROUP BY MID(A.DAT_CONT, 5, 2) + MID(A.DAT_CONT, 1, 4)) AS A) AS D " + "LEFT JOIN VALOR_ESTOQUE AS E ON D.MES = FORMAT(E.MES, \"000000\") " + "WHERE RIGHT(D.MES, 4) = 2016"; //SQL = conex.consultaScalar("SELECT valor FROM Acuracidade_Mensal_Config WHERE config = 'SQL'"); try { retornoBD = conex.consultaReader(SQL); while (retornoBD.Read()) { string sMes = ""; switch (retornoBD.GetString(0)) { case "01": sMes = "Janeiro"; break; case "02": sMes = "Fevereiro"; break; case "03": sMes = "Março"; break; case "04": sMes = "Abril"; break; case "05": sMes = "Maio"; break; case "06": sMes = "Junho"; break; case "07": sMes = "Julho"; break; case "08": sMes = "Agosto"; break; case "09": sMes = "Setembro"; break; case "10": sMes = "Outubro"; break; case "11": sMes = "Novembro"; break; case "12": sMes = "Dezembro"; break; } grafAcuracidadeMensal.Series["acuracidade"].Points.AddXY(sMes, retornoBD.GetDouble(1)); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void bgwEanPosicaoMensal_DoWork(object sender, DoWorkEventArgs e) { //::::::::::::::::::::::: EAN X POSICAO (MENSAL) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: AccessBD conex = new AccessBD(); IDataReader retornoBD; grafEanPosicaoMensal.Titles.Clear(); grafEanPosicaoMensal.Series.Clear(); grafEanPosicaoMensal.Titles.Add("EAN x Posição Mensal"); grafEanPosicaoMensal.Titles[0].Font = new Font("", 14, FontStyle.Bold); grafEanPosicaoMensal.Series.Add("acuracia"); grafEanPosicaoMensal.Series["acuracia"].BackHatchStyle = ChartHatchStyle.BackwardDiagonal; grafEanPosicaoMensal.Series["acuracia"].IsValueShownAsLabel = true; grafEanPosicaoMensal.Series["acuracia"].Color = Color.FromArgb(53, 152, 219); grafEanPosicaoMensal.Series["acuracia"].XValueType = ChartValueType.String; grafEanPosicaoMensal.Series["acuracia"].YValueType = ChartValueType.Double; grafEanPosicaoMensal.Series[0].Font = new Font("", 12, FontStyle.Bold); // coloca o título como negrito SQL = Properties.Settings.Default.sqlEANxPosicaoMensal; retornoBD = conex.consultaReader(SQL); while (retornoBD.Read()) { string sMes = ""; switch (retornoBD.GetString(0)) { case "01": sMes = "Janeiro"; break; case "02": sMes = "Fevereiro"; break; case "03": sMes = "Março"; break; case "04": sMes = "Abril"; break; case "05": sMes = "Maio"; break; case "06": sMes = "Junho"; break; case "07": sMes = "Julho"; break; case "08": sMes = "Agosto"; break; case "09": sMes = "Setembro"; break; case "10": sMes = "Outubro"; break; case "11": sMes = "Novembro"; break; case "12": sMes = "Dezembro"; break; } grafEanPosicaoMensal.Series["acuracia"].Points.AddXY(sMes, retornoBD.GetDouble(1)); } }