public ListarLocalidades(Localidade[] localidades)
        {
            InitializeComponent();

            using (Aguarde aguarde = new Aguarde(
                "Carregando localidades...", localidades.Length,
                "Preparando informações",
                "Aguarde enquanto o sistema prepara as informações das localidades obtidas no banco de dados."))
            {
                hashItemLocalidade = new Dictionary<ListViewItem, Localidade>();

                foreach (Localidade localidade in localidades)
                {
                    ListViewItem item;

                    aguarde.Passo("Lendo " + localidade.Nome);

                    item = new ListViewItem(
                        new string[] {
                        localidade.Nome,
                        localidade.Estado.Nome,
                        localidade.Estado.País.Nome,
                        (localidade.Região != null ? localidade.Região.Nome :
                        (localidade.Estado.Região != null ? localidade.Estado.Região.Nome : ""))
                    });

                    lst.Items.Add(item);

                    hashItemLocalidade[item] = localidade;
                }
            }
        }
 private void Filtrar(Aguarde aguarde, ControlePesquisaMercadoria controle)
 {
     FiltrarValorMáximo(aguarde, controle);
     FiltrarTipos(aguarde, controle);
     FiltrarMetais(aguarde, controle);
     FiltrarPedras(aguarde, controle);
 }
        private void opçãoPrefetch_Click(object sender, EventArgs e)
        {
            CacheMiniaturas cache = Entidades.Álbum.CacheMiniaturas.Instância;

            Aguarde janela = new Aguarde("Aguarde enquanto o arquivo de miniaturas é construído. Este processo pode demorar.", 1, "Processamento de miniaturas", cache.arquivoXml);
            janela.Abrir();

            cache.CarregarCacheMiniaturas();
            janela.Close();
        }
