ManteExtPrevisionCobro.cs
1 using sage.ew.ewbase;
2 using sage.ew.formul.Forms;
3 using sage.ew.interficies;
4 using sage.ew.cliente;
5 using sage.ew.functions;
6 using System;
7 using System.Collections.Generic;
8 using System.Linq;
9 using System.Text;
10 using System.Windows.Forms;
11 using sage.ew.formul;
13 
14 namespace sage.addons.factucert.Negocio.Mantes
15 {
24  {
25  #region Campos privados
26  private bool _lNewSerieCertificable = false;
27  #endregion Campos privados
28 
29  #region Constructor
30  public ManteExtPrevisionCobro()
34  {
35  }
36 
41  public ManteExtPrevisionCobro(IMante toMantePrincipal)
42  : this()
43  {
44  _Mante = toMantePrincipal;
45  }
46  #endregion Constructor
47 
48  #region Métodos Public override
49 
57  public override bool _New(string tcCodigo = "")
58  {
59  if (_Mante is PrevisionCobro)
60  {
61  // Solo hago el control de no permitir crear previsiones de cobro en serie certificable, si el addon de factucert
62  // está instalado, y además en la configuración del addon está activado por el usuario.
63  //
64  if (FACTUCERT._FactuCertConfig._Activar)
65  {
66  PrevisionCobro loPrevisionCobro = (PrevisionCobro)_Mante;
67 
68  if (!string.IsNullOrWhiteSpace(loPrevisionCobro._Factura))
69  {
70  string lcLetra = loPrevisionCobro._Factura.Substring(0, 2);
71 
72  // Task 190022 - Permitir crear una previsión con una serie certifida enviada a terceros
73  // Validaremos si se está creando una previsión de una serie no certificable
74  if (!FACTUCERT.SerieNoCertificada(lcLetra) && !FACTUCERT.SerieCertificadaTerceros(lcLetra))
75  {
76  _lNewSerieCertificable = true;
77  this._Mante._Error_Message = "Tiene activado la Facturación Certificada. " +
78  "No se puede crear una previsión de una serie certificable.";
79  return false;
80  }
81  }
82  }
83  }
84 
85  return base._New(tcCodigo);
86  }
87 
88 
93  public override bool _Load()
94  {
95  if (string.IsNullOrWhiteSpace(this._Mante._Codigo))
96  _lNewSerieCertificable = false;
97 
98  return base._Load();
99  }
100 
101 
106  public override bool _Save()
107  {
108  if (_lNewSerieCertificable)
109  {
110  string lcMensaje = "Tiene activado la Facturación Certificada. " +
111  "No se puede crear una previsión de una serie certificable.";
112 
113  if (_Mante is PrevisionCobro)
114  {
115  // Solo hago el control de no permitir crear previsiones de cobro en serie certificable, si el addon de factucert
116  // está instalado, y además en la configuración del addon está activado por el usuario.
117  //
118  if (FACTUCERT._FactuCertConfig._Activar)
119  {
120  PrevisionCobro loPrevisionCobro = (PrevisionCobro)_Mante;
121 
122  if (loPrevisionCobro._LinkForm)
123  FUNCTIONS._MessageBox(lcMensaje, "Mantenimiento de previsiones de cobro", MessageBoxButtons.OK, MessageBoxIcon.Stop);
124  else
125  _Error_Message = lcMensaje;
126 
127  loPrevisionCobro._Codigo = "";
128  loPrevisionCobro._Estado = ewMante._EstadosMantenimiento.EsperandoCodigo;
129 
130  if (loPrevisionCobro._FormMante != null)
131  {
132  FormBase loForm = loPrevisionCobro._FormMante;
133 
134  Control loControl = loForm._FindControl("txtFactura");
135 
136  if (loControl != null && loControl.CanFocus)
137  {
138  txtFacturaDoc lotxtFacturaDoc = ((txtFacturaDoc)loControl);
139  lotxtFacturaDoc._Pasar_Foco_Numero();
140  }
141  }
142  }
143  }
144 
145  _lNewSerieCertificable = false;
146 
147  return false;
148  }
149 
150  return base._Save();
151  }
152 
153  #endregion Métodos Public override
154  }
155 }
Clase de negocio base para mantenimientos
Definition: clsEwBase.cs:1643
Clase para las previsiones de cobro
Nueva interficie madre de IMantes y de la que colgara ewMante. Propiedades: _Codigo, _Nombre, _Error_Message. Metodos: _New, Save, _Delete, _Load, _Existe_Registro, _Clonar
Definition: IMantes.cs:17
dynamic _FormMante
Formulario mantenimiento enlazado
Definition: clsEwBase.cs:5016
Es como el tipo de entrada asientos pero por negocio, sin formulario, pq quiero que me haga las propu...
override bool _Load()
Reiniciar el valor del flag cuando cargamos registro.
_EstadosMantenimiento _Estado
Estado en que se encuentra el registro
Definition: clsEwBase.cs:2968
bool _Pasar_Foco_Numero()
_Pasar_Foco_Numero: Pasamos el foco al número
Clase base para las extensiones de los mantenimientos
override bool _New(string tcCodigo="")
No permitimos crear una previsión de un serie certificable
override bool _Save()
Cuando estamos en el Save ahora presentamos el mensaje de lo que se ha prevalidado en el _New ...
virtual string _Codigo
Valor del campo clave que
Definition: clsEwBase.cs:2513
Formulario base de Eurowin
Definition: clsFormul.cs:400
Extensión de las previsiones de cobro para validar la serie de la factura
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.
Definition: clsEwBase.cs:1671
string _Factura
Número de factura
Control _FindControl(string tcControlName)
PE-96322. Devuelve el primer control que coincide por nombre
Definition: clsFormul.cs:850
bool _LinkForm
Ens retorna true si la propietat está relacionada amb un formulari.
Definition: clsEwBase.cs:1824