예제 #1
0
        private void PreencheCampos(Desintegracao desintegracao)
        {
            ignoraCheckEvent = true;

            if (desintegracao.Tipo == "P")
            {
                rbPercentual.Checked = true;
                dgvPartes.Rows.Clear();
                foreach (var p in desintegracao.Partes)
                {
                    dgvPartes.Rows.Add(p.Item.ItemID, p.Item.Descricao, p.Porcentagem);
                }
            }
            else
            {
                rbQuantitativa.Checked = true;
                dgvPartes.Rows.Clear();
                foreach (var p in desintegracao.Partes)
                {
                    dgvPartes.Rows.Add(p.Item.ItemID, p.Item.Descricao, p.Quantidade);
                }
            }

            dgvPartes.Refresh();

            ignoraCheckEvent = false;
        }
예제 #2
0
        public int SalvaOuAtualiza(Desintegracao desintegracao)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.beginTransaction();
                sql.Query = @"INSERT INTO desintegracao
                            (iddesintegracao, iditemdesintegrado, tipo)
                            VALUES
                            (@iddesintegracao, @iditemdesintegrado, @tipo)
                            ON DUPLICATE KEY UPDATE
                            tipo = @tipo";

                sql.addParam("@iddesintegracao", desintegracao.DesintegracaoID);
                sql.addParam("@iditemdesintegrado", desintegracao.Itemdesintegrado.ItemID);
                sql.addParam("@tipo", desintegracao.Tipo);

                retorno = sql.insertQuery();
                if (retorno > 0)
                {
                    sql.Query = @"DELETE FROM resultado_desintegracao WHERE iddesintegracao = @iddesintegracao";
                    sql.deleteQuery();
                    switch (desintegracao.Tipo)
                    {
                    case "P":
                        sql.Query = @"INSERT INTO resultado_desintegracao (iddesintegracao, iditemparte, porcentagem)
                                VALUES
                                (@iddesintegracao, @iditemparte, @porcentagem)";
                        break;

                    case "Q":
                        sql.Query = @"INSERT INTO resultado_desintegracao (iddesintegracao, iditemparte, quantidade)
                                VALUES
                                (@iddesintegracao, @iditemparte, @quantidade)";
                        break;
                    }

                    foreach (var p in desintegracao.Partes)
                    {
                        sql.clearParams();
                        sql.addParam("@iddesintegracao", p.Desintegracao.DesintegracaoID);
                        sql.addParam("@iditemparte", p.Item.ItemID);

                        if (desintegracao.Tipo == "P")
                        {
                            sql.addParam("@porcentagem", p.Porcentagem);
                        }
                        else
                        {
                            sql.addParam("@quantidade", p.Quantidade);
                        }

                        sql.insertQuery();
                    }
                }
                sql.Commit();
            }
            return(retorno);
        }
