예제 #1
0
        private byte[] GetQrCodeArray(ReporteDocumentoFactura obj, string ruc)
        {
            var docs       = obj.Documento.Split('-');
            var listParams = new List <string>
            {
                ruc,                              // RUC Emisor
                obj.TipoDocumento.ToString("00"), // Tipo Comp
                docs[0],
                docs[1],
                obj.Igv.ToString("0.00"),
                obj.Total.ToString("0.00"),
                obj.FechaRegistro.ToShortDateString(),
                obj.TipoDocCliente.ToString("00"),
                obj.NroDocCliente
            };
            var qrGen  = new CodeQrBarcodeDraw();
            var metric = (BarcodeMetricsQr)qrGen.GetDefaultMetrics(30);

            metric.ErrorCorrection = QrErrorCorrection.Q;
            var qr = new CodeQrBarcodeDraw().Draw(string.Join("|", listParams) + "|", metric);

            using (var mem = new MemoryStream())
            {
                qr.Save(mem, System.Drawing.Imaging.ImageFormat.Png);
                return(mem.ToArray());
            }
        }
예제 #2
0
        //_______________QR CODE_________________________________________//
        private void metroBtbQrCode_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(this.metroTxtQrCode.Text.Trim()))
            {
                this.pictureBoxQR.Visible      = false;
                this.metroTxtQrCode.ShowButton = false;
                MetroMessageBox.Show(this, "Text value can not be null.Please fill the field.",
                                     "Value is Empty", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
            }

            else
            {
                this.metroCbxQR.Visible = true;
                pictureBoxQR.SizeMode   = PictureBoxSizeMode.CenterImage;
                qrWidth  = this.pictureBoxQR.Width;
                qrHeight = this.pictureBoxQR.Height;

                this.pictureBoxQR.Visible      = true;
                this.metroTxtQrCode.ShowButton = true;
                metroBtnSaveQRCode.Visible     = true;
                CodeQrBarcodeDraw qrDraw = BarcodeDrawFactory.CodeQr;
                qrDraw.GetDefaultMetrics(this.pictureBoxQR.Height + 25);
                pictureBoxQR.Image = qrDraw.Draw(this.metroTxtQrCode.Text.Trim(), this.pictureBoxQR.Height);
            }
        }
