2 using System.Collections.Generic;
3 using System.ComponentModel;
29 #region Propiedades privadas 31 private bool _lAsistente =
true;
32 private string _cCodigo =
string.Empty;
43 return (_lAsistente || (!_lAsistente && !
string.IsNullOrWhiteSpace(_ewMante._Codigo) && (_ewMante._Codigo == PORTALCLI._GrupoEmpresaActual)));
50 private string _cGrupo
54 if (!_lAsistente && _ewMante != null)
55 return _ewMante._Codigo;
64 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
67 get {
return _oEmpConnect; }
68 set { _oEmpConnect = value; }
71 #endregion Propiedades privadas 73 #region Propiedades públicas 83 #endregion Propiedades públicas 91 InitializeComponent();
102 InitializeComponent();
104 _lAsistente = tlAsistente;
105 extensionMante = _extensionMante;
108 ConstructorPrivado();
114 private void ConstructorPrivado()
119 #endregion Constructores 121 #region Métodos protected override 122 protected override void OnHandleCreated(EventArgs e)
128 base.OnHandleCreated(e);
132 ewtablelayoutpanelEmpresas.RowStyles[0].Height = 0;
133 ewtablelayoutpanelEmpresas.RowStyles[1].Height = 0;
134 ewtablelayoutpanelEmpresas.RowStyles[2].Height = 0;
142 SuscripcionEventos();
144 #endregion Métodos protected override 146 #region Métodos públicos 147 public void _Binding()
152 if (!_lAsistente && _cCodigo == _ewMante._Codigo)
155 CancelarSuscripcionEventos();
161 SuscripcionEventos();
164 _cCodigo = _ewMante._Codigo;
178 btConectar.Enabled = llEnabled;
189 if (_oEmpConnect == null)
195 _ewMante._Error_Message =
string.Empty;
197 bool llOk = _oEmpConnect.
_Save();
204 #endregion Métodos públicos 206 #region Métodos privados 207 private void BloquearControles()
212 bool llEnabled = btConectar.Enabled && !
string.IsNullOrWhiteSpace(ewtextboxIdentificadorDespacho.Text);
214 EmpConnectRelacion loEmpConnectRelacion = llEnabled ? DataBoundItemEmpConnectRelacion() : null;
216 btAnadir.Enabled = llEnabled;
217 btBorrar.Enabled = llEnabled && loEmpConnectRelacion != null;
219 ConfigurarBotonConectar();
225 private void ConfigurarBotonConectar()
230 if (_oEmpConnect != null && !
string.IsNullOrWhiteSpace(_oEmpConnect.
_IdDespacho))
232 if (btConectar.Enabled)
234 Color loColorForecolor = Color.FromArgb(205, 56, 75);
236 btConectar._PropiedadesDeEstilos._AplicarEstilos =
false;
237 btConectar.BackColor = loColorForecolor;
238 btConectar.ForeColor = Color.White;
239 btConectar.FlatStyle = FlatStyle.Flat;
240 btConectar.FlatAppearance.BorderColor = loColorForecolor;
241 btConectar.FlatAppearance.BorderSize = 1;
242 btConectar.TextAlign = ContentAlignment.MiddleCenter;
245 btConectar._PropiedadesDeEstilos._AplicarEstilos =
true;
247 btConectar.Text =
"Desasignar";
251 btConectar._PropiedadesDeEstilos._AplicarEstilos =
true;
252 btConectar.Text =
"Asignar";
254 if (btConectar.Enabled)
255 btConectar._PropiedadesDeEstilos._CargarEstilo(
"sage.ew.botones.btDocAceptar");
262 private void SuscripcionEventos()
264 CancelarSuscripcionEventos();
266 btConectar.Click += btConectar_Click;
268 btAnadir.Click += BtAnadir_Click;
269 btBorrar.Click += BtBorrar_Click;
272 VisibleChanged += UserEmpresas_VisibleChanged;
274 ewgridEmpresas.RowEnter += EwgridEmpresas_RowEnter;
277 ewgridEmpresas.CurrentCellDirtyStateChanged += EwgridEmpresas_CurrentCellDirtyStateChanged;
283 private void CancelarSuscripcionEventos()
285 btConectar.Click -= btConectar_Click;
287 btAnadir.Click -= BtAnadir_Click;
288 btBorrar.Click -= BtBorrar_Click;
291 VisibleChanged -= UserEmpresas_VisibleChanged;
293 ewgridEmpresas.RowEnter -= EwgridEmpresas_RowEnter;
296 ewgridEmpresas.CurrentCellDirtyStateChanged -= EwgridEmpresas_CurrentCellDirtyStateChanged;
304 private void UserEmpresas_VisibleChanged(
object sender, EventArgs e)
306 if (Visible && !Disposing && !IsDisposed)
309 RefrescarImagenesTooltips();
318 private void EwgridEmpresas_RowEnter(
object sender, DataGridViewCellEventArgs e)
329 private void EwgridEmpresas_CurrentCellDirtyStateChanged(
object sender, EventArgs e)
331 string lcColName = ewgridEmpresas.Columns[ewgridEmpresas.CurrentCell.ColumnIndex].Name;
332 if (lcColName ==
"sel" || lcColName ==
"emp_desp")
337 if (ewgridEmpresas.IsCurrentCellDirty)
340 ewgridEmpresas.CommitEdit(DataGridViewDataErrorContexts.Commit);
343 if (!
string.IsNullOrWhiteSpace(loEmpConnectRelacion.
_Mensaje))
345 FUNCTIONS._MessageBox(loEmpConnectRelacion.
_Mensaje,
"Selección de empresas", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
347 ewgridEmpresas[
"sel", ewgridEmpresas.CurrentCell.RowIndex].Value =
false;
349 ewgridEmpresas.CurrentCell = ewgridEmpresas[
"Conexion", ewgridEmpresas.CurrentCell.RowIndex];
353 ResfrescarImagenToolTip(ewgridEmpresas.CurrentCell.OwningRow);
363 private void btConectar_Click(
object sender, EventArgs e)
365 if (
string.IsNullOrWhiteSpace(ewtextboxIdentificadorDespacho.Text))
369 if (FUNCTIONS._MessageBox($
"Si desasignas identificador perderás la conexión con el Portal del cliente con Sage Despachos, se eliminará la configuración.{Environment.NewLine}{Environment.NewLine}" +
370 $
"¿Estás seguro que deseas continuar y eliminar configuración en el grupo de empresa {PORTALCLI._GrupoEmpresaActual}?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, DialogResult.No, tcText:
"Mantenimiento de grupos de empresas") == DialogResult.Yes)
372 if (PORTALCLI._CfgPortalCli._Delete())
374 _cCodigo =
string.Empty;
377 GuardarMantenimiento();
379 PORTALCLI._RefreshDesktop();
396 private void BtBorrar_Click(
object sender, EventArgs e)
400 if (loEmpConnectRelacion != null)
402 if (FUNCTIONS._MessageBox(
"¿Seguro que desea borrar la línea seleccionada?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, DialogResult.No, tcText:
"Mantenimiento de grupos de empresas") == DialogResult.No)
405 loEmpConnectRelacion.
_Sel =
false;
407 CancelarSuscripcionEventos();
409 ewgridEmpresas.DataSource = null;
411 _oEmpConnect.
_Delete(loEmpConnectRelacion);
417 SuscripcionEventos();
429 if (ewgridEmpresas.CurrentRow != null)
431 DataGridViewCell loCell = ewgridEmpresas.CurrentCell;
437 return loEmpConnectRelacion;
446 private void BtAnadir_Click(
object sender, EventArgs e)
449 _oEmpConnect.
_Save();
453 GuardarMantenimiento();
461 private void ShowAsistente(
bool tlPaginaEmpresas =
false)
465 if (tlPaginaEmpresas)
466 loFormAsistente._PaginaAsistente = _oEmpConnect.
_EmpresasRelacion.Count == 0 ? 2 : 3;
468 loFormAsistente._ShowDialog();
473 _cCodigo =
string.Empty;
475 GuardarMantenimiento();
482 private void GuardarMantenimiento()
488 _Clave = $
"GRUPOSEMP|{_ewMante._Codigo}",
501 private void ConfigurarGridSegunModo()
507 ldgtbColSel.Name =
"sel";
508 ldgtbColSel.HeaderText =
"Sel.";
509 ldgtbColSel.ValueType = typeof(
bool);
510 ldgtbColSel.Visible =
true;
511 ldgtbColSel.ReadOnly =
false;
512 ldgtbColSel.Width = _lAsistente ? 40 : 60;
513 ldgtbColSel.DataPropertyName =
"_Sel";
514 ldgtbColSel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
515 ldgtbColSel.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
516 ldgtbColSel.SortMode = DataGridViewColumnSortMode.Automatic;
517 ewgridEmpresas.Columns.Add(ldgtbColSel);
520 CreateTextBoxColumn(
"_ImagenConexion",
"Imagen conexión",
"_ImagenConexion", 10, tlVisible:
false);
521 CreateTextBoxColumn(
"_TipoRelacionEmpresa",
"Tipo relación",
"_TipoRelacionEmpresa", 10, tlVisible:
false);
523 using (DataGridViewImageColumn ldgtbColObservaciones =
new DataGridViewImageColumn())
525 ldgtbColObservaciones.Name =
"Conexion";
526 ldgtbColObservaciones.HeaderText =
"Conexión";
527 ldgtbColObservaciones.Width = 30;
528 ldgtbColObservaciones.Resizable = DataGridViewTriState.False;
530 ldgtbColObservaciones.DefaultCellStyle.NullValue = null;
531 ldgtbColObservaciones.ValueType = typeof(ew.objetos.ewbutton);
532 ldgtbColObservaciones.Visible =
true;
533 ldgtbColObservaciones.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
534 ldgtbColObservaciones.SortMode = DataGridViewColumnSortMode.NotSortable;
536 ldgtbColObservaciones.ReadOnly =
true;
538 ewgridEmpresas.Columns.Add(ldgtbColObservaciones);
543 CreateTextBoxColumn(
"usuario",
"Usuario",
"_NombreUsuario", 100);
550 private void LoadEmpConnect()
554 if (_oEmpConnect == null)
556 _oEmpConnect = PORTALCLI._CfgPortalCli._EmpConnect;
561 _oEmpConnect.
_Grupo = _cGrupo;
566 if ((!_lAsistente && !
string.IsNullOrWhiteSpace(_cGrupo)) || _lAsistente)
567 _oEmpConnect.
_Load();
569 if (!llOk && !
string.IsNullOrWhiteSpace(_oEmpConnect.
_Error_Message))
570 FUNCTIONS._MessageBox(_oEmpConnect.
_Error_Message, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.OK, tcText:
"Mantenimiento de grupos de empresas");
577 private void ConfigurarGrid()
581 if (ewgridEmpresas.Columns.Count > 0)
582 ewgridEmpresas.Columns.Clear();
584 ewgridEmpresas.AutoGenerateColumns =
false;
585 ewgridEmpresas.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
586 ewgridEmpresas.AllowUserToResizeRows =
false;
588 ConfigurarGridSegunModo();
590 CreateTextBoxColumn(
"empresa",
"Empresa",
"_Empresa", _lAsistente ? 70 : 80);
591 CreateTextBoxColumn(
"nombre",
"Nombre",
"_Nombre", _lAsistente ? 200 : 350);
592 CreateTextBoxColumn(
"cif",
"CIF",
"_Cif", _lAsistente ? 80 : 100);
595 CreateComboBoxColumnEmpresaDespacho();
597 CreateTextBoxColumn(
"emp_nom_desp",
"Empresa despacho",
"_Emp_Nom_Desp", 350, tlFill:
true);
603 private void RefreshData()
605 if (_oEmpConnect == null)
608 BindingList<EmpConnectRelacion> lstEmpresas =
new BindingList<EmpConnectRelacion>(_oEmpConnect.
_EmpresasRelacion);
610 ewgridEmpresas.DataSource = lstEmpresas;
612 RefrescarImagenesTooltips();
614 IdentificarDespacho();
616 ConfigurarBotonConectar();
622 private void RefrescarImagenesTooltips()
627 string lcImagenConexion =
string.Empty;
628 string lcTipoRelacion =
string.Empty;
629 string lcToolTip =
string.Empty;
631 foreach (DataGridViewRow ldrDataGridViewRow
in ewgridEmpresas.Rows)
632 ResfrescarImagenToolTip(ldrDataGridViewRow);
639 private void ResfrescarImagenToolTip(DataGridViewRow toDataGridViewRow)
641 string lcImagenConexion = ImagenConexion(toDataGridViewRow);
642 string lcToolTip = TooltipRelacionEmpresa(toDataGridViewRow);
644 Bitmap loBitmap = null;
646 if (!
string.IsNullOrWhiteSpace(lcImagenConexion))
648 switch (lcImagenConexion)
667 toDataGridViewRow.Cells[
"Conexion"].Value = loBitmap;
668 toDataGridViewRow.Cells[
"Conexion"].ToolTipText = lcToolTip;
676 private string ImagenConexion(DataGridViewRow toDataGridViewRow)
678 string lcImagenConexion =
string.Empty;
682 lcImagenConexion = Convert.ToString(toDataGridViewRow.Cells[
"_ImagenConexion"].Value);
684 catch (Exception loEx)
686 DB.Registrar_Error(loEx);
689 return lcImagenConexion;
697 private string TooltipRelacionEmpresa(DataGridViewRow toDataGridViewRow)
699 string lcToolTip =
string.Empty;
703 string lcTipoRelacion = Convert.ToString(toDataGridViewRow.Cells[
"_TipoRelacionEmpresa"].Value);
706 switch (loTipoRelacionEmpresas)
715 lcToolTip =
"Existen varias empresas despacho con mismo CIF seleccione la que corresponda";
718 lcToolTip =
"Empresa con mismo CIF en Sage 50, selecciónela si debe conectar la empresa";
721 lcToolTip =
"No tienes permisos para enviar datos contables a la empresa despacho";
726 lcToolTip =
"Existe empresa en el portal del cliente con mismo CIF marque check para conectar";
732 catch (Exception loEx)
734 DB.Registrar_Error(loEx);
750 private void CreateTextBoxColumn(
string tcName,
string tcHeader,
string tcDataPropertyName,
int tnWidth,
bool tlFill =
false,
bool tlVisible =
true,
bool tlReadOnly =
true)
754 ldgtbNuevaColumna.Name = tcName;
755 ldgtbNuevaColumna.HeaderText = tcHeader;
756 ldgtbNuevaColumna.ValueType = typeof(
string);
757 ldgtbNuevaColumna.Width = tnWidth;
758 ldgtbNuevaColumna.Visible = tlVisible;
759 ldgtbNuevaColumna.ReadOnly = tlReadOnly;
760 ldgtbNuevaColumna.DataPropertyName = tcDataPropertyName;
763 ldgtbNuevaColumna.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
765 ewgridEmpresas.Columns.Add(ldgtbNuevaColumna);
775 private void CreateComboBoxColumnEmpresaDespacho()
777 if (_oEmpConnect == null)
785 loCol.Name =
"emp_desp";
786 loCol.HeaderText =
"Empresa despacho";
787 loCol.DataPropertyName =
"_Emp_Desp";
788 loCol.FlatStyle = FlatStyle.Flat;
789 loCol.Width = _lAsistente ? 200 : 350;
790 loCol.ReadOnly = !_lAsistente || lstDict.Count == 0;
792 loCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
794 loCol.ValueType = typeof(
string);
796 loCol.DisplayMember =
"Value";
797 loCol.ValueMember =
"Key";
798 loCol.DataSource = lstDict.ToList();
800 loCol.Visible =
true;
801 ewgridEmpresas.Columns.Add(loCol);
810 private DataTable PosiblesValoresClaveString(Dictionary<string, string> tdictValores)
812 DataTable ldtValores =
new DataTable();
813 ldtValores.Columns.Add(
"codigo", typeof(
string));
814 ldtValores.Columns.Add(
"nombre");
816 foreach (KeyValuePair<string, string> lodicValues
in tdictValores)
817 ldtValores.Rows.Add(lodicValues.Key, lodicValues.Value);
825 private void CreateCheckBoxColumnPermisos()
829 ldgtbColSel.Name =
"permisos";
830 ldgtbColSel.HeaderText =
"Permisos";
831 ldgtbColSel.ValueType = typeof(
bool);
832 ldgtbColSel.Visible =
true;
833 ldgtbColSel.ReadOnly =
true;
834 ldgtbColSel.Width = 60;
835 ldgtbColSel.DataPropertyName =
"_PermisosExportacion";
836 ldgtbColSel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
837 ldgtbColSel.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
838 ldgtbColSel.SortMode = DataGridViewColumnSortMode.Automatic;
839 ewgridEmpresas.Columns.Add(ldgtbColSel);
846 private void IdentificarDespacho()
848 ewtextboxIdentificadorDespacho.Text = _oEmpConnect.
_IdDespacho;
850 #endregion Métodos privados
Control de usuario para las empresas de portalcli
Clase de negocio base para mantenimientos
TipoRelacionEmpresas
• No se encuentra ninguna empresa en la lista devuelta por la API para una empresa de Sage 50: Apare...
Definición de la interfície necesaria para las páginas(tabPage) a utilizar en formularios de tipo For...
Este es el espacio de nombres de su módulo. Puede encontrar más información y ayuda en el fichero rea...
Dictionary< string, string > _GetEmpresasCombo()
Devuelve el diccionario de empresas para presentar en la combo
bool _Asistente
Consulta la información para presentar en modo asistente
string _Mensaje
Mensaje para presentar en la capa visual para las validaciones
Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc.
Base per a les columnes estandar
bool _Save()
Realizamos el Save de la información
void _BloquearControles(bool tlReadOnly)
Bloquear controles
string _IdDespacho
Identificador del despacho. Neceario para gestionar el identificador cuando estamos consultando la in...
bool _Load()
Realizamos el Load
static System.Drawing.Bitmap anul_linea_16
Busca un recurso adaptado de tipo System.Drawing.Bitmap.
bool _Delete()
Realizamos el Delete de las relaciones de la empresa
Clase base para las extensiones de los mantenimientos
Base per a les columnes estandar
List< EmpConnectRelacion > _EmpresasRelacion
Devuelve la lista de la relación de empresas
static System.Drawing.Bitmap icon_correcto
Busca un recurso adaptado de tipo System.Drawing.Bitmap.
void _DescargarDatos()
Descargamos los datos
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.
Clase para presentar la lista de empresas en el control de usuario "UserEmpresas" ...
bool _Desbloquear(bool tlRefreshSello=true, string tcTs="")
Desbloquea un documento / mantenimiento / ...
Clase EmpConnect para gestionar la relación de las empresas de Sage 50 con las empresas del portal ...
bool _EmpDespReadOnly
Para saber si la empresa despacho se puede modificar
bool _Save()
Actualizamos la información de las relaciones entre las empresas
static System.Drawing.Bitmap icon_aviso
Busca un recurso adaptado de tipo System.Drawing.Bitmap.
static System.Drawing.Bitmap add_line_16
Busca un recurso adaptado de tipo System.Drawing.Bitmap.
UserEmpresas(_ExtensionMante _extensionMante, ewMante toMante, bool tlAsistente=true)
Constructor para utilizar en el grupo de empresas
string _Error_Message
Descripción del error
string _Grupo
Grupo de empresa
Presenta un datagridview con botones añadir y borrar tipo Mantegrid de Eurowin
static System.Drawing.Bitmap icon_error
Busca un recurso adaptado de tipo System.Drawing.Bitmap.
Base per a les columnes estandar
Clase EnUso. PE-103176 Centralización de código para la gestión del KeyCopy de las clases que lo requ...