private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'shortcutsPOSDataSet.historys' Puede moverla o quitarla según sea necesario.
            this.historysTableAdapter.Fill(this.shortcutsPOSDataSet.historys);
            // TODO: esta línea de código carga datos en la tabla 'shortcutsPOSDataSet.scvShortcutsPMS' Puede moverla o quitarla según sea necesario.
            this.scvShortcutsPMSTableAdapter.Fill(this.shortcutsPOSDataSet.scvShortcutsPMS);
            IntegracionesSPA.IntegracionSPA spa = new IntegracionesSPA.IntegracionSPA();


            spa.inicializar("OfiHotel", "Ofihotel137", "sa", "salon.spa", spa.proveedores.ProviderSQL());
            DateTime data = DateTime.Now;

            string fechaString = string.Format("{0:dd/MM/yyyy}", data);

            data = DateTime.Parse(fechaString.ToString());

            scvShortcutsPMSDataGridView.DataSource = scvShortcutsPMSTableAdapter.GetDataOrderDesc(data);

            string[] ultimaVenta = new string[8];

            ultimaVenta = obtenirUltimaVenta();

            UltimaSaleID = ultimaVenta[0];

            timer1.Start();
            timer1.Interval = 5000; // 1 min 60000
        }
        private void enviarVenta()
        {
            string[] taulaReserva;
            string[] imports;

            if (this.scvShortcutsPMSDataGridView.RowCount > 0)
            {
                IntegracionesSPA.IntegracionSPA spa = new IntegracionesSPA.IntegracionSPA();
                IntegracionesSPA.result         res = new IntegracionesSPA.result();
                res = spa.inicializar(obtenirConcepto("Inst"), obtenirConcepto("Bdd"), "sa", obtenirConcepto("Pass"), spa.proveedores.ProviderSQL());
                //  MessageBox.Show(res.estadoFuncion.ToString());
                int indexSelect = this.scvShortcutsPMSDataGridView.CurrentRow.Index;

                int saleId = int.Parse(this.scvShortcutsPMSDataGridView.Rows[indexSelect].Cells[0].Value.ToString());

                string Hab   = this.scvShortcutsPMSDataGridView.Rows[indexSelect].Cells[1].Value.ToString();
                string Base  = this.scvShortcutsPMSDataGridView.Rows[indexSelect].Cells[4].Value.ToString();
                string Hora  = this.scvShortcutsPMSDataGridView.Rows[indexSelect].Cells[3].Value.ToString();
                string Total = this.scvShortcutsPMSDataGridView.Rows[indexSelect].Cells[6].Value.ToString();

                if (Hab != "")
                {
                    res = spa.EstaHabOcupada(Hab); //obtenirReserva(Hab);

                    if (res.estadoFuncion)
                    {
                        string fechaString = string.Format("{0:dd/MM/yyyy}", dateTimePicker1.Value);

                        DialogResult resultat = MessageBox.Show("Esta Seguro que quiere registrar esta venta", "Aviso", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

                        if (resultat == DialogResult.OK)
                        {
                            imports = obtenirImports(saleId);
                            // MessageBox.Show(imports[1].ToString());
                            if (imports[0] != null)
                            {
                                string tipos = "PRODUCTOS SPA";

                                res = spa.AgregarCargoHAB(Hab, obtenirConcepto("CodProd"), obtenirConcepto("Prod"), double.Parse(imports[0].ToString()), false);
                                if (!res.estadoFuncion)
                                {
                                    for (int i = 1; i <= spa.erroresAdo.Count; i++)
                                    {
                                        MessageBox.Show(spa.erroresAdo.Item[i].descripcion);
                                    }
                                }

                                //MessageBox.Show(res.estadoFuncion.ToString());
                                //MessageBox.Show(obtenirConcepto("CodProd"));
                                //MessageBox.Show(double.Parse(imports[0].ToString(), CultureInfo.GetCultureInfo("es-ES").NumberFormat).ToString());
                            }
                            if (imports[1] != null)
                            {
                                string tipos = "PRODUCTOS SPA";
                                res = spa.AgregarCargoHAB(Hab, obtenirConcepto("CodServ"), obtenirConcepto("Serv"), double.Parse(imports[1].ToString()), false);
                                if (!res.estadoFuncion)
                                {
                                    for (int i = 1; i <= spa.erroresAdo.Count; i++)
                                    {
                                        MessageBox.Show(spa.erroresAdo.Item[i].descripcion);
                                    }
                                }
                                //MessageBox.Show(res.estadoFuncion.ToString());
                                //MessageBox.Show(obtenirConcepto("CodServ"));
                                //MessageBox.Show(double.Parse(imports[1].ToString(), CultureInfo.GetCultureInfo("es-ES").NumberFormat).ToString());
                                //escriureVentas(Hab, fechaString, imports[1], taulaReserva[1], Hora, saleId.ToString(), Total, tipos);
                            }
                            if (imports[2] != null)
                            {
                                res = spa.AgregarCargoHAB(Hab, obtenirConcepto("CodTrat"), obtenirConcepto("Trat"), double.Parse(imports[2].ToString()), false);
                                if (!res.estadoFuncion)
                                {
                                    for (int i = 1; i <= spa.erroresAdo.Count; i++)
                                    {
                                        MessageBox.Show(spa.erroresAdo.Item[i].descripcion);
                                    }
                                }
                                //MessageBox.Show(res.estadoFuncion.ToString());
                                //MessageBox.Show(obtenirConcepto("CodServ"));
                                //MessageBox.Show(double.Parse(imports[1].ToString(), CultureInfo.GetCultureInfo("es-ES").NumberFormat).ToString());
                                //escriureVentas(Hab, fechaString, imports[1], taulaReserva[1], Hora, saleId.ToString(), Total, tipos);
                            }

                            if (res.estadoFuncion)
                            {
                                MessageBox.Show("Transacción registrada correctamente", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Esta habitación no esta ocupada en este momento.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
                else
                {
                    MessageBox.Show("Esta venta no esta asignada a ninguna Habitación!!", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
        }
        private void realitzarProces()
        {
            IntegracionesSPA.IntegracionSPA spa = new IntegracionesSPA.IntegracionSPA();
            IntegracionesSPA.result         res = new IntegracionesSPA.result();
            if (obtenirConcepto("Inst") != "NODATOS")
            {
                res = spa.inicializar(obtenirConcepto("Inst"), obtenirConcepto("Bdd"), "sa", obtenirConcepto("Pass"), spa.proveedores.ProviderSQL());
                if (!res.estadoFuncion)
                {
                    for (int i = 1; i <= spa.erroresAdo.Count; i++)
                    {
                        MessageBox.Show(spa.erroresAdo.Item[i].descripcion);
                    }
                }
                DateTime data        = DateTime.Now;
                string   fechaString = string.Format("{0:dd/MM/yyyy}", data);
                data = DateTime.Parse(fechaString.ToString());

                //Creo un nuevo formato de numero para poder cambiar la , por un . en el precio de las transacciones.
                NumberFormatInfo nfi = new CultureInfo("es-ES", false).NumberFormat;

                string[] ultimaVenta;
                string[] taulaReserva;
                string[] imports;
                string   Hab;
                int      saleIdActual, saleIdUltimaVenta;

                try
                {
                    ultimaVenta = obtenirUltimaVenta();

                    saleIdActual      = int.Parse(UltimaSaleID);
                    saleIdUltimaVenta = int.Parse(ultimaVenta[0].ToString());


                    if (saleIdActual < saleIdUltimaVenta) //saleIdActual es la ultima saleID procesada
                    //saleIdUltimaVenta es la id de la ultima venta realitzada
                    {
                        UltimaSaleID = ultimaVenta[0].ToString();
                        Hab          = ultimaVenta[3].ToString();

                        if (Hab != "")
                        {
                            res = spa.EstaHabOcupada(Hab);
                            //  taulaReserva = obtenirReserva(Hab);

                            if (res.estadoFuncion)
                            {
                                imports = obtenirImports(int.Parse(ultimaVenta[0]));
                                //res = spa.AgregarCargoHAB(Hab, obtenirConcepto("CodServ"), obtenirConcepto("Serv"), Convert.ToDouble(ultimaVenta[7]), true);

                                if (imports[0] != null)
                                {
                                    string tipos = "PRODUCTOS SPA";

                                    res = spa.AgregarCargoHAB(Hab, obtenirConcepto("CodProd"), obtenirConcepto("Prod"), double.Parse(imports[0].ToString()), false);
                                    if (!res.estadoFuncion)
                                    {
                                        for (int i = 1; i <= spa.erroresAdo.Count; i++)
                                        {
                                            MessageBox.Show(spa.erroresAdo.Item[i].descripcion);
                                        }
                                    }

                                    //MessageBox.Show(res.estadoFuncion.ToString());
                                    //MessageBox.Show(obtenirConcepto("CodProd"));
                                    //MessageBox.Show(double.Parse(imports[0].ToString(), CultureInfo.GetCultureInfo("es-ES").NumberFormat).ToString());
                                }
                                if (imports[1] != null)
                                {
                                    string tipos = "PRODUCTOS SPA";
                                    res = spa.AgregarCargoHAB(Hab, obtenirConcepto("CodServ"), obtenirConcepto("Serv"), double.Parse(imports[1].ToString()), false);
                                    if (!res.estadoFuncion)
                                    {
                                        for (int i = 1; i <= spa.erroresAdo.Count; i++)
                                        {
                                            MessageBox.Show(spa.erroresAdo.Item[i].descripcion);
                                        }
                                    }
                                    //MessageBox.Show(res.estadoFuncion.ToString());
                                    //MessageBox.Show(obtenirConcepto("CodServ"));
                                    //MessageBox.Show(double.Parse(imports[1].ToString(), CultureInfo.GetCultureInfo("es-ES").NumberFormat).ToString());
                                    //escriureVentas(Hab, fechaString, imports[1], taulaReserva[1], Hora, saleId.ToString(), Total, tipos);
                                }

                                if (imports[2] != null)
                                {
                                    res = spa.AgregarCargoHAB(Hab, obtenirConcepto("CodTrat"), obtenirConcepto("Trat"), double.Parse(imports[2].ToString()), false);
                                    if (!res.estadoFuncion)
                                    {
                                        for (int i = 1; i <= spa.erroresAdo.Count; i++)
                                        {
                                            MessageBox.Show(spa.erroresAdo.Item[i].descripcion);
                                        }
                                    }
                                    //MessageBox.Show(res.estadoFuncion.ToString());
                                    //MessageBox.Show(obtenirConcepto("CodServ"));
                                    //MessageBox.Show(double.Parse(imports[1].ToString(), CultureInfo.GetCultureInfo("es-ES").NumberFormat).ToString());
                                    //escriureVentas(Hab, fechaString, imports[1], taulaReserva[1], Hora, saleId.ToString(), Total, tipos);
                                }

                                if (!res.estadoFuncion)
                                {
                                    for (int i = 1; i <= spa.erroresAdo.Count; i++)
                                    {
                                        MessageBox.Show(spa.erroresAdo.Item[i].descripcion);
                                    }
                                }
                            }
                            else
                            {
                                string nota;
                                nota = ultimaVenta[1] + "-La habitación " + ultimaVenta[3] + " esta DESOCUPADA.";
                                escriureLog(nota);
                            }
                        }

                        scvShortcutsPMSDataGridView.DataSource = scvShortcutsPMSTableAdapter.GetDataOrderDesc(data);
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
        }