ExtensionProduccionPartes.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data;
6 using System.Reflection;
7 using System.ComponentModel;
8 using System.ComponentModel.DataAnnotations;
9 
10 using sage.ew.ewbase;
11 using sage.ew.formul.Forms;
12 using sage.ew.interficies;
13 using sage.ew.db;
14 using sage.ew.ewbase.Attributes;
15 using sage.ew.formul;
16 using sage.ew.botones;
17 using sage.ew.global;
18 
22 using System.Windows.Forms;
23 
24 namespace Sage.ES.S50.Fabricacion.Negocio.Mantes
25 {
30  {
31  // Objeto de negocio del mantenimiento principal
32  private ewMante mantePrincipal = null;
33 
34  // Formulario del mantenimiento
35  private FormMante formMante = null;
36 
40  public Visual.UserControls.manteProduccionPartes usercontrolTabManteBase = null;
41 
42 
43  #region ManteTRels
44 
48  public Negocio.Clases.ProduccionPartes ManteTRelproduccionPartes = null;
49 
50 
51 
52  #endregion ManteTRels
53 
54 
55 
60  : this()
61  {
62  this._Mante = _mantePrincipal;
63 
64  // Asociar mantenimientos de tablas relacionadas
65  Negocio.Clases.ProduccionPartes mtrelproduccionPartes = new Negocio.Clases.ProduccionPartes();
66  this.ManteTRelproduccionPartes = mtrelproduccionPartes;
67 
68  mtrelproduccionPartes._AlbaranProduccion = (Negocio.Documentos.AlbaranProduccion)this._Mante;
69 
70  this._Mante._AddManteTRel(mtrelproduccionPartes);
71 
72  }
73 
78  {
79  this._Tabla = "";
80  this._DataBase = "";
81  this._Clave = "";
82  }
83 
88  : this()
89  {
90  #region Código generado por el asistente de componentes. No borrar.
91 
92  formMante = toForm;
93  mantePrincipal = toForm._ewMante;
94 
95  #endregion Código generado por el asistente de componentes. No borrar.
96  }
97 
102  public override bool _Load()
103  {
104  bool llOk = base._Load();
105 
106  if (llOk && _eBeforeAfter == TipoExecute.After)
107  {
108  string whereclause = GetWhereClause();
109  string sql = "";
110 
111  if (!string.IsNullOrWhiteSpace(sql))
112  {
113  DataTable result = new DataTable();
114  llOk = DB.SQLExec(sql, ref result);
115 
116  if (llOk && result.Rows.Count > 0)
117  {
118  rowexist = true;
119  }
120  else
121  {
122  rowexist = false;
123  }
124  }
125 
126  if (usercontrolTabManteBase != null)
127  {
128  usercontrolTabManteBase._Binding();
129 
130  if (ManteTRelproduccionPartes._AlbaranProduccion._Acabado || ManteTRelproduccionPartes._AlbaranProduccion._Traspasado)
131  {
132  usercontrolTabManteBase._BloquearControles(true);
133  }
134  else
135  {
136  usercontrolTabManteBase._BloquearControles(false);
137  }
138  }
139  }
140 
141  return llOk;
142  }
143 
149  public override bool _New(string tcCodigo = "")
150  {
151  bool llOk = base._New(tcCodigo);
152 
153  if (llOk && _eBeforeAfter == TipoExecute.After)
154  {
155  if (usercontrolTabManteBase != null)
156  {
157  usercontrolTabManteBase._Binding();
158  usercontrolTabManteBase._BloquearControles(true);
159  }
160  }
161 
162  return llOk;
163  }
164 
169  public override bool _Save()
170  {
171  bool llOk = base._Save();
172 
173  if (llOk && _eBeforeAfter == TipoExecute.After)
174  {
175  string sql = "";
176  string whereclause = GetWhereClause();
177 
178  if (rowexist)
179  {
180  sql = "";
181  }
182  else
183  {
184  sql = "";
185  }
186 
187  if (!string.IsNullOrWhiteSpace(sql))
188  {
189  llOk = DB.SQLExec(sql);
190  }
191  }
192 
193  return llOk;
194  }
195 
200  public override bool _Delete()
201  {
202  if (_eBeforeAfter == TipoExecute.Before)
203  {
204  foreach (ProduccionPartes.Linia toItem in ManteTRelproduccionPartes._Items)
205  {
206  // Actualizar valores y desasociamos albarán del parte
207  string lcSql = " UPDATE " + DB.SQLDatabase("GESTION", "D_PARTES") +
208  " SET tipo_alb = '0', albaran = '', articulo = ''" +
209  " WHERE numero = " + DB.SQLString(toItem._Numero) +
210  " AND empresa = " + DB.SQLString(toItem._Empresa) +
211  " AND linea = " + DB.SQLString(toItem._Linea);
212  DB.SQLExec(lcSql);
213  }
214 
215  ManteTRelproduccionPartes._Clear();
216  }
217 
218  return true;
219  }
220 
225  public override void _Bloquear_Controles(bool tlReadOnly)
226  {
227  if (usercontrolTabManteBase != null)
228  {
229  usercontrolTabManteBase._BloquearControles(tlReadOnly);
230  }
231  }
232  }
233 
238  {
239  private bool _lConPartes = Convert.ToBoolean(EW_GLOBAL._GetVariable("wl_PCostes"));
240 
244  public ExtensionProduccionPartes extensionMante = null;
245 
246  //Browsers
247  private Visual.UserControls.btBrowPartesCostes _btBrowseProduc = new Visual.UserControls.btBrowPartesCostes();
248 
255  : base(_formMante, toAddon)
256  {
257  #region Código generado por el asistente de componentes. No borrar.
258 
259  if (_lConPartes)
260  {
261  extensionMante = (ExtensionProduccionPartes)_ExtensionDocumentoBase;
262 
263  if (extensionMante == null)
264  return;
265 
266  extensionMante.usercontrolTabManteBase = ((Visual.Forms.frmAlbaranProduccion)_formMante).manteProduccionPartes;
267  extensionMante.ManteTRelproduccionPartes._Grid = extensionMante.usercontrolTabManteBase.Controls["mantegridPartes"];
268 
269  if (((Visual.Forms.frmAlbaranProduccion)_formMante)._EstadoDocumento != EstadosDocumento.NoHayDocumento)
270  {
271  if (_formMante._Documento._Acabado || _formMante._Documento._Traspasado)
272  {
273  extensionMante.usercontrolTabManteBase._BloquearControles(true);
274  }
275  else
276  {
277  extensionMante.usercontrolTabManteBase._BloquearControles(false);
278  }
279  }
280  else
281  {
282  extensionMante.usercontrolTabManteBase._BloquearControles(true);
283  }
284 
285  _Configurar_Documento();
286 
287  extensionMante._Load();
288  }
289  }
290 
294  private void _Configurar_Documento()
295  {
296  extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
297  extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.ScrollBars = ScrollBars.Vertical;
298 
299  extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.CellClick += new DataGridViewCellEventHandler(_MantegridParte_CellClick);
300  extensionMante.usercontrolTabManteBase.mantegridPartes._Row_New_Before += MantegridPartes__Row_New_Before;
301  extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.Resize += MantegridLinies_Resize;
302 
303  extensionMante.ManteTRelproduccionPartes._ListDefCampos["_Numero"]._Editable = false;
304  extensionMante.ManteTRelproduccionPartes._ListDefCampos["_TipoCoste"]._Editable = false;
305  extensionMante.ManteTRelproduccionPartes._ListDefCampos["_NombreCoste"]._Editable = false;
306  extensionMante.ManteTRelproduccionPartes._ListDefCampos["_Unidades"]._Editable = false;
307  }
308 
309 
310  private void MantegridLinies_Resize(object sender, EventArgs e)
311  {
312  extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
313  extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.ScrollBars = ScrollBars.None;
314  }
315 
316  private void MantegridPartes__Row_New_Before(ref bool tlOk, bool tlInsert = false)
317  {
318  if (string.IsNullOrEmpty(((Documentos.AlbaranProduccion)extensionMante._Mante)._Articulo.ToString().Trim()))
319  {
320  extensionMante.ManteTRelproduccionPartes._AlbaranProduccion._Error_Message = "Debe de indicar un artículo.";
321  tlOk = false;
322  return;
323  }
324 
325  Visual.Forms.frmPartesCostesPendientes formPartesCostesPendientes = new Visual.Forms.frmPartesCostesPendientes();
326  formPartesCostesPendientes._TipoPartes = Documentos.PartesCostes.TipoAlb.Produccion;
327  DialogResult res = formPartesCostesPendientes.ShowDialog();
328 
329  if (res == DialogResult.OK)
330  {
331  foreach (Documentos.PartesCostes.PartesCostesDetalle.Linia linia in formPartesCostesPendientes.lstSeleccionadas)
332  {
333  // Actualizar valores y desasociamos albarán del parte
334  string lcSql = " UPDATE " + DB.SQLDatabase("GESTION", "D_PARTES") +
335  " SET tipo_alb = '1', albaran = " + DB.SQLString(((Documentos.AlbaranProduccion)extensionMante._Mante)._Numero) + ", articulo = " + DB.SQLString(((Documentos.AlbaranProduccion)extensionMante._Mante)._Articulo) +
336  " WHERE numero = " + DB.SQLString(linia._Numero) +
337  " AND empresa = " + DB.SQLString(linia._Empresa) +
338  " AND linea = " + DB.SQLString(linia._Linea);
339 
340  DB.SQLExec(lcSql);
341  }
342  }
343 
344  tlOk = false;
345 
346  //((Documentos.AlbaranProduccion)extensionMante._Mante)._Abandonar_Documento();
347  ((Documentos.AlbaranProduccion)extensionMante._Mante)._Load();
348  ((Documentos.AlbaranProduccion)extensionMante._Mante)._Refresh();
349  }
350 
351 
357  private void _MantegridParte_CellClick(object sender, DataGridViewCellEventArgs e)
358  {
359  if (e.RowIndex > -1)
360  {
361  if ((extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.Columns["_Hora_ini"].Index == extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.CurrentCell.ColumnIndex) ||
362  (extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.Columns["_Hora_fin"].Index == extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.CurrentCell.ColumnIndex) ||
363  (extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.Columns["_Horas"].Index == extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.CurrentCell.ColumnIndex) ||
364  (extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.Columns["_Unidades"].Index == extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.CurrentCell.ColumnIndex))
365  {
366 
367  int lnCurrentRow = extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.CurrentCell.RowIndex;
368  int nlCelda = extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.Columns["_TipoCoste"].Index;
369 
370  string valor = Convert.ToString(extensionMante.usercontrolTabManteBase.mantegridPartes._Grid.Rows[lnCurrentRow].Cells[nlCelda].Value.ToString().Trim());
371 
372  bool lbTipoCalculo = CalculoTipoCoste(valor);
373 
374  extensionMante.ManteTRelproduccionPartes._ListDefCampos["_Hora_Ini"]._Editable = !lbTipoCalculo;
375  extensionMante.ManteTRelproduccionPartes._ListDefCampos["_Hora_Fin"]._Editable = !lbTipoCalculo;
376  extensionMante.ManteTRelproduccionPartes._ListDefCampos["_Horas"]._Editable = !lbTipoCalculo;
377  extensionMante.ManteTRelproduccionPartes._ListDefCampos["_Unidades"]._Editable = lbTipoCalculo;
378  }
379  }
380  }
381 
387  private bool CalculoTipoCoste(string lcCodigo)
388  {
389  bool lbCalculo = Convert.ToBoolean(DB.SQLValor("TIPO_COST", "CODIGO", lcCodigo, "CALCULO", "GESTION"));
390 
391  return lbCalculo;
392  }
393 
394 
395 
396  #endregion Código generado por el asistente de componentes. No borrar.
397  }
398 }
ewgrid _Grid
Proporciona acceso al control DataGrid
Definition: Mantegrid.cs:458
PE-93426 Interficie para los módulos de la aplicación
Definition: IModulo.cs:22
Clase de negocio base para mantenimientos
Definition: clsEwBase.cs:1643
Nueva interficie madre de IMantes y de la que colgara ewMante. Propiedades: _Codigo, _Nombre, _Error_Message. Metodos: _New, Save, _Delete, _Load, _Existe_Registro, _Clonar
Definition: IMantes.cs:17
ExtensionProduccionPartes(FormMante toForm)
Inicializa una nueva instancia de la clase y asigna objetos
Visual.UserControls.manteProduccionPartes usercontrolTabManteBase
Referencia al UserControl asociado a esta clase
override void _Bloquear_Controles(bool tlReadOnly)
Bloquear controles de las extensiones de los mantes
Object _Grid
ewgrid o Mantegrid enlazado a Items
void _BloquearControles(bool tlReadOnly)
Método para bloquear los controles del UserControl
manteProduccionPartes()
Inicializa un nueva instancia de la clase
Formulario base de documentos de stock y de asientos contables
ExtensionProduccionPartes()
Inicializa una nueva instancia de la clase
Definir la estructura de las líneas Heredo de ewDocVentaLin para poder usar la clase de ExtensionesVe...
_Row_New_Before_Handler _Row_New_Before
Se dispara antes de insertar una nueva fila
Definition: Mantegrid.cs:686
override bool _Load()
Se dispara cuando se cargan los datos en el mantenimiento principal
FormExtensionProduccionPartes(FormBaseDocumento _formMante, IModulo toAddon)
Iniciarliza una nueva instancia de la clase
IMante _Mante
Referencia al mantenimiento original
Clase base para las extensiones de documentos base
TipoExecute
Tipos de ejecución de los métodos
Definition: IDocModulos.cs:16
dynamic _Documento
Referencia al documento
Negocio.Clases.ProduccionPartes ManteTRelproduccionPartes
Instancia del ManteTRel de serv_mat
virtual ewMante _ewMante
Clase mantenimiento asociada al formulario
Definition: FormMante.cs:323
Base para los mantenimientos de Sage TPV
Definition: FormMante.cs:26
sage.ew.objetos.UserControls.Mantegrid mantegridPartes
Objeto de Negocio asociado al usercontrol
Dictionary< string, ewCampoTRel > _ListDefCampos
Lista de las definiciones de campos
override bool _New(string tcCodigo="")
Se dispara cuando se va crea un nuevo registro
EstadosDocumento
Enumera los posibles estados del documento
ExtensionProduccionPartes(sage.ew.interficies.IMante _mantePrincipal)
Inicializa una nueva instancia de la clase