2 using System.Collections.Generic;
17 namespace sage.ew.contabilidad
35 _lUsarDivisa = Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_divisaventa"));
36 _cDivisaEmpresa = EW_GLOBAL._GetVariable(
"wc_moneda").ToString();
37 _cNombreControlCombo =
"cmbFechaClienteBanco";
38 _cClienteProveedor =
"cliente";
44 public override String _ReportFile
48 return "diferenciascambiocobro.report";
55 public override List<string> _ReportColumns
59 List<String> reportColumns =
new List<string>();
61 _dicDefEntidades =
new Dictionary<string, ew.interficies.IDefEntidad>();
62 _dicDefEntidades.Add(
"factura",
new DefEntidad() { _DB =
"COMUNES", _Tabla =
"PREVI_CL", _Campo =
"LTRIM(FACTURA)", _Relacion =
"", _Empresa =
true });
63 _dicDefEntidades.Add(
"cliente",
new DefEntidad() { _DB =
"GESTION", _Tabla =
"CLIENTES", _Campo =
"CODIGO", _Relacion =
"", _Empresa =
false });
64 _dicDefEntidades.Add(
"f_pago",
new DefEntidad() { _DB =
"GESTION", _Tabla =
"FPAG", _Campo =
"CODIGO", _Relacion =
"", _Empresa =
false });
65 _dicDefEntidades.Add(
"empresa",
new DefEntidad() { _DB =
"GESTION", _Tabla =
"EMPRESA", _Campo =
"CODIGO", _Relacion =
"", _Empresa =
false });
67 reportColumns.Add(
"factura");
68 reportColumns.Add(
"siiframod");
69 reportColumns.Add(
"referencia");
70 reportColumns.Add(
"emision");
71 reportColumns.Add(
"vencim");
72 reportColumns.Add(
"divisa");
73 reportColumns.Add(
"importe");
74 reportColumns.Add(
"divisa_importe");
75 reportColumns.Add(
"cambio");
76 reportColumns.Add(
"cotiza");
77 reportColumns.Add(
"diferencia");
78 reportColumns.Add(
"codigo");
79 reportColumns.Add(
"cliente");
80 reportColumns.Add(
"pagare");
84 _dicDefEntidades.Add(
"banco",
new DefEntidad() { _DB =
"GESTION", _Tabla =
"CUENTAS", _Campo =
"CODIGO", _Relacion =
"", _Empresa =
false });
86 reportColumns.Add(
"banco");
87 reportColumns.Add(
"nombanc");
90 reportColumns.Add(
"f_pago");
91 reportColumns.Add(
"nomfpag");
103 _InicializarVariables();
105 string lcSql = obtenerQueryObtencionDatos();
108 if (DB.SQLExec(lcSql, ref _dtResult) && _dtResult.Rows.Count > 0)
111 _RedondearImporteDeLasDiferencias();
114 this._ResultadosSinTotalizar = _dtResult.Copy();
116 agruparResultadosConTotales();
126 private string obtenerQueryObtencionDatos()
128 string lcSql =
string.Empty;
131 string lcCampoCotiza = queryCalculoCampoCotiza(tcAliasTablaClienteProveedor:
"CLIENTES");
132 string lcCampoDiferencia = queryCalculoCampoDiferencia(tcAliasTablaClienteProveedor:
"CLIENTES");
135 lcSql =
" SELECT p.empresa, p.vencim, p.cliente, RTRIM(CLIENTES.nombre) as nombrecliente, " +
136 "p.banco, RTRIM(c.nombre) as nombanc, " +
137 "p.f_pago, f.nombre as nomfpag, p.importe, p.factura as factura, p.emision as fecha, " +
138 "p.orden, p.pagare, p.divisa, p.importediv AS divisa_importe, p.cambio, p.pendiente, p.impagado, " +
142 lcSql +=
",CLIENTES.IDIOMA as divisacliente, CLIENTES.CAMBIO as cambiocliente, CLIENTES.FEC_CAM as fechacambiocliente, " +
143 lcCampoCotiza +
" AS cotiza, " +
144 lcCampoDiferencia +
" AS diferencia ";
146 lcSql +=
"FROM " + DB.SQLDatabase(
"comunes",
"previ_cl") +
" p " +
147 " LEFT OUTER JOIN " + DB.SQLDatabase(
"gestion",
"clientes") +
" CLIENTES ON p.cliente = CLIENTES.codigo " +
148 " LEFT OUTER JOIN " + DB.SQLDatabase(
"gestion",
"fpag") +
" f ON p.f_pago=f.codigo " +
149 " LEFT OUTER JOIN " + DB.SQLDatabase(
"gestion",
"cuentas") +
" c ON p.banco=c.codigo " +
150 " LEFT OUTER JOIN " + DB.SQLDatabase(
"gestion",
"moneda") +
" MONEDA ON p.divisa= MONEDA.codigo ";
153 lcSql +=
" LEFT OUTER JOIN (" + obtenerQueryCotizacionMaximaPorFecha() +
") AS LASTCOTIZA ON LASTCOTIZA.CODIGO = p.DIVISA ";
156 lcSql +=
"WHERE " + EW_GLOBAL._Consolida(
"p.Empresa") +
" AND p.importe != 0 AND p.banco ='' ";
158 if (!_lVerDiferenciasCambioCero)
160 lcSql +=
"AND " + lcCampoDiferencia +
" <> 0 ";
165 lcSql +=
"AND p.impago = 'S' ";
168 lcSql +=
"AND p.impago <> 'S' ";
171 lcSql += obtenerCriteriosFiltradoSql();
174 lcSql += obtenerClausulaOrderBy();
183 base._InicializarVariables();
186 if (_FechaProceso is DateTime && _Cuentas is List<string> && _Cuentas.Count > 0)
188 _Filtros.Add(
"ClienteLista", _Cuentas);
191 if (_Opciones.ContainsKey(
"nFechaClienteBanco")) _nSubtotalesPor = _Opcion_Entero(
"nFechaClienteBanco");
199 private string obtenerCriteriosFiltradoSql()
201 string lcFiltro =
"";
203 lcFiltro += _Filtro_Fecha(_Filtros, _Tipo_Filtro_Fecha.Fecha,
"p", (_nTipoFecha == 0 ?
"vencim" :
"emision"));
204 lcFiltro += _Filtro_String(_Filtros, _Tipo_Filtro_String.Cliente,
"p",
"cliente");
206 lcFiltro += _Filtro_String(_Filtros, _Tipo_Filtro_String.FPago,
"p",
"f_pago");
207 lcFiltro += _DivisaConfig.ObtenerFiltroDivisa(
"divisa",
"p");
override DataTable _DataTable()
Método de obtención de los datos específico para el listado
TipoOrigenDiferenciaCambio
Origen de la diferencia de cambio
override void _InicializarVariables()
Inicializa las variables de listado
Listado de Diferencias de cambio en previsiones de pago
Actualización de pagarés de cobro.
Listado de Diferencias de cambio en previsiones de pago
Entidad de relación (Columnas adicionales en listados)
DiferenciasCambioCobros()
Constructor
static string _ObtenerSqlDivisa(string tcAliasCodigo, string tcAliasResultado)
Task 108426: Retornar un string aplicable para obtener el valor del texto de la divisa que actualment...
Clase de negocio para la DIVISA (Moneda)
TipoDiferenciaCambio
Tipos de diferencia de cambio