Esempio n. 1
0
        public static void ImpEtiquetaLayout(List <TRegistro_Objeto> obj,
                                             string Porta, CamadaDados.Diversos.TRegistro_CadTerminal rTerminal, bool sobra = false)
        {
            if (!System.IO.Directory.Exists("c:\\aliance.net"))
            {
                System.IO.Directory.CreateDirectory("c:\\aliance.net");
            }
            //carrega layouts
            TList_CadLayoutEtiqueta lLyaout = new TList_CadLayoutEtiqueta();

            if (rTerminal.Id_layout != decimal.Zero)
            {
                lLyaout = TCN_CadLayoutEtiqueta.Busca(rTerminal.Id_layout.ToString(), string.Empty, null);
            }
            if (lLyaout.Count <= 0)
            {
                return;
            }
            lLyaout.ForEach(p => { p.lCampos = TCN_CamposLayout.Busca(string.Empty, p.Id_layoutstr, string.Empty, null); });

            decimal total_etiqueta = obj.Sum(p => p.Qtd_etiqueta);

            //desagrupar quantidades e definir posicoes
            List <TRegistro_Objeto> prod_un = new List <TRegistro_Objeto>();
            int pos = 0;

            obj.ForEach(p =>
            {
                for (int i = 1; i <= p.Qtd_etiqueta; i++)
                {
                    pos++;
                    prod_un.Add(new TRegistro_Objeto()
                    {
                        Codigo    = p.Codigo,
                        Cod_barra = p.Cod_barra,
                        Produto   = p.Produto,
                        Vl_preco  = p.Vl_preco,
                        posicao   = pos
                    });             //1 1 2
                    if (pos == 3)   //2 2 3
                    {
                        pos = 0;    //3 3 3
                    }
                }
            });
            decimal total_imprimido = decimal.Zero;
            //lista de impressao
            StringBuilder w = new StringBuilder();

            lLyaout.ForEach(p =>
            {
                TList_CamposEtiqueta lcamp = new TList_CamposEtiqueta();

                p.lCampos.ForEach(o =>
                {
                    lcamp.Add(o);
                });
                pos = 0;
                prod_un.ForEach(pro =>
                {
                    pos++;
                    if (string.IsNullOrEmpty(w.ToString()))
                    {
                        w.AppendLine("I8,A,001");
                        w.AppendLine();
                        w.AppendLine();
                        w.AppendLine("Q" + p.alturaetiqueta.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0"
                                     + p.larguraetiqueta.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)));
                        w.AppendLine("rN");
                        w.AppendLine("S4");
                        w.AppendLine("D7");
                        w.AppendLine("ZT");
                        w.AppendLine("JF");
                        w.AppendLine("OD");
                        w.AppendLine("f100");
                        w.AppendLine("N");
                    }

                    string prod1 = string.Empty;
                    string prod2 = string.Empty;
                    string prod3 = pro.Produto;
                    if (pro.Produto.Trim().Length > 20)
                    {
                        prod1       = pro.Produto.Trim().Substring(0, 20);
                        pro.Produto = pro.Produto.Remove(0, 20);
                        if (pro.Produto.Trim().Length > 20)
                        {
                            prod2       = pro.Produto.Trim().Substring(0, 20);
                            pro.Produto = pro.Produto.Remove(0, 20);
                        }
                        else
                        {
                            prod2 = pro.Produto;
                        }
                    }
                    else
                    {
                        prod1 = pro.Produto;
                    }
                    pro.Produto = prod3;

                    lcamp.ForEach(o =>
                    {
                        string tp = string.Empty;
                        if (o.Status.Equals("CAMPO"))
                        {
                            tp = "A";
                        }
                        else
                        {
                            tp = "B";
                        }
                        if (o.ds_campo.Equals("DESCRICAO") && o.coluna.Equals(pro.posicao))
                        {
                            w.AppendLine(tp + o.posx.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ","
                                         + o.posy.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0,2,1,1,N,\"" + prod1.Trim() + "\"");
                        }
                        if (o.ds_campo.Equals("DESCRICAO2") && o.coluna.Equals(pro.posicao))
                        {
                            w.AppendLine(tp + o.posx.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ","
                                         + o.posy.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0,2,1,1,N,\"" + prod2.Trim() + "\"");
                        }
                        else if (o.ds_campo.Equals("VALOR") && o.coluna.Equals(pro.posicao))
                        {
                            w.AppendLine(tp + o.posx.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + "," + o.posy.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0,2,1,1,N,\""  //A24,56
                                         + " Cd:" + pro.Codigo.ToString() + "\"");
                            //+ pro.Vl_preco.ToString("C2", new System.Globalization.CultureInfo("pt-BR", true)) + " Cd:" + pro.Codigo.ToString() + "\"");
                        }
                        else if (o.ds_campo.Equals("COD_BAR") && o.coluna.Equals(pro.posicao))
                        {
                            w.AppendLine(tp + o.posx.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ","
                                         + o.posy.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0,E30,2,4,56,B,\"" + pro.Cod_barra.Trim() + "\"");//B40,88
                        }
                    });
                    if (pos == 3 || (decimal.Subtract(total_etiqueta, decimal.Add(total_imprimido, pos)) == decimal.Zero))
                    {
                        System.IO.FileInfo f      = new System.IO.FileInfo("c:\\aliance.net\\etiqueta.txt");
                        System.IO.StreamWriter we = f.CreateText();
                        try
                        {
                            w.AppendLine("P1");
                            we.WriteLine(w.ToString());
                        }
                        finally
                        {
                            we.Flush();
                            we.Dispose();
                            f.CopyTo(Porta.Trim());
                            pos = 0;
                            w.Clear();
                            total_imprimido += 3;
                        }
                    }
                });
            });
        }
