2 using System.Collections.Generic;
11 namespace sage.ew.contabilidad
20 private DataTable _odt;
21 private String _nNumero =
"";
22 private String _cFecha =
"";
27 public String _Empresa
31 return _lisCampos.ContainsKey(
"EMPRESA") && !String.IsNullOrEmpty(Convert.ToString(_lisCampos[
"EMPRESA"]._NewVal)) ? Convert.ToString(_lisCampos[
"EMPRESA"]._NewVal) : Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa"));
35 if (_lisCampos.ContainsKey(
"EMPRESA")) _lisCampos[
"EMPRESA"]._NewVal = value;
59 public override string _Nombre
74 public DataTable _Asientos
89 return _lisCampos.ContainsKey(
"NOTA") ? Convert.ToString(_lisCampos[
"NOTA"]._NewVal) : String.Empty;
93 if (_lisCampos.ContainsKey(
"NOTA")) _lisCampos[
"NOTA"]._NewVal = value;
100 public String _Observaciones
104 return _lisCampos.ContainsKey(
"OBSERVA") ? Convert.ToString(_lisCampos[
"OBSERVA"]._NewVal) : String.Empty;
108 if (_lisCampos.ContainsKey(
"OBSERVA")) _lisCampos[
"OBSERVA"]._NewVal = value;
129 DataTable lodt =
new DataTable();
131 if(!String.IsNullOrEmpty(_Codigo))
133 lcSql = String.Format(
"SELECT NUMERO FROM {0} WHERE EMPRESA = '{1}' AND ASI = '{2}' ", DB.SQLDatabase(
"GESTION",
"ASIENTOS"), _Empresa, _Codigo);
134 DB.SQLExec(lcSql, ref lodt);
136 if (lodt.Rows.Count > 0) _Numero = Convert.ToString(lodt.Rows[0][
"NUMERO"]);
140 _Numero = String.Empty;
156 if (String.IsNullOrEmpty(tcNumeroAsi))
160 _odt =
new DataTable();
162 else if (_LoadAsientos(tcNumeroAsi))
164 tcCodigo = _TrataCodigo();
166 if (_Codigo != tcCodigo)
174 loFecha = DateTime.Parse(Convert.ToString(_odt.Rows[0][
"FECHA"]));
175 _cFecha = loFecha.ToString(EW_GLOBAL._CustomFormatDate);
184 private string _TrataCodigo()
188 tcCodigo = (from loRow in _odt.AsEnumerable()
189 where !loRow.IsNull(
"ASI_NOTA")
190 select Convert.ToString(loRow[
"ASI_NOTA"])).FirstOrDefault();
192 if (!String.IsNullOrEmpty(tcCodigo) && Convert.ToString(_odt.Rows[0][
"ASI"]) != tcCodigo)
194 _ChangeAsi(Convert.ToString(_odt.Rows[0][
"ASI"]), tcCodigo);
197 tcCodigo = Convert.ToString(_odt.Rows[0][
"ASI"]);
203 private bool _LoadAsientos(String tcNumeroAsi)
206 String lcMascara =
"{0:" + loMascaraPrecio.
_Mascara_Net +
"} ";
210 _odt =
new DataTable();
212 if (!String.IsNullOrWhiteSpace(tcNumeroAsi))
214 lcSql = String.Format(
"SELECT a.LINEA, a.CUENTA, a.ASI, a.FECHA, a.NUMERO, a.DEFINICION, a.DEBE, a.HABER, '' as DEBE_TEXT, '' as HABER_TEXT, a.FACTURA , b.ASI as ASI_NOTA FROM {0} a OUTER APPLY(SELECT TOP 1 ASI FROM {3} WHERE ASI = a.ASI AND EMPRESA = '{1}' ) as b WHERE a.EMPRESA = '{1}' AND a.NUMERO = '{2}' ORDER BY LINEA ASC ", DB.SQLDatabase(
"GESTION",
"ASIENTOS"), _Empresa, tcNumeroAsi, DB.SQLDatabase(
"GESTION",
"ASIMEM"));
215 DB.SQLExec(lcSql, ref _odt);
217 if (_odt.Rows.Count > 0)
219 foreach (DataRow loRow
in _odt.Rows)
222 if (Decimal.TryParse(Convert.ToString(loRow[
"DEBE"]), out ldNum) && ldNum > 0)
224 loRow[
"DEBE_TEXT"] = String.Format(lcMascara, Convert.ToDecimal(loRow[
"DEBE"]));
227 if (Decimal.TryParse(Convert.ToString(loRow[
"HABER"]), out ldNum) && ldNum > 0)
229 loRow[
"HABER_TEXT"] = String.Format(lcMascara, Convert.ToDecimal(loRow[
"HABER"]));
235 return _odt.Rows.Count > 0;
245 if (String.IsNullOrEmpty(Convert.ToString(_lisCampos[
"EMPRESA"]._NewVal))) _lisCampos[
"EMPRESA"]._NewVal = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa"));
246 if (String.IsNullOrEmpty(Convert.ToString(_lisCampos[
"ASI"]._NewVal))) _lisCampos[
"ASI"]._NewVal = _Codigo;
266 this._Codigo = tcCodigo;
274 this._DataBase =
"Gestion";
275 this._Tabla =
"ASIMEM";
276 this._TituloMantenimiento =
"Mantenimiento de notas";
278 _Browser_Clave =
"ASI";
279 _Browser_Campos_No_Visibles =
"ASI,LINEA";
280 _Browser_Campos =
"NUMERO, DEFINICION";
281 _Browser_Titulos_Campos =
"Número, Descripción";
282 _Browser_Datatable_Personalizado = _DataTablePersonalizadoBrownser();
283 _Browser_Campo_Predet =
"DEFINICION";
285 this.Navegacion._CampoOrdenPrincipal =
"NUMERO";
286 this.Navegacion._Tabla =
"ASIENTOS";
287 this.Navegacion._Condicion = String.Format(
"EMPRESA = '{0}' ", _Empresa);
289 this._TituloMenu =
"Nota para la memoria";
290 this._TituloCabecera =
"Notas para la memoria";
292 this._FormManteBaseType = typeof(Forms.frmMantenimientoNotas);
293 this._Pantalla =
"MNOTAS";
300 private DataTable _DataTablePersonalizadoBrownser()
303 DataTable lodt =
new DataTable();
304 DataTable lodtResult;
306 lcSql = String.Format(
"SELECT NUMERO, DEFINICION, LINEA, ASI FROM {0} WHERE EMPRESA = '{1}' ", DB.SQLDatabase(
"GESTION",
"ASIENTOS"), _Empresa);
307 DB.SQLExec(lcSql, ref lodt);
310 lodtResult = (lodt.Rows.Count > 0) ? lodt.AsEnumerable().GroupBy(loField =>
new { loCol = loField[
"NUMERO"] }).Select(g => g.OrderBy(loField => loField[
"LINEA"]).First()).CopyToDataTable() : lodt;
320 public void _ChangeAsi(String tcAsi, String tcAsiCodigo =
"")
324 tcAsiCodigo = String.IsNullOrEmpty(tcAsiCodigo) ? _Codigo : tcAsiCodigo;
326 lcSql = String.Format(
" UPDATE {0} SET ASI = '{1}' WHERE ASI = '{2}' AND EMPRESA = '{3}' ", DB.SQLDatabase(
"GESTION",
"ASIMEM"), tcAsi, tcAsiCodigo, _Empresa);
Clase de negocio base para mantenimientos
bool _LoadNumero(String tcNumeroAsi)
Carga el asiento a partir del número
KeyDiccionarioMascara
Clave para diccionario de máscaras
NotasAsiMem(string tcCodigo)
Constructor con código de asi
void _ChangeAsi(String tcAsi, String tcAsiCodigo="")
Actualiza el codigo ASI por si se elimina la primera línea
override bool _Save()
PE-101372 Al insertar un registro nuevo desde el campo número, vacia los campos ya que la navegación ...
Proporciona características adicionales de las máscaras de Eurowin
override void _Load()
Load
string _Mascara_Net
Máscara convertida en formato .Net