示例#1
0
        public Task <IEnumerable <dynamic> > GetDataTable()
        {
            var model = new ItemEstoqueMovimentacao().Query();

            if (!noFilterData.Checked)
            {
                model.Where("ITEM_MOV_ESTOQUE.criado", ">=", Validation.ConvertDateToSql(dataInicial.Value, true))
                .Where("ITEM_MOV_ESTOQUE.criado", "<=", Validation.ConvertDateToSql(dataFinal.Value, true));
            }

            if (Validation.ConvertToInt32(Locais.SelectedValue) >= 1)
            {
                var local = "";
                if (Validation.ConvertToInt32(Locais.SelectedValue) == 1)
                {
                    local = "Cadastro de Produto";
                }

                if (Validation.ConvertToInt32(Locais.SelectedValue) == 2)
                {
                    local = "Vendas";
                }

                if (Validation.ConvertToInt32(Locais.SelectedValue) == 3)
                {
                    local = "Orçamentos";
                }

                if (Validation.ConvertToInt32(Locais.SelectedValue) == 4)
                {
                    local = "Consignações";
                }

                if (Validation.ConvertToInt32(Locais.SelectedValue) == 5)
                {
                    local = "Devoluções";
                }

                model.Where("ITEM_MOV_ESTOQUE.local", local);
            }

            if (Validation.ConvertToInt32(Usuarios.SelectedValue) >= 1)
            {
                model.Where("ITEM_MOV_ESTOQUE.id_usuario", Validation.ConvertToInt32(Usuarios.SelectedValue));
            }

            if (!filterAll.Checked)
            {
                if (filterAdicionado.Checked)
                {
                    model.Where("ITEM_MOV_ESTOQUE.TIPO", "A");
                }

                if (filterRemovido.Checked)
                {
                    model.Where("ITEM_MOV_ESTOQUE.TIPO", "R");
                }
            }

            if (collection.Lookup(BuscarProduto.Text) > 0)
            {
                model.Where("ITEM_MOV_ESTOQUE.id_item", collection.Lookup(BuscarProduto.Text));
            }

            model.LeftJoin("ITEM", "ITEM.id", "ITEM_MOV_ESTOQUE.id_item");
            model.LeftJoin("USUARIOS", "USUARIOS.id_user", "ITEM_MOV_ESTOQUE.id_usuario");
            model.Select("ITEM_MOV_ESTOQUE.*", "ITEM.*", "USUARIOS.id_user", "USUARIOS.nome as nome_user");
            model.Limit(200);
            model.OrderByDesc("ITEM_MOV_ESTOQUE.ID");
            return(model.GetAsync <dynamic>());
        }