Exemple #4
0
		public void Transpor(double cotaçãoVarejo, StringBuilder saída)
		{
            int maxComandosPorVez = 200;

            IDbConnection cn = Acesso.MySQL.ConectorMysql.Instância.CriarConexão(
                Acesso.MySQL.MySQLUsuários.ObterÚltimaStrConexão());

            cn.Open();

            IDbTransaction t = cn.BeginTransaction();
            
            StringBuilder consulta = new StringBuilder("");

            this.cotaçãoVarejo = cotaçãoVarejo;
            
            CriarHash();
            int vezAtual = 0;

            Aguarde aguarde = new Aguarde(
                "Alterando indices do novo banco",
                cadmer.Rows.Count, "Transpondo banco de dados", 
                "Aguarde enquanto o banco de dados é sincronizado.");

            aguarde.Abrir();

			foreach(DataRow itemMercadoria in cadmer.Rows)
			{
                aguarde.Passo();
    
                TransporMercadoria(itemMercadoria, consulta, saída);
                vezAtual++;

                if (vezAtual >= maxComandosPorVez && consulta.Length > 0)
                {
                    vezAtual = 0;
                    IDbCommand cmd = cn.CreateCommand();
                    cmd.Transaction = t;
                    cmd.CommandText = consulta.ToString();
                    consulta.Clear();
                    cmd.ExecuteNonQuery();
                }                
			}

            if (vezAtual > 0 && consulta.Length > 0)
            {
                IDbCommand cmd = cn.CreateCommand();
                cmd.CommandText = consulta.ToString();
                cmd.Transaction = t;
                cmd.ExecuteNonQuery();
                t.Commit();
            }

            aguarde.Close();
		}
 private void opçãoRefazerÍcones_Click(object sender, EventArgs e)
 {
     Entidades.Álbum.Foto[] lstFotos = Entidades.Álbum.Foto.ObterFotosSemÍcone();
     // Obtem todas as fotos sem ícone
     // Gera o ícone e salva.
     Aguarde janela = new Aguarde("Gerando ícones", lstFotos.Length);
     janela.Show();
     foreach (Foto f in lstFotos)
     {
         f.RefazÍcone();
         f.Atualizar();
         janela.Passo(f.ReferênciaFormatada);
     }
     janela.Close();
 }
        public PesquisaMercadoria()
        {
            InitializeComponent();

            using (Aguarde aguarde = new Aguarde("Recuperando componentes da mercadoria...", 2))
            {
                aguarde.Abrir();

                chkTipo.Items.AddRange(MercadoriaTipo.ObterTipos());
                aguarde.Passo();

                chkMetal.Items.AddRange(Metal.ObterMetais());
                aguarde.Passo();

                chkPedras.Items.AddRange(Pedra.ObterPedras());
            }
        }
        private Entidades.Mercadoria.Mercadoria[] CarregarMercadorias()
        {
            Entidades.Mercadoria.Mercadoria[] mercadorias;
            UseWaitCursor = true;
            using (Aguarde aguarde = new Aguarde("Pesquisando...", 4))
            {
                aguarde.Abrir();

                using (ControlePesquisaMercadoria controle = new ControlePesquisaMercadoria(cmbTabela.Seleção))
                {
                    Filtrar(aguarde, controle);
                    aguarde.Passo();

                    mercadorias = controle.ObterMercadorias();
                }
            }

            UseWaitCursor = false;
            return mercadorias;
        }
        private void btnExcluir_Click(object sender, EventArgs e)
        {
            Aguarde janela = new Aguarde("Exclusão de classificação", afetadas.Count);
            janela.Show();

            foreach (Entidades.Pessoa.Pessoa p in afetadas)
            {
                classificador.DefinirAtribuição(p, false);
                p.AtualizarClassificação();
                janela.Passo(p.Nome);
            }

            classificador.Descadastrar();

            janela.Close();

            if (EventoItemExcluido != null)
                EventoItemExcluido();

            Close();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Dbf dbf = new Dbf(txtArquivo.Text);
            DataSet dataSetDbf = new DataSet();
            DataSet dataSetMysql = new DataSet();
            
            AdicionarTabelaAoDataSet(dataSetMysql, "cadcli");

            DataTable tabelaCadCliMysql = dataSetMysql.Tables["cadcli"];

            dbf.AdicionarTabelaAoDataSet(dataSetDbf, "cadcli");

            DataRowCollection coleção = dataSetDbf.Tables["cadcli"].Rows;
            Apresentação.Formulários.Aguarde janelaAguarde = new Aguarde("Transpondo", coleção.Count);
            janelaAguarde.Show();

            foreach (DataRow item in coleção)
            {
                janelaAguarde.Passo();

                DataRow novo;

                novo = tabelaCadCliMysql.NewRow();
                novo["cod"] = item["CL_COD"];
                novo["dig"] = item["CL_DIG"];
                novo["nosso"] = item["CL_NOSSO"];
                novo["nome"] = item["CL_NOME"];
                novo["regiao"] = item["CL_REGIAO"];
                novo["end"] = item["CL_END"];
                novo["bairro"] = item["CL_BAIRRO"];
                novo["cep"] = item["CL_CEP"];
                novo["cid"] = item["CL_CID"];
                novo["uf"] = item["CL_UF"];
                novo["cgc"] = item["CL_CGC"];
                novo["cpf"] = item["CL_CPF"];
                novo["insc"] = item["CL_INSC"];
                novo["endcob"] = item["CL_ENDCOB"];
                novo["cidcob"] = item["CL_CIDCOB"];
                novo["cepcob"] = item["CL_CEPCOB"];
                novo["ufcob"] = item["CL_UFCOB"];
                novo["contato"] = item["CL_CONTATO"];
                novo["fone"] = item["CL_FONE"];
                novo["fax"] = item["CL_FAX"];
                novo["conta"] = item["CL_CONTA"];
                novo["classe"] = item["CL_CLASSE"];
                novo["categor"] = item["CL_CATEGOR"];
                novo["obs"] = item["CL_OBS"].ToString() + "\n" +
                    item["CL_OBS1"].ToString() + "\n" +
                    item["CL_OBS2"].ToString() + "\n" +
                    item["CL_OBS3"].ToString() + "\n" +
                    item["CL_OBS4"].ToString() + "\n" +
                    item["CL_OBS5"].ToString() + "\n" +
                    item["CL_OBS6"].ToString() + "\n" + 
                    item["CL_OBS7"].ToString();

                    
                //novo["obs"] = "retirado no codigo fonte!";
                
                tabelaCadCliMysql.Rows.Add(novo);
            }
            janelaAguarde.Passo("Gravando...");
            GravarDataSet(dataSetMysql, "cadcli");
            janelaAguarde.Close();
            MessageBox.Show("Fim");
        }
		/// <summary>
		/// Exibe pessoas na lista.
		/// </summary>
		/// <param name="pessoas">Pessoas a serem exibidas.</param>
		private void Exibir(List<Entidades.Pessoa.Pessoa>  pessoas)
		{
            Aguarde janela = new Apresentação.Formulários.Aguarde("Este processo não pode demorar", pessoas.Count, "Carregando cidades", "Experimente digitar o nome seguido de qualquer sobrenome, este processo será mais rápido da próxima vez.");
            janela.Abrir();

            // Carrega o endereços das pessoas.
            Entidades.Pessoa.Pessoa.CarregarEndereços(pessoas);

            foreach (Entidades.Pessoa.Pessoa pessoa in pessoas)
			{
                janela.Passo();
				ListViewItem item = new ListViewItem(new string [lista.Columns.Count]);

				// Atribuir nome
				item.Text = (pessoa != null && pessoa.Nome != null) ? pessoa.Nome : "";

                List<Entidades.Pessoa.Endereço.Endereço> endereços = pessoa.Endereços.ExtrairElementos();
                if (endereços.Count > 0
                    && endereços[0].Localidade != null
                    && endereços[0].Localidade.Estado != null)

                    item.SubItems[colCidade.Index].Text = endereços[0].Localidade.Nome + " - " + endereços[0].Localidade.Estado.Sigla;

				// Adicionar à lista
				lista.Items.Add(item);
				itensPessoa[item] = pessoa;
			}
			
			if (lista.Items.Count >= 1)
			{
				lista.Items[0].Selected = true;
				lista.Items[0].EnsureVisible();
			}

            janela.Close();
		}
