5 using System.Collections.Generic;
10 namespace sage.ew.contabilidad
27 #endregion Constructor 29 # region Métodos públicos override de la clase listados 34 public override string _ReportFile
38 return "retencion_repercutida.report";
45 public override List<string> _ReportColumns
49 List<string> ldReportColumns =
new List<string>();
51 _dicDefEntidades =
new Dictionary<string, ew.interficies.IDefEntidad>
53 {
"numfra",
new DefEntidad() { _DB =
"COMUNES", _Tabla =
"PREVIS", _Campo =
"FACTURA", _Relacion =
"", _Empresa =
true } },
54 {
"cuenta",
new DefEntidad() { _DB =
"GESTION", _Tabla =
"PROVEED", _Campo =
"CODIGO", _Relacion =
"", _Empresa =
false } },
55 {
"codigo_ret",
new DefEntidad() { _DB =
"GESTION", _Tabla =
"TIPO_RET", _Campo =
"CODIGO", _Relacion =
"", _Empresa =
false } }
58 ldReportColumns.Add(
"cuenta");
59 ldReportColumns.Add(
"nombre");
60 ldReportColumns.Add(
"cif");
61 ldReportColumns.Add(
"fecha");
62 ldReportColumns.Add(
"numfra");
63 ldReportColumns.Add(
"base_ret");
64 ldReportColumns.Add(
"tpc_ret");
65 ldReportColumns.Add(
"total_ret");
66 ldReportColumns.Add(
"codigo_ret");
67 ldReportColumns.Add(
"nombre_ret");
68 ldReportColumns.Add(
"g_contri");
69 ldReportColumns.Add(
"nombre_g_contri");
71 return ldReportColumns;
80 Dictionary<string, string> ldTranslate =
new Dictionary<string, string>();
82 if (tldTranslate != null)
84 ldTranslate = tldTranslate;
87 ldTranslate.Add(
"nombre",
"Definición cuenta");
88 ldTranslate.Add(
"numfra",
"Factura");
89 ldTranslate.Add(
"base_ret",
"Base retención");
90 ldTranslate.Add(
"tpc_ret",
"% retención");
91 ldTranslate.Add(
"total_ret",
"Total retención");
93 ldTranslate.Add(
"codigo_ret",
"Tipo retención");
94 ldTranslate.Add(
"nombre_ret",
"Nombre retención");
95 ldTranslate.Add(
"g_contri",
"Grupo de contribuyente");
96 ldTranslate.Add(
"nombre_g_contri",
"Nombre grupo de contribuyente");
99 base._SetColumnCaptions(ldTranslate);
107 if (_Resultados == null)
110 foreach (DataColumn ldc
in _Resultados.Columns)
112 switch (ldc.ColumnName.ToString().Trim())
116 ldc.ExtendedProperties.Add(
"Mascara", _Mascara_Importe);
120 ldc.ExtendedProperties.Add(
"Mascara", _Mascara_TPC);
125 base._SetColumnMasks();
131 public override Dictionary<string, string> _NavigateButtonsCheck
135 if (llImprimircertificado)
137 return new Dictionary<string, string>() { {
"certificado",
"Imprimir certificado" } };
141 return new Dictionary<string, string>();
153 botones.Clases.btImprimir btImprimir =
new botones.Clases.btImprimir();
154 switch (tcKeyNavigate)
158 if (trRowList.Length > 0)
161 string lcNombreEmpresa = EW_GLOBAL._GetVariable(
"wc_EmpNombre1").ToString().Trim();
162 string lcCIFEmpresa = EW_GLOBAL._GetVariable(
"wc_EmpCif").ToString().Trim();
163 string lcDireccionEmpresa = EW_GLOBAL._GetVariable(
"wc_EmpDireccion").ToString().Trim();
164 string lcCodigoPostalEmpresa = EW_GLOBAL._GetVariable(
"wc_EmpCodPos").ToString().Trim();
165 string lcPoblacionEmpresa = EW_GLOBAL._GetVariable(
"wc_EmpPoblacion").ToString().Trim();
166 string lcProvinciaEmpresa = EW_GLOBAL._GetVariable(
"wc_EmpProvincia").ToString().Trim();
168 DataTable yourEmptyDataTable =
new DataTable();
172 yourEmptyDataTable = trRowList[0].Table.Clone();
175 foreach (DataRow row
in trRowList)
177 if (!
string.IsNullOrWhiteSpace(Convert.ToString(row[0])))
179 yourEmptyDataTable.ImportRow(row);
183 yourEmptyDataTable.Columns.Add(
new DataColumn(
"direccion", typeof(
string)));
184 yourEmptyDataTable.Columns.Add(
new DataColumn(
"poblacion", typeof(
string)));
185 yourEmptyDataTable.Columns.Add(
new DataColumn(
"provincia", typeof(
string)));
187 foreach (DataRow row
in yourEmptyDataTable.Rows)
189 Dictionary<string, object> loProveedor = DB.SQLREGValor(
"PROVEED",
"CODIGO", row[
"cuenta"].ToString(),
"GESTION");
191 row[
"direccion"] = loProveedor[
"direccion"];
192 row[
"poblacion"] = loProveedor[
"poblacion"];
193 row[
"provincia"] = loProveedor[
"provincia"];
197 btImprimir._Report =
"certificado_retenciones.report";
199 btImprimir._DataTable = yourEmptyDataTable;
201 btImprimir._Title =
"Certificado de retenciones Ejercicio " + EW_GLOBAL._GetVariable(
"wc_any").ToString().Trim();
203 btImprimir._AddFiltros(
"PrimeraCabecera", lcNombreEmpresa +
" con CIF. " + lcCIFEmpresa +
" y domicilio en " + lcDireccionEmpresa);
204 btImprimir._AddFiltros(
"SegundaCabecera", lcCodigoPostalEmpresa +
" " + lcPoblacionEmpresa +
" (" + lcProvinciaEmpresa +
")");
206 btImprimir._AddFiltros(
"PieDocumento", lcPoblacionEmpresa +
", " + DateTime.Today.ToString(EW_GLOBAL._CustomFormatDate));
208 btImprimir.PerformClick();
209 btImprimir._Report =
string.Empty;
216 base._NavigateChecks(tcKeyNavigate, trRowList);
226 _InicializarPropiedadesFiltros();
228 if (llImprimircertificado && lIncluirnperceptores)
230 _Error_Message =
"La opción 'Incluir nº perceptores' no es compatible con la opción 'Imprimir certificado'.";
234 if (llImprimircertificado && !lAgruparporcuenta)
236 _Error_Message =
"Para imprimir el certificado, debe seleccionar la opción de 'Agrupar por cuenta'.";
240 return base._Valid();
250 DataTable ldtResult =
new DataTable();
251 DataTable ldtModiCuotas =
new DataTable();
255 _InicializarPropiedadesFiltros();
257 llOk = ConsultarRetencion(ref ldtResult);
261 if (lAgruparporcuenta)
263 _AgruparCuenta(ref ldtResult);
266 if (!llImprimircertificado)
268 _TotalizarRetencion(ref ldtResult);
272 if (_lNormal && ldtResult.Columns.Contains(
"empresa"))
274 ldtResult.Columns.Remove(
"empresa");
285 protected internal bool ConsultarRetencion(ref DataTable tdtResult)
288 return ConsultarRetencion_Impl(ref tdtResult, GetDefaultEjercicios, GetDefaultFiltroWhereRetencion);
298 private bool ConsultarRetencion_Impl(ref DataTable tdtResult, Func<
string[]> selectorEjercicios, Func<string> whereClauseGenerator)
300 string lcSql =
string.Empty;
303 string lcWhere = whereClauseGenerator.Invoke();
305 string[] laEjercicios = selectorEjercicios.Invoke();
308 lcSql =
"SELECT retreper.empresa, retreper.cuenta, cuentas.nombre, cuentas.cif, retreper.fecha, retreper.numfra, " +
309 " retreper.codigo_ret, tipo_ret.nombre as nombre_ret, " +
310 " COALESCE(g_contri.codigo,'') as g_contri, COALESCE(g_contri.nombre,'') as nombre_g_contri, " +
311 " retreper.base as base_ret, retreper.tipo_ret as tpc_ret, retreper.retencio as total_ret " +
312 _CamposExtra() + Environment.NewLine +
313 " FROM ([multiples_ejercicios].dbo.retreper " + Environment.NewLine +
314 " LEFT JOIN [multiples_ejercicios].dbo.cuentas ON retreper.cuenta = cuentas.codigo) " + Environment.NewLine +
315 " INNER JOIN [multiples_ejercicios].dbo.asientos ON retreper.asi = asientos.asi " + Environment.NewLine +
316 " INNER JOIN [multiples_ejercicios].dbo.tipo_ret ON retreper.codigo_ret = tipo_ret.codigo " + Environment.NewLine +
317 " LEFT JOIN " + DB.SQLDatabase(
"COMUNES",
"G_CONTRI") +
" ON tipo_ret.g_contri = g_contri.codigo " + Environment.NewLine +
318 _JoinsExtra() + Environment.NewLine +
319 lcWhere + Environment.NewLine +
320 " ORDER BY retreper.numfra, retreper.fecha ";
323 llOk = DB.SQLExecEjer(lcSql, ref tdtResult, laEjercicios);
328 private string[] GetDefaultEjercicios()
333 private string GetDefaultFiltroWhereRetencion()
335 return _WhereFiltrosRetencion(
"retreper",
"tipo_ret");
342 protected internal virtual string _CamposExtra()
351 protected internal virtual string _JoinsExtra()
358 #region Métodos protected override de la clase IVA 366 base._InicializarPropiedadesFiltros();
368 llImprimircertificado = _Opcion_Logico(
"lImprimircertificad");
371 _cCampoFecha =
"fecha";
395 # endregion Métodos protected override de la clase IVA
override string GetAliasTablaIva()
Obtener el alias de la tabla
override void _InicializarPropiedadesFiltros()
Inicializamos las propiedades de los filtros de fecha, ejercicio partido ...
override void _NavigateChecks(string tcKeyNavigate, DataRow[] trRowList)
Bug 154494: Al clicar el botón de procesar en el listado guardar los cambios en casillas manuales ...
override void _SetColumnCaptions(Dictionary< string, string > tldTranslate=null)
Overrides _SetColumnCaptions
Entidad de relación (Columnas adicionales en listados)
override void _SetColumnMasks()
Overrides _SetColumnMasks
override string _CampoIVA()
Devuelve el campo "reper" o "sopor" para poder gestionar la fecha Se sobreescribirá en cada libro par...
override DataTable _DataTable()
Método de obtención de los datos específico para el listado
override bool _Valid()
Método que se utiliza para validar que los filtros e opciones son correctas Este método actualizará l...
Clase de negocio para Listado de retención repercutida
Listado base para los listados de retencion Repercutida, Soportada ...