LibroEmitidasCertificadas.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using sage.addons.factucert;
7 using sage.ew.db;
8 using sage.ew.global;
9 using Sage.ES.S50.Modelos;
11 using Sage.ES.Batuz.Entities.ComModel._140.Annulation;
12 using Sage.ES.Batuz.Entities.ComModel._140.Common;
13 using Sage.ES.Batuz.Entities.ComModel._140.Invoice;
14 using Sage.ES.Batuz.Interfaces.Entities;
15 using Sage.ES.Batuz.Interfaces140.Entities.ComModel.Annulation;
16 using Sage.ES.Batuz.Interfaces140.Entities.ComModel.Common;
17 using Sage.ES.Batuz.Interfaces140.Entities.ComModel.Invoice;
21 using System.IO;
22 
23 namespace Sage.ES.S50.Modelos._140
24 {
26  {
27  #region PROPIEDADES PRIVADAS
28 
29  private ModeloFiscalLibrosFactucertBase _oModeloFiscalCert = null;
30 
31  //ExportadorFactuCertXML _oExportardorFactuCertXML = new ExportadorFactuCertXML();
32 
33  #endregion
34 
35  #region CONSTRUCTOR
36 
41  : base()
42  {
43 
44  }
45 
50  public LibroEmitidasCertificadas(IModeloFiscalLibros toModeloFiscalLibros)
51  : base(toModeloFiscalLibros)
52  {
53  _oModeloFiscalCert = ((ModeloFiscalLibrosFactucertBase)_oModeloFiscalLibros);
54  }
55 
56  #endregion
57 
58  #region METODOS PROTECTED
59 
63  protected override void _DefinicionColumnasLibro()
64  {
65  _ColumnaSeleccion();
66  _ColumnaEstado();
67  _ColumnaTipoEnvio();
68  _ColumnaEstadoAEAT();
69  _ColumnaIncidencia();
70  _ColumnaProximoEnvio();
71  _ColumnaTipoDocumento();
72  _oLibroFactuCert?._ColumnaNumeroDocumento();
73  _ColumnaNumeroFacturaExpedicion();
74  _oLibroFactuCert?._ColumnaEpigrafe();
75  if (FACTUCERT._FactuCertConfig._Enc_Disp)
76  _oLibroFactuCert?._ColumnaNumeroDispositivo();
77  _ColumnaFechaExpedicion();
78  _oLibroFactuCert?._ColumnaHoraExpedicion();
79  _ColumnaCodigo();
80  _ColumnaNombreRazonSocial();
81  _ColumnaImporte();
82  }
83 
90  protected override object _DatosXMLCabeceraAltas(TipoOperacionLibro toTipoOperacionLibro, int tnEjercicio)
91  {
92  IIngresos_ConfacturaConSGCom loFacturasEmitidas = new Ingresos_ConfacturaConSGCom();
93 
94  OperacionEnum loOperacion = _oLibroFactuCert._TipoOperacion(toTipoOperacionLibro);
95 
96  loFacturasEmitidas.Cabecera = _oLibroFactuCert._ToXML._DatosCabecera140(_oLibroFactuCert._ModeloLibroXML,
97  CapituloModelo140Enum.Ingresos_facturas_emitidas,
98  SubcapituloModelo140Enum.Ingresos_facturas_emitidas_con_software_garante,
99  loOperacion, tnEjercicio);
100  return loFacturasEmitidas;
101  }
102 
109  protected override bool _DatosXMLFilasAltas(ref object toDatosFacturasEmitidas, List<ILibroFila> tlstFilas)
110  {
111  if (!(toDatosFacturasEmitidas is IIngresos_ConfacturaConSGCom))
112  return false;
113 
114  //_oExportardorFactuCertXML = new ExportadorFactuCertXML();
115 
116  IIngresos_ConfacturaConSGCom loDatosFacturasEmitidas = (IIngresos_ConfacturaConSGCom)toDatosFacturasEmitidas;
117 
118  IIngresoConSGCodificadoCom[] loDetalle = null;
119 
120  int lnFilas = tlstFilas.Count;
121  int lnFila = 0;
122  loDetalle = new IngresoConSGCodificadoCom[lnFilas];
123 
124  foreach (ILibroFila loLibroFila in tlstFilas)
125  {
126  ILibroFilaFactucert loLibroFilaFactucert = (ILibroFilaFactucert)loLibroFila;
127 
128  IIngresoConSGCodificadoCom loDetalleEmitidaCom = new IngresoConSGCodificadoCom
129  {
130  TicketBai = _FirmaTicketBai(loLibroFila)
131  };
132 
133  DatosXMLAddDetalleRenta(ref loDetalleEmitidaCom, loLibroFila);
134 
135  loDetalle[lnFila] = loDetalleEmitidaCom;
136  lnFila++;
137  }
138 
139  loDatosFacturasEmitidas.Ingresos = loDetalle;
140 
141  //_oExportardorFactuCertXML.Dispose();
142 
143  return true;
144  }
145 
152  protected override object _DatosXMLCabeceraBajas(TipoOperacionLibro toTipoOperacionLibro, int tnEjercicio)
153  {
154  IIngresos_ConfacturaConSG_AnulCom loFacturasEmitidas = new Ingresos_ConfacturaConSG_AnulCom();
155 
156  OperacionEnum loOperacion = _oLibroFactuCert._TipoOperacion(toTipoOperacionLibro);
157 
158  loFacturasEmitidas.Cabecera = _oLibroFactuCert._ToXML._DatosCabecera140(_oLibroFactuCert._ModeloLibroXML,
159  CapituloModelo140Enum.Ingresos_facturas_emitidas,
160  SubcapituloModelo140Enum.Ingresos_facturas_emitidas_con_software_garante,
161  loOperacion, tnEjercicio);
162  return loFacturasEmitidas;
163  }
164 
171  protected override bool _DatosXMLFilasBajas(ref object toDatosFacturasEmitidas, List<ILibroFila> tlstFilas)
172  {
173  if (!(toDatosFacturasEmitidas is IIngresos_ConfacturaConSG_AnulCom))
174  return false;
175 
176  //_oExportardorFactuCertXML = new ExportadorFactuCertXML();
177 
178  IIngresos_ConfacturaConSG_AnulCom loDatosFacturasEmitidas = (IIngresos_ConfacturaConSG_AnulCom)toDatosFacturasEmitidas;
179 
180  IAnulacionFacturaConSGCom[] loDetalle = null;
181 
182  int lnFilas = tlstFilas.Count;
183  int lnFila = 0;
184  loDetalle = new AnulacionFacturaConSGCom[lnFilas];
185 
186  foreach (ILibroFila loLibroFila in tlstFilas)
187  {
188  ILibroFilaFactucert loLibroFilaFactucert = (ILibroFilaFactucert)loLibroFila;
189 
190  IAnulacionFacturaConSGCom loDetalleEmitidaCom = new AnulacionFacturaConSGCom
191  {
192  AnulacionTicketBai = _FirmaTicketBai(loLibroFila, tlBaja: true )
193  };
194 
195  loDetalle[lnFila] = loDetalleEmitidaCom;
196  lnFila++;
197 
198  }
199 
200  loDatosFacturasEmitidas.Ingresos = loDetalle;
201 
202  //_oExportardorFactuCertXML.Dispose();
203 
204  return true;
205  }
206 
207  #endregion
208 
209 
210  #region METODOS PRIVADOS
211  private void DatosXMLAddDetalleRenta(ref IIngresoConSGCodificadoCom toDetalleEmitida, ILibroFila toLibroFila)
217  {
218  DatosIVAFactucert loDatosIVA = (DatosIVAFactucert)toLibroFila;
219 
220  bool llDiferentes = false;
221  decimal lnBaseEOS = 0.0M;
222  string lcImporteIngreso = "";
223 
224  if (_EOS != null && _EOS.Count() > 0)
225  {
226  lnBaseEOS = _EOS.Where(iva => iva._Factura.TrimEnd() == loDatosIVA._Factura.TrimEnd()).Sum(iva => iva._Base);
227  llDiferentes = lnBaseEOS != 0 && loDatosIVA._BaseCert != lnBaseEOS;
228  lcImporteIngreso = _oLibroFactuCert._ToXML._Importe(lnBaseEOS);
229  }
230 
231  IDetalleRentaIngresosCom loDetalleRenta = new DetalleRentaIngresosCom()
232  {
233  Epigrafe = loDatosIVA._Epigrafe,
234 
235  IngresoAComputarIRPFDiferenteBaseImpoIVA = (llDiferentes ? SiNoEnum.Si : SiNoEnum.No),
236  IngresoAComputarIRPFDiferenteBaseImpoIVASpecified = llDiferentes,
237 
238  CriterioCobrosYPagos = SiNoEnum.No,
239  CriterioCobrosYPagosSpecified = true
240  };
241 
242  if (llDiferentes)
243  loDetalleRenta.ImporteIngresoIRPF = lcImporteIngreso;
244 
245  toDetalleEmitida.AddRenta(loDetalleRenta);
246  }
247 
248 
249  #endregion METODOS PRIVADOS
250  }
251 }
decimal _BaseCert
Importe base de la factura
string _Epigrafe
Epigrafe - solo para el 140
TipoOperacionLibro
Tipo de operación de envío del libro que se utiliza para generar los XML correspondientes ...
override object _DatosXMLCabeceraBajas(TipoOperacionLibro toTipoOperacionLibro, int tnEjercicio)
Instanciación de la cabecera de las bajas del libro
Clase LibroEmitidas No Certificadas
Este es el espacio de nombres de su módulo. Puede encontrar más información y ayuda en el fichero rea...
override bool _DatosXMLFilasBajas(ref object toDatosFacturasEmitidas, List< ILibroFila > tlstFilas)
Actualiza la información de las filas List<ILibroFila> a la propiedad "Cobros" de la clase "CriterioC...
override object _DatosXMLCabeceraAltas(TipoOperacionLibro toTipoOperacionLibro, int tnEjercicio)
Instanciación de la cabecera de las altas del libro
override void _DefinicionColumnasLibro()
Definimos las columnas del libro emitidas
override bool _DatosXMLFilasAltas(ref object toDatosFacturasEmitidas, List< ILibroFila > tlstFilas)
Actualiza la información de las filas List<ILibroFila> a la propiedad "Cobros" de la clase "CriterioC...
LibroEmitidasCertificadas(IModeloFiscalLibros toModeloFiscalLibros)
Constructor con la referencia a modelosfiscallibros