Exemple #11
0
        /// <summary>
        /// 41|000024|2010-03-11 10:41:43|      2.05|2010-09-17 10:41:43|
        /// </summary>
        private static void GeraArquivoPreco(string caminhoCompletoPreco)
        {
            Aguarde aguarde = new Aguarde("Consultando preços", ds.Tables["mercadoria"].Rows.Count);

            aguarde.Show();

            using (StreamWriter strPreco = new StreamWriter(caminhoCompletoPreco))
            {
                foreach (DataRow m in ds.Tables["mercadoria"].Rows)
                {
                    aguarde.Passo();
                    string referencia = (string)m["referencia"];
                    bool foraDeLinha = ((byte)m["foradelinha"]) != 0;

                    if (foraDeLinha)
                        continue;

                    bool dePeso = ((byte)m["dePeso"]) != 0;
                    string descricao = (m["nome"] is DBNull ? "" : (string)m["nome"]);
                    double peso = (m["peso"] is DBNull ? 0 : (double)m["peso"]);

                    strPreco.Write("001|");
                    EscreveReferenciaComDigito(strPreco, referencia);
                    strPreco.Write("|");
                    strPreco.Write(string.Format("{0:yyyy-MM-dd hh:mm:ss}", DateTime.Now));
                    strPreco.Write("|");

                    // Preço de venda
                    Entidades.Mercadoria.Mercadoria mercadoria;

                    if (Entidades.Mercadoria.Mercadoria.ConferirSeÉDePeso(referencia))
                    {
                        mercadoria = Entidades.Mercadoria.Mercadoria.ObterMercadoria(referencia, 1,
                        Tabela.ObterPrimeiraTabela(Setor.ObterSetor(SetorSistema.Varejo)));
                    }
                    else
                    {
                        mercadoria = Entidades.Mercadoria.Mercadoria.ObterMercadoria(referencia,
                        Tabela.ObterPrimeiraTabela(Setor.ObterSetor(SetorSistema.Varejo)));
                    }


                    Preço preçoMercadoria = mercadoria.CalcularPreço(Cotação.ObterCotaçãoVigente(Moeda.ObterMoeda(MoedaSistema.OuroVarejo)));
                    string preçoStr = Math.Round(preçoMercadoria.Valor, 2).ToString().Replace(',', '.').Trim();

                    //string preçoStr = "99.99";

                    strPreco.Write(preçoStr);
                    strPreco.Write("|");
                    strPreco.Write(string.Format("{0:yyyy-MM-dd hh:mm:ss}", DateTime.Now));
                    strPreco.Write("|9999|");
                    strPreco.Write(preçoStr);
                    strPreco.WriteLine("|");
                }
            }
            aguarde.Close();
        }
        private void opçãoExtrairFotos_Click(object sender, EventArgs e)
        {
            if (lst.Seleção == null)
            {
                MessageBox.Show(this,
                    "Favor selecionar um álbum.",
                    "Escolha do álbum",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Exclamation);

                return;
            }

            folderBrowserDialog.Description = "Escolha o diretório destino";

            if (folderBrowserDialog.ShowDialog(this) == DialogResult.OK)
            {
                Entidades.Álbum.Álbum album = lst.Seleção;
                List<Foto> fotos = album.Fotos.ExtrairElementos();

                Aguarde aguarde = new Aguarde("Extraíndo fotos", fotos.Count);

                aguarde.Abrir();
                string path = folderBrowserDialog.SelectedPath;

                if (!path.EndsWith(@"\"))
                    path = path + @"\";

                foreach (Foto f in fotos)
                {
                    Image imagem = f.Imagem;

                    Entidades.Mercadoria.Mercadoria m = f.ObterMercadoria();

                    if (imagem != null)
                        imagem.Save(path + f.ReferênciaFormatada + " - " + m.Descrição + (m.DePeso ? "" : " - " + m.PesoFormatado) + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

                    aguarde.Passo();
                }

                aguarde.Close();

                MessageBox.Show("As fotos foram extraídas", "Fim", MessageBoxButtons.OK, MessageBoxIcon.Information);
                System.Diagnostics.Process.Start(path);
            }
        }
        private void btnOk_Click(object sender, EventArgs e)
        {
            AguardeDB.Mostrar();

            try
            {
                if (álbum == null || !álbum.Cadastrado)
                {
                    álbum = Entidades.Álbum.Álbum.Cadastrar(txtNome.Text.Trim(), txtDescrição.Text);

                    if (radioTudo.Checked || radioLinha.Checked)
                    {
                        int qtd = Entidades.Álbum.Foto.ContarFotos();

                        AguardeDB.Suspensão(true);

                        try
                        {
                            using (Aguarde dlg = new Aguarde("Preparando álbum", qtd, "Inserindo fotos", "Aguarde enquanto o sistema insere as fotos no novo álbum."))
                            {
                                Foto[] fotos = Foto.ObterFotos(true);

                                foreach (Foto foto in fotos)
                                {
                                    bool ok = true;

                                    Entidades.Mercadoria.Mercadoria mercadoria;

                                    dlg.Show();
                                    dlg.Passo(foto.ReferênciaFormatada);

                                    if (radioLinha.Checked)
                                    {
                                        mercadoria = Entidades.Mercadoria.Mercadoria.ObterMercadoria(foto.ReferênciaFormatada, Entidades.Tabela.TabelaPadrão);

                                        if (mercadoria != null)
                                            ok = !mercadoria.ForaDeLinha;
                                    }

                                    if (ok)
                                        álbum.Fotos.Adicionar(foto);
                                }
                            }
                        }
                        finally
                        {
                            AguardeDB.Suspensão(false);
                        }

                        álbum.Atualizar();
                    }
                }
                else
                {
                    álbum.Nome = txtNome.Text.Trim();
                    álbum.Descrição = txtDescrição.Text;
                    álbum.Atualizar();
                }
            }
            finally
            {
                AguardeDB.Fechar();
            }

            DialogResult = DialogResult.OK;
        }
Exemple #14
0
        public static void ExportarAtacadoBR500()
        {
            string datayyyymmdd = DateTime.Now.Date.ToString("yyyyMMdd");

            // Solicita nome do arquivo
            using (SaveFileDialog dlgGrava = new SaveFileDialog())
            {
                dlgGrava.Title = "Escolha onde gravar o arquivo principal (CAD1A025.TXT)";

                dlgGrava.FileName = @"CAD1A025.TXT";
                dlgGrava.OverwritePrompt = false;
                dlgGrava.DefaultExt = "TXT";
                if (dlgGrava.ShowDialog() == DialogResult.OK)
                {
                    nomeArquivoPrincipal = dlgGrava.FileName;
                }
                else
                    return;

                dlgGrava.Dispose();
            }

            // Solicita nome do arquivo
            using (System.Windows.Forms.SaveFileDialog dlgGrava = new SaveFileDialog())
            {
                //dlgGrava.InitialDirectory = nomeArquivoPrincipal;
                dlgGrava.Title = "Escolha onde gravar o arquivo secundário, de código de barras EAN(CAD1A090.TXT)";
                dlgGrava.FileName = @"CAD1A090.TXT";
                dlgGrava.OverwritePrompt = false;
                dlgGrava.DefaultExt = "TXT";
                if (dlgGrava.ShowDialog() == DialogResult.OK)
                {
                    nomeArquivoEAN = dlgGrava.FileName;
                }
                else
                    return;

                dlgGrava.Dispose();
            }


            // Obtem a cotação de varejo
            cotação = Cotação.ObterCotaçãoVigente(Moeda.ObterMoeda(4)).Valor;

            List<IDbConnection> conexõesRemovidas = new List<IDbConnection>();
            // Abre banco de dados
            MySQL.AdicionarTabelaAoDataSet(ds, "mercadoria", conexõesRemovidas);
            MySQL.AdicionarTabelaAoDataSet(ds, "tabelamercadoria", conexõesRemovidas);

            Aguarde janela = new Aguarde("Gerando entrada para impressora fiscal", ds.Tables["mercadoria"].Rows.Count);
            janela.Abrir();
            using (StreamWriter arquivoPrincipal = new StreamWriter(nomeArquivoPrincipal))
            {
                using (StreamWriter arquivoEAN = new StreamWriter(nomeArquivoEAN))
                {
                    foreach (DataRow m in ds.Tables["mercadoria"].Rows)
                    {
                        janela.Passo();
                        string referencia = (string)m["referencia"];
                        bool foraDeLinha = ((byte)m["foradelinha"]) != 0;

                        if (referencia.Length >= 10 && !foraDeLinha)
                        {
                            arquivoPrincipal.Write("0");
                            string referenciaCortada = Cortar(referencia.Remove(1, 1), 10, '0', false);
                            // Arquivo EAN

                            // Operação: Inclusão
                            arquivoEAN.Write("0");

                            // Referencia da empresa, total 13 posicoes
                            arquivoEAN.Write(Cortar(referencia, 13, '0', false));

                            // Digito
                            arquivoEAN.Write(Cortar(m["digito"].ToString(), 1));

                            // Código reduzido
                            arquivoEAN.Write(referenciaCortada);

                            // Quantidade de unidades p/ EAN - total 7
                            string qtdEan = new String('0', 6) + "1";
                            arquivoEAN.Write(qtdEan);

                            // Uso específico
                            arquivoEAN.Write(new String('0', 10));

                            // Uso Específico
                            arquivoEAN.Write(new String(' ', 2));

                            // Divide preço pela EAN-QTD
                            arquivoEAN.Write("0");

                            // Para uso futuro
                            //arquivoEAN.Write(new String(' ', 23));
                            arquivoEAN.WriteLine();

                            // Arquivo Principal

                            arquivoPrincipal.Write(referenciaCortada);

                            // Seção grupo subgrupo
                            arquivoPrincipal.Write("000100010001");

                            //Descrição - 40
                            string descrição = (string)m["nome"];

                            // Retirar os acentos
                            descrição = Acentuação.Singleton.TirarAcentos(descrição);

                            arquivoPrincipal.Write(Cortar(descrição, 40));

                            // Descrição - 20 
                            arquivoPrincipal.Write(Cortar(descrição, 20));

                            // Tipo de embalagem fornecedor
                            arquivoPrincipal.Write("UN");

                            // Qtd embalagem fornecedor
                            arquivoPrincipal.Write("0001");

                            // Tipo de embalagem de venda
                            arquivoPrincipal.Write("UN");

                            // Qtd embalagem venda
                            arquivoPrincipal.Write("0001");

                            // Peso variável
                            bool dePeso = (byte)m["depeso"] != 0;
                            arquivoPrincipal.Write(dePeso ? "S" : "N");

                            // Não emite etiqueta
                            arquivoPrincipal.Write("0");

                            // Tecla da balança 
                            arquivoPrincipal.Write("000");

                            // Validade do produto para balança
                            arquivoPrincipal.Write("000");

                            // Receita do produto para balança
                            arquivoPrincipal.Write(new String(' ', 100));

                            // % de IPI
                            arquivoPrincipal.Write(new String('0', 5));

                            // % bonificação
                            arquivoPrincipal.Write(new String('0', 5));

                            // Valor de despache acessória
                            arquivoPrincipal.Write(new String('0', 10));

                            // Valor de despache acessória tributária
                            arquivoPrincipal.Write(new String('0', 10));

                            // % de frete cobrado
                            arquivoPrincipal.Write(new String('0', 5));

                            // Valor do ICM na fonte
                            arquivoPrincipal.Write(new String('0', 11));

                            // Valor do ICM na compra
                            arquivoPrincipal.Write(new String('0', 4));

                            // Data do cálculo da saída média ddmmaaaa
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write(new String('0', 5));

                            // Valor da saída média
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço de custo do fornecedor
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço de custo do fornecedor anterior
                            arquivoPrincipal.Write(new String('0', 11));

                            // Data preço custo fornecedor
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data preço custo fornecedor anterior
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Preço de venda unitário 8,2-> "0000000000"
                            double preçoVenda = ObterPreço(referencia);
                            if (preçoVenda <= 0)
                            {
                                //ReportarErro("Preço zero para referência " + referencia);
                            }
                            string preçoVenda10Digitos = preçoVenda.ToString("00000000.00").Replace(".", "").Replace(",", "");

                            if (preçoVenda10Digitos.Length != 10)
                                MessageBox.Show("Erro, deveria ter 10 digitos");

                            arquivoPrincipal.Write(preçoVenda10Digitos);

                            // Preço de venda 2 
                            arquivoPrincipal.Write(preçoVenda10Digitos);

                            // Preço de venda anterior
                            arquivoPrincipal.Write(preçoVenda10Digitos);

                            string preçoVenda11Digitos = preçoVenda.ToString("00000000.000").Replace(".", "").Replace(",", "");
                            if (preçoVenda11Digitos.Length != 11)
                                MessageBox.Show("Erro: deveria ter 11 dígitos");

                            // Preço de venda (Unitário)
                            arquivoPrincipal.Write(preçoVenda11Digitos);

                            // Preço de venda 2
                            arquivoPrincipal.Write(preçoVenda11Digitos);

                            // Preço de venda anterior
                            arquivoPrincipal.Write(preçoVenda11Digitos);

                            // Data preço de venda
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data preço de venda anterior
                            arquivoPrincipal.Write(datayyyymmdd);

                            // % margem de lucro
                            arquivoPrincipal.Write("00");

                            // % margem de lucro anterior
                            arquivoPrincipal.Write("00");

                            // Custo de reposição
                            arquivoPrincipal.Write(new String('0', 11));

                            // Custo de reposição anterior
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço com margem zero
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço margem zero anterior
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço oferta/promoção
                            arquivoPrincipal.Write(new String('0', 10));

                            // Promoção anterior
                            arquivoPrincipal.Write(new String('0', 10));

                            // Preço oferta/promoção
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço oferta/promoção anterior
                            arquivoPrincipal.Write(new String('0', 11));

                            // Data do início da oferta
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data do fim da oferta
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data do início da oferta anterior
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data do fim da oferta anterior
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Código da natureza fiscal
                            arquivoPrincipal.Write("T18");

                            // Estado de origem
                            arquivoPrincipal.Write("MG");

                            // Código Associado
                            arquivoPrincipal.Write(new String('0', 10));

                            // Comissão praticada
                            arquivoPrincipal.Write(new String('0', 5));

                            // Estoque do produto no depósito
                            arquivoPrincipal.Write(new String('0', 10));

                            // Estoque do produto na loja
                            arquivoPrincipal.Write(new String('0', 10));

                            // Estoque mínimo
                            arquivoPrincipal.Write(new String('0', 10));

                            // Barra a multiplicação do produto no PDV
                            arquivoPrincipal.Write("0");

                            // Tipo de desconto
                            arquivoPrincipal.Write("0");

                            // % desconto máximo
                            arquivoPrincipal.Write(new String('0', 5));

                            // Venda fracionada
                            arquivoPrincipal.Write(dePeso ? "1" : "0");

                            // Não tem dependencia
                            arquivoPrincipal.Write("0");

                            // Título de dependencia
                            arquivoPrincipal.Write(new String(' ', 10));

                            // 2o Título de dependencia
                            arquivoPrincipal.Write(new String(' ', 10));

                            // 3o Título de dependencia
                            arquivoPrincipal.Write(new String(' ', 10));

                            // Pode ser alterado
                            arquivoPrincipal.Write("1");

                            // Produto Cesta básica
                            arquivoPrincipal.Write("0");

                            // Se produto pertence a uma cesta
                            arquivoPrincipal.Write("0");

                            // Se produto é diferenciado de outros
                            arquivoPrincipal.Write("00"); // Normal

                            // Data da última venda do produto
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write("0");

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write("00");

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write("0");

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write(new String(' ', 8));

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write(new String('0', 10));

                            // Modalidade hiperideal
                            arquivoPrincipal.Write("04");

                            // Pontuação fidelidade
                            arquivoPrincipal.Write(new String('0', 7));

                            // Pontos extra fidelidade
                            arquivoPrincipal.Write(new String('0', 7));

                            // Peso a ser calculo em item unitário
                            arquivoPrincipal.Write(new String('0', 5));

                            // Flag de produto unitário vendido por peso
                            //sw.Write(dePeso ? "1" : "0");
                            arquivoPrincipal.Write("0");

                            // Quantidade máxima a ser multiplaco no pdv
                            arquivoPrincipal.Write("000");

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write(new String(' ', 3));

                            // Qtd maxima a ser vendido
                            arquivoPrincipal.Write(new String('0', 5));

                            // Solicita senha do supervisor para venda
                            arquivoPrincipal.Write("0");

                            // Para uso futuro
                            //arquivoPrincipal.Write(new String(' ', 44));

                            arquivoPrincipal.WriteLine();
                        }
                    }
                }

                
                janela.Close();
                MessageBox.Show("Processo concluído.", "Exportação de arquivo fiscal", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Exemple #15
0
		/// <summary>
		/// Ocorre ao solicitar impressão
		/// </summary>
		private void opçãoImprimir_Click(object sender, System.EventArgs e)
		{
			EtiquetaFormato [] etiquetas = ObterFormatosBandeja();

            using (Aguarde aguarde = new Aguarde("Reobtendo configuração dos formatos", etiquetas.Length))
            {
                aguarde.Abrir();

                foreach (EtiquetaFormato etiqueta in etiquetas)
                {
                    aguarde.Passo("Reobtendo configuração do formato " + etiqueta.Formato);
                    etiqueta.ReobterInformações();
                }

                aguarde.Close();
            }

			using (ImprimirEscolha dlg = new ImprimirEscolha(etiquetas, new ImprimirEscolha.CalcularEtiquetas(CalcularNúmeroEtiquetas)))
			{
				if (dlg.ShowDialog() == DialogResult.OK)
				{
					ImprimirEtiquetas(dlg.Seleção, dlg.LayoutEtiquetas);
				}
			}
		}
Exemple #16
0
		/// <summary>
		/// Imprime etiquetas
		/// </summary>
		/// <param name="etiquetas">Etiquetas a serem impressas</param>
		/// <param name="layout">Layout de etiquetas</param>
		private void ImprimirEtiquetas(EtiquetaFormato [] etiquetas, LabelLayout layout)
		{
            ArrayList saquinhosImpressos = new ArrayList();

			int deEtiqueta, atéEtiqueta;	// Seleção de etiquetas a serem impressas
			int nEtiquetas;					// Total de etiquetas a serem impressas
			int etiquetasPágina;			// Etiquetas por página
			int iEtiqueta;					// Iterador

			nEtiquetas      = CalcularNúmeroEtiquetas(etiquetas);
			etiquetasPágina = layout.LabelsPerPage;

			printDlg.PrinterSettings.MaximumPage = (int) Math.Ceiling(nEtiquetas / (float) etiquetasPágina);
			printDlg.PrinterSettings.MinimumPage = 1;
			printDlg.PrinterSettings.DefaultPageSettings.PaperSize = layout.PaperSize;
			printDlg.PrinterSettings.FromPage = 1;
			printDlg.PrinterSettings.ToPage = printDlg.PrinterSettings.MaximumPage;

			if (printDlg.ShowDialog(this.ParentForm) != DialogResult.OK)
			{
				MessageBox.Show(this, "Impressão cancelada pelo usuário", "Impressão", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);	
				return;
			}

			aguardeImpressão = new Aguarde(
					   "Preparando impressão...",
					   2 + printDlg.PrinterSettings.ToPage - printDlg.PrinterSettings.FromPage,
					   "Imprimindo etiquetas",
					   "Aguarde enquanto o sistema imprime as etiquetas solicitadas.");

			// Mostrar janela de espera
            aguardeImpressão.Abrir();
			
			aguardeImpressão.Tag = 0;			// Usado para numeração de página

			try
			{
				// Preparar impressão
				layout.Document = printDoc;
				deEtiqueta      = (printDlg.PrinterSettings.FromPage - 1) * etiquetasPágina;
				atéEtiqueta     = (printDlg.PrinterSettings.ToPage) * etiquetasPágina - 1;
				iEtiqueta       = 0;

				// Inserir objetos de impressão
				layout.Objects = new ArrayList();

				// Atualizando dados
				aguardeImpressão.Passo("Sincronizando dados com o banco de dados");
				bandeja.AtualizaObjetosInstrínsecosDosSaquinhos();

				// Formata a impressão
				aguardeImpressão.Passo("Formatando dados para impressão de etiquetas");
 
				foreach (SaquinhoEtiqueta saquinho in bandeja)
				{
					/* Verificar se saquinho contém formato a ser
						* impresso. Não é a melhor implementação,
						* porém o número de formatos é bem pequeno,
						* levando a um pior desempenho caso utilizado
						* busca binária, já que deve ordenar os itens.
						*/
					for (int i = 0; i < etiquetas.Length; i++)
						if (saquinho.Etiqueta == etiquetas[i])
						{
#if DEBUG
                            if (saquinho.Mercadoria == null)
                                throw new NullReferenceException("Mercadoria de saquinho está nula!");
#endif
							if (iEtiqueta >= deEtiqueta && iEtiqueta <= atéEtiqueta)
							{
								layout.Objects.Add(
									new RepeatedObject(
									layout.Items[i],
									saquinho.Mercadoria,
									( Convert.ToInt32(saquinho.Quantidade) > atéEtiqueta - iEtiqueta + 1
									? atéEtiqueta - iEtiqueta + 1
									: Convert.ToInt32(saquinho.Quantidade))));

                                saquinho.Impresso = true;

                                if (saquinhosImpressos.Contains(saquinho)) throw new Exception("Lista ja contem o item de etiqueta");
                                saquinhosImpressos.Add(saquinho);
							}
							else if (iEtiqueta <= atéEtiqueta && iEtiqueta + saquinho.Quantidade >= deEtiqueta)
							{
								layout.Objects.Add(
									new RepeatedObject(
									layout.Items[i],
									saquinho.Mercadoria,
									Convert.ToInt32(saquinho.Quantidade) - (deEtiqueta - iEtiqueta) > atéEtiqueta - iEtiqueta + 1
									? atéEtiqueta - iEtiqueta + 1
									: Convert.ToInt32(saquinho.Quantidade) - (deEtiqueta - iEtiqueta)));

                                saquinho.Impresso = true;

                                if (saquinhosImpressos.Contains(saquinho)) throw new Exception("Lista ja contem o item de etiqueta");
                                saquinhosImpressos.Add(saquinho);
							}

							iEtiqueta += Convert.ToInt32(saquinho.Quantidade);
						}
				}

				bool loop;

				do
				{
#if !DEBUG
					try
#endif
				{
					printDoc.Print();

					loop = false;
				}
#if !DEBUG
					catch (Exception e)
					{
						loop = MessageBox.Show(
							this.ParentForm,
							"Não foi possível imprimir o documento. Verifique se a impressora está ligada e conectada corretamente ao computador.",
							"Impressão de etiquetas - " + e.Message,
							MessageBoxButtons.RetryCancel) == DialogResult.Retry;

						if (loop)
						{
							printDlg.AllowSomePages = false;
							printDlg.ShowDialog(this.ParentForm);
						}
					}
#endif
				} while (loop);
			}
			finally
			{
				layout.Dispose();
                aguardeImpressão.Close();
                aguardeImpressão.Dispose();
                aguardeImpressão = null;
			}

            bandeja.FoiImpresso(saquinhosImpressos);

            opçãoImprimir.Enabled = true;
		}
		/// <summary>
		/// Ocorre ao mostrar a tela para imprimir
		/// </summary>
		private void painelImprimir_Exibido(object sender, System.EventArgs e)
		{
			using (Aguarde aguarde = new Aguarde(
                       "Preparando para imprimir",
					   seleção.Length + 1,
					   "Preparando impressão de etiquetas",
					   "Aguarde enquanto o sistema prepara a impressão de etiquetas."))
			{
				int etiquetas, etiquetasPágina;

                aguarde.Abrir();

				layout = new LabelLayout();

				layout.ImportType(typeof(Entidades.Mercadoria.Mercadoria));

				// Carrega formato inicial
				aguarde.Passo("Carregando formato " + seleção[0].Formato);
				layout.LoadFromXml(seleção[0].Configuração, false);

				// Mescla demais formatos
				for (int i = 1; i <seleção.Length; i++)
				{
					aguarde.Passo("Mesclando formato " + seleção[i].Formato);

					layout.MergeFromXml(seleção[i].Configuração, false);
				}

				// Calcula número de páginas
				aguarde.Passo("Calculando número de páginas");

				etiquetas = cálculo(seleção);
				etiquetasPágina = layout.LabelsPerPage;

				lblTotal.Text = etiquetas.ToString();
				lblPáginas.Text = Math.Ceiling(etiquetas / (float) etiquetasPágina).ToString();
				lblEtiquetas.Text = etiquetasPágina.ToString();
			}
		}
        private void bandejaAgrupada_ColarSolicitado(object sender, EventArgs e)
        {
            List<ISaquinho> lista = ÁreaDeTransferência.Instância.Lista;

            if (lista.Count == 0) return;

            if (ConferirTravamento())
                return;

            Aguarde aguarde = new Aguarde("Colando..", lista.Count);
            aguarde.Abrir();
            foreach (ISaquinho s in lista)
            {
                s.Mercadoria.Peso = s.Peso;
                Adicionar(s.Mercadoria, s.Quantidade, ModoJanelaÍndice.MostrarSeNecessário, false);
                aguarde.Passo(s.Mercadoria.Referência);
            }
            aguarde.Close();
        }
		/// <summary>
		/// Verifica compatibilidade da seleção atual
		/// </summary>
		/// <returns>Compatibilidade dos formatos</returns>
		private bool VerificarCompatibilidade()
		{
			if (seleção.Length <= 1)
				return true;

			using (Aguarde aguarde = new Aguarde(
									   "Construindo formato para base de comparação",
									   seleção.Length,
									   "Verificando compatibilidade",
									   "O sistema está verificando a compatibilidade dos formatos de etiqueta a serem impressos."))
			{
				bool        compatibilidade = true;
				LabelLayout layout;

				// Construir janela de porcentagem
                aguarde.Abrir();

				aguarde.Passo("Carregando formato " + seleção[0].Formato);

				layout = new LabelLayout();
				layout.LoadFromXml(seleção[0].Configuração, true);

				for (int i = 1; i < seleção.Length && compatibilidade; i++)
				{
					LabelLayout aux;

					aguarde.Passo("Comparando formato " + seleção[i].Formato);

					aux = new LabelLayout();
					aux.LoadFromXml(seleção[i].Configuração, true);
				
					compatibilidade &= layout.IsCompatible(aux);
				}

				return compatibilidade;
			}
		}
 private Aguarde CriarJanelaAguarde(string ação)
 {
     Aguarde janelaAguarde = new Aguarde(ação, 100);
     janelaAguarde.TopMost = false;
     janelaAguarde.Show(this);
     return janelaAguarde;
 }
 private void FiltrarPedras(Aguarde aguarde, ControlePesquisaMercadoria controle)
 {
     aguarde.Passo();
     if (chkPedras.CheckedItems.Count > 0)
         controle.FiltrarPedras((Pedra[])(new ArrayList(chkPedras.CheckedItems).ToArray(typeof(Pedra))));
 }
 private void FiltrarValorMáximo(Aguarde aguarde, ControlePesquisaMercadoria controle)
 {
     aguarde.Passo();
     if (txtValorMáximo.Double > 0 && txtCotação.Cotação != null)
         controle.FiltrarÍndice(txtValorMáximo.Double / txtCotação.Cotação.Valor);
 }
 private void FiltrarTipos(Aguarde aguarde, ControlePesquisaMercadoria controle)
 {
     aguarde.Passo();
     if (chkTipo.CheckedItems.Count > 0)
         controle.FiltrarTipos((MercadoriaTipo[])(new ArrayList(chkTipo.CheckedItems).ToArray(typeof(MercadoriaTipo))));
 }