UserExportacion.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
11 using sage.ew.global;
12 using sage.ew.objetos;
13 using sage.ew.functions;
14 using System.IO;
17 
18 namespace sage.addons.portalcli.Visual.UserControls
19 {
23  public partial class UserExportacion : UserControl
24  {
25  #region Propiedades privadas
26  private ExportacionPortalcli _oProceso = null;
27  private string _cPantalla = "DIARIO";
28  #endregion Propiedades privadas
29 
30  #region Constructor
31  public UserExportacion()
35  {
36  InitializeComponent();
37 
38  if (!DesignMode)
39  {
40  ewtabcontrolListados.SizeMode = TabSizeMode.Fixed;
41  ewtabcontrolListados.Appearance = TabAppearance.FlatButtons;
42  ewtabcontrolListados.ItemSize = new Size(0, 1);
43 
44  ewtextboxRutaExportacion.Enabled = false;
45  ewtextboxRutaExportacion._Tooltip = "Abrir directorio de ficheros de exportación";
46 
47  ewbuttonRutaExportacion.Image = ew.images.Properties.Resources.open_folder;
48 
49  SuscripcionEventos();
50  }
51  }
52  #endregion Constructor
53 
54  #region Métodos públicos
55  public bool _Refresh(ExportacionPortalcli toProceso)
61  {
62  _oProceso = toProceso;
63 
64  CancelarSuscripcionEventos();
65 
66  ewcheckboxEnviar.Checked = FUNCTIONS.InternetOk() && PORTALCLI._CfgPortalCli._EmpConnect._UsuarioPermisosExportacion;
67 
68  SuscripcionEventos();
69 
70  Binding();
71 
72  return RefreshListados();
73  }
74 
79  protected internal bool _Export()
80  {
81  bool llExport = _oProceso._Export(ewcheckboxEnviar.Checked);
82 
83  if (llExport) // Si todo ha ido correcto actualizamos el Text del botón de Cancelar con el texto Salir
84  {
85  Form loForm = FindForm();
86 
87  if (loForm != null && loForm is FormExportacion)
88  ((FormExportacion)loForm)._AsientosExportados();
89  }
90 
91  return llExport;
92  }
93  #endregion Métodos públicos
94 
95  #region Métodos privados
96  private void Binding()
100  {
101  ewtextboxRutaExportacion.Text = _oProceso._RutaExportacion;
102  }
103 
107  private void SuscripcionEventos()
108  {
109  radioButtonAsientos.Click += RadioButtonAsientos_Click;
110  radioButtonFacturasEmitidas.Click += RadioButtonFacturasEmitidas_Click;
111  radioButtonFacturasRecibidas.Click += RadioButtonFacturasRecibidas_Click;
112  ewbuttonVerAsiento.Click += EwbuttonNavegarAsiento_Click;
113  ewbuttonRutaExportacion.Click += EwbuttonRutaExportacion_Click;
114  ewcheckboxEnviar.CheckedChanged += EwcheckboxEnviar_CheckedChanged;
115  }
116 
120  private void CancelarSuscripcionEventos()
121  {
122  radioButtonAsientos.Click -= RadioButtonAsientos_Click;
123  radioButtonFacturasEmitidas.Click -= RadioButtonFacturasEmitidas_Click;
124  radioButtonFacturasRecibidas.Click -= RadioButtonFacturasRecibidas_Click;
125  ewbuttonVerAsiento.Click -= EwbuttonNavegarAsiento_Click;
126  ewbuttonRutaExportacion.Click -= EwbuttonRutaExportacion_Click;
127  ewcheckboxEnviar.CheckedChanged -= EwcheckboxEnviar_CheckedChanged;
128  }
129 
133  private void RadionButtonFonts()
134  {
135  radioButtonAsientos.Font = new Font(radioButtonAsientos.Font, FontStyle.Regular);
136  radioButtonFacturasEmitidas.Font = new Font(radioButtonFacturasEmitidas.Font, FontStyle.Regular);
137  radioButtonFacturasRecibidas.Font = new Font(radioButtonFacturasRecibidas.Font, FontStyle.Regular);
138  }
139 
145  private void RadioButtonAsientos_Click(object sender, EventArgs e)
146  {
147  ewtabcontrolListados.SelectedTab = tabPageAsientos;
148  RadionButtonFonts();
149  radioButtonAsientos.Font = new Font(radioButtonAsientos.Font, FontStyle.Bold);
150 
151  OpcionesNavegacion("DIARIO");
152  }
153 
159  private void RadioButtonFacturasEmitidas_Click(object sender, EventArgs e)
160  {
161  ewtabcontrolListados.SelectedTab = tabPageFacturasEmitidas;
162  RadionButtonFonts();
163  radioButtonFacturasEmitidas.Font = new Font(radioButtonAsientos.Font, FontStyle.Bold);
164 
165  OpcionesNavegacion("IVAREPERCUTIDO");
166  }
167 
173  private void RadioButtonFacturasRecibidas_Click(object sender, EventArgs e)
174  {
175  ewtabcontrolListados.SelectedTab = tabPageFacturasRecibidas;
176  RadionButtonFonts();
177  radioButtonFacturasRecibidas.Font = new Font(radioButtonAsientos.Font, FontStyle.Bold);
178 
179  OpcionesNavegacion("IVASOPORTADO");
180  }
181 
186  private void OpcionesNavegacion(string tcPantalla)
187  {
188  ListadoDiarioPortalCli lstListadoDiarioPortalCli = _oProceso._Listados.AsEnumerable().Where(r => r._Pantalla == tcPantalla).FirstOrDefault();
189 
190  if (lstListadoDiarioPortalCli != null)
191  ewbuttonVerAsiento._Listado = lstListadoDiarioPortalCli._Listado;
192 
193  _cPantalla = tcPantalla;
194 
195  ConfiguracionLeyenda(tcPantalla);
196  }
197 
202  private void ConfiguracionLeyenda(string tcPantalla)
203  {
204  string lcTexto = string.Empty;
205  string lcNombreIva = Convert.ToString(EW_GLOBAL._GetVariable("wc_iva")).Trim();
206  bool llVisible = true;
207  switch (tcPantalla)
208  {
209  case "DIARIO":
210  lcTexto = "Asiento de factura emitida sin información de " + lcNombreIva;
211  break;
212  case "IVAREPERCUTIDO":
213  lcTexto = "Registro de "+ lcNombreIva + " de factura sin asiento";
214  break;
215  default:
216  llVisible = false;
217  lcTexto = string.Empty;
218  break;
219  }
220  ewPanelAsientosSinRelacion.Visible = llVisible;
221  ewlblAsientoSinRelacion.Visible = llVisible;
222  ewlblAsientoSinRelacion.Text = lcTexto;
223  }
224 
230  private void EwbuttonNavegarAsiento_Click(object sender, EventArgs e)
231  {
232  DataGridViewCell loCell = null;
233 
234  string lcCampoAsiento = "numero";
235 
236  switch (_cPantalla)
237  {
238  case "IVAREPERCUTIDO":
239  loCell = gridViewListFacturasEmitidas.CurrentCell;
240  break;
241 
242  case "IVASOPORTADO":
243  loCell = gridViewListFacturasRecibidas.CurrentCell;
244  break;
245 
246  default: // DIARIO
247  loCell = gridViewListAsientos.CurrentCell;
248  lcCampoAsiento = "asiento";
249  break;
250  }
251 
252  if (loCell != null)
253  {
254  DataRowView loDataRowViewAsientos = (DataRowView)loCell.OwningRow.DataBoundItem;
255  int lnAsiento = Convert.ToInt32(loDataRowViewAsientos.Row[lcCampoAsiento]);
256 
257  _oProceso._NavegarAsiento(lnAsiento);
258  }
259  }
260 
266  private void EwbuttonRutaExportacion_Click(object sender, EventArgs e)
267  {
268  System.Diagnostics.Process.Start(_oProceso._RutaExportacion);
269  }
270 
276  private void EwcheckboxEnviar_CheckedChanged(object sender, EventArgs e)
277  {
278  bool lOk = _oProceso._ValidExport();
279 
280  if (!lOk)
281  {
282  CancelarSuscripcionEventos();
283  ewcheckboxEnviar.Checked = false;
284  SuscripcionEventos();
285  }
286  }
287 
288 
293  private bool RefreshListados()
294  {
295  foreach (ListadoDiarioPortalCli loListadoDiarioPortalCli in _oProceso._Listados)
296  {
297  switch (loListadoDiarioPortalCli._Pantalla)
298  {
299  case "DIARIO":
300  AsignarListadoGrid(gridViewListAsientos, loListadoDiarioPortalCli);
301  break;
302 
303  case "IVAREPERCUTIDO":
304  AsignarListadoGrid(gridViewListFacturasEmitidas, loListadoDiarioPortalCli);
305  break;
306 
307  case "IVASOPORTADO":
308  AsignarListadoGrid(gridViewListFacturasRecibidas, loListadoDiarioPortalCli);
309  break;
310 
311  default:
312  break;
313  }
314  }
315 
316  return true;
317  }
318 
321  // </summary>
324  private void AsignarListadoGrid(gridViewList togridViewList, ListadoDiarioPortalCli toListadoDiarioPortalCli)
325  {
326  togridViewList._Listado = toListadoDiarioPortalCli._Listado;
327  togridViewList._RefreshData();
328 
329  togridViewList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; // Para que permita modificar el ancho de las columnas
330 
331  // Gestionamos la visibilidad de algunas columnas
332  foreach (DataGridViewColumn loCol in togridViewList.Columns)
333  {
334  if (loCol.Width <= 10 && loCol.Visible)
335  loCol.Visible = false;
336  }
337 
338  if (togridViewList.Columns.Contains("_ids50"))
339  togridViewList.Columns["_ids50"].Visible = false;
340 
341  if (togridViewList.Columns.Contains("bold"))
342  togridViewList.Columns["bold"].Visible = false;
343 
344  togridViewList.Refresh();
345  }
346  #endregion Métodos privados
347 
348  #region Métodos protected override
349  protected override void OnHandleCreated(EventArgs e)
354  {
355  base.OnHandleCreated(e);
356 
357  if (PORTALCLI._CfgPortalCli._Kabiku._Entorno() != eEntornos.Production)
358  ewlabelEntorno.Visible = true;
359  }
360  #endregion Métodos protected override
361  }
362 }
bool _Export(bool tlEnviar)
Validaciones y generación del fichero de EXCEL de exportación
Este es el espacio de nombres de su módulo. Puede encontrar más información y ayuda en el fichero rea...
Formulario de resultados de la exportación a Sage Despachos
sage.ew.listados.Clases.IListados _Listado
Objeto de tipo IListados, el DataTable resultado del mismo será al que se adaptará la grid...
string _Pantalla
Nombre de la pantalla del listado: DIARIO, IVAREPERCUTIDO o IVASOPORTADO
eEntornos
Entornos de trabajo
Definition: General.cs:135
Clase para gestionar los listados a presentar el el proceso de exportación al Portal de Sage Despacho...
void _RefreshData(Boolean tlRefrescarBotones=true)
Refresh data
Clase de grid de listados, esta es la grid que se mostrará en el formulario de resultados de un lista...
Controls de usuario para la exportación de listados
bool _ValidExport(bool tlMensaje=true)
El check ‘Enviar fichero de exportación al Portal del cliente con Sage Despachos’ vendrá marcado po...
Listado/proceso Exportación al Portal del cliente con Sage Despachos