Esempio n. 2
0
        public static void ImpEtiquetaLayout(decimal Codigo,
                                             string Produto,
                                             string Cod_barra,
                                             decimal Vl_preco,
                                             int Qtd_etiqueta,
                                             string Porta, CamadaDados.Diversos.TRegistro_CadTerminal rTerminal, bool sobra = false)
        {
            if (!System.IO.Directory.Exists("c:\\aliance.net"))
            {
                System.IO.Directory.CreateDirectory("c:\\aliance.net");
            }
            System.IO.FileInfo     f = new System.IO.FileInfo("c:\\aliance.net\\etiqueta.txt");
            System.IO.StreamWriter w = f.CreateText();

            decimal falta = decimal.Zero;

            try
            {
                TList_CadLayoutEtiqueta lLyaout = new TList_CadLayoutEtiqueta();
                if (rTerminal.Id_layout != decimal.Zero)
                {
                    lLyaout = TCN_CadLayoutEtiqueta.Busca(rTerminal.Id_layout.ToString(), string.Empty, null);
                }
                lLyaout.ForEach(p => { p.lCampos = TCN_CamposLayout.Busca(string.Empty, p.Id_layoutstr, string.Empty, null); });

                decimal qtidade = decimal.Zero;
                decimal qtd     = decimal.Zero;
                if (!string.IsNullOrEmpty(Qtd_etiqueta.ToString()))
                {
                    qtidade = Convert.ToDecimal(Qtd_etiqueta.ToString());
                }
                lLyaout.ForEach(p =>
                {
                    qtd = decimal.Divide(qtidade, p.nr_Coluna);

                    String[] str = qtd.ToString().Split(',');
                    if (str.Length > 1)
                    {
                        if (Convert.ToDecimal(str[0]) > 1)
                        {
                            qtd = Convert.ToDecimal(str[0]);
                        }
                        else
                        {
                            qtd = 1;
                        }

                        //{

                        //}
                    }

                    falta = Qtd_etiqueta - qtd * p.nr_Coluna;

                    w.WriteLine("I8,A,001");
                    w.WriteLine();
                    w.WriteLine();
                    w.WriteLine("Q" + p.alturaetiqueta.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0"
                                + p.larguraetiqueta.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true))); // altura espaco 176,024
                    w.WriteLine("rN");
                    w.WriteLine("S4");
                    w.WriteLine("D7");
                    w.WriteLine("ZT");
                    w.WriteLine("JF");
                    w.WriteLine("OD");
                    w.WriteLine("f100");
                    w.WriteLine("N");

                    TList_CamposEtiqueta lcamp = new TList_CamposEtiqueta();
                    //if (sobra)
                    //{
                    p.lCampos.ForEach(o =>
                    {
                        if (o.coluna <= Qtd_etiqueta)
                        {
                            lcamp.Add(o);
                        }
                    });
                    //}
                    //else
                    //{
                    //    p.lCampos.ForEach(o =>
                    //    {
                    //        lcamp.Add(o);
                    //    });
                    //}
                    int cont = 0;

                    string prod1 = string.Empty;
                    string prod2 = string.Empty;
                    string prod3 = Produto;
                    if (Produto.Trim().Length > 20)
                    {
                        prod1   = Produto.Trim().Substring(0, 20);
                        Produto = Produto.Remove(0, 20);
                        if (Produto.Trim().Length > 20)
                        {
                            prod2   = Produto.Trim().Substring(0, 20);
                            Produto = Produto.Remove(0, 20);
                            //if (Produto.Trim().Length > 20)
                            //{
                            //    prod3 = Produto.Trim().Substring(0, 20);
                            //    Produto = Produto.Remove(0, 20);
                            //}
                            //else prod3 = Produto;
                        }
                        else
                        {
                            prod2 = Produto;        // f
                        }
                    }

                    else
                    {
                        prod1 = Produto;
                    }
                    Produto = prod3;
                    lcamp.ForEach(o =>
                    {
                        string tp = string.Empty;
                        if (o.Status.Equals("CAMPO"))
                        {
                            tp = "A";
                        }
                        else
                        {
                            tp = "B";
                        }
                        cont = 0;
                        //string prod1 = string.Empty;
                        //string prod2 = string.Empty;
                        //string prod3 = string.Empty;
                        //if (Produto.Trim().Length > 20)
                        //{
                        //    prod1 = Produto.Trim().Substring(0, 20);
                        //    Produto = Produto.Remove(0, 20);
                        //    if (Produto.Trim().Length > 20)
                        //    {
                        //        cont = 1;
                        //        prod2 = Produto.Trim().Substring(0, 20);
                        //        Produto = Produto.Remove(0, 20);
                        //        if (Produto.Trim().Length > 20)
                        //        {
                        //            prod3 = Produto.Trim().Substring(0, 20);
                        //            Produto = Produto.Remove(0, 20);
                        //        }
                        //        else prod3 = Produto;
                        //    }
                        //    else prod2 = Produto;       // f
                        //}
                        //else prod1 = Produto;
                        cont++;
                        if (o.ds_campo.Equals("DESCRICAO"))
                        {
                            w.WriteLine(tp + o.posx.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ","
                                        + o.posy.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0," + o.Tp_Fonte + ",1,1,N,\"" + prod1.Trim() + "\""); //A24,8
                                                                                                                                                                                //w.WriteLine("A304,8,0,2,1,1,N,\"" + prod1.Trim() + "\"");
                                                                                                                                                                                //w.WriteLine("A584,8,0,2,1,1,N,\"" + prod1.Trim() + "\"");
                        }
                        if (o.ds_campo.Equals("DESCRICAO2"))
                        {
                            w.WriteLine(tp + o.posx.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ","
                                        + o.posy.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0," + o.Tp_Fonte + ",1,1,N,\"" + prod2.Trim() + "\""); //A24,32
                            cont = 0;                                                                                                                                           //w.WriteLine("A304,32,0,2,1,1,N,\"" + prod2.Trim() + "\"");
                                                                                                                                                                                //w.WriteLine("A584,32,0,2,1,1,N,\"" + prod2.Trim() + "\"");
                        }
                        else if (o.ds_campo.Equals("VALOR"))
                        {
                            w.WriteLine(tp + o.posx.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + "," + o.posy.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0," + o.Tp_Fonte + ",1,1,N,\""  //A24,56
                                        + Vl_preco.ToString("C2", new System.Globalization.CultureInfo("pt-BR", true)) + " Cd:" + Codigo.ToString() + "\"");
                        }
                        else if (o.ds_campo.Equals("COD_BAR"))
                        {
                            w.WriteLine(tp + o.posx.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ","
                                        + o.posy.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true)) + ",0,E30,2," + o.Tp_Fonte + ",56,B,\"" + Cod_barra.Trim() + "\"");//B40,88
                        }
                    });
                });

                w.WriteLine("P" + qtd);
                w.Flush();
                f.CopyTo(Porta.Trim());
            }
            finally
            {
                w.Dispose();
                f = null;
            }
            try
            {
                if (falta > decimal.Zero)
                {
                    ImpEtiquetaLayout(Codigo,
                                      Produto,
                                      Cod_barra,
                                      Vl_preco,
                                      Convert.ToInt32(falta.ToString("N0", new System.Globalization.CultureInfo("en-US"))),
                                      Porta, rTerminal, true);
                }
            }
            finally
            {
            }
        }