示例#2
0
        private void Eventos()
        {
            KeyDown   += KeyDowns;
            KeyPreview = true;
            Masks.SetToUpper(this);

            Shown += (s, e) =>
            {
                Refresh();

                BeginInvoke((MethodInvoker) delegate
                {
                    IdPdtSelecionado = Produtos.IdPdtSelecionado;
                    backOn.RunWorkerAsync();
                });

                SetHeadersAdicionais(GridAdicionais);
                SetHeadersCombo(GridCombos);
                nome.Focus();
            };

            menuEstoque.Click  += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelEstoque, menuEstoque);
            label27.Click      += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelEstoque, menuEstoque);
            pictureBox12.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelEstoque, menuEstoque);

            menuImpostos.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelImpostos, menuImpostos);
            label35.Click      += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelImpostos, menuImpostos);
            pictureBox16.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelImpostos, menuImpostos);

            menuAdicionais.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelAdicionais, menuAdicionais);
            label30.Click        += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelAdicionais, menuAdicionais);
            pictureBox13.Click   += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelAdicionais, menuAdicionais);

            menuCombo.Click    += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelCombo, menuCombo);
            label33.Click      += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelCombo, menuCombo);
            pictureBox17.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelCombo, menuCombo);

            menuInfoAdicionais.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelInfoAdicionais, menuInfoAdicionais);
            label31.Click            += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelInfoAdicionais, menuInfoAdicionais);
            pictureBox15.Click       += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelInfoAdicionais, menuInfoAdicionais);

            btnExit.Click += (s, e) =>
            {
                var dataProd = _modelItem.Query().Where("id", IdPdtSelecionado)
                               .Where("atualizado", "01.01.0001, 00:00:00.000").WhereNull("codebarras").FirstOrDefault();
                if (dataProd != null)
                {
                    var result = AlertOptions.Message("Atenção!", "Esse produto não foi editado, deseja deletar?",
                                                      AlertBig.AlertType.info, AlertBig.AlertBtn.YesNo);
                    if (result)
                    {
                        var data = _modelItem.Remove(IdPdtSelecionado, false);
                        if (data)
                        {
                            Close();
                        }
                    }

                    nome.Focus();
                    return;
                }

                Close();
            };

            btnSalvar.Click += (s, e) => Save();

            btnRemover.Click += (s, e) =>
            {
                var result = AlertOptions.Message("Atenção!", "Você está prestes a deletar um produto, continuar?",
                                                  AlertBig.AlertType.warning, AlertBig.AlertBtn.YesNo);
                if (result)
                {
                    var data = _modelItem.Remove(IdPdtSelecionado);
                    if (data)
                    {
                        Close();
                    }
                }
            };

            btnEstoque.Click += (s, e) =>
            {
                _modelItem.Nome = nome.Text;
                if (new Model.Item().ValidarDados(_modelItem))
                {
                    return;
                }

                var f = new AddEstoque {
                    TopMost = true
                };
                if (f.ShowDialog() == DialogResult.OK)
                {
                    LoadEstoque();

                    estoqueminimo.Focus();
                    DataTableEstoque();
                }
            };

            valorcompra.TextChanged += (s, e) =>
            {
                var txt = (TextBox)s;
                Masks.MaskPrice(ref txt);
            };

            valorvenda.TextChanged += (s, e) =>
            {
                var txt = (TextBox)s;
                Masks.MaskPrice(ref txt);
            };

            txtLimiteDesconto.TextChanged += (s, e) =>
            {
                var txt = (TextBox)s;
                Masks.MaskPrice(ref txt);
            };

            btnAddCategoria.Click += (s, e) =>
            {
                Home.CategoriaPage = "Produtos";
                var f = new AddCategorias
                {
                    FormBorderStyle = FormBorderStyle.FixedSingle,
                    StartPosition   = FormStartPosition.CenterScreen,
                    TopMost         = true
                };
                if (f.ShowDialog() == DialogResult.OK)
                {
                    Categorias.DataSource = new Categoria().GetAll("Produtos");
                    Categorias.Refresh();
                }
            };

            btnAddFornecedor.Click += (s, e) =>
            {
                Home.pessoaPage = "Fornecedores";
                AddClientes.Id  = 0;
                var f = new AddClientes
                {
                    FormBorderStyle = FormBorderStyle.FixedSingle,
                    StartPosition   = FormStartPosition.CenterScreen,
                    TopMost         = true
                };
                if (f.ShowDialog() == DialogResult.OK)
                {
                    LoadFornecedores();
                }
            };

            btnAddImpostoOne.Click += (s, e) =>
            {
                View.Produtos.Impostos.idImpSelected = 0;
                var f = new AddImpostos
                {
                    FormBorderStyle = FormBorderStyle.FixedSingle,
                    StartPosition   = FormStartPosition.CenterScreen,
                    TopMost         = true
                };
                if (f.ShowDialog() == DialogResult.OK)
                {
                    LoadImpostoOne();
                    LoadImpostoTwo();
                }
            };

            btnAddImpostoTwo.Click += (s, e) =>
            {
                View.Produtos.Impostos.idImpSelected = 0;
                var f = new AddImpostos
                {
                    FormBorderStyle = FormBorderStyle.FixedSingle,
                    StartPosition   = FormStartPosition.CenterScreen,
                    TopMost         = true
                };
                if (f.ShowDialog() == DialogResult.OK)
                {
                    LoadImpostoOne();
                    LoadImpostoTwo();
                }
            };

            valorvenda.TextChanged += (s, e) =>
            {
                if (Validation.ConvertToDouble(valorcompra.Text) == 0)
                {
                    return;
                }

                if (Validation.ConvertToDouble(valorvenda.Text) == 0)
                {
                    return;
                }

                var media =
                    (Validation.ConvertToDouble(valorvenda.Text) - Validation.ConvertToDouble(valorcompra.Text)) * 100 /
                    Validation.ConvertToDouble(valorcompra.Text);
                precoMedio.Text = $"{Validation.ConvertToDouble(Validation.RoundTwo(media))}%";
            };

            valorcompra.TextChanged += (s, e) =>
            {
                if (Validation.ConvertToDouble(valorcompra.Text) == 0)
                {
                    return;
                }

                if (Validation.ConvertToDouble(valorvenda.Text) == 0)
                {
                    return;
                }

                var media =
                    (Validation.ConvertToDouble(valorvenda.Text) - Validation.ConvertToDouble(valorcompra.Text)) * 100 /
                    Validation.ConvertToDouble(valorcompra.Text);
                precoMedio.Text = Validation.Price(media);
            };

            estoqueminimo.KeyPress += (s, e) => Masks.MaskDouble(s, e);
            codebarras.KeyPress    += (s, e) => Masks.MaskOnlyNumbers(s, e, 20);
            referencia.KeyPress    += (s, e) => Masks.MaskOnlyNumberAndChar(s, e, 50);
            ncm.KeyPress           += (s, e) => Masks.MaskOnlyNumbers(s, e, 8);
            cest.KeyPress          += (s, e) => Masks.MaskOnlyNumbers(s, e, 7);

            nome.TextChanged += (s, e) => { btnEstoque.Visible = nome.Text.Length >= 2; };

            nome.KeyPress += (s, e) => { Masks.MaskMaxLength(s, e, 100); };

            btnHelp.Click += (s, e) => Support.OpenLinkBrowser(Configs.LinkAjuda);

            chkImpostoNFE.Click += (s, e) =>
            {
                if (chkImpostoNFE.Checked)
                {
                    ImpostoNFE.Enabled = true;
                }
                else
                {
                    ImpostoNFE.Enabled       = false;
                    ImpostoNFE.SelectedValue = 0;
                }
            };

            chkImpostoCFE.Click += (s, e) =>
            {
                if (chkImpostoCFE.Checked)
                {
                    ImpostoCFE.Enabled = true;
                }
                else
                {
                    ImpostoCFE.Enabled       = false;
                    ImpostoCFE.SelectedValue = 0;
                }
            };

            btnRemoverImage.Click += (s, e) =>
            {
                _modelItem.Id = IdPdtSelecionado;

                if (File.Exists($@"{Program.PATH_IMAGE}\Imagens\{_modelItem.Image}"))
                {
                    File.Delete($@"{Program.PATH_IMAGE}\Imagens\{_modelItem.Image}");
                }

                _modelItem.Image = "";
                _modelItem.Save(_modelItem, false);

                imageProduct.Image      = Resources.sem_imagem;
                pathImage.Text          = "";
                btnRemoverImage.Visible = false;
                Alert.Message("Pronto!", "Imagem removida com sucesso.", Alert.AlertType.success);
            };

            btnImage.Click += (s, e) =>
            {
                ofd.RestoreDirectory = true;
                ofd.Filter           = @"Image files (*.jpg, *.jpeg, *.png) | *.jpg; *.jpeg; *.png";
                ofd.CheckFileExists  = true;
                ofd.CheckPathExists  = true;
                ofd.Multiselect      = false;
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    if (!ofd.CheckFileExists)
                    {
                        Alert.Message("Opps", "Não encontramos a imagem selecionada. Tente Novamente!",
                                      Alert.AlertType.error);
                        return;
                    }

                    var path = ofd.InitialDirectory + ofd.FileName;
                    var ext  = Path.GetExtension(ofd.FileName);

                    if (File.Exists(path))
                    {
                        if (!Directory.Exists(Program.PATH_IMAGE + @"\Imagens"))
                        {
                            Directory.CreateDirectory(Program.PATH_IMAGE + @"\Imagens");
                        }

                        var nameImage = $"{Validation.CleanString(nome.Text).Replace(" ", "-")}{ext}";

                        if (File.Exists($@"{Program.PATH_IMAGE}\Imagens\{nameImage}"))
                        {
                            File.Delete($@"{Program.PATH_IMAGE}\Imagens\{nameImage}");
                        }

                        File.Copy(path, $@"{Program.PATH_IMAGE}\Imagens\{nameImage}");

                        _modelItem.Id    = IdPdtSelecionado;
                        _modelItem.Image = nameImage;
                        _modelItem.Save(_modelItem, false);

                        var imageAsByteArray = File.ReadAllBytes($@"{Program.PATH_IMAGE}\Imagens\{nameImage}");
                        imageProduct.Image      = Support.ByteArrayToImage(imageAsByteArray);
                        pathImage.Text          = $@"{Program.PATH_IMAGE}\Imagens\{nameImage}";
                        btnRemoverImage.Visible = true;
                        Alert.Message("Pronto!", "Imagem atualizada com sucesso.", Alert.AlertType.success);
                    }
                    else
                    {
                        Alert.Message("Opps", "Não foi possível copiar a imagem. Tente novamente.",
                                      Alert.AlertType.error);
                    }
                }
            };

            filterTodos.Click        += (s, e) => DataTableEstoque();
            filterMaisRecentes.Click += (s, e) => DataTableEstoque();

            selecionarNCM.Click += (s, e) =>
            {
                var f = new ModalNCM {
                    TopMost = true
                };
                if (f.ShowDialog() == DialogResult.OK)
                {
                    ncm.Text = ModalNCM.NCM;
                }
            };

            backOn.DoWork += (s, e) =>
            {
                _modelItem       = _modelItem.FindById(IdPdtSelecionado).FirstOrDefault <Model.Item>();
                ListCategorias   = new Categoria().GetAll("Produtos");
                ListFornecedores = new Pessoa().GetAll("Fornecedores");
                Impostos         = new Model.Imposto().FindAll().WhereFalse("excluir").OrderByDesc("nome").Get();
                Impostos2        = new Model.Imposto().FindAll().WhereFalse("excluir").OrderByDesc("nome").Get();
            };

            backOn.RunWorkerCompleted += (s, e) =>
            {
                Start();

                if (IdPdtSelecionado > 0)
                {
                    LoadData();
                }
                else
                {
                    _modelItem = new Item {
                        Tipo = "Produtos", Id = IdPdtSelecionado
                    };
                    if (_modelItem.Save(_modelItem, false))
                    {
                        IdPdtSelecionado = _modelItem.GetLastId();
                        LoadData();
                    }
                    else
                    {
                        Alert.Message("Opss", "Erro ao criar.", Alert.AlertType.error);
                        Close();
                    }
                }
            };

            workerBackEstoque.DoWork += (s, e) =>
            {
                var query = new ItemEstoqueMovimentacao().Query()
                            .LeftJoin("USUARIOS", "USUARIOS.id_user", "ITEM_MOV_ESTOQUE.id_usuario")
                            .Select("ITEM_MOV_ESTOQUE.*", "USUARIOS.id_user", "USUARIOS.nome as nome_user")
                            .Where("id_item", IdPdtSelecionado)
                            .OrderByDesc("criado");

                if (LimitShowStock > 0)
                {
                    query.Limit(LimitShowStock);
                }

                ListEstoque = query.Get();
            };

            workerBackEstoque.RunWorkerCompleted += (s, e) =>
            {
                GetDataTableEstoque(listaEstoque);
            };

            btnVariacao.Click += (s, e) =>
            {
                ModalVariacao.idProduto = IdPdtSelecionado;
                var form = new ModalVariacao();
                form.ShowDialog();
            };

            GridAdicionais.CellContentClick += (s, e) =>
            {
                if (GridAdicionais.Columns[e.ColumnIndex].Name == "Selecione")
                {
                    GridAdicionais.SelectedRows[0].Cells["Selecione"].Value = (bool)GridAdicionais.SelectedRows[0].Cells["Selecione"].Value == false;
                }
            };

            GridAdicionais.CellMouseEnter += (s, e) =>
            {
                if (e.ColumnIndex < 0 || e.RowIndex < 0)
                {
                    return;
                }

                var dataGridView = s as DataGridView;
                if (GridAdicionais.Columns[e.ColumnIndex].Name == "Selecione")
                {
                    dataGridView.Cursor = Cursors.Hand;
                }
            };

            GridAdicionais.CellMouseLeave += (s, e) =>
            {
                if (e.ColumnIndex < 0 || e.RowIndex < 0)
                {
                    return;
                }

                var dataGridView = s as DataGridView;
                if (GridAdicionais.Columns[e.ColumnIndex].Name == "Selecione")
                {
                    dataGridView.Cursor = Cursors.Default;
                }
            };

            GridCombos.CellContentClick += (s, e) =>
            {
                if (GridCombos.Columns[e.ColumnIndex].Name == "Selecione")
                {
                    GridCombos.SelectedRows[0].Cells["Selecione"].Value = (bool)GridCombos.SelectedRows[0].Cells["Selecione"].Value == false;
                }
            };

            GridCombos.CellMouseEnter += (s, e) =>
            {
                if (e.ColumnIndex < 0 || e.RowIndex < 0)
                {
                    return;
                }

                var dataGridView = s as DataGridView;
                if (GridCombos.Columns[e.ColumnIndex].Name == "Selecione")
                {
                    dataGridView.Cursor = Cursors.Hand;
                }
            };

            GridCombos.CellMouseLeave += (s, e) =>
            {
                if (e.ColumnIndex < 0 || e.RowIndex < 0)
                {
                    return;
                }

                var dataGridView = s as DataGridView;
                if (GridCombos.Columns[e.ColumnIndex].Name == "Selecione")
                {
                    dataGridView.Cursor = Cursors.Default;
                }
            };
        }
