private void cmdBuscar_Click(object sender, EventArgs e) 
 {
     this.cmdBorrarDatos_Click(this, new EventArgs());
     this.documentosWord = new Dictionary<int, Word.Document>();
     this.documentos_guardados = new Dictionary<Word.Document, bool>();
     this.RegistroGuardado = false;
     BackgroundWorker checarPDFs = new BackgroundWorker();
     BackgroundWorker bg_matarProcesos = new BackgroundWorker();
     bg_matarProcesos.DoWork += new DoWorkEventHandler(matarProcesosInicio);
     checarPDFs.DoWork += new DoWorkEventHandler(checarPDFs_DoWork);
     checarPDFs.RunWorkerAsync();
     bg_matarProcesos.RunWorkerAsync();
     lista_bgwReporteConcentrado = new List<BackgroundWorker>();
     diccionario_relaciones_usadas = new Dictionary<string, string>();
     lista_bgwInsertarEnPlantillas = new List<BackgroundWorker>();
     lista_bgwBaseDeDatos = new List<BackgroundWorker>();
     this.MsjColorEtqMostrado = false;
     vp = new VistasPrevias();
     this.Cursor = Cursors.WaitCursor;             //cambiamos el cursor a un cursor de espera
     if (gb_CamposAdicionales.Controls.Count > 0)  //si el groupbox de campos adicionales contiene controles, tenemos que borrarlos para el siguiente registro.
     {
         gb_CamposAdicionales.Controls.Clear();    //borramos controle
         gb_CamposAdicionales.Height = 100;        //reseteamos altura
         gb_CamposAdicionales.Width = 100;         //reseteamos anchura
     }
     etq = new Etiqueta_C("");   //nueva instracia de Etiqueta etq con la nueva clave de prodcto (buscar en ESPECIFICACIONES.xls)
     ObtenerEtiquetaDefault();
     lblTipoEtiqueta.Text = etq.TipoEtiqueta.ToString();
     lblVariacionEtiqueta.Text = etq.VariacionEtiqueta.ToString();
     columnasPorUsar = new List<string>();         //inicializamos una nueva lista de las columnas que usa esa etiqueta
     etq.Embarque = "";
     columnasPorUsar = etq.obtenerCampos(etq.TipoEtiqueta, etq.VariacionEtiqueta); //llenamos la lista con la función 'Etiqueta.obtenerCampos(int tipo, int var)'
     this.crearCamposAdicionales();            //se hace llamado al método que crea textboxes, labels, datetimepickers, etc., dependiendo de lo que necesite la etiqueta en cuestión
     etq.txtSSSAPO = "";
     etq.UnidadesCorte = "";
     gb_CamposAdicionales.Visible = true;      //mostramos el grupbox
     if (cmbEmbarqueFijo.Items.Count == 0)
         this.llenarCmbEmbarque();
     this.Cursor = Cursors.Default;                //regresamos el cursor al default
     SendKeys.Send("{TAB}");
 }
