2 using System.Collections.Generic;
6 using System.ComponentModel;
11 using System.Windows.Forms;
13 using System.ComponentModel.DataAnnotations;
22 public bool _EnUso =
false;
29 [DescriptionAttribute(
"Desglosado")]
34 [DescriptionAttribute(
"Agrupado")]
41 [FieldName(
"Mascara")]
42 [DisplayName(
"MASCARA")]
44 [DataType(DataType.Text)]
45 public string _Mascara
49 return Convert.ToString(_Campo(GetFieldName(nameof(_Mascara))));
58 _Campo(GetFieldName(nameof(_Mascara)), value);
66 [DisplayName(
"COSTE")]
71 return Convert.ToDecimal(_Campo(GetFieldName(nameof(_Coste))));
80 _Campo(GetFieldName(nameof(_Coste)), value);
88 [DisplayName(
"GRUPO")]
93 return Convert.ToString(_Campo(GetFieldName(nameof(_Grupo))));
102 _Campo(GetFieldName(nameof(_Grupo)), value);
110 [FieldName(
"Codigo")]
111 [DisplayName(
"CODIGO")]
112 public override string _Codigo
121 base._Codigo = (! String.IsNullOrEmpty(value) ? value.ToString().PadLeft(2,
'0') : value);
128 [FieldName(
"Articulo")]
129 [DisplayName(
"ARTICULO")]
130 public string _Articulo
134 return Convert.ToString(_Campo(GetFieldName(nameof(_Articulo))));
143 _Campo(GetFieldName(nameof(_Articulo)), value);
150 [FieldName(
"Facturable")]
151 [DisplayName(
"FACTURABLE")]
152 public bool _Facturable
156 return Convert.ToBoolean(_Campo(GetFieldName(nameof(_Facturable))));
160 _Campo(GetFieldName(nameof(_Facturable)), value);
168 [FieldName(
"UsarCoste")]
169 [DisplayName(
"USARCOSTE")]
170 public bool _UsarCoste
174 return Convert.ToBoolean(_Campo(GetFieldName(nameof(_UsarCoste))));
178 _Campo(GetFieldName(nameof(_UsarCoste)), value);
198 this._Codigo = tcCodigo;
202 private void Inicializar()
205 this._Clave =
"Codigo";
206 this._DataBase =
"SERVICES";
207 this._Tabla =
"tipogastos";
208 this._TituloMantenimiento =
"Mantenimiento de Tipos de Coste";
210 this._Pantalla =
"tipogastos";
211 this._FormManteBaseType = typeof(Visual.Forms.frmTipoGastos);
213 this._Codigo =
string.Empty;
219 return GetFieldName(name);
227 if (
string.IsNullOrWhiteSpace(_Grupo))
231 sage.
ew.
functions.
FUNCTIONS._MessageBox(
"Falta indicar el grupo del tipo de coste.",
"Tipo de coste", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
237 if (
string.IsNullOrWhiteSpace(_Articulo))
241 sage.
ew.
functions.
FUNCTIONS._MessageBox(
"Falta indicar el concepto facturable del tipo de coste.",
"Tipo de coste", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
247 return base._Save_Before();
258 DataTable ldtInf =
new DataTable();
259 string lcMensaje =
string.Empty;
262 lcSql = String.Format(
"SELECT COUNT(*) AS registros, Max(NUMERO) FROM {0} WHERE TIPOGASTO = '" + _Codigo +
"'", DB.SQLDatabase(
"SERVICES",
"D_SERVICIOS"));
264 DB.SQLExec(lcSql, ref ldtInf);
266 if (ldtInf == null || ldtInf.Rows.Count == 0)
270 var loInf = ldtInf.AsEnumerable().Where(y => y.Field<Int32>(
"registros") != 0).ToList();
271 if (loInf.Count() == 0)
275 for (
int lnInd = 0; lnInd < loInf.Count(); lnInd++)
277 if (!
string.IsNullOrWhiteSpace(lcMensaje))
278 lcMensaje = lcMensaje +
" y ";
280 lcMensaje = lcMensaje + Convert.ToString(loInf[lnInd][1]);
288 lcSql = String.Format(
"SELECT COUNT(*) AS registros, Max(TECNICO) FROM {0} WHERE TIPOGASTO = '" + _Codigo +
"'", DB.SQLDatabase(
"SERVICES",
"TEC_ART"));
290 DB.SQLExec(lcSql, ref ldtInf);
292 if (ldtInf == null || ldtInf.Rows.Count == 0)
296 var loInf = ldtInf.AsEnumerable().Where(y => y.Field<Int32>(
"registros") != 0).ToList();
297 if (loInf.Count() == 0)
301 for (
int lnInd = 0; lnInd < loInf.Count(); lnInd++)
303 if (!
string.IsNullOrWhiteSpace(lcMensaje))
304 lcMensaje = lcMensaje +
" y ";
306 lcMensaje = lcMensaje + Convert.ToString(loInf[lnInd][1]);
312 return base._Delete();
314 _Error_Message =
"Este código de tipo de coste está asignado al técnico " + lcMensaje.Trim() +
". No se puede borrar el tipo de coste.";
318 _Error_Message =
"Este código de tipo de coste está asignado al servicio número " + lcMensaje.Trim() +
". No se puede borrar el tipo de coste.";
Clase de negocio base para mantenimientos
string _GetFieldName(string name)
Es como el tipo de entrada asientos pero por negocio, sin formulario, pq quiero que me haga las propu...
TipoGastos()
Constructor vacío
TipoGastos(string tcCodigo)
Constructor con código
Clase para uso de funciones genéricas
override bool _Delete()
Elimina el registro actual
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.
override bool _Save_Before()
Método que se ejecuta entes de realizar el código del método _Save(), para poder realizar comprobacio...