2 using System.Collections.Generic;
3 using System.ComponentModel;
22 using System.Windows.Documents;
24 using DocumentFormat.OpenXml.Spreadsheet;
35 #region PROPIEDADES PRIVADAS 40 private bool EsAsesorContable = (EW_GLOBAL._SaborSage50c == EW_GLOBAL.SaboresSage50c.AsesorContable);
45 private bool TrabajaConDepositos = Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_depositos"));
48 #endregion PROPIEDADES PRIVADAS 50 #region PROPIEDADES PUBLICAS 59 if (_oPlantillaVenta == null)
63 return _oPlantillaVenta;
67 _oPlantillaVenta = value;
76 public List<clsPlanificacionPlantillaVenta> planificadas =
new List<clsPlanificacionPlantillaVenta>();
81 public List<clsPlanificacionPlantillaVenta> realizadas =
new List<clsPlanificacionPlantillaVenta>();
83 private DateTime loFechaIni = Convert.ToDateTime(EW_GLOBAL._GetVariable(
"wd_periodoini"));
84 private DateTime loFechaFin = Convert.ToDateTime(EW_GLOBAL._GetVariable(
"wd_periodofin"));
89 private string _CellOldVal =
"";
91 #endregion PROPIEDADES PUBLICAS 100 InitializeComponent();
102 CancelarSubscripcionEventosMantegrid();
103 SubscripcionEventosMantegrid();
106 #endregion CONSTRUCTOR 108 #region MÉTODOS PRIVADOS 113 private void ConfigurarGrid()
115 CancelarSubscripcionEventosMantegrid();
117 mantePlanificacion._Grid.Columns.Clear();
118 mantePlanificacion._Grid.AutoGenerateColumns =
false;
119 mantePlanificacion._Grid.AllowUserToResizeRows =
false;
120 mantePlanificacion._Grid.AllowUserToOrderColumns =
false;
122 mantePlanificacion._Grid.Refresh();
124 foreach (DataGridViewColumn ldgvCol
in mantePlanificacion._Grid.Columns)
125 ldgvCol.Visible =
false;
127 #region DefinicionColumnasGrid 131 ldgtbColSel.Name =
"sel";
132 ldgtbColSel.HeaderText =
" ";
134 ldgtbColSel._SelectionColumn =
true;
135 ldgtbColSel.ValueType = typeof(
bool);
136 ldgtbColSel.Width = 40;
137 ldgtbColSel.ReadOnly =
false;
138 ldgtbColSel.Visible =
true;
139 ldgtbColSel.Tag =
"unchecked";
140 ldgtbColSel.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
141 ldgtbColSel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
142 ldgtbColSel.SortMode = DataGridViewColumnSortMode.NotSortable;
143 mantePlanificacion._Grid.Columns.Add(ldgtbColSel);
149 ldgtbColEstado.Name =
"TipoEstado";
150 ldgtbColEstado.DataPropertyName =
"_TipoEstadoDescrip";
151 ldgtbColEstado.HeaderText =
"Estado";
152 ldgtbColEstado.ValueType = typeof(
string);
153 ldgtbColEstado.Width = 210;
154 ldgtbColEstado.Visible =
true;
155 ldgtbColEstado._NoParar =
false;
156 ldgtbColEstado.ReadOnly =
true;
157 ldgtbColEstado.Resizable = DataGridViewTriState.True;
158 ldgtbColEstado.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
160 mantePlanificacion._Grid.Columns.Add(ldgtbColEstado);
166 ldgtbColFechaPlanificada.Name =
"FechaPlanificada";
167 ldgtbColFechaPlanificada.DataPropertyName =
"_Fecha";
168 ldgtbColFechaPlanificada.HeaderText =
"Fec. planificada";
170 ldgtbColFechaPlanificada.ValueType = typeof(DateTime?);
171 ldgtbColFechaPlanificada.Width = 150;
172 ldgtbColFechaPlanificada.Visible =
true;
173 ldgtbColFechaPlanificada._NoParar =
false;
174 ldgtbColFechaPlanificada.ReadOnly =
true;
176 ldgtbColFechaPlanificada.CellTemplate.Style.Format =
"dd/MM/yyyy";
178 mantePlanificacion._Grid.Columns.Add(ldgtbColFechaPlanificada);
184 ldgtbColFechaDocumento.Name =
"FechaDocumento";
185 ldgtbColFechaDocumento.DataPropertyName =
"_Fecha_doc";
186 ldgtbColFechaDocumento.HeaderText =
"Fec. documento";
188 ldgtbColFechaDocumento.ValueType = typeof(
string);
189 ldgtbColFechaDocumento.Width = 150;
190 ldgtbColFechaDocumento.Visible =
true;
191 ldgtbColFechaDocumento._NoParar =
false;
192 ldgtbColFechaDocumento.ReadOnly =
true;
194 mantePlanificacion._Grid.Columns.Add(ldgtbColFechaDocumento);
200 ldgtbColTipoDocumento.Name =
"TipoDocumento";
201 ldgtbColTipoDocumento.DataPropertyName =
"_TipoDocumentoDescrip";
202 ldgtbColTipoDocumento.HeaderText =
"Tipo documento";
203 ldgtbColTipoDocumento.ValueType = typeof(
string);
204 ldgtbColTipoDocumento.Width = 210;
205 ldgtbColTipoDocumento.Visible =
true;
206 ldgtbColTipoDocumento._NoParar =
false;
207 ldgtbColTipoDocumento.ReadOnly =
true;
208 ldgtbColTipoDocumento.Resizable = DataGridViewTriState.True;
209 ldgtbColTipoDocumento.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
211 mantePlanificacion._Grid.Columns.Add(ldgtbColTipoDocumento);
217 ldgtbColVerDocumentosImagen.Name =
"VerDocumentosImagen";
218 ldgtbColVerDocumentosImagen.DataPropertyName =
"_VerDocumentosImagen";
219 ldgtbColVerDocumentosImagen.HeaderText =
"Ver documentos";
220 ldgtbColVerDocumentosImagen.ValueType = typeof(ew.objetos.ewbutton);
221 ldgtbColVerDocumentosImagen.Width = 210;
222 ldgtbColVerDocumentosImagen.Visible =
true;
223 ldgtbColVerDocumentosImagen._NoParar =
false;
224 ldgtbColVerDocumentosImagen.ReadOnly =
false;
225 ldgtbColVerDocumentosImagen.DefaultCellStyle.NullValue = null;
226 ldgtbColVerDocumentosImagen.Resizable = DataGridViewTriState.True;
227 ldgtbColVerDocumentosImagen.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
229 mantePlanificacion._Grid.Columns.Add(ldgtbColVerDocumentosImagen);
235 ldgtbColVerAvisosImagen.Name =
"VerAvisosImagen";
236 ldgtbColVerAvisosImagen.DataPropertyName =
"_VerAvisosImagen";
237 ldgtbColVerAvisosImagen.HeaderText =
"Ver avisos/incidencias";
238 ldgtbColVerAvisosImagen.ValueType = typeof(ew.objetos.ewbutton);
239 ldgtbColVerAvisosImagen.Width = 210;
240 ldgtbColVerAvisosImagen.Visible =
true;
241 ldgtbColVerAvisosImagen._NoParar =
false;
242 ldgtbColVerAvisosImagen.ReadOnly =
false;
243 ldgtbColVerAvisosImagen.DefaultCellStyle.NullValue = null;
244 ldgtbColVerAvisosImagen.Resizable = DataGridViewTriState.True;
245 ldgtbColVerAvisosImagen.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
247 mantePlanificacion._Grid.Columns.Add(ldgtbColVerAvisosImagen);
252 ldgtbColVerDocumentos.Name =
"VerDocumentos";
253 ldgtbColVerDocumentos.HeaderText =
"HeaderText";
254 ldgtbColVerDocumentos.DataPropertyName =
"_VerDocumentos";
255 ldgtbColVerDocumentos.ValueType = typeof(
bool);
256 ldgtbColVerDocumentos.Visible =
false;
257 ldgtbColVerDocumentos.Width = 1;
259 mantePlanificacion._Grid.Columns.Add(ldgtbColVerDocumentos);
264 ldgtbColVerAvisos.Name =
"VerAvisos";
265 ldgtbColVerAvisos.HeaderText =
"HeaderText";
266 ldgtbColVerAvisos.DataPropertyName =
"_VerAvisos";
267 ldgtbColVerAvisos.ValueType = typeof(
bool);
268 ldgtbColVerAvisos.Visible =
false;
269 ldgtbColVerAvisos.Width = 1;
271 mantePlanificacion._Grid.Columns.Add(ldgtbColVerAvisos);
277 ldgtbColLinea.Name =
"Linea";
278 ldgtbColLinea.DataPropertyName =
"_Linea";
279 ldgtbColLinea.HeaderText =
"Linea";
280 ldgtbColLinea.ValueType = typeof(
int);
281 ldgtbColLinea.Width = 1;
282 ldgtbColLinea.Visible =
false;
284 mantePlanificacion._Grid.Columns.Add(ldgtbColLinea);
287 #endregion DefinicionColumnasGrid 289 SubscripcionEventosMantegrid();
292 private void _RevisarDatos()
294 mantePlanificacion._Grid.Columns[
"VerDocumentos"].Visible =
false;
295 mantePlanificacion._Grid.Columns[
"VerAvisos"].Visible =
false;
297 foreach (DataGridViewRow ldRow
in mantePlanificacion._Grid.Rows)
300 if (Convert.ToBoolean(ldRow.Cells[
"VerDocumentos"].Value))
302 ldRow.Cells[
"VerDocumentosImagen"].Value = ew.images.Properties.Resources.icon_eye16;
306 ldRow.Cells[
"VerDocumentosImagen"].Value = null;
309 if (Convert.ToBoolean(ldRow.Cells[
"VerAvisos"].Value))
311 ldRow.Cells[
"VerAvisosImagen"].Value = ew.images.Properties.Resources.icon_eye16;
315 ldRow.Cells[
"VerAvisosImagen"].Value = null;
319 mantePlanificacion._Grid.Columns[
"VerDocumentos"].Visible =
false;
320 mantePlanificacion._Grid.Columns[
"VerAvisos"].Visible =
false;
324 private void SubscripcionEventosMantegrid()
327 mantePlanificacion._Row_New_Before += MantePlanificacion__Row_New_Before;
329 mantePlanificacion._Row_Delete_Before += MantePlanificacion__Row_Delete_Before;
337 mantePlanificacion._Grid.CellBeginEdit +=
new DataGridViewCellCancelEventHandler(mantePlanificacionPlantillaVenta__CellBeginEdit);
338 mantePlanificacion._Grid.CellEndEdit +=
new DataGridViewCellEventHandler(mantePlanificacionPlantillaVenta__CellEndEdit);
339 mantePlanificacion._Grid.ColumnHeaderMouseClick += mantePlanificacionPlantillaVenta_ColumnHeaderMouseClick;
343 private void CancelarSubscripcionEventosMantegrid()
354 mantePlanificacion._Grid.CellBeginEdit -=
new DataGridViewCellCancelEventHandler(mantePlanificacionPlantillaVenta__CellBeginEdit);
355 mantePlanificacion._Grid.CellEndEdit -=
new DataGridViewCellEventHandler(mantePlanificacionPlantillaVenta__CellEndEdit);
356 mantePlanificacion._Grid.ColumnHeaderMouseClick -= mantePlanificacionPlantillaVenta_ColumnHeaderMouseClick;
364 private void mantePlanificacionPlantillaVenta__ColChange(DataGridViewCell tdgvCurrentCel)
368 if (mantePlanificacion._Grid.Columns[mantePlanificacion._Grid.CurrentCell.ColumnIndex].Name ==
"FechaPlanificada")
370 if (Convert.ToString(mantePlanificacion._Grid.Rows[mantePlanificacion._Grid.CurrentCell.RowIndex].Cells[
"TipoEstado"].Value) == (TipoEstadoPlantilla.Planificada).__GetDescription())
372 if (!ewbtnDocumentos.Enabled)
373 mantePlanificacion._Grid.CurrentCell.ReadOnly =
false;
385 private void mantePlanificacionPlantillaVenta__CellBeginEdit(
object sender, DataGridViewCellCancelEventArgs e)
387 if (mantePlanificacion._Grid.Columns[mantePlanificacion._Grid.CurrentCell.ColumnIndex].Name ==
"FechaPlanificada")
389 _CellOldVal = Convert.ToString(mantePlanificacion._Grid.Rows[mantePlanificacion._Grid.CurrentCell.RowIndex].Cells[
"FechaPlanificada"].Value);
400 private void mantePlanificacionPlantillaVenta__CellEndEdit(
object sender, DataGridViewCellEventArgs e)
402 if (mantePlanificacion._Grid.Columns[mantePlanificacion._Grid.CurrentCell.ColumnIndex].Name ==
"FechaPlanificada")
404 if (Convert.ToDateTime(mantePlanificacion._Grid.Rows[mantePlanificacion._Grid.CurrentCell.RowIndex].Cells[
"FechaPlanificada"].Value) < loFechaIni ||
405 Convert.ToDateTime(mantePlanificacion._Grid.Rows[mantePlanificacion._Grid.CurrentCell.RowIndex].Cells[
"FechaPlanificada"].Value) > loFechaFin)
407 mantePlanificacion._Grid.Rows[mantePlanificacion._Grid.CurrentCell.RowIndex].Cells[
"FechaPlanificada"].Value = _CellOldVal;
409 FUNCTIONS._MessageBox(
"Las planificaciones han de estar dentro del ejercicio.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.None);
419 private void mantePlanificacionPlantillaVenta__DataSource_Row_New_Event(
int tnInsertLinea)
421 if (_oPlantillaVenta.
_Clientes.Count() == 0)
423 FUNCTIONS._MessageBox(
"No existen clientes dados de alta en la plantilla. Imposible crear planificaciones.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.None);
428 AddRegistro(DateTime.Now.Date);
429 mantePlanificacion._Grid.DataSource = _oPlantillaVenta.
_Planificacion;
430 mantePlanificacion._Grid.Refresh();
439 private void mantePlanificacionPlantillaVenta__DataSource_Row_Delete_Event(DataGridViewRow trRowDelete)
441 if (trRowDelete != null && trRowDelete.DataBoundItem != null)
443 bool lbReturn =
true;
445 DialogResult lodialog;
447 planificadas.Clear();
450 int seleccionadas = ObtenerLineasSeleccionadas();
453 if (seleccionadas == planificadas.Count)
455 lodialog = FUNCTIONS._MessageBox(
"¿Desea borrar todas las planificaciones seleccionadas?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, DialogResult.No);
457 if (lodialog == DialogResult.No)
462 Dictionary<eBotonesMessagebox, string> loDic =
new Dictionary<eBotonesMessagebox, string>();
467 string lcMsg =
"Ha seleccionado registros de planificaciones, con estado: Realizada, existen registros históricos de documentos generados. " + Environment.NewLine +
"¿Qué desea eliminar?";
470 DialogResult loResp = loForm.
_MessageBox(lcMsg,
"Marcar imágenes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, loDic);
474 case DialogResult.Cancel:
477 case DialogResult.Yes:
504 mantePlanificacion._Grid.DataSource = _oPlantillaVenta.
_Planificacion;
505 mantePlanificacion._Grid.Refresh();
516 private void mantePlanificacionPlantillaVenta__RowChange(DataGridViewRow tdgvCurrentRow)
518 if (tdgvCurrentRow == null)
529 private void mantePlanificacionPlantillaVenta__CellContentClick(
object sender, DataGridViewCellEventArgs e)
532 if (e.RowIndex == -1 || mantePlanificacion._Grid.Rows[e.RowIndex] == null)
541 private void mantePlanificacionPlantillaVenta__CellClick(DataGridViewCell tdgvCurrentCel)
543 if (mantePlanificacion._Grid.Columns[
"VerDocumentosImagen"].Index == mantePlanificacion._Grid.CurrentCell.ColumnIndex ||
544 mantePlanificacion._Grid.Columns[
"VerAvisosImagen"].Index == mantePlanificacion._Grid.CurrentCell.ColumnIndex)
546 int lnCurrentRow = mantePlanificacion._Grid.CurrentCell.RowIndex;
547 int nCelda = mantePlanificacion._Grid.Columns[
"Linea"].Index;
548 int nCeldaFecha = mantePlanificacion._Grid.Columns[
"FechaPlanificada"].Index;
549 int nDocumento = mantePlanificacion._Grid.Columns[
"VerDocumentosImagen"].Index;
550 int nAviso = mantePlanificacion._Grid.Columns[
"VerAvisosImagen"].Index;
552 Int32 valor = Convert.ToInt32(mantePlanificacion._Grid.Rows[lnCurrentRow].Cells[nCelda].Value.ToString().Trim());
553 DateTime? valorFecha = mantePlanificacion._Grid.Rows[lnCurrentRow].Cells[nCeldaFecha].Value == null ? (DateTime?)null : Convert.ToDateTime(mantePlanificacion._Grid.Rows[lnCurrentRow].Cells[nCeldaFecha].Value.ToString().Trim());
554 string valorDocumento = mantePlanificacion._Grid.Rows[lnCurrentRow].Cells[nDocumento].Value == null ? null : Convert.ToString(mantePlanificacion._Grid.Rows[lnCurrentRow].Cells[nDocumento].Value.ToString().Trim());
555 string valorAviso = mantePlanificacion._Grid.Rows[lnCurrentRow].Cells[nAviso].Value == null ? null : Convert.ToString(mantePlanificacion._Grid.Rows[lnCurrentRow].Cells[nAviso].Value.ToString().Trim());
558 bool lbDoc = mantePlanificacion._Grid.Columns[
"VerDocumentosImagen"].Index == mantePlanificacion._Grid.CurrentCell.ColumnIndex ? true :
false;
561 string cImagen = lbDoc ? valorDocumento : valorAviso;
562 bool lbValor =
string.IsNullOrEmpty(cImagen) ? false :
true;
566 DataTable ldtSeleccionar =
new DataTable();
569 if (ldtSeleccionar != null && ldtSeleccionar.Rows.Count > 0)
573 ldtSeleccionar.Rows.Cast<DataRow>().Where(r => r.Field<
string>(
"aviso") ==
string.Empty || r[
"aviso"] == DBNull.Value).ToList().ForEach(r => r.Delete());
574 ldtSeleccionar.AcceptChanges();
578 frmDoc._ShowDialog();
585 FUNCTIONS._MessageBox(
"No existen " + (valorAviso == null ?
"documentos" :
"avisos/incidencias") +
" a mostrar.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.None);
590 if (mantePlanificacion._Grid.Columns[
"sel"].Index == mantePlanificacion._Grid.CurrentCell.ColumnIndex)
592 if (mantePlanificacion._Grid.Rows.Count > 0 && ewbtnDocumentos.Enabled)
594 ewbtnDocumentos.Focus();
596 if (Convert.ToString(mantePlanificacion._Grid.Rows[mantePlanificacion._Grid.CurrentCell.RowIndex].Cells[
"TipoEstado"].Value) != (TipoEstadoPlantilla.Planificada).__GetDescription())
598 mantePlanificacion._Grid.Rows[mantePlanificacion._Grid.CurrentCell.RowIndex].Cells[
"sel"].Value =
false;
602 mantePlanificacion._Grid.Rows[mantePlanificacion._Grid.CurrentCell.RowIndex].Cells[
"sel"].Value = !Convert.ToBoolean(tdgvCurrentCel.Value);
607 if (mantePlanificacion._Grid.Columns[
"FechaPlanificada"].Index == mantePlanificacion._Grid.CurrentCell.ColumnIndex &&
610 mantePlanificacion._Grid.CurrentCell.ReadOnly =
true;
621 private void mantePlanificacionPlantillaVenta_ColumnHeaderMouseClick(
object sender, DataGridViewCellMouseEventArgs e)
623 logrid__Event_ToggleSeleccionCheck(
false);
627 private void logrid__Event_ToggleSeleccionCheck(
bool tlEstado)
629 if (mantePlanificacion._Grid.Rows.Count > 0 && ewbtnDocumentos.Enabled)
631 ewbtnDocumentos.Focus();
633 for (
int lnIndexFila = 0; lnIndexFila < mantePlanificacion._Grid.Rows.Count; lnIndexFila++)
635 if (Convert.ToString(mantePlanificacion._Grid.Rows[lnIndexFila].Cells[
"TipoEstado"].Value) != (TipoEstadoPlantilla.Planificada).__GetDescription())
637 mantePlanificacion._Grid.Rows[lnIndexFila].Cells[
"Sel"].Value =
false;
640 mantePlanificacion._Grid.Refresh();
650 private void MantePlanificacion__Row_Delete_Before(DataGridViewRow tdgvRowDelete, ref
bool tlOk)
653 tlOk = ComprobarEstado(
false);
662 private void MantePlanificacion__Row_New_Before(ref
bool tlOk,
bool tlInsert =
false)
665 tlOk = ComprobarEstado(
true);
668 private bool ComprobarEstado(
bool lbInsert)
672 switch (_PlantillaVenta._Estado)
682 string lcTexto = lbInsert ?
"añadir" :
"borrar";
683 FUNCTIONS._MessageBox(
"Para poder " + lcTexto +
" un registro debe de editar el mantenimiento de plantillas.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.None);
701 private void ewbuttonPlanificaciones_Click(
object sender, EventArgs e)
703 if (_oPlantillaVenta.
_Clientes.Count() == 0)
705 FUNCTIONS._MessageBox(
"No existen clientes dados de alta en la plantilla. Imposible crear planificaciones.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.None);
710 List<DateTime> lstFechas =
new List<DateTime>();
712 loForm._ShowDialog();
713 if (loForm.DialogResult == DialogResult.OK)
715 if (loForm._lstFechas.Count > 0)
717 foreach (DateTime lst
in loForm._lstFechas)
719 AddRegistro(lst.Date);
721 mantePlanificacion._Grid.DataSource = _oPlantillaVenta.
_Planificacion;
722 mantePlanificacion._Grid.Refresh();
733 private void ewbuttonDocumentos_Click(
object sender, EventArgs e)
735 DataTable dtDatos = GetPlanificacionesGenerarDocumentos();
737 if (dtDatos != null && dtDatos.Rows.Count > 0)
740 string lcFiltros =
"", lcOpciones =
"";
742 List<Tuple<string, object>> loValues =
new List<Tuple<string, object>>();
746 loFrmPlanificacionesPendientes._CheckedRows = dtDatos.AsEnumerable().ToList();
748 if (loFrmPlanificacionesPendientes._CheckedRows.Any())
750 loValues.Add(GetFiltro(
"Fecha", loFrmPlanificacionesPendientes._CheckedRows.Select(f => Convert.ToDateTime(f[
"FECHA"]).ToShortDateString()).Distinct().ToList()));
751 loValues.Add(GetFiltro(
"PlantillasDocumentos", loFrmPlanificacionesPendientes._CheckedRows.Select(f => Convert.ToString(f[
"PLANTILLA"])).Distinct().ToList()));
753 lcFiltros = FUNCTIONS._SerializeDictionary2XML(loValues.Select(f =>
new { f.Item1, f.Item2 }).ToDictionary(f => f.Item1, f => f.Item2));
755 var registroTipoDocumento = _oPlantillaVenta.
_Planificacion.Where(item => !
string.IsNullOrEmpty(item._TipoDocumentoDescrip))
756 .OrderByDescending(item => item._Linea)
760 if (registroTipoDocumento != null)
762 valorTipo = registroTipoDocumento._Tipo_doc - 1;
764 if (EsAsesorContable)
770 if (registroTipoDocumento._Tipo_doc == 5)
774 if (!TrabajaConDepositos)
776 if (registroTipoDocumento._Tipo_doc >= 4)
781 lcOpciones = FUNCTIONS._SerializeDictionary2XML(
new Dictionary<string, object> { {
"nPresupuestosPedid", valorTipo } });
784 loFormListado =
new FormListado(
"GENDOCPLA", lcFiltros, lcOpciones);
792 DialogResult lodialog = FUNCTIONS._MessageBox(
" Para poder generar documentos de planificaciones, seleccione una o varias planificaciones pendientes.",
"Plantilla documentos", MessageBoxButtons.OK, MessageBoxIcon.Stop);
800 private int ObtenerLineasSeleccionadas()
802 int lineaseleccionada = mantePlanificacion._Grid.CurrentCell.RowIndex;
804 int nColSeleccionadas = 0;
805 int indexColSel = mantePlanificacion._Grid.Columns[
"Sel"].Index;
806 int indexColEstado = mantePlanificacion._Grid.Columns[
"TipoEstado"].Index;
807 int indexColDocumento = mantePlanificacion._Grid.Columns[
"VerDocumentos"].Index;
809 foreach (DataGridViewRow row
in mantePlanificacion._Grid.Rows)
811 if (mantePlanificacion._Grid[indexColSel, row.Index].Value == DBNull.Value || mantePlanificacion._Grid[indexColSel, row.Index].Value == null)
814 bool seleccionada = Convert.ToBoolean(mantePlanificacion._Grid[indexColSel, row.Index].Value);
818 ObtenerLineas(indexColEstado, indexColDocumento, row.Index);
822 if (nColSeleccionadas == 0)
825 ObtenerLineas(indexColEstado, indexColDocumento, lineaseleccionada);
828 return nColSeleccionadas;
831 private void ObtenerLineas(
int indexColEstado,
int indexColDocumento,
int lineaseleccionada)
833 string cColEstado = Convert.ToString(mantePlanificacion._Grid[indexColEstado, lineaseleccionada].Value);
834 bool lbColDocumento = Convert.ToBoolean(mantePlanificacion._Grid[indexColDocumento, lineaseleccionada].Value);
844 case "Realizada con incidencias":
858 case "Realizada con avisos":
869 private DataTable GetPlanificacionesGenerarDocumentos()
871 DataTable dt =
new DataTable();
872 dt.Columns.Add(
"CHECK", typeof(
bool)).DefaultValue =
true;
873 dt.Columns.Add(
"PLANTILLA", typeof(
string)).DefaultValue =
string.Empty;
874 dt.Columns.Add(
"FECHA", typeof(DateTime)).DefaultValue = DateTime.Now.Date;
875 dt.Columns.Add(
"ESTADO", typeof(
string)).DefaultValue =
"Planificada";
876 dt.Columns.Add(
"NOMBRE", typeof(
string)).DefaultValue =
string.Empty;
878 int nColSeleccionadas = 0;
879 int indexColSel = mantePlanificacion._Grid.Columns[
"Sel"].Index;
880 int indexColEstado = mantePlanificacion._Grid.Columns[
"TipoEstado"].Index;
881 int indexColFecha = mantePlanificacion._Grid.Columns[
"FechaPlanificada"].Index;
883 foreach (DataGridViewRow row
in mantePlanificacion._Grid.Rows)
885 if (mantePlanificacion._Grid[indexColSel, row.Index].Value == DBNull.Value || mantePlanificacion._Grid[indexColSel, row.Index].Value == null)
888 bool seleccionada = Convert.ToBoolean(mantePlanificacion._Grid[indexColSel, row.Index].Value);
893 DataTable aux =
new DataTable();
894 AddPlanificada(indexColEstado, indexColFecha, row.Index, out aux);
896 if (aux != null && aux.Rows.Count > 0)
898 foreach (DataRow dr
in aux.Rows)
900 DataRow ldrNewRow = dt.NewRow();
901 ldrNewRow[
"CHECK"] = dr[
"CHECK"];
902 ldrNewRow[
"PLANTILLA"] = dr[
"PLANTILLA"];
903 ldrNewRow[
"FECHA"] = dr[
"FECHA"];
904 ldrNewRow[
"ESTADO"] = dr[
"ESTADO"];
905 ldrNewRow[
"NOMBRE"] = dr[
"NOMBRE"];
906 dt.Rows.Add(ldrNewRow);
912 if (dt == null || dt.Rows.Count == 0)
914 int seleccionada = mantePlanificacion._Grid.CurrentCell.RowIndex;
918 AddPlanificada(indexColEstado, indexColFecha, seleccionada, out dt);
930 private void AddPlanificada(
int indexColEstado,
int indexColFecha,
int seleccionada, out DataTable dt)
932 dt =
new DataTable();
934 dt.Columns.Add(
"CHECK", typeof(
bool)).DefaultValue =
true;
935 dt.Columns.Add(
"PLANTILLA", typeof(
string)).DefaultValue =
string.Empty;
936 dt.Columns.Add(
"FECHA", typeof(DateTime)).DefaultValue = DateTime.Now.Date;
937 dt.Columns.Add(
"ESTADO", typeof(
string)).DefaultValue =
"Planificada";
938 dt.Columns.Add(
"NOMBRE", typeof(
string)).DefaultValue =
string.Empty;
940 string cColEstado = Convert.ToString(mantePlanificacion._Grid[indexColEstado, seleccionada].Value);
941 DateTime dColFecha = Convert.ToDateTime(mantePlanificacion._Grid[indexColFecha, seleccionada].Value);
947 DataRow ldrNewRow = dt.NewRow();
948 ldrNewRow[
"CHECK"] =
true;
949 ldrNewRow[
"PLANTILLA"] = _PlantillaVenta._Codigo;
950 ldrNewRow[
"FECHA"] = dColFecha;
951 ldrNewRow[
"ESTADO"] =
"Planificada";
952 ldrNewRow[
"NOMBRE"] = _PlantillaVenta._Nombre;
953 dt.Rows.Add(ldrNewRow);
965 private Tuple<string, object> GetFiltro(
string tcKey, List<string> toData)
967 return (toData.Count > 1) ?
new Tuple<string, object>($
"{tcKey}Lista", toData) :
new Tuple<string, object>($
"{tcKey}Unico", toData.First());
974 private void AddRegistro(DateTime fecha)
976 int lnNext = numLineaMante();
988 private int numLineaMante()
991 if (mantePlanificacion._Grid.Rows.Count > 0)
993 lnNext = mantePlanificacion._Grid.Rows.Cast<DataGridViewRow>().Max(x => Convert.ToInt32(x.Cells[
"linea"].Value)) + 1;
1003 private void RefrescarMantegrid(BindingList<clsPlanificacionPlantillaVenta> Planificacion)
1005 mantePlanificacion._Grid.DataSource = Planificacion;
1006 mantePlanificacion._Grid.Refresh();
1011 private void ewbtnEliminarDoc_Click(
object sender, EventArgs e)
1013 DialogResult lodialog;
1015 planificadas.Clear();
1018 int seleccionadas = ObtenerLineasSeleccionadas();
1019 if (seleccionadas == 0)
1021 lodialog = FUNCTIONS._MessageBox(
"No existen planificaciones seleccionadas para eliminar documentos generados",
"Plantilla documentos", MessageBoxButtons.OK, MessageBoxIcon.Stop);
1025 if (DialogResult.Yes == FUNCTIONS._MessageBox(
"¿Desea eliminar los documentos y avisos realizados con las planificaciones seleccionadas?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1,
System.Windows.Forms.DialogResult.No))
1028 if (seleccionadas != planificadas.Count)
1050 mantePlanificacion._Grid.DataSource = _oPlantillaVenta.
_Planificacion;
1051 mantePlanificacion._Grid.Refresh();
1055 #endregion MÉTODOS PRIVADOS 1057 #region MÉTODOS PUBLICOS 1074 bool bloquearControles =
false;
1077 switch (_PlantillaVenta._Estado)
1081 bloquearControles =
false;
1086 bloquearControles =
true;
1090 bloquearControles =
false;
1094 ewbtnPlanificaciones.Enabled = !bloquearControles;
1097 ewbtnEliminarDoc.Enabled = !bloquearControles;
1106 if (mantePlanificacion._Grid.DataSource == null)
1108 mantePlanificacion._Grid.DataSource = Planificacion;
1109 mantePlanificacion._Grid.Refresh();
1119 public void _Limpiar(BindingList<clsPlanificacionPlantillaVenta> Planificacion)
1121 mantePlanificacion._Grid.DataSource = Planificacion;
1122 mantePlanificacion._Grid.Refresh();
1139 _oPlantillaVenta.
_Planificacion =
new BindingList<clsPlanificacionPlantillaVenta>();
1142 mantePlanificacion._Grid.DataSource = _oPlantillaVenta.
_Planificacion;
1143 mantePlanificacion._Grid.Refresh();
1148 #endregion MÉTODOS PUBLICOS
delegate void _DataSource_Row_Delete_Event_Handler(DataGridViewRow trRowDelete)
Se dispara al borrar un registro cuando el DataSource no es un DataTable
int _Tipo_doc_Old
Tipo documento para guardar valor al eliminar documento y avisos generados
Clase de negocio base para mantenimientos
delegate void _RowChange_Handler(DataGridViewRow tdgvCurrentRow)
Se dispara cuando se cambia la fila seleccionada en el grid
Formulario para generar registros de planificaciones PE-104347
void _Limpiar(BindingList< clsPlanificacionPlantillaVenta > Planificacion)
void Valores(int nLinea, string cPlantilla, DateTime fechaplanificacion)
delegate void _DataSource_Row_New_Event_Handler(int tnInsertLinea)
Se dispara al añadir un nuevo registro cuando el DataSource no es un DataTable
void _BloquearControles(bool tbEnabled)
Método para bloquear o desbloquear los controles según el BloquearControles del formulario ...
bool _DeletePLANTHDOC
Borrar registros de tabla planthdoc
override string _Codigo
Codigo
object _VerDocumentosImagen
_VerDocumentos
object _VerAvisosImagen
_VerAviso
BindingList< clsPlanificacionPlantillaVenta > _Planificacion
Propiedad con las lineas de la plantilla de planificaciones
Clase para las plantillas de documentos
Base per a les columnes imagen estandar
delegate void _CellClick_Handler(DataGridViewCell tdgvCurrentCel)
Se produce cuando se hace clic en cualquier parte de una celda.
void _BloquearControles()
BindingList< clsPlanificacionPlantillaVenta > _PlanificacionBorradas
Propiedad con las lineas de la plantilla de planificaciones borradas
void _Binding()
Método para bindear la configuración de lectura de los ficheros CSV
Base per a les columnes estandar
DateTime _Fecha_doc
Fecha generación documento
Clase para el detalle de la planificación de plantillas de venta (tabla D_PLANTPLA) ...
Presenta las planifiaciones de generación de doumentos
DataTable LoadRegistro(string cCodigoPlantilla, int linea, DateTime? fecha, bool lbDoc)
delegate void _ColChange_Handler(DataGridViewCell tdgvCurrentCel)
Se dispara cuando se cambia la celda seleccionada en el grid
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.
PlanificacionPlantillaVenta()
Constructor por defecto
void AsignarMantegrid(BindingList< clsPlanificacionPlantillaVenta > Planificacion)
List< string > _GuidPlantilla
Propiedad donde guardamos los guid de los documentos que queremos eliminar de las planificaciones gen...
Presenta los doumentos generados de la planificación
ClientesPlantilla _Clientes
Propiedad con los clientes de la plantilla del documento
Creación de user control para unificar el grid de planificación/historicos
Presenta un datagridview con botones añadir y borrar tipo Mantegrid de Eurowin
int _Tipo_doc
Tipo documento
Base per a les columnes estandar
void _LoadPlanificacion()
Cargar los datos de planificación/historico