예제 #3
0
        //public Item Anterior(int Codigo)
        //{
        //    var item = new Item();
        //    using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
        //    {
        //        sql.Query = @"SELECT *, g.nome AS grupoitemnome FROM item i
        //                    INNER JOIN subgrupoitem s ON i.idsubgrupoitem = s.idsubgrupoitem
        //                    INNER JOIN grupoitem g ON s.idgrupoitem = g.idgrupoitem
        //                    INNER JOIN unimedida u ON u.idunimedida = i.idunimedida
        //                    WHERE iditem = (SELECT max(iditem) FROM item WHERE iditem < @iditem)";
        //        sql.addParam("@iditem", Codigo);

        //        var data = sql.selectQueryForSingleRecord();
        //        if (data == null)
        //        {
        //            return null;
        //        }
        //        item = LeDadosReader(data);
        //    }
        //    return item;
        //}
        //public Item Proximo(int Codigo)
        //{
        //var item = new Item();
        //using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
        //{
        //    sql.Query = @"SELECT *, g.nome AS grupoitemnome FROM item i
        //                INNER JOIN subgrupoitem s ON i.idsubgrupoitem = s.idsubgrupoitem
        //                INNER JOIN grupoitem g ON s.idgrupoitem = g.idgrupoitem
        //                INNER JOIN unimedida u ON u.idunimedida = i.idunimedida
        //                WHERE iditem = (SELECT min(iditem) FROM item WHERE iditem > @iditem)";
        //    sql.addParam("@iditem", Codigo);

        //    var data = sql.selectQueryForSingleRecord();
        //    if (data == null)
        //    {
        //        return null;
        //    }
        //    item = LeDadosReader(data);
        //}
        //return item;
        //}


        private Desintegracao LeDadosReader(List <Dictionary <string, object> > data)
        {
            if (data.Count == 0)
            {
                return(null);
            }

            List <DesintegracaoResultado> listapartes = new List <DesintegracaoResultado>();
            var desintegracao = new Desintegracao();
            var item          = new Item();

            item.ItemID        = Convert.ToInt32(data[0]["iditemdesintegrado"]);
            item.ValorEntrada  = Convert.ToInt32(data[0]["valorentrada"]);
            item.ValorUnitario = Convert.ToInt32(data[0]["valorsaida"]);


            desintegracao.DesintegracaoID  = Convert.ToInt32(data[0]["iddesintegracao"]);
            desintegracao.Itemdesintegrado = item;
            desintegracao.Tipo             = (string)(data[0]["tipo"]);

            foreach (var p in data)
            {
                var parte = new DesintegracaoResultado();
                item                = new Item();
                item.ItemID         = Convert.ToInt32(p["iditemparte"]);
                item.Descricao      = (string)p["descitem"];
                item.ValorEntrada   = (decimal)p["valorentrada"];
                item.ValorUnitario  = (decimal)p["valorsaida"];
                parte.Desintegracao = desintegracao;
                parte.Item          = item;

                if (desintegracao.Tipo == "P")
                {
                    parte.Porcentagem = (decimal)p["porcentagem"];
                }
                else
                {
                    parte.Quantidade = (decimal)p["quantidade"];
                }

                listapartes.Add(parte);
            }
            desintegracao.Partes = listapartes;
            return(desintegracao);
        }
예제 #4
0
        private void CarregaDados()
        {
            if (editando)
            {
                if (MessageBox.Show("Tem certeza que deseja perder os dados alterados?", "Aviso de alteração",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Warning) == DialogResult.No)
                {
                    return;
                }
            }

            if (buscaItemInteiro.item == null)
            {
                return;
            }

            var newDesintegracao = desintegracaoDAO.BuscaByID(buscaItemInteiro.item.ItemID);

            if (newDesintegracao != null)
            {
                desintegracaoconfigurada = newDesintegracao;

                if (newDesintegracao.Tipo == "P")
                {
                    listaresultadospercentual = desintegracaoconfigurada.Partes;
                }
                else
                {
                    listaresultadosquantitativo = desintegracaoconfigurada.Partes;
                }

                PreencheCampos(desintegracaoconfigurada);
                Editando(false);
            }
            else
            {
                dgvPartes.Rows.Clear();
                Editando(true);
            }
        }
예제 #5
0
        private void BtDesintegrar_Click(object sender, EventArgs e)
        {
            desintegracao = desintegracaoDAO.BuscaByID(buscaItem1.item.ItemID);

            foreach (var d in desintegracao.Partes)
            {
                if (desintegracao.Tipo == "Q")
                {
                    quantidadeparte = d.Quantidade;
                    quantitativa    = true;
                }
                else
                {
                    percentualparte = d.Porcentagem;
                    quantitativa    = false;
                }

                InserirItem(d.Item, true);
            }
            RemoverDesintegrado(desintegracao.Itemdesintegrado);
            LimpaCamposItem(true);
        }
예제 #6
0
        public Desintegracao BuscaByID(int Codigo)
        {
            var desintegracao = new Desintegracao();

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"SELECT * FROM desintegracao d
                              INNER JOIN resultado_desintegracao r 
                              ON d.iddesintegracao = r.iddesintegracao
                              INNER JOIN item i 
                              ON r.iditemparte = i.iditem
                              WHERE d.iddesintegracao = @iddesintegracao";

                sql.addParam("@iddesintegracao", Codigo);

                var data = sql.selectQuery();
                if (data == null)
                {
                    return(null);
                }
                desintegracao = LeDadosReader(data);
            }
            return(desintegracao);
        }