Exemple #2
0
        public bool pasarPrimerosDatos_rpt7(Etiqueta_C etq)
        {
            this.ExcelApp = new Excel.Application();
            this.ExcelApp.DisplayAlerts = false;
            this.Reporte = this.ExcelApp.Workbooks.Open(@rutas.RutaDeReportes + "\\CONCENTRADO_PESOS_7.xls");
            this.Hoja = (Excel.Worksheet)this.Reporte.Worksheets.get_Item(1);
            this.Hoja.Name = "Pesos";
            string clave = "";
            if (string.IsNullOrEmpty(etq.VarClaveProducto))
                clave = "";
            else if (etq.VarClaveProducto == "")
                clave = "";
            else
            {
                if (etq.VarClaveProducto[0] == '.' || etq.VarClaveProducto[0] == '-')
                    clave = etq.VarClaveProducto.Remove(0, 1);
                else
                    clave = etq.VarClaveProducto;
            }

            this.Hoja.Cells[10, 19] = clave;
            this.Hoja.Cells[6, 4] = etq.Cliente;
            this.Hoja.Cells[4, 25] = etq.FechaReporte.ToString("dd/MM/yyyy");
            this.Hoja.Cells[6, 24] = etq.PedidoPMM;
            this.Hoja.Cells[10, 5] = etq.PedidoCliente;
            if (etq.PropiedadesVarios)
                this.Hoja.Cells[8, 5] = "VARIOS";
            else
                this.Hoja.Cells[8, 5] = etq.Material + "    " + etq.Calibre + "    " + etq.Color + "    " + etq.Corte;
            this.Hoja.Cells[8, 24] = etq.CantidadCajas;
            this.Hoja.Cells[52, 19] = etq.UnidadPesos;
            this.Hoja.Cells[52, 22] = etq.UnidadPesos;
            this.Hoja.Cells[52, 27] = etq.UnidadPesos;
            if (etq.CantidadCajas <= 38)
                this.NumeroPaginas = 1;
            else if (etq.CantidadCajas > 39 && etq.CantidadCajas <= 86)
                this.NumeroPaginas = 2;
            else if (etq.CantidadCajas > 86 && etq.CantidadCajas <= 134)
                this.NumeroPaginas = 3;
            if (this.NumeroPaginas > 1)
                this.copiarEncabezadosYTotales_Rpt_7();

            return true;
        }
        private void LimpiarCampos()
        {
            CamposYaFueronRelacionados = false;
            btnEditarTotalCajas.Visible = false;
            if(dgv_PesosLotes.ColumnCount > 0)
                dgv_PesosLotes.Columns[0].ReadOnly = true;
            chkPedidoCompleto.Checked = true;
            gb_CamposAdicionales.Visible = false;
            lblFechaEntrega.Visible = false;
            dtpFechaEntrega.Visible = false;
            dtpFechaEntrega.Value = DateTime.Now;
            chkMuestra.Visible = false;
            chkMuestra.Checked = false;
            gb_PesoLote.Visible = false;
            if (ControlesBloqueados != null)
                ControlesBloqueados.Clear();
            gb_CamposAdicionales.Controls.Clear();

            lblVariacionEtiqueta.Text = ""; lblTipoEtiqueta.Text = "";
            foreach (Control txt in gb_DatosGenerales.Controls.OfType<TextBox>())
                txt.Text = "";
            foreach (Control txt in this.Controls.OfType<TextBox>())
                txt.Text = "";
            foreach (Control pnl in gb_DatosGenerales.Controls.OfType<Panel>())
                foreach (Control lbl in pnl.Controls.OfType<Label>())
                    lbl.Text = "";
            foreach (Control btn in this.Controls.OfType<Button>())
                if (btn.Name == "cmdSiguiente")
                    btn.Dispose();
                else if (btn.Name == "cmdRestart")
                    btn.Dispose();
            foreach (Control pb in this.Controls.OfType<PictureBox>())
            {
                if (!pb.Name.Equals("imgLOGO"))
                    pb.Dispose();
            }
            cmdTerminar.Enabled = false;
            cmdConcentradoPesos.Enabled = false;
            cmdTerminar.Visible = false;
            cmdConcentradoPesos.Visible = false;
            lbl_Unidades.Visible = false;
            panelPesoNeto.Visible = false;
            lblInfoPesosNetos.Visible = false;
            lblSumaPesosNetos.Text = "";
            dgv_PesosLotes.RowCount = 1;
            dgv_PesosLotes.ColumnCount = 1;
            dgv_PesosLotes.Visible = false;
            dgv_PesosLotes.Enabled = true;
            this.ReporteCreado = false;
            this.RegistroGuardado = false;
            cmdContinuarConLotes.Visible = true;
            chkPESOSIGUALES.Visible = false;
            chkPESOSIGUALES.Checked = false;
            txt_CantidadEtiquetas.Clear();
            txtPedido.Clear();
            txtPrefijo.Clear();
            try
            {
                if (File.Exists(this.FinalOutputPath_Etq))
                    File.Delete(this.FinalOutputPath_Etq);
            }
            catch { }
            try
            {
                if (File.Exists(this.FinalOutputPath_Rpt))
                    File.Delete(this.FinalOutputPath_Rpt);
            }
            catch { }

            pnColor1.BackColor = SystemColors.Control;
            pnColor2.BackColor = SystemColors.Control;
            pnColor1.Controls.Clear();
            pnColor2.Controls.Clear();
            pnColor1.Visible = true;
            pnColor2.Visible = true;
            cmdCopiarPesos.Visible = false;
            this.ULTIMO_ID = 0;
            this.GuardadoEnBD = false;
            rpt = null;
            rpt_2 = null;
            rpt_3 = null;
            this.DialogNoPalletShown = false;
            if (etq != null)
            {
                if (etq.HayEtqsMultiples)
                {
                    cmdContinuarConLotes.Click -= cmdContinuarConLotes_EtqsMultiples_Click;
                    cmdContinuarConLotes.Click += new EventHandler(cmdContinuarConLotes_Click);
                    dgv_PesosLotes.CellEndEdit -= dgv_PesosLotes_CellEndEdit_EtqsMultiples;
                    dgv_PesosLotes.CellEndEdit += new DataGridViewCellEventHandler(dgv_PesosLotes_CellEndEdit);
                    dgv_PesosLotes.KeyDown -= dgv_PesosLotes_KeyDown_EtqsMultiples;
                    dgv_PesosLotes.KeyDown += new KeyEventHandler(dgv_PesosLotes_KeyDown);
                    ListaEtiquetasMultiples.Clear();
                }
                etq = null;
            }
            gb_DatosGenerales.Focus();
            txt_IntroClavProd.Select();
            txt_IntroClavProd.Focus();
        }
        private void cmdBuscar_Click(object sender, EventArgs e) 
        {
            string temp = txt_IntroClavProd.Text;
            this.cmdBorrarDatos_Click(this, new EventArgs());
            numeracionEspecial = false;
            txt_IntroClavProd.Text = temp;
            this.documentosWord = new Dictionary<int, Word.Document>();
            this.RegistroGuardado = false;
            BackgroundWorker checarPDFs = new BackgroundWorker();
            BackgroundWorker bg_matarProcesos = new BackgroundWorker();
            bg_matarProcesos.DoWork += new DoWorkEventHandler(matarProcesosInicio);
            checarPDFs.DoWork += new DoWorkEventHandler(checarPDFs_DoWork);
            checarPDFs.RunWorkerAsync();
            bg_matarProcesos.RunWorkerAsync();
            lista_bgwReporteConcentrado = new List<BackgroundWorker>();
            diccionario_relaciones_usadas = new Dictionary<string, string>();
            lista_bgwInsertarEnPlantillas = new List<BackgroundWorker>();
            lista_bgwBaseDeDatos = new List<BackgroundWorker>();
            this.MsjColorEtqMostrado = false;
            this.EsCarrete = false;
            if (txt_IntroClavProd.Text == "")
                return;
            else
                txt_IntroClavProd.Text = txt_IntroClavProd.Text.ToUpper();
            vp = new VistasPrevias();
            this.Cursor = Cursors.WaitCursor;             //cambiamos el cursor a un cursor de espera
            if (gb_CamposAdicionales.Controls.Count > 0)  //si el groupbox de campos adicionales contiene controles, tenemos que borrarlos para el siguiente registro.
            {
                gb_CamposAdicionales.Controls.Clear();    //borramos controle
                gb_CamposAdicionales.Height = 100;        //reseteamos altura
                gb_CamposAdicionales.Width = 100;         //reseteamos anchura
            }
            etq = new Etiqueta_C(txt_IntroClavProd.Text);   //nueva instracia de Etiqueta etq con la nueva clave de prodcto (buscar en ESPECIFICACIONES.xls)
            List<string> columnasPorUsar = new List<string>();         //inicializamos una nueva lista de las columnas que usa esa etiqueta
            etq.Embarque = "";
            
            if (!ObtenerDatosGenerales())                 //si se obtiene un valor falso, la clave no existe
            {
                this.LimpiarCampos();                     //limpiamos textboxes y groupboxes
                this.Cursor = Cursors.Default;            //regresamos el cursor al default
                return;                                   //exit
            }
            else                                          //si es verdadero el booleano que regresa 'ObtenerDatosGenerales()'
            {
                
                if (!etq.HayEtqsMultiples)
                    columnasPorUsar = etq.obtenerCampos(etq.TipoEtiqueta, etq.VariacionEtiqueta); //llenamos la lista con la función 'Etiqueta.obtenerCampos(int tipo, int var)'
                else
                {
                    List<string> tempCampos = new List<string>();
                    CampoBcd_TipoCod = new Dictionary<string, int>();
                    ListaEtiquetasMultiples = new List<Etiqueta_C.Estructura_etqMultiple>();
                    Etiqueta_C.Estructura_etqMultiple etqMult;
                    int c = 0;
                    foreach (string s in etq.TiposVariaciones.Split(','))
                    {
                        etqMult = new Etiqueta_C.Estructura_etqMultiple();
                        string[] tempTipoVar = s.Trim().Split('_');
                        int tempTipo = int.Parse(tempTipoVar[0]);
                        int tempVar = int.Parse(tempTipoVar[1]);
                        etqMult.tipoEtq = tempTipo;
                        etqMult.varEtq = tempVar;
                        etqMult.tipoCodBarra = 0;
                        etqMult.etqsPorHoja = 0;
                        etq.ObtenerTipoCodigoYEtqPorHoja(tempTipo, tempVar, ref etqMult.tipoCodBarra,ref etqMult.etqsPorHoja);
                        ListaEtiquetasMultiples.Add(etqMult);
                        tempCampos = etq.obtenerCampos(tempTipo, tempVar);
                        foreach (string bcd in tempCampos)
                        {
                            if (bcd.StartsWith("bcd"))
                            {
                                if (!CampoBcd_TipoCod.ContainsKey(bcd))
                                    CampoBcd_TipoCod.Add(bcd, etqMult.tipoCodBarra);
                            }
                        }
                        foreach (string st in tempCampos)
                            columnasPorUsar.Add(st);
                        c++;
                    }
                    cmdContinuarConLotes.Click -= cmdContinuarConLotes_Click;
                    cmdContinuarConLotes.Click += new EventHandler(cmdContinuarConLotes_EtqsMultiples_Click);
                }

                if (reg == null)
                    etq.ObtenerUltimaOrdenDeCompra();
                this.CrearCamposAdicionales(columnasPorUsar);//se hace llamado al método que crea textboxes, labels, datetimepickers, etc., dependiendo de lo que necesite la etiqueta en cuestión
                etq.txtSSSAPO = "";
                etq.UnidadesCorte = "";
                gb_CamposAdicionales.Visible = true;      //mostramos el grupbox
                lblFechaEntrega.Visible = true;
                dtpFechaEntrega.Visible = true;
                chkMuestra.Visible = true;
                if (etq.ColorEtiquetaCaja != "")
                {
                    if (etq.ColorEtiquetaCaja.Contains(',')) //son etiquetas multiples
                    {
                        string[] tempcolor = etq.ColorEtiquetaCaja.Split(',');
                        string color1 = tempcolor[0], color2 = tempcolor[1];
                        pnColor1.BackColor = DiccionarioColores[color1];
                        pnColor2.BackColor = DiccionarioColores[color2];
                    }
                    else if (etq.ColorEtiquetaCaja.Contains("_"))
                    {
                        pnColor1.Visible = false;
                        pnColor2.Visible = false;
                        string[] splits = etq.ColorEtiquetaCaja.ToUpper().Split('_');
                        string colorEtiqueta = splits[0];
                        string colorPunto = splits[1];
                        this.DibujarPuntoDeColor(colorPunto, colorEtiqueta);
                    }
                    else if (DiccionarioColores.ContainsKey(etq.ColorEtiquetaCaja.ToUpper()))
                    {
                        pnColor1.BackColor = DiccionarioColores[etq.ColorEtiquetaCaja];
                        pnColor2.BackColor = DiccionarioColores[etq.ColorEtiquetaCaja];
                    }
                }
            }
            if (cmbEmbarqueFijo.Items.Count == 0)
                this.llenarCmbEmbarque();
            ChecarNumeracionEspecial();
            this.Cursor = Cursors.Default;                //regresamos el cursor al default
            SendKeys.Send("{TAB}");
        }
        private void tb3_cmdAccion_Click(object sender, EventArgs e)
        {
            bool errores = false;

            tb3_cmdAccion.Enabled = false;
            tb3_txtTipo.Enabled = false;
            tb3_txtVar.Enabled = false;
            tb3_cmdBuscar.Enabled = false;

            tb3_gbFalta.Visible = false;
            tb3_listFaltantes.Items.Clear();
            tb3_dgv.RowCount = 0;
            tb3_dgv.ColumnCount = 0;
            if (tb3_lbl_existeEnBd.ForeColor != Color.Green || tb3_lbl_existeEnWord.ForeColor != Color.Green)
            {
                MessageBox.Show("Para verificar la compatibilidad, es necesario que exista tanto la plantilla de Word "
                + "como el registro en la base de datos.", "Elementos Insuficientes", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            this.Cursor = Cursors.WaitCursor;
            etq = new Etiqueta_C();
            int tipo = int.Parse(tb3_txtTipo.Text);
            int var = int.Parse(tb3_txtVar.Text);
            string path = @RutaDePlantillas + "\\Etq_" + tipo + "_" + var + ".docx";
            List<string> camposEnBD = etq.obtenerCampos(tipo, var);

            List<string> camposEnWord = new List<string>();
            Word.Application app = new Word.Application();
            Word.Document doc = app.Documents.Open(path);
            app.Visible = false;
            foreach (Word.Shape sh in doc.Shapes)
            {
                if (sh.Type.ToString() == "msoTextBox" || sh.Type.ToString() == "msoPicture")
                {
                    if (!sh.Name.Contains("C1") && !sh.Name.Contains("C2"))
                        camposEnWord.Add(sh.Name);
                }

            }
            doc.SaveAs2(@RutaDeTemp + "tempDoc.docx");
            doc.Saved = true;
            ((Microsoft.Office.Interop.Word._Document)doc).Close();
            ((Microsoft.Office.Interop.Word._Application)app).Quit();
            File.Delete(@RutaDeTemp + "tempDoc.docx");

            this.Cursor = Cursors.Default;
            camposEnBD.Sort();
            camposEnWord.Sort();

            this.crearDataGridViewTab3(camposEnWord, camposEnBD, tb3_dgv);
            this.crearDataGridViewTab3_2(camposEnWord, camposEnBD, tb3_dgv2);

            foreach (DataGridViewRow row in tb3_dgv.Rows)
            {
                if (row.Cells[0].Style.BackColor == Color.Red || row.Cells[1].Style.BackColor == Color.Red)
                    errores = true;
            }
            foreach (DataGridViewRow row in tb3_dgv2.Rows)
            {
                if (row.Cells[0].Style.BackColor == Color.Red || row.Cells[1].Style.BackColor == Color.Red)
                    errores = true;
            }
            if (!errores)
            {
                tb3_lblResultado.Text = "Existe compatibilidad entre la plantilla y la base de datos.";
                tb3_lblResultado.ForeColor = Color.Green;
            }
            else
            {
                tb3_lblResultado.Text = "Existen campos incorrectos. Favor de tomar las acciones correspondientes.";
                tb3_lblResultado.ForeColor = Color.Red;
            }
            tb3_lblResultado.Visible = true;
        }
        private void tb2_cmdBuscarPlantilla_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(tb2_txtVar.Text) || string.IsNullOrEmpty(tb2_txtTipo.Text))
            {
                MessageBox.Show("Favor de introducir tipo de etiqueta y variación de la misma.", "Campo Vacío", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            this.Cursor = Cursors.WaitCursor;
            int tipo = int.Parse(tb2_txtTipo.Text);
            int var = int.Parse(tb2_txtVar.Text);
            etq = new Etiqueta_C();
            List<string> todosLosCampos;
            if (etq.obtenerTodosLosCamposDeBD())
                todosLosCampos = etq.TodosLosCampos;
            else
                return;
            string tipocod = "", etqxhoja = "", loteProd = "", loteDesp = "";
            int idioma = 0;
            List<string> camposUsados = etq.obtenerCampos(tipo, var);
            etq.Obtener_Idioma_Codigo_EtqPorHoja(tipo, var, ref tipocod, ref idioma, ref etqxhoja);
            if (camposUsados.Count == 0)
            {
                this.Cursor = Cursors.Default;
                if (MessageBox.Show("El registro de etiqueta tipo " + tipo + " y variación " + var
                    + " no existe en la base de datos. \n¿Desea crearlo en este momento?"
                    , "Nuevo Registro", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    //pasar a crear etiqueta
                }
                else
                {
                    return;
                }
            }
            else
            {
                this.creaDataGridView_tb2(todosLosCampos, camposUsados, tb2_dgv);
                this.AgregarItemsAComboBoxes(tipocod, etqxhoja, idioma.ToString());
                if (this.obtenerNombresLotes(tipo, var, ref loteProd, ref loteDesp))
                {
                    tb2_txtLoteDesp.Text = loteDesp;
                    tb2_txtLoteProd.Text = loteProd;
                }
            }

            this.Cursor = Cursors.Default;
        }
        private void tb1_cmdBuscar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(tb1_txtVar.Text) || string.IsNullOrEmpty(tb1_txtTipo.Text))
            {
                MessageBox.Show("Favor de introducir tipo de etiqueta y variación de la misma.", "Campo Vacío", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            this.Cursor = Cursors.WaitCursor;
            int tipo = int.Parse(tb1_txtTipo.Text);
            int var = int.Parse(tb1_txtVar.Text);
            etq = new Etiqueta_C();
            if (etq.checarSiExisteRegistro(tipo, var))
            {
                if (MessageBox.Show("El registro de etiqueta tipo " + tipo + " y variación " + var + " ya existe. \n¿Desea editarlo en este momento?"
                    , "Registro Duplicado", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
                {
                    this.tb1_reset();
                    tabControl1.SelectedTab = tb2_EditarEtiqueta;
                    tb2_txtTipo.Text = tipo.ToString();
                    tb2_txtVar.Text = var.ToString();
                    this.Cursor = Cursors.Default;
                    return;
                }
                else
                {
                    this.Cursor = Cursors.Default;
                    this.tb1_reset();
                    return;
                }
            }
            List<string> todosLosCampos;
            if (etq.obtenerTodosLosCamposDeBD())
                todosLosCampos = etq.TodosLosCampos;
            else
                return;

            this.creaDataGridView_tb1(todosLosCampos, tb1_dgv);
            tb1_pn_adicionales.Enabled = true;
            tb1_cmdNuevoCampo.Enabled = true;
            this.Cursor = Cursors.Default;
        }