4 using System.ComponentModel;
5 using System.Collections.Generic;
6 using System.ComponentModel.DataAnnotations;
21 namespace sage.ew.contabilidad
37 #region PROPIEDADES PRIVADAS 45 #endregion PROPIEDADES PRIVADAS 48 #region PROPIEDADES PÚBLICAS 58 [FieldName(
"Tiporemesa")]
59 [DisplayName(
"Tipo de esquema SEPA:")]
74 this._nEsquemaSepa = (int)value;
89 [FieldName(
"Tiporemesa")]
90 [DisplayName(
"Tipo de esquema SEPA:")]
91 [ReportProperty(
"EsquemaSepa",
"",
"Tipo de esquema SEPA::")]
93 public int _nEsquemaSepa
97 return Convert.ToInt32(this._Campo(this.GetFieldName(nameof(this._nEsquemaSepa))));
106 this._Campo(this.GetFieldName(nameof(this._nEsquemaSepa)), lnValor);
109 this._Campo(
"TIPO", lnValor > 0 ?
"D" :
"I");
119 [DefaultValue(
false)]
124 return ((
int)this._Campo(this.GetFieldName(nameof(this._EsquemaSepa)))) >= 1;
136 if (_oDocPrint == null)
141 set { _oDocPrint = value; }
145 #endregion PROPIEDADES PÚBLICAS 148 #region CONSTRUCTORES 174 #endregion CONSTRUCTORES 177 #region MÉTODOS PROTECTED OVERRIDE SOBREESCRITOS DE CLASE BASE 'DOCUMENTOBASE' 189 this._Clave =
"EMPRESA,NUMERO";
190 this._DataBase =
"GESTION";
191 this._Tabla =
"REMESAPA";
192 this._TituloMantenimiento =
"Remesa bancaria de pago";
193 this._TituloCabecera =
"Remesa bancaria de pago";
194 this._TituloMenu =
"Remesa bancaria de pago";
196 this._Pantalla =
"REM_PAGO";
220 this._cBdTablaContadorRemesa =
"GESTION";
221 this._cTablaContadorRemesa =
"EMPRESA";
222 this._cCampoEmpresaTablaContadorRemesa =
"CODIGO";
223 this._cCampoContadorRemesa =
"REMESAPA";
237 this._AddManteTRel(remesaBancariaDetallePrevis);
239 this._ReportTitlePreview = this._TituloMantenimiento;
240 this._ReportBase =
"DocumentoRemBancPago";
246 #endregion MÉTODOS PROTECTED OVERRIDE SOBREESCRITOS DE CLASE BASE 'DOCUMENTOBASE' 249 #region MÉTODOS PROTECTED OVERRIDE SOBREESCRITOS DE CLASE BASE 'REMESABANCARIA' 265 switch (teTipoDocumentoRemesa)
268 this.detalleDocumento = this.remesaBancariaDetallePrevis;
289 List<string> lstAsis =
new List<string>();
290 DataTable ldtAsisRelacs =
new DataTable(), ldtAsisPrevis =
new DataTable();
291 string lcSql =
"", lcAsiRelac =
"";
298 DB.SQLExec(
"select asi from " + DB.SQLDatabase(
"comunes",
"previs") +
" " +
299 "where empresa=" + DB.SQLString(this._cEmpresa) +
" and remesa=" + DB.SQLString(this._Numero) +
" " +
300 "and empresa!=" + DB.SQLString(
"") +
" and factura!=" + DB.SQLString(
"") +
" and proveedor!=" + DB.SQLString(
"") +
" and " +
301 "asi!=" + DB.SQLString(
"") +
" " +
302 "order by vencim", ref ldtAsisPrevis);
305 foreach (DataRow loRowPrevis
in ldtAsisPrevis.Rows)
307 lcAsi = Convert.ToString(loRowPrevis[
"asi"]);
308 if (!lstAsis.Contains(lcAsi))
315 lcSql =
"select asi2 from " + DB.SQLDatabase(
"gestion",
"asi_rel") +
" " +
316 "where ejercicio=" + DB.SQLString(this._lcAny) +
" and asi1=" + DB.SQLString(lcAsi) +
" and asi2!=' '";
317 llOk = DB.SQLExec(lcSql, ref ldtAsisRelacs);
319 foreach (DataRow loRow
in ldtAsisRelacs.Rows)
321 lcAsiRelac = Convert.ToString(loRow[
"asi2"]);
322 if (!lstAsis.Contains(lcAsiRelac))
323 lstAsis.Add(lcAsiRelac);
344 DateTime ldtVencimConcepto, ldtVencimPrevision;
345 int lnPeriodo, lnOrden, lnPendiente;
346 string lcFactura =
"", lcProveedor=
"", lcCuentaLinea =
"", lcAsi =
"";
347 decimal lnImporteLinea = 0;
348 List<Tuple<int, string, int, int, int, string >> lstPrevisAsientoVencim =
new List<Tuple<int, string, int, int, int, string>>();
354 bool llEfecRemP = this._lEfecRemp && !
string.IsNullOrWhiteSpace(this._cEfecRemP);
360 bool llObtenerAsiUltimoConcepto =
string.IsNullOrWhiteSpace(tcAsiRemesa);
364 var previsionesPorVencim = from p in this.remesaBancariaDetallePrevis.
_Items 367 group p by p._Vencim into g
370 concepto = Convert.ToString(g.Key),
371 importe = g.Sum(x => x._Importe),
372 vencim = g.Max(x => x._Vencim),
373 previsiones = g.ToList(),
379 var previsionesPorProveed = from p in this.remesaBancariaDetallePrevis.
_Items 382 group p by p._Cuenta into g
386 importe = g.Sum(x => x._Importe),
387 vencim = g.Min(x => x._Vencim),
388 previsiones = g.ToList()
393 var conceptos = (teAsiRemAgruparPor ==
AsiRemAgruparPor.Vencimiento ? previsionesPorVencim : previsionesPorProveed);
395 foreach (var concepto
in conceptos)
401 ldtVencimConcepto = Convert.ToDateTime(concepto.vencim);
405 Asientos loAsiento = this.asientoNuevo(ldtVencimConcepto);
410 this.asientoNuevaLinea(loAsiento, teAsiRemCtaEfecDesc ==
AsiRemCtaEfecDesc.NoUtilizarEfecD ? tcCuentaContableBanco : tcCuentaContablaEfecDescBanco,
"REMESA DE RECIBOS Nº " +
this.
_Numero.Trim(), 1,
"H", concepto.importe);
412 lstPrevisAsientoVencim.Clear();
415 lnPeriodo = loLinea._Periodo;
416 lcFactura = loLinea._Factura;
417 lcProveedor = loLinea._Cuenta;
418 lnOrden = loLinea._Orden;
419 lnPendiente = loLinea._Pendiente;
420 lnImporteLinea = loLinea._Importe;
421 ldtVencimPrevision = Convert.ToDateTime(loLinea._Vencim);
425 lcCuentaLinea = loLinea._Cuenta;
431 lcCuentaLinea = this.cuentaEfecto(loLinea._Cuenta);
434 this.asientoNuevaLinea(loAsiento, lcCuentaLinea,
"REMESA Nº " + this._Numero.Trim() +
" FRA Nº " + lcFactura.ToUpper().Trim() +
"/" + lnOrden.ToString().Trim() +
" " + ldtVencimPrevision.ToString(EW_GLOBAL._CustomFormatDate), 1,
"D", lnImporteLinea);
436 lstPrevisAsientoVencim.Add(
new Tuple<int, string, int, int, int, string >(lnPeriodo, lcFactura, lnOrden, 0, lnPendiente, lcProveedor));
442 llOk = loAsiento.
_Save();
459 lcAsi = loAsiento._Asi_Primera_Linea();
469 this.insertarRegistroAsiRela(loAsiento, toDicAsiEfecRemCta);
475 if (llObtenerAsiUltimoConcepto)
480 llOk = this.actualizarCamposCobroPagoEnPrevisiones(lcAsi, ldtVencimConcepto, tcCuentaContableBanco, null, lstPrevisAsientoVencim);
501 protected override bool actualizarCamposCobroPagoEnPrevisiones(
string tcAsi, DateTime tdFechaAsiento,
string tcCuentaContableBanco, DateTime? tdFechaDescuento = null, List<Tuple<int, string, int, int, int, string>> tlstPrevisiones = null)
503 bool llActuOk =
true;
504 string lcEmpresa =
"", lcFactura =
"", lcProveedor=
"";
505 int lnPeriodo, lnOrden = 0, lnPendiente = 0;
509 if (tlstPrevisiones == null)
515 if (loLinea.Fila_Plena())
517 lcEmpresa = loLinea._Empresa;
518 lnPeriodo = loLinea._Periodo;
519 lcFactura = loLinea._Factura;
520 lcProveedor = loLinea._Cuenta;
521 lnOrden = loLinea._Orden;
522 lnPendiente = Convert.ToInt32(loLinea._Pendiente);
524 llActuOk = this.actualizarCamposPagoEnPrevis(lcEmpresa, lnPeriodo, lcProveedor, lcFactura, lnOrden, lnPendiente, tcAsi, tdFechaAsiento, tcCuentaContableBanco);
540 Dictionary<string, object> loDicBusqueda =
new Dictionary<string, object>();
541 loDicBusqueda.Add(
"_Periodo", 0);
542 loDicBusqueda.Add(
"_Cuenta",
"");
543 loDicBusqueda.Add(
"_Factura",
"");
544 loDicBusqueda.Add(
"_Orden", 0);
545 loDicBusqueda.Add(
"_Pendiente", 0);
547 for (
int ln = 0; ln <= tlstPrevisiones.Count - 1; ln++)
549 lnPeriodo = tlstPrevisiones[ln].Item1;
550 lcFactura = tlstPrevisiones[ln].Item2;
551 lnOrden = tlstPrevisiones[ln].Item3;
552 lnPendiente = tlstPrevisiones[ln].Item5;
553 lcProveedor = tlstPrevisiones[ln].Item6;
557 loDicBusqueda[
"_Periodo"] = lnPeriodo;
558 loDicBusqueda[
"_Cuenta"] = lcProveedor;
559 loDicBusqueda[
"_Factura"] = lcFactura;
560 loDicBusqueda[
"_Orden"] = lnOrden;
561 loDicBusqueda[
"_Pendiente"] = lnPendiente;
566 llActuOk = this.actualizarCamposPagoEnPrevis(loLinea._Empresa, loLinea._Periodo, loLinea._Cuenta, loLinea._Factura, loLinea._Orden, loLinea._Pendiente, tcAsi, tdFechaAsiento, tcCuentaContableBanco);
578 DB.Registrar_Error(e);
579 this._Error_Message = e.Message;
587 #endregion MÉTODOS PROTECTED OVERRIDE SOBREESCRITOS DE CLASE BASE 'REMESABANCARIA' 590 #region MÉTODOS PÚBLICOS OVERRIDE SOBREESCRITOS DE CLASE BASE 'DOCUMENTOBASE' 603 this._FormMante._Show();
605 if (!
string.IsNullOrWhiteSpace(this._Codigo))
607 if (this._FormMante != null)
608 this._FormMante._Cargar_Documento();
615 #endregion MÉTODOS PÚBLICOS OVERRIDE SOBREESCRITOS DE CLASE BASE 'DOCUMENTOBASE' 618 #region MÉTODOS PÚBLICOS OVERRIDE SOBREESCRITOS DE CLASE BASE 'REMESABANCARIA' 639 public override bool _Contabilizar(Dictionary<string, object> toDicParametros)
642 this._Error_Message =
"";
646 DateTime tdFechaAsiento = DateTime.Today;
650 if (toDicParametros.TryGetValue(
"fechaasiento", out objetoAuxi))
651 tdFechaAsiento = Convert.ToDateTime(objetoAuxi);
653 if (toDicParametros.TryGetValue(
"formacontabil", out objetoAuxi))
661 switch (teFormaContabil)
666 llOk = this.contabRemPreviAsientoUnico(tdFechaAsiento);
720 DB.Registrar_Error(e);
721 this._Error_Message = e.Message;
726 if (!llOk &&
string.IsNullOrWhiteSpace(this._Error_Message))
727 this._Error_Message =
"No se ha podido contabilizar la remesa.";
739 bool llOkDescontabilizar =
false, llOkVaciarCampos =
false, llOkSaveRemesa =
false;
741 this._Error_Message =
"";
749 llOkVaciarCampos = this.vaciarCamposPagoEnPrevisiones();
751 if (!
string.IsNullOrWhiteSpace(this._Asi))
759 this._Asentada =
false;
761 this._lDescontabilizando =
true;
763 llOkSaveRemesa = this._Save();
765 this._lDescontabilizando =
false;
769 if (
string.IsNullOrWhiteSpace(this._Error_Message))
770 this._Error_Message =
"No se pudieron actualizar los cambios en la remesa.";
773 llOkDescontabilizar = llOkVaciarCampos && llOkSaveRemesa;
777 DB.Registrar_Error(e);
778 this._Error_Message = e.Message;
779 llOkDescontabilizar =
false;
782 return llOkDescontabilizar;
792 this._Error_Message =
"";
794 bool llOk = base._Comprobaciones_GenerarSepa();
802 _Error_Message =
"No ha seleccionado el tipo de esquema SEPA para la generación del fichero.";
810 #endregion MÉTODOS PÚBLICOS OVERRIDE SOBREESCRITOS DE CLASE BASE 'REMESABANCARIA' 813 #region MÉTODOS PÚBLICOS 838 public bool _AddPrevisiones(DataRow[] taDataRowsPrevis, out DataRow[] toDataRowsPrevisNoAnadidas,
bool tlSave =
false)
841 this._Error_Message =
"";
845 toDataRowsPrevisNoAnadidas =
new DataRow[0];
849 if (
string.IsNullOrWhiteSpace(this._Numero))
851 this._Error_Message =
"No está cargada ninguna remesa a la cual añadir previsiones.";
857 this._Error_Message =
"No se permite añadir previsiones a una remesa que no es de tipo documento previsiones.";
863 llOk = this.addPrevisiones(taDataRowsPrevis, out toDataRowsPrevisNoAnadidas);
873 if (
string.IsNullOrWhiteSpace(this._Error_Save))
874 this._Error_Message = this._Error_Save;
876 if (
string.IsNullOrWhiteSpace(this._Error_Message))
877 this._Error_Message =
"No se han podido añadir las previsiones a la remesa correctamente.";
883 DB.Registrar_Error(e);
884 this._Error_Message = e.Message;
913 public bool _AddPrevisiones(List<PrevisionPago> toLstPrevis, out List<PrevisionPago> tolstPrevisNoAnadidas,
bool tlSave =
false)
916 this._Error_Message =
"";
920 tolstPrevisNoAnadidas =
new List<PrevisionPago>();
924 if (
string.IsNullOrWhiteSpace(this._Numero))
926 this._Error_Message =
"No está cargada ninguna remesa a la cual añadir previsiones.";
932 this._Error_Message =
"No se permite añadir previsiones a una remesa que no es de tipo documento previsiones.";
938 llOk = this.addPrevisiones(toLstPrevis, out tolstPrevisNoAnadidas);
948 if (
string.IsNullOrWhiteSpace(this._Error_Save))
949 this._Error_Message = this._Error_Save;
951 if (
string.IsNullOrWhiteSpace(this._Error_Message))
952 this._Error_Message =
"No se han podido añadir las previsiones a la remesa correctamente.";
958 DB.Registrar_Error(e);
959 this._Error_Message = e.Message;
993 this._Error_Message =
"";
997 toDataRowsPrevisNoAnadidas =
new DataRow[0];
1003 llOk = this.crearCabeceraRemesa(loParamCreaCnf);
1010 llOk = this.addPrevisiones(taDataRowsPrevis, out toDataRowsPrevisNoAnadidas);
1016 llOk = this._Save();
1019 if (
string.IsNullOrWhiteSpace(this._Error_Save))
1020 this._Error_Message = this._Error_Save;
1022 if (
string.IsNullOrWhiteSpace(this._Error_Message))
1023 this._Error_Message =
"No se han podido crear la remesa de pago correctamente.";
1029 DB.Registrar_Error(e);
1030 this._Error_Message = e.Message;
1065 this._Error_Message =
"";
1069 tolstPrevisNoAnadidas =
new List<PrevisionPago>();
1075 llOk = this.crearCabeceraRemesa(loParamCreaCnf);
1082 llOk = this.addPrevisiones(toLstPrevis, out tolstPrevisNoAnadidas);
1088 llOk = this._Save();
1091 if (
string.IsNullOrWhiteSpace(this._Error_Save))
1092 this._Error_Message = this._Error_Save;
1094 if (
string.IsNullOrWhiteSpace(this._Error_Message))
1095 this._Error_Message =
"No se han podido crear la remesa de pago correctamente.";
1101 DB.Registrar_Error(e);
1102 this._Error_Message = e.Message;
1116 this.remesaBancariaDetallePrevis.
_Grid = mantegrid;
1120 this.ajustesVisualesGrid(loGrid);
1135 if (!
string.IsNullOrWhiteSpace(this._Codigo))
1137 if (this._FormMante != null)
1138 this._FormMante._CargarDocumento();
1142 ((formul.FormBaseDocumento)_FormMante).ShowDialog();
1146 #endregion MÉTODOS PÚBLICOS 1149 #region MÉTODOS PRIVADOS 1152 #region MÉTODOS PRIVADOS PARA CONTABILIZACION DE REMESAS DE PREVISIONES DE PAGO 1168 private bool actualizarCamposPagoEnPrevis(
string tcEmpresa,
int tnPeriodo,
string tcProveedor,
string tcFactura,
int tnOrden,
int tnPendiente,
string tcAsi, DateTime tdFechaAsiento,
string tcCuentaContableBanco)
1181 loPrevision.
_Load();
1183 if (loPrevision.
_Estado == _EstadosMantenimiento.MostrandoRegistro)
1187 loPrevision.
_Banco = tcCuentaContableBanco;
1188 loPrevision.
_Asi = tcAsi;
1191 llOk = loPrevision.
_Save();
1195 this._Error_Message =
"No se pudieron actualizar los campos de pago en la previsión de pago Proveedor "+tcProveedor+
" Factura " + tcFactura.Trim() +
" Orden " + tnOrden.ToString();
1232 DB.Registrar_Error(e);
1233 this._Error_Message = e.Message;
1246 private bool vaciarCamposPagoEnPrevisiones()
1248 bool llActuOk =
true, llOk =
false;
1249 string lcEmpresa =
"", lcFactura =
"", lcProveedor=
"";
1250 int lnPeriodo, lnOrden = 0, lnPendiente = 0;
1256 foreach (RemesaBancariaDetallePrevis.Linea loLinea in
this.remesaBancariaDetallePrevis)
1258 if (loLinea.Fila_Plena())
1260 lcEmpresa = loLinea._Empresa;
1261 lnPeriodo = loLinea._Periodo;
1262 lcProveedor = loLinea._Cuenta;
1263 lcFactura = loLinea._Factura;
1264 lnOrden = loLinea._Orden;
1265 lnPendiente = loLinea._Pendiente;
1267 llOk = this.vaciarCamposPagoEnPrevision(lcEmpresa, lnPeriodo, lcProveedor, lcFactura, lnOrden, lnPendiente);
1275 DB.Registrar_Error(e);
1276 this._Error_Message = e.Message;
1295 private bool vaciarCamposPagoEnPrevision(
string tcEmpresa,
int tnPeriodo,
string tcProveedor,
string tcFactura,
int tnOrden,
int tnPendiente)
1297 bool llActuOk =
true, llOk =
false;
1298 string lcOldAsi =
"";
1303 bool llEfecRemP = this._lEfecRemp && !
string.IsNullOrWhiteSpace(this._cEfecRemP);
1314 loPrevision.
_Load();
1316 if (loPrevision.
_Estado == _EstadosMantenimiento.MostrandoRegistro)
1323 lcOldAsi = loPrevision.
_Asi;
1327 loPrevision.
_Asi =
"";
1330 llOk = loPrevision.
_Save();
1334 this._Error_Message =
"No se pudieron vaciar los campos de pago en la previsión de pago Proveedor "+tcProveedor+
" Factura " + tcFactura.Trim() +
" Orden " + tnOrden.ToString();
1340 if (!
string.IsNullOrWhiteSpace(lcOldAsi))
1343 String lcEjerDB = DB.Ejercicio_EW;
1344 DataTable loDt = _ObtenerEjerciciosAsi(
new List<String>() { lcOldAsi });
1346 if (loDt.Rows.Count > 0)
1348 string lcEjer = Convert.ToString(loDt.Rows[0][
"EJERCICIO"]);
1349 functions.Clases.CambioEjercicio loEjer =
new functions.Clases.CambioEjercicio();
1351 if (lcEjer != lcEjerDB) loEjer._Cambiar(lcEjer);
1353 loAsiento =
new Asientos(lcOldAsi);
1354 if (!loAsiento._Delete(
false))
1356 this._Error_Message =
string.Format(
"No se pudo eliminar el asiento de pago correspondiente a la previsión de pago proveedor {0}, factura {1}, orden {2} y ejercicio {3} : {4}", tcProveedor, loPrevision.
_Factura.Trim(), loPrevision.
_Numereb.ToString().Trim(), lcEjer, loAsiento._Mensaje_Error);
1360 if (lcEjer != lcEjerDB) loEjer._Restablecer();
1369 this.borrarAsientosRelacionados(lcOldAsi);
1400 DB.Registrar_Error(e);
1401 this._Error_Message = e.Message;
1409 #endregion MÉTODOS PRIVADOS PARA CONTABILIZACION DE REMESAS DE PREVISIONES DE PAGO 1412 #region MÉTODOS PRIVADOS PARA AÑADIR PREVISIONES DE PAGO A REMESA DE PAGO 1436 private bool addPrevisiones(DataRow[] taDataRowsPrevis, out DataRow[] taDataRowPrevisNoAnadidas)
1440 this.remesaBancariaDetallePrevis.
_isLoading =
true;
1444 taDataRowPrevisNoAnadidas =
new DataRow[0];
1451 Dictionary<string, object> loDicBusqueda =
new Dictionary<string, object>();
1452 loDicBusqueda[
"_Empresa"] =
"";
1453 loDicBusqueda[
"_Periodo"] = 0;
1454 loDicBusqueda[
"_Cuenta"] =
"";
1455 loDicBusqueda[
"_Factura"] =
"";
1456 loDicBusqueda[
"_Orden"] = 0;
1457 loDicBusqueda[
"_Pendiente"] = 0;
1458 loDicBusqueda[
"_Emision"] = DateTime.Today;
1461 bool llCrearLinea =
false;
1463 foreach (DataRow aRowPrevision
in taDataRowsPrevis)
1467 if (Convert.ToInt32(aRowPrevision[
"remesa"]) != 0 || Convert.ToBoolean(aRowPrevision[
"asiento"]) ||
1468 !
string.IsNullOrWhiteSpace(Convert.ToString(aRowPrevision[
"asi"])) || Convert.ToString(aRowPrevision[
"pagada"]) ==
"S" )
1472 DataRow laRowPrevisNoAnadida = aRowPrevision.Table.NewRow();
1473 laRowPrevisNoAnadida.ItemArray = aRowPrevision.ItemArray;
1477 Array.Resize(ref taDataRowPrevisNoAnadidas, taDataRowPrevisNoAnadidas.GetLength(0) + 1);
1478 taDataRowPrevisNoAnadidas[taDataRowPrevisNoAnadidas.GetLength(0) - 1] = aRowPrevision;
1484 loDicBusqueda[
"_Empresa"] = Convert.ToInt32(aRowPrevision[
"empresa"]);
1485 loDicBusqueda[
"_Periodo"] = Convert.ToInt32(aRowPrevision[
"periodo"]);
1486 loDicBusqueda[
"_Cuenta"] = Convert.ToString(aRowPrevision[
"proveedor"]);
1487 loDicBusqueda[
"_Factura"] = Convert.ToString(aRowPrevision[
"factura"]);
1488 loDicBusqueda[
"_Orden"] = Convert.ToInt32(aRowPrevision[
"numereb"]);
1489 loDicBusqueda[
"_Pendiente"] = Convert.ToInt32(aRowPrevision[
"pendiente"]);
1490 loDicBusqueda[
"_Emision"] = Convert.ToDateTime(aRowPrevision[
"emision"]);
1492 RemesaBancariaDetallePrevis.Linea loLinea = this.remesaBancariaDetallePrevis.
_GetItem(loDicBusqueda);
1493 if (loLinea != null)
1499 DataRow laRowPrevisNoAnadida = aRowPrevision.Table.NewRow();
1500 laRowPrevisNoAnadida.ItemArray = aRowPrevision.ItemArray;
1504 Array.Resize(ref taDataRowPrevisNoAnadidas, taDataRowPrevisNoAnadidas.GetLength(0)+1);
1505 taDataRowPrevisNoAnadidas[taDataRowPrevisNoAnadidas.GetLength(0)-1] = aRowPrevision;
1510 if (lnContador == 0)
1515 if (this.remesaBancariaDetallePrevis.
_CurrentItem == null)
1517 llCrearLinea =
true;
1521 if (this.remesaBancariaDetallePrevis.
_CurrentItem.Fila_Plena())
1522 llCrearLinea =
true;
1524 llCrearLinea =
false;
1528 llCrearLinea =
true;
1535 loLinea = this.remesaBancariaDetallePrevis.
_NewItem();
1538 loLinea = this.remesaBancariaDetallePrevis.
_CurrentItem;
1540 loLinea._Periodo = Convert.ToInt32(aRowPrevision[
"periodo"]);
1544 loLinea._Emision = Convert.ToDateTime(aRowPrevision[
"emision"]);
1545 loLinea._Factura = Convert.ToString(aRowPrevision[
"factura"]);
1546 loLinea._Orden = Convert.ToInt32(aRowPrevision[
"numereb"]);
1547 loLinea._Pendiente = Convert.ToInt32(aRowPrevision[
"pendiente"]);
1549 loLinea._Cuenta = Convert.ToString(aRowPrevision[
"proveedor"]);
1550 loLinea._Importe = Convert.ToDecimal(aRowPrevision[
"importe"]);
1552 loLinea._ImporteDiv = Convert.ToDecimal(aRowPrevision[
"importediv"]);
1553 loLinea._Cambio = Convert.ToDecimal(aRowPrevision[
"cambio"]);
1555 loLinea._Divisa = Convert.ToString(aRowPrevision[
"divisa"]);
1557 loLinea._ImporteDiv = Convert.ToDecimal(aRowPrevision[
"importediv"]);
1558 loLinea._Cambio = Convert.ToDecimal(aRowPrevision[
"cambio"]);
1565 loLinea._Vencim = Convert.ToDateTime(aRowPrevision[
"vencim"]);
1581 if (aRowPrevision[
"fecreme"] == DBNull.Value || aRowPrevision[
"fecreme"] == null)
1582 loLinea._FecReme = null;
1584 loLinea._FecReme = Convert.ToDateTime(aRowPrevision[
"fecreme"]);
1599 this.remesaBancariaDetallePrevis.
_SaveItem(loLinea);
1608 DB.Registrar_Error(e);
1609 this._Error_Message = e.Message;
1613 this.remesaBancariaDetallePrevis.
_isLoading =
false;
1640 private bool addPrevisiones(List<PrevisionPago> toLstPrevis, out List<PrevisionPago> tolstPrevisNoAnadidas)
1644 this.remesaBancariaDetallePrevis.
_isLoading =
true;
1648 tolstPrevisNoAnadidas =
new List<PrevisionPago>();
1656 Dictionary<string, object> loDicBusqueda =
new Dictionary<string, object>();
1657 loDicBusqueda[
"_Empresa"] =
"";
1658 loDicBusqueda[
"_Periodo"] = 0;
1659 loDicBusqueda[
"_Cuenta"] =
"";
1660 loDicBusqueda[
"_Factura"] =
"";
1661 loDicBusqueda[
"_Orden"] = 0;
1662 loDicBusqueda[
"_Pendiente"] = 0;
1663 loDicBusqueda[
"_Emision"] = DateTime.Today;
1665 bool llCrearLinea =
false;
1671 if (loPrevision.
_Remesa != 0 || loPrevision.
_Asiento || !
string.IsNullOrWhiteSpace(loPrevision.
_Asi) || loPrevision.
_Pagada==
"S" )
1673 tolstPrevisNoAnadidas.Add(loPrevision);
1679 loDicBusqueda[
"_Empresa"] = loPrevision.
_Empresa;
1680 loDicBusqueda[
"_Periodo"] = loPrevision.
_Ejercicio;
1681 loDicBusqueda[
"_Cuenta"] = loPrevision.
_Proveedor;
1682 loDicBusqueda[
"_Factura"] = loPrevision.
_Factura;
1683 loDicBusqueda[
"_Orden"] = loPrevision.
_Numereb;
1684 loDicBusqueda[
"_Pendiente"] = loPrevision.
_Pendiente;
1687 RemesaBancariaDetallePrevis.Linea loLinea = this.remesaBancariaDetallePrevis.
_GetItem(loDicBusqueda);
1689 if (loLinea != null)
1691 tolstPrevisNoAnadidas.Add(loPrevision);
1696 if (lnContador == 0)
1701 if (this.remesaBancariaDetallePrevis.
_CurrentItem == null)
1703 llCrearLinea =
true;
1707 if (this.remesaBancariaDetallePrevis.
_CurrentItem.Fila_Plena())
1708 llCrearLinea =
true;
1710 llCrearLinea =
false;
1714 llCrearLinea =
true;
1721 loLinea = this.remesaBancariaDetallePrevis.
_NewItem();
1724 loLinea = this.remesaBancariaDetallePrevis.
_CurrentItem;
1728 loLinea._Factura = loPrevision.
_Factura;
1729 loLinea._Orden = loPrevision.
_Numereb;
1735 loLinea._Concepto = loPrevision.
_Concepto;
1736 loLinea._Importe = loPrevision.
_Importe;
1739 loLinea._Cambio = loPrevision.
_Cambio;
1740 loLinea._Divisa = loPrevision.
_Divisa;
1747 this.remesaBancariaDetallePrevis.
_SaveItem(loLinea);
1756 DB.Registrar_Error(e);
1757 this._Error_Message = e.Message;
1761 this.remesaBancariaDetallePrevis.
_isLoading =
false;
1772 private bool crearCabeceraRemesa(ParamCreacionRemesaPago loParamCreaCnf)
1776 string lcNumero =
"";
1777 this._Error_Message =
"";
1783 lcNumero = this._Suma_Numero(
"");
1787 if (!
string.IsNullOrWhiteSpace(lcNumero))
1789 this.
_Codigo = this._cEmpresa +
"|" + lcNumero.Trim();
1792 this._Fecha = loParamCreaCnf._Fecha;
1794 this._EsquemaSepa = loParamCreaCnf._EsquemaSepa;
1795 if (!
string.IsNullOrWhiteSpace(loParamCreaCnf._Banco))
1796 this._Banco = loParamCreaCnf._Banco;
1802 this._Error_Message =
"No se pudo crear la remesa, no se pudo obtener un nuevo número de remesa.";
1808 DB.Registrar_Error(e);
1809 this._Error_Message = e.Message;
1817 #endregion MÉTODOS PRIVADOS PARA AÑADIR PREVISIONES DE PAGO A REMESA DE PAGO 1820 #endregion MÉTODOS PRIVADOS 1828 #region PROPIEDADES PROTECTED 1834 protected string _lcMonedaEmpresa = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_moneda"));
1855 #endregion PROPIEDADES PROTECTED 1858 #region PROPIEDADES PUBLICAS 1882 public bool _isLoading =
false;
1885 #endregion PROPIEDADES PUBLICAS 1888 #region CONSTRUCTORES 1897 this.crearEstructura();
1901 #endregion CONSTRUCTORES 1904 #region MÉTODOS PRIVADOS 1910 private void crearEstructura()
1914 string lcCuentaStdProv = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_proveed"));
1915 string lcCuentaStdAcre = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_acreed"));
1920 string lcCuentaStrRemunPendPago = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_remupenpag"));
1925 this._DataBase =
"COMUNES";
1926 this._Tabla =
"PREVIS";
1927 this._OrdenarPor =
"VENCIM";
1929 this._Condicion =
"";
1930 this._Titulo_Browser =
"";
1933 ewCampoTRel def_Empresa = this._AddCampoTRel(
"_Empresa",
"Empresa");
1943 def_Empresa.
_Titulo =
"Empresa";
1953 ewCampoTRel def_Numero = this._AddCampoTRel(
"_Numero",
"Remesa");
1957 def_Numero.
_Error_Duplicados =
"Ha introducido un valor que ya está asignado a otro registro. No se permiten valores duplicados en este campo.";
1958 def_Numero.
_Error_Validar_Dato =
"Ha introducido un valor que no se ha encontrado en su mantenimiento origen.";
1963 def_Numero.
_Titulo =
"Número";
1973 ewCampoTRel def_Periodo = this._AddCampoTRel(
"_Periodo",
"Periodo");
1977 def_Periodo.
_Error_Duplicados =
"Ha introducido un valor que ya está asignado a otro registro. No se permiten valores duplicados en este campo.";
1978 def_Periodo.
_Error_Validar_Dato =
"Ha introducido un valor que no se ha encontrado en su mantenimiento origen.";
1983 def_Periodo.
_Titulo =
"Periodo";
1994 ewCampoTRel def_Emision = this._AddCampoTRel(
"_Emision",
"Emision");
2004 def_Emision.
_Titulo =
"Emision";
2015 ewCampoTRel def_Factura = this._AddCampoTRel(
"_Factura",
"Factura");
2016 if (this._nLenFactura <= 20)
2041 def_Factura.
_Titulo =
"Factura";
2051 def_Factura.
_Mante._NombreManteNet =
"PREV_PAG";
2052 def_Factura.
_Mante._Tooltip =
"Acceder al mantenimiento de la previsión de pago seleccionada.";
2060 def_Factura.
_Browser._Campos =
"Factura, Proveedor";
2061 def_Factura.
_Browser._Campo_Predet =
"Factura";
2062 def_Factura.
_Browser._Clave =
"Factura";
2063 def_Factura.
_Browser._DataBase =
"comunes";
2064 def_Factura.
_Browser._Tabla =
"previs";
2065 def_Factura.
_Browser._Titulo =
"Listado de previsiones de pago pendientes.";
2066 def_Factura.
_Browser._Titulos_Campos =
"Factura, Proveedor";
2067 def_Factura.
_Browser.NombreMantenimiento =
"PREV_PAG";
2068 def_Factura.
_Browser._Tooltip =
"Buscar y añadir previsiones de pago a la remesa";
2070 ewCampoTRel def_Orden = this._AddCampoTRel(
"_Orden",
"Numereb");
2091 def_Orden.
_Mante._NombreManteNet =
"PREV_PAG";
2092 def_Orden.
_Mante._Tooltip =
"Acceder al mantenimiento de la previsión de pago seleccionada";
2099 def_Orden.
_Browser._Campos =
"Factura, Proveedor";
2100 def_Orden.
_Browser._Campo_Predet =
"Factura";
2101 def_Orden.
_Browser._Clave =
"Factura";
2102 def_Orden.
_Browser._DataBase =
"comunes";
2103 def_Orden.
_Browser._Tabla =
"previs";
2104 def_Orden.
_Browser._Titulo =
"Listado de previsiones de pago pendientes.";
2105 def_Orden.
_Browser._Titulos_Campos =
"Factura, Proveedor";
2106 def_Orden.
_Browser.NombreMantenimiento =
"PREV_PAG";
2107 def_Orden.
_Browser._Tooltip =
"Buscar y añadir previsiones de pago a la remesa";
2110 ewCampoTRel def_Pendiente = this._AddCampoTRel(
"_Pendiente",
"Pendiente");
2120 def_Pendiente.
_Titulo =
"Pendiente";
2131 ewCampoTRel def_Cuenta = this._AddCampoTRel(
"_Cuenta",
"Proveedor");
2141 def_Cuenta.
_Titulo =
"Proveedor";
2152 def_Cuenta.
_Browser._Campos =
"Codigo,Nombre";
2153 def_Cuenta.
_Browser._Campo_Predet =
"Nombre";
2154 def_Cuenta.
_Browser._Clave =
"CODIGO";
2155 def_Cuenta.
_Browser._DataBase =
"GESTION";
2156 def_Cuenta.
_Browser._Tabla =
"cuentas";
2157 def_Cuenta.
_Browser._Titulo =
"Buscar Cuenta";
2158 def_Cuenta.
_Browser._Titulos_Campos =
"Código,Nombre";
2159 def_Cuenta.
_Browser._Condicion =
"codigo in "+CONTABILIDAD._CuentasProveedores(
"codigo");
2162 def_Cuenta.
_Browser._Tooltip =
"Acceder a la consulta de cuentas";
2164 def_Cuenta.
_Mante._NombreManteNet =
"CUENTAS";
2165 def_Cuenta.
_Mante._Tooltip =
"Acceder al mantenimiento de la cuenta de la previsión seleccionada";
2167 ewCampoTRel def_Nombrecuenta = this._AddCampoTRel(
"_Nombrecuenta",
"");
2171 def_Nombrecuenta.
_Error_Duplicados =
"Ha introducido un valor que ya está asignado a otro registro. No se permiten valores duplicados en este campo.";
2172 def_Nombrecuenta.
_Error_Validar_Dato =
"Ha introducido un valor que no se ha encontrado en su mantenimiento origen.";
2177 def_Nombrecuenta.
_Titulo =
"Nombre";
2187 ewCampoTRel def_Vencim = this._AddCampoTRel(
"_Vencim",
"Vencim");
2197 def_Vencim.
_Titulo =
"Vencimiento";
2207 ewCampoTRel def_Importe = this._AddCampoTRel(
"_Importe",
"Importe");
2217 def_Importe.
_Titulo =
"Importe";
2226 def_Importe.
_Mascara = mascaraGranTotal;
2228 ewCampoTRel def_ImporteDiv = this._AddCampoTRel(
"_ImporteDiv",
"Importediv");
2238 def_ImporteDiv.
_Titulo =
"ImporteDiv";
2247 def_ImporteDiv.
_Mascara = mascaraGranTotal;
2250 ewCampoTRel def_Cambio = this._AddCampoTRel(
"_Cambio",
"Cambio");
2260 def_Cambio.
_Titulo =
"Cambio";
2269 def_Cambio.
_Mascara = mascaraGranTotal;
2271 ewCampoTRel def_Divisa = this._AddCampoTRel(
"_Divisa",
"Divisa");
2281 def_Divisa.
_Titulo =
"Divisa";
2292 ewCampoTRel def_Concepto = this._AddCampoTRel(
"_Concepto",
"Concepto");
2302 def_Concepto.
_Titulo =
"Concepto";
2313 ewCampoTRel def_FecReme = this._AddCampoTRel(
"_FecReme",
"Fecreme");
2323 def_FecReme.
_Titulo =
"Fecha remesa";
2333 ewCampoTRel def_NumBanco = this._AddCampoTRel(
"_NumBanco",
"Num_Banco");
2343 def_NumBanco.
_Titulo =
"Num_Banco";
2354 this._AddCampoTRel(
"_TipoPag",
"TipoPag",
false,
true,
false);
2360 #endregion MÉTODOS PRIVADOS 2363 #region MÉTODOS PUBLIC OVERRIDE SOBREESCRITOS DE EWMANTTREL 2374 this._Claves._Numero._Valor = Convert.ToInt32(document.
_Numero);
2376 this._isLoading =
true;
2380 this._isLoading =
false;
2396 bool deleted =
false;
2398 deleted = base._DeleteItem(toItem);
2402 if (toItem.Fila_Plena())
2406 string sql =
"Update " + DB.SQLDatabase(
"comunes",
"previs") +
" " +
2407 "set remesa=0, fecreme=null " +
2408 "Where empresa=" + DB.SQLString(toItem._Empresa) +
" and " +
2409 "proveedor=" + DB.SQLString(toItem._Cuenta) +
" and " +
2410 "factura=" + DB.SQLString(toItem._Factura) +
" and " +
2411 "numereb=" + DB.SQLString(toItem._Orden) +
" and " +
2412 "pendiente=" + DB.SQLString(toItem._Pendiente) +
" and " +
2413 "periodo=" + DB.SQLString(toItem._Periodo);
2419 this._oRemesa._Totalizar();
2440 bool lbRetorn =
true;
2443 sql =
"Update " + DB.SQLDatabase(
"comunes",
"previs") +
" " +
2444 "set remesa=" +DB.SQLString(toItem._Numero)+
", concepto="+DB.SQLString(toItem._Concepto)+
" "+
2445 "Where empresa=" + DB.SQLString(toItem._Empresa) +
" and " +
2446 "proveedor=" + DB.SQLString(toItem._Cuenta) +
" and " +
2447 "factura=" + DB.SQLString(toItem._Factura) +
" and " +
2448 "numereb=" + DB.SQLString(toItem._Orden) +
" and " +
2449 "pendiente=" + DB.SQLString(toItem._Pendiente) +
" and " +
2450 "periodo=" + DB.SQLString(toItem._Periodo);
2451 lbRetorn = DB.SQLExec(sql);
2457 #endregion MÉTODOS PUBLIC OVERRIDE SOBREESCRITOS DE EWMANTTREL 2460 #region MÉTODOS PROTECTED OVERRIDE SOBREESCRITOS DE EWMANTETREL 2477 bool lbRetorn =
true;
2480 sql =
"Update " + DB.SQLDatabase(
"comunes",
"previs") +
" "+
2482 "Where empresa=" + DB.SQLString(Convert.ToString(dataroweliminar[
"empresa"])) +
" and " +
2483 "proveedor=" + DB.SQLString(Convert.ToString(dataroweliminar[
"proveedor"])) +
" and " +
2484 "factura=" + DB.SQLString(Convert.ToString(dataroweliminar[
"factura"])) +
" and " +
2485 "numereb=" + DB.SQLString(Convert.ToInt32(dataroweliminar[
"numereb"])) +
" and " +
2486 "pendiente=" + DB.SQLString(Convert.ToInt32(dataroweliminar[
"pendiente"])) +
" and " +
2487 "periodo=" + DB.SQLString(Convert.ToInt32(dataroweliminar[
"periodo"])); ;
2488 lbRetorn = DB.SQLExec(sql);
2508 bool lbRetorn =
true;
2511 sql =
"Update " + DB.SQLDatabase(
"comunes",
"previs") +
" " +
2513 "Where empresa=" + DB.SQLString(loItem._Empresa) +
" and " +
2514 "proveedor=" + DB.SQLString(loItem._Cuenta) +
" and " +
2515 "factura=" + DB.SQLString(loItem._Factura) +
" and " +
2516 "numereb=" + DB.SQLString(loItem._Orden) +
" and " +
2517 "pendiente=" + DB.SQLString(loItem._Pendiente) +
" and " +
2518 "periodo=" + DB.SQLString(loItem._Periodo);
2519 lbRetorn = DB.SQLExec(sql);
2544 lcSql =
"UPDATE " + DB.SQLDatabase(
"COMUNES",
"PREVIS") +
" " +
2546 "WHERE EMPRESA=" + DB.SQLString(this._Claves._Empresa._Valor) +
" AND " +
2547 "REMESA=" + Convert.ToString(this._Claves._Numero._Valor).Trim();
2548 llOk = DB.SQLExec(lcSql);
2552 DB.Registrar_Error(e);
2553 this._oRemesa._Error_Message = e.Message;
2561 #endregion MÉTODOS PROTECTED OVERRIDE SOBREESCRITOS DE EWMANTETREL 2627 this._Empresa._EsFiltro =
true;
2628 this._Empresa._EsCampoLinea =
false;
2634 this._Numero._EsFiltro =
true;
2635 this._Numero._EsCampoLinea =
false;
2641 this._Periodo._EsFiltro =
false;
2642 this._Periodo._EsCampoLinea =
false;
2648 this._Cuenta._EsFiltro =
false;
2649 this._Cuenta._EsCampoLinea =
false;
2655 this._Factura._EsFiltro =
false;
2656 this._Factura._EsCampoLinea =
false;
2662 this._Orden._EsFiltro =
false;
2663 this._Orden._EsCampoLinea =
false;
2669 this._Pendiente._EsFiltro =
false;
2670 this._Pendiente._EsCampoLinea =
false;
2676 this._Emision._EsFiltro =
false;
2677 this._Emision._EsCampoLinea =
false;
2693 public string _Empresa
2697 return this._cEmpresa;
2701 this._cEmpresa = value;
2707 private string _cEmpresa =
"";
2731 return this._cNumero;
2735 this._cNumero = value;
2741 private int _cNumero = 0;
2752 return this._nPeriodo;
2756 this._nPeriodo = value;
2762 private int _nPeriodo = 0;
2769 public DateTime? _Emision
2773 return this._dEmision;
2777 this._dEmision = value;
2783 private DateTime?_dEmision = DateTime.Today;
2790 public string _Factura
2794 return this._cFactura;
2799 string lcValorAnterior = this._cFactura;
2802 value =
new string(
' ', lnLenFacturaCompra);
2804 value = value.Trim().PadLeft(lnLenFacturaCompra,
' ');
2806 if (value.Trim() != lcValorAnterior.Trim())
2808 if (this._oParent._isLoading)
2810 this._cFactura = value;
2814 if (!
string.IsNullOrWhiteSpace(value) && this._nOrden != 0 && !
string.IsNullOrWhiteSpace(this._cCuenta))
2819 bool llOk = this.validarPrevisionPago(value, this._nOrden, this._cCuenta, out loPrevisionPago);
2822 this._cFactura = value;
2823 this.rellenarLineaDatosPrevisionPago(loPrevisionPago);
2827 this._cFactura = value;
2835 private string _cFactura =
"";
2845 return this._nOrden;
2849 int lnValorAnterior = this._nOrden;
2851 if (value != lnValorAnterior)
2853 if (this._oParent._isLoading)
2855 this._nOrden = value;
2859 if (!
string.IsNullOrWhiteSpace(this._cFactura) && value != 0 && !
string.IsNullOrWhiteSpace(this._cCuenta))
2864 bool llOk = this.validarPrevisionPago(this._cFactura, value, this._cCuenta, out loPrevisionPago);
2867 this._nOrden = value;
2868 this.rellenarLineaDatosPrevisionPago(loPrevisionPago);
2872 this._nOrden = value;
2880 private Int32 _nOrden = 0;
2887 public Int32 _Pendiente
2891 return this._nPendiente;
2895 this._nPendiente = value;
2901 private Int32 _nPendiente = 0;
2908 public string _Cuenta
2912 return this._cCuenta;
2916 string lcValorAnterior = this._cCuenta;
2921 value = FUNCTIONS._Punto_Por_Ceros(value);
2923 if (value.Trim() != lcValorAnterior.Trim())
2925 if (this._oParent != null)
2927 if (this._oParent.CamposTRel_Validar_Valor(
"_Cuenta", value,
this))
2928 value = this._cCuenta;
2931 if (this._oParent._isLoading)
2933 this._cCuenta = value;
2937 if (!
string.IsNullOrWhiteSpace(this._cFactura) && this._nOrden != 0 && !
string.IsNullOrWhiteSpace(value) )
2942 bool llOk = this.validarPrevisionPago(this._cFactura, this._nOrden, value, out loPrevisionPago);
2945 this._cCuenta = value;
2946 this.rellenarLineaDatosPrevisionPago(loPrevisionPago);
2952 this._NombreCuenta =
"";
2956 this._cCuenta = value;
2965 private string _cCuenta =
"";
2972 public string _NombreCuenta
2976 return this._cNombrecuenta;
2980 this._cNombrecuenta = value;
2986 private string _cNombrecuenta =
"";
2993 public DateTime? _Vencim
2997 return this._dVencim;
3001 this._dVencim = value;
3007 private DateTime? _dVencim = DateTime.Today;
3014 public decimal _Importe
3018 return this._nImporte;
3022 this._nImporte = value;
3028 private decimal _nImporte = 0;
3036 public decimal _ImporteDiv
3040 return this._nImporteDiv;
3044 this._nImporteDiv = value;
3050 private decimal _nImporteDiv = 0;
3057 public decimal _Cambio
3061 return this._nCambio;
3065 this._nCambio = value;
3071 private decimal _nCambio = 0;
3078 public string _Divisa
3082 return this._cDivisa;
3086 this._cDivisa = value;
3092 private string _cDivisa =
"";
3099 public string _Concepto
3103 return this._cConcepto;
3107 this._cConcepto = value;
3113 private string _cConcepto =
"";
3120 public string _TipoPag
3124 return this._cTipoPag;
3128 this._cTipoPag = value;
3131 private string _cTipoPag =
"";
3142 return this._nNumeReb;
3146 this._nNumeReb = value;
3149 private int _nNumeReb = 0;
3151 private Int32 _nNumBanco = 99;
3155 public Int32 _NumBanco
3159 return this._nNumBanco;
3163 this._nNumBanco = value;
3171 public String _CuentaBancaria
3176 String lcCuenta =
"";
3177 DataTable loDt =
new DataTable();
3180 if (_NumBanco != 99)
3182 lcSql = String.Format(
"SELECT * FROM {0} WHERE CODIGO = {1} AND PROVEEDOR = {2}", DB.SQLDatabase(
"GESTION",
"BANC_PRO"), _NumBanco, DB.SQLString(_Cuenta));
3183 DB.SQLExec(lcSql, ref loDt);
3185 if (loDt.Rows.Count == 0)
3187 lcSql = String.Format(
"SELECT * FROM {0} WHERE CODIGO = {1} AND CUENTA = {2}", DB.SQLDatabase(
"GESTION",
"BANC_CUE"), _NumBanco, DB.SQLString(_Cuenta));
3188 DB.SQLExec(lcSql, ref loDt);
3196 DataTable ldtBancoAnticipoTrabajador =
new DataTable();
3198 bool llOk = DB.SQLExec(
"SELECT b.banco, b.ctabanco, b.ctasucur, b.digcon, b.ctacuenta, b.iban, b.cuentaiban, b.orden, b.swift ,b.tipocta " +
3199 $
"FROM {DB.SQLDatabase("GESTION
", "CUENTAS
")} c LEFT JOIN {DB.SQLDatabase("GESTION
", "BANC_CUE
")} b ON c.codigo = b.cuenta " +
3200 $
"WHERE c.anticiprem = {DB.SQLString(_Cuenta)}", ref ldtBancoAnticipoTrabajador);
3202 if (llOk && ldtBancoAnticipoTrabajador != null && ldtBancoAnticipoTrabajador.Rows.Count == 1)
3203 loDt = ldtBancoAnticipoTrabajador.Copy();
3205 FUNCTIONS._DisposeDatatable(ref ldtBancoAnticipoTrabajador);
3208 if (loDt.Rows.Count > 0)
3210 lbOcultar = !usuario.Usuario._This._Opcesp(
"0084");
3211 lcCuenta = functions.FUNCTIONS._Formatear_Cuenta_Bancaria(Convert.ToString(loDt.Rows[0][
"tipocta"]), Convert.ToString(loDt.Rows[0][
"iban"]), Convert.ToString(loDt.Rows[0][
"cuentaiban"]).Trim(), lbOcultar);
3222 public DateTime? _FecReme
3226 return this._dFecReme;
3230 this._dFecReme = value;
3236 private DateTime? _dFecReme = DateTime.Today;
3242 public dynamic _Parent
3244 get {
return this._oParent; }
3258 get {
return this._oParent.
_oRemesa; }
3277 bool lbFilaPlena =
true;
3279 lbFilaPlena = !
string.IsNullOrWhiteSpace(this._Factura) && this._Orden != 0 &&
3280 !
string.IsNullOrWhiteSpace(this._Cuenta);
3294 private bool validarPrevisionPago(
string tcFactura,
int tnOrden,
string tcProveedor, out
PrevisionPago toPrevisionPago)
3296 string lcEmpresa = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa"));
3305 if (ldtPrevisionesFacturaOrden.Rows.Count == 0)
3312 this._oRemesa._Error_Message_LineaRemesa =
"La previsión de pago introducida no existe.";
3319 DataView ldviewPrevPendi = ldtPrevisionesFacturaOrden.DefaultView;
3320 ldviewPrevPendi.RowFilter =
"remesa=0 and asi='' and pagada<>'S'";
3321 DataTable ldtPrevisionesPendientes = ldviewPrevPendi.ToTable();
3322 if (ldtPrevisionesPendientes.Rows.Count == 0 && ldtPrevisionesFacturaOrden.Rows.Count > 0)
3329 this._oRemesa._Error_Message_LineaRemesa =
"La previsión de pago introducida ya está remesada o pagada.";
3333 int lnPeriodo = 0, lnPendiente = 0;
3334 if (ldtPrevisionesPendientes.Rows.Count > 1)
3336 if (this._oRemesa._LinkForm ||
this._oRemesa._lLinkadoFormulario)
3341 ldtPrevisionesPendientes.Columns[
"empresa"].ExtendedProperties.Add(
"NoVisible",
true);
3342 ldtPrevisionesPendientes.Columns[
"pendiente"].ExtendedProperties.Add(
"NoVisible",
true);
3343 ldtPrevisionesPendientes.Columns[
"importediv"].ExtendedProperties.Add(
"NoVisible",
true);
3344 ldtPrevisionesPendientes.Columns[
"remesa"].ExtendedProperties.Add(
"NoVisible",
true);
3345 ldtPrevisionesPendientes.Columns[
"asi"].ExtendedProperties.Add(
"NoVisible",
true);
3346 ldtPrevisionesPendientes.Columns[
"pagada"].ExtendedProperties.Add(
"NoVisible",
true);
3348 ldtPrevisionesPendientes.Columns[
"numereb"].Caption =
"Orden";
3349 ldtPrevisionesPendientes.Columns[
"emision"].Caption =
"Emisión";
3350 ldtPrevisionesPendientes.Columns[
"vencim"].Caption =
"Vencimiento";
3352 formul.Forms.Seleccionar loFormSeleccionar =
new formul.Forms.Seleccionar();
3353 loFormSeleccionar._Boto_Aceptar =
true;
3354 loFormSeleccionar.MinimumSize =
new System.Drawing.Size(400, 250);
3358 loFormSeleccionar.MaximumSize =
new System.Drawing.Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height - 100);
3360 loFormSeleccionar._Ajustar_Alto_A_Registros =
true;
3361 loFormSeleccionar._HeightMin = 250;
3362 loFormSeleccionar._Texto_Cancelar =
"&Salir";
3363 loFormSeleccionar._ReadOnly =
true;
3364 loFormSeleccionar._Solo_lectura =
true;
3365 loFormSeleccionar._Redimensionable =
false;
3366 loFormSeleccionar._MultipleSeleccion =
true;
3367 loFormSeleccionar._Titulo =
"Previsiones de pago pendientes con idéntico nº de factura y orden";
3368 loFormSeleccionar._Texto_Aceptar =
"S&eleccionar";
3369 loFormSeleccionar._DataTable = ldtPrevisionesPendientes;
3371 bool llSeleccionada =
false, llSalir =
false;
3374 loFormSeleccionar._ShowDialog();
3375 if (DialogResult.OK == loFormSeleccionar.DialogResult && loFormSeleccionar._DataRowSelect != null)
3377 lnPeriodo = Convert.ToInt32(loFormSeleccionar._DataRowSelect[
"periodo"]);
3378 lnPendiente = Convert.ToInt32(loFormSeleccionar._DataRowSelect[
"pendiente"]);
3379 llSeleccionada =
true;
3386 while (!llSeleccionada && !llSalir);
3388 if (!llSeleccionada)
3399 lnPeriodo = Convert.ToInt32(ldtPrevisionesPendientes.Rows[0][
"periodo"]);
3400 lnPendiente = Convert.ToInt32(ldtPrevisionesPendientes.Rows[0][
"pendiente"]);
3407 lnPeriodo = Convert.ToInt32(ldtPrevisionesPendientes.Rows[0][
"periodo"]);
3408 lnPendiente = Convert.ToInt32(ldtPrevisionesPendientes.Rows[0][
"pendiente"]);
3419 if (loProv.
_Estado == _EstadosMantenimiento.MostrandoRegistro)
3425 this._oRemesa._Error_Message_LineaRemesa =
"La previsión de pago introducida corresponde a un proveedor ('"+ tcProveedor +
"') que no tiene marcado en su ficha 'Gestión de SEPA', en cambio, "+
3426 "la remesa es de tipo SEPA. No se puede agregar la previsión de pago a la remesa.";
3434 Dictionary<string, object> loDicBusqueda =
new Dictionary<string, object>();
3435 loDicBusqueda[
"_Empresa"] = lcEmpresa;
3436 loDicBusqueda[
"_Periodo"] = lnPeriodo;
3437 loDicBusqueda[
"_Cuenta"] = tcProveedor;
3438 loDicBusqueda[
"_Factura"] = tcFactura;
3439 loDicBusqueda[
"_Orden"] = tnOrden;
3440 loDicBusqueda[
"_Pendiente"] = lnPendiente;
3442 RemesaBancariaDetallePrevis.Linea loLinea = this._oParent.
_GetItem(loDicBusqueda);
3443 if (loLinea != null)
3445 this._oRemesa._Error_Message_LineaRemesa =
"La previsión de pago introducida ya está incorporada a la remesa.";
3454 toPrevisionPago._Empresa = lcEmpresa;
3455 toPrevisionPago._Ejercicio = lnPeriodo;
3456 toPrevisionPago._Proveedor = tcProveedor;
3457 toPrevisionPago._Factura = tcFactura;
3458 toPrevisionPago._Numereb = tnOrden;
3459 toPrevisionPago._Pendiente = lnPendiente;
3460 toPrevisionPago._Load();
3466 this._oRemesa._Error_Message_LineaRemesa =
"No es posible incluir previsiones con signo negativo en los ficheros SEPA, " +
3467 "utilice el tipo de esquema 'Ninguno' para gestionar remesas sin fichero para gestión interna.";
3474 if (!
string.IsNullOrWhiteSpace(toPrevisionPago._Divisa) && toPrevisionPago._Divisa != EW_GLOBAL._Empresa._Moneda)
3476 Divisa loDivisaEmpresa =
new Divisa(EW_GLOBAL._Empresa._Moneda);
3477 string lcNombreMonedaEmpresa = loDivisaEmpresa.
_Nombre.Trim();
3478 lcNombreMonedaEmpresa = !
string.IsNullOrWhiteSpace(lcNombreMonedaEmpresa) ? lcNombreMonedaEmpresa : loDivisaEmpresa.
_NombreMoneda.Trim();
3479 lcNombreMonedaEmpresa = !
string.IsNullOrWhiteSpace(lcNombreMonedaEmpresa) ? lcNombreMonedaEmpresa : loDivisaEmpresa.
_Abrev.Trim();
3480 this._oRemesa._Error_Message_LineaRemesa =
"No se puede añadir la previsión indicada a la remesa. Solo se pueden añadir previsiones de divisa " + lcNombreMonedaEmpresa;
3481 loDivisaEmpresa = null;
3488 if (!
string.IsNullOrWhiteSpace(toPrevisionPago._Num_Pag))
3490 this._oRemesa._Error_Message_LineaRemesa =
"La previsión de pago introducida ya está incluida en un pagaré (" + toPrevisionPago._Num_Pag.Trim() +
")." + Environment.NewLine + Environment.NewLine +
3491 "Para gestionar el pago deberá hacerlo desde el pagaré.";
3497 if (!
string.IsNullOrWhiteSpace(toPrevisionPago._Refundir))
3499 this._oRemesa._Error_Message_LineaRemesa =
"La previsión de pago introducida está incluida en una agrupación de previsiones (" + toPrevisionPago._Refundir.Trim() +
")." + Environment.NewLine + Environment.NewLine +
3500 "No se puede agregar esta previsión.";
3508 bool llContinuar = this._oRemesa._RevisarCreditoEntidad(-this._Importe + toPrevisionPago._Importe,
true);
3521 private void rellenarLineaDatosPrevisionPago(
PrevisionPago toPrevisionPago)
3526 this._Pendiente = toPrevisionPago.
_Pendiente;
3529 this._Concepto = toPrevisionPago.
_Concepto;
3530 this._Importe = toPrevisionPago.
_Importe;
3532 this._Divisa = toPrevisionPago.
_Divisa;
3533 this._Cambio = toPrevisionPago.
_Cambio;
3537 this._oRemesa._Totalizar();
3555 #region CONSTRUCTORES 3562 : base(loDocumentoImprimible)
3566 this.configuracionInicialImpRemPago();
3570 #endregion CONSTRUCTORES 3573 #region MÉTODOS PRIVADOS 3578 public override UserControl _UserControlAdicional
3582 UserControls.OpcionesImpresionRemesa loUserControl = (
UserControls.OpcionesImpresionRemesa)base._UserControlAdicional;
3583 loUserControl._TipoPagoCobro =
UserControls.OpcionesImpresionRemesa.TipoPagoCobro.Pago;
3585 return loUserControl;
3589 base._UserControlAdicional = value;
3596 private void configuracionInicialImpRemPago()
3602 #endregion MÉTODOS PRIVADOS
Clave()
Inicializa una nueva instancia de la clase.
Definición de atributos para el report
ewMascara _Mascara
Máscara para columnas numéricas
sage.ew.botones.btMante _Mante
Mantenimiento para la columna del grid o campo enlazado
Campos clave para registros únicos y carga de registros
bool _PermiteDuplicados
Indica si se permiten valores duplicados comparando el campo con todos los registros cargados ...
string _Validar_Dato_Clave
Clave por la cual se buscará el valor a la tabla de validación
new int _Ejercicio
Ejercicio
FormaContabilRemesaPago
Enumeración para los diferentes criterios de contabilización de una remesa bancaria de pago...
RemesaBancariaDetallePrevis _oParent
Objeto padre a la instancia.
RemesaBancariaDetallePrevis()
Inicializa una nueva intancia de la clase.
Object _Grid
ewgrid o Mantegrid enlazado a Items
bool _ExpandirPunto
Introduce 0 en la posición del . hasta la longitud del campo
RemesaBancariaPago()
Inicializa una nueva instancia de la clase
Clase de negocio base para remesa bancaria.
bool _AddPrevisiones(DataRow[] taDataRowsPrevis, out DataRow[] toDataRowsPrevisNoAnadidas, bool tlSave=false)
Añade a una remesa de pago una lista de previsiones de pago recibida en forma de array de DataRows...
Definición de los objetos campo para las tablas relacionadas
string _Empresa
Código de empresa.
string _Validar_Dato_BaseDatos
Base de datos donde se validará si el dato existe
string _Proveedor
Código de proveedor Contable
Objeto DocPrint específico para remesa bancaria de pago.
Browser, basat en sage.ew.objetos.ewbutton
override void _Show()
Mostrar el formulario de remesa bancaria de pago con los datos del objeto de negocio RemesaBancariaPa...
int _Numero
Número de asiento.
decimal _ImporteDiv
ImporteDiv
bool _isLoading
Flag que utilizaremos si estamos dentro de una operación _Load() del ManteTRel o dentro de una operac...
BindingList< _LinTRel > _Items
Lista bindable de todos los items de la tabla relacionada
_LinTRel _NewItem(int tnInsertLinea=-1)
Añade un nuevo item a la colección Items y rellena los valores de la claves
Clase utilizada para realizar asientos contables.
Clase de negocio Proveedor
bool Fila_Plena()
Devuelve true si la línea está completa, false si falta declarar algún campo.
decimal _AnchoColumna
Permite indicar el ancho en carácteres estándar 'A' que va a tener al columna en el grid...
new void _ShowDialog()
Método que se dispara cuando hay que mostrar el formulario asociado
KeyDiccionarioLenCampos
Clave del diccionario LenCampos
override void apuntarARemesaTipoDocumento(TipoDocumentoRemesa teTipoDocumentoRemesa)
Acciones a realizar al cargar una remesa de pago de un determinado tipo de documento. Actualmente solo se pueden hacer remesas de pago de previsiones, pero en previsión de que algún día puedan solicitar poder hacer remesas de pagarés de pago, lo dejamos preparado.
bool _AddPrevisiones(List< PrevisionPago > toLstPrevis, out List< PrevisionPago > tolstPrevisNoAnadidas, bool tlSave=false)
Añade a una remesa de pago existente una lista de previsiones de pago recibida en formato de lista de...
string _Validar_Dato_Tabla
Tabla donde se validará si el dato existe
_EstadosMantenimiento _Estado
Estado en que se encuentra el registro
AsiRemAgruparPor
Diferentes opciones contabilizar una remesa de cobro o pago haciendo asiento por diferentes conceptos...
override bool _Comprobaciones_GenerarSepa()
Comprobaciones a realizar antes de generar fichero SEPA de una remesa de pago.
new string _Empresa
Empresa a la que pertenece la remesa.
Clase del objeto grid para Sage50
TipoDocumentoRemesa
Tipo de documento para remesas de cobro/pago: de previsiones o de pagarés.
override List< string > obtenerListaAsis()
Obtener lista de ASIS detectados en las previsiones de pago de la remesa. Caso de tener activado el o...
DateTime _Fecha_Remesa
Fecha de remesa
override void Inicializar()
Métodoo para incializar el documento
sage.ew.botones.btBrowser _Browser
Browser para la columna del grid o campo enlazado
override bool _Save()
Método publico para guardar los datos de la previsión.
override bool _Contabilizar(Dictionary< string, object > toDicParametros)
Contabilizar remesa de pago.
bool _Editable
Indica si el campo será editable
DocPrintRemesaBancariaPago(IDocumentoImprimible loDocumentoImprimible)
Constructor
Definición de los objetos campo para las tablas relacionadas
void _Set_GridDetalleRemesaPrevisiones(objetos.UserControls.Mantegrid mantegrid)
Asignar el grid al mantetrel de detalle de remesa bancaria de previsiones.
DateTime _Fecha_Vencim
Fecha vencimiento de previsión
Clase para las previsiones de pago de proveedores
string _Numero
Número de remesa.
override bool _BorrarTodosRegistros()
Método llamado desde el borrado de remesa de pago. Elimina el campo REMESA de los registros de previs...
static bool _EsAnticipoTrabajador(string tcCodigo)
Comprueba si es una cuenta de anticipo de remuneración (trabajador)
bool _Save()
Método publico para guardar asientos.
ewMascara _MascaraImporte
Máscara de importe
TipoRemesaBancaria
Tipos generales de remesa bancaria (remesa de cobro, remesa de pago).
Objeto genérico DocPrint para remesa bancaria.
AsiRemCtaEfecDesc
Diferentes opciones contabilizar una remesa de cobro o pago por vencimientos en cuanta a utilizar o n...
virtual string _Nombre
Campo nombre del mantenimiento. En este hay que basar los demás campos en las clases heredadas ...
bool _Visible
Indica si el campo serà visible cuando se enlaza a un grid
bool _Updatable
Indica si el campo se recupera y guarda en la tabla
gridColumnsTypes _TipoColumna
Tipo de columna para grid o tipo de control enlazado
Muestra el mantenimiento correspondiente a _Form con el registro correspondiente al _Codigo ...
override bool _BorrarRegistro(DataRow dataroweliminar)
Sobreescritura del método _BorrarRegistro de la clase base ewManteTRel el cual borra el registro reci...
Proporciona características adicionales de las máscaras de Eurowin
override bool _BorrarRegistro(RemesaBancariaDetallePrevis.Linea loItem)
Sobreescritura del método _BorrarRegistro de la clase base ewManteTRel el cual borra el registro reci...
override bool actualizarCamposCobroPagoEnPrevisiones(string tcAsi, DateTime tdFechaAsiento, string tcCuentaContableBanco, DateTime? tdFechaDescuento=null, List< Tuple< int, string, int, int, int, string >> tlstPrevisiones=null)
Método llamado al finalizar la contabilización de una remesa de previsiones de pago en cualquier de s...
Definición de la interfície necesaria para las páginas(tabPage) a utilizar en formularios de tipo For...
static string _DigitosNivel3CuentaAnticipoTrabajador()
Devuelve los dígitos de nivel 3 de la cuenta de anticipo de trabajador
string _FormatString
Máscara para columnas de tipo TextoFormateado
string _Validar_Dato_CampoTRel_Asignar
Destino del valor recuperado en la consulta de validación
override bool _DeleteItem(RemesaBancariaDetallePrevis.Linea toItem)
Sobreescritura del método _DeleteItem de la clase base ewManteTRel para que después de eliminar un re...
bool _CrearRemesaPrevisiones(ParamCreacionRemesaPago loParamCreaCnf, List< PrevisionPago > toLstPrevis, out List< PrevisionPago > tolstPrevisNoAnadidas, bool tlSave=true)
Crea una remesa de pago de previsiones a partir de una configuración de parámetros de cabecera de rem...
string _Banco
Cuenta banco
Interfaz para objetos línea
Clase de negocio para remesa bancaria de pago.
string _Factura
Número de factura
override bool _DesContabilizar()
Descontabilizar remesa de pago.
Definir la estructura de las líneas.
DateTime _Fecha_Pago
Fecha de pago
string _Validar_Dato_Campos
Campos que se recuperarán en la consulta de validación
string _Error_Duplicados
Mensaje de error que se mostrará al insertar un valor duplicado
Linea()
Inicializa una nueva intancia de la clase
Interfaz para la definición de las claves para tablas relacionadas
Clase de negocio para la DIVISA (Moneda)
string _NombreMoneda
Nombre de la moneda
string _Mensaje_Error
Mensaje de error
Clase para el acceso a las tablas relacionadas de los mantenimientos.
Definición de la interficie que deben cumplir los documentos de cualquier tipo para poder interactuar...
Clase para las lineas de la remesa de pago, serán las previsiones de pago incluidas en la remesa...
Interface para lineas de remesas de previsiones (válida para remesas de cobro y remesas de pago)...
bool _CSB_Sepa
Nos permitirá indicar si este proveedor trabajará con CSB / SEPA
RemesaBancariaPago _oRemesa
Objeto de negocio RemesaBancariaPago del cual cuelga el mantetrel de previsiones de pago de la remesa...
DateTime _Fecha_Emision
Fecha emisión de previsión
gridColumnsTypes
Definición de los tipos de columnas para los grids o campos enlazados
override bool generarAsientosPorConcepto(AsiRemAgruparPor teAsiRemAgruparPor, AsiRemCtaEfecDesc teAsiRemCtaEfecDesc, string tcCuentaContableBanco, string tcCuentaContablaEfecDescBanco, Dictionary< string, List< string >> toDicAsiEfecRemCta, ref string tcAsiRemesa)
Generar asientos por cada vencimiento o para cada proveedor según se informe por parámetro.
DataGridViewAutoSizeColumnMode _AutoModeSizeColumna
Permite indicar que la columna autoajuste su tamaño
bool _Delete(bool tlActivarValidaciones)
si se pasa un true al borrar realiza todas la validaciones del borrado como si estuvieras al formular...
string _Titulo
Título para mostrar en el label asociado o en el encabezado de columna
TipoEsquemaRemesaSepaPagos
Tipos de esquema remesa SEPA para remesas de pago
override Boolean _SaveItem(RemesaBancariaDetallePrevis.Linea toItem)
Sobreescritura del método _SaveItem de la clase base ewManteTRel el cual inserta el registro recibido...
bool _CrearRemesaPrevisiones(ParamCreacionRemesaPago loParamCreaCnf, DataRow[] taDataRowsPrevis, out DataRow[] toDataRowsPrevisNoAnadidas, bool tlSave=true)
Crea una remesa de pago de previsiones a partir de una configuración de parámetros de cabecera de rem...
override void _Load()
Establecer valores de claves
_LinTRel _GetItem(string tcCompareProperty, object toValueCompare)
Devuelve el objeto _LinTRel que corresponde con el valor de la propiedad
RemesaBancariaPago(int numero)
Inicializa una nueva instancia de la clase
override void _Load()
Realiza la carga de los datos de la previsión de pago.
Clase base para configuración de parámetros para crear una remesa de pago.
override string _Codigo
override de _Codigo para que en el Set podamos convertir el número que nos llega a código de cliente ...
bool _Validar_Asignar_Cargando
Indica si se buscará el dato en la tabla correspondiente mientras se ejecuta el _Load() ...
string _Divisa
Moneda de la previsión
Presenta un datagridview con botones añadir y borrar tipo Mantegrid de Eurowin
string _Error_Validar_Dato
Mensaje de error que se mostrará al insertar un dato no válido
ewMascara mascaraGranTotal
Máscara de importe para columna importe de previsión/pagaré.
static DataTable _PrevisionesPagoFacturaOrden(string tcEmpresa, string tcProveedor, string tcFactura, int tnOrden, bool tlSoloPendientes=true)
Busca todos los registros de prevision de pago que pueda haber en los diferentes ejercicios cuyo prov...
_LinTRel _CurrentItem
Linea actual