2 using System.Collections.Generic;
3 using System.ComponentModel;
22 using System.Text.RegularExpressions;
26 namespace sage.ew.docscompra
33 #region PROPIEDADES PRIVADAS 39 private string _lcAny = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_any"));
45 private string _cMonedaEmpresa = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_moneda"));
51 private string _cEmpresa = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa"));
57 private bool _lEmpresaNormal = Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_normal"));
63 private bool _lEjerPartido = Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_parti"));
69 private DateTime _dPeriodoIni = Convert.ToDateTime(EW_GLOBAL._GetVariable(
"wd_periodoini"));
75 private DateTime _dPeriodoFin = Convert.ToDateTime(EW_GLOBAL._GetVariable(
"wd_periodofin"));
81 private bool _lEfectoPag = Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_efectopag"));
87 private string _cEfecProv = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_efec_pro"));
93 private string _cEfecAcre = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_efec_acre"));
99 private string _cProveedor = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_proveed"));
105 private string _cAcreedor = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_acreed"));
113 #endregion PROPIEDADES PRIVADAS 116 #region PROPIEDADES PUBLICAS 122 public string _Empresa
124 get {
return Convert.ToString(_Campo(
"EMPRESA")); }
125 set { _Campo(
"EMPRESA", value); }
137 return Convert.ToString(_Campo(
"BANCO"));
142 if (
string.IsNullOrWhiteSpace(this._Empresa))
143 this._Empresa = this._cEmpresa;
145 _Campo(
"BANCO", value);
154 public string _Pagare
160 return Convert.ToString(_Campo(
"PAGARE")).PadRight(10,
' ');
164 if (
string.IsNullOrWhiteSpace(this._Empresa))
165 this._Empresa = this._cEmpresa;
167 _Campo(
"PAGARE", value);
176 public string _Proveedor
180 return Convert.ToString(_Campo(
"PROVEEDOR"));
184 _Campo(
"PROVEEDOR", value);
186 string lcProveedor =
"";
188 lcProveedor = FUNCTIONS._Punto_Por_Ceros(value);
189 if (this._oProveedor == null)
191 this._oProveedor =
new Cuenta(lcProveedor);
193 else if (lcProveedor != this._oProveedor._Codigo)
195 this._oProveedor._Codigo = lcProveedor;
215 private Cuenta _oProv = null;
222 public DateTime? _Fecha_Emision
226 object loFecha = _Campo(
"FECHA_EXPE");
227 if (loFecha != DBNull.Value && loFecha != null)
229 _Campo(
"FECHA_EXPE", ((DateTime)loFecha).Date);
230 return ((DateTime)loFecha).Date;
237 _Campo(
"FECHA_EXPE", ((DateTime)value).Date);
239 _Campo(
"FECHA_EXPE", null);
248 public DateTime? _Fecha_Emision_Origen {
get;
set; }
255 public DateTime? _Fecha_Vencim
259 object loFecha = _Campo(
"F_VTO");
260 if (loFecha != DBNull.Value && loFecha != null)
262 _Campo(
"F_VTO", ((DateTime)loFecha).Date);
263 return ((DateTime)loFecha).Date;
270 _Campo(
"F_VTO", ((DateTime)value).Date);
272 _Campo(
"F_VTO", null);
281 public decimal _Importe
283 get {
return Convert.ToDecimal(_Campo(
"IMPORTE")); }
284 set { _Campo(
"IMPORTE", value); }
292 public decimal _Importe_Origen {
get;
set; }
300 get {
return Convert.ToBoolean(_Campo(
"CHEQUE")); }
301 set { _Campo(
"CHEQUE", value); }
309 public string _Asiento
311 get {
return Convert.ToString(_Campo(
"ASIENTO")); }
312 set { _Campo(
"ASIENTO", value); }
320 public string _AsiEfectos
322 get {
return Convert.ToString(_Campo(
"ASI_EFECTOS")); }
323 set { _Campo(
"ASI_EFECTOS", value); }
330 public DataTable _Previsiones {
get;
set; }
336 public override string _Nombre
340 return String.Format(
"PAGARE{0}", _Pagare);
349 #region IDocumentoImprimible 355 public string _ReportBase
371 public String _ReportTitlePreview
375 return "Pagaré de pago";
391 if (_oDocPrint == null)
412 return DateTime.Now.ToShortDateString();
417 #endregion IDocumentoImprimible 420 #endregion PROPIEDADES PUBLICAS 423 #region CONSTRUCTORES 431 this.establecerParametros();
442 public PagarePago(
string tcEmpresa =
"",
string tcBanco =
"",
string tcPagare =
"")
444 if (
string.IsNullOrWhiteSpace(tcEmpresa) ||
string.IsNullOrWhiteSpace(tcBanco) ||
string.IsNullOrWhiteSpace(tcPagare))
446 this._Error_Message =
"Parámetros incorrectos.";
450 this.establecerParametros();
452 this._Empresa = tcEmpresa;
453 this._Banco = tcBanco;
454 this._Pagare = tcPagare;
467 string lcEmpresa = Convert.ToString(loRow[
"empresa"]);
468 string lcBanco = Convert.ToString(loRow[
"banco"]);
469 string lcPagare = Convert.ToString(loRow[
"pagare"]);
471 if (
string.IsNullOrWhiteSpace(lcEmpresa) ||
string.IsNullOrWhiteSpace(lcBanco) ||
string.IsNullOrWhiteSpace(lcPagare))
473 this._Error_Message =
"Parámetros incorrectos.";
476 this.establecerParametros();
478 this._Empresa = lcEmpresa;
479 this._Banco = lcBanco;
480 this._Pagare = lcPagare;
488 #endregion CONSTRUCTORES 491 #region METODOS PRIVADOS 498 private bool controlesAsentarPagaresCtaEfectos()
500 bool llExisteAsientoAsiento =
false, llOk =
true;
502 if (!
string.IsNullOrWhiteSpace(this._AsiEfectos))
506 llExisteAsientoAsiento =
true;
508 if (!llExisteAsientoAsiento)
510 if (!this._ExisteAsientoEfectosEjerAnt())
512 llOk = this.generarAsientoEfectos();
517 if (this._Importe != this._Importe_Origen ||
518 this._Fecha_Emision != this._Fecha_Emision_Origen)
520 if (!
string.IsNullOrWhiteSpace(this._AsiEfectos))
522 this.borrarAsientoEfectos();
524 llOk = this.generarAsientoEfectos();
535 private bool generarAsientoEfectos()
539 DateTime ldtFechaAsiento = Convert.ToDateTime(this._Fecha_Emision);
543 loAsiento.
_Fecha = ldtFechaAsiento;
544 loAsiento.
_Divisa = this._cMonedaEmpresa;
549 string lcFactura =
"", lcDefinicion =
"";
551 decimal lnImporte = 0;
553 foreach (DataRow loRow
in this._Previsiones.Rows)
555 llSel = Convert.ToBoolean(loRow[
"sel"]);
558 lcFactura = Convert.ToString(loRow[
"factura"]);
559 lnOrden = Convert.ToInt32(loRow[
"numereb"]);
560 lnImporte = Convert.ToDecimal(loRow[
"importe"]);
562 lcDefinicion =
"Pago factura " + lcFactura.Trim() +
"/" + Convert.ToString(lnOrden) +
" en pagaré " + this._Pagare;
563 this.asientoNuevaLinea(loAsiento, this._Proveedor, lcDefinicion, 1,
"D", lnImporte);
569 string lcCtaEfectos = this.cuentaEfectos(this._Proveedor);
571 this.asientoNuevaLinea(loAsiento, lcCtaEfectos,
"Pagaré " + this._Pagare, 1,
"H", this._Importe);
575 llOk = loAsiento.
_Save();
579 this._Error_Message =
"No se ha podido generar el asiento del pagaré utilizando cuenta de efectos a pagar." + Environment.NewLine + Environment.NewLine +
585 this._AsiEfectos = loAsiento.
_Lineas[0]._Asi;
599 private bool borrarAsientoEfectos()
603 if (!
string.IsNullOrWhiteSpace(this._AsiEfectos))
611 this._AsiEfectos =
"";
626 private bool asientoPeriodoCerrado(
string tcAsi)
628 if (
string.IsNullOrWhiteSpace(tcAsi))
634 DateTime ldtFechaAsiento = loAsiento.
_Fecha;
638 if (FUNCTIONS._Comprovar_Mes_Cerrado(ldtFechaAsiento))
640 this._Error_Message =
"No se puede desasentar el pagaré, la fecha del asiento (" + ldtFechaAsiento.ToShortDateString() +
") corresponde a un mes cerrado contablemente.";
652 private void establecerParametros()
654 _Browser_Titulos_Campos =
"Banco, Pagaré, Proveedor, Nombre, Importe, F.Emisión, F.Vencimiento, Contabilizado";
655 _Browser_Campos =
"p.banco, p.pagare, p.proveedor, " + DB.SQLNvl(
"c.nombre",
"''") +
" as nombre, p.importe, p.fecha_expe, p.f_vto, " + DB.SQLIif(
"p.asiento = ' ' ", DB.SQLFalse(), DB.SQLTrue()) +
" as contabilizado ";
656 _Browser_Campos_No_Visibles =
"p.empresa";
658 _Browser_Campo_Predet =
"pagare ";
660 _Browser_Clave =
"empresa,banco,pagare";
661 _Browser_Condicion =
"empresa= " + DB.SQLString(_cEmpresa);
663 _Clave =
"empresa,banco,pagare";
664 _DataBase =
"GESTION";
666 _TituloMantenimiento =
"Emisión de pagarés";
667 _Pregunta_Borrar =
"¿Desea eliminar el pagaré?";
668 _FormManteBaseType = typeof(frmPagarePagoMante);
670 Navegacion._Condicion =
"empresa=" + DB.SQLString(_cEmpresa);
681 private string cuentaEfectos(
string tcCuenta)
683 string tcCuentaEfecto =
"";
684 string lcCuentaProv = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_proveed"));
685 string lcCuentaAcre = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_acreed"));
687 if (tcCuenta.Substring(0, 3) == this._cProveedor.Substring(0, 3) && !
string.IsNullOrWhiteSpace(this._cEfecProv))
688 tcCuentaEfecto = this._cEfecProv.Substring(0, 3) + tcCuenta.Substring(3, this._nDigitos-3);
691 if (tcCuenta.Substring(0, 3) == this._cAcreedor.Substring(0, 3) && !
string.IsNullOrWhiteSpace(this._cEfecAcre))
692 tcCuentaEfecto = this._cEfecAcre.Substring(0, 3) + tcCuenta.Substring(3, this._nDigitos - 3);
694 tcCuentaEfecto = tcCuenta.Substring(0, 2) +
"1" + tcCuenta.Substring(3, this._nDigitos - 3);
704 return tcCuentaEfecto;
717 private void asientoNuevaLinea(
Asientos toAsiento,
string tcCuenta,
string tcDefinicion, decimal tnCambio,
string tcDebeHaber, decimal tnImporte)
721 loAsientoLinea.
_Linea = lnLinia;
723 loAsientoLinea.
_Cuenta = tcCuenta;
725 loAsientoLinea.
_Cambio = tnCambio;
727 if (tcDebeHaber ==
"D")
729 loAsientoLinea.
_Debe = tnImporte;
730 loAsientoLinea.
_Haber = 0;
734 loAsientoLinea.
_Haber = tnImporte;
735 loAsientoLinea.
_Debe = 0;
755 private bool enlacePrevisionPagare(
string tcEmpresa,
int tnPeriodo,
string tcProveedor,
string tcFactura,
int tnOrden,
int tnPendiente,
bool tlEnlazar)
761 PrevisionPago loPrevision =
new PrevisionPago();
762 loPrevision._Empresa = tcEmpresa;
763 loPrevision._Ejercicio = tnPeriodo;
764 loPrevision._Proveedor = tcProveedor;
765 loPrevision._Factura = tcFactura;
766 loPrevision._Numereb = tnOrden;
767 loPrevision._Pendiente = tnPendiente;
770 if (loPrevision._Estado == _EstadosMantenimiento.MostrandoRegistro)
774 loPrevision._Num_Pag = this._Pagare;
775 loPrevision._Imppagare = this._Importe;
776 loPrevision._Fecha_Vencim2 = this._Fecha_Vencim;
777 loPrevision._Banco = this._Banco;
778 loPrevision._Cheque = this._Cheque;
782 loPrevision._Num_Pag =
"";
783 loPrevision._Imppagare = 0;
784 loPrevision._Fecha_Vencim2 = null;
785 loPrevision._Cheque =
false;
788 llOk = loPrevision._Save();
791 this._Error_Message =
"No se pudieron actualizar los campos de enlace de la previsión de pago de la Factura " + tcFactura.Trim() +
" Orden " + tnOrden.ToString() +
" Proveedor " + tcProveedor.Trim() +
" con el pagaré.";
796 DB.Registrar_Error(e);
797 this._Error_Message = e.Message;
819 private void nuevaPrevision(
int tnPeriodo,
string tcProveedor,
string tcFactura,
int tnOrden,
int tnPendiente, decimal tnImporte)
821 DataTable ldtMaxOrden =
new DataTable();
822 int lnNuevoOrden = 0;
828 string lcSql =
"select max(numereb) as maxorden from " + DB.SQLDatabase(
"comunes",
"previs") +
" " +
829 "where empresa=" + DB.SQLString(this._cEmpresa) +
" and " +
830 "periodo=" + DB.SQLString(tnPeriodo) +
" and " +
831 "proveedor=" + DB.SQLString(tcProveedor) +
" and " +
832 "factura=" + DB.SQLString(tcFactura);
833 DB.SQLExec(lcSql, ref ldtMaxOrden);
835 if (ldtMaxOrden.Rows.Count > 0)
836 lnNuevoOrden = Convert.ToInt32(ldtMaxOrden.Rows[0][
"maxorden"]) + 1;
842 PrevisionPago loPrevisionOriginal =
new PrevisionPago();
843 loPrevisionOriginal._Empresa = this._cEmpresa;
844 loPrevisionOriginal._Ejercicio = tnPeriodo;
845 loPrevisionOriginal._Proveedor = tcProveedor;
846 loPrevisionOriginal._Factura = tcFactura;
847 loPrevisionOriginal._Numereb = tnOrden;
848 loPrevisionOriginal._Pendiente = tnPendiente;
849 loPrevisionOriginal._Load();
853 PrevisionPago loPrevisionNueva =
new PrevisionPago();
854 loPrevisionNueva._New(loPrevisionOriginal._Proveedor,
this._cEmpresa, tcFactura,
856 tnImporte, Convert.ToDateTime(loPrevisionOriginal._Fecha_Emision),
857 Convert.ToDateTime(loPrevisionOriginal._Fecha_Vencim),
858 this._cMonedaEmpresa, loPrevisionOriginal._Num_Banco,
859 loPrevisionOriginal._Banco,
860 loPrevisionOriginal._Referencia,
861 (loPrevisionOriginal._Fecha_Operacion == null ? loPrevisionOriginal._Fecha_Operacion : Convert.ToDateTime(loPrevisionOriginal._Fecha_Operacion)),
862 loPrevisionOriginal._Forma_Pago,
863 loPrevisionOriginal._Recc, loPrevisionOriginal._Ejercicio, loPrevisionOriginal._Cambio, tnImporte);
867 loPrevisionNueva =
new PrevisionPago();
868 loPrevisionNueva._Empresa = this._cEmpresa;
869 loPrevisionNueva._Ejercicio = tnPeriodo;
870 loPrevisionNueva._Proveedor = tcProveedor;
871 loPrevisionNueva._Factura = tcFactura;
872 loPrevisionNueva._Numereb = lnNuevoOrden;
873 loPrevisionNueva._Pendiente = 0;
874 loPrevisionNueva._Load();
876 if (loPrevisionNueva._Estado == _EstadosMantenimiento.MostrandoRegistro)
878 loPrevisionNueva._Concepto =
"Generada por emisión pagaré: " + this._Pagare.Trim() +
" (diferencia de total pagaré)";
879 loPrevisionNueva._Asiento =
false;
880 loPrevisionNueva._Remesa = 0;
881 loPrevisionNueva._Asi =
"";
882 loPrevisionNueva._Refundir =
"";
883 loPrevisionNueva._Imppagare = 0;
884 loPrevisionNueva._Num_Pag =
"";
885 loPrevisionNueva._Pagada =
"N";
886 loPrevisionNueva._Fecha_Vencim2 = null;
887 llOk = loPrevisionNueva._Save();
891 this._Error_Message =
"No se ha podido actualizar la nueva previsión por la diferencia para la Factura " + tcFactura.Trim() +
" Orden " + lnNuevoOrden.ToString() +
" Proveedor " + tcProveedor;
897 decimal lnNuevoImporte = (loPrevisionOriginal._Importe - tnImporte);
898 loPrevisionOriginal._Importe = lnNuevoImporte;
899 loPrevisionOriginal._ImporteDiv = lnNuevoImporte;
900 llOk = loPrevisionOriginal._Save();
902 this._Error_Message =
"No se ha podido actualizar la previsión original para la Factura " + tcFactura.Trim() +
" Orden " + tnOrden.ToString() +
" Proveedor " + tcProveedor;
909 FUNCTIONS._MessageBox(
"Se ha generado una nueva previsión para la factura " + tcFactura.Trim() +
" proveeedor " + tcProveedor +
" con un importe de " + tnImporte.ToString(loMascara.
_Mascara_Net),
"Emisión de pagarés",
910 System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Stop,
System.Windows.Forms.MessageBoxDefaultButton.Button1);
935 private bool actCamposPagoEnPrevis(
string tcEmpresa,
int tnPeriodo,
string tcProveedor,
string tcFactura,
int tnOrden,
int tnPendiente,
string tcAsi, DateTime tdFechaAsiento)
941 PrevisionPago loPrevision =
new PrevisionPago();
942 loPrevision._Empresa = tcEmpresa;
943 loPrevision._Ejercicio = tnPeriodo;
944 loPrevision._Proveedor = tcProveedor;
945 loPrevision._Factura = tcFactura;
946 loPrevision._Numereb = tnOrden;
947 loPrevision._Pendiente = tnPendiente;
950 if (loPrevision._Estado == _EstadosMantenimiento.MostrandoRegistro)
952 loPrevision._Pagada =
"S";
953 loPrevision._Asiento =
true;
954 loPrevision._Asi = tcAsi;
955 loPrevision._Fecha_Pago = tdFechaAsiento;
956 llOk = loPrevision._Save();
959 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() +
960 Environment.NewLine + Environment.NewLine + loPrevision._Error_Message;
965 DB.Registrar_Error(e);
966 this._Error_Message = e.Message;
974 #endregion METODOS PRIVADOS 977 #region MÉTODOS PROTECTED OVERRIDE 985 base._DescargarDatos();
988 this._Importe_Origen = 0;
989 this._Fecha_Emision_Origen = null;
991 if (this._Previsiones is DataTable && this._Previsiones.Rows.Count > 0)
992 this._Previsiones.Clear();
998 #endregion MÉTODOS PROTECTED OVERRIDE 1001 #region MÉTODOS PÚBLICOS 1014 loDocPrint.
_FechaEmision = Convert.ToDateTime(_Fecha_Emision);
1018 if (loDt.Rows.Count > 0)
1020 loDocPrint.
_CodigoEntidad = Convert.ToString(loDt.Rows[0][
"CODIGO"]);
1021 loDocPrint.
_CodigoBanco = Convert.ToString(loDt.Rows[0][
"CODBANCO"]);
1022 loDocPrint.
_CodigoCarta = Convert.ToString(loDt.Rows[0][
"CARTAPAG"]);
1027 return loDocPrint.
_Print();
1042 DataTable ldtPrevisionesPendientes =
new DataTable();
1047 string lcSql =
"select empresa, proveedor, factura, numereb, pendiente, emision, periodo, vencim, importe, banco, " + DB.SQLFalse() +
" as sel " +
1048 "from " + DB.SQLDatabase(
"comunes",
"previs") +
" " +
1049 "where empresa=" + DB.SQLString(this._cEmpresa) +
" and " +
1050 "proveedor=" + DB.SQLString(this._Proveedor) +
" and " +
1051 "banco=" + DB.SQLString(this._Banco) +
" and " +
1052 "emision>=" + DB.SQLString(tdFEmisionIni) +
" and emision <= " + DB.SQLString(tdFEmisionFin) +
" and " +
1053 "num_pag=" + DB.SQLString(
" ") +
" and " +
1054 "asiento=" + DB.SQLFalse() +
" and " +
1056 "refundir=" + DB.SQLString(
" ") +
" " +
1058 "select empresa, proveedor, factura, numereb, pendiente, emision, periodo, vencim, importe, banco, " + DB.SQLTrue() +
" as sel " +
1059 "from " + DB.SQLDatabase(
"comunes",
"previs") +
" " +
1060 "where empresa=" + DB.SQLString(this._cEmpresa) +
" and " +
1061 "banco=" + DB.SQLString(this._Banco) +
" and " +
1062 "num_pag=" + DB.SQLString(this._Pagare) +
" " +
1063 "order by factura, numereb, emision";
1064 bool llOk = DB.SQLExec(lcSql, ref ldtPrevisionesPendientes);
1066 return ldtPrevisionesPendientes;
1075 if (
string.IsNullOrWhiteSpace(this._Asiento))
1096 DataTable ldtPagare =
new DataTable();
1097 string lcSql =
"Select empresa, banco, pagare " +
1098 "From " + DB.SQLDatabase(
"gestion",
"pagare_p") +
" " +
1099 "where empresa =" + DB.SQLString(tcEmpresa) +
" and " +
1100 "banco =" + DB.SQLString(tcBanco) +
" and " +
1101 "pagare =" + DB.SQLString(tcPagare);
1102 DB.SQLExec(lcSql, ref ldtPagare);
1104 if (ldtPagare.Rows.Count > 0)
1120 bool llExiste =
false;
1123 DataTable ldtDatosPagare =
new DataTable();
1128 DataTable ldtEjerPost =
new DataTable();
1129 string lcSql =
"select * from " + DB.SQLDatabase(
"comunes",
"ejercici") +
" " +
1130 "where [any]>" + this._lcAny +
" " +
1132 DB.SQLExec(lcSql, ref ldtEjerPost);
1134 if (ldtEjerPost.Rows.Count == 0)
1137 string lcEjercicio =
"", lcBdEjercicio=
"";
1139 foreach (DataRow loRow
in ldtEjerPost.Rows)
1143 lcEjercicio = Convert.ToString(loRow[
"any"]).Trim();
1144 lcBdEjercicio = Convert.ToString(loRow[
"conexion"]).Trim();
1146 lcSql =
"select empresa, banco, pagare " +
1147 "from " + DB.SQLDatabaseReal(lcBdEjercicio,
"pagare_p") +
" " +
1148 "where empresa=" + DB.SQLString(this._Empresa) +
" and " +
1149 "banco = " + DB.SQLString(this._Banco) +
" and " +
1150 "pagare = " + DB.SQLString(this._Pagare);
1151 DB.SQLExec(lcSql, ref ldtDatosPagare);
1153 if (ldtDatosPagare.Rows.Count > 0)
1157 tcMensaje =
"Se han encontrado el pagaré en periodos posteriores al actual, debe eliminar el pagaré en el ejercicio " + lcEjercicio +
" posterior al actual.";
1159 lcAsi = Convert.ToString(ldtDatosPagare.Rows[0][
"asiento"]);
1161 if (!
string.IsNullOrWhiteSpace(lcAsi))
1163 tcMensaje += Environment.NewLine + Environment.NewLine +
"El pagaré # " + this._Pagare +
" tiene el asiento en el ejercicio " +
1164 lcEjercicio +
". Si quiere eliminarlo deberá hacerlo desde ese ejercicio.";
1181 if (
string.IsNullOrWhiteSpace(this._AsiEfectos))
1186 DataTable ldtEjercicios =
new DataTable();
1187 DB.SQLExec(
"select * from " + DB.SQLDatabase(
"comunes",
"ejercici"), ref ldtEjercicios);
1189 List<string> lstEjercicios = (from loRow in ldtEjercicios.AsEnumerable()
1190 select Convert.ToString(loRow[
"any"]).Trim()).ToList();
1192 bool llExisteEjerAnt = lstEjercicios.Contains(Convert.ToString(Convert.ToInt32(
this._lcAny) - 1));
1194 if (llExisteEjerAnt)
1198 int lnNumeroAsiento = Convert.ToInt32(DB.SQLValor(
"asientos",
"ASI",
this._AsiEfectos,
"NUMERO",
"GESTION-1"));
1199 if (lnNumeroAsiento != 0)
1214 int lnNumPagare = 0;
1215 string lcSerie =
"";
1219 if (this._Pagare.Trim().Length >= 3)
1220 lcSerie = this._Pagare.Trim().Substring(0, 3);
1224 if (this._Pagare.Trim().Length >= 4)
1226 llOk = Int32.TryParse(this._Pagare.Substring(3), out lnNumPagare);
1230 string lcCodigoBanco = Convert.ToString(DB.SQLValor(
"bancos",
"cuenta",
this._Banco,
"codigo"));
1231 if (!
string.IsNullOrWhiteSpace(lcCodigoBanco))
1234 bool llRestar = (Convert.ToInt32(loBanco.
_Numero) == lnNumPagare);
1237 if (!
string.IsNullOrWhiteSpace(loBanco.
_Serie) && lcSerie != loBanco.
_Serie)
1261 DataTable ldtPagares =
new DataTable();
1262 bool llOk =
true, llPeriodoCerrado=
false;
1263 DateTime ldtFechaAsiento = DateTime.Today;
1265 string lcAsiNormal =
"";
1269 if (!
string.IsNullOrWhiteSpace(this._Asiento))
1271 llPeriodoCerrado = this.asientoPeriodoCerrado(this._Asiento);
1272 if (llPeriodoCerrado)
1274 lcAsiNormal = this._Asiento;
1279 llOk = this._Save();
1282 this._Error_Message =
"No se ha podido desasentar el pagaré.";
1288 string lcEmpresa =
"", lcProveedor =
"", lcFactura =
"";
1289 int lnPeriodo = 0, lnOrden = 0, lnPendiente = 0;
1291 foreach (DataRow loRowPrevis
in this._Previsiones.Rows)
1293 lcEmpresa = Convert.ToString(loRowPrevis[
"empresa"]);
1294 lnPeriodo = Convert.ToInt32(loRowPrevis[
"periodo"]);
1295 lcProveedor = Convert.ToString(loRowPrevis[
"proveedor"]);
1296 lcFactura = Convert.ToString(loRowPrevis[
"factura"]);
1297 lnOrden = Convert.ToInt32(loRowPrevis[
"numereb"]);
1298 lnPendiente = Convert.ToInt32(loRowPrevis[
"pendiente"]);
1299 llSel = Convert.ToBoolean(loRowPrevis[
"sel"]);
1304 loPrevisionPago.
_Empresa = lcEmpresa;
1307 loPrevisionPago.
_Factura = lcFactura;
1308 loPrevisionPago.
_Numereb = lnOrden;
1310 loPrevisionPago.
_Load();
1316 if (!
string.IsNullOrWhiteSpace(lcAsiNormal))
1318 loAsiento =
new Asientos(lcAsiNormal);
1322 if (loAsiento != null && loAsiento.
_Numero != 0 && loAsiento.
_Lineas.Count > 0)
1327 this._Error_Message =
"No se ha podido eliminar el asiento del pagaré nº " + Convert.ToString(loAsiento.
_Numero);
1336 DB.Registrar_Error(e);
1337 this._Error_Message = e.Message;
1351 if (!
string.IsNullOrWhiteSpace(this._Asiento))
1354 FUNCTIONS._MessageBox(
"El pagaré ya está contabilizado." + Environment.NewLine + Environment.NewLine +
"Imposible eliminar pagaré.",
"Pagarés de pago",
1355 System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Stop,
System.Windows.Forms.MessageBoxDefaultButton.Button1);
1369 for (
int i = this._Previsiones.Rows.Count - 1; i >= 0; i--)
1371 DataRow row = this._Previsiones.Rows[i];
1372 if (Convert.ToBoolean(row[
"sel"]) ==
false)
1373 this._Previsiones.Rows.Remove(row);
1375 this._Previsiones.AcceptChanges();
1395 string tcProveedor =
"",
string tcFactura =
"",
int tnOrden = 0,
int tnPendiente = 0,
1396 decimal tnImporte = 0)
1398 bool llActuOk =
true, llSel =
false;
1399 string lcEmpresa =
"", lcFactura =
"", lcProveedor =
"";
1400 int lnPeriodo = 0, lnOrden = 0, lnPendiente = 0;
1407 foreach (DataRow loRowPrevis
in this._Previsiones.Rows)
1409 lcEmpresa = Convert.ToString(loRowPrevis[
"empresa"]);
1410 lnPeriodo = Convert.ToInt32(loRowPrevis[
"periodo"]);
1411 lcProveedor = Convert.ToString(loRowPrevis[
"proveedor"]);
1412 lcFactura = Convert.ToString(loRowPrevis[
"factura"]);
1413 lnOrden = Convert.ToInt32(loRowPrevis[
"numereb"]);
1414 lnPendiente = Convert.ToInt32(loRowPrevis[
"pendiente"]);
1416 llSel = tlDesenlazarForzado ? false : Convert.ToBoolean(loRowPrevis[
"sel"]);
1418 llActuOk = this.enlacePrevisionPagare(lcEmpresa, lnPeriodo, lcProveedor, lcFactura, lnOrden, lnPendiente, llSel);
1428 if (tlCrearNuevaPrevision)
1429 this.nuevaPrevision(tnPeriodo, tcProveedor, tcFactura, tnOrden, tnPendiente, tnImporte);
1433 DB.Registrar_Error(e);
1434 this._Error_Message = e.Message;
1456 if (toPagare._oProv != null)
1459 this._oProv.
_Load();
1464 this._Empresa = tcEmpresa;
1465 this._Banco = tcBanco;
1466 this._Pagare = tcPagare;
1468 this._Cheque = toPagare.
_Cheque;
1474 this._Guid_Id = Guid.NewGuid().ToString().ToUpper();
1479 catch (Exception loEx)
1481 DB.Registrar_Error(loEx);
1499 bool llActuOk =
true;
1500 string lcEmpresa =
"", lcFactura =
"", lcProveedor=
"";
1501 int lnPeriodo, lnOrden = 0, lnPendiente = 0;
1507 foreach (DataRow loRow
in this._Previsiones.Select(
"sel=true"))
1509 lcEmpresa = Convert.ToString(loRow[
"empresa"]);
1510 lnPeriodo = Convert.ToInt32(loRow[
"periodo"]);
1511 lcProveedor = Convert.ToString(loRow[
"proveedor"]);
1512 lcFactura = Convert.ToString(loRow[
"factura"]);
1513 lnOrden = Convert.ToInt32(loRow[
"numereb"]);
1514 lnPendiente = Convert.ToInt32(loRow[
"pendiente"]);
1518 llActuOk = this.actCamposPagoEnPrevis(lcEmpresa, lnPeriodo, lcProveedor, lcFactura, lnOrden, lnPendiente, tcAsi, tdFechaAsiento);
1528 DB.Registrar_Error(e);
1529 this._Error_Message = e.Message;
1537 #region IDocumentoImprimible 1563 if (loForm.DialogResult == DialogResult.OK)
1596 DateTime? loFechaEmision;
1597 Dictionary<string, object> loDic, loDicProv;
1602 String lcCodigoBanco, lcImporteLetras, lcDigitoControlPagare, lcDigitoCodigoPagareCMC7, lcCodigoEntidad;
1603 String lcCuentaIban, lcEntitadBancaria, lcOficinaBancaria, lcCuentaBancaria, lcCuentaDigitoControl, lcIban, lcBancoIBANPais, lcBancoIBANDigitoControl;
1605 lEsCheque = tdicParametros is Dictionary<string, object> && tdicParametros.ContainsKey(
"EsCheque") ? Convert.ToBoolean(tdicParametros[
"EsCheque"]) :
false;
1606 loFechaEmision = tdicParametros is Dictionary<string, object> && tdicParametros.ContainsKey(
"FechaEmision") ? Convert.ToDateTime(tdicParametros[
"FechaEmision"]) : _Fecha_Emision;
1607 lcCodigoBanco = tdicParametros is Dictionary<string, object> && tdicParametros.ContainsKey(
"CodigoBanco") ? Convert.ToString(tdicParametros[
"CodigoBanco"]) :
"";
1608 lcCodigoEntidad = tdicParametros is Dictionary<string, object> && tdicParametros.ContainsKey(
"CodigoEntidad") ? Convert.ToString(tdicParametros[
"CodigoEntidad"]) :
"";
1614 if (FUNCTIONS._Es_Proveedor(_Proveedor))
1616 loProveedor =
new Proveedor(_Proveedor);
1618 loDicProv.Where(f => !loDic.ContainsKey(f.Key)).ToList().ForEach(f => loDic.Add(f.Key, f.Value));
1622 loCuenta =
new Cuenta(_Proveedor);
1624 string lcDomicilio =
"", lcPoblacion =
"", lcCodPos =
"", lcProvincia =
"", lcTelefono =
"";
1629 lcCodPos = loCuenta.
_CodPost.Trim();
1633 loDic.Add(
"wc_DireccionProveedor", $
"{lcDomicilio}{Environment.NewLine}{lcCodPos} {lcPoblacion}{Environment.NewLine}{lcProvincia}");
1634 loDic.Add(
"wc_Proveedor", _Codigo);
1635 loDic.Add(
"wc_ProveedorNIF", loCuenta.
_GetCif().Trim());
1636 loDic.Add(
"wc_NombreProveedor2",
"");
1637 loDic.Add(
"wc_NombreProveedor", loCuenta.
_Nombre);
1638 loDic.Add(
"wc_TelefonoProveedor", lcTelefono);
1639 loDic.Add(
"wc_PoblacionProveedor", lcPoblacion);
1640 loDic.Add(
"wc_ProvinciaProveedor", lcProvincia);
1641 loDic.Add(
"wc_CPProveedor", lcCodPos);
1642 loDic.Add(
"wc_DomicilioProveedor", lcDomicilio);
1646 if (String.IsNullOrEmpty(lcCodigoBanco) && !String.IsNullOrEmpty(_Banco))
1649 if (loDt.Rows.Count > 0) lcCodigoBanco = Convert.ToString(loDt.Rows[0][
"CODBANCO"]);
1655 loDic.Add(
"wc_Pagare", _Pagare);
1656 loDic.Add(
"wc_FechaVencimiento", _Fecha_Vencim is DateTime ? _Fecha_Vencim?.ToShortDateString() :
"");
1657 loDic.Add(
"wc_FechaExpedicion", loFechaEmision is DateTime ? loFechaEmision?.ToShortDateString() :
"");
1660 lcImporteLetras = FUNCTIONS._Importe_To_Letras(_Importe.ToString(), EW_GLOBAL._Moneda._Codigo);
1661 lcImporteLetras = lcImporteLetras.Replace(
"#",
"");
1662 loDic.Add(
"wc_ImporteLetras", lcImporteLetras);
1664 loDic.Add(
"wc_BancoNombre", loBanco.
_Nombre);
1666 lcIban = loBanco.
_Iban.Trim();
1667 loDic.Add(
"wc_BancoIBAN", lcIban);
1669 lcBancoIBANPais = lcBancoIBANDigitoControl =
"";
1671 if (lcIban.Length > 3)
1673 lcBancoIBANPais = loBanco.
_Iban.Substring(0, 2);
1674 lcBancoIBANDigitoControl = loBanco.
_Iban.Substring(2);
1676 loDic.Add(
"wc_BancoIBANPais", lcBancoIBANPais);
1677 loDic.Add(
"wc_BancoIBANDigitoControl", lcBancoIBANDigitoControl );
1678 loDic.Add(
"wc_BancoDireccion", loBanco.
_Direccion);
1679 loDic.Add(
"wc_BancoPoblacion", loBanco.
_Poblacion);
1680 loDic.Add(
"wc_BancoProvincia", loBanco.
_Provincia);
1681 loDic.Add(
"wc_BancoCP", loBanco.
_CodPost);
1682 loDic.Add(
"wc_BancoCuentaBanco", loBanco.
_CuentaBanco);
1685 lcEntitadBancaria = lcOficinaBancaria = lcCuentaBancaria = lcCuentaDigitoControl =
"";
1688 if (lcCuentaIban.Length > 19)
1690 lcEntitadBancaria = lcCuentaIban.Substring(0, 4);
1691 lcOficinaBancaria = lcCuentaIban.Substring(4, 4);
1692 lcCuentaDigitoControl = lcCuentaIban.Substring(8, 2);
1693 lcCuentaBancaria = lcCuentaIban.Substring(10, 10);
1696 loDic.Add(
"wc_BancoCuentaIBAN", loBanco.
_CuentaIban);
1697 loDic.Add(
"wc_BancoCuentaEntidad", lcEntitadBancaria);
1698 loDic.Add(
"wc_BancoCuentaSucursal", lcOficinaBancaria);
1699 loDic.Add(
"wc_BancoCuentaBancaria", lcCuentaBancaria);
1700 loDic.Add(
"wc_BancoCuentaDigitoControl", lcCuentaDigitoControl);
1702 loDic.Add(
"wn_NumPrevisiones", _Previsiones is DataTable ? _Previsiones.Rows.Count : 0);
1704 lcDigitoControlPagare = lcDigitoCodigoPagareCMC7 =
"";
1708 lcDigitoControlPagare = _GetCodigoControl(_Pagare, loBanco.
_CuentaIban);
1709 lcDigitoCodigoPagareCMC7 = _GetCodigoPagareCMC7(_Pagare, loBanco.
_CuentaIban, String.Format(
"{0:0.00}", _Importe));
1712 loDic.Add(
"wc_DigitoControlPagare", lcDigitoControlPagare);
1713 loDic.Add(
"wc_CodigoPagareCMC7", lcDigitoCodigoPagareCMC7);
1717 loDic =
new Dictionary<string, object>();
1732 private string _GetCodigoPagareCMC7(String tcPagare, String tcCuentaBancaria, String tcImporte)
1734 String lcEntitadBancaria, lcOficinaBancaria, lcCuentaBancaria, lcCodigo =
"";
1736 tcPagare = tcPagare.Trim();
1737 tcPagare = tcPagare.Trim().Length > 7 ? tcPagare.Substring(tcPagare.Length - 7) : tcPagare.PadLeft(7,
'0');
1739 if (tcCuentaBancaria.Length > 19)
1741 lcEntitadBancaria = tcCuentaBancaria.Substring(0, 4);
1742 lcOficinaBancaria = tcCuentaBancaria.Substring(4, 4);
1743 lcCuentaBancaria = tcCuentaBancaria.Substring(10, 10);
1744 tcImporte = tcImporte.PadLeft(11);
1746 lcCodigo = String.Format(
"C{0}E{1}D {2}E {3}B {4}A {5}C ", tcPagare, lcEntitadBancaria, lcOficinaBancaria, lcCuentaBancaria, lcEntitadBancaria, tcImporte);
1760 private String _GetCodigoControl(String tcPagare, String tcCuentaBancaria)
1763 String lcCodigo =
"";
1765 tcPagare = tcPagare.Trim();
1766 tcPagare = tcPagare.Trim().Length > 7 ? tcPagare.Substring(tcPagare.Length - 7) : tcPagare;
1768 tcCuentaBancaria = tcCuentaBancaria.Length > 4 ? tcCuentaBancaria.Substring(0, 4) : tcCuentaBancaria;
1770 if (Int64.TryParse(String.Format(
"{0}{1}", tcCuentaBancaria, tcPagare), out lnNum)) lcCodigo = Convert.ToString(lnNum % 7);
1785 String lcColumnName;
1786 Dictionary<string, object> loColumnsName =
new Dictionary<string, object>();
1787 Dictionary<string, object> loDic;
1789 lEsCheque = tdicParametros.ContainsKey(
"EsCheque") ? Convert.ToBoolean(tdicParametros[
"EsCheque"]) :
false;
1793 loDt =
new DataTable();
1795 if (tdicParametros.ContainsKey(
"EsCheque")) tdicParametros.Remove(
"EsCheque");
1796 loDic = _Obtener_Filtros_SageReports(tdicParametros);
1798 foreach (KeyValuePair<string, object> loKeyValue
in loDic)
1800 lcColumnName = loKeyValue.Key.StartsWith(
"w") && loKeyValue.Key.Substring(2, 1) ==
"_" ? loKeyValue.Key.Substring(3) : loKeyValue.Key;
1802 if (!loColumnsName.ContainsKey(lcColumnName))
1804 loColumnsName.Add(lcColumnName, loKeyValue.Value);
1805 loDt.Columns.Add(lcColumnName);
1809 loRow = loDt.NewRow();
1810 foreach (KeyValuePair<string, object> loKeyValue
in loColumnsName)
1812 loRow[loKeyValue.Key] = loKeyValue.Value;
1814 loDt.Rows.Add(loRow);
1820 loDt = _Previsiones is DataTable ? _Previsiones : _GetPrevisiones();
1821 if (loDt.Columns.Contains(
"sel")) loDt.Columns.Remove(
"sel");
1822 if (loDt.Columns.Contains(
"importe") && !loDt.Columns[
"importe"].ExtendedProperties.ContainsKey(
"Mascara")) loDt.Columns[
"importe"].ExtendedProperties.Add(
"Mascara", loMascaraImport.
_Mascara_Net);
1829 #endregion IDocumentoImprimible 1832 #endregion MÉTODOS PÚBLICOS 1835 #region MÉTODOS PÚBLICOS OVERRIDE 1844 _Pantalla =
"EM_PAGAR";
1848 if (!
string.IsNullOrWhiteSpace(this._Proveedor))
1850 if (this._oProv == null)
1853 this._oProv = loProveedor;
1857 if (this._oProv.
_Codigo !=
this._Proveedor)
1858 this._oProv.
_Codigo = this._Proveedor;
1862 if (!
string.IsNullOrWhiteSpace(this._Banco) && !
string.IsNullOrWhiteSpace(this._Pagare))
1870 if (this._Fecha_Emision == null || this._Fecha_Emision == DateTime.MinValue)
1871 this._Fecha_Emision = DateTime.Today;
1873 if (this._Fecha_Vencim == null || this._Fecha_Vencim == DateTime.MinValue)
1874 this._Fecha_Vencim = DateTime.Today;
1879 this._Fecha_Emision_Origen = this._Fecha_Emision;
1880 this._Importe_Origen = this._Importe;
1883 if (!
string.IsNullOrWhiteSpace(this._Empresa) && !
string.IsNullOrWhiteSpace(this._Banco) && !
string.IsNullOrWhiteSpace(this._Pagare))
1885 this._Previsiones = _GetPrevisiones();
1891 private DataTable _GetPrevisiones()
1894 DataTable ldtPrevisiones =
new DataTable();
1897 lcSql =
"select empresa, proveedor, factura, numereb, pendiente, emision, periodo, vencim, importe, banco, " + DB.SQLTrue() +
" as sel " +
1898 "from " + DB.SQLDatabase(
"comunes",
"previs") +
" " +
1899 "where empresa=" + DB.SQLString(this._cEmpresa) +
" and " +
1900 "banco=" + DB.SQLString(this._Banco) +
" and " +
1901 "num_pag=" + DB.SQLString(this._Pagare) +
" " +
1902 "order by factura, numereb, emision";
1904 DB.SQLExec(lcSql, ref ldtPrevisiones);
1906 return ldtPrevisiones;
1915 bool llOK = base._Delete();
1921 if (!
string.IsNullOrWhiteSpace(this._AsiEfectos))
1922 this.borrarAsientoEfectos();
1926 this._EnlacePrevisionesPagare(
true);
1930 this._Restar_Numero_Pagare();
1950 if (this._lEfectoPag && (this._Fecha_Emision == null || this._Fecha_Emision == DateTime.MinValue))
1952 this._Error_Message =
"Debe introducir la fecha de emisión del pagaré.";
1956 if (
string.IsNullOrWhiteSpace(this._Proveedor))
1958 this._Error_Message =
"Debe introducir el proveedor.";
1962 bool llOk = base._Save_Before();
1966 if (this._lEfectoPag)
1968 llOk = this.controlesAsentarPagaresCtaEfectos();
1978 #endregion MÉTODOS PÚBLICOS OVERRIDE 1988 private DataTable _oDtEntidades;
1993 private Boolean _bShowInfo =
true;
1998 private Boolean _bPrintedByFox =
false;
2000 #region ENUMERACIONES 2011 [Description(
"Pagaré entidad")]
2016 [Description(
"Formato pagaré estándar")]
2017 CartaPagareStandar = 1,
2021 [Description(
"Formato pagaré entidad")]
2022 CartaPagareEntidad = 2
2026 #endregion ENUMERACIONES 2028 #region PROPIEDADES PÚBLICAS 2033 public Boolean _ShowInfoFOX
2048 public Boolean _PrintedByFoxEngine
2052 return _bPrintedByFox;
2059 public TipoImpresion _TipoImpresion
2063 return _oTipoImpresion;
2067 _oTipoImpresion = value;
2070 private TipoImpresion _oTipoImpresion = TipoImpresion.PagareEntidad;
2076 public string _CodigoCarta
2080 return _cCodigoCarta;
2084 if (_cCodigoCarta != value)
2086 _cCodigoCarta = value;
2091 private string _cCodigoCarta =
"";
2097 public string _CodigoEntidad
2101 return _cCodigoEntidad;
2105 _cCodigoEntidad = value;
2108 private string _cCodigoEntidad =
"";
2114 public string _CodigoBanco
2118 return _cCodigoBanco;
2122 _cCodigoBanco = value;
2125 private string _cCodigoBanco =
"";
2131 public DateTime _MaxFechaEmision
2135 return _oMaxFechaEmision;
2139 _oMaxFechaEmision = value;
2142 private DateTime _oMaxFechaEmision = DateTime.MaxValue;
2148 public DateTime _FechaEmision
2152 return _oFechaEmision;
2156 _oFechaEmision = value;
2159 private DateTime _oFechaEmision = DateTime.Now;
2165 if (_oCarta == null) _oCarta =
new Mail500(_CodigoCarta);
2172 #endregion PROPIEDADES PÚBLICAS 2174 #region PROPIEDADES PÚBLICAS OVERRIDE 2180 public override UserControl _UserControlAdicional
2184 if(_oUserControlAdicional == null)
2196 return loUserControl;
2205 #endregion PROPIEDADES PÚBLICAS OVERRIDE 2207 #region PROPIEDADES PRIVADAS 2209 private DataTable _Entidades
2214 return _oDtEntidades;
2218 #endregion PROPIEDADES PRIVADAS 2230 _Documento = loDocumentoImprimible;
2234 #endregion CONSTRUCTOR 2237 #region MÉTODOS PÚBLICOS OVERRIDE 2252 _Numero_Copias = loUserControl.
_Copias;
2263 return (_Documento is
PagarePago) ? _Documento._Show_Print() :
false;
2274 toDocPrint = base.
_Clonar(toDocPrint);
2298 Boolean lbOk =
true;
2303 switch (this._TipoImpresion)
2307 loRow = _GetEntidad(_CodigoEntidad);
2308 lbOk = _PrintPagareEntidad(loPagarePago, Convert.ToBoolean(loRow[
"TIPO_IMP_PAGARE"]));
2313 lbOk = _PrintCartaPagareStandar(loPagarePago, Convert.ToBoolean(EW_GLOBAL._Empresa._TipoImpresionPagare));
2324 lbOk = _PrintCartaPagareEntidad(loPagarePago,
true);
2328 if (_Carta.IsFOXFile())
2332 _ErrorMessage =
"Revise la configuración de la carta, el fichero indicado no es válido.";
2335 else if (_Carta.IsFile())
2337 if (_Carta.IsValidToDirectPrint())
2339 _Carta._DocPrint.Printer = _Printer;
2340 _Carta._DocPrint.NumCopies = (Int16)_Numero_Copias;
2341 lbOk = _Carta._DocPrint.Print();
2345 _ErrorMessage =
"Revise la configuración de la carta, el fichero indicado no es válido.";
2351 lbOk = _PrintCartaPagareStandar(loPagarePago, Convert.ToBoolean(EW_GLOBAL._Empresa._TipoImpresionPagare));
2370 loReport = base._CrearReport();
2382 toDiccionario.Add(
"EsCheque", this._TipoImpresion ==
TipoImpresion.PagareEntidad);
2383 toDiccionario.Add(
"FechaEmision", _FechaEmision);
2384 toDiccionario.Add(
"CodigoBanco", _CodigoBanco);
2385 toDiccionario.Add(
"CodigoEntidad", _CodigoEntidad);
2391 private Boolean _PrintCartaPagareEntidad(
PagarePago toPagarePago, Boolean tbImprimirNet =
true)
2412 String lcMessage, lcTipo;
2414 if (_ShowInfoFOX || tlShow)
2416 lcTipo = _Exportar ?
"exportación" :
"impresión";
2417 lcMessage = String.Format(
"Se ha detectado que la {1} de pagarés está configurada con un formato de impresión antiguo (FRX), que dejará de estar disponible a partir de la versión 50.7720.0 del 24/03/21.{0}{0}Será necesario revisar si los nuevos formatos se adaptan o será necesario algún ajuste adicional.{0}{0}", Environment.NewLine, lcTipo);
2419 if (_Exportar) lcMessage = String.Format(
"La exportación no esta disponible con un formato de impresión antiguo (FRX), estos pagarés se imprimirán.{0}{0}", Environment.NewLine);
2421 switch (_TipoImpresion)
2424 lcMessage +=
"Puede cambiar al nuevo formato de impresión (REPORT) desde la pantalla de “Configuración de Empresa” > opción “Impresión” > pestaña “Contabilidad”.";
2427 lcMessage +=
"Se recomienda cambiar la configuración al nuevo formato de impresión (REPORT) antes de esa fecha.";
2431 FUNCTIONS._MessageBox(lcMessage, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
2433 _bPrintedByFox =
true;
2439 private Boolean _PrintCartaPagareStandar(
PagarePago toPagarePago, Boolean tbImprimirNet =
true)
2457 private Boolean _PrintPagareEntidad(PagarePago toPagarePago, Boolean tbImprimirNet =
true)
2473 private bool _PrintCartaPagareEntidadFOX(PagarePago toPagarePago)
2475 string lcRetorno =
"";
2476 object[] loParametros;
2479 loParametros =
new object[7]
2481 toPagarePago._Empresa,
2482 toPagarePago._Banco,
2483 toPagarePago._Pagare,
2490 lcRetorno = NETVFP._Ejecutar_Funcion_VFP(
"IMPRIMIR_PAGAREPAGO_REPORT_CARTAENTIDAD_NET", loParametros);
2495 private bool _PrintCartaPagareStandarFOX(PagarePago toPagarePago)
2497 string lcRetorno =
"";
2498 object[] loParametros;
2501 loParametros =
new object[7]
2503 toPagarePago._Empresa,
2504 toPagarePago._Banco,
2505 toPagarePago._Pagare,
2512 lcRetorno = NETVFP._Ejecutar_Funcion_VFP(
"IMPRIMIR_PAGAREPAGO_REPORT_CARTASTANDAR_NET", loParametros);
2517 private bool _PrintPagareEntidadFOX(PagarePago toPagarePago)
2519 string lcRetorno =
"";
2520 object[] loParametros;
2522 loParametros =
new object[7]
2524 toPagarePago._Empresa,
2525 toPagarePago._Banco,
2526 toPagarePago._Pagare,
2528 this._CodigoEntidad,
2533 lcRetorno = NETVFP._Ejecutar_Funcion_VFP(
"IMPRIMIR_PAGAREPAGO_REPORT_PAGAREENTIDAD_NET", loParametros);
2544 String lcReportName =
"";
2546 switch (this._TipoImpresion)
2550 DataRow loRow = _GetEntidad(_CodigoEntidad);
2551 lcReportName = loRow is DataRow && Convert.ToBoolean(loRow[
"TIPO_IMP_PAGARE"]) ? Convert.ToString(loRow[
"informe"]).Trim() : _ReportBase;
2556 lcReportName = Convert.ToBoolean(EW_GLOBAL._Empresa._TipoImpresionPagare) ? EW_GLOBAL._Empresa._Pagare?.Trim() : _ReportBase;
2561 lcReportName = _Carta._Report;
2565 return String.IsNullOrEmpty(lcReportName.Trim()) ? _ReportBase : lcReportName;
2568 private DataRow _GetEntidad(String tcCodigoEntidad)
2571 DataRow loRow = (from loRowEntidad in _Entidades.AsEnumerable()
2572 where Convert.ToString(loRowEntidad[
"codigo"]) == tcCodigoEntidad
2573 select loRowEntidad).FirstOrDefault();
2586 switch (this._TipoImpresion)
2599 toReport.
_Path = loReportPagarePath;
2610 if (!File.Exists(_Carta._PathFile))
2612 _ErrorMessage = _ErrorMessage =
"Revise la configuración de la carta, el fichero indicado no existe.";
2615 else if(_Carta.IsFOXFile())
2617 _ErrorMessage = _ErrorMessage =
"Revise la configuración de la carta, el fichero indicado no es válido.";
2624 #endregion MÉTODOS PÚBLICOS OVERRIDE bool _Desasentar()
Desasentar las previsiones de pago, y gestionar el criterio de Caja
string _CodigoCarta
Codigo de la carta modelo.
Clase de negocio para las cuentas bancarias (PE-96315)
String StringFormatNet(decimal tnValue)
Devuelve el valor formateado con la mascara de .Net
Clase de negocio base para mantenimientos
override void _Load()
Load
bool _Restar_Numero_Pagare()
Resta nº de pagaré de la ficha del banco, si fuera el caso.
decimal _Numero
Contador de pagarés
Classe empresa basada en sage.ew.ewmante
new int _Ejercicio
Ejercicio
string _CodigoEntidad
Código de entidad financiera (mantenimiento de entidades).
override bool _Print()
Ejecutar la impresión en el formato seleccionado.
override void _Configurar_obtencion_filtros(ref Dictionary< string, object > toDiccionario)
Configurar parámetros
int _MaxLinea
Maxima linea asiento. Por defecto el valor siempre es 1
int _Linea
Linea del asiento.
string _Empresa
Código de empresa.
String _CodigoBanco
Codigo del banco (mantenimiento de bancos).
static void _CrearCuentaContable(string tcCodigo, string tcNombre)
Verifica la existencia de la cuenta contable recibida por parámetro y si no existe la crea...
String _Poblacion
Población banco
int _Numero_Copias
Nos indicará el número de copias a imprimir
string _Proveedor
Código de proveedor Contable
override Report _CrearReport()
Override _CrearReport para asignar el nombre del enlace segun el tipo
virtual DocPrint _Clonar(DocPrint toDocPrint)
Copia la configuración al Docprint pasado
decimal _Haber
Importe en la partida HABER
String _Poblacion
Población del trabajador (465)
DateTime _Fecha_Emision_Origen
Fecha de emisión del pagaré en el momento de la carga del objeto de negocio Pagare ...
ImpresionNormalMultiple _ImpresionNormalMultiple
Indica el tipo de impresión
DateTime _FechaEmision
Fecha de emisión
bool _DesAsentarPagare()
Desasentar pagaré. Borra el asiento del pagaré realizado de forma normal, sin utilizar cuenta efectos...
ewMascara()
Crea una nueva instancia de la classe ewMascara.
static string _CuentasProveedores(string tcSelect="*")
Devuelve la cadena SQL con la consulta sobre PROVEEDORES y/o CUENTAS
int _Numero
Número de asiento.
decimal _Cambio
Cotización del asiento. Por defecto el valor siempre es 1
bool _New(eTipoOrigenAsiento teOrigenAsiento=eTipoOrigenAsiento.Defecto)
Nou asiento
void _ShowInfo(Boolean tlShow=false)
Muestra mensaje de información indicando la obselescencia de FOX
String _CuentaIban
Cuenta bancaria IBAN
PE-96316 Clase utilizada para consultar los datos de mail500
Clase utilizada para realizar asientos contables.
KeyDiccionarioMascara
Clave para diccionario de máscaras
Clase de negocio Proveedor
decimal _Debe
Importe en la partida DEBE
Navegacion
Enumerados para los diferentes tipos de navegación desde el grid
string _Cuenta
Código de la cuenta
override void _ObtenerConfigurarionOpcionesImpresionMultiple()
REcogemos los valores del UserControl adicional
PagarePago(string tcEmpresa="", string tcBanco="", string tcPagare="")
Constructor de pagaré de pago para un pagaré concreto.
String _Iban
IBAN (4 dígitos de control de la cuenta IBAN)
KeyDiccionarioLenCampos
Clave del diccionario LenCampos
static DataTable _ObtenerDataTableEntidadesBancarias()
Obtener Datatable con las entidas bancarias
override bool _Save()
Guarda el registro actual
Clase abstracta BaseReportPath
_EstadosMantenimiento _Estado
Estado en que se encuentra el registro
bool _ExistePagareEjerPost(ref string tcMensaje)
Verifica si existe el pagaré en un ejercicio posterior al actual.
DocPrint para pagarés de pago.
virtual Dictionary< string, object > _Obtener_Filtros_SageReports(Dictionary< string, object > tdicParametros=null)
Implementación del método para contruir informació de filtrado para Sage Reports con infromación la e...
static DataTable _ObtenerDatosEntidadCtaContableBanco(String tcCuentaContableBanco)
A partir de una cuenta contable de banco devuelve los datos de la entidad bancaria.
Tipo de impresión de recibo
bool _EnlacePrevisionesPagare(bool tlDesenlazarForzado=false, bool tlCrearNuevaPrevision=false, int tnPeriodo=0, string tcProveedor="", string tcFactura="", int tnOrden=0, int tnPendiente=0, decimal tnImporte=0)
Enlazar/desenlazar las previsiones que hay en el DataTable de previsiones con el pagaré, en función de si está seleccionada la previsión o no.
bool _FieldRandomBackColor
Propiedad _FieldRandomBackColor
void _Show()
Muestra por pantalla el asiento
eTipoOrigenAsiento
Enumeració per saber d'on ve l'assentament
bool _Print()
Impresión de pagaré de pago.
override void _Load()
Sobreescritura del método _Load() para pagarés de pago.
DateTime _MaxFechaEmision
Máxima fecha de emisión.
string _Divisa
Divisa del asiento.
IAsientosLinea _AddLinea()
Add linea
DateTime _FechaEmision
Fecha de emisión
DataTable _Obtener_Datos_SageReports(Dictionary< string, object > tdicParametros=null)
Obtener los datos del pagare
Clase para las previsiones de pago de proveedores
String _Serie
Serie para el contador de pagarés
override string _Nombre
Bug 157602
bool _Save()
Método publico para guardar asientos.
ewMascara _MascaraImporte
Máscara de importe
override string _Codigo
Campo clave del mantenimiento
string _Proveedor
Código de proveedor
Clase de negocio del mantenimiento de cuentas contables
virtual string _Nombre
Campo nombre del mantenimiento. En este hay que basar los demás campos en las clases heredadas ...
Int32 _Copias
Número de copias del recibo
String _CodigoEntidad
Codigo de entidad bancaria (mantenimiento de entidades, no confundir con mantenimiento de bancos) ...
string _ErrorMessage
Mensajede de error
decimal _Importe_Origen
Importe del pagaré en el momento de la carga del objeto de negocio Pagare
DataTable _SeleccionarPrevisiones(DateTime tdFEmisionIni, DateTime tdFEmisionFin)
Rellenar el DataTable de previsiones a seleccionar.
Clase que se utilizará para las lineas de los asientos contables.
String _CodPost
Código Postal del trabajador (465)
void _Show_Asiento()
Nos presenta el asiento de pagaré.
override bool _Show_Print(int tnAbrirEn=1)
Muestra el formulario de impresión
DateTime _Fecha_Vencim
Fecha vencimiento del pagaré.
bool _Permite_Delete_Pagare()
Devuelve true si el pagaré que está cargada en el objeto puede ser eliminado.
override DocPrint _Clonar(DocPrint toDocPrint)
Clonar
bool _ActualizarCamposPagoEnPrevis(string tcAsi, DateTime tdFechaAsiento)
Actualizar campos de pago en las previsiones de pago que conforman un pagaré. Utilizado desde la actu...
Dictionary< string, object > _Obtener_Filtros_SageReports(Dictionary< string, object > tdicParametros=null)
Proporciona características adicionales de las máscaras de Eurowin
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.
TipoImpresion
Tipos de impresión
String _CuentaBanco
CTABANCO (4 dígitos de la entidad financiera)
Dictionary< string, object > _Obtener_Filtros_SageReports(Dictionary< string, object > tdicParametros=null)
Implementación del método para contruir informació de filtrado para Sage Reports con infromación del ...
String _Direccion
Dirección banco
Definición de la interfície necesaria para las páginas(tabPage) a utilizar en formularios de tipo For...
decimal _Cambio
Coeficiente de cambio entre DEBE y DEBEDIV y HABER y HABERDIV
String _TableName
Gets o sets el name de la tabla report
string _GetCif()
Obtener CIF
virtual void _ObtenerConfigurarionOpcionesImpresionMultiple()
Metodo para cargar la configuración del UserControl de multiple impresión
override bool _Delete()
Borrado de pagaré.
BaseReportPath _Path
Path base
String _Direccion
Dirección del trabajador (465)
PagarePago()
Constructor de pagaré de pago
string _Factura
Número de factura
DocPrintPagarePago(IDocumentoImprimible loDocumentoImprimible)
Constructor
string _Definicion
Definición de la cuenta.
BindingList< IAsientosLinea > _Lineas
Líneas del asiento
String _CodigoCarta
Codigo de la carta
virtual bool _Vista_Preliminar
Nos indicará si se realizará una vista preliminar del documento
decimal _Importe
Importe del pagaré
string _Mascara_Net
Máscara convertida en formato .Net
bool _ExisteAsientoEfectosEjerAnt()
Verifica si existe asiento de pagaré utilizando cuentas de efectos en el ejercicio anterior...
String _Provincia
Provincia del trabajador (465)
String _Telefono
Población del trabajador (465)
Clase de negocio para la DIVISA (Moneda)
string _Mensaje_Error
Mensaje de error
Clase de negocio para los pagarés de pago (emisión de pagarés de proveedores).
String _CodPost
Código Postal banco
Definición de la interficie que deben cumplir los documentos de cualquier tipo para poder interactuar...
DateTime _Fecha
Fecha del asiento.
String _CuentaDescontados
Cuenta contable para efectos descontados
void _DescartarPrevisionesNoSelec()
Eliminar del DataTable de previsiones del pagaré las que no estén seleccionadas.
string _Ruta_Fichero
Nos indicará la ruta donde nos guardará el fichero del documento en formato PDF
DocPrintPagarePago.TipoImpresion _TipoImpresion
Nos indica el tipo de recibo
bool _Show_Print(int tnAbrirEn=1)
bool _Delete(bool tlActivarValidaciones)
si se pasa un true al borrar realiza todas la validaciones del borrado como si estuvieras al formular...
DateTime _Fecha_Emision
Fecha de emisión del pagaré.
bool _EditMode
Modo de edición
Boolean ValidaFicheroCarta()
Valida que elfichero exista si el tipo es carta no estandard
Clase para la impresión de documentos (del tipo que sea)
override void _DescargarDatos()
Descargar datos.
String _Provincia
Provincia banco
override bool _Save_Before()
Evento before antes del _Save()
override void _Load()
Realiza la carga de los datos de la previsión de pago.
override String _GetReportName()
virtual String _Printer
C106325 Devuelve la impresora configurada
bool _Exportar
Determina si el documento
void _Clonar(PagarePago toPagare, string tcEmpresa, string tcBanco, string tcPagare)
Ajusta todos los campos internos del pagaré cargado a los valores del objeto Pagarepago recibido como...
virtual UserControl _UserControlAdicional
Opiones de impresión
eFormato_exportacion _Formato_exportacion
Formato de exportación
PagarePago(DataRow loRow)
Constructor de pagaré de pago a partir de un DataRow con los datos claves de PAGARE_C ...
bool _ExistePagare(string tcEmpresa, string tcBanco, string tcPagare)
Método para consultar si existe un pagaré concreto en el ejercicio actual.
string _CodigoBanco
Código de banco (mantenimiento de bancos).
override void _ConfigureCustomPath(Report toReport)