示例#3
0
        public async Task ReceberRemessa()
        {
            var response = new RequestApi()
                           .URL(Program.URL_BASE + $"/api/pedido/remessas/{Program.TOKEN}/{idEmpresa}")
                           .Content().Response();

            if (response["error"]?.ToString() == "Nenhum registro encontrado")
            {
                Alert.Message("OPPS", "Não existem remessas.", Alert.AlertType.error);
                return;
            }

            foreach (dynamic item in response)
            {
                if (string.IsNullOrEmpty(item.Value.ToString()))
                {
                    return;
                }

                string idEmpresa = item.Value.pedido.id_empresa;
                int    idUsuario = item.Value.pedido.id_usuario;
                int    idPedido  = item.Value.pedido.id;
                int    idSync    = item.Value.pedido.id_sync;

                var lastId = 0;
                if (item.Value.pedido != null)
                {
                    var createPedido = new Pedido
                    {
                        Id          = 0,
                        Tipo        = "Remessas",
                        Excluir     = 0,
                        Emissao     = item.Value.pedido.emissao,
                        Cliente     = item.Value.pedido.cliente,
                        Colaborador = item.Value.pedido.colaborador,
                        Total       = item.Value.pedido.total,
                        Desconto    = item.Value.pedido.desconto,
                        Frete       = item.Value.pedido.frete,
                        Produtos    = item.Value.pedido.produtos,
                        id_usuario  = item.Value.pedido.id_usuario,
                        campoa      = "RECEBIDO",
                        campob      = item.Value.pedido.campoc,
                        Observacao  = $"Remessa da empresa: {idEmpresa}"
                    };
                    createPedido.Save(createPedido);

                    lastId = createPedido.GetLastId();
                }

                if (item.Value.itens != null)
                {
                    foreach (var data in item.Value.itens)
                    {
                        var createPedidoItem = new PedidoItem();
                        createPedidoItem.Id      = 0;
                        createPedidoItem.Tipo    = "Produtos";
                        createPedidoItem.Excluir = 0;
                        createPedidoItem.Pedido  = lastId;

                        string codebarras = data.Value.cean;
                        double quantidade = data.Value.quantidade;
                        var    dataItem   = new Item().FindAll().WhereFalse("excluir").Where("codebarras", codebarras)
                                            .FirstOrDefault <Item>();
                        var idItem = 0;
                        if (dataItem != null)
                        {
                            var movEstoque = new ItemEstoqueMovimentacao()
                                             .SetUsuario(idUsuario)
                                             .SetQuantidade(quantidade)
                                             .SetTipo("A")
                                             .SetLocal("Remessa de estoque")
                                             .SetObs($"Enviado da empresa: {idEmpresa}")
                                             .SetIdPedido(idPedido)
                                             .SetItem(dataItem);

                            idItem = dataItem.Id;

                            movEstoque.Save(movEstoque);
                        }
                        else
                        {
                            var createItem = new Item
                            {
                                Id          = 0,
                                Excluir     = 0,
                                Tipo        = "Produtos",
                                CodeBarras  = codebarras,
                                Referencia  = data.Value.cprod,
                                Nome        = data.Value.xprod,
                                ValorCompra = data.Value.valorcompra,
                                ValorVenda  = data.Value.valorvenda,
                                Ncm         = data.Value.ncm,
                                ativo       = 0
                            };
                            createItem.Save(createItem);

                            idItem = createItem.GetLastId();

                            var movEstoque = new ItemEstoqueMovimentacao()
                                             .SetUsuario(idUsuario)
                                             .SetQuantidade(quantidade)
                                             .SetTipo("A")
                                             .SetLocal("Remessa de estoque")
                                             .SetObs($"Enviado da empresa: {idEmpresa}")
                                             .SetIdPedido(idPedido)
                                             .SetItem(createItem);

                            movEstoque.Save(movEstoque);
                        }

                        createPedidoItem.Item           = idItem;
                        createPedidoItem.CProd          = data.Value.cprod;
                        createPedidoItem.CEan           = data.Value.cean;
                        createPedidoItem.xProd          = data.Value.xprod;
                        createPedidoItem.Ncm            = data.Value.ncm;
                        createPedidoItem.Cfop           = data.Value.cfop;
                        createPedidoItem.ValorCompra    = data.Value.valorcompra;
                        createPedidoItem.ValorVenda     = data.Value.valorvenda;
                        createPedidoItem.Quantidade     = data.Value.quantidade;
                        createPedidoItem.Medida         = data.Value.medida;
                        createPedidoItem.Total          = data.Value.total;
                        createPedidoItem.Desconto       = data.Value.desconto;
                        createPedidoItem.DescontoItem   = data.Value.descontoitem;
                        createPedidoItem.DescontoPedido = data.Value.descontopedido;
                        createPedidoItem.Frete          = data.Value.frete;
                        createPedidoItem.Icms           = data.Value.icms;
                        createPedidoItem.Federal        = data.Value.federal;
                        createPedidoItem.Estadual       = data.Value.estadual;
                        createPedidoItem.Status         = data.Value.status;
                        createPedidoItem.Save(createPedidoItem, false);
                    }
                }

                dynamic obj = new
                {
                    token      = Program.TOKEN,
                    id_empresa = idEmpresa
                };

                var responseP = new RequestApi().URL(Program.URL_BASE + $"/api/pedido/updateRemessa/{idSync}/RECEBIDO")
                                .Content(obj, Method.POST).Response();
                if (responseP["status"] != "OK")
                {
                    new Log().Add("SYNC", $"{responseP["status"]} | Tabela: pedido - {responseP["message"]}",
                                  Log.LogType.fatal);
                }
            }
        }