예제 #1
0
        /// <summary>
        /// busca el cliente 1 que es el consumidor final , el cliente por defecto
        /// </summary>
        private void buscarCliente()
        {
            N_Cliente ncliente = new N_Cliente();

            //si el txt id de cliente esta vacio pone por defecto el valor uno del consumidor final
            if (string.IsNullOrEmpty(txtIdCliente.Text))
            {
                txtIdCliente.Text = Convert.ToString(1);
            }
            E_Cliente cliente = ncliente.getOne(Convert.ToInt64(txtIdCliente.Text));

            // si el cliete es null es que no lo ah encontrado entonce se pone por defecto consumidor final
            if (cliente == null)
            {
                cliente = ncliente.getOne(1);
            }
            txtIdCliente.Text   = cliente.idCliente.ToString();
            txtDescripcion.Text = cliente.descripcion;
            txtDireccion.Text   = cliente.direccion;
            txtCuitDni.Text     = cliente.dni.ToString();
            if (cliente.boletinProtec)             // si tiene boletin protectivo le muestra una cartel
            {
                MessageBox.Show("El Cliente Se Encuentra en el boletin Protectivo", "Boletin Protectivo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
예제 #2
0
        private void btnEliminar_Click(object sender, EventArgs e)
        {
            DialogResult respuesta = MessageBox.Show("¿Está seguro que desea eliminar el registro?", "Eliminar", MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Exclamation);

            switch (respuesta)
            {
            case DialogResult.Yes:

                N_Cliente nCliente = new  N_Cliente();
                if (_idCliente != 0)
                {
                    string xRet;
                    xRet = nCliente.deleteCliente(_idCliente);
                    if (xRet != "0")
                    {
                        MessageBox.Show("¡El Cliente no se puede eliminar ya ha sido utilizado!", "Eliminar", MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
                    }
                    else
                    {
                        this.Close();
                    }
                }
                break;

            case DialogResult.No:
                this.Close();
                break;
            }
        }
예제 #3
0
        private void btn_eliminar_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgv_clientes.SelectedRows.Count > 0)
                {
                    txt_cedula.Tag = dgv_clientes.CurrentRow.Cells["Id_cliente"].Value.ToString();

                    if (MessageBox.Show("Quieres eliminar este cliente?", "Cliente", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        E_Cliente Elim = new E_Cliente();

                        N_Cliente nClientes = new N_Cliente();

                        Elim.Id_cliente = txt_cedula.Tag.ToString();

                        if (nClientes.Eliminar(Elim))
                        {
                            MessageBox.Show("Se elimino correctamente", "Clientes", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            Cargargrid();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("error" + ex);
            }
        }
예제 #4
0
        public override void Importar()
        {
            Leer_ArchivoExcel excel1   = new Negocio.Leer_ArchivoExcel();
            N_Cliente         cliente1 = new N_Cliente();

            try
            {
                OpenFileDialog openFileDialog1 = new OpenFileDialog();
                openFileDialog1.Filter = "Archivo Excel|*.xlsx";
                openFileDialog1.Title  = "Seleccione Archivo";

                if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    excel1.CargaPlanillaClientes(openFileDialog1.FileName);
                    dgvLista.DataSource = cliente1.Lista();

                    if (excel1.Detalle != "")
                    {
                        MessageBox.Show(excel1.Mensaje + "\n" + "_________________________________________________________________________" + "\n\n" + "Detalles: \n" + excel1.Detalle, "Carga de Datos");
                    }
                    else
                    {
                        MessageBox.Show(excel1.Mensaje, "Carga de Datos");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Excel " + ex.Message);
                return;
            }
        }
예제 #5
0
        private void btnFiltroCliente_Click(object sender, EventArgs e)
        {
            try
            {
                N_Cliente        cliente = new N_Cliente();
                List <E_Cliente> lista   = cliente.ListaBuscarCliente();
                if (cbid.Checked)
                {
                    lista = lista.Where(l => l.Id_cliente.StartsWith(txtid.Text)).ToList();
                }

                if (cbNombre.Checked)
                {
                    lista = lista.Where(l => l.Nombre.StartsWith(txtNombre.Text)).ToList();
                }
                if (cbCedula.Checked)
                {
                    lista = lista.Where(l => l.No_cedula.StartsWith(txtCedula.Text)).ToList();
                }

                dgvFiltroCliente.DataSource = lista;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #6
0
 private void Cargargrid()
 {
     try
     {
         N_Cliente NegocioClientes = new N_Cliente();
         dgv_clientes.DataSource = NegocioClientes.ListaCliente();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #7
0
 private void CargarGrid()
 {
     try
     {
         N_Cliente nCliente = new N_Cliente();
         dgvFiltroCliente.DataSource = nCliente.ListaCliente();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #8
0
        private void frmMantenedorCaja_Load(object sender, EventArgs e)
        {
            N_Embalaje caja1 = new N_Embalaje();

            dgvLista.DataSource = caja1.Lista();

            N_Cliente cliente1 = new N_Cliente();

            cbCliente.DataSource    = cliente1.Lista();
            cbCliente.ValueMember   = "id";
            cbCliente.DisplayMember = "cliente";
            cbCliente.SelectedIndex = -1;
        }
예제 #9
0
        private void buscarCliente(Int64 idCliente)
        {
            N_Cliente ncliente = new N_Cliente();
            E_Cliente cliente  = ncliente.getOne(Convert.ToInt64(idCliente));

            txtIdCliente.Text   = cliente.idCliente.ToString();
            txtDescripcion.Text = cliente.descripcion;
            txtDireccion.Text   = cliente.direccion;
            txtCuitDni.Text     = cliente.dni.ToString();
            if (cliente.boletinProtec)             // si tiene boletin protectivo le muestra una cartel
            {
                MessageBox.Show("El Cliente Se Encuentra en el boletin Protectivo", "Boletin Protectivo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
예제 #10
0
        public void Insertar_Actualizar()
        {
            try
            {
                if (Validar() == false)
                {
                    return;
                }

                E_Cliente obj     = new E_Cliente();
                string    mensaje = "";

                obj._APELLIDOS    = txt_apellidos.Text.Trim();
                obj._CEDULA       = txt_cedula.Text.Trim();
                obj._CELULAR      = txt_celular.Text.Trim();
                obj._CREADO_POR   = Funciones.Utilitario.Datos_Usuarios.USUARIO;
                obj._DIRECCION    = txt_direccion.Text.Trim();
                obj._ESTADO       = cb_estado.Text;
                obj._FECHA_CREADO = DateTime.Now;
                obj._NOMBRES      = txt_nombres.Text.Trim();
                obj._SEXO         = cb_sexo.Text;
                obj._TELEFONO     = txt_telefono.Text.Trim();

                if (txt_id.Text.Equals(""))
                {
                    N_Cliente.Insertar_Datos(obj);
                    mensaje = "Datos Insertados Con Exito";
                }
                else
                {
                    obj._ID_CLIENTE = Convert.ToInt32(txt_id.Text);
                    N_Cliente.Actualizar_Datos(obj);
                    mensaje = "Datos Actualizados Con Exito";
                }

                Frm_Mant_Clientes frm = this.Owner as Frm_Mant_Clientes;
                if (frm != null)
                {
                    frm.Consultar();
                }
                this.Close();
                Funciones.Utilitario.Mensaje_Informacion(mensaje);
            }
            catch (Exception ex)
            {
                Funciones.Utilitario.Mensaje_Error(ex.Message);
            }
        }
예제 #11
0
        private void frmMantenedorProductor_Load(object sender, EventArgs e)
        {
            N_Productor productor1 = new N_Productor();
            N_Cliente   cliente1   = new N_Cliente();

            dgvLista.DataSource = productor1.ListaCompleta();
            dgvLista.Columns["Codigo"].DisplayIndex           = 0;
            dgvLista.Columns["Descripcion"].DisplayIndex      = 1;
            dgvLista.Columns["Codigo_cliente"].DisplayIndex   = 2;
            dgvLista.Columns["Codigo_productor"].DisplayIndex = 3;

            cbCliente.DataSource    = cliente1.Lista();
            cbCliente.ValueMember   = "id";
            cbCliente.DisplayMember = "cliente";
            cbCliente.SelectedIndex = -1;
        }
예제 #12
0
        void ModificarCliente()
        {
            N_Cliente cliente1 = new N_Cliente();
            E_Cliente cliente2 = new E_Cliente();

            cliente2.ID      = lblIDCliente.Text;
            cliente2.Codigo  = txtCodigoCliente.Text;
            cliente2.Cliente = txtDescripcionCliente.Text;
            if (cliente1.Modificar(cliente2) == true)
            {
                dgvLista.DataSource = cliente1.Lista();
            }
            else
            {
                MessageBox.Show("Error: No se pudo modificar el registro", "Modificar");
            }
        }
예제 #13
0
        private void button6_Click(object sender, EventArgs e)
        {
            try
            {
                N_Cliente        Lista = new N_Cliente();
                List <E_Cliente> lista = Lista.ListaBuscarCliente();


                lista = lista.Where(l => l.Nombre.StartsWith(txt_id.Text)).ToList();


                dgv_clientes.DataSource = lista;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #14
0
        //
        //Metodos
        //
        private void refrescarGrilla()
        {
            List <E_Cliente> clientes;
            N_Cliente        NCliente = new N_Cliente();

            dgClientes.AutoGenerateColumns = false;

            clientes = NCliente.getAll(txtFiltro.Text);
            if (clientes != null)
            {
                dgClientes.AutoGenerateColumns = false;
                dgClientes.DataSource          = clientes;
            }
            else
            {
                MessageBox.Show("No se cargo la gillla");
            }
        }
예제 #15
0
        private void consultarCliente()
        {
            E_Cliente cliente;
            N_Cliente nCliente = new N_Cliente();

            cliente = nCliente.getOne(_idCliente);

            txtId.Text                = cliente.idCliente.ToString();
            txtDescripcion.Text       = cliente.descripcion;
            txtDireccion.Text         = cliente.direccion;
            cbxBoletinProtect.Checked = cliente.boletinProtec;
            txtObservacion.Text       = cliente.observacion;
            txtMail.Text              = cliente.mail;
            txtDireccion.Text         = cliente.direccion;
            txtDNI.Text               = cliente.dni.ToString();
            txtFecNac.Text            = cliente.fecNac.ToString();
            txtTelefono.Text          = cliente.telefono;

            posicionarCboProvincia(cliente.localidad.provincia.IdProvincia);
            cargarCboLocalidad(cliente.localidad.provincia.IdProvincia);
            posicionarCboLocalidad(cliente.localidad.idLocalidad);
        }
예제 #16
0
        private void frmMantenedorEtiqueta_Load(object sender, EventArgs e)
        {
            N_Etiqueta etiqueta1 = new N_Etiqueta();
            N_Cliente  cliente1  = new N_Cliente();
            N_Especie  especie1  = new N_Especie();

            dgvLista.DataSource = etiqueta1.Lista_EC();
            dgvLista.Columns["Codigo"].DisplayIndex      = 0;
            dgvLista.Columns["Descripcion"].DisplayIndex = 1;
            dgvLista.Columns["Cliente"].DisplayIndex     = 2;
            dgvLista.Columns["Especie"].DisplayIndex     = 3;


            cbCliente.DataSource    = cliente1.Lista();
            cbCliente.ValueMember   = "id";
            cbCliente.DisplayMember = "cliente";
            cbCliente.SelectedIndex = -1;

            cbEspecie.DataSource    = especie1.Lista();
            cbEspecie.ValueMember   = "codigo";
            cbEspecie.DisplayMember = "descripcion";
            cbEspecie.SelectedIndex = -1;
        }
예제 #17
0
        public override void Borrar()
        {
            if (dgvLista.SelectedRows.Count != 0)
            {
                int    pos = dgvLista.CurrentRow.Index;
                string ID;
                ID = dgvLista.Rows[pos].Cells["ID"].Value.ToString();
                if (MessageBox.Show("¿Borrar Registro Seleccionado?", "Eliminar", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
                {
                    return;
                }

                N_Cliente cliente1 = new N_Cliente();
                if (cliente1.Borrar(ID) == true)
                {
                    dgvLista.DataSource = cliente1.Lista();
                }
            }
            else
            {
                MessageBox.Show("Seleccione Item", "Borrar");
            }
        }
예제 #18
0
        public void Consultar()
        {
            string condicion = "";

            if (cb_buscar.Text == "ID")
            {
                condicion = "ID_CLIENTE =" + txt_buscar.Text + "";
            }
            else if (cb_buscar.Text == "NOMBRES")
            {
                condicion = "(NOMBRES LIKE'%" + txt_buscar.Text + "%')";
            }
            else if (cb_buscar.Text == "APELLIDOS")
            {
                condicion = "(APELLIDOS LIKE'%" + txt_buscar.Text + "%')";
            }
            else if (cb_buscar.Text == "CEDULA" || cb_buscar.Text == "")
            {
                condicion = "(CEDULA LIKE'%" + txt_buscar.Text + "%')";
            }

            dg.DataSource  = N_Cliente.Consultar_Datos(condicion);
            lbl_total.Text = "Total de Regist.:  " + dg.Rows.Count.ToString();
        }
예제 #19
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            // si devuelve true es que los campos obligatorios estan completos
            if (txtObligatorios() == true)
            {
                E_Cliente cliente = new E_Cliente();
                //si el txt id esta vacio significa que es una cliente nuevo
                if (txtId.Text != "")
                {
                    cliente.idCliente = Convert.ToInt64(txtId.Text);
                }

                cliente.descripcion = txtDescripcion.Text;
                cliente.direccion   = txtDireccion.Text;
                if (!string.IsNullOrEmpty(txtDNI.Text))
                {
                    cliente.dni = Convert.ToInt32(txtDNI.Text);
                }
                cliente.boletinProtec = cbxBoletinProtect.Checked;

                DateTime dt;
                if (DateTime.TryParse(txtFecNac.Text, out dt))
                {
                    cliente.fecNac = Convert.ToDateTime(txtFecNac.Text);
                }
                else
                {
                    cliente.fecNac = null;
                }
                cliente.observacion           = txtObservacion.Text;
                cliente.telefono              = txtTelefono.Text;
                cliente.mail                  = txtMail.Text;
                cliente.localidad.idLocalidad = ((ComboItem)cboLocalidad.SelectedItem).Id;

                N_Cliente nCliente = new N_Cliente();
                string    xRet     = nCliente.guardar(cliente);
                if (xRet != "0")                 // si hubo un error
                {
                    MessageBox.Show("No se pudo agregar el cliente", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                else                 // se guardo correctamente
                {
                    MessageBox.Show("¡El cliente se agregó correctamente!", "Operacion Exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    if (_idCliente != 0)                     // se realizo un modificacion
                    {
                        this.Close();
                    }
                    else if (_frmAnterior == frmConfVenta._frmName)                    // si es llamado del frmConfVenta y esta agregando un cliente
                    {
                        Int64 ultCliente;
                        ultCliente = nCliente.ultCliente();

                        if (ultCliente != 0)
                        {
                            frmConfVenta._idCliente = ultCliente;                             // le paso al confVenta el cliente agregado
                            this.Close();
                        }
                    }
                    else if (_frmAnterior == frmBsqCliente._frmName)                     // si ses llamado del formulario agrCliente
                    {
                        this.Close();
                    }
                    LimpiarTXT();
                }
            }
            else            // si los campos estan incompletos
            {
                MessageBox.Show("¡Los campos obligatorios deben estar completos (*)!", "Campos Incompletos", MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            }
        }
예제 #20
0
        private void Imprimir_Comercial(E_Comercial detalle_comercial)
        {
            double pesobandeja = 0;
            double pesopallet = 0;
            double tara, pesoNeto, pesopromedio;

            N_Bandeja       bandeja1   = new N_Bandeja();
            N_Pallet        pallet1    = new N_Pallet();
            N_Especie       especie1   = new N_Especie();
            N_Productor     productor1 = new N_Productor();
            N_Cliente       cliente1   = new N_Cliente();
            N_TipoComercial tipo1      = new N_TipoComercial();

            E_Bandeja       bandeja2   = bandeja1.ObtenerBandeja(detalle_comercial.ID_Tipo.ToString());
            E_Pallet        pallet2    = pallet1.ObtenerPallet(detalle_comercial.ID_Pallet.ToString());
            E_Especie       especie2   = especie1.ObtenerEspecie(detalle_comercial.ID_Especie.ToString());
            E_Productor     productor2 = productor1.ObtenerProductor(detalle_comercial.ID_Productor);
            E_Cliente       cliente2   = cliente1.ObtenerCliente(detalle_comercial.ID_Cliente.ToString());
            E_TipoComercial tipo2      = tipo1.ObtenerTipoComercial(detalle_comercial.ID_Tipo.ToString());

            detalle_comercial.Bandeja   = bandeja2.Descripcion;
            detalle_comercial.Pallet    = pallet2.Descripcion;
            detalle_comercial.Especie   = especie2.Descripcion;
            detalle_comercial.Productor = productor2.Descripcion;
            detalle_comercial.Cliente   = cliente2.Cliente;
            detalle_comercial.Tipo      = tipo2.Descripcion;

            pesobandeja  = bandeja1.Peso(detalle_comercial.ID_Bandeja);
            pesopallet   = pallet1.Peso(detalle_comercial.ID_Pallet);
            tara         = (pesobandeja * Convert.ToInt32(detalle_comercial.Cantidad_Bandejas)) + pesopallet;
            pesoNeto     = Convert.ToDouble(detalle_comercial.Kilos_Brutos) - tara;
            pesopromedio = pesoNeto / Convert.ToInt32(detalle_comercial.Cantidad_Bandejas);

            DateTime fecha = Convert.ToDateTime(detalle_comercial.Fecha);
            string   hora  = fecha.ToString("HH:mm:ss");
            /*---------------------------------------------------------------------------*/
            N_Imprimir             imprimir   = new N_Imprimir();
            N_Recepcion_Encabezado encabezado = new N_Recepcion_Encabezado()
            {
                Chofer           = detalle_comercial.Tipo,
                Codigo_productor = detalle_comercial.ID_Productor,
                Correlativo      = "",
                Exportador       = detalle_comercial.Cliente,
                Fecha            = fecha.ToString("dd/MM/yyyy"),
                Guia_despacho    = "",
                Hora             = fecha.ToString("h:mm:ss tt"),
                Productor        = detalle_comercial.Productor,
                Especie          = detalle_comercial.Especie,
                Responsable      = sesion.Nombre + " " + sesion.Apellido
            };
            N_Recepcion_Detalle detalle = new N_Recepcion_Detalle()
            {
                Cantidad             = detalle_comercial.Cantidad_Bandejas.ToString(),
                Comentario           = "",
                Descarga             = "",
                Destino              = "",
                Folio                = detalle_comercial.Folio,
                Hora_recepcion       = hora,
                Kilos_brutos         = detalle_comercial.Kilos_Brutos.ToString(),
                Tara                 = detalle_comercial.Tara.ToString(),
                Kilos_netos          = detalle_comercial.Kilos_Netos.ToString(),
                Numero_lote          = "",
                Peso_pallet          = pesopallet.ToString(),
                Peso_promedio        = pesopromedio.ToString(),
                Peso_rejillas        = pesobandeja.ToString(),
                Responsable          = sesion.Nombre + " " + sesion.Apellido,
                Sub_lote             = "",
                Temperatura          = "",
                Tipo_rejilla_bandeja = detalle_comercial.Bandeja
            };
            N_Coordenadas_Impresion coordenadas = new N_Coordenadas_Impresion()
            {
                PosicionX = "-3",
                PosicionY = "0"
            };

            imprimir.Detalle               = detalle;
            imprimir.Encabezado            = encabezado;
            imprimir.Fuente                = new Font("Verdana", 10);
            imprimir.Coordenadas_impresion = coordenadas;
            PrintDocument pd = new PrintDocument();

            pd.PrintPage += new PrintPageEventHandler(imprimir.PrintTextFileHandlerComercial);
            pd.DefaultPageSettings.PrinterSettings.PrinterName = N_Impresora.Nombre;
            if (pd.PrinterSettings.IsValid)
            {
                pd.Print();
            }
            else
            {
                MessageBox.Show("Impresora " + N_Impresora.Nombre + " no esta instalada");
                return;
            }
            //para utilizar con printdialog
            //printDialog1.Document = pd;
            //Llamar al printDialog
            //if (printDialog1.ShowDialog() == DialogResult.OK) pd.Print();
        }
예제 #21
0
        private void frmMantenedorCliente_Load(object sender, EventArgs e)
        {
            N_Cliente cliente1 = new N_Cliente();

            dgvLista.DataSource = cliente1.Lista();
        }
예제 #22
0
        private void btn_guardar_Click(object sender, EventArgs e)
        {
            if ((Global.ValidaTextBoxVacios(PanelInventario) == false))
            {
                MessageBox.Show("Necesita llenar todos los campos", "Compra", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Cargargrid();
            }

            else
            {
                try
                {
                    if (Modificar == true)
                    {
                        E_Cliente modificarClientes = new E_Cliente();
                        modificarClientes.Id_cliente = txt_cedula.Tag.ToString();
                        modificarClientes.No_cedula  = txt_cedula.Text;
                        modificarClientes.Nombre     = txt_nombre.Text;
                        modificarClientes.Apellido   = txt_apellido.Text;
                        modificarClientes.Telefono   = Convert.ToInt32(txt_telefono.Text);
                        modificarClientes.Direccion  = txt_direccion.Text;
                        modificarClientes.Ciudad     = txt_ciudad.Text;
                        modificarClientes.Email      = txt_email.Text;

                        N_Cliente nclientes = new N_Cliente();
                        if (nclientes.Editar(modificarClientes))
                        {
                            MessageBox.Show("se modifico exitosamente", "clientes");
                            Cargargrid();
                            Global.Limpiar(PanelInventario);

                            Modificar = false;
                        }
                    }
                    else
                    {
                        E_Cliente GuardarClientes = new E_Cliente();
                        GuardarClientes.No_cedula = txt_cedula.Text;
                        GuardarClientes.Nombre    = txt_nombre.Text;
                        GuardarClientes.Apellido  = txt_apellido.Text;
                        GuardarClientes.Telefono  = Convert.ToInt32(txt_telefono.Text);
                        GuardarClientes.Direccion = txt_direccion.Text;
                        GuardarClientes.Ciudad    = txt_ciudad.Text;
                        GuardarClientes.Email     = txt_email.Text;

                        N_Cliente nclientes = new N_Cliente();
                        if (nclientes.Guardar(GuardarClientes))
                        {
                            MessageBox.Show("se guardo exitosamente", "clientes");
                            Cargargrid();
                            Global.Limpiar(PanelInventario);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("error" + ex);
                }


                PanelInventario.Enabled = false;
                Global.Limpiar(PanelInventario);
                btn_guardar.Enabled  = false;
                btn_nuevo.Enabled    = true;
                btn_cancelar.Enabled = false;
                btn_editar.Enabled   = true;
                btn_eliminar.Enabled = true;
            }
        }