예제 #3
0
        public ActionResult Sliting(CoilSlits slits)
        {
            ViewBag.Title       = "Coil Slit";
            Session["CurrForm"] = "CoilSlit";

            slits.errMsg = "";

            if (slits.inputHidden != null)
            {
                //char[] delimiters = { ' ', '+' };
                //string[] inputArray = slits.input.Split(delimiters); // split the input string by using the delimiter '+'
                if (slits.inputHidden.Length < 9)
                {
                    slits.errMsg = "Wrong Coil ID.";
                    return(View(slits));
                }

                string coilID = slits.inputHidden.Substring(0, 9);

                int cover_width = 0;
                int base_width  = 0;
                if (slits.slitWidth == 118)
                {
                    cover_width = 51;
                    base_width  = 67;
                }
                if (slits.slitWidth == 150)
                {
                    cover_width = 67;
                    base_width  = 83;
                }
                if (slits.slitWidth == 200)
                {
                    cover_width = 92;
                    base_width  = 108;
                }

                CodeQrBarcodeDraw  QRcode     = BarcodeDrawFactory.CodeQr;              // to generate QR code
                Code128BarcodeDraw barcode128 = BarcodeDrawFactory.Code128WithChecksum; // to generate barcode
                Image  img_QRcode             = null;
                Image  img_Barcode            = null;
                byte[] imgBytes;
                string imgString;

                var sql = "select * from GRAM_SYD_LIVE.dbo.X_COIL_MASTER where COILID = '" + coilID + "'";

                try
                {
                    using (var context = new DbContext(Global.ConnStr))
                    {
                        slits.CoilDetails = context.Database.SqlQuery <CoilMaster>(sql).ToList <CoilMaster>();
                    }
                }
                catch (Exception e)
                {
                    slits.errMsg = "SQL Exception: " + e + ";";
                }

                if (slits.CoilDetails.Count == 0)
                {
                    slits.errMsg = "No information found in the database.";
                    return(View(slits));
                }

                string M_color        = "";
                string S_color        = "";
                int    uniqueLocation = 0;
                if (slits.CoilDetails[0].COLOR.Length == 4)
                {
                    M_color = slits.CoilDetails[0].COLOR.Substring(0, 2);
                    S_color = slits.CoilDetails[0].COLOR.Substring(2, 2);
                }

                switch (slits.CoilDetails[0].TYPE)
                {
                case "RA":
                    slits.slitNumber = 4;
                    slits.slitWidth  = 170;
                    cover_width      = slits.slitWidth;
                    base_width       = slits.slitWidth;
                    break;

                case "SM":
                    break;

                case "PO":
                    slits.slitNumber = 8;
                    slits.slitWidth  = 135;
                    cover_width      = slits.slitWidth;
                    base_width       = slits.slitWidth;
                    break;

                case "PL":
                    slits.slitNumber = 4;
                    slits.slitWidth  = 255;
                    cover_width      = slits.slitWidth;
                    base_width       = slits.slitWidth;
                    break;

                case "IS":
                    slits.slitNumber = 8;
                    slits.slitWidth  = 116;
                    cover_width      = slits.slitWidth;
                    base_width       = slits.slitWidth;
                    break;

                default:
                    slits.errMsg = "Type not exist.";
                    break;
                }

                if (slits.slitNumber > 0 && slits.CoilDetails != null)
                {
                    string[] slitIDs    = new string[slits.slitNumber];
                    string[] slitLabels = new string[slits.slitNumber];
                    slits.QRcodes  = new string[8];
                    slits.Barcodes = new string[8];
                    for (int i = 1; i < slitIDs.Length + 1; i++)
                    {
                        slitIDs[i - 1] = slits.CoilDetails[0].COILID + "_" + i;
                        slits.slits.Add(new CoilSlit());
                        slits.slits[i - 1].COIL_SLIT_ID   = slitIDs[i - 1];
                        slits.slits[i - 1].TYPE           = slits.CoilDetails[0].TYPE;
                        slits.slits[i - 1].COLOR          = slits.CoilDetails[0].COLOR;
                        slits.slits[i - 1].M_COLOR        = M_color;
                        slits.slits[i - 1].S_COLOR        = S_color;
                        slits.slits[i - 1].WEIGHT         = (int)(slits.CoilDetails[0].WEIGHT / slits.slitNumber);
                        slits.slits[i - 1].GAUGE          = slits.CoilDetails[0].GAUGE;
                        slits.slits[i - 1].LENGTH         = slits.CoilDetails[0].CLENGTH;
                        slits.slits[i - 1].UNIQUELOCATION = uniqueLocation;
                        if (i % 2 != 0)
                        {
                            slits.slits[i - 1].WIDTH = cover_width;
                        }
                        else
                        {
                            slits.slits[i - 1].WIDTH = base_width;
                        }
                        slits.slits[i - 1].STATUS = 0; // new -> 0, used -> 1

                        slitLabels[i - 1] = slits.CoilDetails[0].COILID + "_" + i + "+" + slits.CoilDetails[0].TYPE + "+" + slits.CoilDetails[0].COLOR + "+" + (int)(slits.CoilDetails[0].WEIGHT / slits.slitNumber) + "+" + slits.CoilDetails[0].GAUGE + "+" + slits.slits[i - 1].WIDTH;
                        BarcodeMetrics barcodeMetrics = QRcode.GetDefaultMetrics(150);
                        barcodeMetrics.Scale = 3; //qrcode size
                        img_QRcode           = QRcode.Draw(slitLabels[i - 1], barcodeMetrics);
                        imgBytes             = turnImageToByteArray(img_QRcode);
                        imgString            = Convert.ToBase64String(imgBytes);
                        slits.QRcodes[i - 1] = String.Format("<img src=\"data:image/png;base64,{0}\"/>", imgString);

                        img_Barcode           = barcode128.Draw(slitLabels[i - 1], 100);
                        imgBytes              = turnImageToByteArray(img_Barcode);
                        imgString             = Convert.ToBase64String(imgBytes);
                        slits.Barcodes[i - 1] = String.Format("<img src=\"data:image/png;base64,{0}\"/>", imgString);
                    }
                    slits.CoilSlitIDs    = slitIDs;
                    slits.CoilSlitLabels = slitLabels;

                    if (slits.printFlag == "print")
                    {
                        for (int i = 0; i < slits.CoilSlitIDs.Count; i++)
                        {
                            var coilID_sql         = new SqlParameter("@coilID", slits.CoilDetails[0].COILID);
                            var coilSlitID_sql     = new SqlParameter("@coilSlitID", slits.slits[i].COIL_SLIT_ID);
                            var type_sql           = new SqlParameter("@type", slits.slits[i].TYPE);
                            var color_sql          = new SqlParameter("@color", slits.slits[i].COLOR);
                            var m_color_sql        = new SqlParameter("@m_color", slits.slits[i].M_COLOR);
                            var s_color_sql        = new SqlParameter("@s_color", slits.slits[i].S_COLOR);
                            var weight_sql         = new SqlParameter("@weight", slits.slits[i].WEIGHT);
                            var gauge_sql          = new SqlParameter("@gauge", slits.slits[i].GAUGE);
                            var width_sql          = new SqlParameter("@width", slits.slits[i].WIDTH);
                            var status_sql         = new SqlParameter("@status", slits.slits[i].STATUS);
                            var userID_sql         = new SqlParameter("@userID", ((Scanner.Models.User)Session["User"]).UserName);
                            var length_sql         = new SqlParameter("@length", DBNull.Value);
                            var uniqueLocation_sql = new SqlParameter("@uniqueLocation", slits.slits[i].UNIQUELOCATION);
                            if (slits.slits[i].LENGTH != null)
                            {
                                length_sql = new SqlParameter("@length", slits.slits[i].LENGTH);
                            }
                            else
                            {
                                length_sql = new SqlParameter("@length", DBNull.Value);
                            }

                            var sql_update = "exec GramOnline.dbo.proc_Y_AddCoilSlit " +
                                             "@coilID, " +
                                             "@coilSlitID, " +
                                             "@type, " +
                                             "@color, " +
                                             "@m_color, " +
                                             "@s_color, " +
                                             "@weight, " +
                                             "@gauge, " +
                                             "@width, " +
                                             "@status, " +
                                             "@userID, " +
                                             "@length, " +
                                             "@uniqueLocation ";

                            try
                            {
                                using (var context = new DbContext(Global.ConnStr))
                                {
                                    context.Database.ExecuteSqlCommand(sql_update,
                                                                       coilID_sql,
                                                                       coilSlitID_sql,
                                                                       type_sql,
                                                                       color_sql,
                                                                       m_color_sql,
                                                                       s_color_sql,
                                                                       weight_sql,
                                                                       gauge_sql,
                                                                       width_sql,
                                                                       status_sql,
                                                                       userID_sql,
                                                                       length_sql,
                                                                       uniqueLocation_sql);
                                }
                            }
                            catch (Exception e)
                            {
                                slits.errMsg = "SQL Exception: " + e.Message + ";";
                            }
                        }
                    }
                }
            }
            return(View(slits));
        }