3 using System.Collections.Generic;
18 namespace Sage.
ES.S50.Modelos
45 #endregion CONSTRUCTOR 47 #region METODOS PROTECTED 54 base._DefinicionLiteralesLibro();
57 _Capitulo =
"Capítulo de facturas emitidas";
58 _Subcapitulo =
"Capítulo de facturas emitidas";
72 _ColumnaProximoEnvio();
74 _ColumnaNumeroFacturaExpedicion();
75 _ColumnaAutorizacion();
76 _ColumnaDescripcionOperacion();
77 _ColumnaFechaExpedicion();
78 _ColumnaFechaOperacion();
81 _ColumnaTipoIdentificacion();
83 _ColumnaNombreRazonSocial();
88 _ColumnaTipoOperacion();
89 _ColumnaCausaOperacionSujetaExenta();
90 _ColumnaCausaOperacionSujetaExentaCanarias();
91 _ColumnaCausaOperacionNoSujeta();
92 _ColumnaTipoFacturaRectificativa();
93 _ColumnaRectificativa();
94 _ColumnaCamposAdicionales();
95 _ColumnaRegistroPrevio();
103 _DescripcionFacturasAnterioresInclusionSII();
104 _DescripcionRechazadasFueraPlazo();
105 _DescripcionAceptadasConErrores();
106 _DescripcionAceptadas();
115 _BotonFacturaVenta();
117 _BotonAlbaranesPedientesFacturar();
118 _BotonDatosContado();
119 _BotonAplicarRegistroPrevio();
127 _AddTabla(
new LibroTabla { _BD =
"GESTION", _Tabla=
"IVAREPER"});
128 _AddTabla(
new LibroTabla { _BD =
"GESTION", _Tabla =
"IVA_EXEN", _Exento =
true });
136 _AddTablaHistorial(
new LibroTabla { _BD =
"GESTION", _Tabla =
"IVAREPSII" });
137 _AddTablaHistorial(
new LibroTabla { _BD =
"GESTION", _Tabla =
"IVAEXESII", _Exento =
true });
146 List<IDatosIVA> lstEmitidas =
new List<IDatosIVA>();
148 if (_IVARepercutido != null && _IVARepercutido.Count() > 0)
149 lstEmitidas = _IVARepercutido.Where(iva => !iva._Comunitario && _FiltrarRegistros(iva)).ToList();
155 if (_BajasIVARepercutido != null && _BajasIVARepercutido.Count() > 0)
156 _BajasIVARepercutido.Where(iva => !iva._Comunitario && _FiltrarRegistros(iva)).ToList().ForEach(iva => lstEmitidas.Add(iva));
159 if (_IVAExento != null && _IVAExento.Count() > 0)
160 _IVAExento.Where(iva => iva._Tipo == 2 && _FiltrarRegistros(iva)).ToList().ForEach(exen => lstEmitidas.Add(exen));
172 if (_BajasIVAExento != null && _BajasIVAExento.Count() > 0)
173 _BajasIVAExento.Where(iva => iva._Tipo == 2 && !iva._Comunitario && (_BajasIVARepercutido == null || _BajasIVARepercutido.Where(x => x._Empresa == iva._Empresa && x._Codigo == iva._Codigo && x._Factura.Trim() == iva._Factura.Trim()).Count() == 0) &&
174 _FiltrarRegistros(iva)).ToList().ForEach(exen => lstEmitidas.Add(exen));
176 if (lstEmitidas != null && lstEmitidas.Count() > 0)
177 lstEmitidas.OrderByDescending(e => e._Territorio).ThenBy(e => e._TipoRegIVA).ThenBy(e=>e._Factura).ThenBy(e => ((
DatosIVABase)e)._TipoIVA).ToList().ForEach(iva => _AddFila(iva));
192 DataTable lstEmitidas = ((
ModeloFiscalLibrosBase)_oModeloFiscalLibros)._DatosIVARepercutido.AsEnumerable().
193 Where(row => !_TipoIvasExcluidos.Contains(row.Field<
string>(
"tipo_iva"))).__CopyToDataTable();
209 Where(row => !_TipoIvasExcluidos.Contains(row.Field<
string>(
"tipo_iva"))).__CopyToDataTable();
224 return base._DatosSave(tcDatos, ref tcSave);
233 tlstRespuestas = (from loFila in tlstRespuestas
234 group loFila by
new { Factura = loFila._Factura } into g
235 select g.First()).ToList();
237 return tlstRespuestas;
249 UPDATE {DB.SQLDatabase(toTabla._BD, toTabla._Tabla)} 250 SET intracom = {(toDatosIva._Comunitario ? DB.SQLTrue() : DB.SQLFalse())}, 251 fechaoper = {DB.SQLString(toDatosIva._FechaOperacion)}, 252 fechaasi = {DB.SQLString(toDatosIva._FechaAsiento)}, 253 siinumini = {DB.SQLString(toDatosIva._SIINumIni)}, 254 siinumfin = {DB.SQLString(toDatosIva._SIINumFin)} 255 WHERE empresa = {DB.SQLString(EW_GLOBAL._GetVariable("wc_empresa
"))} and guid_id = {DB.SQLString(toDatosIva._Guid_Hist)}; 267 string lcCamposContado = (toDatosIva.
_Contado && toTabla.
_Tabla ==
"IVAREPER" ? $
",cif = { DB.SQLString(toDatosIva._NIF)}," :
"");
268 lcCamposContado += (toDatosIva.
_Contado && toTabla.
_Tabla ==
"IVAREPER" ? $
"nombre = { DB.SQLString(toDatosIva._NombreRazonSocial)} " :
"");
271 UPDATE {DB.SQLDatabase(toTabla._BD, toTabla._Tabla)} 272 SET siiautoriz = {DB.SQLString(toDatosIva._Autorizacion)}, 273 siidescope = {DB.SQLString(toDatosIva._DescripcionOperacion)}, 274 siiperiod = {DB.SQLString(toDatosIva._PeriodoFactura)}, 275 siiprevio = {DB.SQLString(toDatosIva._SIIPrevio)} 277 WHERE empresa = {DB.SQLString(EW_GLOBAL._GetVariable("wc_empresa
"))} and guid_id = {DB.SQLString(toDatosIva._IdentificacionFactura)}; 299 if (!
string.IsNullOrWhiteSpace(toFila.
_SIIOriTip) && !
string.IsNullOrWhiteSpace(toFila.
_SIIOriMot))
319 List<IRespuestaFactura> loRespuestaBase;
320 List<IRespuestaFactura> loRespuesta =
new List<IRespuestaFactura>();
323 if (_Filas.Any(f => f._Seleccion))
325 loRespuesta = ValidarDatosRectificativas();
328 loRespuestaBase = base._ValidarXML();
330 if (loRespuestaBase is List<IRespuestaFactura> && loRespuestaBase.Count > 0) loRespuesta.AddRange(loRespuestaBase);
343 List<IRespuestaFactura> loRespuesta =
new List<IRespuestaFactura>();
345 if (_Filas.Any(f => f._Seleccion))
348 var loFacturasSinDatos = (_Filas.Where(f => f._Seleccion && (
string.IsNullOrWhiteSpace(((
DatosIVABase)f)._SIIOriTip) || (
string.IsNullOrWhiteSpace(((
DatosIVABase)f)._SIIOriMot)))));
350 foreach (
ILibroFila loFacturasNoEnviada
in loFacturasSinDatos)
361 loRes.
_Error.
_Descripcion = $
"No se puede enviar la factura. Debe introducir los datos rectificativos desde el botón de la columna 'Rectificativa'.";
362 loRespuesta.Add(loRes);
377 #region METODOS PUBLIC 385 return base._DescargarDatos();
override void _AddIVAExento()
Método que filtra sobre el DataTable de IVA_EXEN, para obtener la lista de registros de DATOSIVA resp...
Clase RegistroFiscal para
DateTime _FechaExpedicion
Fecha de expedición
LibroEmitidas(IModeloFiscalLibros toModeloFiscalLibros)
Constructor con la referencia a modelosfiscallibros
Clase ModeloFiscalLibrosBase - Definición del modelo
Clase LibroBase - Definición de un libro del modelo
InformacionModelos
Estado modelos
string _Codigo
Código(Cliente, Cuenta, Proveedor)
DateTime _FechaOperacion
Fecha de operación
string _SIIOriTip
Indicará el tipo de factura rectificativa que corresponderá al campo SIIORITIP:
static bool _EsFacturaVentaRectificativa(string tcFactura)
Devuelve si el número de factura se corresponde a un documento rectificativo
override void _DefinicionColumnasLibro()
Definimos las columnas del libro emitidas
override void _DefinicionTablasHistorial()
Definimos las tablas de historial de envíos
override List< IRespuestaFactura > _ValidarXML()
Validaciones antes de enviar facturas
override void _AsignarPeriodo(DatosIVABase toFila)
Asignar Periodo especial para facturas emitidas
override bool _DatosSave(IDatosIVA tcDatos, ref StringBuilder tcSave)
Nos guarda los cambios de modelo -> en caso de error devuelve FALSE
Clase LibroEmitidas - Emitidas
string _Cuenta
Cuenta de la factura(cliente/proveedor)
override void _DefinicionLiteralesLibro()
Literales libro emitidas
override void _DatosActualizarEstadoAdicional(ILibroTabla toTabla, DatosIVABase toDatosIva, ref StringBuilder tcEstado)
Hacemos el update de los campos propios de las tablas q afectan al libro de emitidas ...
string _Tabla
Nombre de la tabla
virtual List< IRespuestaFactura > ValidarDatosRectificativas()
Validar los datos de factuas rectificativas
DateTime _FechaExpedicion
Fecha expedición
override void _DatosActualizarHistorialAdicional(ILibroTabla toTabla, DatosIVABase toDatosIva, ref StringBuilder tcEstado)
Hacemos el update de los campos propios de las tablas q afectan al libro de emitidas ...
IRespuestaError _Error
Respuesta del error
Clase de respuesta de la generación del XML
override void _AddIVARepercutido()
Método que filtra sobre el DataTable de IVA repercutido, para obtener la lista de registros de DATOSI...
DateTime _SIIDevengoFechaIni
Para indicar la fecha de expedición de la factura inicial. IVA Devengo. SIIDEVFEC ...
override void _DefinicionTablas()
Definimos las tablas
override void _DefinicionBotones()
Definimos los botones donde permitimos navegación
override List< IRespuestaFactura > _DatosActualizarHistorialValidacion(List< IRespuestaFactura > tlstRespuestas)
Validamos si la lista de respuestas es correcta o es necesario hacer algun tipo de tratamiento...
override bool _DatosLoad()
Preparar los datos de la información a presentar
LibroEmitidas()
Constructor sin parámetros
string _Factura
Múmero de Factura
string _Descripcion
Descripción error
DateTime _FechaExpedicion
Fecha de expedición
override void _DescripcionesFila()
Descripciones de la fila
override bool _DescargarDatos()
Descargamos listas para volver a consultar
string _SIIOriMot
Motivo de rectificación
string _PeriodoFactura
SIIPERIOD-> modo SII debe guardar el mes 01, 02