2 using System.Collections.Generic;
7 using System.ComponentModel;
17 using System.Web.Script.Serialization;
19 namespace sage.ew.cliente
26 #region PROPIEDADES PRIVADAS 32 private int _lnItems = 0;
33 private bool _lExistenRegistros =
false;
37 #region PROPIEDADES PUBLICAS 42 public bool _ExistenRegistros
46 return _lExistenRegistros;
53 public bool _CargarRegistrosCliente {
get;
set; } =
true;
73 _oFactura = toFactura;
76 _Claves._Ejercicio._Valor = toFactura.
_Cabecera._Ejercicio.Trim();
77 _Claves._Factura._Valor = toFactura.
_Cabecera._Factura;
78 _Claves._Cliente._Valor = toFactura.
_Cabecera._Cliente;
83 #region METODOS PROTECTED 90 _DataBase =
"COMUNES";
93 _Titulo_Browser =
"Buscar centros administrativos";
101 base._CrearEstructura();
104 _AddCampoTRel(
"_Ejercicio",
"Ejercicio",
false,
true,
false);
107 _AddCampoTRel(
"_Factura",
"Factura",
false,
true,
false);
110 _AddCampoTRel(
"_Xml",
"Xml",
false,
true,
false);
115 #region METODOS PUBLICOS 124 if (_oFactura != null )
126 _lExistenRegistros = (_Items.Count != 0);
128 if (!_lExistenRegistros && _CargarRegistrosCliente)
130 _oFactura.
_Cabecera._oCliente._TRelCentrosAdmin._Load();
131 var lstCentros = _oFactura.
_Cabecera._oCliente._TRelCentrosAdmin._Items.GroupBy(c => c._Rol).Select(c => c.FirstOrDefault());
132 if (lstCentros != null && lstCentros.Count() > 0)
138 _lnItems = _Items.Where(c=>c.Fila_Plena()).Count();
147 public bool _Save(
bool tlFacturaElectronica =
false)
152 llSave = base._Save();
155 if(tlFacturaElectronica)
156 FacturaElectronica();
158 _lnItems = _Items.Where(c => c.Fila_Plena()).Count();
159 _lExistenRegistros = (_lnItems!=0);
178 loCentroDestino.
_Parent = loNewCentrosAdminFactura;
180 this.copiarCamposCentro(loCentroOrigen, loCentroDestino);
182 loNewCentrosAdminFactura._Items.Add(loCentroDestino);
185 return loNewCentrosAdminFactura;
199 loCentroDestino.
_Parent =
this;
201 this.copiarCamposCentro(loCentroOrigen, loCentroDestino);
203 this._Items.Add(loCentroDestino);
211 #region METODOS PRIVADOS 217 private bool _HayCambios()
219 bool llHayCambios =
true;
221 if (_lnItems == _Items.Count)
225 llHayCambios = lin._HayCambios();
237 private void FacturaElectronica()
241 DialogResult loDlgResult = FUNCTIONS._MessageBox(
"Se han realizado cambios en los centros asociados a la factura " + Environment.NewLine + Environment.NewLine +
242 " ¿Desea generar de nuevo la factura electrónica?", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
255 private void copiarCamposCentro(CentroAdministrativoLineaFactura toCentroOrigen, CentroAdministrativoLineaFactura toCentroDestino)
257 toCentroDestino._Empresa = toCentroOrigen._Empresa;
258 toCentroDestino._Ejercicio = toCentroOrigen._Ejercicio;
259 toCentroDestino._Factura = toCentroOrigen._Factura;
260 toCentroDestino._Cliente = toCentroOrigen._Cliente;
261 toCentroDestino._Rol = toCentroOrigen._Rol;
262 toCentroDestino._Codcentro = toCentroOrigen._Codcentro;
264 toCentroDestino._Apellido1 = toCentroOrigen._Apellido1;
265 toCentroDestino._Apellido2 = toCentroOrigen._Apellido2;
266 toCentroDestino._CodPost = toCentroOrigen._CodPost;
267 toCentroDestino._Contacto = toCentroOrigen._Contacto;
268 toCentroDestino._Descripcion = toCentroOrigen._Descripcion;
269 toCentroDestino._Direccion = toCentroOrigen._Direccion;
270 toCentroDestino._Email = toCentroOrigen._Email;
271 toCentroDestino._Fax = toCentroOrigen._Fax;
272 toCentroDestino._Pais = toCentroOrigen._Pais;
273 toCentroDestino._Poblacion = toCentroOrigen._Poblacion;
274 toCentroDestino._Provincia = toCentroOrigen._Provincia;
275 toCentroDestino._Responsa = toCentroOrigen._Responsa;
276 toCentroDestino._Telefono = toCentroOrigen._Telefono;
277 toCentroDestino._Url = toCentroOrigen._Url;
278 toCentroDestino._EnvCli = toCentroOrigen._EnvCli;
280 toCentroDestino._Xml = toCentroOrigen._Xml;
290 public bool _HayCambios(List<CentroAdministrativoLineaFactura> loLinCentros)
292 JavaScriptSerializer loJS;
297 if (_Items.Count == loLinCentros.Count)
301 loLinCentroOrigen = _Items.Where(f => f._Rol == loLinCentroDestino.
_Rol).FirstOrDefault();
305 loJS =
new JavaScriptSerializer();
306 if (loJS.Serialize(loLinCentroOrigen) != loJS.Serialize(loLinCentroDestino))
return true;
384 #region PROPIEDADES PRIVADAS 386 private string _cEjercicio =
string.Empty;
387 private string _cFactura =
string.Empty;
388 private string _cNombreRol = null;
389 private string _cISOPais = null;
390 private string _cXml =
string.Empty;
395 private Dictionary<string, object> _dicCopia = null;
399 #region PROPIEDADES PUBLICAS 404 public string _Ejercicio
406 get {
return _cEjercicio; }
409 if (value != _cEjercicio)
421 public string _Factura
423 get {
return _cFactura; }
426 if (value != _cFactura)
438 public override string _Rol
446 if (!ValidarRol((base._Rol != value), value))
456 public string _NombreRol
460 if(_cNombreRol==null && !
string.IsNullOrWhiteSpace(_Rol))
461 _cNombreRol= Convert.ToString(DB.SQLValor(
"ROLES",
"CODIGO", _Rol,
"NOMBRE2",
"COMUNES"));
469 public string _ISOPais
473 if (_cISOPais == null && !
string.IsNullOrWhiteSpace(_Pais))
474 _cISOPais = Convert.ToString(DB.SQLValor(
"PAISES",
"CODIGO", _Pais,
"ISO2",
"COMUNES"));
484 get {
return _cXml; }
498 #region CONSTRUCTORES 515 _Clonar(toCentroLinea);
517 if (toCentro._oFactura != null)
519 _Empresa = toCentro._oFactura.
_Empresa;
520 _Ejercicio = toCentro._oFactura.
_Cabecera._Ejercicio.Trim();
521 _Factura = toCentro._oFactura.
_Cabecera._Factura;
522 _Cliente = toCentro._oFactura.
_Cabecera._Cliente;
530 public override void _Load(
bool tlForzado =
false)
532 base._Load(tlForzado);
534 _dicCopia = DiccionarioLinea();
539 #region METODOS PRIVADOS 547 private bool ValidarRol(
bool tlModif,
string tcRol)
553 if (tlModif && _Parent != null)
556 if (loListRoles != null && loListRoles.Count() > 0)
568 private Dictionary<string, object> DiccionarioLinea()
571 List<string> lstName =
new List<string> {
"_Parent",
"_ComboRol" };
573 Dictionary<string, object> lodicLin = this.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(prop => !
string.IsNullOrWhiteSpace(prop.Name) && prop.Name.Substring(0, 1) ==
"_" && !lstName.Contains(prop.Name)).ToDictionary(prop => prop.Name, prop => prop.GetValue(
this, null));
582 protected internal bool _HayCambios()
584 bool llHayCambios =
true;
586 Dictionary<string, object> ldicTemp = DiccionarioLinea();
588 if (_dicCopia != null)
589 llHayCambios = !_dicCopia.OrderBy(k => k.Key).SequenceEqual(ldicTemp.OrderBy(k => k.Key));
592 _dicCopia = ldicTemp;
string _Empresa
Codi d'emrpesa
Definición de los objetos campo para las tablas relacionadas
override void _Load()
_load
CentroAdministrativoLineaFactura()
Constructor
string _FirmarFacturaAutomatico()
Generar una factura electronica con el asistente forzando la creación automática
void _CopiarRegistrosDesde(CentrosAdministrativosFactura toCentrosAdminOrigen)
Copiar todos los registros de centros administrativos de un objeto CentrosAdministrativosFactura exte...
object _Parent
Objeto padre a la instancia.
Classe documento Factura de venta
CentroAdministrativoClaveFactura()
CentrosAdministrativosFactura(ewDocVentaFRA toFactura)
Constructor
Campos clave para registros únicos
bool _ExisteFacturaElectronica()
només volem saber si existeix la factura electronica, no ens interessa saber la ruta del fitxer ...
Definir la estructura del centro administrativo
Clase base de negocio para los centros administrativos
_TipoDocCab _Cabecera
Cabecera
Valores clave de los centros administrativos del cliente
override void _Inicializar()
Inicializamos tabla y valores de los centros administrativos del cliente
bool _Save(bool tlFacturaElectronica=false)
Save
override void _Load(bool tlForzado=false)
Load
bool _HayCambios(List< CentroAdministrativoLineaFactura > loLinCentros)
Indica si hay diferencias
Centros administrativos de factura
CentroAdministrativoLineaFactura(CentrosAdministrativosFactura toCentro, CentroAdministrativoLineaBase toCentroLinea)
Centro administrativo linea de la factura
override void _CrearEstructura()
Añadimos campos especificos
CentrosAdministrativosFactura()
Constructor
CentrosAdministrativosFactura _Duplicar()
Crear un nuevo objeto de tipo CentrosAdministrativosFactura a partir de otro.